Commit 5eb18bfc by 吴博

第三方资源加bookid埋点 ,并统计第三方链接的访问数据

parent 40dda3c0
package com.pcloud.book.applet.biz; package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.AppletThirdResourcesDTO; import com.pcloud.book.applet.dto.AppletThirdResourcesDTO;
import com.pcloud.book.applet.dto.ThirdResourceRecordDTO;
import com.pcloud.book.applet.entity.AppletThirdResources; import com.pcloud.book.applet.entity.AppletThirdResources;
import com.pcloud.book.applet.entity.AppletThirdResourcesClick; import com.pcloud.book.applet.entity.AppletThirdResourcesClick;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -27,4 +28,5 @@ public interface AppletThirdResourcesBiz { ...@@ -27,4 +28,5 @@ public interface AppletThirdResourcesBiz {
void createThirdResources(AppletThirdResourcesDTO thirdResourcesDTO); void createThirdResources(AppletThirdResourcesDTO thirdResourcesDTO);
PageBeanNew<ThirdResourceRecordDTO> listThirdResourceRecord(String queryName, Integer currentPage, Integer numPerPage, String wechatUser, Long thirdResourceId, Integer recordType);
} }
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.SpecialBookDTO;
import com.pcloud.book.applet.entity.SpecialBook;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/**
* (SpecialBook)表服务接口
*
* @author makejava
* @since 2020-09-16 13:43:43
*/
public interface SpecialBookBiz {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
SpecialBook getById(Long id);
/**
* 分页查询
*/
PageBeanNew getList(Integer currentPage, Integer numPerPage);
/**
* 新增数据
*
* @param specialBook 实例对象
* @return 主键
*/
void insert(List<SpecialBook> specialBook);
/**
* 修改数据
*
* @param specialBook 实例对象
*/
void update(SpecialBook specialBook);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
void deleteById(Long id);
/**
* 获取小睿统计书刊列表
* @param queryName
* @param startTime
* @param endTime
* @param currentPage
* @param numPerPage
* @param wechatUser
* @return
*/
PageBeanNew<SpecialBookDTO> listSpecialBook(String queryName, String startTime, String endTime, Integer currentPage, Integer numPerPage, String wechatUser);
void exportSpecialBook(String queryName, String startTime, String endTime, Integer currentPage, Integer numPerPage, String wechatUser, Long partyId);
}
\ No newline at end of file
...@@ -9,17 +9,22 @@ import com.pcloud.book.applet.dao.AppletThirdResourcesDao; ...@@ -9,17 +9,22 @@ import com.pcloud.book.applet.dao.AppletThirdResourcesDao;
import com.pcloud.book.applet.dto.AppletChartDateDTO; import com.pcloud.book.applet.dto.AppletChartDateDTO;
import com.pcloud.book.applet.dto.AppletThirdResourcesDTO; import com.pcloud.book.applet.dto.AppletThirdResourcesDTO;
import com.pcloud.book.applet.dto.PvuvDTO; import com.pcloud.book.applet.dto.PvuvDTO;
import com.pcloud.book.applet.dto.ThirdResourceRecordDTO;
import com.pcloud.book.applet.entity.AppletThirdResources; import com.pcloud.book.applet.entity.AppletThirdResources;
import com.pcloud.book.applet.entity.AppletThirdResourcesClick; import com.pcloud.book.applet.entity.AppletThirdResourcesClick;
import com.pcloud.book.applet.enums.DataRecordTypeEnum; import com.pcloud.book.applet.enums.DataRecordTypeEnum;
import com.pcloud.book.applet.enums.DataTypeEnum; import com.pcloud.book.applet.enums.DataTypeEnum;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.group.biz.BizMaterialBiz; import com.pcloud.book.group.biz.BizMaterialBiz;
import com.pcloud.book.group.enums.UseTypeEnum; import com.pcloud.book.group.enums.UseTypeEnum;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.readercenter.wechat.entity.WechatUser;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -48,6 +53,10 @@ public class AppletThirdResourcesBizImpl implements AppletThirdResourcesBiz { ...@@ -48,6 +53,10 @@ public class AppletThirdResourcesBizImpl implements AppletThirdResourcesBiz {
private AppletNewsDao appletNewsDao; private AppletNewsDao appletNewsDao;
@Autowired @Autowired
private BizMaterialBiz bizMaterialBiz; private BizMaterialBiz bizMaterialBiz;
@Autowired
private ReaderConsr readerConsr;
@Autowired
private AdviserConsr adviserConsr;
@Override @Override
public PageBeanNew<AppletThirdResourcesDTO> getListThirdResourcesAnalysis(String keyValue, String source, public PageBeanNew<AppletThirdResourcesDTO> getListThirdResourcesAnalysis(String keyValue, String source,
...@@ -236,4 +245,52 @@ public class AppletThirdResourcesBizImpl implements AppletThirdResourcesBiz { ...@@ -236,4 +245,52 @@ public class AppletThirdResourcesBizImpl implements AppletThirdResourcesBiz {
} }
@Override
@ParamLog("第三方资源列表")
public PageBeanNew<ThirdResourceRecordDTO> listThirdResourceRecord(String queryName, Integer currentPage, Integer numPerPage, String wechatUser, Long thirdResourceId, Integer recordType) {
Map<String, Object> paramMap = new HashMap<>();
if (!StringUtil.isEmpty(queryName)) {
paramMap.put("queryName", queryName);
}
List<Long> wechatUserIds = null;
if (!StringUtil.isEmpty(wechatUser)) {
wechatUserIds = readerConsr.getWechatUserByNameOrId(wechatUser);
if (ListUtils.isEmpty(wechatUserIds)) {
return new PageBeanNew<>(currentPage, numPerPage,new ArrayList<>());
}
}
if (!ListUtils.isEmpty(wechatUserIds)) {
paramMap.put("wechatUserIds", wechatUserIds);
}
if (null != recordType) {
paramMap.put("recordType", recordType);
}
paramMap.put("thirdResourceId", thirdResourceId);
PageBeanNew<ThirdResourceRecordDTO> pageBeanNew = thirdResourcesClickDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "listThirdResourceRecord");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())) {
return new PageBeanNew<>(currentPage, numPerPage,new ArrayList<>());
}
List<ThirdResourceRecordDTO> recordList = pageBeanNew.getRecordList();
List<Long> adviserIds = recordList.stream().map(e -> e.getAdviserId()).collect(Collectors.toList());
List<Long> wechatUserIdList = recordList.stream().map(e -> e.getWechatUserId()).collect(Collectors.toList());
Map<Long, String> adviserNameMap = new HashMap<>();
Map<Long, WechatUser> userMap = new HashMap<>();
if (!ListUtils.isEmpty(adviserIds)) {
adviserNameMap = adviserConsr.getNames(adviserIds);
}
if (!ListUtils.isEmpty(wechatUserIdList)) {
userMap = readerConsr.getUserList(wechatUserIdList);
}
for (ThirdResourceRecordDTO thirdResourceRecordDTO : recordList) {
if (MapUtils.isNotEmpty(adviserNameMap) && null != adviserNameMap.get(thirdResourceRecordDTO.getAdviserId())) {
thirdResourceRecordDTO.setAdviserName(adviserNameMap.get(thirdResourceRecordDTO.getAdviserId()));
}
if (MapUtils.isNotEmpty(userMap) && null != userMap.get(thirdResourceRecordDTO.getWechatUserId())) {
thirdResourceRecordDTO.setWechatUserName(userMap.get(thirdResourceRecordDTO.getWechatUserId()).getWechatUserNickname());
thirdResourceRecordDTO.setPhone(userMap.get(thirdResourceRecordDTO.getWechatUserId()).getPhoneNumber());
}
}
return pageBeanNew;
}
} }
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.entity.SpecialBook;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* (SpecialBook)表数据库访问层
*
* @author makejava
* @since 2020-09-16 13:43:42
*/
public interface SpecialBookDao extends BaseDao<SpecialBook> {
List<SpecialBook> listByBookIds(List<Long> bookIds);
}
\ No newline at end of file
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.SpecialBookDao;
import com.pcloud.book.applet.entity.SpecialBook;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* (SpecialBook)表数据库访问层
*
* @author makejava
* @since 2020-09-16 13:43:43
*/
@Repository("specialBookDaoImpl")
public class SpecialBookDaoImpl extends BaseDaoImpl<SpecialBook> implements SpecialBookDao {
@Override
public List<SpecialBook> listByBookIds(List<Long> bookIds) {
return getSessionTemplate().selectList(getStatement("listByBookIds"), bookIds);
}
}
\ No newline at end of file
package com.pcloud.book.applet.dto;
import lombok.Data;
import java.util.List;
@Data
public class SpecialBookDTO {
private Long id;
private Long bookId;
private Long adviserId;
private Long channelId;
private Long agentId;
private String bookName;
private String agentName;
private String isbn;
private String adviserName;
private String channelName;
private List<String> qrcodes;
private Long bookGroupId;
private String bookGroupUrl;
private Integer resourceCount;
private Integer introductionPageNewUserCount;
private Integer introductionPagePV;
private Integer introductionPageUV;
private Integer appletNewUserCount;
private Integer appletPV;
private Integer appletUV;
private String appletTransformationEfficiency;
}
package com.pcloud.book.applet.dto;
import lombok.Data;
import java.util.List;
@Data
public class SpecialBookQueryDTO {
private List<Long> bookGroupIds;
private List<Long> bookIds;
private String startTime;
private String endTime;
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class ThirdResourceRecordDTO {
private Long id;
private Long bookId;
private String bookName;
private String isbn;
private Long adviserId;
private String adviserName;
private Long wechatUserId;
private String wechatUserName;
private String phone;
private Long newsId;
private String urlNumber;
private Integer recordType;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
private Long thirdResourceId;
}
package com.pcloud.book.applet.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import lombok.Data;
import java.util.Date;
/**
* (SpecialBook)实体类
*
* @author makejava
* @since 2020-09-16 13:43:42
*/
@Data
public class SpecialBook extends BaseEntity {
private static final long serialVersionUID = 894207975530749745L;
private Long id;
private Long bookId;
private Long adviserId;
private Long channelId;
private Integer isDelete;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
private String bookName;
}
\ No newline at end of file
package com.pcloud.book.applet.facade; package com.pcloud.book.applet.facade;
import com.pcloud.book.applet.dto.ThirdResourceRecordDTO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
...@@ -149,4 +150,17 @@ public class AppletThirdResourcesFacade { ...@@ -149,4 +150,17 @@ public class AppletThirdResourcesFacade {
return new ResponseDto<>(); return new ResponseDto<>();
} }
@GetMapping("listThirdResourceRecord")
public ResponseDto<PageBeanNew<ThirdResourceRecordDTO>> listThirdResourceRecord(@RequestHeader("token") String token,
@RequestParam(value = "thirdResourceId") Long thirdResourceId,
@RequestParam(value = "queryName",required = false) String queryName,
@RequestParam(value = "wechatUser",required = false) String wechatUser,
@RequestParam(value = "currentPage", defaultValue = "0") Integer currentPage,
@RequestParam(value = "numPerPage", defaultValue = "1000") Integer numPerPage,
@RequestParam(value = "recordType", required = false) Integer recordType) {
SessionUtil.getToken4Redis(token);
PageBeanNew<ThirdResourceRecordDTO> thirdResourceRecordDTOPageBeanNew = thirdResourcesBiz.listThirdResourceRecord(queryName,currentPage, numPerPage, wechatUser, thirdResourceId, recordType);
return new ResponseDto<>(thirdResourceRecordDTOPageBeanNew);
}
} }
\ No newline at end of file
package com.pcloud.book.applet.facade;
import com.pcloud.book.applet.biz.SpecialBookBiz;
import com.pcloud.book.applet.dto.SpecialBookDTO;
import com.pcloud.book.applet.dto.ThirdResourceRecordDTO;
import com.pcloud.book.applet.entity.SpecialBook;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.wechatgroup.message.enums.IsSystem;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
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.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* (SpecialBook)表控制层
*
* @author makejava
* @since 2020-09-16 13:43:43
*/
@RestController("specialBookFacade")
@RequestMapping("specialBook")
public class SpecialBookFacade {
@Autowired
private SpecialBookBiz specialBookBiz;
@ApiOperation("通过主键查询单条数据")
@GetMapping("getById")
public ResponseDto<?> getById(@RequestHeader("token") String token, @RequestParam Long id) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(specialBookBiz.getById(id));
}
@ApiOperation("分页查询")
@GetMapping("getList")
public ResponseDto<?> getList(@RequestHeader("token") String token,
@RequestParam(value = "currentPage", defaultValue = "0") Integer currentPage,
@RequestParam(value = "numPerPage", defaultValue = "10") Integer numPerPage)
throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(specialBookBiz.getList(currentPage, numPerPage));
}
@ApiOperation("新增")
@PostMapping("insert")
public ResponseDto<?> insert(@RequestHeader("token") String token, @RequestBody List<SpecialBook> specialBooks)
throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
specialBookBiz.insert(specialBooks);
return new ResponseDto<>();
}
@ApiOperation("更新")
@PostMapping("update")
public ResponseDto<?> update(@RequestHeader("token") String token, @RequestBody SpecialBook specialBook) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
specialBookBiz.update(specialBook);
return new ResponseDto<>();
}
@ApiOperation("删除")
@GetMapping("deleteById")
public ResponseDto<?> deleteById(@RequestHeader("token") String token, @RequestParam Long id) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
if (null == id) {
throw BookBizException.PARAM_DELETION;
}
specialBookBiz.deleteById(id);
return new ResponseDto<>();
}
@GetMapping("listSpecialBook")
public ResponseDto<PageBeanNew<SpecialBookDTO>> listSpecialBook(@RequestHeader("token") String token,
@RequestParam(value = "queryName",required = false) String queryName,
@RequestParam(value = "wechatUser",required = false) String wechatUser,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam(value = "currentPage", defaultValue = "0") Integer currentPage,
@RequestParam(value = "numPerPage", defaultValue = "10") Integer numPerPage) {
SessionUtil.getToken4Redis(token);
PageBeanNew<SpecialBookDTO> specialBookDTOPageBeanNew = specialBookBiz.listSpecialBook(queryName,startTime, endTime,currentPage, numPerPage, wechatUser);
return new ResponseDto<>(specialBookDTOPageBeanNew);
}
@GetMapping("exportSpecialBook")
public ResponseDto<Void> exportSpecialBook(@RequestHeader("token") String token,
@RequestParam(value = "queryName",required = false) String queryName,
@RequestParam(value = "wechatUser",required = false) String wechatUser,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam(value = "currentPage", defaultValue = "0") Integer currentPage,
@RequestParam(value = "numPerPage", defaultValue = "1000") Integer numPerPage) {
Map<String, Object> map = SessionUtil.getToken4Redis(token);
String isSystem = (String) map.get(SessionUtil.IS_SYSTEM);
Long partyId = (Long) map.get(SessionUtil.PARTY_ID);
if (IsSystem.NOT_SYSTEM.code.equals(isSystem)) {
partyId = (Long) map.get(SessionUtil.MEMBER_ID);
}
specialBookBiz.exportSpecialBook(queryName,startTime, endTime,currentPage, numPerPage, wechatUser, partyId);
return new ResponseDto<>();
}
}
\ No newline at end of file
...@@ -660,7 +660,7 @@ public interface BookBiz { ...@@ -660,7 +660,7 @@ public interface BookBiz {
void updateIsOpenRobotProcess4Now(Long adviserId, UpdateBookRobotProcessDto robotProcessDto); void updateIsOpenRobotProcess4Now(Long adviserId, UpdateBookRobotProcessDto robotProcessDto);
PageBeanNew<BookDto> getAdviserBooks4Rights(String keyword, Long agentId, Long templetId, Long secondTempletId, String typeCode, Integer currentPage, Integer numPerPage); PageBeanNew<BookDto> getAdviserBooks4Rights(String keyword, Long agentId, Long templetId, Long secondTempletId, String typeCode, Integer currentPage, Integer numPerPage, Integer isIgnore);
/** /**
* 小程序首页书刊搜索 * 小程序首页书刊搜索
......
...@@ -7,7 +7,6 @@ import com.google.common.collect.Lists; ...@@ -7,7 +7,6 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.netflix.discovery.converters.Auto;
import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto; import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto;
import com.pcloud.appcenter.app.dto.AppDto; import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO; import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
...@@ -107,6 +106,7 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools; ...@@ -107,6 +106,7 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.mq.producer.BookMQProducer; import com.pcloud.book.mq.producer.BookMQProducer;
import com.pcloud.book.rightsSetting.mapper.RightsSettingBookRelationMapper; import com.pcloud.book.rightsSetting.mapper.RightsSettingBookRelationMapper;
import com.pcloud.book.util.common.ThreadPoolUtils; import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.book.util.common.YesOrNoEnums;
import com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.entity.QrcodeLabel; import com.pcloud.channelcenter.qrcode.entity.QrcodeLabel;
...@@ -2371,7 +2371,7 @@ public class BookBizImpl implements BookBiz { ...@@ -2371,7 +2371,7 @@ public class BookBizImpl implements BookBiz {
@Override @Override
public PageBeanNew<BookDto> getAdviserBooks4Rights(String keyword, Long agentId, Long templetId, Long secondTempletId, String typeCode, public PageBeanNew<BookDto> getAdviserBooks4Rights(String keyword, Long agentId, Long templetId, Long secondTempletId, String typeCode,
Integer currentPage, Integer numPerPage) { Integer currentPage, Integer numPerPage, Integer isIgnore) {
Map<String,Object> map=new HashMap<>(); Map<String,Object> map=new HashMap<>();
map.put("keyword",keyword); map.put("keyword",keyword);
map.put("templetId",templetId); map.put("templetId",templetId);
...@@ -2391,10 +2391,12 @@ public class BookBizImpl implements BookBiz { ...@@ -2391,10 +2391,12 @@ public class BookBizImpl implements BookBiz {
map.put("adviserIds4Name", adviserIds); map.put("adviserIds4Name", adviserIds);
} }
//获取已被权益选择的书刊 //获取已被权益选择的书刊
if ((null == isIgnore) || YesOrNoEnums.NO.getValue().equals(isIgnore)) {
List<Long> bookIds = rightsSettingBookRelationMapper.getAllBookIds(); List<Long> bookIds = rightsSettingBookRelationMapper.getAllBookIds();
if (!ListUtils.isEmpty(bookIds)){ if (!ListUtils.isEmpty(bookIds)){
map.put("ignoreBookIds", bookIds); map.put("ignoreBookIds", bookIds);
} }
}
PageBeanNew<BookDto> page = bookDao.listPageNew(new PageParam(currentPage, numPerPage), map, "getAdviserBooks4Rights"); PageBeanNew<BookDto> page = bookDao.listPageNew(new PageParam(currentPage, numPerPage), map, "getAdviserBooks4Rights");
fillBookInfo(page.getRecordList()); fillBookInfo(page.getRecordList());
return page; return page;
......
...@@ -1072,6 +1072,7 @@ public class BookFacadeImpl implements BookFacade { ...@@ -1072,6 +1072,7 @@ public class BookFacadeImpl implements BookFacade {
@RequestParam(value = "templetId", required = false) Long templetId, @RequestParam(value = "templetId", required = false) Long templetId,
@RequestParam(value = "secondTempletId", required = false) Long secondTempletId, @RequestParam(value = "secondTempletId", required = false) Long secondTempletId,
@RequestParam(value = "typeCode", required = false) String typeCode, @RequestParam(value = "typeCode", required = false) String typeCode,
@RequestParam(value = "isIgnore", required = false) Integer isIgnore,
@RequestParam(value = "currentPage") Integer currentPage, @RequestParam(value = "currentPage") Integer currentPage,
@RequestParam(value = "numPerPage") Integer numPerPage @RequestParam(value = "numPerPage") Integer numPerPage
) throws BizException, PermissionException { ) throws BizException, PermissionException {
...@@ -1079,7 +1080,7 @@ public class BookFacadeImpl implements BookFacade { ...@@ -1079,7 +1080,7 @@ public class BookFacadeImpl implements BookFacade {
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) { if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION; throw BookBizException.PAGE_PARAM_DELETION;
} }
return new ResponseDto<>(bookBiz.getAdviserBooks4Rights(keyword, agentId, templetId, secondTempletId, typeCode, currentPage, numPerPage)); return new ResponseDto<>(bookBiz.getAdviserBooks4Rights(keyword, agentId, templetId, secondTempletId, typeCode, currentPage, numPerPage, isIgnore));
} }
@Override @Override
......
package com.pcloud.book.consumer.reader; package com.pcloud.book.consumer.reader;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.applet.dto.SpecialBookDTO;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException; import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.readercenter.wechat.dto.NickNameAndOpenIdDto; import com.pcloud.readercenter.wechat.dto.NickNameAndOpenIdDto;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -12,6 +12,8 @@ import java.util.stream.Collectors; ...@@ -12,6 +12,8 @@ import java.util.stream.Collectors;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.readercenter.wechat.dto.SpecialBookDTO4Reader;
import com.pcloud.readercenter.wechat.dto.SpecialBookQueryDTO4Reader;
import com.pcloud.usercenter.party.agent.dto.AgentCity; import com.pcloud.usercenter.party.agent.dto.AgentCity;
import com.pcloud.usercenter.party.agent.service.AgentService; import com.pcloud.usercenter.party.agent.service.AgentService;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -30,7 +32,6 @@ import com.pcloud.readercenter.wechat.dto.ReaderMessageDto; ...@@ -30,7 +32,6 @@ import com.pcloud.readercenter.wechat.dto.ReaderMessageDto;
import com.pcloud.readercenter.wechat.dto.WechatUserRobotDto; import com.pcloud.readercenter.wechat.dto.WechatUserRobotDto;
import com.pcloud.readercenter.wechat.entity.WechatUser; import com.pcloud.readercenter.wechat.entity.WechatUser;
import com.pcloud.readercenter.wechat.service.WechatUserService; import com.pcloud.readercenter.wechat.service.WechatUserService;
import org.springframework.web.bind.annotation.RequestParam;
/** /**
* @author lily * @author lily
...@@ -246,6 +247,30 @@ public class ReaderConsr { ...@@ -246,6 +247,30 @@ public class ReaderConsr {
} }
return count; return count;
} }
public Map<Long, SpecialBookDTO4Reader> getAppletStatisticsMap(SpecialBookQueryDTO4Reader specialBookQueryDTO) {
LOGGER.info("小程序用户统计数据");
Map<Long, SpecialBookDTO4Reader> map = new HashMap<>();
try {
map = ResponseHandleUtil.parseMapResponse(wechatUserService.getAppletStatisticsMap(specialBookQueryDTO), Long.class, SpecialBookDTO4Reader.class);
} catch (Exception e) {
LOGGER.error("小程序用户统计数据.[getAppletStatisticsMap]失败" + e.getMessage(), e);
}
return map;
}
public List<Long> getWechatUserByNameOrId(String wechatUser) {
LOGGER.info("根据名称或id获取用户id");
List<Long> wechatUserIds = new ArrayList<>();
try {
wechatUserIds = ResponseHandleUtil.parseList(wechatUserService.getWechatUserByNameOrId(wechatUser), Long.class);
} catch (Exception e) {
LOGGER.error("根据名称或id获取用户id.[getWechatUserByNameOrId]失败" + e.getMessage(), e);
}
return wechatUserIds;
}
} }
...@@ -3,6 +3,7 @@ package com.pcloud.book.consumer.wechatgroup; ...@@ -3,6 +3,7 @@ package com.pcloud.book.consumer.wechatgroup;
import com.dcg.coolq.sdk.CoolQSDK; import com.dcg.coolq.sdk.CoolQSDK;
import com.dcg.coolq.sdk.message.vos.send.PrivateMsgSendVO; import com.dcg.coolq.sdk.message.vos.send.PrivateMsgSendVO;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.pcloud.book.applet.dto.SpecialBookDTO;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
...@@ -16,6 +17,8 @@ import com.pcloud.wechatgroup.group.dto.GroupRobotDTO; ...@@ -16,6 +17,8 @@ import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserCountDTO; import com.pcloud.wechatgroup.group.dto.GroupUserCountDTO;
import com.pcloud.wechatgroup.group.dto.GroupUserDTO; import com.pcloud.wechatgroup.group.dto.GroupUserDTO;
import com.pcloud.wechatgroup.group.dto.RobotReplyDTO; import com.pcloud.wechatgroup.group.dto.RobotReplyDTO;
import com.pcloud.wechatgroup.group.dto.SpecialBookDTO4WG;
import com.pcloud.wechatgroup.group.dto.SpecialBookQueryDTO4WG;
import com.pcloud.wechatgroup.group.service.GroupMemberService; import com.pcloud.wechatgroup.group.service.GroupMemberService;
import com.pcloud.wechatgroup.message.dto.BrandParamDTO; import com.pcloud.wechatgroup.message.dto.BrandParamDTO;
import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO; import com.pcloud.wechatgroup.message.dto.GroupChatCountDTO;
...@@ -777,4 +780,16 @@ public class WechatGroupConsr { ...@@ -777,4 +780,16 @@ public class WechatGroupConsr {
} }
return bookGroupId; return bookGroupId;
} }
public Map<Long, SpecialBookDTO4WG> getIntroductionPagePVAndUvMap(SpecialBookQueryDTO4WG specialBookQueryDTO) {
log.info("批量获取落地页统计数据");
Map<Long, SpecialBookDTO4WG> map = new HashMap<>();
try {
map = ResponseHandleUtil.parseMapResponse(groupMemberService.getIntroductionPagePVAndUvMap(specialBookQueryDTO), Long.class, SpecialBookDTO4WG.class);
} catch (Exception e) {
log.error("批量获取落地页统计数据.[getIntroductionPagePVAndUvMap]失败" + e.getMessage(), e);
}
return map;
}
} }
...@@ -5,8 +5,8 @@ server: ...@@ -5,8 +5,8 @@ server:
eureka: eureka:
instance: instance:
status-page-url-path: /book/v1.0/swagger-ui.html status-page-url-path: /book/v1.0/swagger-ui.html
# client: client:
# register-with-eureka: false #禁止自己当做服务注册 register-with-eureka: true #禁止自己当做服务注册
spring: spring:
application: application:
......
...@@ -92,4 +92,48 @@ ...@@ -92,4 +92,48 @@
ORDER BY b.createDate asc ORDER BY b.createDate asc
</select> </select>
<select id="listThirdResourceRecord" parameterType="map" resultType="com.pcloud.book.applet.dto.ThirdResourceRecordDTO">
select
a.id,
a.wechat_user_id wechatUserId,
a.third_resources_id thirdResourceId,
a.record_type recordType,
a.create_time createTime,
b.url_number urlNumber,
a.news_id newsId,
a.booK_id bookId,
a.adviser_id adviserId,
c.book_name bookName,
c.isbn
from
applet_thirdresources_click_record a
left join
applet_news b on a.news_id = b.id
left join
book c on a.book_id = c.BOOK_ID
<where>
a.book_id is not null and a.third_resources_id = #{thirdResourceId}
<if test="queryName != null">
and (
c.book_name like concat("%",#{queryName},"%")
or
c.isbn like concat("%",#{queryName},"%")
)
</if>
<if test="wechatUserIds != null">
and
a.wechat_user_id in
<foreach collection="wechatUserIds" item="item" index="index" open="(" close=")" separator=",">
${item}
</foreach>
</if>
<if test="recordType != null">
and a.record_type = #{recordType}
</if>
</where>
order by a.create_time desc
</select>
</mapper> </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.SpecialBookDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.SpecialBook">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="book_id" property="bookId" jdbcType="BIGINT"/>
<result column="adviser_id" property="adviserId" jdbcType="BIGINT"/>
<result column="channel_id" property="channelId" jdbcType="BIGINT"/>
<result column="is_delete" property="isDelete" jdbcType="INTEGER"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<resultMap id="BaseDTOResultMap" type="com.pcloud.book.applet.dto.SpecialBookDTO">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="book_id" property="bookId" jdbcType="BIGINT"/>
<result column="adviser_id" property="adviserId" jdbcType="BIGINT"/>
<result column="channel_id" property="channelId" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
id, book_id, adviser_id, channel_id, is_delete, create_time, update_time
</sql>
<select id="getById" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM special_book
WHERE id = #{id}
</select>
<select id="getList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM special_book
</select>
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
INSERT INTO special_book(
book_id,
adviser_id,
channel_id,
is_delete,
create_time,
update_time
) VALUES (
#{bookId, jdbcType=BIGINT},
#{adviserId, jdbcType=BIGINT},
#{channelId, jdbcType=BIGINT},
0,
now(),
now()
)
</insert>
<insert id="batchInsert">
INSERT INTO special_book (
book_id,
adviser_id,
channel_id,
is_delete,
create_time,
update_time
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.bookId, jdbcType=BIGINT},
#{item.adviserId, jdbcType=BIGINT},
#{item.channelId, jdbcType=BIGINT},
0 ,
now(),
now()
)
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
UPDATE special_book
<set>
<if test="bookId != null">
book_id = #{bookId},
</if>
<if test="adviserId != null">
adviser_id = #{adviserId},
</if>
<if test="channelId != null">
channel_id = #{channelId},
</if>
<if test="isDelete != null">
is_delete = #{isDelete},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
WHERE id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
DELETE FROM special_book where id = #{id}
</delete>
<select id="listSpecialBook" parameterType="map" resultType="com.pcloud.book.applet.dto.SpecialBookDTO">
SELECT
a.id,
a.book_id bookId,
b.book_name bookName,
a.adviser_id adviserId,
a.channel_id channelId,
b.isbn,
c.id bookGroupId,
c.group_qrcode_url bookGroupUrl
FROM special_book a
left join book b on a.book_id = b.book_id
left join book_group c on a.book_id = c.book_id and a.channel_id = c.channel_id and c.is_delete = 0
where
a.is_delete = 0
<if test="queryName != null">
and (
b.book_name like concat("%",#{queryName},"%")
or
b.isbn like concat("%",#{queryName},"%")
)
</if>
</select>
<select id="listByBookIds" parameterType="list" resultType="com.pcloud.book.applet.entity.SpecialBook">
select
a.id,
a.book_id bookId,
b.book_name bookName
from
special_book a
left join book b on a.book_id = b.book_id
where
a.book_id
in
<foreach collection="list" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</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