Commit 4a493dd9 by lili

版权保护埋点需求

parent 8ca87e1f
...@@ -13,6 +13,7 @@ import io.swagger.annotations.ApiImplicitParams; ...@@ -13,6 +13,7 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
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.GetMapping;
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;
...@@ -101,6 +102,4 @@ public interface BookAdviserService { ...@@ -101,6 +102,4 @@ public interface BookAdviserService {
@RequestMapping(value = "/setBookTemplet", method = RequestMethod.GET) @RequestMapping(value = "/setBookTemplet", method = RequestMethod.GET)
void setBookTemplet(@RequestBody BookAdviser bookAdviser) throws BizException; void setBookTemplet(@RequestBody BookAdviser bookAdviser) throws BizException;
} }
package com.pcloud.book.copyright.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
/**
* @author lily
* @date 2018/12/17 11:12
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookAuthInfoCountDTO implements Serializable {
private static final long serialVersionUID = -279583394937791724L;
@ApiModelProperty("图书标识")
private Long bookId;
@ApiModelProperty("运营标识")
private Long channelId;
@ApiModelProperty("编辑标识")
private Long adviserId;
@ApiModelProperty("购买数量")
private Integer payUserCount;
@ApiModelProperty("使用正版授权码数量")
private Integer codeUserCount;
@ApiModelProperty("开启时间")
private Date openTime;
@ApiModelProperty("关闭时间")
private Date closeTime;
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getOpenTime() {
return openTime;
}
public void setOpenTime(Date openTime) {
this.openTime = openTime;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getCloseTime() {
return closeTime;
}
public void setCloseTime(Date closeTime) {
this.closeTime = closeTime;
}
public Integer getPayUserCount() {
return payUserCount;
}
public void setPayUserCount(Integer payUserCount) {
this.payUserCount = payUserCount;
}
public Integer getCodeUserCount() {
return codeUserCount;
}
public void setCodeUserCount(Integer codeUserCount) {
this.codeUserCount = codeUserCount;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
@Override
public String toString() {
return "BookAuthInfoCountDTO{" +
"bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", payUserCount=" + payUserCount +
", codeUserCount=" + codeUserCount +
", openTime=" + openTime +
", closeTime=" + closeTime +
'}';
}
}
package com.pcloud.book.copyright.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
/**
* @author lily
* @date 2018/12/17 15:17
*/
@ApiModel
@JsonInclude(JsonInclude.Include.NON_NULL)
public class BookAuthTotalCountDTO implements Serializable {
@ApiModelProperty("购买数量")
private Integer payUserCount;
@ApiModelProperty("使用正版授权码数量")
private Integer codeUserCount;
@ApiModelProperty("总使用数")
private Integer totalCount;
@ApiModelProperty("开启总数")
private Integer openCount;
@ApiModelProperty("点击购买链接人数")
private Integer clickBuyCount;
public Integer getPayUserCount() {
return payUserCount;
}
public void setPayUserCount(Integer payUserCount) {
this.payUserCount = payUserCount;
}
public Integer getCodeUserCount() {
return codeUserCount;
}
public void setCodeUserCount(Integer codeUserCount) {
this.codeUserCount = codeUserCount;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public Integer getOpenCount() {
return openCount;
}
public void setOpenCount(Integer openCount) {
this.openCount = openCount;
}
public Integer getClickBuyCount() {
return clickBuyCount;
}
public void setClickBuyCount(Integer clickBuyCount) {
this.clickBuyCount = clickBuyCount;
}
@Override
public String toString() {
return "BookAuthTotalCountDTO{" +
"payUserCount=" + payUserCount +
", codeUserCount=" + codeUserCount +
", totalCount=" + totalCount +
", openCount=" + openCount +
", clickBuyCount=" + clickBuyCount +
'}';
}
}
package com.pcloud.book.copyright.service; package com.pcloud.book.copyright.service;
import com.pcloud.book.copyright.dto.BookAuthInfoCountDTO;
import com.pcloud.book.copyright.dto.BookAuthTotalCountDTO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
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.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;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* @author lily * @author lily
...@@ -25,4 +29,16 @@ public interface BookAuthInfoService { ...@@ -25,4 +29,16 @@ public interface BookAuthInfoService {
ResponseEntity<ResponseDto<BigDecimal>> getBookAuthPrice(@RequestParam("bookId") Long bookId, @RequestParam("channelId")Long channelId, @RequestParam("adviserId")Long adviserId) ResponseEntity<ResponseDto<BigDecimal>> getBookAuthPrice(@RequestParam("bookId") Long bookId, @RequestParam("channelId")Long channelId, @RequestParam("adviserId")Long adviserId)
throws BizException; throws BizException;
@ApiOperation(value = "获取图书授权统计信息", httpMethod = "GET")
@RequestMapping(value = "/getBookAuthInfoCount", method = RequestMethod.GET)
ResponseEntity<ResponseDto<BookAuthInfoCountDTO>> getBookAuthInfoCount(@RequestParam("bookId") Long bookId, @RequestParam("channelId")Long channelId, @RequestParam("adviserId")Long adviserId, @RequestParam("monthDate") String monthDate)
throws BizException;
@ApiOperation(value = "获取图书授权总统计信息", httpMethod = "GET")
@RequestMapping(value = "/getBookAuthTotalCount", method = RequestMethod.GET)
ResponseEntity<ResponseDto<BookAuthTotalCountDTO>> getBookAuthTotalCount() throws BizException;
@ApiOperation(value = "根据获取图书授权总统计信息", httpMethod = "POST")
@RequestMapping(value = "/getBookAuthTotalCount4Adviser", method = RequestMethod.POST)
ResponseEntity<ResponseDto<BookAuthTotalCountDTO>> getBookAuthTotalCount4Adviser(@RequestBody List<Long> adviserIds) throws BizException;
} }
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
package com.pcloud.book.consumer.channel; package com.pcloud.book.consumer.channel;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.channelcenter.qrcode.dto.DefaultTempletQrcode;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService; import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO; import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO;
......
package com.pcloud.book.copyright.biz; package com.pcloud.book.copyright.biz;
import com.pcloud.book.copyright.dto.BookAuthInfoCountDTO;
import com.pcloud.book.copyright.dto.BookAuthTotalCountDTO;
import com.pcloud.book.copyright.vo.BookAuthInfoAndServesVO; import com.pcloud.book.copyright.vo.BookAuthInfoAndServesVO;
import com.pcloud.book.copyright.vo.BookAuthInfoVO; import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.book.copyright.vo.BookAuthInfoWechatVO; import com.pcloud.book.copyright.vo.BookAuthInfoWechatVO;
...@@ -11,6 +13,7 @@ import com.pcloud.book.copyright.vo.SetLocationDescVO; ...@@ -11,6 +13,7 @@ import com.pcloud.book.copyright.vo.SetLocationDescVO;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* @author lily * @author lily
...@@ -68,8 +71,20 @@ public interface BookAuthInfoBiz { ...@@ -68,8 +71,20 @@ public interface BookAuthInfoBiz {
* 获取图书授权基本信息 * 获取图书授权基本信息
*/ */
BookAuthInfoVO getAuthBookInfo(Long bookId, Long channelId, Long adviserId, Long sceneId); BookAuthInfoVO getAuthBookInfo(Long bookId, Long channelId, Long adviserId, Long sceneId);
/**
* 获取图书授权统计
*/
BookAuthInfoCountDTO getBookAuthInfoCount(Long bookId, Long channelId, Long adviserId, String monthDate);
/**
* 获取图书授权总的提示
*/
BookAuthTotalCountDTO getBookAuthTotalCount(List<Long> adviserIds);
/** /**
* 获取是否有正在导出的 * 获取是否有正在导出的
*/ */
Boolean isHaveExport(Long bookId, Long channelId, Long adviserId); Boolean isHaveExport(Long bookId, Long channelId, Long adviserId);
} }
...@@ -2,6 +2,7 @@ package com.pcloud.book.copyright.biz; ...@@ -2,6 +2,7 @@ package com.pcloud.book.copyright.biz;
import com.pcloud.book.copyright.entity.BookAuthUser; import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO; import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.BookClickBuyRecordParam;
import com.pcloud.book.copyright.vo.SixMonthCountVO; import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO; import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
...@@ -18,6 +19,11 @@ public interface BookAuthUserBiz { ...@@ -18,6 +19,11 @@ public interface BookAuthUserBiz {
BookAuthCodeUserVO getAuthUserCount(Long bookId, Long channelId, Long adviserId); BookAuthCodeUserVO getAuthUserCount(Long bookId, Long channelId, Long adviserId);
/** /**
* 根据月份获取授权用户数量
*/
BookAuthCodeUserVO getAuthUserCountByMonth(Long bookId, Long channelId, Long adviserId, String monthDate);
/**
* 最近30天趋势图 * 最近30天趋势图
*/ */
List<ThirtyDayCountVO> listThirtyDay(Long bookId, Long channelId, Long adviserId); List<ThirtyDayCountVO> listThirtyDay(Long bookId, Long channelId, Long adviserId);
...@@ -36,4 +42,15 @@ public interface BookAuthUserBiz { ...@@ -36,4 +42,15 @@ public interface BookAuthUserBiz {
* 校验用户是否已经授权 * 校验用户是否已经授权
*/ */
Boolean checkIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId); Boolean checkIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId);
/**
* 获取授权信息总的统计数据
*/
BookAuthCodeUserVO getAuthUserTotalCount(List<Long> adviserIds);
/**
* 新增点击购买记录
*/
void insertClickBuyRecord(BookClickBuyRecordParam bookClickBuyRecordParam, Long channelId, Long wechatUserId);
} }
...@@ -11,13 +11,18 @@ import com.pcloud.book.consumer.common.ExportConsr; ...@@ -11,13 +11,18 @@ import com.pcloud.book.consumer.common.ExportConsr;
import com.pcloud.book.copyright.biz.BookAuthCodeBiz; import com.pcloud.book.copyright.biz.BookAuthCodeBiz;
import com.pcloud.book.copyright.biz.BookAuthInfoBiz; import com.pcloud.book.copyright.biz.BookAuthInfoBiz;
import com.pcloud.book.copyright.biz.BookAuthServeBiz; import com.pcloud.book.copyright.biz.BookAuthServeBiz;
import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.copyright.biz.BookExportRecordBiz; import com.pcloud.book.copyright.biz.BookExportRecordBiz;
import com.pcloud.book.copyright.constants.CopyrightConstants; import com.pcloud.book.copyright.constants.CopyrightConstants;
import com.pcloud.book.copyright.dao.BookAuthInfoDao; import com.pcloud.book.copyright.dao.BookAuthInfoDao;
import com.pcloud.book.copyright.dao.BookClickBuyRecordDao;
import com.pcloud.book.copyright.dto.BookAuthInfoCountDTO;
import com.pcloud.book.copyright.dto.BookAuthTotalCountDTO;
import com.pcloud.book.copyright.entity.BookAuthCode; import com.pcloud.book.copyright.entity.BookAuthCode;
import com.pcloud.book.copyright.entity.BookAuthInfo; import com.pcloud.book.copyright.entity.BookAuthInfo;
import com.pcloud.book.copyright.entity.BookExportRecord; import com.pcloud.book.copyright.entity.BookExportRecord;
import com.pcloud.book.copyright.tools.CopyrightTools; import com.pcloud.book.copyright.tools.CopyrightTools;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.BookAuthInfoAndServesVO; import com.pcloud.book.copyright.vo.BookAuthInfoAndServesVO;
import com.pcloud.book.copyright.vo.BookAuthInfoVO; import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.book.copyright.vo.BookAuthInfoWechatVO; import com.pcloud.book.copyright.vo.BookAuthInfoWechatVO;
...@@ -92,6 +97,12 @@ public class BookAuthInfoBizImpl implements BookAuthInfoBiz { ...@@ -92,6 +97,12 @@ public class BookAuthInfoBizImpl implements BookAuthInfoBiz {
@Autowired @Autowired
private ExportConsr exportConsr; private ExportConsr exportConsr;
@Autowired
private BookAuthUserBiz bookAuthUserBiz;
@Autowired
private BookClickBuyRecordDao bookClickBuyRecordDao;
private static final ExecutorService EXECUTOR_SERVICE = Executors.newFixedThreadPool(2); private static final ExecutorService EXECUTOR_SERVICE = Executors.newFixedThreadPool(2);
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -477,10 +488,53 @@ public class BookAuthInfoBizImpl implements BookAuthInfoBiz { ...@@ -477,10 +488,53 @@ public class BookAuthInfoBizImpl implements BookAuthInfoBiz {
BookAuthInfoVO infoByBook = getInfoByBook(bookId, channelId, adviserId); BookAuthInfoVO infoByBook = getInfoByBook(bookId, channelId, adviserId);
return infoByBook; return infoByBook;
} }
@Override
public BookAuthInfoCountDTO getBookAuthInfoCount(Long bookId, Long channelId, Long adviserId, String monthDate) {
BookAuthInfoCountDTO bookAuthInfoCountDTO = bookAuthInfoDao.getBookAuthCount(bookId, channelId, adviserId);
if (bookAuthInfoCountDTO == null) {
return null;
}
BookAuthCodeUserVO authUserCount = bookAuthUserBiz.getAuthUserCountByMonth(bookId, channelId, adviserId, monthDate);
if (authUserCount != null) {
BeanUtils.copyProperties(authUserCount, bookAuthInfoCountDTO);
}
return bookAuthInfoCountDTO;
}
@Override
public BookAuthTotalCountDTO getBookAuthTotalCount(List<Long> adviserIds) {
BookAuthTotalCountDTO bookAuthTotalCountDTO = new BookAuthTotalCountDTO();
//获取开启正版授权图书的总数
Integer openCount = bookAuthInfoDao.getTotalNum(adviserIds);
if(openCount == null || openCount == 0){
setZeroData(bookAuthTotalCountDTO);
return bookAuthTotalCountDTO;
}else {
bookAuthTotalCountDTO.setOpenCount(openCount);
}
BookAuthCodeUserVO authUserTotalCount = bookAuthUserBiz.getAuthUserTotalCount(adviserIds);
if(authUserTotalCount!=null){
BeanUtils.copyProperties(authUserTotalCount, bookAuthTotalCountDTO);
}
//获取点击链接总数
Integer count = bookClickBuyRecordDao.getClickBuyRecordCount(adviserIds);
bookAuthTotalCountDTO.setClickBuyCount(count);
return bookAuthTotalCountDTO;
}
@Override @Override
@ParamLog("是否有正在导出的") @ParamLog("是否有正在导出的")
public Boolean isHaveExport(Long bookId, Long channelId, Long adviserId) { public Boolean isHaveExport(Long bookId, Long channelId, Long adviserId) {
Boolean isCanExport = bookExportRecordBiz.isHaveExport(bookId,channelId,adviserId); Boolean isCanExport = bookExportRecordBiz.isHaveExport(bookId, channelId, adviserId);
return isCanExport; return isCanExport;
} }
private void setZeroData(BookAuthTotalCountDTO bookAuthTotalCountDTO) {
bookAuthTotalCountDTO.setCodeUserCount(0);
bookAuthTotalCountDTO.setOpenCount(0);
bookAuthTotalCountDTO.setPayUserCount(0);
bookAuthTotalCountDTO.setTotalCount(0);
bookAuthTotalCountDTO.setClickBuyCount(0);
}
} }
...@@ -2,16 +2,21 @@ package com.pcloud.book.copyright.biz.impl; ...@@ -2,16 +2,21 @@ package com.pcloud.book.copyright.biz.impl;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.copyright.biz.BookAuthUserBiz; import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.base.enums.BookStatusEnum;
import com.pcloud.book.copyright.dao.BookAuthUserDao; import com.pcloud.book.copyright.dao.BookAuthUserDao;
import com.pcloud.book.copyright.dao.BookClickBuyRecordDao;
import com.pcloud.book.copyright.dto.DateDTO; import com.pcloud.book.copyright.dto.DateDTO;
import com.pcloud.book.copyright.entity.BookAuthUser; import com.pcloud.book.copyright.entity.BookAuthUser;
import com.pcloud.book.copyright.entity.BookClickBuyRecord;
import com.pcloud.book.copyright.tools.CopyrightTools; import com.pcloud.book.copyright.tools.CopyrightTools;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO; import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.BookClickBuyRecordParam;
import com.pcloud.book.copyright.vo.SixMonthCountVO; import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO; import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -21,6 +26,8 @@ import java.util.Date; ...@@ -21,6 +26,8 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* @author lily * @author lily
...@@ -28,9 +35,13 @@ import java.util.Map; ...@@ -28,9 +35,13 @@ import java.util.Map;
*/ */
@Component("bookAuthUserBiz") @Component("bookAuthUserBiz")
public class BookAuthUserBizImpl implements BookAuthUserBiz { public class BookAuthUserBizImpl implements BookAuthUserBiz {
private static final Logger LOGGER = LoggerFactory.getLogger(BookAuthUserBizImpl.class);
@Autowired @Autowired
private BookAuthUserDao bookAuthUserDao; private BookAuthUserDao bookAuthUserDao;
@Autowired
private BookClickBuyRecordDao bookClickBuyRecordDao;
private static final ExecutorService EXECUTOR_SERVICE = Executors.newFixedThreadPool(4);
@ParamLog("获取授权用户数量") @ParamLog("获取授权用户数量")
@Override @Override
...@@ -50,6 +61,18 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz { ...@@ -50,6 +61,18 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz {
} }
@Override @Override
public BookAuthCodeUserVO getAuthUserCountByMonth(Long bookId, Long channelId, Long adviserId, String monthDate) {
if (bookId == null || channelId == null || adviserId == null) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "图书不存在");
}
BookAuthCodeUserVO bookAuthCodeUserVO = bookAuthUserDao.getAuthUserCountByMonth(bookId, channelId, adviserId, monthDate);
if (bookAuthCodeUserVO != null && bookAuthCodeUserVO.getTotalCount() != null && bookAuthCodeUserVO.getPayUserCount() != null) {
bookAuthCodeUserVO.setCodeUserCount(bookAuthCodeUserVO.getTotalCount() - bookAuthCodeUserVO.getPayUserCount());
}
return bookAuthCodeUserVO;
}
@Override
public List<ThirtyDayCountVO> listThirtyDay(Long bookId, Long channelId, Long adviserId) { public List<ThirtyDayCountVO> listThirtyDay(Long bookId, Long channelId, Long adviserId) {
DateDTO date = CopyrightTools.getDateByType(30L); DateDTO date = CopyrightTools.getDateByType(30L);
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
...@@ -116,6 +139,32 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz { ...@@ -116,6 +139,32 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz {
return bookAuthUserDao.getIsHaveAuth(bookId, channelId, adviserId, wechatUserId); return bookAuthUserDao.getIsHaveAuth(bookId, channelId, adviserId, wechatUserId);
} }
@Override
public BookAuthCodeUserVO getAuthUserTotalCount(List<Long> adviserIds) {
BookAuthCodeUserVO bookAuthCodeUserVO = bookAuthUserDao.getAuthUserTotalCount(adviserIds);
if(bookAuthCodeUserVO != null){
bookAuthCodeUserVO.setCodeUserCount(bookAuthCodeUserVO.getTotalCount() - bookAuthCodeUserVO.getPayUserCount());
}
return bookAuthCodeUserVO;
}
@Override
@ParamLog("新增点击购买链接记录")
public void insertClickBuyRecord(BookClickBuyRecordParam bookClickBuyRecordParam, Long channelId, Long wechatUserId) {
EXECUTOR_SERVICE.execute(()->{
try{
BookClickBuyRecord bookClickBuyRecord = new BookClickBuyRecord();
bookClickBuyRecord.setChannelId(channelId);
bookClickBuyRecord.setWechatUserId(wechatUserId);
BeanUtils.copyProperties(bookClickBuyRecordParam, bookClickBuyRecord);
bookClickBuyRecordDao.insert(bookClickBuyRecord);
}catch (Exception e){
LOGGER.error("新增点击购买链接记录"+bookClickBuyRecordParam);
}
});
}
/** /**
* 设置最近6月为空得书 * 设置最近6月为空得书
*/ */
......
package com.pcloud.book.copyright.dao; package com.pcloud.book.copyright.dao;
import com.pcloud.book.copyright.dto.BookAuthInfoCountDTO;
import com.pcloud.book.copyright.entity.BookAuthInfo; import com.pcloud.book.copyright.entity.BookAuthInfo;
import com.pcloud.book.copyright.vo.BookAuthInfoVO; import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/** /**
* @author lily * @author lily
* @date 2018/12/3 15:17 * @date 2018/12/3 15:17
...@@ -35,4 +38,14 @@ public interface BookAuthInfoDao extends BaseDao<BookAuthInfo> { ...@@ -35,4 +38,14 @@ public interface BookAuthInfoDao extends BaseDao<BookAuthInfo> {
* 更新图书版权基本信息 * 更新图书版权基本信息
*/ */
void updateBaseInfo(BookAuthInfo bookAuthInfo); void updateBaseInfo(BookAuthInfo bookAuthInfo);
/**
* 获取图书授权信息统计数据
*/
BookAuthInfoCountDTO getBookAuthCount(Long bookId, Long channelId, Long adviserId);
/**
* 获取总的数量
*/
Integer getTotalNum(List<Long> adviserIds);
} }
...@@ -35,4 +35,13 @@ public interface BookAuthUserDao extends BaseDao<BookAuthUser> { ...@@ -35,4 +35,13 @@ public interface BookAuthUserDao extends BaseDao<BookAuthUser> {
*/ */
Boolean getIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId); Boolean getIsHaveAuth(Long bookId, Long channelId, Long adviserId, Long wechatUserId);
/**
* 根据月份获取授权用户信息
*/
BookAuthCodeUserVO getAuthUserCountByMonth(Long bookId, Long channelId, Long adviserId, String monthDate);
/**
* 获取总的授权用户数据
*/
BookAuthCodeUserVO getAuthUserTotalCount(List<Long> adviserIds);
} }
package com.pcloud.book.copyright.dao;
import com.pcloud.book.copyright.entity.BookClickBuyRecord;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* @author lily
* @date 2018/12/20 15:41
*/
public interface BookClickBuyRecordDao extends BaseDao<BookClickBuyRecord> {
Integer getClickBuyRecordCount(List<Long> adviserIds);
}
...@@ -10,22 +10,22 @@ import com.pcloud.common.core.dao.BaseDao; ...@@ -10,22 +10,22 @@ import com.pcloud.common.core.dao.BaseDao;
public interface BookExportRecordDao extends BaseDao<BookExportRecord> { public interface BookExportRecordDao extends BaseDao<BookExportRecord> {
/** /**
* 更新导出记录 * 更新导出记录
*/ */
void updateRecordStatus(BookExportRecord bookExportRecord); void updateRecordStatus(BookExportRecord bookExportRecord);
/** /**
* 获取是否有正在导出的数据 * 获取是否有正在导出的数据
*/ */
Boolean isHaveExport(Long bookId, Long channelId, Long adviserId); Boolean isHaveExport(Long bookId, Long channelId, Long adviserId);
/** /**
* 更新导出记录 * 更新导出记录
*/ */
void updateRecord(BookExportRecord bookExportRecord); void updateRecord(BookExportRecord bookExportRecord);
/** /**
* 处理导出 * 处理导出
*/ */
void handleExportFail(); void handleExportFail();
} }
...@@ -2,6 +2,7 @@ package com.pcloud.book.copyright.dao.impl; ...@@ -2,6 +2,7 @@ package com.pcloud.book.copyright.dao.impl;
import com.pcloud.book.base.enums.BookStatusEnum; import com.pcloud.book.base.enums.BookStatusEnum;
import com.pcloud.book.copyright.dao.BookAuthInfoDao; import com.pcloud.book.copyright.dao.BookAuthInfoDao;
import com.pcloud.book.copyright.dto.BookAuthInfoCountDTO;
import com.pcloud.book.copyright.entity.BookAuthInfo; import com.pcloud.book.copyright.entity.BookAuthInfo;
import com.pcloud.book.copyright.vo.BookAuthInfoVO; import com.pcloud.book.copyright.vo.BookAuthInfoVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
...@@ -9,6 +10,7 @@ import org.springframework.stereotype.Component; ...@@ -9,6 +10,7 @@ import org.springframework.stereotype.Component;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -55,4 +57,18 @@ public class BookAuthInfoDaoImpl extends BaseDaoImpl<BookAuthInfo> implements Bo ...@@ -55,4 +57,18 @@ public class BookAuthInfoDaoImpl extends BaseDaoImpl<BookAuthInfo> implements Bo
public void updateBaseInfo(BookAuthInfo bookAuthInfo) { public void updateBaseInfo(BookAuthInfo bookAuthInfo) {
this.getSqlSession().update(this.getStatement("updateBaseInfo"), bookAuthInfo); this.getSqlSession().update(this.getStatement("updateBaseInfo"), bookAuthInfo);
} }
@Override
public BookAuthInfoCountDTO getBookAuthCount(Long bookId, Long channelId, Long adviserId) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId", adviserId);
return this.getSqlSession().selectOne(this.getStatement("getBookAuthCount"),paramMap);
}
@Override
public Integer getTotalNum(List<Long> adviserIds) {
return this.getSqlSession().selectOne(this.getStatement("getTotalNum"), adviserIds);
}
} }
...@@ -6,6 +6,7 @@ import com.pcloud.book.copyright.vo.BookAuthCodeUserVO; ...@@ -6,6 +6,7 @@ import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.SixMonthCountVO; import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO; import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import com.pcloud.common.utils.string.StringUtil;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap; import java.util.HashMap;
...@@ -50,4 +51,22 @@ public class BookAuthUserDaoImpl extends BaseDaoImpl<BookAuthUser> implements Bo ...@@ -50,4 +51,22 @@ public class BookAuthUserDaoImpl extends BaseDaoImpl<BookAuthUser> implements Bo
paramMap.put("wechatUserId",wechatUserId); paramMap.put("wechatUserId",wechatUserId);
return this.getSqlSession().selectOne(this.getStatement("getIsHaveAuth"), paramMap); return this.getSqlSession().selectOne(this.getStatement("getIsHaveAuth"), paramMap);
} }
@Override
public BookAuthCodeUserVO getAuthUserCountByMonth(Long bookId, Long channelId, Long adviserId, String monthDate) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("channelId", channelId);
paramMap.put("adviserId",adviserId);
if(!StringUtil.isEmpty(monthDate)){
paramMap.put("monthDate",monthDate);
}
return this.getSqlSession().selectOne(this.getStatement("getAuthUserCountByMonth"), paramMap);
}
@Override
public BookAuthCodeUserVO getAuthUserTotalCount(List<Long> adviserIds) {
return this.getSqlSession().selectOne(this.getStatement("getAuthUserTotalCount"), adviserIds);
}
} }
package com.pcloud.book.copyright.dao.impl;
import com.pcloud.book.copyright.dao.BookClickBuyRecordDao;
import com.pcloud.book.copyright.entity.BookClickBuyRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author lily
* @date 2018/12/20 15:42
*/
@Component("bookClickBuyRecordDao")
public class BookClickBuyRecordDaoImpl extends BaseDaoImpl<BookClickBuyRecord> implements BookClickBuyRecordDao {
@Override
public Integer getClickBuyRecordCount(List<Long> adviserIds) {
return this.getSqlSession().selectOne(this.getStatement("getClickBuyRecordCount"), adviserIds);
}
}
package com.pcloud.book.copyright.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
/**
* @author lily
* @date 2018/12/20 15:38
*/
@ApiModel
public class BookClickBuyRecord extends BaseEntity {
private Long id;
private Long bookId;
private Long channelId;
private Long adviserId;
private Long wechatUserId;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(Long wechatUserId) {
this.wechatUserId = wechatUserId;
}
@Override
public String toString() {
return "BookClickBuyRecord{" +
"id=" + id +
", bookId=" + bookId +
", channelId=" + channelId +
", adviserId=" + adviserId +
", wechatUserId=" + wechatUserId +
'}';
}
}
package com.pcloud.book.copyright.facade; package com.pcloud.book.copyright.facade;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO; import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.BookClickBuyRecordParam;
import com.pcloud.book.copyright.vo.SixMonthCountVO; import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO; import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
...@@ -8,6 +9,9 @@ import com.pcloud.common.exceptions.BizException; ...@@ -8,6 +9,9 @@ import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
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;
...@@ -38,4 +42,9 @@ public interface BookAuthUserFacade { ...@@ -38,4 +42,9 @@ public interface BookAuthUserFacade {
ResponseDto<List<SixMonthCountVO>> listSixMonth(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId) ResponseDto<List<SixMonthCountVO>> listSixMonth(@RequestHeader("token") String token, @RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId)
throws PermissionException, BizException; throws PermissionException, BizException;
@PostMapping("insertClickBuyRecord")
@ApiOperation("新增点击购买链接记录")
ResponseDto<?> insertClickBuyRecord(@CookieValue("userInfo") String userInfo, @RequestBody BookClickBuyRecordParam bookClickBuyRecordParam)
throws BizException;
} }
...@@ -3,14 +3,19 @@ package com.pcloud.book.copyright.facade.impl; ...@@ -3,14 +3,19 @@ package com.pcloud.book.copyright.facade.impl;
import com.pcloud.book.copyright.biz.BookAuthUserBiz; import com.pcloud.book.copyright.biz.BookAuthUserBiz;
import com.pcloud.book.copyright.facade.BookAuthUserFacade; import com.pcloud.book.copyright.facade.BookAuthUserFacade;
import com.pcloud.book.copyright.vo.BookAuthCodeUserVO; import com.pcloud.book.copyright.vo.BookAuthCodeUserVO;
import com.pcloud.book.copyright.vo.BookClickBuyRecordParam;
import com.pcloud.book.copyright.vo.SixMonthCountVO; import com.pcloud.book.copyright.vo.SixMonthCountVO;
import com.pcloud.book.copyright.vo.ThirtyDayCountVO; import com.pcloud.book.copyright.vo.ThirtyDayCountVO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil; import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
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;
...@@ -54,4 +59,13 @@ public class BookAuthUserFacadeImpl implements BookAuthUserFacade { ...@@ -54,4 +59,13 @@ public class BookAuthUserFacadeImpl implements BookAuthUserFacade {
List<SixMonthCountVO> sixMonthCountVOS = bookAuthUserBiz.listSixMonth(bookId, channelId, adviserId); List<SixMonthCountVO> sixMonthCountVOS = bookAuthUserBiz.listSixMonth(bookId, channelId, adviserId);
return new ResponseDto<>(sixMonthCountVOS); return new ResponseDto<>(sixMonthCountVOS);
} }
@PostMapping("insertClickBuyRecord")
public ResponseDto<?> insertClickBuyRecord(@CookieValue("userInfo") String userInfo, @RequestBody BookClickBuyRecordParam bookClickBuyRecordParam)
throws BizException{
Long channelId = Cookie.getId(userInfo, Cookie._CHANNEL_ID);
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
bookAuthUserBiz.insertClickBuyRecord(bookClickBuyRecordParam, channelId, wechatUserId);
return new ResponseDto<>();
}
} }
package com.pcloud.book.copyright.service.impl; package com.pcloud.book.copyright.service.impl;
import com.pcloud.book.copyright.biz.BookAuthInfoBiz; import com.pcloud.book.copyright.biz.BookAuthInfoBiz;
import com.pcloud.book.copyright.dto.BookAuthInfoCountDTO;
import com.pcloud.book.copyright.dto.BookAuthTotalCountDTO;
import com.pcloud.book.copyright.service.BookAuthInfoService; import com.pcloud.book.copyright.service.BookAuthInfoService;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
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.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;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* @author lily * @author lily
...@@ -30,4 +34,25 @@ public class BookAuthInfoServiceImpl implements BookAuthInfoService { ...@@ -30,4 +34,25 @@ public class BookAuthInfoServiceImpl implements BookAuthInfoService {
@RequestParam("channelId")Long channelId, @RequestParam("adviserId")Long adviserId) throws BizException { @RequestParam("channelId")Long channelId, @RequestParam("adviserId")Long adviserId) throws BizException {
return ResponseHandleUtil.toResponse(bookAuthInfoBiz.getBookAuthPrice(bookId, channelId, adviserId)); return ResponseHandleUtil.toResponse(bookAuthInfoBiz.getBookAuthPrice(bookId, channelId, adviserId));
} }
@Override
@RequestMapping(value = "/getBookAuthInfoCount", method = RequestMethod.GET)
public ResponseEntity<ResponseDto<BookAuthInfoCountDTO>> getBookAuthInfoCount(@RequestParam("bookId") Long bookId, @RequestParam("channelId") Long channelId, @RequestParam("adviserId") Long adviserId, @RequestParam(value = "monthDate", required = false) String monthDate) throws BizException {
BookAuthInfoCountDTO bookAuthInfoCountDTO = bookAuthInfoBiz.getBookAuthInfoCount(bookId, channelId, adviserId, monthDate);
return ResponseHandleUtil.toResponse(bookAuthInfoCountDTO);
}
@Override
@RequestMapping(value = "/getBookAuthTotalCount", method = RequestMethod.GET)
public ResponseEntity<ResponseDto<BookAuthTotalCountDTO>> getBookAuthTotalCount() throws BizException {
BookAuthTotalCountDTO bookAuthTotalCountDTO = bookAuthInfoBiz.getBookAuthTotalCount(null);
return ResponseHandleUtil.toResponse(bookAuthTotalCountDTO);
}
@Override
@RequestMapping(value = "/getBookAuthTotalCount4Adviser", method = RequestMethod.POST)
public ResponseEntity<ResponseDto<BookAuthTotalCountDTO>> getBookAuthTotalCount4Adviser(@RequestBody List<Long> adviserIds) throws BizException {
BookAuthTotalCountDTO bookAuthTotalCountDTO = bookAuthInfoBiz.getBookAuthTotalCount(adviserIds);
return ResponseHandleUtil.toResponse(bookAuthTotalCountDTO);
}
} }
package com.pcloud.book.copyright.vo;
/**
* @author lily
* @date 2018/12/20 15:52
*/
public class BookClickBuyRecordParam {
private Long bookId;
private Long adviserId;
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
@Override
public String toString() {
return "BookClickBuyRecordParam{" +
"bookId=" + bookId +
", adviserId=" + adviserId +
'}';
}
}
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
*/ */
package com.pcloud.book.mq.topic; package com.pcloud.book.mq.topic;
import com.pcloud.book.book.biz.BookProductBiz;
import com.pcloud.book.copyright.biz.BookAuthOrderBiz; import com.pcloud.book.copyright.biz.BookAuthOrderBiz;
import com.pcloud.book.mq.config.MQTopicConumer; import com.pcloud.book.mq.config.MQTopicConumer;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
......
...@@ -152,4 +152,33 @@ ...@@ -152,4 +152,33 @@
WHERE WHERE
ID = #{id} ID = #{id}
</update> </update>
<select id="getBookAuthCount" resultType="bookAuthInfoCountDTO" parameterType="map">
SELECT
BOOK_ID bookId, CHANNEL_ID channelId, ADVISER_ID adviserId, OPEN_TIME openTime, CLOSE_TIME closeTime
FROM
BOOK_AUTH_INFO
WHERE
BOOK_ID = #{bookId, jdbcType=BIGINT}
AND
CHANNEL_ID = #{channelId, jdbcType=BIGINT}
AND
ADVISER_ID = #{adviserId, jdbcType=BIGINT}
</select>
<select id="getTotalNum" resultType="Integer">
SELECT
COUNT(1)
FROM
BOOK_AUTH_INFO
WHERE
BOOK_STATUS = 1
<if test="list!=null">
AND ADVISER_ID in
<foreach collection="list" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -24,6 +24,25 @@ ...@@ -24,6 +24,25 @@
ADVISER_ID = #{adviserId, jdbcType=BIGINT} ADVISER_ID = #{adviserId, jdbcType=BIGINT}
</select> </select>
<select id="getAuthUserCountByMonth" resultType="bookAuthCodeUserVO" parameterType="map">
SELECT
COUNT(1) totalCount,
IFNULL(SUM(is_auth_code),0) payUserCount
FROM
BOOK_AUTH_USER
WHERE
BOOK_ID = #{bookId, jdbcType=BIGINT}
AND
CHANNEL_ID = #{channelId, jdbcType=BIGINT}
AND
ADVISER_ID = #{adviserId, jdbcType=BIGINT}
<if test="monthDate!=null">
AND MONTHS = #{monthDate}
</if>
</select>
<select id="getIsHaveAuth" resultType="Boolean" parameterType="map"> <select id="getIsHaveAuth" resultType="Boolean" parameterType="map">
SELECT SELECT
COUNT(1) COUNT(1)
...@@ -78,6 +97,18 @@ ...@@ -78,6 +97,18 @@
GROUP BY months GROUP BY months
</select> </select>
<select id="getAuthUserTotalCount" resultType="bookAuthCodeUserVO" parameterType="list" >
SELECT
COUNT(1) totalCount,
IFNULL(SUM(is_auth_code),0) payUserCount
FROM
BOOK_AUTH_USER
<if test="list != null">
WHERE ADVISER_ID in
<foreach collection="list" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
</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.copyright.dao.impl.BookClickBuyRecordDaoImpl">
<insert id="insert" useGeneratedKeys="true" parameterType="bookClickBuyRecord">
INSERT INTO BOOK_CLICK_BUY_RECORD(
BOOK_ID, CHANNEL_ID,ADVISER_ID, WECHAT_USER_ID, CREATED_USER, CREATED_DATE)
VALUES
(#{bookId,jdbcType=BIGINT}, #{channelId,jdbcType=BIGINT}, #{adviserId,jdbcType=BIGINT},#{wechatUserId},
#{wechatUserId}, NOW())
</insert>
<select id="getClickBuyRecordCount" resultType="Integer" parameterType="list">
SELECT
COUNT(distinct WECHAT_USER_ID)
FROM
BOOK_CLICK_BUY_RECORD
WHERE
1=1
<if test="list!=null">
AND ADVISER_ID in
<foreach collection="list" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
</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