Commit 78eff6f9 by 吴博

feat: [1007295] 消息埋点

parent 39ea05b9
......@@ -32,16 +32,27 @@ import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.NumberUtil;
import com.pcloud.common.utils.UUIDUitl;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.commoncenter.user.track.domain.param.UserTrackEventContentDto;
import com.pcloud.commoncenter.user.track.domain.param.UserTrackEventDeviceDto;
import com.pcloud.commoncenter.user.track.domain.param.UserTrackEventEntryDto;
import com.pcloud.commoncenter.user.track.domain.param.UserTrackEventInfoDto;
import com.pcloud.commoncenter.user.track.domain.param.UserTrackEventParam;
import com.pcloud.commoncenter.user.track.domain.param.UserTrackEventUserDto;
import com.pcloud.commoncenter.user.track.sdk.UserTrackEventReportUtil;
import com.pcloud.readercenter.common.enums.YesOrNoNumEnum;
import com.pcloud.readercenter.common.utils.ReaderConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.pcloud.book.applet.contants.AppletConstants.APPLET_SEND_MESSAGE_COUNT;
......@@ -135,11 +146,34 @@ public class AppletSubscribeRecordBizImpl implements AppletSubscribeRecordBiz {
tempMap.put("thing7", "新增后可及时接收他人点赞、回复等消息提醒");
appletTemplateMessage.setData(tempMap);
Boolean sendState = channelConsr.sendAppletMessage(appletTemplateMessage);
String sendKey = "subscribeCount" + UUIDUitl.taskName();
Map<String,Object> contentExtraMap = new HashMap<>();
contentExtraMap.put("spm",4149);
contentExtraMap.put("subSpm",sendKey);
UserTrackEventParam e = UserTrackEventParam.builder()
.parentId(null)
.device(UserTrackEventDeviceDto.builder().deviceImei("NA").deviceVersion("10.0").deviceExtra(new HashMap<>()).build())
.entry(UserTrackEventEntryDto.builder().entryType(null).entryVersion("1.0.0").entryExtra(null).build())
.event(UserTrackEventInfoDto.builder().eventCode("SEND_MSG").eventTime(new Date()).build())
.content(UserTrackEventContentDto.builder()
.officialId(ReaderConstants.MINI_OFFICIAL_ID)
.contentExtra(contentExtraMap)
.build())
.user(UserTrackEventUserDto.builder()
.userId(appletSubscribeRecord.getWechatUserId())
.build())
.build();
UserTrackEventReportUtil.reportAndGetId(e);
if (!sendState) {
//发送公众号模板消息
templateConsr.sendTempletMessage4Project("您的消息提醒次数已用完,请点击消息去新增", "新增后可及时接收他人点赞、回复等消息提醒",
appletSubscribeRecord.getWechatUserId(), "pages/notify/index", "订阅次数不足提醒");
appletSubscribeRecord.getWechatUserId(), "pages/notify/index", "订阅次数不足提醒", sendKey);
} else {
e.getContent().getContentExtra().put("spm",4150);
e.getContent().getContentExtra().put("subSpm",sendKey + ":mini");
UserTrackEventReportUtil.reportAndGetId(e);
}
appletSubscribeRecordDao.insert(appletSubscribeRecord);
subscribeCount.setValidCount(0);
appletSubscribeCountBiz.update(subscribeCount);
......
......@@ -201,9 +201,25 @@ public class SearchBizImpl implements SearchBiz {
map.put("content",content);
PageBeanNew<SearchBookVO> pageNew = searchRecordDao.listPageNew(new PageParam(currentPage, numPerPage), map, "getSearchList");
fillSearchAgent(pageNew.getRecordList());
fillSearchCount(pageNew.getRecordList());
return pageNew;
}
private void fillSearchCount(List<SearchBookVO> recordList) {
LOGGER.info("填充搜索内容次数");
if (CollUtil.isEmpty(recordList)) {
return;
}
List<String> searchContentList = recordList.stream().map(e -> e.getContent()).collect(Collectors.toList());
Map<String, SearchRecordDis> searchBookVOMap = searchRecordDisDao.getSearchMap(searchContentList);
recordList.stream().forEach(searchBookVO -> {
if (CollUtil.isNotEmpty(searchBookVOMap) && null != searchBookVOMap.get(searchBookVO.getContent())) {
searchBookVO.setSearchCount(searchBookVOMap.get(searchBookVO.getContent()).getSearchCount());
}
});
}
@ParamLog("导出热门搜索列表")
@Override
public void exportSearchList(String systemCode, Long partyId, String content) {
......
package com.pcloud.book.book.dao;
import com.pcloud.book.book.entity.SearchRecordDis;
import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
public interface SearchRecordDisDao extends BaseDao<SearchRecordDis> {
SearchRecordDis getByCondition(Long wechatUserId, String wxId, String content);
void updateUserDeleteByWxId(String wxId, Boolean userDelete);
void updateUserDeleteByWechatUserId(Long wechatUserId, Boolean userDelete);
Map<String, SearchRecordDis> getSearchMap(List<String> searchContentList);
}
......@@ -2,10 +2,12 @@ package com.pcloud.book.book.dao.impl;
import com.pcloud.book.book.dao.SearchRecordDisDao;
import com.pcloud.book.book.entity.SearchRecordDis;
import com.pcloud.book.book.vo.SearchBookVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("searchRecordDisDao")
......@@ -35,4 +37,9 @@ public class SearchRecordDisDaoImpl extends BaseDaoImpl<SearchRecordDis> impleme
map.put("userDelete",userDelete);
super.getSqlSession().update(super.getStatement("updateUserDeleteByWechatUserId"),map);
}
@Override
public Map<String, SearchRecordDis> getSearchMap(List<String> searchContentList) {
return getSessionTemplate().selectMap(getStatement("getSearchMap"), searchContentList, "content");
}
}
......@@ -3,7 +3,6 @@
*/
package com.pcloud.book.consumer.message;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.channelcenter.wechat.entity.AccountSetting;
......@@ -107,7 +106,7 @@ public class TemplateConsr {
}
}
public void sendTempletMessage4Project(String keyword1, String keyword2, Long wechatUserId, String pagepath, String first) {
public void sendTempletMessage4Project(String keyword1, String keyword2, Long wechatUserId, String pagepath, String first, String sendKey) {
LOGGER.info("小睿宠物发送模板消息业务进度提醒keyword1:{},keyword2:{}, wechatUserId:{},pagepath:{},",
keyword1, keyword2,wechatUserId, pagepath);
Map<String, String> temParam = new HashMap<>();
......@@ -115,6 +114,7 @@ public class TemplateConsr {
temParam.put("keyword1", keyword1);
temParam.put("keyword2", keyword2);
temParam.put("remark", "点击查看详情");
temParam.put("sendKey", "sendKey");
List<Long> allUserIds = readerConsr.getAllUserIds(wechatUserId);
if (ListUtils.isEmpty(allUserIds)) {
return;
......
package com.pcloud.book.cultivate.biz.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.StrUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
......@@ -57,7 +56,6 @@ import com.pcloud.common.utils.ServeLinkUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.readercenter.applet.entity.AppletQuestion;
import com.pcloud.readercenter.common.utils.ReaderConstants;
import com.pcloud.readercenter.wechat.dto.MiniUserDto;
import com.pcloud.readercenter.wechat.dto.ReaderMessageDto;
import com.pcloud.readercenter.wechat.entity.WechatUser;
......@@ -405,7 +403,7 @@ public class CultivateNotifyBizImpl implements CultivateNotifyBiz {
String text2 = title;
String first = "推送消息提醒";
String page = "pages/notify/message/index?messageType=1";
templateConsr.sendTempletMessage4Project(text1, text2, wechatUserId, page, first);
templateConsr.sendTempletMessage4Project(text1, text2, wechatUserId, page, first, null);
});
}
......
......@@ -254,7 +254,7 @@ public class CultivateRaysBizImpl implements CultivateRaysBiz {
//发送小程序服务消息
templateConsr.sendAppletMessageQueue(appletTemplateMessage);
//发送公众号模板消息
templateConsr.sendTempletMessage4Project(text1, text2, wechatUserId, appletTemplateMessage.getPage(),first);
templateConsr.sendTempletMessage4Project(text1, text2, wechatUserId, appletTemplateMessage.getPage(),first, null);
}
/**
......
......@@ -144,4 +144,19 @@
</if>
</select>
<select id="getSearchMap" parameterType="list" resultMap="BaseResultMap">
select
content,
sum(search_count) search_count
FROM
search_record_dis
where
content
in
<foreach collection="list" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
group by content
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment