Browse Source

新上监控添加每日同步定时任务

zhouzeyu@c-top.com.cn 3 năm trước cách đây
mục cha
commit
72e6bdb4d9

+ 44 - 0
module-job-kuaishou/src/main/java/cn/com/ctop/job/kuaishou/handler/NewMonitorOneDayJob.java

@@ -0,0 +1,44 @@
+package cn.com.ctop.job.kuaishou.handler;
+
+import cn.com.ctop.kuaishou.modules.report.mapper.NewMonitorMapper;
+import cn.com.ctop.kuaishou.modules.report.service.NewMonitorService;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Component
+@Slf4j
+public class NewMonitorOneDayJob {
+
+    @Resource
+    NewMonitorService newMonitorService;
+    @Resource
+    NewMonitorMapper newMonitorMapper;
+    /**
+     * 账户清理
+     *
+     * @param
+     * @return
+     * @throws
+     * @author ZZY
+     */
+    @XxlJob("synchronousMonitorOneDay")
+    public void execute() throws Exception {
+        try {
+            List<Long> kuaiShouallAccountId = newMonitorMapper.getAllAccountId("2");
+            List<Long> touTiaoAccountId = newMonitorMapper.getAllAccountId("1");
+            for (Long aLong : kuaiShouallAccountId) {
+                newMonitorService.synchronousKuaiShouMonitor("1", aLong);
+            }
+            for (Long aLong : touTiaoAccountId) {
+                newMonitorService.synchronousTouTiaoMonitor("1", aLong);
+            }
+        } catch (Exception e) {
+            log.info("清理完成完成");
+        }
+
+    }
+}

+ 6 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/NewMonitorMapper.java

