Browse Source

内容库V1.0.0

kaick 1 year ago
parent
commit
9bb740d5d4

+ 3 - 1
src/main/java/com/caimei365/tools/mapper/BaseMapper.java

@@ -1,7 +1,6 @@
 package com.caimei365.tools.mapper;
 package com.caimei365.tools.mapper;
 
 
 import com.caimei365.tools.model.bo.CouponDateBo;
 import com.caimei365.tools.model.bo.CouponDateBo;
-import com.caimei365.tools.model.bo.HeheCouponBo;
 import com.caimei365.tools.model.po.*;
 import com.caimei365.tools.model.po.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -115,6 +114,9 @@ public interface BaseMapper {
 
 
     List<Map<String,Object>> getBehaviorRecordYesterday(@Param("accessTime") String accessTime);
     List<Map<String,Object>> getBehaviorRecordYesterday(@Param("accessTime") String accessTime);
 
 
+    List<Map<String,Object>> getBehaviorRecordMinute(@Param("accessTime") String accessTime);
+
+    String getBehaviorRecordMinutePageLabel(@Param("spId") Integer spId,@Param("clubId") Integer clubId,@Param("accessTime")String accessTime);
     String getBehaviorRecordYesterdayPageLabel(@Param("spId") Integer spId,@Param("clubId") Integer clubId,@Param("accessTime")String accessTime);
     String getBehaviorRecordYesterdayPageLabel(@Param("spId") Integer spId,@Param("clubId") Integer clubId,@Param("accessTime")String accessTime);
 
 
     void updateRecommend(List<Integer> ids);
     void updateRecommend(List<Integer> ids);

+ 3 - 0
src/main/java/com/caimei365/tools/service/impl/CmBehaviorRecordServiceImpl.java

@@ -990,6 +990,9 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
         if (link.contains("zzjtest.gz.aeert.com")) {
         if (link.contains("zzjtest.gz.aeert.com")) {
             return "0";
             return "0";
         }
         }
+        if (link.contains("material")&&link.contains("caimei365.com")) { //https://material-b.caimei365.com
+            return "8";
+        }
         return null;
         return null;
     }
     }
 
 

+ 81 - 5
src/main/java/com/caimei365/tools/task/StatisticsTask.java

@@ -1,6 +1,5 @@
 package com.caimei365.tools.task;
 package com.caimei365.tools.task;
 
 
-import com.alibaba.fastjson.JSONObject;
 import com.caimei365.tools.feign.CommodityFeign;
 import com.caimei365.tools.feign.CommodityFeign;
 import com.caimei365.tools.mapper.BaseMapper;
 import com.caimei365.tools.mapper.BaseMapper;
 import com.caimei365.tools.model.dto.message.InsideMessage;
 import com.caimei365.tools.model.dto.message.InsideMessage;
@@ -11,9 +10,7 @@ import com.caimei365.tools.model.dto.message.enums.MessageType;
 import com.caimei365.tools.model.po.ClubPo;
 import com.caimei365.tools.model.po.ClubPo;
 import com.caimei365.tools.model.po.CmUserPo;
 import com.caimei365.tools.model.po.CmUserPo;
 import com.caimei365.tools.service.MessageSender;
 import com.caimei365.tools.service.MessageSender;
