yumeng 1 anno fa
parent
commit
db3bce4dcd

+ 60 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/entity/LySendMessageLog.java

@@ -0,0 +1,60 @@
+package cn.com.ctop.job.adq.data.entity;
+
+
+/**
+ * 【请填写功能名称】对象 adq_advertiser_list
+ *
+ * @author ruoyi
+ * @date 2025-03-03
+ */
+public class LySendMessageLog {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 管家账户ID
+     */
+    private Long id;
+
+    /**
+     * 广告主ID
+     */
+    private String appId;
+
+    /**
+     * 广告主名称
+     */
+    private String sendDate;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getSendDate() {
+        return sendDate;
+    }
+
+    public void setSendDate(String sendDate) {
+        this.sendDate = sendDate;
+    }
+
+    @Override
+    public String toString() {
+        return "LySendMessageLog{" +
+                "id=" + id +
+                ", appId='" + appId + '\'' +
+                ", sendDate='" + sendDate + '\'' +
+                '}';
+    }
+}

+ 5 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/AppBanWarnMapper.java

@@ -1,5 +1,6 @@
 package cn.com.ctop.job.adq.data.mapper;
 
+import cn.com.ctop.job.adq.data.entity.LySendMessageLog;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.ibatis.annotations.Param;
 
@@ -7,4 +8,8 @@ import java.util.List;
 
 public interface AppBanWarnMapper {
     List<JSONObject> getAppBanList(@Param("createAt") long createAt);
+
+    void insertSendLog(LySendMessageLog sendMessageLog);
+
+    Integer checkNum(@Param("appId") String appId, @Param("date") String date);
 }

+ 15 - 0
job-adq/src/main/java/cn/com/ctop/job/adq/data/mapper/xml/AppBanWarnMapper.xml

@@ -1,6 +1,18 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="cn.com.ctop.job.adq.data.mapper.AppBanWarnMapper">
+    <insert id="insertSendLog">
+        replace into thirtpart.ly_send_message_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="appId != null">app_id,</if>
+            <if test="sendDate != null">send_date,</if>
+
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="appId != null">#{appId},</if>
+            <if test="sendDate != null">#{sendDate},</if>
+        </trim>
+    </insert>
 
 
     <select id="getAppBanList" resultType="com.alibaba.fastjson.JSONObject">
@@ -12,5 +24,8 @@
                  LEFT JOIN thirtpart.ly_applet t2
                            ON t1.app_id = t2.app_id
     </select>
+    <select id="checkNum" resultType="java.lang.Integer">
+        select count(1) from thirtpart.ly_send_message_log where app_id = #{appId} and send_date = #{date}
+    </select>
 </mapper>
 

+ 25 - 5
job-adq/src/main/java/cn/com/ctop/job/adq/data/service/impl/AppBanWarnServiceImpl.java

@@ -1,23 +1,27 @@
 package cn.com.ctop.job.adq.data.service.impl;
 
+import cn.com.ctop.job.adq.data.entity.LySendMessageLog;
 import cn.com.ctop.job.adq.data.mapper.AppBanWarnMapper;
 import cn.com.ctop.job.adq.data.service.IAppBanWarnService;
 import cn.com.ctop.job.adq.data.utils.Check;
+import cn.com.ctop.job.adq.data.utils.DateUtils;
 import cn.com.ctop.job.adq.data.utils.HttpUtils;
 import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
 import java.util.List;
 
 @Service
+@Slf4j
 public class AppBanWarnServiceImpl implements IAppBanWarnService {
     @Autowired
     private AppBanWarnMapper appBanWarnMapper;
 
     @Override
     public void appBanWarnJob(long createAt) {
+        String date = DateUtils.getNowDate("yyyyMMdd");
         List<JSONObject> list = appBanWarnMapper.getAppBanList(createAt);
         if (Check.isNull(list)) {
             return;
@@ -27,15 +31,29 @@ public class AppBanWarnServiceImpl implements IAppBanWarnService {
             String appId = jsonObject.getString("appId");
             String appName = jsonObject.getString("appName");
             String num = jsonObject.getString("num");
-            sendMessage(appId, appName, num);
+            Integer sendNum = appBanWarnMapper.checkNum(appId, date);
+            if (sendNum == 0) {
+                JSONObject returnJson = sendMessage(appId, appName, num);
+                if (!Check.isNull(returnJson)) {
+                    Integer statusCode = returnJson.getInteger("StatusCode");
+                    Integer code = returnJson.getInteger("code");
+                    if (code == 0 && statusCode == 0) {
+                        LySendMessageLog sendMessageLog = new LySendMessageLog();
+                        sendMessageLog.setAppId(appId);
+                        sendMessageLog.setSendDate(date);
+                        appBanWarnMapper.insertSendLog(sendMessageLog);
+                    }
+                }
+            } else {
+                log.info("此应用今日已经发送预警,此次跳过,appid:{},date:{}", appId, date);
+            }
         }
-
-
     }
 
 
-    public void sendMessage(String appId, String appName, String num) {
+    public JSONObject sendMessage(String appId, String appName, String num) {
         String url = "https://open.feishu.cn/open-apis/bot/v2/hook/f7278c1e-0455-40d9-8893-d09d7936eca4";
+        // String url = "https://open.feishu.cn/open-apis/bot/v2/hook/bb4853d2-9740-4007-a0c2-92ec319c914e";
         JSONObject param = new JSONObject();
         param.put("msg_type", "interactive");
         JSONObject card = new JSONObject();
@@ -52,6 +70,8 @@ public class AppBanWarnServiceImpl implements IAppBanWarnService {
         card.put("data", data);
         param.put("card", card);
         String s = HttpUtils.httpPostRequest(url, param, null);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        return jsonObject;
 
     }
 }