Commit 0afef03d by 田超

Merge branch 'feature/1003881' into 'master'

feat: [1003881] 小睿读书报告

See merge request rays/pcloud-book!1115
parents cabed4a0 755888a2
......@@ -67,4 +67,12 @@ public interface AppletService {
ResponseEntity<ResponseDto<Integer>> getPopupCount(@RequestParam("wechatUserId") Long wechatUserId,
@RequestParam("bookId") Long bookId,
@RequestParam("popupType") Integer popupType);
@ApiOperation("删除指定周的统计数据")
@GetMapping("deleteWeekAppletRecordStatis")
void deleteWeekAppletRecordStatis(@RequestParam("mondayDate")String mondayDate);
@ApiOperation("统计指定周的数据")
@GetMapping("addWeekAppletRecordStatis")
void addWeekAppletRecordStatis(@RequestParam("mondayDate")String mondayDate);
}
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.AppletRecordStatisDTO;
import com.pcloud.book.applet.dto.ReadBookWeekStatisDTO;
import com.pcloud.book.applet.entity.AppletRecordStatis;
import com.pcloud.common.page.PageBeanNew;
import java.util.Date;
import java.util.List;
/**
* 小睿小程序点击量统计(AppletRecordStatis)表服务接口
*
* @author makejava
* @since 2020-12-10 17:58:06
*/
public interface AppletRecordStatisBiz {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
AppletRecordStatis getById(Long id);
/**
* 分页查询
*/
PageBeanNew getList(Integer currentPage, Integer numPerPage);
/**
* 新增数据
*
* @param appletRecordStatis 实例对象
* @return 主键
*/
Long insert(AppletRecordStatis appletRecordStatis);
/**
* 修改数据
*
* @param appletRecordStatis 实例对象
*/
void update(AppletRecordStatis appletRecordStatis);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
void deleteById(Long id);
ReadBookWeekStatisDTO getReadBookWeekStatis(Long wechatUserId, String mondayDate);
/**
* 本周读书相关信息(阅读本数等)
*/
ReadBookWeekStatisDTO getReadBookWeekStatisDTO(Long wechatUserId, Date monday, Date sunday);
List<AppletRecordStatisDTO> getBookSourceWeekStatis(Long wechatUserId, String mondayDate);
List<AppletRecordStatisDTO> getBookNewsWeekStatis(Long wechatUserId, String mondayDate);
/**
* 删除指定日期的统计数据
*/
void deleteWeekAppletRecordStatis(String mondayDate);
/**
* 添加应用作品周统计数据
*/
void addWeekAppletRecordStatis(String mondayDate);
}
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.AppletRecordStatisReportDTO;
import com.pcloud.book.applet.entity.AppletRecordStatisReport;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/**
* 个人阅读报告总结(AppletRecordStatisReport)表服务接口
*
* @author makejava
* @since 2020-12-11 16:22:46
*/
public interface AppletRecordStatisReportBiz {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
AppletRecordStatisReport getById(Long id);
/**
* 分页查询
*/
PageBeanNew getList(Integer currentPage, Integer numPerPage);
/**
* 新增数据
*
* @param appletRecordStatisReport 实例对象
* @return 主键
*/
Long insert(AppletRecordStatisReport appletRecordStatisReport);
/**
* 修改数据
*
* @param appletRecordStatisReport 实例对象
*/
void update(AppletRecordStatisReport appletRecordStatisReport);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
void deleteById(Long id);
AppletRecordStatisReport getReadReport4Week(Long wechatUserId, String mondayDate);
PageBeanNew getReadReportList(Long wechatUserId, Integer currentPage, Integer numPerPage);
String shareReadReport(Long wechatUserId, String mondayDate);
}
package com.pcloud.book.applet.contants;
import com.pcloud.common.constant.CacheConstant;
import com.pcloud.common.utils.DateUtils;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
......@@ -58,6 +60,21 @@ public class AppletConstants {
public static final String APPLET_AGENT_STATISTIC = CacheConstant.BOOK +"APPLET:applet_agent_statistic";
/**
* 已读书刊列表
*/
public static final String APPLET_RECORD_USER_BOOK_LIST = CacheConstant.BOOK+"APPLET:getAllUserBookRecordList";
/**
* 阅读报告开始时间
*/
public static final Date APPLET_RECORD_STATIS_REPORT_START_DATE = DateUtils.getDateByStr("2020-11-30");
/**
* 最后一次历史统计报告的时间
*/
public static final String APPLET_RECORD_HISTORY_STATIS_REPORT_LAST_DATE = CacheConstant.BOOK + "APPLET:HISTORY_REPORT_LAST_DATE_";
/**
* 未配置答案的书刊
*/
public static final List<Long> NO_ANSWER_BOOK = Arrays.asList(
......
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.AppletRecordBookDTO;
import com.pcloud.book.applet.dto.AppletRecordDTO;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.dto.ReadBookDayStatisDTO;
import com.pcloud.book.applet.entity.AppletRecord;
import com.pcloud.common.core.dao.BaseDao;
......@@ -22,4 +24,10 @@ public interface AppletRecordDao extends BaseDao<AppletRecord> {
void updateDeleteState(Long fromId, Integer recordType);
List<Date> listReachableDate(Long wechatUserId);
List<ReadBookDayStatisDTO> getReadBookWeekStatis(Long wechatUserId, String mondayDate, String sundayDate);
List<AppletRecordBookDTO> getBooksByWechatUserId(Long wechatUserId);
Long getStatisUserCount(Date prevMonday, Date prevSunday);
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.AppletRecordStatisDTO;
import com.pcloud.book.applet.dto.ReadBookDayStatisDTO;
import com.pcloud.book.applet.entity.AppletRecordStatis;
import com.pcloud.common.core.dao.BaseDao;
import java.util.Date;
import java.util.List;
/**
* 小睿小程序点击量统计(AppletRecordStatis)表数据库访问层
*
* @author makejava
* @since 2020-12-10 17:58:06
*/
public interface AppletRecordStatisDao extends BaseDao<AppletRecordStatis> {
/**
* 每个应用、作品点击量详情
*/
List<AppletRecordStatisDTO> getBookSourceWeekStatis(Long wechatUserId, Date mondayDate);
/**
* 本周的应用作品总点击量
*/
Integer getBookSourceTotalClickCount(Long wechatUserId, Date mondayDate);
List<AppletRecordStatisDTO> getBookNewsWeekStatics(Long wechatUserId, Date mondayDate);
Integer getBookNewsTotalClickCount(Long wechatUserId, Date mondayDate);
void addWeekAppletRecordStatis4App(Date prevMonday, Date prevSunday, Long limitStart, Long limitNumber);
void addWeekAppletRecordStatis4News(Date prevMonday, Date prevSunday, Long limitStart, Long limitNumber);
void deleteWeekAppletRecordStatis(String monday);
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.entity.AppletRecordStatisReport;
import com.pcloud.common.core.dao.BaseDao;
import java.util.Date;
import java.util.List;
/**
* 个人阅读报告总结(AppletRecordStatisReport)表数据库访问层
*
* @author makejava
* @since 2020-12-11 16:22:46
*/
public interface AppletRecordStatisReportDao extends BaseDao<AppletRecordStatisReport> {
AppletRecordStatisReport getByWechatUserId(Long wechatUserId, Date beginDate);
List<AppletRecordStatisReport> getUserHistoryReport(Long wechatUserId, List<Date> allMonday);
void insertOrUpdate(List<AppletRecordStatisReport> historyReportList);
AppletRecordStatisReport getFirstStatisReport(Long wechatUserId);
}
......@@ -2,8 +2,10 @@ package com.pcloud.book.applet.dao.impl;
import cn.hutool.core.map.MapUtil;
import com.pcloud.book.applet.dao.AppletRecordDao;
import com.pcloud.book.applet.dto.AppletRecordBookDTO;
import com.pcloud.book.applet.dto.AppletRecordDTO;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.dto.ReadBookDayStatisDTO;
import com.pcloud.book.applet.entity.AppletRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
......@@ -39,4 +41,28 @@ public class AppletRecordDaoImpl extends BaseDaoImpl<AppletRecord> implements Ap
public List<Date> listReachableDate(Long wechatUserId) {
return getSqlSession().selectList("listReachableDate", MapUtil.of("wechatUserId",wechatUserId));
}
@Override
public List<ReadBookDayStatisDTO> getReadBookWeekStatis(Long wechatUserId, String mondayDate, String sundayDate) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId", wechatUserId);
paramMap.put("mondayDate", mondayDate);
paramMap.put("sundayDate", sundayDate);
return this.sqlSessionTemplate.selectList(getStatement("getReadBookWeekStatis"),paramMap);
}
@Override
public List<AppletRecordBookDTO> getBooksByWechatUserId(Long wechatUserId) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId", wechatUserId);
return this.sqlSessionTemplate.selectList(getStatement("getBooksByWechatUserId"),paramMap);
}
@Override
public Long getStatisUserCount(Date prevMonday, Date prevSunday) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("prevMonday", prevMonday);
paramMap.put("prevSunday", prevSunday);
return this.sqlSessionTemplate.selectOne(getStatement("getStatisUserCount"), paramMap);
}
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dto.AppletRecordStatisDTO;
import com.pcloud.book.applet.entity.AppletRecordStatis;
import com.pcloud.book.applet.dao.AppletRecordStatisDao;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
* 小睿小程序点击量统计(AppletRecordStatis)表数据库访问层
*
* @author makejava
* @since 2020-12-10 17:58:06
*/
@Repository("appletRecordStatisDaoImpl")
public class AppletRecordStatisDaoImpl extends BaseDaoImpl<AppletRecordStatis> implements AppletRecordStatisDao {
@Override
public List<AppletRecordStatisDTO> getBookSourceWeekStatis(Long wechatUserId, Date mondayDate){
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId",wechatUserId);
paramMap.put("statisDate",mondayDate);
return this.sqlSessionTemplate.selectList(getStatement("getBookSourceWeekStatis"),paramMap);
}
@Override
public Integer getBookSourceTotalClickCount(Long wechatUserId, Date mondayDate) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId",wechatUserId);
paramMap.put("statisDate",mondayDate);
return this.sqlSessionTemplate.selectOne(getStatement("getBookSourceTotalClickCount"),paramMap);
}
@Override
public List<AppletRecordStatisDTO> getBookNewsWeekStatics(Long wechatUserId, Date mondayDate) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId",wechatUserId);
paramMap.put("statisDate",mondayDate);
return this.sqlSessionTemplate.selectList(getStatement("getBookNewsWeekStatics"),paramMap);
}
@Override
public Integer getBookNewsTotalClickCount(Long wechatUserId, Date mondayDate) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId",wechatUserId);
paramMap.put("statisDate",mondayDate);
return this.sqlSessionTemplate.selectOne(getStatement("getBookNewsTotalClickCount"),paramMap);
}
@Override
public void addWeekAppletRecordStatis4App(Date prevMonday, Date prevSunday, Long limitStart, Long limitNumber) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("prevMonday", prevMonday);
paramMap.put("prevSunday", prevSunday);
paramMap.put("limitStart", limitStart);
paramMap.put("limitNumber", limitNumber);
this.sqlSessionTemplate.insert(getStatement("addWeekAppletRecordStatis4App"), paramMap);
}
@Override
public void addWeekAppletRecordStatis4News(Date prevMonday, Date prevSunday, Long limitStart, Long limitNumber) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("prevMonday", prevMonday);
paramMap.put("prevSunday", prevSunday);
paramMap.put("limitStart", limitStart);
paramMap.put("limitNumber", limitNumber);
this.sqlSessionTemplate.insert(getStatement("addWeekAppletRecordStatis4News"), paramMap);
}
@Override
public void deleteWeekAppletRecordStatis(String monday) {
HashMap<String,Object> paramMap = new HashMap<>();
paramMap.put("monday", monday);
this.sqlSessionTemplate.insert(getStatement("deleteWeekAppletRecordStatis"), paramMap);
}
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.entity.AppletRecordStatisReport;
import com.pcloud.book.applet.dao.AppletRecordStatisReportDao;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
* 个人阅读报告总结(AppletRecordStatisReport)表数据库访问层
*
* @author makejava
* @since 2020-12-11 16:22:46
*/
@Repository("appletRecordStatisReportDaoImpl")
public class AppletRecordStatisReportDaoImpl extends BaseDaoImpl<AppletRecordStatisReport> implements AppletRecordStatisReportDao {
@Override
public AppletRecordStatisReport getByWechatUserId(Long wechatUserId, Date beginDate) {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId", wechatUserId);
paramMap.put("beginDate", beginDate);
return this.sqlSessionTemplate.selectOne(getStatement("getByWechatUserId"), paramMap);
}
@Override
public List<AppletRecordStatisReport> getUserHistoryReport(Long wechatUserId, List<Date> allMonday) {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId", wechatUserId);
paramMap.put("allMonday", allMonday);
return this.sqlSessionTemplate.selectList(getStatement("getUserHistoryReport"), paramMap);
}
@Override
public void insertOrUpdate(List<AppletRecordStatisReport> historyReportList) {
if(CollectionUtils.isEmpty(historyReportList)){
return;
}
this.sqlSessionTemplate.insert(getStatement("insertOrUpdate"), historyReportList);
}
@Override
public AppletRecordStatisReport getFirstStatisReport(Long wechatUserId) {
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("wechatUserId", wechatUserId);
return this.sqlSessionTemplate.selectOne(getStatement("getFirstStatisReport"), paramMap);
}
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class AppletRecordBookDTO {
private Long bookId;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createDate;
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 小睿小程序点击量统计(AppletRecordStatics)实体类
*
* @author makejava
* @since 2020-12-10 16:08:46
*/
@Data
public class AppletRecordStatisDTO {
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("记录类型")
private Integer recordType;
@ApiModelProperty("应用/作品类型/资源类型")
private String sourceType;
@ApiModelProperty("应用/作品类型/资源类型")
private String sourceTypeName;
@ApiModelProperty("点击量")
private Long clickCount;
@ApiModelProperty("占比")
private BigDecimal clickRatio = BigDecimal.ZERO;
@ApiModelProperty("占比")
private String strClickRatio;
@ApiModelProperty("统计日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date statisDate;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 个人阅读报告总结(AppletRecordStatisReport)实体类
*
* @author makejava
* @since 2020-12-11 16:22:46
*/
@Data
public class AppletRecordStatisReportDTO {
@ApiModelProperty("个人阅读报告总结主键")
private Long id;
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("统计开始日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date beginDate;
@ApiModelProperty("统计结束日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate;
@ApiModelProperty("评分")
private BigDecimal score;
@ApiModelProperty("比上周")
private BigDecimal compareScore;
@ApiModelProperty("超过的用户占比")
private BigDecimal compareUserRatio;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReadBookDayStatisDTO {
private Long wechatUserId;
@ApiModelProperty("当天读书本数")
private Integer readBookCount;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createDate;
@ApiModelProperty("周几")
private String dayOfWeek;
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReadBookWeekStatisDTO {
private Long wechatUserId;
@ApiModelProperty("本周读书本数")
private Integer readBookCount;
@ApiModelProperty("本周已读新书本数")
private Integer readNewBookCount;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date beginDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate;
private List<ReadBookDayStatisDTO> readBookDayStatisList;
}
......@@ -59,4 +59,6 @@ public class AppletRecord extends BaseEntity {
@ApiModelProperty("应用或作品的跳转链接")
private String linkUrl;
@ApiModelProperty("应用、作品类型")
private String typeCode;
}
package com.pcloud.book.applet.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;
/**
* 小睿小程序点击量统计(AppletRecordStatis)实体类
*
* @author makejava
* @since 2020-12-10 18:03:37
*/
@Data
public class AppletRecordStatis extends BaseEntity {
private static final long serialVersionUID = -47890081209136384L;
@ApiModelProperty("主键id")
private Long id;
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("记录类型")
private Integer recordType;
@ApiModelProperty("应用/作品类型/资源类型")
private String sourceType;
@ApiModelProperty("点击量")
private Long clickCount;
@ApiModelProperty("统计日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date statisDate;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
}
package com.pcloud.book.applet.entity;
import java.math.BigDecimal;
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;
/**
* 个人阅读报告总结(AppletRecordStatisReport)实体类
*
* @author makejava
* @since 2020-12-11 16:22:46
*/
@Data
public class AppletRecordStatisReport extends BaseEntity {
private static final long serialVersionUID = -66063403195993965L;
@ApiModelProperty("个人阅读报告总结主键")
private Long id;
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("统计开始日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date beginDate;
@ApiModelProperty("统计结束日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date endDate;
@ApiModelProperty("评分")
private BigDecimal score;
@ApiModelProperty("比上周")
private BigDecimal compareScore;
@ApiModelProperty("超过的用户占比")
private BigDecimal compareUserRatio;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
package com.pcloud.book.applet.facade;
import com.pcloud.book.applet.biz.AppletRecordStatisBiz;
import com.pcloud.book.applet.biz.AppletRecordStatisReportBiz;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.cookie.Cookie;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import io.swagger.annotations.ApiOperation;
/**
* 小睿小程序点击量统计(AppletRecordStatis)表控制层
*
* @author makejava
* @since 2020-12-10 17:58:06
*/
@RestController("appletRecordStatisFacade")
@RequestMapping("appletRecordStatis")
public class AppletRecordStatisFacade {
@Autowired
private AppletRecordStatisBiz appletRecordStatisBiz;
@Autowired
private AppletRecordStatisReportBiz appletRecordStatisReportBiz;
@ApiOperation("获取本周读书趋势")
@GetMapping("getReadBookWeekStatis")
public ResponseDto<?> getReadBookWeekStatis(@CookieValue("userInfo")String userInfo, @RequestParam("mondayDate")String mondayDate)throws BizException,PermissionException{
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletRecordStatisBiz.getReadBookWeekStatis(wechatUserId, mondayDate));
}
@ApiOperation("获取本周资源使用频率分布")
@GetMapping("getBookSourceWeekStatis")
public ResponseDto<?> getBookSourceWeekStatis(@CookieValue("userInfo")String userInfo, @RequestParam("mondayDate")String mondayDate)throws BizException,PermissionException{
Long wechatUserId=Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletRecordStatisBiz.getBookSourceWeekStatis(wechatUserId,mondayDate));
}
@ApiOperation("获取本周推荐资讯学习频率分布")
@GetMapping("getBookNewsWeekStatis")
public ResponseDto<?> getBookNewsWeekStatis(@CookieValue("userInfo")String userInfo, @RequestParam("mondayDate")String mondayDate)throws BizException,PermissionException{
Long wechatUserId=Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletRecordStatisBiz.getBookNewsWeekStatis(wechatUserId, mondayDate));
}
@ApiOperation("本周综合评分")
@GetMapping("getReadReport4Week")
public ResponseDto<?> getReadReport4Week(@CookieValue("userInfo")String userInfo, @RequestParam("mondayDate")String mondayDate)throws BizException,PermissionException{
Long wechatUserId=Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletRecordStatisReportBiz.getReadReport4Week(wechatUserId, mondayDate));
}
@ApiOperation("历史综合评分")
@GetMapping("getReadReportList")
public ResponseDto<?> getReadReportList(
@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<>(appletRecordStatisReportBiz.getReadReportList(wechatUserId, currentPage, numPerPage));
}
@ApiOperation("分享阅读报告")
@GetMapping("shareReadReport")
public ResponseDto<?> shareReadReport(@CookieValue("userInfo")String userInfo, @RequestParam("mondayDate")String mondayDate)throws BizException,PermissionException{
Long wechatUserId=Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(appletRecordStatisReportBiz.shareReadReport(wechatUserId, mondayDate));
}
}
package com.pcloud.book.applet.scheduleds;
import com.pcloud.book.applet.biz.AppletRecordStatisBiz;
import com.pcloud.book.skill.remind.RedisTool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component("appletRecordStatisSchedule")
public class AppletRecordStatisSchedule {
@Autowired
private AppletRecordStatisBiz appletRecordStatisBiz;
@Scheduled(cron = "0 0 1 ? * MON")
public void weekDataStatis() {
String key = "BOOK_APPLET_RECORD_WEEK_STATIS_SCHEDULE";
if (!RedisTool.lock(key)){
return;
}
new Thread(() -> {
appletRecordStatisBiz.addWeekAppletRecordStatis(null);
}).start();
}
}
......@@ -4,6 +4,7 @@ import com.pcloud.book.applet.biz.AnswerSubscribeBiz;
import com.pcloud.book.applet.biz.AppletBooklistBiz;
import com.pcloud.book.applet.biz.AppletBookClassifyBiz;
import com.pcloud.book.applet.biz.AppletNewsBiz;
import com.pcloud.book.applet.biz.AppletRecordStatisBiz;
import com.pcloud.book.applet.biz.AppletThirdResourcesStaticBiz;
import com.pcloud.book.applet.biz.ServeCollectBiz;
import com.pcloud.book.applet.dto.AppletNewsVO;
......@@ -17,6 +18,7 @@ import com.pcloud.book.skill.entity.PcloudGroupActivity;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.ResponseHandleUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
......@@ -59,6 +61,8 @@ public class AppletServiceImpl implements AppletService {
private ServeCollectBiz serveCollectBiz;
@Autowired
private RightsSettingBiz rightsSettingBiz;
@Autowired
private AppletRecordStatisBiz appletRecordStatisBiz;
@Override
......@@ -119,4 +123,18 @@ public class AppletServiceImpl implements AppletService {
@RequestParam("popupType") Integer popupType){
return ResponseHandleUtil.toResponse(rightsSettingBiz.getPopupCount(wechatUserId, bookId, popupType));
}
@Override
@ApiOperation("删除指定周的统计数据")
@GetMapping("deleteWeekAppletRecordStatis")
public void deleteWeekAppletRecordStatis(@RequestParam("mondayDate")String mondayDate) {
appletRecordStatisBiz.deleteWeekAppletRecordStatis(mondayDate);
}
@Override
@ApiOperation("统计指定周的数据")
@GetMapping("addWeekAppletRecordStatis")
public void addWeekAppletRecordStatis(@RequestParam("mondayDate")String mondayDate) {
appletRecordStatisBiz.addWeekAppletRecordStatis(mondayDate);
}
}
package com.pcloud.book.consumer.app;
import com.pcloud.appcenter.app.dto.AppTypeDto;
import com.pcloud.appcenter.app.service.AppTypeService;
import com.pcloud.appcenter.base.dto.AppPriceCacheDTO;
import com.pcloud.appcenter.cache.service.AppPriceCacheService;
import java.math.BigDecimal;
......@@ -41,6 +43,8 @@ public class AppConsr {
private AppService appService;
@Autowired
private AppPriceCacheService appPriceCacheService;
@Autowired
private AppTypeService appTypeService;
/**
* 获取审核通过的应用
......@@ -212,4 +216,22 @@ public class AppConsr {
}
return appDtos;
}
public Map<String, AppTypeDto> listAllCode(){
try {
Map<String, AppTypeDto> appTypeDtoMap = new HashMap<>();
ResponseEntity<ResponseDto<Map<String, AppTypeDto>>> appDtosEntity = appTypeService.listAllCode();
appTypeDtoMap = ResponseHandleUtil.parseMapResponse(appDtosEntity, String.class, AppTypeDto.class);
if (appTypeDtoMap == null) {
return new HashMap<>();
}
return appTypeDtoMap;
} catch (BizException e) {
LOGGER.warn("获取应用类型名称[appTypeService.listAllCode]:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("获取应用类型名称[appTypeService.listAllCode]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_USER_ERROR, "listAllCode 获取应用类型名称失败~!");
}
}
}
......@@ -18,6 +18,7 @@ import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.readercenter.wechat.dto.SpecialBookDTO4Reader;
import com.pcloud.readercenter.wechat.dto.SpecialBookQueryDTO4Reader;
import com.pcloud.readercenter.wechat.dto.Wechat;
import com.pcloud.usercenter.party.agent.dto.AgentCity;
import com.pcloud.usercenter.party.agent.service.AgentService;
import org.slf4j.Logger;
......@@ -323,6 +324,18 @@ public class ReaderConsr {
}
}
public Wechat getWechatUserInfo(Long wechatUserId) throws BizException {
if (wechatUserId == null) {
return null;
}
try {
return ResponseHandleUtil.parseResponse(wechatUserService.getWechatUserInfo(wechatUserId), Wechat.class);
} catch (Exception e) {
LOGGER.error("获取微信用户信息失败[wechatUserService.getWechatUserInfo]:" + e.getMessage(), e);
}
return null;
}
}
......@@ -12,6 +12,7 @@ import com.pcloud.resourcecenter.product.dto.ProDto;
import com.pcloud.resourcecenter.product.dto.Product4BookDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductLabelDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.pcloud.resourcecenter.product.dto.UpdateAppProductParamDTO;
import com.pcloud.resourcecenter.product.entity.Product;
import com.pcloud.resourcecenter.product.service.ProductService;
......@@ -20,11 +21,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @描述:商品中间件
......@@ -326,4 +329,22 @@ public class ProductConsr {
LOGGER.info("获取商品id集合对应商品信息【end】 [productService.getProBasesByIds]");
return productDtoMap == null ? new HashMap<>() : productDtoMap;
}
public Map<String, ProductTypeDto> getProType() {
Map<String, ProductTypeDto> productDtoMap = new HashMap<>();
try {
List<ProductTypeDto> productTypeDtos = ResponseHandleUtil.parseListResponse(productService.getProType(), ProductTypeDto.class);
if(CollectionUtils.isEmpty(productTypeDtos)){
return productDtoMap;
}
productDtoMap = productTypeDtos.stream().collect(Collectors.toMap(x->x.getTypeCode(),x->x,(v1,v2)->v2));
} catch (BizException e) {
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("获取商品id集合对应商品信息失败[productService.getProBasesByIds]:" + e.getMessage(), e);
throw new ChannelBizException(ChannelBizException.INVOKE_RES_ERROR, "获取商品信息失败~!");
}
return productDtoMap == null ? new HashMap<>() : productDtoMap;
}
}
......@@ -64,6 +64,7 @@
adviser_id,
from_id,
from_name,
type_code,
account_setting_id,
create_time,
create_date,
......@@ -78,6 +79,7 @@
#{adviserId, jdbcType=BIGINT},
#{fromId, jdbcType=BIGINT},
#{fromName, jdbcType=VARCHAR},
#{typeCode, jdbcType=VARCHAR},
#{accountSettingId, jdbcType=BIGINT},
now(),
DATE_FORMAT(now(),"%Y-%m-%d"),
......@@ -96,6 +98,7 @@
adviser_id,
from_id,
from_name,
type_code,
account_setting_id,
create_time,
create_date,
......@@ -112,6 +115,7 @@
#{item.adviserId, jdbcType=BIGINT},
#{item.fromId, jdbcType=BIGINT},
#{item.fromName, jdbcType=VARCHAR},
#{item.typeCode, jdbcType=VARCHAR},
#{item.accountSettingId, jdbcType=BIGINT},
now(),
DATE_FORMAT(now(),"%Y-%m-%d"),
......@@ -280,4 +284,37 @@
create_date
</select>
<select id="getReadBookWeekStatis" parameterType="map" resultType="com.pcloud.book.applet.dto.ReadBookDayStatisDTO">
SELECT
COUNT(book_id) readBookCount,
create_date createDate
FROM
applet_record
WHERE
record_type = 7
AND wechat_user_id = #{wechatUserId}
AND create_date BETWEEN #{mondayDate, jdbcType=DATE} AND #{sundayDate, jdbcType=DATE}
GROUP BY
create_date
</select>
<select id="getBooksByWechatUserId" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletRecordBookDTO">
SELECT
book_id bookId,
create_date createDate
FROM
applet_record
WHERE
record_type = 7
AND wechat_user_id = #{wechatUserId}
</select>
<select id="getStatisUserCount" parameterType="map" resultType="long">
SELECT COUNT(DISTINCT wechat_user_id)
FROM
applet_record
WHERE
create_date BETWEEN #{prevMonday, jdbcType=DATE} AND #{prevSunday, jdbcType=DATE}
</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.applet.dao.impl.AppletRecordStatisDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletRecordStatis">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT"/>
<result column="record_type" property="recordType" jdbcType="INTEGER"/>
<result column="source_type" property="sourceType" jdbcType="VARCHAR"/>
<result column="click_count" property="clickCount" jdbcType="BIGINT"/>
<result column="statis_date" property="statisDate" jdbcType="DATE"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<resultMap id="BaseResultDTOMap" type="com.pcloud.book.applet.dto.AppletRecordStatisDTO">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT"/>
<result column="record_type" property="recordType" jdbcType="INTEGER"/>
<result column="source_type" property="sourceType" jdbcType="VARCHAR"/>
<result column="click_count" property="clickCount" jdbcType="BIGINT"/>
<result column="statis_date" property="statisDate" jdbcType="DATE"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, wechat_user_id, record_type, source_type, click_count, statis_date, create_time, update_time
</sql>
<select id="getById" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM applet_record_statis
WHERE id = #{id}
</select>
<select id="getBookSourceWeekStatis" resultMap="BaseResultDTOMap">
SELECT
<include refid="Base_Column_List"/>
FROM
`applet_record_statis`
WHERE
wechat_user_id = #{wechatUserId}
AND record_type IN (5,6)
AND statis_date = #{statisDate, jdbcType=DATE}
ORDER BY
click_count DESC
LIMIT 5;
</select>
<select id="getBookSourceTotalClickCount" resultType="integer">
SELECT IFNULL(SUM(click_count),0)
FROM
`applet_record_statis`
WHERE
wechat_user_id = #{wechatUserId}
AND statis_date = #{statisDate, jdbcType=DATE}
AND record_type IN (5,6)
</select>
<select id="getBookNewsWeekStatics" resultMap="BaseResultDTOMap">
SELECT
<include refid="Base_Column_List"/>
FROM
`applet_record_statis`
WHERE
wechat_user_id = #{wechatUserId}
AND statis_date = #{statisDate, jdbcType=DATE}
AND record_type = 1
ORDER BY
click_count DESC
LIMIT 5;
</select>
<select id="getBookNewsTotalClickCount" resultType="integer">
SELECT IFNULL(SUM(click_count),0)
FROM
`applet_record_statis`
WHERE
wechat_user_id = #{wechatUserId}
AND statis_date = #{statisDate, jdbcType=DATE}
AND record_type = 1
</select>
<select id="getList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM applet_record_statis
</select>
<insert id="addWeekAppletRecordStatis4App">
INSERT INTO applet_record_statis (
wechat_user_id,
record_type,
source_type,
click_count,
statis_date,
create_time,
update_time
)
SELECT ar.wechat_user_id, ar.record_type, ar.type_code, COUNT(1), #{prevMonday}, NOW(), NOW()
FROM `applet_record` ar
INNER JOIN (SELECT DISTINCT wechat_user_id FROM applet_record WHERE create_date BETWEEN #{prevMonday, jdbcType=DATE} AND #{prevSunday, jdbcType=DATE} ORDER BY wechat_user_id LIMIT #{limitStart}, #{limitNumber}) t ON t.wechat_user_id = ar.wechat_user_id
WHERE ar.record_type IN (5,6) AND ar.create_date BETWEEN #{prevMonday, jdbcType=DATE} AND #{prevSunday, jdbcType=DATE}
GROUP BY ar.wechat_user_id, ar.record_type, ar.type_code
</insert>
<insert id="addWeekAppletRecordStatis4News">
INSERT INTO applet_record_statis (
wechat_user_id,
record_type,
source_type,
click_count,
statis_date,
create_time,
update_time
)
SELECT ar.wechat_user_id, record_type, an.source, COUNT(1), #{prevMonday}, NOW(), NOW()
FROM applet_record ar
INNER JOIN (SELECT DISTINCT wechat_user_id FROM applet_record WHERE create_date BETWEEN #{prevMonday, jdbcType=DATE} AND #{prevSunday, jdbcType=DATE} ORDER BY wechat_user_id LIMIT #{limitStart}, #{limitNumber}) t ON t.wechat_user_id = ar.wechat_user_id
INNER JOIN applet_news an ON ar.from_id = an.id
WHERE record_type = 1 AND create_date BETWEEN #{prevMonday, jdbcType=DATE} AND #{prevSunday, jdbcType=DATE}
GROUP BY ar.wechat_user_id, an.source
</insert>
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
INSERT INTO applet_record_statis(
wechat_user_id,
record_type,
source_type,
click_count,
statis_date,
create_time,
update_time
) VALUES (
#{wechatUserId, jdbcType=BIGINT},
#{recordType, jdbcType=INTEGER},
#{sourceType, jdbcType=VARCHAR},
#{clickCount, jdbcType=BIGINT},
#{statisDate, jdbcType=DATE},
#{createTime, jdbcType=TIMESTAMP},
#{updateTime, jdbcType=TIMESTAMP}
)
</insert>
<insert id="batchInsert">
INSERT INTO applet_record_statis (
wechat_user_id,
record_type,
source_type,
click_count,
statis_date,
create_time,
update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.wechatUserId, jdbcType=BIGINT},
#{item.recordType, jdbcType=INTEGER},
#{item.sourceType, jdbcType=VARCHAR},
#{item.clickCount, jdbcType=BIGINT},
#{item.statisDate, jdbcType=DATE},
#{item.createTime, jdbcType=TIMESTAMP},
#{item.updateTime, jdbcType=TIMESTAMP}
)
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
UPDATE applet_record_statis
<set>
<if test="wechatUserId != null">
wechat_user_id = #{wechatUserId},
</if>
<if test="recordType != null">
record_type = #{recordType},
</if>
<if test="sourceType != null and sourceType != ''">
source_type = #{sourceType},
</if>
<if test="clickCount != null">
click_count = #{clickCount},
</if>
<if test="statisDate != null">
statis_date = #{statisDate},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
WHERE id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteWeekAppletRecordStatis">
DELETE FROM applet_record_statis where statis_date = #{monday}
</delete>
</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.applet.dao.impl.AppletRecordStatisReportDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletRecordStatisReport">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT"/>
<result column="begin_date" property="beginDate" jdbcType="DATE"/>
<result column="end_date" property="endDate" jdbcType="DATE"/>
<result column="score" property="score" jdbcType="DECIMAL"/>
<result column="compare_score" property="compareScore" jdbcType="DECIMAL"/>
<result column="compare_user_ratio" property="compareUserRatio" jdbcType="DECIMAL"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, wechat_user_id, begin_date, end_date, score, compare_score, compare_user_ratio, create_time
</sql>
<select id="getById" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM applet_record_statis_report
WHERE id = #{id}
</select>
<select id="getByWechatUserId" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM applet_record_statis_report
WHERE wechat_user_id = #{wechatUserId} AND begin_date = #{beginDate, jdbcType=DATE}
</select>
<select id="getFirstStatisReport" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM applet_record_statis_report
WHERE wechat_user_id = #{wechatUserId}
ORDER BY id
LIMIT 1
</select>
<select id="getUserHistoryReport" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM applet_record_statis_report
WHERE wechat_user_id = #{wechatUserId} AND begin_date IN
<foreach collection="allMonday" item="item" separator="," open="(" close=")">
#{item, jdbcType=DATE}
</foreach>
</select>
<select id="getList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM applet_record_statis_report
WHERE
wechat_user_id = #{wechatUserId}
ORDER BY begin_date DESC
</select>
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
INSERT INTO applet_record_statis_report(
wechat_user_id,
begin_date,
end_date,
score,
compare_score,
compare_user_ratio,
create_time,
update_time
) VALUES (
#{wechatUserId, jdbcType=BIGINT},
#{beginDate, jdbcType=DATE},
#{endDate, jdbcType=DATE},
#{score, jdbcType=DECIMAL},
#{compareScore, jdbcType=DECIMAL},
#{compareUserRatio, jdbcType=DECIMAL},
NOW(),
NOW()
)
</insert>
<insert id="insertOrUpdate" keyProperty="id" useGeneratedKeys="true">
INSERT INTO applet_record_statis_report(
wechat_user_id,
begin_date,
end_date,
score,
compare_score,
compare_user_ratio,
create_time,
update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.wechatUserId, jdbcType=BIGINT},
#{item.beginDate, jdbcType=DATE},
#{item.endDate, jdbcType=DATE},
#{item.score, jdbcType=DECIMAL},
#{item.compareScore, jdbcType=DECIMAL},
#{item.compareUserRatio, jdbcType=DECIMAL},
NOW(),
NOW()
)
</foreach>
ON DUPLICATE KEY UPDATE
score = VALUES(score),
compare_score = VALUES(compare_score),
compare_user_ratio = VALUES(compare_user_ratio),
update_time = NOW()
</insert>
<insert id="batchInsert">
INSERT INTO applet_record_statis_report (
wechat_user_id,
begin_date,
end_date,
score,
compare_score,
compare_user_ratio,
create_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.wechatUserId, jdbcType=BIGINT},
#{item.beginDate, jdbcType=DATE},
#{item.endDate, jdbcType=DATE},
#{item.score, jdbcType=DECIMAL},
#{item.compareScore, jdbcType=DECIMAL},
#{item.compareUserRatio, jdbcType=DECIMAL},
NOW()
)
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
UPDATE applet_record_statis_report
<set>
<if test="wechatUserId != null">
wechat_user_id = #{wechatUserId},
</if>
<if test="beginDate != null">
begin_date = #{beginDate},
</if>
<if test="endDate != null">
end_date = #{endDate},
</if>
<if test="score != null">
score = #{score},
</if>
<if test="compareScore != null">
compare_score = #{compareScore},
</if>
<if test="compareUserRatio != null">
compare_user_ratio = #{compareUserRatio},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
</set>
WHERE id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
DELETE FROM applet_record_statis_report where id = #{id}
</delete>
</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