Prechádzať zdrojové kódy

漏绑手动触发+错绑排除多appid

zhaotx 1 rok pred
rodič
commit
3fc2a1a73e

+ 18 - 7
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/controller/FeishuController.java

@@ -1,14 +1,13 @@
 package cn.com.ctop.job.bytedance.controller;
 
-import cn.com.ctop.job.bytedance.data.service.IDateReportsPushService;
-import cn.com.ctop.job.bytedance.data.service.IOptimizerRankPushService;
-import cn.com.ctop.job.bytedance.data.service.IReportsAdPushService;
-import cn.com.ctop.job.bytedance.data.service.ITotalRankPushService;
+import cn.com.ctop.job.bytedance.data.service.*;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 @RestController
 @RequestMapping("/feishu")
@@ -23,8 +22,20 @@ public class FeishuController {
     IReportsAdPushService reportsAdPushService;
     @Autowired
     IDateReportsPushService dateReportsPushService;
+    @Autowired
+    IUnbindWarnPushService unbindWarnPushService;
+    @Autowired
+    IBindAppErrorWarnService bindAppErrorWarnService;
     @GetMapping("/test")
     public void test(){
+        bindAppErrorWarnService.send();
         System.out.println("---feishu test 收到---");
     }
+
+    @PostMapping("/sendUnbind")
+    public void sendUnbind(@RequestBody JSONObject obj){
+        JSONArray array = obj.getJSONArray("advertiserIds");
+        List<String> list = array.toJavaList(String.class);
+        unbindWarnPushService.send(list, false);
+    }
 }

+ 2 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/ReportsAdPushMapper.java

@@ -24,7 +24,8 @@ public interface ReportsAdPushMapper {
     List<Map<String, String>> deptCostRank(@Param("date") Long date, @Param("hour") String hour);
 
     //漏绑账户预警
-    List<Map<String, String>> unbindData(@Param("date") Long date, @Param("last90Day") Long last90Day);
+    List<Map<String, String>> unbindData(@Param("date") Long date, @Param("last90Day") Long last90Day,
+                                         @Param("list") List<String> list);
 
     //错绑账户预警
     List<Map<String, String>> bindAppErrorData(@Param("last30Day") Long last30Day);

+ 28 - 13
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/mapper/xml/ReportsAdPushMapper.xml

@@ -170,7 +170,15 @@
 
     <select id="unbindData" resultType="java.util.Map">
         select tb1.advertiser_id, tb1.advertiser_name, ifnull(tb2.ca,0) as today_cost, tb3.ca as last_30_cost from
-        (select cast(advertiser_id as char) advertiser_id, advertiser_name from deepthink.advertiser_unbind_info) tb1
+        (select cast(advertiser_id as char) advertiser_id, advertiser_name from deepthink.advertiser_unbind_info
+        where 1=1
+        <if test="list != null and list.size > 0">
+            and advertiser_id in
+            <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        ) tb1
         left join
         (select advertiser_id, ifnull(sum(cost_amount),0) as ca from application.media_ad_report_daily where stat_date=#{date} group by advertiser_id) tb2
         on tb1.advertiser_id = tb2.advertiser_id
@@ -192,19 +200,26 @@
         select tb1.advertiser_id, tb2.advertiser_name, tb1.ma_appid as right_app, tb2.ma_appid as error_app,
         tb3.app_name as right_app_name, tb4.app_name as error_app_name,
         tb2.user_id, tb5.nick_name, tb5.phonenumber
-        from (select advertiser_id, ma_appid
-        from (select advertiser_id, ma_appid,row_number() over (partition by advertiser_id order by pay_amount desc) as rn
-        from (select advertiser_id, ma_appid, sum(ifnull(pay_amount,0) + ifnull(iaa_amount,0)+ ifnull(new_users,0)) as pay_amount
-        from application.user_data_report_daily
-        where stat_date &gt;= #{last30Day}
-        and advertiser_id != '-9999'
-        and ma_appid != '-9999'
-        group by advertiser_id, ma_appid
-        )t1
-        )t2 where t2.rn = 1
-        )tb1
+        from
+        (select advertiser_id, ma_appid
+        from (
+            select advertiser_id, ma_appid,row_number() over (partition by advertiser_id order by pay_amount desc) as rn
+            from (
+                select advertiser_id, ma_appid, sum(ifnull(pay_amount,0) + ifnull(iaa_amount,0)+ ifnull(new_users,0)) as pay_amount
+                    from application.user_data_report_daily
+                    where stat_date &gt;= #{last30Day}
+                    and advertiser_id != '-9999'
+                    and ma_appid != '-9999'
+                    group by advertiser_id, ma_appid
+                )t1
+            ) t2 where t2.rn = 1
+        ) tb1
         inner join
-        (select advertiser_id, advertiser_name, ma_appid, user_id from deepthink.advertiser_bind_info) tb2
+        (select advertiser_id, advertiser_name, ma_appid, user_id from deepthink.advertiser_bind_info
+        where advertiser_id not in (select advertiser_id from application.user_data_report_daily
+        where stat_date &gt;= #{last30Day} and advertiser_id!='-9999'
+        group by advertiser_id having count(distinct ma_appid)>1)
+        ) tb2
         on tb1.advertiser_id = tb2.advertiser_id
         left join (select distinct app_id, app_name from hr_playlet.m_mini_app_info) tb3
         on tb1.ma_appid = tb3.app_id

+ 9 - 0
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/IUnbindWarnPushService.java

@@ -1,6 +1,15 @@
 package cn.com.ctop.job.bytedance.data.service;
 
+import java.util.List;
+
 public interface IUnbindWarnPushService {
 
     void send();
+
+    /**
+     *
+     * @param advertiserIds
+     * @param copySend 是否抄送
+     */
+    void send(List<String> advertiserIds, boolean copySend);
 }

+ 9 - 4
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/UnbindWarnPushServiceImpl.java

@@ -34,8 +34,13 @@ public class UnbindWarnPushServiceImpl implements IUnbindWarnPushService {
     @Autowired
     ReportsAdPushMapper reportsPushMapper;
 
+    @Override
+    public void send(){
+        send(null, true);
+    }
 
-    public void send() {
+    @Override
+    public void send(List<String> advertiserIds, boolean copySend) {
         List<JSONObject> users = reportsPushMapper.selectUserList();
         users.forEach(u -> {
             if (u.containsKey("remark") && u.getString("remark") != null && u.getString("remark").length() < 2){
@@ -54,7 +59,7 @@ public class UnbindWarnPushServiceImpl implements IUnbindWarnPushService {
         Long last90DayLong = Long.parseLong(last90Day.substring(0, 10).replaceAll("-", ""));
 
         int unFindCount = 0;
-        List<Map<String, String>> unbindData = reportsPushMapper.unbindData(todayLong, last90DayLong);
+        List<Map<String, String>> unbindData = reportsPushMapper.unbindData(todayLong, last90DayLong, advertiserIds);
 
         List<Unbind> unbinds = new ArrayList<>();
         List<Map<String, String>> unFindList = new ArrayList<>();
@@ -146,8 +151,8 @@ public class UnbindWarnPushServiceImpl implements IUnbindWarnPushService {
             }
         }
 
-        //给指定人员发送汇总
-        if (1==1){
+        //给指定人员抄送
+        if (copySend){
             JSONObject template_variable = new JSONObject();
             template_variable.put("unbindNum", unbindData.size());
             template_variable.put("alarm_time", alarm_time);