Commit d420939e by 朱亚洁

feat:[1005028]平台端干预

parent 96423d40
package com.pcloud.book.cultivate.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @ClassName com.pcloud.book.cultivate.dto.NotifyItemDTO
* @Author zhuyajie
* @Description 消息详情
* @Date 2021/7/14 14:40
* @Version 1.0
**/
@Data
public class NotifyItemDTO {
@ApiModelProperty("发送内容(1-文本,2-图片,3-音频, 4-链接,5 问题)")
private Integer contentType;
@ApiModelProperty("文字内容")
private String content;
@ApiModelProperty("图片地址")
private String picUrl;
@ApiModelProperty("音频资源id")
private Long resourceId;
@ApiModelProperty("跳转类型 1指定页面, 2web页面, 3资讯, 4应用作品")
private Integer jumpType;
@ApiModelProperty("跳转地址")
private String jumpUrl;
@ApiModelProperty("作品/应用/咨询的ID")
private Long serveId;
@ApiModelProperty("作品5/应用6/咨询的类型1")
private Integer serveType;
@ApiModelProperty("JSON格式的额外信息")
private String extJson;
}
package com.pcloud.book.cultivate.dto;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @ClassName com.pcloud.book.cultivate.dto.NotifySendDTO
* @Author zhuyajie
* @Description 小程序消息发送
* @Date 2021/7/14 14:39
* @Version 1.0
**/
@Data
public class NotifySendDTO {
@ApiModelProperty("用户微信id")
private Long wechatUserId;
@ApiModelProperty("发送类型(1-指定用户,2-分类用户,3-按书籍查询,4-全局公告消息)")
private Integer sendType;
@ApiModelProperty("消息类型(1-系统消息,2-通知消息,3-提醒消息,4-活动消息 5-更多消息)")
private Integer messageType;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("消息详情")
private List<NotifyItemDTO> notifyItemDTOS;
}
...@@ -3,6 +3,7 @@ package com.pcloud.book.cultivate.service; ...@@ -3,6 +3,7 @@ package com.pcloud.book.cultivate.service;
import com.pcloud.book.copyright.dto.BookAuthInfoCountDTO; import com.pcloud.book.copyright.dto.BookAuthInfoCountDTO;
import com.pcloud.book.copyright.dto.BookAuthTotalCountDTO; import com.pcloud.book.copyright.dto.BookAuthTotalCountDTO;
import com.pcloud.book.copyright.dto.CheckUserAuthDTO; import com.pcloud.book.copyright.dto.CheckUserAuthDTO;
import com.pcloud.book.cultivate.dto.NotifySendDTO;
import com.pcloud.book.cultivate.entity.AppletNotifySendDTO; import com.pcloud.book.cultivate.entity.AppletNotifySendDTO;
import com.pcloud.book.cultivate.entity.CultivateNotifySend; import com.pcloud.book.cultivate.entity.CultivateNotifySend;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
...@@ -10,6 +11,7 @@ import com.pcloud.common.exceptions.BizException; ...@@ -10,6 +11,7 @@ import com.pcloud.common.exceptions.BizException;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
...@@ -47,4 +49,8 @@ public interface CultivateNotifyService { ...@@ -47,4 +49,8 @@ public interface CultivateNotifyService {
@RequestMapping(value = "createNotify4App", method = RequestMethod.POST) @RequestMapping(value = "createNotify4App", method = RequestMethod.POST)
ResponseEntity<ResponseDto<Long>> createNotify4App(@RequestBody AppletNotifySendDTO newSendDTO) throws BizException; ResponseEntity<ResponseDto<Long>> createNotify4App(@RequestBody AppletNotifySendDTO newSendDTO) throws BizException;
@ApiOperation("发小程序消息")
@PostMapping("sendNotifyToUser")
ResponseEntity<ResponseDto<Long>> sendNotifyToUser(@RequestBody NotifySendDTO notifySendDTO);
} }
...@@ -37,4 +37,12 @@ public interface AppletRecordAggrStatisBiz { ...@@ -37,4 +37,12 @@ public interface AppletRecordAggrStatisBiz {
* * @param null * * @param null
*/ */
PageBeanNew getResource4H5(Long wechatUserId, Long officialAccountsId, String keyword, Integer sourceType, Integer currentPage, Integer numPerPage); PageBeanNew getResource4H5(Long wechatUserId, Long officialAccountsId, String keyword, Integer sourceType, Integer currentPage, Integer numPerPage);
/**
* 平台端资源推荐
* @author:zhuyajie
* @date:2021/7/9 16:17
* * @param null
*/
PageBeanNew getResource4H54Pcloud(Integer currentPage, Integer numPerPage, String query, Integer sourceFrom);
} }
...@@ -16,5 +16,5 @@ public interface AppletRecordSevenDayDao extends BaseDao<AppletRecordSevenDay>{ ...@@ -16,5 +16,5 @@ public interface AppletRecordSevenDayDao extends BaseDao<AppletRecordSevenDay>{
void deleteBySourceType(Integer sourceType); void deleteBySourceType(Integer sourceType);
List<AppletRecordDTO> getResourceByGrade4H5(Integer sourceType, List<Long> gradeLabelIds, Integer limit); List<AppletRecordDTO> getResourceByGrade4H5(Integer sourceType, List<Long> gradeLabelIds, Integer limit, Integer sourceFrom);
} }
\ No newline at end of file
...@@ -26,11 +26,12 @@ public class AppletRecordSevenDayDaoImpl extends BaseDaoImpl<AppletRecordSevenDa ...@@ -26,11 +26,12 @@ public class AppletRecordSevenDayDaoImpl extends BaseDaoImpl<AppletRecordSevenDa
} }
@Override @Override
public List<AppletRecordDTO> getResourceByGrade4H5(Integer sourceType, List<Long> gradeLabelIds, Integer limit) { public List<AppletRecordDTO> getResourceByGrade4H5(Integer sourceType, List<Long> gradeLabelIds, Integer limit, Integer sourceFrom) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("sourceType", sourceType); map.put("sourceType", sourceType);
map.put("gradeLabelIds", gradeLabelIds); map.put("gradeLabelIds", gradeLabelIds);
map.put("limit", limit); map.put("limit", limit);
map.put("sourceFrom", sourceFrom);
return getSessionTemplate().selectList(getStatement("getResourceByGrade4H5"), map); return getSessionTemplate().selectList(getStatement("getResourceByGrade4H5"), map);
} }
} }
...@@ -116,4 +116,22 @@ public class AppletRecordDTO { ...@@ -116,4 +116,22 @@ public class AppletRecordDTO {
private String proLabelName; private String proLabelName;
private String depLabelName; private String depLabelName;
private String purLabelName; private String purLabelName;
/**
* 应用作品资源封面
*/
private String servePic;
/**
* 应用作品资源创建人
*/
private Long serveCreateUserId;
/**
* 应用作品资源创建人名称
*/
private String serveCreateUserName;
/**
* 应用作品是否显示
*/
private Boolean serveShowState;
private String serveType;
} }
...@@ -3,6 +3,7 @@ package com.pcloud.book.cultivate.biz; ...@@ -3,6 +3,7 @@ package com.pcloud.book.cultivate.biz;
import com.pcloud.book.book.dto.AdviserBookInfoDTO; import com.pcloud.book.book.dto.AdviserBookInfoDTO;
import com.pcloud.book.cultivate.dto.CultivateNotifyDTO; import com.pcloud.book.cultivate.dto.CultivateNotifyDTO;
import com.pcloud.book.cultivate.dto.CultivateNotifyPageDTO; import com.pcloud.book.cultivate.dto.CultivateNotifyPageDTO;
import com.pcloud.book.cultivate.dto.NotifySendDTO;
import com.pcloud.book.cultivate.dto.SearchNotifyDTO; import com.pcloud.book.cultivate.dto.SearchNotifyDTO;
import com.pcloud.book.cultivate.dto.SearchSendUserDTO; import com.pcloud.book.cultivate.dto.SearchSendUserDTO;
import com.pcloud.book.cultivate.dto.SendUserDetailDto; import com.pcloud.book.cultivate.dto.SendUserDetailDto;
...@@ -44,4 +45,6 @@ public interface CultivateNotifyBiz { ...@@ -44,4 +45,6 @@ public interface CultivateNotifyBiz {
Long createNotify4App(AppletNotifySendDTO newSendDTO); Long createNotify4App(AppletNotifySendDTO newSendDTO);
void clearExpireNotifies(); void clearExpireNotifies();
Long sendNotifyToUser(NotifySendDTO notifySendDTO);
} }
...@@ -30,6 +30,8 @@ import com.pcloud.book.cultivate.dao.CultivateNotifySendDao; ...@@ -30,6 +30,8 @@ import com.pcloud.book.cultivate.dao.CultivateNotifySendDao;
import com.pcloud.book.cultivate.dto.CultivateNotifyDTO; import com.pcloud.book.cultivate.dto.CultivateNotifyDTO;
import com.pcloud.book.cultivate.dto.CultivateNotifyPageDTO; import com.pcloud.book.cultivate.dto.CultivateNotifyPageDTO;
import com.pcloud.book.cultivate.dto.CultivateNotifyTypeDTO; import com.pcloud.book.cultivate.dto.CultivateNotifyTypeDTO;
import com.pcloud.book.cultivate.dto.NotifyItemDTO;
import com.pcloud.book.cultivate.dto.NotifySendDTO;
import com.pcloud.book.cultivate.dto.SearchNotifyDTO; import com.pcloud.book.cultivate.dto.SearchNotifyDTO;
import com.pcloud.book.cultivate.dto.SearchSendUserDTO; import com.pcloud.book.cultivate.dto.SearchSendUserDTO;
import com.pcloud.book.cultivate.dto.WechatUserDTO; import com.pcloud.book.cultivate.dto.WechatUserDTO;
...@@ -45,6 +47,7 @@ import com.pcloud.common.core.aspect.ParamLog; ...@@ -45,6 +47,7 @@ import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.dto.AppletTemplateMessageDto; import com.pcloud.common.core.dto.AppletTemplateMessageDto;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.BeanUtils;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ServeLinkUtils; import com.pcloud.common.utils.ServeLinkUtils;
...@@ -622,4 +625,36 @@ public class CultivateNotifyBizImpl implements CultivateNotifyBiz { ...@@ -622,4 +625,36 @@ public class CultivateNotifyBizImpl implements CultivateNotifyBiz {
public void clearExpireNotifies() { public void clearExpireNotifies() {
cultivateNotifySendDao.clearExpireNotifies(); cultivateNotifySendDao.clearExpireNotifies();
} }
@Override
public Long sendNotifyToUser(NotifySendDTO notifySendDTO) {
if (null == notifySendDTO || null == notifySendDTO.getSendType() || null == notifySendDTO.getMessageType() || StringUtil.isEmpty(notifySendDTO.getTitle()) || null == notifySendDTO.getWechatUserId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"新建站内信消息参数为空");
}
CultivateNotify cultivateNotify=new CultivateNotify();
cultivateNotify.setMessageType(notifySendDTO.getMessageType());
cultivateNotify.setTitle(notifySendDTO.getTitle());
cultivateNotify.setSendType(notifySendDTO.getSendType());
cultivateNotify.setAgentId(0L);
cultivateNotifyDao.insert(cultivateNotify);
Long messageId = cultivateNotify.getMessageId();
if(!ListUtils.isEmpty(notifySendDTO.getNotifyItemDTOS())) {
List<CultivateNotifyItem> items = new ArrayList<>();
for (NotifyItemDTO itemDTO: notifySendDTO.getNotifyItemDTOS()){
CultivateNotifyItem item = new CultivateNotifyItem();
BeanUtils.copyProperties(itemDTO,item);
item.setMessageId(messageId);
items.add(item);
}
cultivateNotifyItemDao.insert(items);
}
//发给用户
CultivateNotifySend notifySend = new CultivateNotifySend();
notifySend.setMessageId(messageId);
notifySend.setWechatUserId(notifySendDTO.getWechatUserId());
notifySend.setSendType(notifySendDTO.getSendType());
notifySend.setMessageType(notifySendDTO.getMessageType());
cultivateNotifySendDao.insert(notifySend);
return messageId;
}
} }
package com.pcloud.book.cultivate.service.impl; package com.pcloud.book.cultivate.service.impl;
import com.pcloud.book.cultivate.biz.CultivateNotifyBiz; import com.pcloud.book.cultivate.biz.CultivateNotifyBiz;
import com.pcloud.book.cultivate.dto.NotifySendDTO;
import com.pcloud.book.cultivate.entity.AppletNotifySendDTO; import com.pcloud.book.cultivate.entity.AppletNotifySendDTO;
import com.pcloud.book.cultivate.entity.CultivateNotifySend; import com.pcloud.book.cultivate.entity.CultivateNotifySend;
import com.pcloud.book.cultivate.service.CultivateNotifyService; import com.pcloud.book.cultivate.service.CultivateNotifyService;
...@@ -11,6 +12,7 @@ import com.pcloud.common.utils.ListUtils; ...@@ -11,6 +12,7 @@ import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
...@@ -52,4 +54,10 @@ public class CultivateNotifyServiceImpl implements CultivateNotifyService { ...@@ -52,4 +54,10 @@ public class CultivateNotifyServiceImpl implements CultivateNotifyService {
public ResponseEntity<ResponseDto<Long>> createNotify4App(@RequestBody AppletNotifySendDTO newSendDTO) throws BizException{ public ResponseEntity<ResponseDto<Long>> createNotify4App(@RequestBody AppletNotifySendDTO newSendDTO) throws BizException{
return ResponseHandleUtil.toResponse(cultivateNotifyBiz.createNotify4App(newSendDTO)); return ResponseHandleUtil.toResponse(cultivateNotifyBiz.createNotify4App(newSendDTO));
} }
@Override
@PostMapping("sendNotifyToUser")
public ResponseEntity<ResponseDto<Long>> sendNotifyToUser(@RequestBody NotifySendDTO notifySendDTO) {
return ResponseHandleUtil.toResponse(cultivateNotifyBiz.sendNotifyToUser(notifySendDTO));
}
} }
...@@ -10,6 +10,7 @@ import com.pcloud.book.group.entity.BookGroupServe; ...@@ -10,6 +10,7 @@ import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePage; import com.pcloud.book.group.entity.ResourcePage;
import com.pcloud.book.group.entity.ResourcePageCollect; import com.pcloud.book.group.entity.ResourcePageCollect;
import com.pcloud.book.group.entity.ResourcePageTool; import com.pcloud.book.group.entity.ResourcePageTool;
import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO; import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
import com.pcloud.book.group.vo.ResourcePageItemVO; import com.pcloud.book.group.vo.ResourcePageItemVO;
import com.pcloud.book.group.vo.ResourcePageOneServe; import com.pcloud.book.group.vo.ResourcePageOneServe;
...@@ -360,4 +361,36 @@ public interface ResourcePageBiz { ...@@ -360,4 +361,36 @@ public interface ResourcePageBiz {
* * @param null * * @param null
*/ */
void updateBookId(Long bookId, Long sceneId); void updateBookId(Long bookId, Long sceneId);
/**
* 平台端-资源推荐管理-热门课程
* @author:zhuyajie
* @date:2021/7/9 15:03
* * @param null
*/
PageBeanNew listRecommendCourse4Pcloud(Integer currentPage, Integer numPerPage, String query);
/**
* 平台端-资源推荐管理-教辅、育儿宝库
* @author:zhuyajie
* @date:2021/7/9 17:41
* * @param null
*/
PageBeanNew listRecommendResource4Pcloud(Integer currentPage, Integer numPerPage, String query, Integer sourceFrom);
/**
* 平台端-资源推荐管理-修改
* @author:zhuyajie
* @date:2021/7/9 18:05
* * @param null
*/
void updateRecommendResource4Pcloud(ResourceRecomManage resourceRecomManage);
/**
* 查平台端应用作品修改记录
* @author:zhuyajie
* @date:2021/7/19 18:20
* * @param null
*/
Map<Long, ResourceRecomManage> mapResourceRecomManage(List<Long> serveIds, String serveType, Integer sourceFrom);
} }
...@@ -3,6 +3,9 @@ package com.pcloud.book.group.constant; ...@@ -3,6 +3,9 @@ package com.pcloud.book.group.constant;
import com.pcloud.book.applet.contants.AppletResourceApplyConstants; import com.pcloud.book.applet.contants.AppletResourceApplyConstants;
import com.pcloud.common.constant.CacheConstant; import com.pcloud.common.constant.CacheConstant;
import java.util.Arrays;
import java.util.List;
/** /**
* @ClassName com.pcloud.book.group.constant.ResourcePageConstants * @ClassName com.pcloud.book.group.constant.ResourcePageConstants
* @Author zhuyajie * @Author zhuyajie
...@@ -278,4 +281,52 @@ public class ResourcePageConstants { ...@@ -278,4 +281,52 @@ public class ResourcePageConstants {
} }
} }
/**
* 资源推荐管理-类型
* @author:zhuyajie
* @date:2021/7/9 15:02
* * @param null
*/
public enum RecommendResourceFromEnum{
//(1育儿宝库2教辅资料3热门课程)
CHILD_RESOURCE(1, new Integer[]{ResourceSourceTypeEnum.CHILD.getCode()}),
TEACHE_RESOURCE(2, new Integer[]{
ResourceSourceTypeEnum.PAPER.getCode(),ResourceSourceTypeEnum.PDF.getCode(),
ResourceSourceTypeEnum.ARTICLE.getCode(), ResourceSourceTypeEnum.KNOWLEDGE.getCode()
}),
HOT_COURSE(3,new Integer[]{});
private Integer code;
private Integer[] sourceTypes;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public Integer[] getSourceTypes() {
return sourceTypes;
}
public void setSourceTypes(Integer[] sourceTypes) {
this.sourceTypes = sourceTypes;
}
RecommendResourceFromEnum(Integer code, Integer[] sourceTypes) {
this.code = code;
this.sourceTypes = sourceTypes;
}
public static List<Integer> getSourceTypesByCode(Integer code) {
for (RecommendResourceFromEnum resourceFromEnum:RecommendResourceFromEnum.values()){
if (resourceFromEnum.getCode().equals(code)){
return Arrays.asList(resourceFromEnum.getSourceTypes());
}
}
return null;
}
}
} }
package com.pcloud.book.group.dao;
import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
/**
* 资源页推荐资源管理(ResourceRecomManage)表数据库访问层
*
* @author makejava
* @since 2021-07-09 14:39:21
*/
public interface ResourceRecomManageDao extends BaseDao<ResourceRecomManage>{
void deleteByServe(Long serveId, String serveType, Integer sourceFrom);
Map<Long,ResourceRecomManage> mapResourceRecomManage(List<Long> serveIds, String serveType, Integer sourceFrom);
}
\ No newline at end of file
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.ResourceRecomManageDao;
import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName com.pcloud.book.group.dao.impl.ResourceRecomManageDaoImpl
* @Author zhuyajie
* @Description 推荐资源管理
* @Date 2021/7/9 14:48
* @Version 1.0
**/
@Component
public class ResourceRecomManageDaoImpl extends BaseDaoImpl<ResourceRecomManage> implements ResourceRecomManageDao {
@Override
public void deleteByServe(Long serveId, String serveType, Integer sourceFrom) {
Map<String, Object> map = new HashMap<>();
map.put("serveId", serveId);
map.put("sourceFrom", sourceFrom);
map.put("serveType", serveType);
getSessionTemplate().delete(getStatement("deleteByServe"), map);
}
@Override
public Map<Long, ResourceRecomManage> mapResourceRecomManage(List<Long> serveIds, String serveType, Integer sourceFrom) {
Map<String, Object> map = new HashMap<>();
map.put("serveIds", serveIds);
map.put("sourceFrom", sourceFrom);
map.put("serveType", serveType);
return getSessionTemplate().selectMap(getStatement("mapResourceRecomManage"), map, "serveId");
}
}
...@@ -62,4 +62,19 @@ public class ResourcePageCourseDTO extends BaseDto { ...@@ -62,4 +62,19 @@ public class ResourcePageCourseDTO extends BaseDto {
private String proLabelName; private String proLabelName;
private String depLabelName; private String depLabelName;
private String purLabelName; private String purLabelName;
private Integer browseCount;
/**
* 资源创建人
*/
private Long serveCreateUserId;
/**
* 资源创建人名称
*/
private String serveCreateUserName;
/**
* 是否显示
*/
private Boolean showState;
} }
\ No newline at end of file
package com.pcloud.book.group.entity;
import com.pcloud.common.entity.BaseEntity;
import lombok.Data;
/**
* 资源页推荐资源管理(ResourceRecomManage)实体类
*
* @author makejava
* @since 2021-07-09 14:39:21
*/
@Data
public class ResourceRecomManage extends BaseEntity {
private static final long serialVersionUID = -25381380975839107L;
/**
* 主键
*/
private Long id;
/**
* 资源id
*/
private Long serveId;
/**
* 资源名称
*/
private String serveName;
/**
* 资源类型
*/
private String serveType;
/**
* 具体类型
*/
private String typeCode;
/**
* 封面图
*/
private String coverImg;
/**
* 来源(1育儿宝库2教辅资料3热门课程)
*/
private Integer sourceFrom;
/**
* 是否显示
*/
private Integer showState;
/**
* 创建人
*/
private Long createUser;
}
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.pcloud.book.group.facade.impl; ...@@ -2,6 +2,7 @@ package com.pcloud.book.group.facade.impl;
import com.pcloud.book.group.biz.ResourcePageBiz; import com.pcloud.book.group.biz.ResourcePageBiz;
import com.pcloud.book.group.entity.ResourcePageCollect; import com.pcloud.book.group.entity.ResourcePageCollect;
import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.vo.ResourcePageVO; import com.pcloud.book.group.vo.ResourcePageVO;
import com.pcloud.book.group.vo.UpdateResourceColumnVO; import com.pcloud.book.group.vo.UpdateResourceColumnVO;
import com.pcloud.book.group.vo.UpdateResourcePageVO; import com.pcloud.book.group.vo.UpdateResourcePageVO;
...@@ -245,4 +246,36 @@ public class ResourcePageFacade { ...@@ -245,4 +246,36 @@ public class ResourcePageFacade {
Cookie.getId(userInfo,Cookie._WECHAT_USER_ID); Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.hasOfficialAccountsTool(resourcePageId)); return new ResponseDto<>(resourcePageBiz.hasOfficialAccountsTool(resourcePageId));
} }
@ApiOperation("平台端-资源推荐管理-热门课程")
@GetMapping("listRecommendCourse4Pcloud")
public ResponseDto<?> listRecommendCourse4Pcloud(@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage,
@RequestParam(value = "query", required = false) String query) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(resourcePageBiz.listRecommendCourse4Pcloud(currentPage, numPerPage, query));
}
@ApiOperation("平台端-资源推荐管理-教辅、育儿宝库")
@GetMapping("listRecommendResource4Pcloud")
public ResponseDto<?> listRecommendResource4Pcloud(@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage,
@RequestParam(value = "query", required = false) String query,
@RequestParam("sourceFrom") Integer sourceFrom) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(resourcePageBiz.listRecommendResource4Pcloud(currentPage, numPerPage, query, sourceFrom));
}
@ApiOperation("平台端-资源推荐管理-修改")
@PostMapping("updateRecommendResource4Pcloud")
public ResponseDto<?> updateRecommendResource4Pcloud(@RequestHeader("token") String token,
@RequestBody ResourceRecomManage resourceRecomManage) {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
resourceRecomManage.setCreateUser(partyId);
resourcePageBiz.updateRecommendResource4Pcloud(resourceRecomManage);
return new ResponseDto<>();
}
} }
...@@ -100,16 +100,21 @@ ...@@ -100,16 +100,21 @@
SELECT SELECT
a.record_type recordType, a.record_type recordType,
a.from_id fromId, a.from_id fromId,
a.from_name fromName, IFNULL(m.serve_name, a.from_name) fromName,
a.link_url linkUrl, a.link_url linkUrl,
a.type_code typeCode, a.type_code typeCode,
a.click_count clickCount, a.click_count clickCount,
a.user_count userCount a.user_count userCount,
m.cover_img servePic
FROM FROM
applet_record_seven_day a applet_record_seven_day a
INNER JOIN resource_page_grade_label g ON a.dep_label_id = g.dep_label_id INNER JOIN resource_page_grade_label g ON a.dep_label_id = g.dep_label_id
LEFT JOIN resource_recom_manage m ON A.from_id = m.serve_id
AND m.source_from = #{sourceFrom}
AND a.type_code = m.type_code
WHERE WHERE
a.source_type = #{sourceType} a.source_type = #{sourceType}
AND IFNULL(m.show_state, 1) = 1
<if test="gradeLabelIds != null and gradeLabelIds.size>0"> <if test="gradeLabelIds != null and gradeLabelIds.size>0">
AND g.user_grade_label_id IN AND g.user_grade_label_id IN
<foreach collection="gradeLabelIds" separator="," index="index" item="item" close=")" open="("> <foreach collection="gradeLabelIds" separator="," index="index" item="item" close=")" open="(">
...@@ -132,4 +137,38 @@ ...@@ -132,4 +137,38 @@
limit #{limit} limit #{limit}
</if> </if>
</select> </select>
<select id="getList4Pcloud" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletRecordDTO">
SELECT
a.record_type recordType,
a.from_id fromId,
IFNULL(m.serve_name, a.from_name) fromName,
a.link_url linkUrl,
a.type_code typeCode,
a.click_count clickCount,
a.user_count userCount,
m.cover_img servePic,
IFNULL(m.show_state, 1) serveShowState
FROM
applet_record_seven_day a
LEFT JOIN resource_recom_manage m ON A.from_id = m.serve_id
AND m.source_from = #{sourceFrom}
AND a.type_code = m.type_code
WHERE 1=1
<if test="sourceTypeList != null and sourceTypeList.size>0">
AND a.source_type IN
<foreach collection="sourceTypeList" index="index" separator="," item="item" close=")" open="(">
${item}
</foreach>
</if>
<if test="query != null">
AND IFNULL(m.serve_name, a.from_name) LIKE CONCAT("%", #{query}, "%")
</if>
GROUP BY
a.record_type,
a.from_id
ORDER BY
a.user_count DESC
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -18,6 +18,32 @@ ...@@ -18,6 +18,32 @@
id,wx_user_id, wechat_user_id, send_type,message_id,message_type,is_read,read_time, create_time,update_time id,wx_user_id, wechat_user_id, send_type,message_id,message_type,is_read,read_time, create_time,update_time
</sql> </sql>
<insert id="insert" parameterType="com.pcloud.book.cultivate.entity.CultivateNotifySend" useGeneratedKeys="true" keyProperty="id">
insert into cultivate_notify_send
(
wx_user_id,
wechat_user_id,
send_type,
message_id,
message_type,
is_read,
show_home,
create_time,
update_time
)
values
(#{wxUserId},
#{wechatUserId},
#{sendType},
#{messageId},
#{messageType},
0,
1,
NOW(),
NOW()
)
</insert>
<insert id="batchInsert" parameterType="com.pcloud.book.cultivate.entity.CultivateNotifySend" useGeneratedKeys="true" keyProperty="id"> <insert id="batchInsert" parameterType="com.pcloud.book.cultivate.entity.CultivateNotifySend" useGeneratedKeys="true" keyProperty="id">
insert into cultivate_notify_send insert into cultivate_notify_send
( (
......
...@@ -98,19 +98,25 @@ ...@@ -98,19 +98,25 @@
<select id="listCourseByGradeLabelId" resultType="com.pcloud.book.group.dto.ResourcePageCourseDTO" parameterType="map"> <select id="listCourseByGradeLabelId" resultType="com.pcloud.book.group.dto.ResourcePageCourseDTO" parameterType="map">
SELECT SELECT
c.serve_id serveId, c.serve_id serveId,
c.serve_name serveName, IFNULL(m.serve_name, c.serve_name) serveName,
c.serve_type serveType, c.serve_type serveType,
c.type_code typeCode, c.type_code typeCode,
c.channel_id channelId, c.channel_id channelId,
c.type_name typeName, c.type_name typeName,
c.pro_label_id proLabelId, c.pro_label_id proLabelId,
c.dep_lable_id depLabelId, c.dep_lable_id depLabelId,
c.pur_label_id purLabelId c.pur_label_id purLabelId,
c.browse_count browseCount,
m.cover_img servePic
FROM FROM
resource_page_course c resource_page_course c
INNER JOIN resource_page_grade_label g ON c.dep_lable_id = g.dep_label_id INNER JOIN resource_page_grade_label g ON c.dep_lable_id = g.dep_label_id
LEFT JOIN resource_recom_manage m ON c.serve_id = m.serve_id
AND m.source_from = #{sourceFrom}
AND c.type_code = m.type_code
WHERE WHERE
g.user_grade_label_id = #{userGradeLabelId} g.user_grade_label_id = #{userGradeLabelId}
AND IFNULL(m.show_state, 1) = 1
GROUP BY GROUP BY
c.serve_id c.serve_id
ORDER BY ORDER BY
...@@ -136,4 +142,34 @@ ...@@ -136,4 +142,34 @@
dep_label_id = #{depLabelId} dep_label_id = #{depLabelId}
LIMIT 1 LIMIT 1
</select> </select>
<select id="listCourse4Pcloud" resultType="com.pcloud.book.group.dto.ResourcePageCourseDTO" parameterType="map">
SELECT
c.serve_id serveId,
c.serve_type serveType,
c.type_code typeCode,
c.type_name typeName,
c.pro_label_id proLabelId,
c.dep_lable_id depLabelId,
c.pur_label_id purLabelId,
c.browse_count browseCount,
m.cover_img servePic,
IFNULL(m.serve_name, c.serve_name) serveName,
IFNULL(m.show_state, 1) showState
FROM
resource_page_course c
LEFT JOIN resource_recom_manage m ON c.serve_id = m.serve_id
AND m.source_from = #{sourceFrom}
AND c.type_code = m.type_code
WHERE
1 = 1
<if test="query != null">
AND IFNULL(m.serve_name, c.serve_name) LIKE CONCAT("%", #{query}, "%")
</if>
GROUP BY
c.serve_id
ORDER BY
c.browse_count DESC
</select>
</mapper> </mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.group.dao.impl.ResourceRecomManageDaoImpl">
<resultMap type="com.pcloud.book.group.entity.ResourceRecomManage" id="ResourceRecomManageMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="serveId" column="serve_id" jdbcType="INTEGER"/>
<result property="serveName" column="serve_name" jdbcType="VARCHAR"/>
<result property="serveType" column="serve_type" jdbcType="VARCHAR"/>
<result property="typeCode" column="type_code" jdbcType="VARCHAR"/>
<result property="coverImg" column="cover_img" jdbcType="VARCHAR"/>
<result property="sourceFrom" column="source_from" jdbcType="INTEGER"/>
<result property="showState" column="show_state" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id, serve_id, serve_name, serve_type, type_code, cover_img, source_from, show_state
</sql>
<!--查询单个-->
<select id="getById" resultMap="ResourceRecomManageMap">
select
<include refid="Base_Column_List"/>
from book.resource_recom_manage
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.resource_recom_manage(serve_id, serve_name, serve_type, type_code, cover_img, source_from, show_state, create_time, create_user)
values (#{serveId}, #{serveName}, #{serveType}, #{typeCode}, #{coverImg}, #{sourceFrom}, #{showState}, now(), #{createUser})
</insert>
<!--通过主键修改数据-->
<update id="update">
update book.resource_recom_manage
<set>
<if test="serveId != null">
serve_id = #{serveId},
</if>
<if test="serveName != null and serveName != ''">
serve_name = #{serveName},
</if>
<if test="serveType != null and serveType != ''">
serve_type = #{serveType},
</if>
<if test="typeCode != null and typeCode != ''">
type_code = #{typeCode},
</if>
<if test="coverImg != null and coverImg != ''">
cover_img = #{coverImg},
</if>
<if test="sourceFrom != null">
source_from = #{sourceFrom},
</if>
<if test="showState != null">
show_state = #{showState},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="createUser != null">
create_user = #{createUser},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from book.resource_recom_manage where id = #{id}
</delete>
<select id="deleteByServe" parameterType="map">
DELETE
from book.resource_recom_manage
where serve_id = #{serveId}
and source_from = #{sourceFrom}
and serve_type = #{serveType}
</select>
<select id="mapResourceRecomManage" parameterType="map" resultMap="ResourceRecomManageMap">
SELECT
<include refid="Base_Column_List"/>
FROM
resource_recom_manage
WHERE
serve_id IN
<foreach collection="serveIds" index="index" separator="," item="item" close=")" open="(">
#{item}
</foreach>
AND source_from = #{sourceFrom}
AND serve_type = #{serveType}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment