Commit b1beb49b by 田超

Merge branch 'feature/1006137' into 'master'

feat: [1006037] 更改根据书籍推送数据来源

See merge request rays/pcloud-book!1471
parents a037ddeb cdd9f338
package com.pcloud.book.book.biz;
import com.pcloud.book.book.entity.BookUserBrowseRecord;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/**
* 书籍用户关联表(BookUserBrowseRecord)表服务接口
*
* @author wubo
* @since 2021-12-03 10:40:19
*/
public interface BookUserBrowseRecordBiz {
/**
* 通过ID查询单条数据
*
* @param bookId 主键
* @return 实例对象
*/
BookUserBrowseRecord getById(Long bookId);
/**
* 分页查询
*/
PageBeanNew getList(Integer currentPage, Integer numPerPage);
/**
* 新增数据
*
* @param bookUserBrowseRecord 实例对象
* @return 主键
*/
Long insert(BookUserBrowseRecord bookUserBrowseRecord);
/**
* 修改数据
*
* @param bookUserBrowseRecord 实例对象
*/
void update(BookUserBrowseRecord bookUserBrowseRecord);
/**
* 通过主键删除数据
*
* @param bookId 主键
* @return 是否成功
*/
void deleteById(Long bookId);
/**
* 通过主键软删除数据
*
* @param bookId 主键
* @return 是否成功
*/
void softDeleteById(Long bookId);
/**
* 根据书籍id获取用户id
* @param bookIds
* @return
*/
List<Long> getUserIdsByBookId(List<Long> bookIds);
}
package com.pcloud.book.book.biz.impl;
import com.pcloud.book.book.entity.BookUserBrowseRecord;
import com.pcloud.book.book.dao.BookUserBrowseRecordDao;
import com.pcloud.book.book.biz.BookUserBrowseRecordBiz;
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;
/**
* 书籍用户关联表(BookUserBrowseRecord)表服务实现类
*
* @author wubo
* @since 2021-12-03 10:40:19
*/
@Service("bookUserBrowseRecordBiz")
public class BookUserBrowseRecordBizImpl implements BookUserBrowseRecordBiz {
private static final Logger LOGGER = LoggerFactory.getLogger(BookUserBrowseRecordBizImpl.class);
@Autowired
private BookUserBrowseRecordDao bookUserBrowseRecordDao;
@Override
@ParamLog("通过ID查询单条数据")
public BookUserBrowseRecord getById(Long bookId) {
return bookUserBrowseRecordDao.getById(bookId);
}
@Override
@ParamLog("查询多条数据")
public PageBeanNew getList(Integer currentPage, Integer numPerPage) {
PageBeanNew pageBeanNew = bookUserBrowseRecordDao.listPageNew(new PageParam(currentPage, numPerPage), null, "getList");
List recordList = pageBeanNew.getRecordList();
if (ListUtils.isEmpty(recordList)) {
return pageBeanNew;
}
// 加载其它数据
return pageBeanNew;
}
@Override
@ParamLog("新增")
public Long insert(BookUserBrowseRecord bookUserBrowseRecord) {
bookUserBrowseRecordDao.insert(bookUserBrowseRecord);
return bookUserBrowseRecord.getBookId();
}
@Override
@ParamLog("修改")
public void update(BookUserBrowseRecord bookUserBrowseRecord) {
if (bookUserBrowseRecord == null || !NumberUtil.isNumber(bookUserBrowseRecord.getBookId())) {
throw BizException.PARAM_IS_NULL;
}
bookUserBrowseRecordDao.update(bookUserBrowseRecord);
}
@Override
@ParamLog("删除")
public void deleteById(Long bookId) {
bookUserBrowseRecordDao.deleteById(bookId);
}
@Override
@ParamLog("软删除")
public void softDeleteById(Long bookId) {
bookUserBrowseRecordDao.softDeleteById(bookId);
}
@Override
public List<Long> getUserIdsByBookId(List<Long> bookIds) {
if (ListUtils.isEmpty(bookIds)) {
return new ArrayList<>();
}
return bookUserBrowseRecordDao.getUserIdsByBookId(bookIds);
}
}
package com.pcloud.book.book.dao;
import com.pcloud.book.book.entity.BookUserBrowseRecord;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* 书籍用户关联表(BookUserBrowseRecord)表数据库访问层
*
* @author wubo
* @since 2021-12-03 10:40:19
*/
public interface BookUserBrowseRecordDao extends BaseDao<BookUserBrowseRecord> {
int softDeleteById(Long bookId);
List<Long> getUserIdsByBookId(List<Long> bookIds);
}
package com.pcloud.book.book.dao.impl;
import com.pcloud.book.book.entity.BookUserBrowseRecord;
import com.pcloud.book.book.dao.BookUserBrowseRecordDao;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 书籍用户关联表(BookUserBrowseRecord)表数据库访问层
*
* @author wubo
* @since 2021-12-03 10:40:19
*/
@Repository("bookUserBrowseRecordDaoImpl")
public class BookUserBrowseRecordDaoImpl extends BaseDaoImpl<BookUserBrowseRecord> implements BookUserBrowseRecordDao {
public int softDeleteById(Long bookId) {
return getSessionTemplate().update(getStatement("softDeleteById"), bookId);
}
@Override
public List<Long> getUserIdsByBookId(List<Long> bookIds) {
return getSessionTemplate().selectList(getStatement("getUserIdsByBookId"), bookIds);
}
}
package com.pcloud.book.book.entity;
import java.util.Date;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 书籍用户关联表(BookUserBrowseRecord)实体类
*
* @author wubo
* @since 2021-12-03 10:40:19
*/
@Data
public class BookUserBrowseRecord extends BaseEntity {
private static final long serialVersionUID = -85885294664372984L;
@ApiModelProperty("书籍id")
private Long bookId;
@ApiModelProperty("用户id")
private Long userId;
@ApiModelProperty("时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
package com.pcloud.book.book.facade;
import com.pcloud.book.book.entity.BookUserBrowseRecord;
import com.pcloud.book.book.biz.BookUserBrowseRecordBiz;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import io.swagger.annotations.ApiOperation;
import com.pcloud.common.utils.cookie.Cookie;
/**
* 书籍用户关联表(BookUserBrowseRecord)表控制层
*
* @author wubo
* @since 2021-12-03 10:40:19
*/
@RestController("bookUserBrowseRecordFacade")
@RequestMapping("bookUserBrowseRecord")
public class BookUserBrowseRecordFacade {
@Autowired
private BookUserBrowseRecordBiz bookUserBrowseRecordBiz;
@ApiOperation("通过主键查询单条数据")
@GetMapping("getById")
public ResponseDto<?> getById(@CookieValue("userInfo") String userInfo,
@RequestParam Long bookId) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>(bookUserBrowseRecordBiz.getById(bookId));
}
@ApiOperation("分页查询")
@GetMapping("getList")
public ResponseDto<?> getList(@CookieValue("userInfo") String userInfo,
@RequestParam(value = "currentPage", defaultValue = "0") Integer currentPage,
@RequestParam(value = "numPerPage", defaultValue = "10") Integer numPerPage)
throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>(bookUserBrowseRecordBiz.getList(currentPage, numPerPage));
}
@ApiOperation("新增")
@PostMapping("insert")
public ResponseDto<?> insert(@CookieValue("userInfo") String userInfo,
@RequestBody BookUserBrowseRecord bookUserBrowseRecord)
throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>(bookUserBrowseRecordBiz.insert(bookUserBrowseRecord));
}
@ApiOperation("更新")
@PostMapping("update")
public ResponseDto<?> update(@CookieValue("userInfo") String userInfo,
@RequestBody BookUserBrowseRecord bookUserBrowseRecord) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
bookUserBrowseRecordBiz.update(bookUserBrowseRecord);
return new ResponseDto<>();
}
@ApiOperation("删除")
@GetMapping("deleteById")
public ResponseDto<?> deleteById(@CookieValue("userInfo") String userInfo,
@RequestParam Long bookId) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>();
}
@ApiOperation("软删除")
@GetMapping("softDeleteById")
public ResponseDto<?> softDeleteById(@CookieValue("userInfo") String userInfo,
@RequestParam Long bookId) throws BizException, PermissionException {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
return new ResponseDto<>();
}
}
......@@ -10,6 +10,7 @@ import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.dto.ServeItemInfoDTO;
import com.pcloud.book.applet.enums.AppletRecordTypeEnum;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookUserBrowseRecordBiz;
import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dao.SearchRecordDao;
import com.pcloud.book.book.dto.AdviserBookInfoDTO;
......@@ -114,11 +115,13 @@ public class CultivateNotifyBizImpl implements CultivateNotifyBiz {
private AppConsr appConsr;
@Autowired
private ProductConsr productConsr;
@Autowired
private BookUserBrowseRecordBiz bookUserBrowseRecordBiz;
@Override
@Transactional(rollbackFor = Exception.class)
public void createNotify(CultivateNotifyDTO cultivateNotifyDTO) {
public void createNotify(CultivateNotifyDTO cultivateNotifyDTO) {
notifyParamCheck.createNotifyCheck(cultivateNotifyDTO);
CultivateNotify cultivateNotify=new CultivateNotify();
cultivateNotify.setMessageType(cultivateNotifyDTO.getMessageType());
......@@ -264,7 +267,7 @@ public class CultivateNotifyBizImpl implements CultivateNotifyBiz {
}
//书刊发送
if(NotifySendTypeEnum.BOOK_USER.value.equals(cultivateNotifyDTO.getSendType())){
List<Long> wechatUserIds = readerConsr.getMiniUsersByBookIds(cultivateNotifyDTO.getBookIds());
List<Long> wechatUserIds = bookUserBrowseRecordBiz.getUserIdsByBookId(cultivateNotifyDTO.getBookIds());
if(ListUtils.isEmpty(wechatUserIds)){
return;
}
......
<?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.book.dao.impl.BookUserBrowseRecordDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.book.entity.BookUserBrowseRecord">
<result column="book_id" property="bookId" jdbcType="BIGINT"/>
<result column="user_id" property="userId" jdbcType="BIGINT"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
book_id, user_id, update_time
</sql>
<select id="getById" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM book_user_browse_record
WHERE book_id = #{bookId}
</select>
<select id="getList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM book_user_browse_record
</select>
<insert id="insert" keyProperty="bookId" useGeneratedKeys="true">
INSERT INTO book_user_browse_record(update_time)
VALUES (#{updateTime, jdbcType=TIMESTAMP})
</insert>
<insert id="batchInsert">
INSERT INTO book_user_browse_record (
update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.updateTime, jdbcType=TIMESTAMP}
)
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
UPDATE book_user_browse_record
<set>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
WHERE book_id = #{bookId}
</update>
<!--通过主键删除-->
<delete id="deleteById">
DELETE
FROM book_user_browse_record
where book_id = #{bookId}
</delete>
<!--通过主键软删除-->
<delete id="softDeleteById">
update book_user_browse_record
set is_delete = 1,
update_time = now()
where book_id = #{bookId}
</delete>
<select id="getUserIdsByBookId" parameterType="list" resultType="long">
select
distinct user_id
from
book_user_browse_record
where
book_id in
<foreach collection="list" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
</mapper>
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