Commit e5465d27 by 郑勇

feat: [1005635] 应用算法推荐

parent d0ecd686
......@@ -459,4 +459,6 @@ public class BookConstant {
*/
public static final Long QQ_ACCOUNT_SETTING_ID = 999L;
public static final String SUPER_MERCHANT_LIST = CacheConstant.BOOK + "superMerchantList";
}
package com.pcloud.book.book.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 是否开启商品推荐
*/
@Data
public class OpenRecommendVO {
@ApiModelProperty("是否开启商品推荐")
private Integer isOpenRecommend;
@ApiModelProperty("推荐商品来源(1-我的应用作品,2-我的作品,同社作品,0-2的基础上加超级作者作品)")
private Integer recommendFromType;
}
......@@ -466,4 +466,14 @@ public interface BookAdviserBiz {
* @return
*/
Integer getJumpBookState(Long bookId, Long adviserId, Long channelId);
/**
* 设置是否开启商品推荐
*/
void updateOpenRecommend(Long bookId, Long adviserId, Long channelId, Integer isOpenRecommend, Integer recommendFromType);
/**
* 查看是否开启商品推荐
*/
OpenRecommendVO getOpenRecommend(Long sceneId, Long bookId, Long adviserId, Long channelId);
}
......@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
......@@ -3401,4 +3402,35 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
}
return jumpBookState;
}
@Override
public void updateOpenRecommend(Long bookId, Long adviserId, Long channelId, Integer isOpenRecommend, Integer recommendFromType) {
if (ObjectUtil.hasEmpty(bookId,adviserId,channelId,isOpenRecommend,recommendFromType)) {
throw new BizException(BizException.PARAM_IS_NULL.getCode(), "缺少参数!");
}
bookAdviserDao.updateOpenRecommend(bookId, adviserId, channelId, isOpenRecommend,recommendFromType);
}
@Override
public OpenRecommendVO getOpenRecommend(Long sceneId, Long bookId, Long adviserId, Long channelId) {
OpenRecommendVO openRecommendVO=null;
if(null == sceneId && null == bookId && null == adviserId && null == channelId) {
return openRecommendVO;
}
if (null != bookId) {
openRecommendVO = bookAdviserDao.getOpenRecommend(bookId, adviserId, channelId);
} else if (null != sceneId) {
//根据sceneId获取二维码信息
Map<Long, QrcodeSceneDto> qrcodeSceneDtoMap = qrcodeSceneConsr.listBaseInfoByIds(Lists.newArrayList(sceneId));
if (MapUtils.isEmpty(qrcodeSceneDtoMap) || null == qrcodeSceneDtoMap.get(sceneId)) {
return openRecommendVO;
}
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneDtoMap.get(sceneId);
if (null == qrcodeSceneDto || null == qrcodeSceneDto.getAdviserBookId()) {
return openRecommendVO;
}
openRecommendVO = bookAdviserDao.getOpenRecommend(qrcodeSceneDto.getAdviserBookId(), qrcodeSceneDto.getCreatedByUserLogin(),qrcodeSceneDto.getChannelPartyId());
}
return openRecommendVO;
}
}
......@@ -13,6 +13,7 @@ import com.pcloud.book.book.dto.BookCountDto;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.ERPPublishNumDTO;
import com.pcloud.book.book.dto.ErpBookInfoDTO;
import com.pcloud.book.book.dto.OpenRecommendVO;
import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.vo.AgentBookStatsDetailVO;
import com.pcloud.book.book.vo.BookInfo4ScanCount;
......@@ -343,4 +344,8 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
List<Long> getYesterdayUpdateBookIds(String startTime, String endTime);
void updateJumpBookState(Long bookId, Long adviserId, Long channelId, Integer isJumpBook);
void updateOpenRecommend(Long bookId, Long adviserId, Long channelId, Integer isOpenRecommend, Integer recommendFromType);
OpenRecommendVO getOpenRecommend(Long bookId, Long adviserId, Long channelId);
}
......@@ -18,6 +18,7 @@ import com.pcloud.book.book.dto.BookCountDto;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.ERPPublishNumDTO;
import com.pcloud.book.book.dto.ErpBookInfoDTO;
import com.pcloud.book.book.dto.OpenRecommendVO;
import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.vo.AgentBookStatsDetailVO;
import com.pcloud.book.book.vo.BookInfo4ScanCount;
......@@ -503,4 +504,24 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
paramMap.put("isJumpBook", isJumpBook);
getSessionTemplate().update(getStatement("updateJumpBookState"), paramMap);
}
@Override
public void updateOpenRecommend(Long bookId, Long adviserId, Long channelId, Integer isOpenRecommend, Integer recommendFromType) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId",bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
paramMap.put("isOpenRecommend", isOpenRecommend);
paramMap.put("recommendFromType", recommendFromType);
getSessionTemplate().update(getStatement("updateOpenRecommend"), paramMap);
}
@Override
public OpenRecommendVO getOpenRecommend(Long bookId, Long adviserId, Long channelId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId",bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
return getSessionTemplate().selectOne(getStatement("getOpenRecommend"), paramMap);
}
}
......@@ -533,4 +533,30 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
return new ResponseDto<>( bookAdviserBiz.getJumpBookState(bookId, adviserId, channelId));
}
/**
* 设置是否开启商品推荐
*/
@RequestMapping(value = "updateOpenRecommend", method = RequestMethod.GET)
public ResponseDto<?> updateOpenRecommend(@RequestHeader("token") String token,
@RequestParam(value = "bookId") Long bookId,
@RequestParam(value = "channelId") Long channelId,
@RequestParam(value = "isOpenRecommend") Integer isOpenRecommend,
@RequestParam(value = "recommendFromType") Integer recommendFromType
) throws PermissionException {
Long adviserId = (Long)SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
bookAdviserBiz.updateOpenRecommend(bookId, adviserId, channelId, isOpenRecommend,recommendFromType);
return new ResponseDto<>();
}
/**
* 查看是否开启商品推荐
*/
@RequestMapping(value = "getOpenRecommend", method = RequestMethod.GET)
public ResponseDto<?> getOpenRecommend(@RequestParam(value = "sceneId",required = false) Long sceneId,
@RequestParam(value = "bookId",required = false) Long bookId,
@RequestParam(value = "adviserId",required = false) Long adviserId,
@RequestParam(value = "channelId", required = false) Long channelId) throws PermissionException {
return new ResponseDto<>(bookAdviserBiz.getOpenRecommend(sceneId,bookId, adviserId, channelId));
}
}
......@@ -20,13 +20,16 @@ import com.pcloud.channelcenter.wechat.entity.AccountSetting;
import com.pcloud.channelcenter.wechat.service.AccountSettingService;
import com.pcloud.channelcenter.wechat.service.MessageService;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.promotion.base.exception.PromotionException;
import com.pcloud.usercenter.party.channel.service.ChannelService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......@@ -353,4 +356,26 @@ public class ChannelConsr {
return new ArrayList<>();
}
}
/**
* 根据渠道标识,批量获取公众号信息
*/
public Map<Long, AccountSettingDto> listWechatAccountInfo(List<Long> channelIds) throws BizException {
LOGGER.warn("获取公众号信息[accountSettingService.listWechatAccountInfo],参数列表[channelIds]:" + channelIds);
Map<Long, AccountSettingDto> result=new HashMap<>();
if(CollUtil.isEmpty(channelIds)){
return new HashMap<>();
}
try {
ResponseEntity<ResponseDto<Map<Long, AccountSettingDto>>> response = accountSettingService.listWechat(channelIds);
result = ResponseHandleUtil.parseMap(response, Long.class,AccountSettingDto.class);
} catch (BizException e) {
LOGGER.error("获取公众号信息[accountSettingService.listWechatAccountInfo]:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("获取公众号信息[accountSettingService.listWechatAccountInfo]:" + e.getMessage(), e);
throw new PromotionException(PromotionException._ERROR, "获取公众号信息~!");
}
return result;
}
}
package com.pcloud.book.consumer.user;
import com.pcloud.book.applet.contants.AppletConstants;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.util.common.CommonUtils;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.resourcecenter.base.constants.ResourceRedisCons;
import com.pcloud.usercenter.party.merchant.service.MerchantService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import cn.hutool.core.collection.CollUtil;
/**
* @Description
* @Author ruansiyuan
......@@ -59,4 +67,21 @@ public class MerchantConsr {
}
return map;
}
public List<Long> getSuperMerchantIdList() throws BizException {
List<Long> result = null;
try {
result = JedisClusterUtils.getJsonList(BookConstant.SUPER_MERCHANT_LIST, Long.class);
if(CollUtil.isEmpty(result)){
Map<Long, Long> map = ResponseHandleUtil.parseMapResponse(merchantService.getSuperMerchantList(), Long.class, Long.class);
result = CollUtil.isEmpty(map) ? new ArrayList<>()
: new ArrayList<>(map.keySet());
JedisClusterUtils.setJsonList(BookConstant.SUPER_MERCHANT_LIST, result,
CommonUtils.todayRemainingSeconds());
}
} catch (Exception e) {
LOGGER.error("获取所有超级作者id,<ERROR>.[getSuperMerchantList]:" + e.getMessage(), e);
}
return result;
}
}
......@@ -14,6 +14,7 @@ import com.pcloud.book.group.entity.ResourcePageCollect;
import com.pcloud.book.group.entity.ResourcePagePic;
import com.pcloud.book.group.entity.ResourcePageTool;
import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.vo.RecommendServeVO;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
import com.pcloud.book.group.vo.ResourcePageItemVO;
import com.pcloud.book.group.vo.ResourcePageOneServe;
......@@ -472,4 +473,14 @@ public interface ResourcePageBiz {
* * @param null
*/
Boolean checkBookChildGrade(Long bookId, Long adviserId, Long channelId);
/**
* 客户端-查询书刊推荐资源
*/
List<RecommendServeVO> getBookRecommendServe(Long wechatUserId, Long bookId, Long adviserId, Long channelId,Long sceneId);
/**
* 客户端-查询应用或作品推荐资源
*/
List<RecommendServeVO> getAppRecommendServe(Long wechatUserId, Long bookId, Long adviserId, Long channelId, Long serveId, String serveType,Long sceneId);
}
......@@ -12,8 +12,8 @@ import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import com.pcloud.common.utils.encrypt.AESUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -347,4 +347,28 @@ public class ResourcePageFacade {
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.getPopupQrcode4Wechat(resourcePageId, wechatUserId));
}
@ApiOperation("客户端-查询书刊推荐资源")
@GetMapping("getBookRecommendServe")
public ResponseDto<?> getBookRecommendServe(@CookieValue("userInfo") String userInfo,
@RequestParam(value = "bookId", required = false) Long bookId,
@RequestParam(value = "adviserId", required = false) Long adviserId,
@RequestParam(value = "sceneId", required = false) Long sceneId,
@RequestParam(value = "channelId", required = false) Long channelId) {
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.getBookRecommendServe(wechatUserId, bookId, adviserId, channelId,sceneId));
}
@ApiOperation("客户端-查询应用或作品推荐资源")
@GetMapping("getServeRecommendList")
public ResponseDto<?> getAppRecommendServe(@CookieValue("userInfo") String userInfo,
@RequestParam(value = "bookId", required = false) Long bookId,
@RequestParam(value = "adviserId", required = false) Long adviserId,
@RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "sceneId", required = false) Long sceneId,
@RequestParam(value = "serveId", required = false) Long serveId,
@RequestParam(value = "serveType", required = false) String serveType) {
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.getAppRecommendServe(wechatUserId, bookId, adviserId, channelId,serveId, serveType,sceneId));
}
}
package com.pcloud.book.group.vo;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.applet.dto.GroupActivity4AppletDTO;
import com.pcloud.book.applet.entity.AppletThirdResources;
import com.pcloud.book.book.vo.response.BookQrcodeWxworkResponseVO;
import com.pcloud.common.dto.BaseDto;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 推荐资源vo
*/
@Data
public class RecommendServeVO extends BaseDto{
/**
* 资源id
*/
private Long serveId;
/**
* 资源类型
*/
private String serveType;
/**
* 资源类型
*/
private String typeCode;
/**
* 二维码来源
*/
private Integer qrcodeSource;
/**资源其他信息**/
private String serveName;
private String servePic;
private String typeName;
private String transverseImg;
private BigDecimal price;
private Long channelId;
private Long sceneId;
/**
* 二维码公众号id
*/
private Long accountSettingId;
/**
* 二维码公众号名称
*/
private String accountSettingName;
private String domain;
private String firstDomain;
private Long random;
private String appDomain;
/**
* http协议
*/
private String protocol;
/**
* 是否购买
*/
private Boolean buyState;
@ApiModelProperty("商品应用中有第三方链接")
private Boolean hasThirdLink;
}
package com.pcloud.book.recommend.biz;
import com.pcloud.book.recommend.dto.RecommendServeDto;
import com.pcloud.book.recommend.entity.BookRecommend;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/**
* 基于书的推荐(BookRecommend)表服务接口
*
* @author makejava
* @since 2021-10-29 15:21:57
*/
public interface BookRecommendBiz {
/**
* 通过ID查询单条数据
*/
List<RecommendServeDto> getById(Long bookId, Long channelId, Long adviserId, Integer fromType);
/**
* 查应用或作品的资源推荐
*/
List<RecommendServeDto> getByServeId(Long adviserId,Long serveId, String serveType, Integer fromType);
}
\ No newline at end of file
package com.pcloud.book.recommend.biz.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.pcloud.book.recommend.dao.ResourceRecommendDao;
import com.pcloud.book.recommend.dto.RecommendServeDto;
import com.pcloud.book.recommend.entity.BookRecommend;
import com.pcloud.book.recommend.dao.BookRecommendDao;
import com.pcloud.book.recommend.biz.BookRecommendBiz;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.NumberUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
/**
* 基于书的推荐(BookRecommend)表服务实现类
*
* @author makejava
* @since 2021-10-29 15:21:58
*/
@Service("bookRecommendBiz")
public class BookRecommendBizImpl implements BookRecommendBiz {
private static final Logger LOGGER = LoggerFactory.getLogger(BookRecommendBizImpl.class);
@Autowired
private BookRecommendDao bookRecommendDao;
@Autowired
private ResourceRecommendDao resourceRecommendDao;
@Override
public List<RecommendServeDto> getById(Long bookId, Long channelId, Long adviserId, Integer fromType) {
String recommend=bookRecommendDao.getBookRecommend(bookId,channelId,adviserId,fromType);
if(StrUtil.isBlank(recommend)){
return null;
}
List<RecommendServeDto> result = getRecommendServeDtos(recommend);
if (result == null) return null;
return result;
}
private List<RecommendServeDto> getRecommendServeDtos(String recommend) {
List<String> ids = JSONArray.parseArray(recommend, String.class);
if(CollUtil.isEmpty(ids)){
return null;
}
List<RecommendServeDto> result=new ArrayList<>();
RecommendServeDto recommendServeDto;
for (String id : ids) {
recommendServeDto=new RecommendServeDto();
Long serveId=null;
String prefix=null;
if(id.startsWith("AP")){
recommendServeDto.setServeType("APP");
prefix="AP";
}else if(id.startsWith("PD")){
recommendServeDto.setServeType("PRODUCT");
prefix="PD";
}else{
continue;
}
String ap = id.replace(prefix, "");
try {
serveId = Long.valueOf(ap);
} catch (NumberFormatException e) {
continue;
}
recommendServeDto.setServeId(serveId);
result.add(recommendServeDto);
}
return result;
}
@Override
public List<RecommendServeDto> getByServeId(Long adviserId,Long serveId, String serveType, Integer fromType) {
String recommend=resourceRecommendDao.getServeRecommend(adviserId,serveId,serveType,fromType);
if(StrUtil.isBlank(recommend)){
return null;
}
List<RecommendServeDto> result = getRecommendServeDtos(recommend);
if (result == null) return null;
return result;
}
}
package com.pcloud.book.recommend.dao;
import com.pcloud.book.recommend.entity.BookRecommend;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* 基于书的推荐(BookRecommend)表数据库访问层
*
* @author makejava
* @since 2021-10-29 15:21:56
*/
public interface BookRecommendDao extends BaseDao<BookRecommend> {
String getBookRecommend(Long bookId, Long channelId, Long adviserId, Integer fromType);
}
\ No newline at end of file
package com.pcloud.book.recommend.dao;
import com.pcloud.book.recommend.entity.ResourceRecommend;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* 基于资源的推荐(ResourceRecommend)表数据库访问层
*
* @author makejava
* @since 2021-10-29 15:22:48
*/
public interface ResourceRecommendDao extends BaseDao<ResourceRecommend> {
String getServeRecommend(Long adviserId,Long serveId, String serveType, Integer fromType);
}
\ No newline at end of file
package com.pcloud.book.recommend.dao.impl;
import com.pcloud.book.recommend.entity.BookRecommend;
import com.pcloud.book.recommend.dao.BookRecommendDao;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 基于书的推荐(BookRecommend)表数据库访问层
*
* @author makejava
* @since 2021-10-29 15:21:57
*/
@Repository("bookRecommendDaoImpl")
public class BookRecommendDaoImpl extends BaseDaoImpl<BookRecommend> implements BookRecommendDao {
@Override
public String getBookRecommend(Long bookId, Long channelId, Long adviserId, Integer fromType) {
Map<String,Object> paramMap=new HashMap<>();
paramMap.put("bookId",bookId);
paramMap.put("channelId",channelId);
paramMap.put("adviserId",adviserId);
paramMap.put("fromType",fromType);
return super.getSessionTemplate().selectOne(getStatement("getBookRecommend"),paramMap);
}
}
\ No newline at end of file
package com.pcloud.book.recommend.dao.impl;
import com.pcloud.book.recommend.entity.ResourceRecommend;
import com.pcloud.book.recommend.dao.ResourceRecommendDao;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 基于资源的推荐(ResourceRecommend)表数据库访问层
*
* @author makejava
* @since 2021-10-29 15:22:48
*/
@Repository("resourceRecommendDaoImpl")
public class ResourceRecommendDaoImpl extends BaseDaoImpl<ResourceRecommend> implements ResourceRecommendDao {
@Override
public String getServeRecommend(Long adviserId,Long serveId, String serveType, Integer fromType) {
Map<String,Object> paramMap=new HashMap<>();
paramMap.put("serveId",serveId);
paramMap.put("serveType",serveType);
paramMap.put("fromType",fromType);
paramMap.put("adviserId",adviserId);
return super.getSessionTemplate().selectOne(getStatement("getServeRecommend"),paramMap);
}
}
\ No newline at end of file
package com.pcloud.book.recommend.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassName com.pcloud.book.recommend.dto.RecommendServeDto
* @Author David
* @Description
* @Date 2021/10/29 18:16
* @Version 1.0
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RecommendServeDto {
@ApiModelProperty("服务标识")
private Long serveId;
@ApiModelProperty("服务类型")
private String serveType;
}
package com.pcloud.book.recommend.entity;
import java.util.Date;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 基于书的推荐(BookRecommend)实体类
*
* @author makejava
* @since 2021-10-29 15:21:53
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookRecommend extends BaseEntity {
private static final long serialVersionUID = 780912455843928302L;
@ApiModelProperty("书刊id")
private Long bookId;
@ApiModelProperty("编辑id")
private Long adviserId;
@ApiModelProperty("渠道id")
private Integer channelId;
@ApiModelProperty("推荐类型")
private Integer resourceLimitType;
@ApiModelProperty("推荐id集合")
private String recommendList;
@ApiModelProperty("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
\ No newline at end of file
package com.pcloud.book.recommend.entity;
import java.util.Date;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 基于资源的推荐(ResourceRecommend)实体类
*
* @author makejava
* @since 2021-10-29 15:22:48
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ResourceRecommend extends BaseEntity {
private static final long serialVersionUID = 910936933680168511L;
@ApiModelProperty("编辑id")
private Long adviserId;
@ApiModelProperty("应用或作品id")
private Integer productOrAppId;
@ApiModelProperty("服务类型")
private String serverType;
@ApiModelProperty("商品来源")
private Integer resourceLimitType;
@ApiModelProperty("推荐id集合")
private String recommendList;
@ApiModelProperty("修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
\ No newline at end of file
......@@ -1329,4 +1329,40 @@
IS_DELETE = 0
</update>
<update id="updateOpenRecommend" parameterType="map">
update
book_adviser
set
is_open_recommend = #{isOpenRecommend},
recommend_from_type = #{recommendFromType},
last_modified_date = NOW()
where
book_id = #{bookId, jdbcType=BIGINT}
AND
adviser_id = #{adviserId, jdbcType=BIGINT}
AND
channel_id = #{channelId, jdbcType=BIGINT}
and
is_delete = 0
</update>
<select id="getOpenRecommend" parameterType="map" resultType="com.pcloud.book.book.dto.OpenRecommendVO">
select
is_open_recommend isOpenRecommend,
recommend_from_type recommendFromType
from
book_adviser
where
book_id = #{bookId}
<if test="adviserId != null">
and adviser_id = #{adviserId}
</if>
<if test="channelId != null">
and channel_id = #{channelId}
</if>
and
is_delete = 0
limit 1
</select>
</mapper>
<?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.recommend.dao.impl.BookRecommendDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.recommend.entity.BookRecommend">
<result column="book_id" property="bookId" jdbcType="BIGINT"/>
<result column="adviser_id" property="adviserId" jdbcType="BIGINT"/>
<result column="channel_id" property="channelId" jdbcType="INTEGER"/>
<result column="resource_limit_type" property="resourceLimitType" jdbcType="INTEGER"/>
<result column="recommend_list" property="recommendList" jdbcType="VARCHAR"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
book_id, adviser_id, channel_id, resource_limit_type, recommend_list, update_time
</sql>
<select id="getById" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM book_recommend
WHERE book_id = #{bookId}
</select>
<!--通过主键删除-->
<delete id="deleteById">
DELETE FROM book_recommend WHERE book_id = #{bookId}
</delete>
<select id="getBookRecommend" parameterType="map" resultType="String">
select recommend_list
from book_recommend
where book_id=#{bookId}
and adviser_id=#{adviserId}
and channel_id=#{channelId}
and resource_limit_type=#{fromType}
limit 1
</select>
</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.recommend.dao.impl.ResourceRecommendDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.recommend.entity.ResourceRecommend">
<result column="adviser_id" property="adviserId" jdbcType="BIGINT"/>
<result column="product_or_app_id" property="productOrAppId" jdbcType="INTEGER"/>
<result column="server_type" property="serverType" jdbcType="VARCHAR"/>
<result column="resource_limit_type" property="resourceLimitType" jdbcType="INTEGER"/>
<result column="recommend_list" property="recommendList" jdbcType="VARCHAR"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
adviser_id, product_or_app_id, server_type, resource_limit_type, recommend_list, update_time
</sql>
<select id="getById" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM resource_recommend
WHERE adviser_id = #{adviserId}
</select>
<select id="getList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM resource_recommend
</select>
<insert id="insert" keyProperty="adviserId" useGeneratedKeys="true">
INSERT INTO resource_recommend(
recommend_list,
update_time
) VALUES (
#{recommendList, jdbcType=VARCHAR},
#{updateTime, jdbcType=TIMESTAMP}
)
</insert>
<insert id="batchInsert" keyProperty="adviserId" useGeneratedKeys="true">
INSERT INTO resource_recommend (
recommend_list,
update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.recommendList, jdbcType=VARCHAR},
#{item.updateTime, jdbcType=TIMESTAMP}
)
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
UPDATE resource_recommend
<set>
<if test="recommendList != null and recommendList != ''">
recommend_list = #{recommendList},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
WHERE adviser_id = #{adviserId}
</update>
<!--通过主键删除-->
<delete id="deleteById">
DELETE FROM resource_recommend WHERE adviser_id = #{adviserId}
</delete>
<select id="getServeRecommend" parameterType="map" resultType="String">
select recommend_list
from resource_recommend
where product_or_app_id=#{serveId}
and server_type=#{serveType}
and resource_limit_type=#{fromType}
and adviser_id=#{adviserId}
limit 1
</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