Commit 4c6669fe by 郑永强

bug: [none] 处理ERP过期书刊导出

parent 9d2b3dd8
...@@ -39,4 +39,14 @@ public class BookGroupServeCountDTO extends BaseDto { ...@@ -39,4 +39,14 @@ public class BookGroupServeCountDTO extends BaseDto {
@ApiModelProperty("权益数量") @ApiModelProperty("权益数量")
private Integer rightsCount; private Integer rightsCount;
@ApiModelProperty("公众号sceneid/RAYS码bookgroupid")
private Long bookQrcodeId;
@ApiModelProperty("sceneId数组")
private String sceneIdStr;
@ApiModelProperty("sceneIds")
private List<Long> sceneIds = Lists.newArrayList();
} }
...@@ -2,8 +2,10 @@ package com.pcloud.book.book.biz; ...@@ -2,8 +2,10 @@ package com.pcloud.book.book.biz;
import com.pcloud.book.book.vo.request.BookQrcodeWxworkRequestVO; import com.pcloud.book.book.vo.request.BookQrcodeWxworkRequestVO;
import com.pcloud.book.book.vo.response.BookQrcodeWxworkResponseVO; import com.pcloud.book.book.vo.response.BookQrcodeWxworkResponseVO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 二维码配置企业微信 * 二维码配置企业微信
...@@ -53,4 +55,14 @@ public interface BookQrcodeWxworkBiz { ...@@ -53,4 +55,14 @@ public interface BookQrcodeWxworkBiz {
* * @param null * * @param null
*/ */
List<Long> getWxworkGroupQrcodeIdsExceptBook(Long sceneId, Long bookGroupId); List<Long> getWxworkGroupQrcodeIdsExceptBook(Long sceneId, Long bookGroupId);
/**
* 获取二维码配置的企业微信
*/
Map<Long, BookGroupServeCountDTO> mapWxWorkServeCount4SceneIds(List<Long> sceneIds, Integer bookQrcodeType);
/**
* 获取二维码配置的企业微信
*/
Map<String, BookGroupServeCountDTO> mapWxWorkServeCount4BookIds(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds, String strSceneIds);
} }
...@@ -14,6 +14,7 @@ import com.pcloud.book.base.exception.BookBizException; ...@@ -14,6 +14,7 @@ import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookAdviserBiz; import com.pcloud.book.book.biz.BookAdviserBiz;
import com.pcloud.book.book.biz.BookBiz; import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.biz.BookFundBiz; import com.pcloud.book.book.biz.BookFundBiz;
import com.pcloud.book.book.biz.BookQrcodeWxworkBiz;
import com.pcloud.book.book.constant.BookConstant; import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.dao.BookAdviserDao; import com.pcloud.book.book.dao.BookAdviserDao;
import com.pcloud.book.book.dto.AdviserBookInfoDTO; import com.pcloud.book.book.dto.AdviserBookInfoDTO;
...@@ -35,6 +36,7 @@ import com.pcloud.book.book.dto.ErpBookInfoDTO; ...@@ -35,6 +36,7 @@ import com.pcloud.book.book.dto.ErpBookInfoDTO;
import com.pcloud.book.book.dto.QrcodeStatisticsDTO; import com.pcloud.book.book.dto.QrcodeStatisticsDTO;
import com.pcloud.book.book.entity.Book; import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookAdviser; import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.enums.BookQrcodeType;
import com.pcloud.book.book.set.BookSet; import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.book.vo.AgentBookStatsDetailVO; import com.pcloud.book.book.vo.AgentBookStatsDetailVO;
import com.pcloud.book.book.vo.ErpAdviserBookVO; import com.pcloud.book.book.vo.ErpAdviserBookVO;
...@@ -64,7 +66,6 @@ import com.pcloud.book.group.dto.BookAppletSceneDTO; ...@@ -64,7 +66,6 @@ import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO; import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookServeDTO; import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.entity.BookAppletScene;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz; import com.pcloud.book.rightsSetting.biz.RightsSettingBiz;
import com.pcloud.book.rightsSetting.dao.RightsSettingDAO; import com.pcloud.book.rightsSetting.dao.RightsSettingDAO;
...@@ -90,6 +91,7 @@ import com.pcloud.common.utils.cache.redis.JedisClusterUtils; ...@@ -90,6 +91,7 @@ import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.facade.tradecenter.dto.Amount4BookAdviserDto; import com.pcloud.facade.tradecenter.dto.Amount4BookAdviserDto;
import com.pcloud.raystask.entity.AdviserDefault; import com.pcloud.raystask.entity.AdviserDefault;
import com.pcloud.readercenter.common.enums.YesOrNoNumEnum;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.usercenter.user.entity.UserLogin; import com.pcloud.usercenter.user.entity.UserLogin;
import com.pcloud.wechatgroup.group.dto.GroupScanUserStatsDTO; import com.pcloud.wechatgroup.group.dto.GroupScanUserStatsDTO;
...@@ -197,6 +199,10 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -197,6 +199,10 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
private MessageConsr messageConsr; private MessageConsr messageConsr;
@Autowired @Autowired
private BookAppletSceneDao bookAppletSceneDao; private BookAppletSceneDao bookAppletSceneDao;
@Autowired
private BookAdviserBiz bookAdviserBiz;
@Autowired
private BookQrcodeWxworkBiz bookQrcodeWxworkBiz;
@Override @Override
public List<BookDto> listByAdviserId(Long adviserId) { public List<BookDto> listByAdviserId(Long adviserId) {
...@@ -1100,11 +1106,15 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1100,11 +1106,15 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} }
List<QrcodeSceneDto> qrcodeSceneDtos = qrcodeSceneConsr.getQrCodeList(bookId, adviserId, channelId); List<QrcodeSceneDto> qrcodeSceneDtos = qrcodeSceneConsr.getQrCodeList(bookId, adviserId, channelId);
if (!ListUtils.isEmpty(qrcodeSceneDtos)) { if (!ListUtils.isEmpty(qrcodeSceneDtos)) {
List<Long> sceneIds = qrcodeSceneDtos.stream().map(x -> x.getSceneId()).collect(Collectors.toList());
// 企业微信群资源数
Map<Long, BookGroupServeCountDTO> bookQrcodeWxworkMap = bookQrcodeWxworkBiz.mapWxWorkServeCount4SceneIds(sceneIds, BookQrcodeType.OFFICIAL_ACCOUNTS.getCode());
for (QrcodeSceneDto e : qrcodeSceneDtos) { for (QrcodeSceneDto e : qrcodeSceneDtos) {
QrCodeVO qrCodeVO = new QrCodeVO(); QrCodeVO qrCodeVO = new QrCodeVO();
qrCodeVO.setQrCodeName(e.getSceneName()); qrCodeVO.setQrCodeName(e.getSceneName());
qrCodeVO.setQrCodeUrl(e.getQrcodeUrl()); qrCodeVO.setQrCodeUrl(e.getQrcodeUrl());
qrCodeVO.setServeCount(ListUtils.isEmpty(e.getMessages()) ? 0 : e.getMessages().size()); BookGroupServeCountDTO serveCountDTO = bookQrcodeWxworkMap.get(e.getSceneId());
qrCodeVO.setServeCount((ListUtils.isEmpty(e.getMessages()) ? 0 : e.getMessages().size()) + (serveCountDTO == null ? 0 : serveCountDTO.getServeCount()));
qrCodeVOS.add(qrCodeVO); qrCodeVOS.add(qrCodeVO);
} }
} }
...@@ -1132,6 +1142,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1132,6 +1142,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
Future<Map<String, BookGroupServeCountDTO>> mapBookGroupRobotServeCountSubmit = ThreadPoolUtils.OTHER_POOL.submit(()-> bookGroupBiz.mapBookGroupQrcodeServeCount(adviserIds, bookIds, channelIds, JoinGroupTypeEnum.ROBOT.getCode())); Future<Map<String, BookGroupServeCountDTO>> mapBookGroupRobotServeCountSubmit = ThreadPoolUtils.OTHER_POOL.submit(()-> bookGroupBiz.mapBookGroupQrcodeServeCount(adviserIds, bookIds, channelIds, JoinGroupTypeEnum.ROBOT.getCode()));
Future<Map<Long, RightsSettingDto>> rightsMapSubmit = ThreadPoolUtils.OTHER_POOL.submit(()-> rightsSettingDAO.listByBookIds(bookIds)); Future<Map<Long, RightsSettingDto>> rightsMapSubmit = ThreadPoolUtils.OTHER_POOL.submit(()-> rightsSettingDAO.listByBookIds(bookIds));
Map<String, QrcodeMessageDTO> mapQrcodeMessage =new HashMap<>(); Map<String, QrcodeMessageDTO> mapQrcodeMessage =new HashMap<>();
Map<String, BookGroupServeCountDTO> mapWxworkServeCount =new HashMap<>();
Map<String, BookGroupServeCountDTO> mapBookGroupServeCount = new HashMap<>(); Map<String, BookGroupServeCountDTO> mapBookGroupServeCount = new HashMap<>();
Map<String, BookGroupServeCountDTO> mapBookGroupQrcodeServeCount = new HashMap<>(); Map<String, BookGroupServeCountDTO> mapBookGroupQrcodeServeCount = new HashMap<>();
Map<String, BookGroupServeCountDTO> mapBookGroupRobotServeCount =new HashMap<>(); Map<String, BookGroupServeCountDTO> mapBookGroupRobotServeCount =new HashMap<>();
...@@ -1141,6 +1152,9 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1141,6 +1152,9 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
} catch (InterruptedException | ExecutionException | TimeoutException e) { } catch (InterruptedException | ExecutionException | TimeoutException e) {
LOGGER.error("获取二维码信息错误: {}==", e); LOGGER.error("获取二维码信息错误: {}==", e);
} }
// 只查询公众号二维码中未被删除的sceneId对应的企业微信资源数
String strSceneIds = mapQrcodeMessage.values().stream().map(x -> x.getSceneIdStr()).collect(Collectors.joining(","));
mapWxworkServeCount = bookQrcodeWxworkBiz.mapWxWorkServeCount4BookIds(adviserIds, bookIds, channelIds, strSceneIds);
try { try {
mapBookGroupServeCount = mapBookGroupServeCountSubmit.get(); mapBookGroupServeCount = mapBookGroupServeCountSubmit.get();
}catch (InterruptedException | ExecutionException e) { }catch (InterruptedException | ExecutionException e) {
...@@ -1203,6 +1217,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1203,6 +1217,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
bookResourceStatisticsDTO = new BookResourceStatisticsDTO(); bookResourceStatisticsDTO = new BookResourceStatisticsDTO();
QrcodeMessageDTO qrcodeMessageDTO = mapQrcodeMessage.get(bookChannelAdviserId); QrcodeMessageDTO qrcodeMessageDTO = mapQrcodeMessage.get(bookChannelAdviserId);
BookGroupServeCountDTO bookQrcodeWxwork = mapWxworkServeCount.get(bookChannelAdviserId);
BookGroupServeCountDTO bookGroupServeCountDTO = mapBookGroupServeCount.get(bookChannelAdviserId); BookGroupServeCountDTO bookGroupServeCountDTO = mapBookGroupServeCount.get(bookChannelAdviserId);
BookGroupServeCountDTO bookGroupQrcodeServeCountDTO = mapBookGroupQrcodeServeCount.get(bookChannelAdviserId); BookGroupServeCountDTO bookGroupQrcodeServeCountDTO = mapBookGroupQrcodeServeCount.get(bookChannelAdviserId);
BookGroupServeCountDTO bookGroupRobotServeCountDTO = mapBookGroupRobotServeCount.get(bookChannelAdviserId); BookGroupServeCountDTO bookGroupRobotServeCountDTO = mapBookGroupRobotServeCount.get(bookChannelAdviserId);
...@@ -1212,6 +1227,10 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1212,6 +1227,10 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
bookResourceStatisticsDTO.setQrcodeCount(0); bookResourceStatisticsDTO.setQrcodeCount(0);
bookResourceStatisticsDTO.setServeCount(0); bookResourceStatisticsDTO.setServeCount(0);
} }
// 企业微信
if(bookQrcodeWxwork != null){
bookResourceStatisticsDTO.setServeCount(bookResourceStatisticsDTO.getServeCount() + bookQrcodeWxwork.getServeCount());
}
bookResourceStatisticsDTO.setServeCount(bookResourceStatisticsDTO.getServeCount() + qrcodeMessageDTO.getServeCount()); bookResourceStatisticsDTO.setServeCount(bookResourceStatisticsDTO.getServeCount() + qrcodeMessageDTO.getServeCount());
bookResourceStatisticsDTO.setQrcodeCount(bookResourceStatisticsDTO.getQrcodeCount() + qrcodeMessageDTO.getQrcodeCount()); bookResourceStatisticsDTO.setQrcodeCount(bookResourceStatisticsDTO.getQrcodeCount() + qrcodeMessageDTO.getQrcodeCount());
} }
...@@ -1269,23 +1288,35 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1269,23 +1288,35 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
Map<String, BookDataStatisticsDTO> resultMap = new HashMap<>(); Map<String, BookDataStatisticsDTO> resultMap = new HashMap<>();
BookDataStatisticsDTO bookDataStatisticsDTO; BookDataStatisticsDTO bookDataStatisticsDTO;
// 获取配置了书刊权益的书 // 获取配置了书刊权益的书
Future<Map<Long, RightsSettingDto>> rightsMapSubmit = ThreadPoolUtils.OTHER_THREAD_POOL.submit(() -> rightsSettingBiz.listByBookIds(bookIds)); // Future<Map<Long, RightsSettingDto>> rightsMapSubmit = ThreadPoolUtils.OTHER_THREAD_POOL.submit(() -> rightsSettingBiz.listByBookIds(bookIds));
Future<Map<String, BrowseCacheRecordDto>> bookScanAndUvSubmit = ThreadPoolUtils.OTHER_THREAD_POOL.submit(() -> browseRecordConsr.getBookScanAndUv(adviserIds, channelIds, bookIds)); Future<Map<String, BrowseCacheRecordDto>> bookScanAndUvSubmit = ThreadPoolUtils.OTHER_THREAD_POOL.submit(() -> browseRecordConsr.getBookScanAndUv(adviserIds, channelIds, bookIds));
Future<Map<String, BookAdviserDto>> bookAdviserSubmit = ThreadPoolUtils.OTHER_THREAD_POOL.submit(() -> bookAdviserBiz.getBookInfoByBookIds(bookIds, adviserIds, channelIds));
Map<Long, RightsSettingDto> rightsMap = new HashMap<>();
// 获取现代纸书统计数据 // 获取现代纸书统计数据
Map<String, BrowseCacheRecordDto> bookScanAndUv = new HashMap<>(); Map<String, BrowseCacheRecordDto> bookScanAndUv = new HashMap<>();
/*
Map<Long, RightsSettingDto> rightsMap = new HashMap<>();
try { try {
rightsMap = rightsMapSubmit.get(); rightsMap = rightsMapSubmit.get();
} catch (InterruptedException | ExecutionException e) { } catch (InterruptedException | ExecutionException e) {
LOGGER.error("获取配置了书刊权益的书错误: {}==", e); LOGGER.error("获取配置了书刊权益的书错误: {}==", e);
} }
*/
try { try {
bookScanAndUv = bookScanAndUvSubmit.get(ThreadPoolUtils.REMOTE_TIME_OUT, TimeUnit.SECONDS); bookScanAndUv = bookScanAndUvSubmit.get(ThreadPoolUtils.REMOTE_TIME_OUT, TimeUnit.SECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) { } catch (InterruptedException | ExecutionException | TimeoutException e) {
LOGGER.error("获取现代纸书统计数据错误: {}==", e); LOGGER.error("获取现代纸书统计数据错误: {}==", e);
} }
Map<String, BookAdviserDto> bookAdviserDtoMap = new HashMap<>();
try {
bookAdviserDtoMap = bookAdviserSubmit.get(ThreadPoolUtils.REMOTE_TIME_OUT, TimeUnit.SECONDS);
} catch (InterruptedException | ExecutionException | TimeoutException e) {
LOGGER.error("获取现代纸书是否小睿流程错误: {}==", e);
}
// 根据条件筛选出社群书数据 // 根据条件筛选出社群书数据
List<BookGroupDTO> bookGroupList = bookGroupDao.getDTOByBookIdsAdviserIdsChannelIds(bookIds, adviserIds, channelIds); List<BookGroupDTO> bookGroupList = bookGroupDao.getDTOByBookIdsAdviserIdsChannelIds(bookIds, adviserIds, channelIds);
if(!CollectionUtils.isEmpty(bookGroupList)){ if(!CollectionUtils.isEmpty(bookGroupList)){
...@@ -1340,6 +1371,24 @@ public class BookAdviserBizImpl implements BookAdviserBiz { ...@@ -1340,6 +1371,24 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
bookDataStatisticsDTO.setBookCategory("现代纸书"); bookDataStatisticsDTO.setBookCategory("现代纸书");
resultMap.put(bookDataStatisticsDTO.getBookChannelAdviserId(), bookDataStatisticsDTO); resultMap.put(bookDataStatisticsDTO.getBookChannelAdviserId(), bookDataStatisticsDTO);
} }
// 判断现代纸书是否开启小睿流程
for (BookAdviserDto dto : bookAdviserDtoMap.values()) {
String bookChannelAdviserId = dto.getBookId() + "_" + dto.getChannelId() + "_" + dto.getAdviserId() ;
bookDataStatisticsDTO = resultMap.get(bookChannelAdviserId);
if(bookDataStatisticsDTO != null){
if(YesOrNoNumEnum.YES.getValue().equals(dto.getIsOpenRobotProcess()) && bookDataStatisticsDTO.getBookCategory().indexOf("小睿书") == -1){
bookDataStatisticsDTO.setBookCategory(bookDataStatisticsDTO.getBookCategory()+"、小睿书");
}
continue;
}
bookDataStatisticsDTO = new BookDataStatisticsDTO();
bookDataStatisticsDTO.setBookChannelAdviserId(bookChannelAdviserId);
bookDataStatisticsDTO.setAdviserId(dto.getAdviserId());
bookDataStatisticsDTO.setBookId(dto.getBookId());
bookDataStatisticsDTO.setChannelId(dto.getChannelId());
bookDataStatisticsDTO.setBookCategory(YesOrNoNumEnum.YES.getValue().equals(dto.getIsOpenRobotProcess()) ? "小睿书" : "现代纸书");
resultMap.put(bookDataStatisticsDTO.getBookChannelAdviserId(), bookDataStatisticsDTO);
}
return resultMap; return resultMap;
} }
......
package com.pcloud.book.book.biz.impl; package com.pcloud.book.book.biz.impl;
import cn.hutool.core.collection.CollUtil;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz; import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO; import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
...@@ -14,6 +15,7 @@ import com.pcloud.book.consumer.channel.QrcodeSceneConsr; ...@@ -14,6 +15,7 @@ import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.dao.BookGroupDao; import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto; import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.wechatgroup.wxwork.dto.WxworkGroupQrcodeBaseDTO; import com.pcloud.wechatgroup.wxwork.dto.WxworkGroupQrcodeBaseDTO;
...@@ -28,6 +30,7 @@ import java.util.ArrayList; ...@@ -28,6 +30,7 @@ import java.util.ArrayList;
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.stream.Collectors;
/** /**
* @ClassName com.pcloud.book.book.biz.impl.BookQrcodeWxworkBizImpl * @ClassName com.pcloud.book.book.biz.impl.BookQrcodeWxworkBizImpl
...@@ -234,4 +237,30 @@ public class BookQrcodeWxworkBizImpl implements BookQrcodeWxworkBiz { ...@@ -234,4 +237,30 @@ public class BookQrcodeWxworkBizImpl implements BookQrcodeWxworkBiz {
List<Long> groupQrcodeIds = bookQrcodeWxworkDao.getWxworkQrcodeIdsExceptBook(bookId, wxworkQrcodeType); List<Long> groupQrcodeIds = bookQrcodeWxworkDao.getWxworkQrcodeIdsExceptBook(bookId, wxworkQrcodeType);
return groupQrcodeIds; return groupQrcodeIds;
} }
@Override
public Map<Long, BookGroupServeCountDTO> mapWxWorkServeCount4SceneIds(List<Long> sceneIds, Integer bookQrcodeType) {
if(CollUtil.isEmpty(sceneIds)){
return new HashMap<>();
}
List<BookGroupServeCountDTO> list = bookQrcodeWxworkDao.mapWxWorkServeCount4SceneIds(sceneIds, bookQrcodeType);
if(CollUtil.isEmpty(list)){
return new HashMap<>();
}
Map<Long, BookGroupServeCountDTO> resultMap = list.stream().collect(Collectors.toMap(x -> x.getBookQrcodeId(), x -> x, (v1, v2) -> v2));
return CollUtil.isEmpty(resultMap) ? new HashMap<>() : resultMap;
}
@Override
public Map<String, BookGroupServeCountDTO> mapWxWorkServeCount4BookIds(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds, String strSceneIds) {
if(CollUtil.isEmpty(adviserIds) || CollUtil.isEmpty(bookIds) || CollUtil.isEmpty(channelIds)){
return new HashMap<>();
}
List<BookGroupServeCountDTO> list = bookQrcodeWxworkDao.mapWxWorkServeCount4BookIds(adviserIds, bookIds, channelIds, strSceneIds, BookQrcodeType.OFFICIAL_ACCOUNTS.getCode());
if(CollUtil.isEmpty(list)){
return new HashMap<>();
}
Map<String, BookGroupServeCountDTO> resultMap = list.stream().collect(Collectors.toMap(x -> x.getBookChannelAdviserId(), x -> x, (v1, v2) -> v2));
return CollUtil.isEmpty(resultMap) ? new HashMap<>() : resultMap;
}
} }
package com.pcloud.book.book.dao; package com.pcloud.book.book.dao;
import com.pcloud.book.book.entity.BookQrcodeWxwork; import com.pcloud.book.book.entity.BookQrcodeWxwork;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
...@@ -45,4 +46,14 @@ public interface BookQrcodeWxworkDao extends BaseDao<BookQrcodeWxwork>{ ...@@ -45,4 +46,14 @@ public interface BookQrcodeWxworkDao extends BaseDao<BookQrcodeWxwork>{
* * @param null * * @param null
*/ */
List<Long> getWxworkQrcodeIdsExceptBook(Long bookId, Integer wxworkQrcodeType); List<Long> getWxworkQrcodeIdsExceptBook(Long bookId, Integer wxworkQrcodeType);
}
\ No newline at end of file /**
* 获取二维码配置的企业微信
*/
List<BookGroupServeCountDTO> mapWxWorkServeCount4SceneIds(List<Long> sceneIds, Integer bookQrcodeType);
/**
* 获取二维码配置的企业微信
*/
List<BookGroupServeCountDTO> mapWxWorkServeCount4BookIds(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds, String strSceneIds, Integer bookQrcodeType);
}
...@@ -2,6 +2,7 @@ package com.pcloud.book.book.dao.impl; ...@@ -2,6 +2,7 @@ package com.pcloud.book.book.dao.impl;
import com.pcloud.book.book.dao.BookQrcodeWxworkDao; import com.pcloud.book.book.dao.BookQrcodeWxworkDao;
import com.pcloud.book.book.entity.BookQrcodeWxwork; import com.pcloud.book.book.entity.BookQrcodeWxwork;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -55,4 +56,23 @@ public class BookQrcodeWxworkDaoImpl extends BaseDaoImpl<BookQrcodeWxwork> imple ...@@ -55,4 +56,23 @@ public class BookQrcodeWxworkDaoImpl extends BaseDaoImpl<BookQrcodeWxwork> imple
map.put("wxworkQrcodeType", wxworkQrcodeType); map.put("wxworkQrcodeType", wxworkQrcodeType);
return getSessionTemplate().selectList(getStatement("getWxworkQrcodeIdsExceptBook"), map); return getSessionTemplate().selectList(getStatement("getWxworkQrcodeIdsExceptBook"), map);
} }
@Override
public List<BookGroupServeCountDTO> mapWxWorkServeCount4SceneIds(List<Long> sceneIds, Integer bookQrcodeType) {
Map<String, Object> map = new HashMap<>();
map.put("sceneIds", sceneIds);
map.put("bookQrcodeType", bookQrcodeType);
return getSessionTemplate().selectList(getStatement("mapWxWorkServeCount4SceneIds"), map);
}
@Override
public List<BookGroupServeCountDTO> mapWxWorkServeCount4BookIds(List<Long> adviserIds, List<Long> bookIds, List<Long> channelIds, String strSceneIds, Integer bookQrcodeType) {
Map<String, Object> map = new HashMap<>();
map.put("adviserIds", adviserIds);
map.put("bookIds", bookIds);
map.put("channelIds", channelIds);
map.put("strSceneIds", strSceneIds);
map.put("bookQrcodeType", bookQrcodeType);
return getSessionTemplate().selectList(getStatement("mapWxWorkServeCount4BookIds"), map);
}
} }
...@@ -841,7 +841,7 @@ ...@@ -841,7 +841,7 @@
</select> </select>
<select id="getBookInfoByBookIds" resultMap="bookAdviserMap"> <select id="getBookInfoByBookIds" resultMap="bookAdviserMap">
SELECT BOOK_ID,ADVISER_ID,CHANNEL_ID,TEMPLET_ID,CREATED_USER,SECOND_TEMPLET_ID, SELECT BOOK_ID,ADVISER_ID,CHANNEL_ID,TEMPLET_ID,CREATED_USER,SECOND_TEMPLET_ID,is_open_robot_process,
GRA_LABEL_ID,SUB_LABEL_ID,VER_LABEL_ID,AREA_LABEL_ID,dep_label_id,pro_label_id,pur_label_id,vol_label_id GRA_LABEL_ID,SUB_LABEL_ID,VER_LABEL_ID,AREA_LABEL_ID,dep_label_id,pro_label_id,pur_label_id,vol_label_id
FROM book_adviser FROM book_adviser
WHERE is_delete = 0 WHERE is_delete = 0
......
...@@ -107,4 +107,49 @@ ...@@ -107,4 +107,49 @@
AND book_id != #{bookId} AND book_id != #{bookId}
</select> </select>
</mapper> <select id="mapWxWorkServeCount4SceneIds" parameterType="map" resultType="com.pcloud.book.group.dto.BookGroupServeCountDTO">
\ No newline at end of file SELECT
book_qrcode_id bookQrcodeId, COUNT(id) serveCount, book_id bookId, adviser_id adviserId, channel_id channelId, COUNT(DISTINCT book_qrcode_id) qrcodeCount
FROM
book_qrcode_wxwork
WHERE
book_qrcode_type = #{bookQrcodeType}
AND book_qrcode_id IN
<foreach collection="sceneIds" item="item" separator="," open="(" close=")">
${item}
</foreach>
GROUP BY book_qrcode_id
</select>
<select id="mapWxWorkServeCount4BookIds" parameterType="map" resultType="com.pcloud.book.group.dto.BookGroupServeCountDTO">
SELECT
CONCAT(book_id,'_',channel_id,'_',adviser_id) bookChannelAdviserId, book_qrcode_id bookQrcodeId,COUNT(id) serveCount,
book_id bookId, adviser_id adviserId, channel_id channelId, COUNT(DISTINCT book_qrcode_id) qrcodeCount,
GROUP_CONCAT(book_qrcode_id) sceneIdStr
FROM
book_qrcode_wxwork
WHERE
book_qrcode_type = #{bookQrcodeType}
AND book_qrcode_id IN (${strSceneIds})
<if test="adviserIds!=null">
AND adviser_id IN
<foreach collection="adviserIds" item="item" separator="," open="(" close=")">
${item}
</foreach>
</if>
<if test="bookIds!=null">
AND book_id IN
<foreach collection="bookIds" item="item" separator="," open="(" close=")">
${item}
</foreach>
</if>
<if test="channelIds!=null">
AND channel_id IN
<foreach collection="channelIds" item="item" separator="," open="(" close=")">
${item}
</foreach>
</if>
GROUP BY book_id, channel_id, adviser_id
</select>
</mapper>
...@@ -159,7 +159,7 @@ ...@@ -159,7 +159,7 @@
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
from book_group from book_group
where book_id in where is_delete = 0 AND book_id in
<foreach collection="bookIds" open="(" close=")" item="item" separator=","> <foreach collection="bookIds" open="(" close=")" item="item" separator=",">
${item} ${item}
</foreach> </foreach>
...@@ -177,7 +177,7 @@ ...@@ -177,7 +177,7 @@
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
from book_group from book_group
where book_id in where is_delete = 0 AND book_id in
<foreach collection="bookIds" open="(" close=")" item="item" separator=","> <foreach collection="bookIds" open="(" close=")" item="item" separator=",">
${item} ${item}
</foreach> </foreach>
......
...@@ -211,12 +211,15 @@ ...@@ -211,12 +211,15 @@
</select> </select>
<!--客服机器人、1v1、小睿的资源数--> <!--客服机器人、1v1、小睿的资源数-->
<!--2021-02-19 企业微信群也算一个资源数-->
<select id="mapBookGroupServeCount" parameterType="map" resultType="com.pcloud.book.group.dto.BookGroupServeCountDTO"> <select id="mapBookGroupServeCount" parameterType="map" resultType="com.pcloud.book.group.dto.BookGroupServeCountDTO">
SELECT SELECT
CONCAT(bg.book_id,'_',bg.channel_id,'_',bg.create_user) bookChannelAdviserId, COUNT(bgs.id) serveCount, CONCAT(bg.book_id,'_',bg.channel_id,'_',bg.create_user) bookChannelAdviserId,
COUNT(DISTINCT bgs.id) + (SELECT COUNT(1) FROM book_qrcode_wxwork bqw WHERE bqw.book_qrcode_type = 2 AND bqw.book_qrcode_id = bg.id) serveCount,
bg.book_id bookId, bg.create_user adviserId, bg.channel_id channelId,COUNT(DISTINCT bg.group_qrcode_url) qrcodeCount, bg.book_id bookId, bg.create_user adviserId, bg.channel_id channelId,COUNT(DISTINCT bg.group_qrcode_url) qrcodeCount,
bg.join_group_type joinGroupType bg.join_group_type joinGroupType
FROM `book_group` bg LEFT JOIN book_group_serve bgs ON bg.id = bgs.book_group_id FROM `book_group` bg
LEFT JOIN book_group_serve bgs ON bg.id = bgs.book_group_id
WHERE WHERE
bg.is_delete=0 bg.is_delete=0
AND bg.book_id IN AND bg.book_id IN
......
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