@@ -17,10 +17,16 @@ public interface NewMonitorMapper {
 
     List<Map> getKuaiShouGroup(@Param("date") String date, @Param("accountId") String accountId);
 
+    List<Map> getKuaiShouGroupNow(@Param("date") String date, @Param("accountId") String accountId);
+
     List<Map> getKuaiShouCampaign(@Param("date") String date, @Param("accountId") String accountId);
 
+    List<Map> getKuaiShouCampaignNow(@Param("date") String date, @Param("accountId") String accountId);
+
     List<Map> getTouTiaoCampaign(@Param("date") String date, @Param("accountId") String accountId);
 
+    List<Map> getTouTiaoCampaignNow(@Param("date") String date, @Param("accountId") String accountId);
+
     BigDecimal getGroupCharge(@Param("unitId") String unitId, @Param("afterDate") String afterDate);
 
     BigDecimal getCampaignCharge(@Param("campaignId") String campaignId, @Param("afterDate") String afterDate);

+ 83 - 37
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/NewMonitorMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.com.ctop.kuaishou.modules.report.mapper.NewMonitorMapper">
     <resultMap id="BaseResultMap" type="cn.com.ctop.kuaishou.modules.report.entity.NewMonitorInfo">
-        <id  column="id"  property="user_id" />
+        <id column="id" property="user_id"/>
         <result column="realname" property="user_name"/>
         <result column="leader_id" property="parent_id"/>
         <collection property="children" ofType="cn.com.ctop.kuaishou.modules.report.entity.NewMonitorInfo"
@@ -10,7 +10,8 @@
         </collection>
     </resultMap>
 
-    <select id="getOperator" resultMap="BaseResultMap"  parameterType="String">
+
+    <select id="getOperator" resultMap="BaseResultMap" parameterType="String">
         SELECT id,realname,leader_id
         FROM sys_user
         WHERE leader_id=#{userId};
@@ -20,53 +21,92 @@
         SELECT DISTINCT t.account_id  as 'accountId' from ctop_user_allocation t where  account_status=0 and media_id=#{type}
     </select>
     <select id="getKuaiShouGroup" resultType="Map">
-        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.unit_id as 'unitId',t.group_create_time as 'groupCreatTime',DATE_FORMAT(DATE_ADD(t.group_create_time,INTERVAL 7 DAY),'%Y-%m-%d') as 'afterTime'
-        from ctop_user_allocation t1 LEFT JOIN  ctop_kuaishou_group t on t1.account_id=t.account_id
+        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.unit_id as
+        'unitId',t.group_create_time as 'groupCreatTime',DATE_FORMAT(DATE_ADD(t.group_create_time,INTERVAL 7
+        DAY),'%Y-%m-%d') as 'afterTime'
+        from ctop_user_allocation t1 LEFT JOIN ctop_kuaishou_group t on t1.account_id=t.account_id
         <where>
             and t.account_id=#{accountId}
             <choose>
                 <when test="date!= null and date!=''">
-                    and  t.group_create_time &gt;= DATE_SUB(#{date},INTERVAL 7 DAY)
+                    and t.group_create_time &gt;= DATE_SUB(#{date},INTERVAL 7 DAY)
                 </when>
                 <otherwise>
-                    and  t.group_create_time &gt;= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d')
+                    and t.group_create_time &gt;= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d')
                 </otherwise>
             </choose>
         </where>
     </select>
 
+    <select id="getKuaiShouGroupNow" resultType="Map">
+        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.unit_id as
+        'unitId',t.group_create_time as 'groupCreatTime',DATE_FORMAT(DATE_ADD(t.group_create_time,INTERVAL 7
+        DAY),'%Y-%m-%d') as 'afterTime'
+        from ctop_user_allocation t1 LEFT JOIN ctop_kuaishou_group t on t1.account_id=t.account_id
+        <where>
+            and t.account_id=#{accountId}
+            and t.group_create_time &gt;= #{date}
+        </where>
+    </select>
+
     <select id="getKuaiShouCampaign" resultType="Map">
-        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.campaign_id as 'campaignId',t.put_create_time as 'campaignCreatTime',DATE_FORMAT(DATE_ADD(t.put_create_time,INTERVAL 7 DAY),'%Y-%m-%d') as 'afterTime'
-        from ctop_user_allocation t1 LEFT JOIN  ctop_kuaishou_campaign t on t1.account_id=t.account_id
+        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.campaign_id as
+        'campaignId',t.put_create_time as 'campaignCreatTime',DATE_FORMAT(DATE_ADD(t.put_create_time,INTERVAL 7
+        DAY),'%Y-%m-%d') as 'afterTime'
+        from ctop_user_allocation t1 LEFT JOIN ctop_kuaishou_campaign t on t1.account_id=t.account_id
         <where>
             and t.account_id=#{accountId}
             <choose>
                 <when test="date != null and date !=''">
-                    and  t.put_create_time &gt;= DATE_SUB(#{date},INTERVAL 7 DAY)
+                    and t.put_create_time &gt;= DATE_SUB(#{date},INTERVAL 7 DAY)
                 </when>
                 <otherwise>
-                    and  t.put_create_time &gt;= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d')
+                    and t.put_create_time &gt;= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d')
                 </otherwise>
             </choose>
         </where>
     </select>
 
+    <select id="getKuaiShouCampaignNow" resultType="Map">
+        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.campaign_id as
+        'campaignId',t.put_create_time as 'campaignCreatTime',DATE_FORMAT(DATE_ADD(t.put_create_time,INTERVAL 7
+        DAY),'%Y-%m-%d') as 'afterTime'
+        from ctop_user_allocation t1 LEFT JOIN ctop_kuaishou_campaign t on t1.account_id=t.account_id
+        <where>
+            and t.account_id=#{accountId}
+            and t.put_create_time &gt;=#{date}
+        </where>
+    </select>
+
     <select id="getTouTiaoCampaign" resultType="Map">
-        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.id as 'campaignId',t.ad_create_time as 'campaignCreatTime',DATE_FORMAT(DATE_ADD(t.ad_create_time,INTERVAL 7 DAY),'%Y-%m-%d') as 'afterTime'
-        from ctop_user_allocation t1 LEFT JOIN  ctop_bytedance_advertise_plan t on t1.account_id=t.account_id
+        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.id as
+        'campaignId',t.ad_create_time as 'campaignCreatTime',DATE_FORMAT(DATE_ADD(t.ad_create_time,INTERVAL 7
+        DAY),'%Y-%m-%d') as 'afterTime'
+        from ctop_user_allocation t1 LEFT JOIN ctop_bytedance_advertise_plan t on t1.account_id=t.account_id
         <where>
             and t.account_id=#{accountId}
             <choose>
                 <when test="date != null and date !=''">
-                    and  t.ad_create_time &gt;= DATE_SUB(#{date},INTERVAL 7 DAY)
+                    and t.ad_create_time &gt;= DATE_SUB(#{date},INTERVAL 7 DAY)
                 </when>
                 <otherwise>
-                    and  t.ad_create_time &gt;= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d')
+                    and t.ad_create_time &gt;= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d')
                 </otherwise>
             </choose>
         </where>
     </select>
 
+    <select id="getTouTiaoCampaignNow" resultType="Map">
+        SELECT t1.account_id as 'accountId',t1.auth_name as 'accountName',t1.user_name as 'userName',t.id as
+        'campaignId',t.ad_create_time as 'campaignCreatTime',DATE_FORMAT(DATE_ADD(t.ad_create_time,INTERVAL 7
+        DAY),'%Y-%m-%d') as 'afterTime'
+        from ctop_user_allocation t1 LEFT JOIN ctop_bytedance_advertise_plan t on t1.account_id=t.account_id
+        <where>
+            and t.account_id=#{accountId}
+            and t.ad_create_time &gt;= #{date}
+        </where>
+    </select>
+
     <select id="getGroupCharge" resultType="java.math.BigDecimal">
 
         select sum(charge) from ctop_kuaishou_report_daily_group t where t.stat_date &lt; #{afterDate} and t.unit_id=#{unitId}
@@ -92,25 +132,27 @@
         (#{accountId},#{accountName},#{operatingName},#{campaignId},#{createTime},#{projectType},#{effective})
     </insert>
 
-    <select id="getMonitorGroupByUnitId" resultType="String" >
+    <select id="getMonitorGroupByUnitId" resultType="String">
         select  t.effective from ctop_new_monitor_group t where t.unit_id=#{unitId}
     </select>
 
-    <select id="getMonitorPlanByCampaignId" resultType="String" >
+    <select id="getMonitorPlanByCampaignId" resultType="String">
         select  t.effective from ctop_new_monitor_campaign t where t.campaign_id=#{campaignId}
     </select>
 
-    <update id="updateMonitorGroupByUnitId" >
+    <update id="updateMonitorGroupByUnitId">
         update ctop_new_monitor_group  t set t.effective=#{effective} where  t.unit_id=#{unitId}
     </update>
 
-    <update id="updateMonitorPlanByCampaignId" >
+    <update id="updateMonitorPlanByCampaignId">
         update ctop_new_monitor_campaign  t set t.effective=#{effective} where  t.campaign_id=#{campaignId}
     </update>
 
     <select id="getKuaiShouGroupMessage" resultType="com.alibaba.fastjson.JSONObject">
-        select account_id as 'accountId',account_name as 'authName',MAX(create_time) as 'maxCreateTime',COUNT(IF(effective ='1', TRUE, NULL))  as 'valid',count(effective) as 'new',operating_name as 'userName','' as 'projectName'
-        from ctop_new_monitor_group  where ( create_time between #{startDate}  and #{endDate})
+        select account_id as 'accountId',account_name as 'authName',MAX(create_time) as
+        'maxCreateTime',COUNT(IF(effective ='1', TRUE, NULL)) as 'valid',count(effective) as 'new',operating_name as
+        'userName','' as 'projectName'
+        from ctop_new_monitor_group where ( create_time between #{startDate} and #{endDate})
         and account_id in
         <foreach item="item" collection="array" separator="," open="(" close=")" index="">
             #{item}
@@ -121,8 +163,11 @@
 
 
     <select id="getPlanMessage" resultType="com.alibaba.fastjson.JSONObject">
-        select account_id as 'accountId',account_name as 'authName',MAX(create_time) as 'maxCreateTime',COUNT(IF(effective ='1', TRUE, NULL))  as 'valid',count(effective) as 'new',operating_name as 'userName','' as 'projectName'
-        from ctop_new_monitor_campaign  where ( create_time between #{startDate}  and #{endDate}) and project_type=#{project}
+        select account_id as 'accountId',account_name as 'authName',MAX(create_time) as
+        'maxCreateTime',COUNT(IF(effective ='1', TRUE, NULL)) as 'valid',count(effective) as 'new',operating_name as
+        'userName','' as 'projectName'
+        from ctop_new_monitor_campaign where ( create_time between #{startDate} and #{endDate}) and
+        project_type=#{project}
         and account_id in
         <foreach item="item" collection="array" separator="," open="(" close=")" index="">
             #{item}
@@ -132,8 +177,9 @@
     </select>
 
     <select id="getKuaiShouGroupSum" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT COUNT(IF(t.effective ='1', TRUE, NULL)) as 'valid',COUNT(t.effective)  as 'new' from ctop_new_monitor_group t
-        where  create_time between #{startDate}  and #{endDate}
+        SELECT COUNT(IF(t.effective ='1', TRUE, NULL)) as 'valid',COUNT(t.effective) as 'new' from
+        ctop_new_monitor_group t
+        where create_time between #{startDate} and #{endDate}
         and t.account_id in
         <foreach item="item" collection="array" separator="," open="(" close=")" index="">
             #{item}
@@ -141,15 +187,16 @@
     </select>
 
     <select id="getPlanSum" resultType="com.alibaba.fastjson.JSONObject">
-        SELECT COUNT(IF(t.effective ='1', TRUE, NULL)) as 'valid',COUNT(t.effective)  as 'new' from ctop_new_monitor_campaign t
-        where  (create_time between #{startDate}  and #{endDate}) and project_type=#{project}
+        SELECT COUNT(IF(t.effective ='1', TRUE, NULL)) as 'valid',COUNT(t.effective) as 'new' from
+        ctop_new_monitor_campaign t
+        where (create_time between #{startDate} and #{endDate}) and project_type=#{project}
         and t.account_id in
         <foreach item="item" collection="array" separator="," open="(" close=")" index="">
             #{item}
         </foreach>
     </select>
 
-    <select id="getKuaiShouGroupMessageGroup" resultType="com.alibaba.fastjson.JSONObject" >
+    <select id="getKuaiShouGroupMessageGroup" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
         <choose>
             <when test='group=="1"'>
@@ -159,23 +206,23 @@
                 DATE_FORMAT(t.create_time,'%Y-%m-%d') as 'statDate',
             </otherwise>
         </choose>
-        COUNT(t.effective) as 'new',COUNT(IF(t.effective ='1', TRUE, NULL))  as 'valid' from ctop_new_monitor_group t
-        where  (create_time between #{startDate}  and #{endDate}) and t.account_id in
+        COUNT(t.effective) as 'new',COUNT(IF(t.effective ='1', TRUE, NULL)) as 'valid' from ctop_new_monitor_group t
+        where (create_time between #{startDate} and #{endDate}) and t.account_id in
         <foreach item="item" collection="array" separator="," open="(" close=")" index="">
             #{item}
         </foreach>
         <choose>
             <when test='group=="1"'>
-                GROUP BY  DATE_FORMAT(t.create_time,'%Y-%m')
+                GROUP BY DATE_FORMAT(t.create_time,'%Y-%m')
             </when>
             <otherwise>
-                GROUP BY  DATE_FORMAT(t.create_time,'%Y-%m-%d')
+                GROUP BY DATE_FORMAT(t.create_time,'%Y-%m-%d')
             </otherwise>
         </choose>
         order by t.create_time asc
     </select>
 
-    <select id="getPlanMessageGroup" resultType="com.alibaba.fastjson.JSONObject" >
+    <select id="getPlanMessageGroup" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
         <choose>
             <when test='group=="1"'>
@@ -185,22 +232,21 @@
                 DATE_FORMAT(t.create_time,'%Y-%m-%d') as 'statDate',
             </otherwise>
         </choose>
-        COUNT(t.effective) as 'new',COUNT(IF(t.effective ='1', TRUE, NULL))  as 'valid' from ctop_new_monitor_campaign t
-        where project_type=#{project} and  (create_time between #{startDate}  and #{endDate}) and t.account_id in
+        COUNT(t.effective) as 'new',COUNT(IF(t.effective ='1', TRUE, NULL)) as 'valid' from ctop_new_monitor_campaign t
+        where project_type=#{project} and (create_time between #{startDate} and #{endDate}) and t.account_id in
         <foreach item="item" collection="array" separator="," open="(" close=")" index="">
             #{item}
         </foreach>
         <choose>
             <when test='group=="1"'>
-                GROUP BY  DATE_FORMAT(t.create_time,'%Y-%m')
+                GROUP BY DATE_FORMAT(t.create_time,'%Y-%m')
             </when>
             <otherwise>
-                GROUP BY  DATE_FORMAT(t.create_time,'%Y-%m-%d')
+                GROUP BY DATE_FORMAT(t.create_time,'%Y-%m-%d')
             </otherwise>
         </choose>
         order by t.create_time asc
     </select>
 
 
-
 </mapper>

+ 10 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/NewMonitorServiceImpl.java

@@ -26,6 +26,7 @@ public class NewMonitorServiceImpl implements NewMonitorService {
     @Resource
     NewMonitorMapper newMonitorMapper;
 
+
     /**
      * 同步快手新上监控数据
      *
@@ -45,6 +46,9 @@ public class NewMonitorServiceImpl implements NewMonitorService {
             if (type.equals("0")) {
                 //查询创建不满7天的快手组信息
                 kuaiShouGroup = newMonitorMapper.getKuaiShouGroup(sdf.format(new Date()), String.valueOf(accId));
+            } else if (type.equals("1")) {
+                //查询当日快手组信息
+                kuaiShouGroup = newMonitorMapper.getKuaiShouGroupNow(sdf.format(new Date()), String.valueOf(accId));
             } else {
                 //查询全量快手组信息
                 kuaiShouGroup = newMonitorMapper.getKuaiShouGroup(null, String.valueOf(accId));
@@ -89,6 +93,9 @@ public class NewMonitorServiceImpl implements NewMonitorService {
             if (type.equals("0")) {
                 //查询创建不满7天的快手广告计划
                 kuaiShouCampaign = newMonitorMapper.getKuaiShouCampaign(sdf.format(new Date()), String.valueOf(accId));
+            } else if (type.equals("1")) {
+                //查询当日快手广告计划
+                kuaiShouCampaign = newMonitorMapper.getKuaiShouCampaignNow(sdf.format(new Date()), String.valueOf(accId));
             } else {
                 //查询全量快手广告计划
                 kuaiShouCampaign = newMonitorMapper.getKuaiShouCampaign(null, String.valueOf(accId));
@@ -151,6 +158,9 @@ public class NewMonitorServiceImpl implements NewMonitorService {
             if (type.equals("0")) {
                 //查询创建不满7天的头条广告计划
                 TouTiaoCampaign = newMonitorMapper.getTouTiaoCampaign(sdf.format(new Date()), String.valueOf(accId));
+            } else if (type.equals("1")) {
+                //查询当日头条广告计划
+                TouTiaoCampaign = newMonitorMapper.getTouTiaoCampaignNow(sdf.format(new Date()), String.valueOf(accId));
             } else {
                 //查询全量头条广告计划
                 TouTiaoCampaign = newMonitorMapper.getTouTiaoCampaign(null, String.valueOf(accId));