Commit 2c4c9a24 by 高鹏

Merge branch 'feat-1001647' into 'master'

社群书分析

See merge request rays/pcloud-book!210
parents b833badf fc235a94
...@@ -7,3 +7,4 @@ ...@@ -7,3 +7,4 @@
*logs/ *logs/
*.idea/ *.idea/
*bin/ *bin/
*download/
\ No newline at end of file
package com.pcloud.book.group.dto;
import com.pcloud.common.dto.BaseDto;
/**
* @描述:社群码下关键词关联的资源
* @作者:zhuyajie
* @创建时间:11:01 2019/9/30
* @版本:1.0
*/
public class BookGroupKeywordResourceDTO extends BaseDto {
/**
* 类型(PRODUCT、APP)
*/
private String serveType;
/**
* 商品或应用id
*/
private Long serveId;
public String getServeType() {
return serveType;
}
public void setServeType(String serveType) {
this.serveType = serveType;
}
public Long getServeId() {
return serveId;
}
public void setServeId(Long serveId) {
this.serveId = serveId;
}
@Override
public String toString() {
return "BookGroupKeywordResourceDTO{" +
"serveType='" + serveType + '\'' +
", serveId=" + serveId +
'}';
}
}
package com.pcloud.book.group.service; package com.pcloud.book.group.service;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.dto.GroupCipherDTO; import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupUseDTO; import com.pcloud.book.group.dto.GroupUseDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO; import com.pcloud.book.group.dto.PersonalQrcodeDTO;
...@@ -113,4 +114,13 @@ public interface BookGroupService { ...@@ -113,4 +114,13 @@ public interface BookGroupService {
@GetMapping("dealBookGroupServerChannel") @GetMapping("dealBookGroupServerChannel")
void dealBookGroupServerChannel(); void dealBookGroupServerChannel();
@ApiOperation("获取社群书关键词关联的资源(关键词及1v1配置资源)")
@GetMapping("getKeyWordResourceByBookGroup")
ResponseEntity<ResponseDto<List<BookGroupKeywordResourceDTO>>> getKeyWordResourceByBookGroup(
@RequestParam("bookGroupId") Long bookGroupId);
@ApiOperation(value = "查社群码下二维码id", httpMethod = "GET")
@GetMapping("getQrcodeIdsByBookGroupId")
ResponseEntity<ResponseDto<List<Long>>> getQrcodeIdsByBookGroupId(@RequestParam("bookGroupId") Long bookGroupId);
} }
...@@ -4,12 +4,14 @@ ...@@ -4,12 +4,14 @@
package com.pcloud.book.consumer.analysisengine; package com.pcloud.book.consumer.analysisengine;
import com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto; import com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto;
import com.pcloud.analysisengine.browse.dto.GroupBrowseStatisticVO;
import com.pcloud.analysisengine.browse.dto.SBookAnalyzeDto; import com.pcloud.analysisengine.browse.dto.SBookAnalyzeDto;
import com.pcloud.analysisengine.browse.service.BrowseRecordService; import com.pcloud.analysisengine.browse.service.BrowseRecordService;
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;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -126,4 +128,15 @@ public class BrowseRecordConsr { ...@@ -126,4 +128,15 @@ public class BrowseRecordConsr {
return sBookAnalyzeDtoMap; return sBookAnalyzeDtoMap;
} }
@ParamLog("获取社群码资源浏览量")
public Map<Long, GroupBrowseStatisticVO> mapGroupBrowseStatistic(List<Long> bookGroupIds, String monthDate) {
Map<Long, GroupBrowseStatisticVO> map = null;
try {
map = ResponseHandleUtil.parseMapResponse(browseRecordService.mapGroupBrowseStatistic(bookGroupIds, monthDate), Long.class, GroupBrowseStatisticVO.class);
} catch (Exception e) {
LOGGER.error("获取社群码资源浏览量失败" + e.getMessage(), e);
}
return map;
}
} }
...@@ -5,8 +5,17 @@ import com.pcloud.common.dto.ResponseDto; ...@@ -5,8 +5,17 @@ import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.facade.tradecenter.dto.*; import com.pcloud.facade.tradecenter.dto.ClassifyPayDetailDto;
import com.pcloud.facade.tradecenter.dto.GroupIncomeSearchDto;
import com.pcloud.facade.tradecenter.dto.GroupMoneyDto;
import com.pcloud.facade.tradecenter.dto.OrderSearchDto;
import com.pcloud.facade.tradecenter.dto.ProductSaleDetailDto;
import com.pcloud.facade.tradecenter.dto.QrGroupBuyDetailDto;
import com.pcloud.facade.tradecenter.dto.SaleDetailByQrcodeDto;
import com.pcloud.facade.tradecenter.dto.SpeWechatGroupDto;
import com.pcloud.facade.tradecenter.dto.WechatGroupDto;
import com.pcloud.facade.tradecenter.service.OrderFormService; import com.pcloud.facade.tradecenter.service.OrderFormService;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -15,7 +24,11 @@ import org.springframework.http.ResponseEntity; ...@@ -15,7 +24,11 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @Author:lili * @Author:lili
...@@ -179,4 +192,19 @@ public class TradeConsr { ...@@ -179,4 +192,19 @@ public class TradeConsr {
return totalSale; return totalSale;
} }
@ParamLog("查社群码资源购买情况")
public Map<Long, ProductSaleDetailDto> getSaleInfo4Group(List<Long> bookGroupIds, String month) {
Map<Long, ProductSaleDetailDto> map = new HashMap<>();
try {
OrderSearchDto orderSearchDto = new OrderSearchDto();
orderSearchDto.setBookGroupIds(bookGroupIds);
orderSearchDto.setDate(month);
map = ResponseHandleUtil.parseMapResponse(orderFormService.getSaleInfo4Group(orderSearchDto), Long.class, ProductSaleDetailDto.class);
} catch (Exception e) {
LOGGER.error("查社群码资源购买情况失败" + e.getMessage(), e);
}
return map;
}
} }
...@@ -8,6 +8,7 @@ import com.pcloud.common.utils.ResponseHandleUtil; ...@@ -8,6 +8,7 @@ import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO; import com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO; import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
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.service.GroupMemberService; import com.pcloud.wechatgroup.group.service.GroupMemberService;
...@@ -385,6 +386,36 @@ public class WechatGroupConsr { ...@@ -385,6 +386,36 @@ public class WechatGroupConsr {
return map; return map;
} }
@ParamLog("获取社群码扫码次数/人数")
public Map<Long, GroupUserCountDTO> getScanCountByGroup(List<Long> bookGroupIds, String monthDate) {
Map<Long, GroupUserCountDTO> map = new HashMap<>();
if (ListUtils.isEmpty(bookGroupIds)){
return map;
}
try {
map = ResponseHandleUtil.parseMapResponse(groupMemberService.getScanCountByGroup(bookGroupIds, monthDate), Long.class, GroupUserCountDTO.class);
} catch (Exception e) {
log.error("获取社群码扫码次数/人数.[getScanCountByGroup]失败" + e.getMessage(), e);
}
return map;
}
@ParamLog("获取社群码累计进群人数")
public Map<Long, GroupUserCountDTO> mapBookGroupJoinUserCount(List<Long> bookGroupIds, String monthDate) {
Map<Long, GroupUserCountDTO> map = new HashMap<>();
if (ListUtils.isEmpty(bookGroupIds)){
return map;
}
try {
map = ResponseHandleUtil.parseMapResponse(groupMemberService.mapBookGroupJoinUserCount(bookGroupIds, monthDate), Long.class, GroupUserCountDTO.class);
} catch (Exception e) {
log.error("获取社群码累计进群人数.[mapBookGroupJoinUserCount]失败" + e.getMessage(), e);
}
return map;
}
@ParamLog("查询链接发送次数") @ParamLog("查询链接发送次数")
public Map<String, Integer> getLinkSendCount(List<LinkGroupParamDTO> paramDTOList) { public Map<String, Integer> getLinkSendCount(List<LinkGroupParamDTO> paramDTOList) {
Map<String, Integer> map = new HashMap<>(); Map<String, Integer> map = new HashMap<>();
......
...@@ -3,6 +3,7 @@ package com.pcloud.book.group.biz; ...@@ -3,6 +3,7 @@ package com.pcloud.book.group.biz;
import com.pcloud.book.book.dto.BookDto; import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.group.dto.AppStatisticsDTO; import com.pcloud.book.group.dto.AppStatisticsDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.dto.BookGroupStatisticsDTO; import com.pcloud.book.group.dto.BookGroupStatisticsDTO;
import com.pcloud.book.group.dto.ClassifyKeywordDTO; import com.pcloud.book.group.dto.ClassifyKeywordDTO;
import com.pcloud.book.group.dto.GroupCipherDTO; import com.pcloud.book.group.dto.GroupCipherDTO;
...@@ -16,6 +17,8 @@ import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO; ...@@ -16,6 +17,8 @@ import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto; import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.vo.BookGroupAnalysisParam;
import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.book.group.vo.FriendsVO; import com.pcloud.book.group.vo.FriendsVO;
import com.pcloud.book.group.vo.GroupIncomeStaticParamVO; import com.pcloud.book.group.vo.GroupIncomeStaticParamVO;
import com.pcloud.book.group.vo.GroupScanTrendParamVO; import com.pcloud.book.group.vo.GroupScanTrendParamVO;
...@@ -294,7 +297,6 @@ public interface BookGroupBiz { ...@@ -294,7 +297,6 @@ public interface BookGroupBiz {
* 根据社群码id获取个人二维码信息 * 根据社群码id获取个人二维码信息
*/ */
OwnAltQrcodeInfoDTO getOwnAltQrcodeInfoDTOByBookGroupId(Long wechatUserId, Long bookGroupId); OwnAltQrcodeInfoDTO getOwnAltQrcodeInfoDTOByBookGroupId(Long wechatUserId, Long bookGroupId);
/** /**
* 根据分类id获取个人二维码信息 * 根据分类id获取个人二维码信息
*/ */
...@@ -402,7 +404,6 @@ public interface BookGroupBiz { ...@@ -402,7 +404,6 @@ public interface BookGroupBiz {
* @return * @return
*/ */
Map<String, Integer> getBookGroupFriendsCountByDay(Long bookGroupId, String startDate, String endDate); Map<String, Integer> getBookGroupFriendsCountByDay(Long bookGroupId, String startDate, String endDate);
/** /**
* 好友数据统计列表 * 好友数据统计列表
* @param bookGroupId * @param bookGroupId
...@@ -459,4 +460,26 @@ public interface BookGroupBiz { ...@@ -459,4 +460,26 @@ public interface BookGroupBiz {
* 将之前的配置资源取的社群码运营更新为应用本身的运营 * 将之前的配置资源取的社群码运营更新为应用本身的运营
*/ */
void dealBookGroupServerChannel(); void dealBookGroupServerChannel();
/**
* 社群书分析
* @param bookGroupAnalysisParam
* @return
*/
PageBeanNew<BookGroupAnalysisVO> listPageBookGroupAnalysis(BookGroupAnalysisParam bookGroupAnalysisParam);
/**
* 社群书分析--导出
* @param bookGroupAnalysisParam
*/
void exportBookGroupAnalysis(BookGroupAnalysisParam bookGroupAnalysisParam, Long partyId);
/**
* 社群书关键词关联的资源(关键词及1v1配置资源)
*/
List<BookGroupKeywordResourceDTO> getKeyWordResourceByBookGroup(Long bookGroupId);
/**
* 社群书下二维码
*/
List<Long> getQrcodeIdsByBookGroupId(Long bookGroupId);
} }
...@@ -47,4 +47,5 @@ public interface AppClickRecordDao extends BaseDao<AppClickRecord> { ...@@ -47,4 +47,5 @@ public interface AppClickRecordDao extends BaseDao<AppClickRecord> {
* 获取资源点击数 * 获取资源点击数
*/ */
List<ResourcesStatisticVO> getClickStatistics(Long bookGroupId,Long classifyId,Long qrcodeId,String type); List<ResourcesStatisticVO> getClickStatistics(Long bookGroupId,Long classifyId,Long qrcodeId,String type);
} }
...@@ -30,4 +30,10 @@ public interface BookGroupCipherUserDao extends BaseDao<BookGroupCipherUser> { ...@@ -30,4 +30,10 @@ public interface BookGroupCipherUserDao extends BaseDao<BookGroupCipherUser> {
* @return * @return
*/ */
List<DayCountDTO> getBookGroupFriendsCountByDay(Long bookGroupId, String startTime, String endTime); List<DayCountDTO> getBookGroupFriendsCountByDay(Long bookGroupId, String startTime, String endTime);
/**
* 根据时间查社群码好友数量
* @param bookGroupId
* @return
*/
public Integer getFriendsCountByBookGroupByTime(Long bookGroupId, String startTime, String endTime);
} }
package com.pcloud.book.group.dao; package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.*; import com.pcloud.book.group.dto.BookClassifyDTO;
import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.group.dto.ClassifyDTO;
import com.pcloud.book.group.dto.ClassifyKeywordDTO;
import com.pcloud.book.group.dto.ClickClassifyDTO;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO;
import com.pcloud.book.group.dto.GroupQrcodeBaseDTO;
import com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO;
import com.pcloud.book.group.entity.BookGroupClassify; import com.pcloud.book.group.entity.BookGroupClassify;
import com.pcloud.book.group.vo.BookGroupQrcodeStatisticVO; import com.pcloud.book.group.vo.BookGroupQrcodeStatisticVO;
import com.pcloud.book.group.vo.ClassifyNameVO; import com.pcloud.book.group.vo.ClassifyNameVO;
...@@ -263,5 +271,6 @@ public interface BookGroupClassifyDao extends BaseDao<BookGroupClassify> { ...@@ -263,5 +271,6 @@ public interface BookGroupClassifyDao extends BaseDao<BookGroupClassify> {
List<ListClassifyVO> getClassifyIngoreDelete(Long bookGroupId); List<ListClassifyVO> getClassifyIngoreDelete(Long bookGroupId);
List<BookGroupClassify> getListByBookGroupId(Long bookGroupId); public List<BookGroupClassify> getListByBookGroupId(Long bookGroupId);
} }
...@@ -7,6 +7,7 @@ import com.pcloud.book.group.dto.BookGroupDTO; ...@@ -7,6 +7,7 @@ import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO; import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO; import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
/** /**
...@@ -196,4 +197,11 @@ public interface BookGroupDao extends BaseDao<BookGroup> { ...@@ -196,4 +197,11 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
* 更新入群方式 * 更新入群方式
*/ */
void updateJoinGroupType(Long id, Integer joinGroupType); void updateJoinGroupType(Long id, Integer joinGroupType);
/**
* 社群书分析
* @param paramMap
* @return
*/
List<BookGroupAnalysisVO> listPageBookGroupAnalysis(Map<String, Object> paramMap);
} }
...@@ -266,4 +266,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> { ...@@ -266,4 +266,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
List<GroupQrcode> getListByBookGroupIds(List<Long> bookGroupIds); List<GroupQrcode> getListByBookGroupIds(List<Long> bookGroupIds);
Map<Long, GroupQrcodeInfo4Advertising> getWechatGroupInfoMap(List<Long> qrcodeIds); Map<Long, GroupQrcodeInfo4Advertising> getWechatGroupInfoMap(List<Long> qrcodeIds);
/**
* 根据社群书id查群ids
* @param bookGroupId
* @return
*/
List<Long> getIdsByBookGroupId(Long bookGroupId);
} }
...@@ -9,6 +9,7 @@ import com.pcloud.book.group.vo.GroupScanTrendVO; ...@@ -9,6 +9,7 @@ import com.pcloud.book.group.vo.GroupScanTrendVO;
import com.pcloud.book.group.vo.ResourceClickVO; import com.pcloud.book.group.vo.ResourceClickVO;
import com.pcloud.book.group.vo.ResourcesStatisticVO; import com.pcloud.book.group.vo.ResourcesStatisticVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap; import java.util.HashMap;
...@@ -79,4 +80,5 @@ public class AppClickRecordDaoImpl extends BaseDaoImpl<AppClickRecord> implement ...@@ -79,4 +80,5 @@ public class AppClickRecordDaoImpl extends BaseDaoImpl<AppClickRecord> implement
map.put("type", type); map.put("type", type);
return this.getSqlSession().selectList(this.getStatement("getClickStatistics"), map); return this.getSqlSession().selectList(this.getStatement("getClickStatistics"), map);
} }
} }
...@@ -36,4 +36,13 @@ public class BookGroupCipherUserDaoImpl extends BaseDaoImpl<BookGroupCipherUser> ...@@ -36,4 +36,13 @@ public class BookGroupCipherUserDaoImpl extends BaseDaoImpl<BookGroupCipherUser>
map.put("endTime", endTime); map.put("endTime", endTime);
return getSessionTemplate().selectList(getStatement("getBookGroupFriendsCountByDay"), map); return getSessionTemplate().selectList(getStatement("getBookGroupFriendsCountByDay"), map);
} }
@Override
public Integer getFriendsCountByBookGroupByTime(Long bookGroupId, String startTime, String endTime) {
Map<String, Object> map = new HashMap<>();
map.put("bookGroupId", bookGroupId);
map.put("startTime", startTime);
map.put("endTime", endTime);
return getSessionTemplate().selectOne(getStatement("getFriendsCountByBookGroupByTime"), map);
}
} }
package com.pcloud.book.group.dao.impl; package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.BookGroupClassifyDao; import com.pcloud.book.group.dao.BookGroupClassifyDao;
import com.pcloud.book.group.dto.*; import com.pcloud.book.group.dto.BookClassifyDTO;
import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.group.dto.ClassifyDTO;
import com.pcloud.book.group.dto.ClassifyKeywordDTO;
import com.pcloud.book.group.dto.ClickClassifyDTO;
import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO;
import com.pcloud.book.group.dto.GroupQrcodeBaseDTO;
import com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO;
import com.pcloud.book.group.entity.BookGroupClassify; import com.pcloud.book.group.entity.BookGroupClassify;
import com.pcloud.book.group.vo.BookGroupQrcodeStatisticVO; import com.pcloud.book.group.vo.BookGroupQrcodeStatisticVO;
import com.pcloud.book.group.vo.ClassifyNameVO; import com.pcloud.book.group.vo.ClassifyNameVO;
...@@ -253,4 +261,5 @@ public class BookGroupClassifyDaoImpl extends BaseDaoImpl<BookGroupClassify> imp ...@@ -253,4 +261,5 @@ public class BookGroupClassifyDaoImpl extends BaseDaoImpl<BookGroupClassify> imp
public List<BookGroupClassify> getListByBookGroupId(Long bookGroupId) { public List<BookGroupClassify> getListByBookGroupId(Long bookGroupId) {
return this.getSqlSession().selectList(this.getStatement("getListByBookGroupId"), bookGroupId); return this.getSqlSession().selectList(this.getStatement("getListByBookGroupId"), bookGroupId);
} }
} }
...@@ -5,6 +5,7 @@ import com.pcloud.book.group.dto.BookGroupDTO; ...@@ -5,6 +5,7 @@ import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO; import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO; import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -207,4 +208,9 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou ...@@ -207,4 +208,9 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
paramMap.put("joinGroupType", joinGroupType); paramMap.put("joinGroupType", joinGroupType);
super.getSqlSession().update(getStatement("updateJoinGroupType"), paramMap); super.getSqlSession().update(getStatement("updateJoinGroupType"), paramMap);
} }
@Override
public List<BookGroupAnalysisVO> listPageBookGroupAnalysis(Map<String, Object> paramMap) {
return getSessionTemplate().selectList(getStatement("listPageBookGroupAnalysis"), paramMap);
}
} }
...@@ -273,4 +273,8 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou ...@@ -273,4 +273,8 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
return getSessionTemplate().selectList(getStatement("listPageGroup4Brand"), map); return getSessionTemplate().selectList(getStatement("listPageGroup4Brand"), map);
} }
@Override
public List<Long> getIdsByBookGroupId(Long bookGroupId) {
return this.getSqlSession().selectList(this.getStatement("getIdsByBookGroupId"), bookGroupId);
}
} }
...@@ -13,6 +13,17 @@ import com.pcloud.book.group.vo.UpdateRankTypeVO; ...@@ -13,6 +13,17 @@ import com.pcloud.book.group.vo.UpdateRankTypeVO;
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.page.PageBean; import com.pcloud.common.page.PageBean;
import com.pcloud.book.group.vo.BookGroupAnalysisParam;
import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.book.group.vo.GroupIncomeStaticParamVO;
import com.pcloud.book.group.vo.GroupScanTrendParamVO;
import com.pcloud.book.group.vo.GroupScanTrendVO;
import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
import com.pcloud.book.group.vo.ResourcesStatisticVO;
import com.pcloud.book.group.vo.UpdateRankTypeVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
...@@ -33,6 +44,8 @@ import io.swagger.annotations.Api; ...@@ -33,6 +44,8 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/** /**
* Description 社群书群二维码接口 * Description 社群书群二维码接口
...@@ -296,7 +309,7 @@ public interface BookGroupFacade { ...@@ -296,7 +309,7 @@ public interface BookGroupFacade {
@RequestParam("bookGroupId") Long bookGroupId @RequestParam("bookGroupId") Long bookGroupId
) throws BizException, PermissionException, JsonParseException; ) throws BizException, PermissionException, JsonParseException;
@ApiOperation("根据分类id获取个人二维码") @ApiOperation("根据社群书id获取个人二维码")
@GetMapping("getOwnAltQrcodeInfoDTOByBookGroupId") @GetMapping("getOwnAltQrcodeInfoDTOByBookGroupId")
ResponseDto<?> getOwnAltQrcodeInfoDTOByBookGroupId( ResponseDto<?> getOwnAltQrcodeInfoDTOByBookGroupId(
@CookieValue("userInfo") String userInfo, @CookieValue("userInfo") String userInfo,
...@@ -431,4 +444,15 @@ public interface BookGroupFacade { ...@@ -431,4 +444,15 @@ public interface BookGroupFacade {
ResponseDto<?> getBookGroupCipher( ResponseDto<?> getBookGroupCipher(
@RequestHeader("token") String token @RequestHeader("token") String token
) throws BizException, PermissionException, JsonParseException; ) throws BizException, PermissionException, JsonParseException;
@ApiOperation(value = "平台端-社群书分析", httpMethod = "POST")
@PostMapping("listPageBookGroupAnalysis")
public ResponseDto<PageBeanNew<BookGroupAnalysisVO>> listPageBookGroupAnalysis(
@RequestHeader("token") String token, @RequestBody @ApiParam BookGroupAnalysisParam bookGroupAnalysisParam) throws PermissionException;
@ApiOperation(value = "平台端-社群书分析-异步导出", httpMethod = "POST")
@PostMapping("exportBookGroupAnalysis")
public ResponseDto<?>exportBookGroupAnalysis(
@RequestHeader("token") String token, @RequestBody @ApiParam BookGroupAnalysisParam bookGroupAnalysisParam) throws PermissionException;
} }
...@@ -18,6 +18,17 @@ import com.pcloud.book.group.vo.ResourcesStatisticVO; ...@@ -18,6 +18,17 @@ import com.pcloud.book.group.vo.ResourcesStatisticVO;
import com.pcloud.book.group.vo.TotalRescourceDataVO; import com.pcloud.book.group.vo.TotalRescourceDataVO;
import com.pcloud.book.group.vo.UpdateRankTypeVO; import com.pcloud.book.group.vo.UpdateRankTypeVO;
import com.pcloud.book.group.vo.WxGroupStatisticVO; import com.pcloud.book.group.vo.WxGroupStatisticVO;
import com.pcloud.book.group.vo.BookGroupAnalysisParam;
import com.pcloud.book.group.vo.BookGroupAnalysisVO;
import com.pcloud.book.group.vo.GroupIncomeStaticParamVO;
import com.pcloud.book.group.vo.GroupScanTrendParamVO;
import com.pcloud.book.group.vo.GroupScanTrendVO;
import com.pcloud.book.group.vo.GroupStatisticVO;
import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
import com.pcloud.book.group.vo.ResourcesStatisticVO;
import com.pcloud.book.group.vo.TotalRescourceDataVO;
import com.pcloud.book.group.vo.UpdateRankTypeVO;
import com.pcloud.book.group.vo.WxGroupStatisticVO;
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.page.PageBean; import com.pcloud.common.page.PageBean;
...@@ -28,6 +39,8 @@ import com.pcloud.common.utils.SessionUtil; ...@@ -28,6 +39,8 @@ import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie; import com.pcloud.common.utils.cookie.Cookie;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.wechatgroup.message.enums.IsSystem;
import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonParseException;
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.CookieValue;
...@@ -45,6 +58,7 @@ import java.util.List; ...@@ -45,6 +58,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
/** /**
* Description 社群书群二维码接口实现类 * Description 社群书群二维码接口实现类
...@@ -544,7 +558,6 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -544,7 +558,6 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
Long adviserId = (Long) map.get(SessionUtil.PARTY_ID); Long adviserId = (Long) map.get(SessionUtil.PARTY_ID);
Map<String, String> resultMap = bookGroupBiz.exportRescourceIncomeData(bookGroupId, adviserId); Map<String, String> resultMap = bookGroupBiz.exportRescourceIncomeData(bookGroupId, adviserId);
return new ResponseDto<>(resultMap); return new ResponseDto<>(resultMap);
} }
@Override @Override
...@@ -615,4 +628,32 @@ public class BookGroupFacadeImpl implements BookGroupFacade { ...@@ -615,4 +628,32 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
return new ResponseDto<>(bookGroupBiz.getBookGroupCipher()); return new ResponseDto<>(bookGroupBiz.getBookGroupCipher());
} }
@Override
@PostMapping("listPageBookGroupAnalysis")
public ResponseDto<PageBeanNew<BookGroupAnalysisVO>> listPageBookGroupAnalysis(
@RequestHeader("token") String token, @RequestBody @ApiParam BookGroupAnalysisParam bookGroupAnalysisParam) throws PermissionException {
SessionUtil.getToken4Redis(token);
if (null == bookGroupAnalysisParam) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数为空");
}
if (null == bookGroupAnalysisParam.getCurrentPage() || null == bookGroupAnalysisParam.getNumPerPage()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少分页参数");
}
PageBeanNew<BookGroupAnalysisVO> pageBeanNew = bookGroupBiz.listPageBookGroupAnalysis(bookGroupAnalysisParam);
return new ResponseDto<>(pageBeanNew);
}
@Override
@PostMapping("exportBookGroupAnalysis")
public ResponseDto<?> exportBookGroupAnalysis(
@RequestHeader("token") String token, @RequestBody @ApiParam BookGroupAnalysisParam bookGroupAnalysisParam) throws PermissionException {
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);
}
bookGroupBiz.exportBookGroupAnalysis(bookGroupAnalysisParam, partyId);
return new ResponseDto<>();
}
} }
...@@ -2,10 +2,10 @@ package com.pcloud.book.group.service.impl; ...@@ -2,10 +2,10 @@ package com.pcloud.book.group.service.impl;
import com.pcloud.book.group.biz.BookGroupBiz; import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.dto.GroupCipherDTO; import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupUseDTO; import com.pcloud.book.group.dto.GroupUseDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO; import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QueryByBookAdviserDTO; import com.pcloud.book.group.dto.QueryByBookAdviserDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto; import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.service.BookGroupService; import com.pcloud.book.group.service.BookGroupService;
...@@ -191,4 +191,18 @@ public class BookGroupServiceImpl implements BookGroupService { ...@@ -191,4 +191,18 @@ public class BookGroupServiceImpl implements BookGroupService {
} }
@Override
@GetMapping("getKeyWordResourceByBookGroup")
public ResponseEntity<ResponseDto<List<BookGroupKeywordResourceDTO>>> getKeyWordResourceByBookGroup(
@RequestParam("bookGroupId") Long bookGroupId) {
List<BookGroupKeywordResourceDTO> list = bookGroupBiz.getKeyWordResourceByBookGroup(bookGroupId);
return ResponseHandleUtil.toResponse(list);
}
@Override
@GetMapping("getQrcodeIdsByBookGroupId")
public ResponseEntity<ResponseDto<List<Long>>> getQrcodeIdsByBookGroupId(@RequestParam("bookGroupId") Long bookGroupId) {
List<Long> qrcodeIds = bookGroupBiz.getQrcodeIdsByBookGroupId(bookGroupId);
return ResponseHandleUtil.toResponse(qrcodeIds);
}
} }
package com.pcloud.book.group.vo;
import java.util.List;
/**
* @描述:查询参数
* @作者:zhuyajie
* @创建时间:9:59 2019/9/29
* @版本:1.0
*/
public class BookGroupAnalysisParam {
/**
* 当前页
*/
private Integer currentPage;
/**
*每页数量
*/
private Integer numPerPage;
/**
*书id
*/
private List<Long> bookIds;
/**
*出版社id
*/
private List<Long> agentIds;
/**
*编辑id
*/
private List<Long> adviserIds;
/**
*统计月份
*/
private String monthDate;
/**
*是否基金支持
*/
private Boolean isFundSupport;
/**
*是否版权保护
*/
private Boolean isCopyright;
public Integer getCurrentPage() {
return currentPage;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public Integer getNumPerPage() {
return numPerPage;
}
public void setNumPerPage(Integer numPerPage) {
this.numPerPage = numPerPage;
}
public List<Long> getBookIds() {
return bookIds;
}
public void setBookIds(List<Long> bookIds) {
this.bookIds = bookIds;
}
public List<Long> getAgentIds() {
return agentIds;
}
public void setAgentIds(List<Long> agentIds) {
this.agentIds = agentIds;
}
public List<Long> getAdviserIds() {
return adviserIds;
}
public void setAdviserIds(List<Long> adviserIds) {
this.adviserIds = adviserIds;
}
public String getMonthDate() {
return monthDate;
}
public void setMonthDate(String monthDate) {
this.monthDate = monthDate;
}
public Boolean getIsFundSupport() {
return isFundSupport;
}
public void setIsFundSupport(Boolean isFundSupport) {
this.isFundSupport = isFundSupport;
}
public Boolean getIsCopyright() {
return isCopyright;
}
public void setIsCopyright(Boolean isCopyright) {
this.isCopyright = isCopyright;
}
@Override
public String toString() {
return "BookGroupAnalysisParam{" +
"currentPage=" + currentPage +
", numPerPage=" + numPerPage +
", bookIds=" + bookIds +
", agentIds=" + agentIds +
", adviserIds=" + adviserIds +
", monthDate='" + monthDate + '\'' +
", isFundSupport=" + isFundSupport +
", isCopyright=" + isCopyright +
'}';
}
}
package com.pcloud.book.group.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import java.math.BigDecimal;
import java.util.Date;
/**
* @描述:社群书分析-平台端
* @作者:zhuyajie
* @创建时间:9:07 2019/9/29
* @版本:1.0
*/
public class BookGroupAnalysisVO extends BaseDto {
/**
* 社群码ID
*/
private Long bookGroupId;
/**
* 社群码
*/
private String groupQrcodeUrl;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
/**
* 书籍标识
*/
private Long bookId;
/**
* 书籍ISBN码
*/
private String isbn;
/**
* 书籍名称
*/
private String bookName;
/**
* 一级分类id
*/
private Long templetId;
/**
* 一级分类名称
*/
private String templetName;
/**
* 二级分类id
*/
private Long secondTempletId;
/**
* 二级分类名称
*/
private String secondTempletName;
/**
* 编辑标识
*/
private Long adviserId;
/**
* 编辑名称
*/
private String adviserName;
/**
* 出版ID
*/
private Long agentId;
/**
* 出版社名称
*/
private String agentName;
/**
* 渠道标识
*/
private Long channelId;
/**
* 渠道名称
*/
private String channelName;
/**
* 书刊是否有基金支持
*/
private Boolean isFundSupport;
/**
* 是否版权保护
*/
private Boolean isCopyright;
//社群码 微信群数据
/**
* 扫码次数
*/
private Integer scanCount;
/**
* 扫码人数
*/
private Integer scanUserCount;
/**
* 进群方式:1群二维码,2客服机器人
*/
private Integer joinGroupType;
/**
* 群分类数量
*/
private Integer classifyCount;
/**
* 群总人数
*/
private Integer userNumber;
/**
* 累计进群人数
*/
private Integer joinUserCount;
/**
* 群数量
*/
private Integer groupCount;
/**
* 好友数量
*/
private Integer friendsCount;
//配置资源数据
/**
* 配置资源个数
*/
private Integer resourceCount;
/**
* 浏览量
*/
private Integer browseCount;
/**
* 读者量
*/
private Integer browserCount;
//资源销售数据
/**
* 销售额
*/
private BigDecimal saleAmount;
/**
*支付率
*/
private BigDecimal payRate;
/**
*客单价
*/
private BigDecimal avgSaleAmount;
public Long getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public String getGroupQrcodeUrl() {
return groupQrcodeUrl;
}
public void setGroupQrcodeUrl(String groupQrcodeUrl) {
this.groupQrcodeUrl = groupQrcodeUrl;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public Long getTempletId() {
return templetId;
}
public void setTempletId(Long templetId) {
this.templetId = templetId;
}
public String getTempletName() {
return templetName;
}
public void setTempletName(String templetName) {
this.templetName = templetName;
}
public Long getSecondTempletId() {
return secondTempletId;
}
public void setSecondTempletId(Long secondTempletId) {
this.secondTempletId = secondTempletId;
}
public String getSecondTempletName() {
return secondTempletName;
}
public void setSecondTempletName(String secondTempletName) {
this.secondTempletName = secondTempletName;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public String getAdviserName() {
return adviserName;
}
public void setAdviserName(String adviserName) {
this.adviserName = adviserName;
}
public Long getAgentId() {
return agentId;
}
public void setAgentId(Long agentId) {
this.agentId = agentId;
}
public String getAgentName() {
return agentName;
}
public void setAgentName(String agentName) {
this.agentName = agentName;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public String getChannelName() {
return channelName;
}
public void setChannelName(String channelName) {
this.channelName = channelName;
}
public Boolean getIsFundSupport() {
return isFundSupport;
}
public void setIsFundSupport(Boolean isFundSupport) {
this.isFundSupport = isFundSupport;
}
public Integer getScanCount() {
return scanCount;
}
public void setScanCount(Integer scanCount) {
this.scanCount = scanCount;
}
public Integer getScanUserCount() {
return scanUserCount;
}
public void setScanUserCount(Integer scanUserCount) {
this.scanUserCount = scanUserCount;
}
public Integer getJoinGroupType() {
return joinGroupType;
}
public void setJoinGroupType(Integer joinGroupType) {
this.joinGroupType = joinGroupType;
}
public Integer getClassifyCount() {
return classifyCount;
}
public void setClassifyCount(Integer classifyCount) {
this.classifyCount = classifyCount;
}
public Integer getUserNumber() {
return userNumber;
}
public void setUserNumber(Integer userNumber) {
this.userNumber = userNumber;
}
public Integer getGroupCount() {
return groupCount;
}
public void setGroupCount(Integer groupCount) {
this.groupCount = groupCount;
}
public Integer getFriendsCount() {
return friendsCount;
}
public void setFriendsCount(Integer friendsCount) {
this.friendsCount = friendsCount;
}
public Integer getResourceCount() {
return resourceCount;
}
public void setResourceCount(Integer resourceCount) {
this.resourceCount = resourceCount;
}
public Integer getBrowseCount() {
return browseCount;
}
public void setBrowseCount(Integer browseCount) {
this.browseCount = browseCount;
}
public Integer getBrowserCount() {
return browserCount;
}
public void setBrowserCount(Integer browserCount) {
this.browserCount = browserCount;
}
public BigDecimal getSaleAmount() {
return saleAmount;
}
public void setSaleAmount(BigDecimal saleAmount) {
this.saleAmount = saleAmount;
}
public BigDecimal getPayRate() {
return payRate;
}
public void setPayRate(BigDecimal payRate) {
this.payRate = payRate;
}
public BigDecimal getAvgSaleAmount() {
return avgSaleAmount;
}
public void setAvgSaleAmount(BigDecimal avgSaleAmount) {
this.avgSaleAmount = avgSaleAmount;
}
public Boolean getIsCopyright() {
return isCopyright;
}
public void setIsCopyright(Boolean isCopyright) {
this.isCopyright = isCopyright;
}
public Integer getJoinUserCount() {
return joinUserCount;
}
public void setJoinUserCount(Integer joinUserCount) {
this.joinUserCount = joinUserCount;
}
}
package com.pcloud.book.keywords.dao; package com.pcloud.book.keywords.dao;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.vo.SyncKeyworsVO; import com.pcloud.book.group.vo.SyncKeyworsVO;
import com.pcloud.book.keywords.dto.KeywordDTO; import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.dto.KeywordResourceDTO;
import com.pcloud.book.keywords.dto.ReplyKeywordDTO; import com.pcloud.book.keywords.dto.ReplyKeywordDTO;
import com.pcloud.book.keywords.entity.BookKeyword; import com.pcloud.book.keywords.entity.BookKeyword;
import com.pcloud.book.keywords.vo.KeywordVO; import com.pcloud.book.keywords.vo.KeywordVO;
...@@ -9,6 +11,7 @@ import com.pcloud.book.keywords.vo.ListKeywordVO; ...@@ -9,6 +11,7 @@ import com.pcloud.book.keywords.vo.ListKeywordVO;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author lily * @author lily
...@@ -132,4 +135,19 @@ public interface BookKeywordDao extends BaseDao<BookKeyword> { ...@@ -132,4 +135,19 @@ public interface BookKeywordDao extends BaseDao<BookKeyword> {
* 根据社群码id逻辑删除 * 根据社群码id逻辑删除
*/ */
void deleteByBookGroupIds(List<Long> bookGroupIds); void deleteByBookGroupIds(List<Long> bookGroupIds);
/**
* 社群码下资源数量(关键词及1v1配置资源)
* @param bookGroupIds
* @return
*/
public Map<Long, KeywordResourceDTO> getBookGroupResourceCount(List<Long> bookGroupIds);
/**
* 社群码下资源列表(关键词及1v1配置资源)
* @param bookGroupId
* @return
*/
public List<BookGroupKeywordResourceDTO> getBookGroupResourceList(Long bookGroupId);
} }
...@@ -3,9 +3,11 @@ package com.pcloud.book.keywords.dao.impl; ...@@ -3,9 +3,11 @@ package com.pcloud.book.keywords.dao.impl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pcloud.book.group.dto.BookGroupKeywordResourceDTO;
import com.pcloud.book.group.vo.SyncKeyworsVO; import com.pcloud.book.group.vo.SyncKeyworsVO;
import com.pcloud.book.keywords.dao.BookKeywordDao; import com.pcloud.book.keywords.dao.BookKeywordDao;
import com.pcloud.book.keywords.dto.KeywordDTO; import com.pcloud.book.keywords.dto.KeywordDTO;
import com.pcloud.book.keywords.dto.KeywordResourceDTO;
import com.pcloud.book.keywords.dto.ReplyKeywordDTO; import com.pcloud.book.keywords.dto.ReplyKeywordDTO;
import com.pcloud.book.keywords.entity.BookKeyword; import com.pcloud.book.keywords.entity.BookKeyword;
import com.pcloud.book.keywords.vo.KeywordVO; import com.pcloud.book.keywords.vo.KeywordVO;
...@@ -169,4 +171,19 @@ public class BookKeywordDaoImpl extends BaseDaoImpl<BookKeyword> implements Book ...@@ -169,4 +171,19 @@ public class BookKeywordDaoImpl extends BaseDaoImpl<BookKeyword> implements Book
public void deleteByBookGroupIds(List<Long> bookGroupIds) { public void deleteByBookGroupIds(List<Long> bookGroupIds) {
this.getSqlSession().update(this.getStatement("deleteByBookGroupIds"), bookGroupIds); this.getSqlSession().update(this.getStatement("deleteByBookGroupIds"), bookGroupIds);
} }
@Override
public Map<Long, KeywordResourceDTO> getBookGroupResourceCount(List<Long> bookGroupIds) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("bookGroupIds", bookGroupIds);
return this.getSqlSession().selectMap(this.getStatement("getBookGroupResourceCount"), paramMap, "bookGroupId");
}
@Override
public List<BookGroupKeywordResourceDTO> getBookGroupResourceList(Long bookGroupId) {
Map<String, Object> paramMap = new HashMap();
paramMap.put("bookGroupId", bookGroupId);
return getSessionTemplate().selectList(getStatement("getBookGroupResourceList"), paramMap);
}
} }
package com.pcloud.book.keywords.dto;
/**
* @描述:社群码下资源数量
* @作者:zhuyajie
* @创建时间:17:22 2019/9/29
* @版本:1.0
*/
public class KeywordResourceDTO {
/**
* 社群码id
*/
private Long bookGroupId;
/**
* 数量
*/
private Integer count;
public Long getBookGroupId() {
return bookGroupId;
}
public void setBookGroupId(Long bookGroupId) {
this.bookGroupId = bookGroupId;
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
@Override
public String toString() {
return "KeywordResourceDTO{" +
"bookGroupId=" + bookGroupId +
", count=" + count +
'}';
}
}
...@@ -170,4 +170,6 @@ ...@@ -170,4 +170,6 @@
AND t.serve_type = #{type} AND t.serve_type = #{type}
</if> </if>
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -86,4 +86,16 @@ ...@@ -86,4 +86,16 @@
create_time DESC,id DESC create_time DESC,id DESC
</select> </select>
<select id="getFriendsCountByBookGroupByTime" resultType="integer" parameterType="map">
SELECT
COUNT(DISTINCT wx_user_id)
FROM
book_group_cipher_user
WHERE
book_group_id = #{bookGroupId}
<if test="startTime != null and endTime != null">
AND create_time BETWEEN #{startTime} AND #{endTime}
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -987,4 +987,5 @@ ...@@ -987,4 +987,5 @@
AND t.is_delete = 0 AND t.is_delete = 0
order by create_time asc order by create_time asc
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -482,4 +482,83 @@ ...@@ -482,4 +482,83 @@
update_time=now() update_time=now()
where id=#{id} where id=#{id}
</update> </update>
<resultMap id="BookGroupAnalysisVO" type="com.pcloud.book.group.vo.BookGroupAnalysisVO">
<id column="BOOK_GROUP_ID" property="bookGroupId" jdbcType="BIGINT"/>
<result column="group_qrcode_url" property="groupQrcodeUrl" jdbcType="VARCHAR"/>
<result column="BOOK_ID" property="bookId" jdbcType="BIGINT"/>
<result column="ISBN" property="isbn" jdbcType="VARCHAR" />
<result column="BOOK_NAME" property="bookName" jdbcType="VARCHAR" />
<result column="TEMPLET_ID" property="templetId" jdbcType="BIGINT" />
<result column="SECOND_TEMPLET_ID" property="secondTempletId" jdbcType="BIGINT" />
<result column="ADVISER_ID" property="adviserId" jdbcType="BIGINT" />
<result column="CHANNEL_ID" property="channelId" jdbcType="BIGINT"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="is_fund_support" property="isFundSupport" jdbcType="BIT" />
<result column="is_copyright" property="isCopyright" jdbcType="BIT" />
<result column="join_group_type" property="joinGroupType" jdbcType="INTEGER"/>
</resultMap>
<select id="listPageBookGroupAnalysis" parameterType="map" resultMap="BookGroupAnalysisVO">
SELECT
G.id BOOK_GROUP_ID,
G.group_qrcode_url,
A.BOOK_ID,
B.ISBN,
B.BOOK_NAME,
A.TEMPLET_ID,
A.SECOND_TEMPLET_ID,
G.channel_id CHANNEL_ID,
G.create_user ADVISER_ID,
G.create_time,
IF (ISNULL(BF.BOOK_FUND_ID), 0, 1) is_fund_support,
IF (ISNULL(i.id), 0, 1) is_copyright,
G.join_group_type
FROM
book_group G
LEFT JOIN BOOK_ADVISER A ON G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID
LEFT JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID
LEFT JOIN BOOK_FUND BF ON BF.BOOK_ID = A.BOOK_ID AND BF.END_TIME <![CDATA[ > ]]> NOW() AND BF.START_TIME <![CDATA[ < ]]> NOW()
LEFT JOIN book_auth_info i ON G.book_id = i.book_id AND i.book_status = 1 AND i.is_group_book = 1
WHERE 1 = 1
AND G.is_delete = 0
AND A.BOOK_ID IS NOT NULL
AND (
A.BOOK_ADVISER_ID IS NULL
OR A.IS_DELETE = 0
)
AND (
B.BOOK_ID IS NULL
OR B.IS_DELETE = 0
)
<if test="isFundSupport != null and isFundSupport == 1">
AND BF.BOOK_FUND_ID IS NOT NULL
</if>
<if test="isFundSupport != null and isFundSupport == 0">
AND BF.BOOK_FUND_ID IS NULL
</if>
<if test="isCopyright != null and isCopyright == 1">
AND i.id IS NOT NULL
</if>
<if test="isCopyright != null and isCopyright == 0">
AND i.id IS NULL
</if>
<if test="bookIds != null">
AND G.book_id IN
<foreach collection="bookIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
<if test="adviserIds != null">
AND G.create_user IN
<foreach collection="adviserIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
GROUP BY
G.id
ORDER BY
G.create_time DESC,
G.id DESC
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -743,4 +743,14 @@ ...@@ -743,4 +743,14 @@
</foreach> </foreach>
</select> </select>
<select id="getIdsByBookGroupId" parameterType="long" resultType="long">
SELECT
q.id
FROM
book_group_qrcode q
LEFT JOIN book_group_classify c ON q.classify_id = c.id
WHERE
c.book_group_id = #{bookGroupId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -487,4 +487,68 @@ ...@@ -487,4 +487,68 @@
#{item} #{item}
</foreach> </foreach>
</update> </update>
<!--社群码下资源数量(关键词及1v1配置资源)-->
<select id="getBookGroupResourceCount" parameterType="map" resultType="com.pcloud.book.keywords.dto.KeywordResourceDTO">
SELECT
COUNT(1) count,
a.book_group_id bookGroupId
FROM
(
SELECT
serve_id,
serve_type,
book_group_id
FROM
book_keyword b
JOIN keyword k ON b.keyword_id = k.id
WHERE
b.is_delete = 0
AND k.is_delete = 0
AND b.book_group_id IN
<foreach collection="bookGroupIds" index="index" item="item" open="(" separator="," close=")">
${item}
</foreach>
AND k.serve_type IN ('APP', 'PRODUCT')
UNION
SELECT
serve_id,
serve_type,
book_group_id
FROM
book_group_serve
WHERE 1 = 1
AND book_group_id IN
<foreach collection="bookGroupIds" index="index" item="item" open="(" separator="," close=")">
${item}
</foreach>
) AS a
GROUP BY
a.book_group_id
</select>
<!--社群码下资源列表(关键词及1v1配置资源)-->
<select id="getBookGroupResourceList" parameterType="map" resultType="com.pcloud.book.group.dto.BookGroupKeywordResourceDTO">
SELECT
serve_id serveId,
serve_type serveType
FROM
book_keyword b
JOIN keyword k ON b.keyword_id = k.id
WHERE
b.is_delete = 0
AND k.is_delete = 0
AND b.book_group_id = #{bookGroupId}
AND k.serve_type IN ('APP', 'PRODUCT')
UNION
SELECT
serve_id serveId,
serve_type serveType
FROM
book_group_serve
WHERE
1 = 1
AND book_group_id = #{bookGroupId}
</select>
</mapper> </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