|
@@ -1,6 +1,5 @@
|
|
|
package com.caimei365.tools.task;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
import com.caimei365.tools.feign.CommodityFeign;
|
|
|
import com.caimei365.tools.mapper.BaseMapper;
|
|
|
import com.caimei365.tools.model.dto.message.InsideMessage;
|
|
@@ -11,12 +10,11 @@ import com.caimei365.tools.model.dto.message.enums.MessageType;
|
|
|
import com.caimei365.tools.model.po.ClubPo;
|
|
|
import com.caimei365.tools.model.po.CmUserPo;
|
|
|
import com.caimei365.tools.service.MessageSender;
|
|
|
-import com.caimei365.tools.utils.RequestUtil;
|
|
|
import com.caimei365.tools.utils.SmsUtil;
|
|
|
-import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.commons.lang3.time.DateFormatUtils;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.data.redis.core.RedisCallback;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
@@ -100,7 +98,7 @@ public class StatisticsTask {
|
|
|
* ? 表示不指定值。
|
|
|
*/
|
|
|
@Scheduled(cron = "0 30 9 * * ?")
|
|
|
- public void countSpClubViews() {
|
|
|
+ public void recordYesterday() {
|
|
|
try {
|
|
|
// 获取昨天日期字符串
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
@@ -113,7 +111,7 @@ public class StatisticsTask {
|
|
|
for (Map<String, Object> map : behaviorRecordYesterday) {
|
|
|
Integer spId = (Integer) map.get("spId");
|
|
|
String name = (String) map.get("name");
|
|
|
- Integer count = Integer.valueOf(map.get("count").toString()) ;
|
|
|
+ Integer count =(Integer) map.get("count");
|
|
|
String pageLabel = baseMapper.getBehaviorRecordYesterdayPageLabel(spId, null, dateStr);
|
|
|
String openId = baseMapper.getWechatOpenId((String) map.get("unionId"));
|
|
|
//站内信 【协销前一天机构访问记录】
|
|
@@ -132,7 +130,7 @@ public class StatisticsTask {
|
|
|
messageSender.messageSend(insideMessageMessageModel);
|
|
|
//微信模板消息 【协销前一天机构访问记录】
|
|
|
ArrayList<String> keyWords = new ArrayList<>();
|
|
|
- keyWords.add(name+"...等"+Integer.valueOf(String.valueOf(count))+"家机构客户");
|
|
|
+ keyWords.add(name+"...等"+count+"家机构客户");
|
|
|
keyWords.add(pageLabel);
|
|
|
keyWords.add(dateStr);
|
|
|
MessageModel<WechatTemplateMessage> wechatTemplateMessageMessageModel = new MessageModel<WechatTemplateMessage>()
|
|
@@ -166,4 +164,85 @@ public class StatisticsTask {
|
|
|
log.error(">>>>>>>>>>>【定时任务】统计前一天针对机构访问商城形式的活跃行为失败:", e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 每天五分钟执行一次统计统计内容库访问活跃行为
|
|
|
+ * <p>
|
|
|
+ * cron表达式语法:秒 分 小时 日 月 周
|
|
|
+ * 年可省略
|
|
|
+ * * 表示所有值。
|
|
|
+ * ? 表示不指定值。
|
|
|
+ */
|
|
|
+ @Scheduled(cron = "0 */5 * * * ?")
|
|
|
+ public void behaviorRecordMinute() {
|
|
|
+ try {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ String dateNewStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:00").format(calendar.getTime());
|
|
|
+ calendar.add(Calendar.MINUTE, -5);
|
|
|
+ String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
|
|
|
+ List<Map<String, Object>> behaviorRecordClubMinute = baseMapper.getBehaviorRecordClubMinute(dateStr);
|
|
|
+ for (Map<String, Object> map : behaviorRecordClubMinute) {
|
|
|
+ Integer spId = Integer.valueOf(map.get("spId").toString());
|
|
|
+ String name = (String) map.get("name");
|
|
|
+ // String openId = baseMapper.getWechatOpenId((String) map.get("unionId"));
|
|
|
+ Integer clubID = Integer.valueOf(map.get("clubID").toString());
|
|
|
+ //站内信
|
|
|
+ MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
|
|
|
+ insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
|
|
|
+ .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(1))
|
|
|
+ .info(new InsideMessage()
|
|
|
+ .userType(3)
|
|
|
+ .messageType(3)
|
|
|
+ .shopTieredType(9)
|
|
|
+ .name(name)
|
|
|
+ .clubId(clubID)
|
|
|
+ .thisId(spId)
|
|
|
+ );
|
|
|
+ messageSender.messageSend(insideMessageMessageModel);
|
|
|
+ }
|
|
|
+ List<Map<String, Object>> behaviorRecordYesterday = baseMapper.getBehaviorRecordMinute(dateStr);
|
|
|
+ for (Map<String, Object> map : behaviorRecordYesterday) {
|
|
|
+ Integer spId = Integer.valueOf(map.get("spId").toString());
|
|
|
+ String name = map.get("name").toString();
|
|
|
+ Integer count = Integer.valueOf(map.get("count").toString());
|
|
|
+ String openId = baseMapper.getWechatOpenId((String) map.get("unionId"));
|
|
|
+ String pageLabel = baseMapper.getBehaviorRecordMinutePageLabel(spId, null, dateStr);
|
|
|
+ //站内信
|
|
|
+ MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
|
|
|
+ insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
|
|
|
+ .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(1))
|
|
|
+ .info(new InsideMessage()
|
|
|
+ .userType(3)
|
|
|
+ .messageType(3)
|
|
|
+ .shopTieredType(10)
|
|
|
+ .name(name)
|
|
|
+ .content(pageLabel)
|
|
|
+ .sum(count)
|
|
|
+ .thisId(spId)
|
|
|
+ );
|
|
|
+ messageSender.messageSend(insideMessageMessageModel);
|
|
|
+ //微信模板消息
|
|
|
+ ArrayList<String> keyWords = new ArrayList<>();
|
|
|
+ keyWords.add(name+"...等"+count+"家机构客户访问了您的内容库资料分享");
|
|
|
+ keyWords.add(pageLabel);
|
|
|
+ keyWords.add(DateFormatUtils.format(calendar.getTime(), "yyyy-MM-dd"));
|
|
|
+ MessageModel<WechatTemplateMessage> wechatTemplateMessageMessageModel = new MessageModel<WechatTemplateMessage>()
|
|
|
+ .code(MessageType.WECHAT_TEMPLATE_MESSAGE)
|
|
|
+ .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(1))
|
|
|
+ .info(new WechatTemplateMessage()
|
|
|
+ .first("")
|
|
|
+ .openId(openId)
|
|
|
+ .appid("wxf3cd4ae0cdd11c36")
|
|
|
+ .templateId("Zd7ewJw9-bN-gIgra9flKW96W3YehikRPPkDXPfhmQ0")
|
|
|
+ .keyWords(keyWords)
|
|
|
+ .remark("为了更好给您服务,请及时联系采美客服!")
|
|
|
+ .pagePath("pages/seller/notice/service/Institutional_visits?type=1&spId="+spId+"&accDateTime="+dateNewStr));
|
|
|
+ messageSender.messageSend(wechatTemplateMessageMessageModel);
|
|
|
+ }
|
|
|
+ log.info(">>>>>>>>>>>【定时任务】统计内容库访问活跃行为,统计成功");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(">>>>>>>>>>>【定时任务】统计内容库访问活跃行为活跃行为失败:", e);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|