Commit af41cf25 by 朱亚洁

社群码数据统计

parent 0a046134
...@@ -558,6 +558,15 @@ public class BookDto extends BaseDto { ...@@ -558,6 +558,15 @@ public class BookDto extends BaseDto {
*/ */
private String phone; private String phone;
/**
* 进群方式:1群二维码,2客服机器人
*/
private Integer joinGroupType;
/**
* 好友人数
*/
private Integer friendsCount;
public String getQrRemark() { public String getQrRemark() {
return qrRemark; return qrRemark;
} }
...@@ -1490,6 +1499,22 @@ public class BookDto extends BaseDto { ...@@ -1490,6 +1499,22 @@ public class BookDto extends BaseDto {
this.phone = phone; this.phone = phone;
} }
public Integer getJoinGroupType() {
return joinGroupType;
}
public void setJoinGroupType(Integer joinGroupType) {
this.joinGroupType = joinGroupType;
}
public Integer getFriendsCount() {
return friendsCount;
}
public void setFriendsCount(Integer friendsCount) {
this.friendsCount = friendsCount;
}
@Override @Override
public String toString() { public String toString() {
return "BookDto{" + return "BookDto{" +
...@@ -1602,6 +1627,8 @@ public class BookDto extends BaseDto { ...@@ -1602,6 +1627,8 @@ public class BookDto extends BaseDto {
", outNum=" + outNum + ", outNum=" + outNum +
", outRate=" + outRate + ", outRate=" + outRate +
", phone='" + phone + '\'' + ", phone='" + phone + '\'' +
", joinGroupType=" + joinGroupType +
", friendsCount=" + friendsCount +
'}'; '}';
} }
} }
package com.pcloud.book.group.biz.impl; package com.pcloud.book.group.biz.impl;
import com.alibaba.fastjson.JSONObject;
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.alibaba.fastjson.JSONObject;
import com.pcloud.appcenter.app.dto.AppDto; import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.base.dto.AppPriceCacheDTO; import com.pcloud.appcenter.base.dto.AppPriceCacheDTO;
import com.pcloud.appcenter.cache.service.AppPriceCacheService; import com.pcloud.appcenter.cache.service.AppPriceCacheService;
...@@ -24,29 +24,49 @@ import com.pcloud.book.consumer.user.AdviserConsr; ...@@ -24,29 +24,49 @@ import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.BookGroupBiz; import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.BookGroupClassifyBiz; import com.pcloud.book.group.biz.BookGroupClassifyBiz;
import com.pcloud.book.group.dao.*;
import com.pcloud.book.group.dto.*;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.JoinGroupCipher;
import com.pcloud.book.group.entity.TempletRelevance;
import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.LargTempletEnum;
import com.pcloud.book.group.vo.StatisticVO;
import com.pcloud.book.group.biz.GroupQrcodeBiz; import com.pcloud.book.group.biz.GroupQrcodeBiz;
import com.pcloud.book.group.dao.AppClickRecordDao; import com.pcloud.book.group.dao.AppClickRecordDao;
import com.pcloud.book.group.dao.AppTouchRecordDao; import com.pcloud.book.group.dao.AppTouchRecordDao;
import com.pcloud.book.group.dao.BookGroupClassifyDao; import com.pcloud.book.group.dao.BookGroupClassifyDao;
import com.pcloud.book.group.dao.BookGroupDao; import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dao.JoinGroupCipherDao;
import com.pcloud.book.group.vo.ClassifyAndGroupCountVO; import com.pcloud.book.group.dao.TempletRelevanceDao;
import com.pcloud.book.group.dao.WeixinQrcodeDao;
import com.pcloud.book.group.dto.*; import com.pcloud.book.group.dto.AppStatisticsDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.group.dto.BookGroupStatisticsDTO;
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.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupStoreMyPayDto;
import com.pcloud.book.group.dto.GroupUseDTO;
import com.pcloud.book.group.dto.JoinGroupCipherDTO;
import com.pcloud.book.group.dto.LargeTempletDTO;
import com.pcloud.book.group.dto.OwnAltQrcodeInfoDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.dto.StatisticsIncomeDto;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.JoinGroupCipher;
import com.pcloud.book.group.vo.*; import com.pcloud.book.group.entity.TempletRelevance;
import com.pcloud.book.group.enums.CipherTypeEnum;
import com.pcloud.book.group.enums.LargTempletEnum;
import com.pcloud.book.group.vo.ClassifyAndGroupCountVO;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
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.ListBook4ChannelVO;
import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
import com.pcloud.book.group.vo.ResourceClickVO;
import com.pcloud.book.group.vo.ResourcesStatisticVO;
import com.pcloud.book.group.vo.StatisticVO;
import com.pcloud.book.group.vo.TotalRescourceDataVO;
import com.pcloud.book.group.vo.WxGroupStatisticVO;
import com.pcloud.book.keywords.dao.BookKeywordDao; import com.pcloud.book.keywords.dao.BookKeywordDao;
import com.pcloud.book.keywords.enums.ReplyTypeEnum; import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.keywords.vo.ListKeywordVO; import com.pcloud.book.keywords.vo.ListKeywordVO;
...@@ -66,15 +86,20 @@ import com.pcloud.common.exceptions.BizException; ...@@ -66,15 +86,20 @@ import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean; import com.pcloud.common.page.PageBean;
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.*; import com.pcloud.common.utils.BeanUtils;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.QrcodeUtils; import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.UUIDUitl;
import com.pcloud.common.utils.export.excel.ExcelExportor; import com.pcloud.common.utils.export.excel.ExcelExportor;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.common.utils.zip.CompressUtils; import com.pcloud.common.utils.zip.CompressUtils;
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.SpeWechatGroupDto;
import com.pcloud.facade.tradecenter.dto.WechatGroupDto;
import com.pcloud.labelcenter.label.service.LabelService; import com.pcloud.labelcenter.label.service.LabelService;
import com.pcloud.liveapp.live.dto.ProductIdSearchDto; import com.pcloud.liveapp.live.dto.ProductIdSearchDto;
import com.pcloud.liveapp.live.service.TimeTableService; import com.pcloud.liveapp.live.service.TimeTableService;
...@@ -86,7 +111,6 @@ import com.pcloud.resourcecenter.product.dto.UpdateAppProductParamDTO; ...@@ -86,7 +111,6 @@ import com.pcloud.resourcecenter.product.dto.UpdateAppProductParamDTO;
import com.pcloud.resourcecenter.product.entity.Product; import com.pcloud.resourcecenter.product.entity.Product;
import com.pcloud.resourcecenter.product.service.ProductService; import com.pcloud.resourcecenter.product.service.ProductService;
import com.pcloud.resourcecenter.store.constants.StoreCons; import com.pcloud.resourcecenter.store.constants.StoreCons;
import com.pcloud.settlementcenter.record.dto.GetGroupClassifyIncomeDTO; import com.pcloud.settlementcenter.record.dto.GetGroupClassifyIncomeDTO;
import com.pcloud.settlementcenter.record.dto.GetGroupQrcodeIncomeDTO; import com.pcloud.settlementcenter.record.dto.GetGroupQrcodeIncomeDTO;
import com.pcloud.settlementcenter.record.dto.GroupRescourceIncomeParamDTO; import com.pcloud.settlementcenter.record.dto.GroupRescourceIncomeParamDTO;
...@@ -95,8 +119,8 @@ import com.pcloud.settlementcenter.record.service.SettlementService; ...@@ -95,8 +119,8 @@ import com.pcloud.settlementcenter.record.service.SettlementService;
import com.pcloud.videolesson.schedule.service.ScheduleService; import com.pcloud.videolesson.schedule.service.ScheduleService;
import com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO; import com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO;
import com.pcloud.wechatgroup.group.service.GroupMemberService; import com.pcloud.wechatgroup.group.service.GroupMemberService;
import com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO; import com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO;
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;
...@@ -116,8 +140,6 @@ import java.util.List; ...@@ -116,8 +140,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.sun.tools.doclets.formats.html.markup.HtmlStyle.title;
/** /**
* Description 社群书群二维码业务逻辑层接口实现类 * Description 社群书群二维码业务逻辑层接口实现类
* Created by PENG on 2019/4/17. * Created by PENG on 2019/4/17.
...@@ -560,6 +582,9 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -560,6 +582,9 @@ public class BookGroupBizImpl implements BookGroupBiz {
} else { } else {
bookDto.setTotalIncome(BigDecimal.ZERO); bookDto.setTotalIncome(BigDecimal.ZERO);
} }
//好友数量
Integer friendsCount = joinGroupCipherDao.getFriendsCountByBookGroup(bookGroupId);
bookDto.setFriendsCount(friendsCount);
} }
return pageBean; return pageBean;
} }
...@@ -663,6 +688,8 @@ public class BookGroupBizImpl implements BookGroupBiz { ...@@ -663,6 +688,8 @@ public class BookGroupBizImpl implements BookGroupBiz {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
Integer bookGroupCount = bookGroupDao.getBookGroupCount(adviserId); Integer bookGroupCount = bookGroupDao.getBookGroupCount(adviserId);
result.put("bookGroupCount", bookGroupCount); result.put("bookGroupCount", bookGroupCount);
Integer friendsCount = bookGroupDao.getBookGroupFriendsCountByAdviser(adviserId);
result.put("friendsCount", friendsCount);
return result; return result;
} }
......
...@@ -155,4 +155,11 @@ public interface BookGroupDao extends BaseDao<BookGroup> { ...@@ -155,4 +155,11 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
* @return * @return
*/ */
BookGroupDTO getBookBaseInfoById(Long bookGroupId); BookGroupDTO getBookBaseInfoById(Long bookGroupId);
/**
* 编辑社群书好友人数
* @param adviserId
* @return
*/
public Integer getBookGroupFriendsCountByAdviser(Long adviserId);
} }
...@@ -31,4 +31,11 @@ public interface JoinGroupCipherDao extends BaseDao<JoinGroupCipher> { ...@@ -31,4 +31,11 @@ public interface JoinGroupCipherDao extends BaseDao<JoinGroupCipher> {
JoinGroupCipher getByCondition(Long wechatUserId, Long bookGroupId, Integer type); JoinGroupCipher getByCondition(Long wechatUserId, Long bookGroupId, Integer type);
List<JoinGroupCipher> getListByAltIdAndWxIdAndType(String robotId, String userWxId, Integer code); List<JoinGroupCipher> getListByAltIdAndWxIdAndType(String robotId, String userWxId, Integer code);
/**
* 社群码好友数量
* @param bookGroupId
* @return
*/
public Integer getFriendsCountByBookGroup(Long bookGroupId);
} }
package com.pcloud.book.group.dao.impl; package com.pcloud.book.group.dao.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import org.springframework.stereotype.Repository;
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.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.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* Description 社群书群二维码数据访问层接口实现类 * Description 社群书群二维码数据访问层接口实现类
* Created by PENG on 2019/4/17. * Created by PENG on 2019/4/17.
...@@ -162,4 +163,9 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou ...@@ -162,4 +163,9 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
public BookGroupDTO getBookBaseInfoById(Long bookGroupId) { public BookGroupDTO getBookBaseInfoById(Long bookGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getBookBaseInfoById"), bookGroupId); return this.getSqlSession().selectOne(this.getStatement("getBookBaseInfoById"), bookGroupId);
} }
@Override
public Integer getBookGroupFriendsCountByAdviser(Long adviserId) {
return this.getSqlSession().selectOne(getStatement("getBookGroupFriendsCountByAdviser"), adviserId);
}
} }
...@@ -87,4 +87,9 @@ public class JoinGroupCipherDaoImpl extends BaseDaoImpl<JoinGroupCipher> impleme ...@@ -87,4 +87,9 @@ public class JoinGroupCipherDaoImpl extends BaseDaoImpl<JoinGroupCipher> impleme
map.put("type",type); map.put("type",type);
return this.getSqlSession().selectOne(this.getStatement("getListByAltIdAndWxIdAndType"), map); return this.getSqlSession().selectOne(this.getStatement("getListByAltIdAndWxIdAndType"), map);
} }
@Override
public Integer getFriendsCountByBookGroup(Long bookGroupId) {
return getSessionTemplate().selectOne(getStatement("getFriendsCountByBookGroup"), bookGroupId);
}
} }
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
<result column="SECOND_TEMPLET_ID" property="secondTempletId" jdbcType="BIGINT" /> <result column="SECOND_TEMPLET_ID" property="secondTempletId" jdbcType="BIGINT" />
<result column="SECOND_TYPE_CODE" property="secondTypeCode" jdbcType="BIGINT" /> <result column="SECOND_TYPE_CODE" property="secondTypeCode" jdbcType="BIGINT" />
<result column="BOOK_GROUP_ID" property="bookGroupId" jdbcType="BIGINT" /> <result column="BOOK_GROUP_ID" property="bookGroupId" jdbcType="BIGINT" />
<result column="join_group_type" property="joinGroupType" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<resultMap id="bookListPageMap" type="bookDto" extends ="bookMap"> <resultMap id="bookListPageMap" type="bookDto" extends ="bookMap">
...@@ -557,7 +558,7 @@ ...@@ -557,7 +558,7 @@
B.AUTHOR, B.PUBLISH, B.PUBLISH_DATE, B.COVER_IMG, B.ORIGIN_NAME, B.BOOK_PRICE, B.ISSN, B.BOOK_NUM, B.SERIAL_NUMBER, B.AUTHOR, B.PUBLISH, B.PUBLISH_DATE, B.COVER_IMG, B.ORIGIN_NAME, B.BOOK_PRICE, B.ISSN, B.BOOK_NUM, B.SERIAL_NUMBER,
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT, A.TEMPLET_ID, A.BOOK_ADVISER_ID, CONCAT('BK',A.BOOK_ID) uniqueNumber, IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT, A.TEMPLET_ID, A.BOOK_ADVISER_ID, CONCAT('BK',A.BOOK_ID) uniqueNumber,
G.update_time LAST_MODIFIED_DATE, G.create_time CREATED_DATE, G.id BOOK_GROUP_ID, G.group_qrcode_url groupQrcodeUrl, G.update_time LAST_MODIFIED_DATE, G.create_time CREATED_DATE, G.id BOOK_GROUP_ID, G.group_qrcode_url groupQrcodeUrl,
G.group_qrcode_name groupQrcodeName, G.dep_label_id depLabelId G.group_qrcode_name groupQrcodeName, G.dep_label_id depLabelId, G.join_group_type joinGroupType
FROM FROM
book_group G 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_ADVISER A ON G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID
......
...@@ -407,4 +407,16 @@ ...@@ -407,4 +407,16 @@
LEFT JOIN book b ON bg.book_id = b.BOOK_ID LEFT JOIN book b ON bg.book_id = b.BOOK_ID
where bg.id=#{bookGroupId} where bg.id=#{bookGroupId}
</select> </select>
<select id="getBookGroupFriendsCountByAdviser" resultType="integer" parameterType="long">
SELECT
COUNT(DISTINCT c.wx_id)
FROM
book_group G
LEFT JOIN join_group_cipher c ON G.id = c.book_group_id
WHERE
G.create_user = #{adviserId, jdbcType=BIGINT}
AND G.is_delete = 0
AND c.has_used = 1
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -127,4 +127,15 @@ ...@@ -127,4 +127,15 @@
alt_id=#{robotId} and alt_id=#{robotId} and
type=#{type} type=#{type}
</select> </select>
<select id="getFriendsCountByBookGroup" parameterType="long" resultType="integer">
SELECT
COUNT(DISTINCT wx_id)
FROM
join_group_cipher
WHERE
book_group_id = #{bookGroupId}
AND has_used = 1
</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