-import com.caimei365.tools.utils.RequestUtil;
 import com.caimei365.tools.utils.SmsUtil;
 import com.caimei365.tools.utils.SmsUtil;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -100,7 +97,7 @@ public class StatisticsTask {
      * ? 表示不指定值。
      * ? 表示不指定值。
      */
      */
     @Scheduled(cron = "0 30 9 * * ?")
     @Scheduled(cron = "0 30 9 * * ?")
-    public void countSpClubViews() {
+    public void recordYesterday() {
         try {
         try {
             // 获取昨天日期字符串
             // 获取昨天日期字符串
             Calendar calendar = Calendar.getInstance();
             Calendar calendar = Calendar.getInstance();
@@ -113,7 +110,7 @@ public class StatisticsTask {
             for (Map<String, Object> map : behaviorRecordYesterday) {
             for (Map<String, Object> map : behaviorRecordYesterday) {
                 Integer spId = (Integer) map.get("spId");
                 Integer spId = (Integer) map.get("spId");
                 String name = (String) map.get("name");
                 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 pageLabel = baseMapper.getBehaviorRecordYesterdayPageLabel(spId, null, dateStr);
                 String openId = baseMapper.getWechatOpenId((String) map.get("unionId"));
                 String openId = baseMapper.getWechatOpenId((String) map.get("unionId"));
                 //站内信 【协销前一天机构访问记录】
                 //站内信 【协销前一天机构访问记录】
@@ -166,4 +163,83 @@ public class StatisticsTask {
             log.error(">>>>>>>>>>>【定时任务】统计前一天针对机构访问商城形式的活跃行为失败:", e);
             log.error(">>>>>>>>>>>【定时任务】统计前一天针对机构访问商城形式的活跃行为失败:", e);
         }
         }
     }
     }
+
+
+    /**
+     * 每天五分钟执行一次统计统计内容库访问活跃行为
+     * <p>
+     * cron表达式语法:秒 分 小时 日 月 周
+     * 年可省略
+     * * 表示所有值。
+     * ? 表示不指定值。
+     */
+    @Scheduled(cron = "0 */5 * * * ?")
+    public void behaviorRecordMinute() {
+        try {
+            Calendar calendar = Calendar.getInstance();
+            String dateNewStr = new SimpleDateFormat("yyyy-MM-dd").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>> behaviorRecordYesterday = baseMapper.getBehaviorRecordMinute(dateStr);
+            for (Map<String, Object> map : behaviorRecordYesterday) {
+                Integer pageType = (Integer) map.get("pageType");
+                Integer spId = (Integer) map.get("spId");
+                String name = (String) map.get("name");
+                Integer count = (Integer)map.get("count") ;
+                String openId = baseMapper.getWechatOpenId((String) map.get("unionId"));
+                if(22==pageType){
+                    Integer clubID = (Integer)map.get("clubID") ;
+                    //站内信
+                    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);
+                }else {
+                    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+"...等"+Integer.valueOf(String.valueOf(count))+"家机构客户访问了您的内容库资料分享");
+                    keyWords.add(pageLabel);
+                    keyWords.add(dateNewStr);
+                    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="+dateStr));
+                    messageSender.messageSend(wechatTemplateMessageMessageModel);
+                }
+            }
+            log.info(">>>>>>>>>>>【定时任务】统计内容库访问活跃行为,统计成功");
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>【定时任务】统计内容库访问活跃行为活跃行为失败:", e);
+        }
+    }
 }
 }

+ 32 - 0
src/main/resources/mapper/BaseMapper.xml

@@ -216,6 +216,38 @@
         GROUP BY c.spId
         GROUP BY c.spId
         ORDER BY count(c.clubId) DESC
         ORDER BY count(c.clubId) DESC
     </select>
     </select>
+    <select id="getBehaviorRecordMinute" resultType="java.util.HashMap">
+        SELECT sp.serviceProviderID as spId,
+               b.pageType,
+               b.accessTime,
+               ifnull(c.name,'游客'),
+               c.clubID,
+               sp.unionId,
+               count(DISTINCT c.clubId) as count
+        FROM cm_behavior_record b
+        LEFT JOIN club c ON b.userID = c.userID
+        LEFT JOIN serviceprovider sp ON b.headUserId = sp.userID
+        WHERE  sp.status=90 and sp.serviceProviderID!=1342
+        and b.pageType in (69,70,71,22)
+        and b.accessTime >= #{accessTime}
+        GROUP BY sp.serviceProviderID
+        ORDER BY count(c.clubId) DESC
+    </select>
+    <select id="getBehaviorRecordMinutePageLabel" resultType="string">
+        SELECT GROUP_CONCAT(a.pageLabel)
+        FROM (SELECT b.pageLabel
+              FROM cm_behavior_record b
+              LEFT JOIN club c ON b.userID = c.userID
+              LEFT JOIN serviceprovider sp ON b.headUserId = sp.userID
+        WHERE b.userId !=0
+              and sp.serviceProviderID=#{spId}
+              <if test="clubId != null">
+                AND c.clubId =#{clubId}
+              </if>
+              and b.pageType in (69,70,71)
+              and  b.accessTime >= #{accessTime}
+              GROUP BY b.pageLabel LIMIT 5) as a
+    </select>
     <select id="getBehaviorRecordYesterdayPageLabel" resultType="string">
     <select id="getBehaviorRecordYesterdayPageLabel" resultType="string">
         SELECT GROUP_CONCAT(a.pageLabel)
         SELECT GROUP_CONCAT(a.pageLabel)
         FROM (SELECT b.pageLabel
         FROM (SELECT b.pageLabel