Jelajahi Sumber

头条第三方监测链接预警

yangzian 3 tahun lalu
induk
melakukan
5f204a29c4

+ 22 - 1
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/mapper/MonitorBytedanceActionTrackUrlMapper.java

@@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.bytedance.advertise.vo.MonitorBytedanceAdVo;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * 头条 监测预警
@@ -19,7 +20,7 @@ public interface MonitorBytedanceActionTrackUrlMapper {
      * 获取头条自动配置中的账户 以及 点击监测链接
      * @return
      */
-    List<MonitorBytedanceAdVo> getBytedancStrategyAcctionId();
+    List<MonitorBytedanceAdVo> getBytedancStrategyAcctionId(Long accountId);
 
     /**
      * 根据账户id 查询该账户下的计划中的 点击监测链接
@@ -36,4 +37,24 @@ public interface MonitorBytedanceActionTrackUrlMapper {
      */
     JSONObject getWChatIdByUserId(@Param("userId") String responsibleId);
 
+
+    /**
+     * 新增第三方监测连接
+     * @param monitorBytedanceAdVo
+     */
+    void insertAccountTrackUrl(MonitorBytedanceAdVo monitorBytedanceAdVo);
+
+    /**
+     * 查询 监测链接
+     * @param
+     * @return
+     */
+    List<MonitorBytedanceAdVo> getAccountActionTrackUrl(@Param("accountId") String accountId,@Param("warningFlag") String warningFlag,@Param("operateUserIds") Set<String> operateUserIds);
+
+    /**
+     * 修改 第三方监测链接
+     * @param monitorBytedanceAdVo
+     */
+    void updAccountActionTrackUrl(MonitorBytedanceAdVo monitorBytedanceAdVo);
+
 }

+ 75 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/mapper/xml/MonitorBytedanceActionTrackUrlMapper.xml

@@ -7,6 +7,7 @@
     <select id="getBytedancStrategyAcctionId" resultType="org.jeecg.modules.bytedance.advertise.vo.MonitorBytedanceAdVo">
         SELECT
             stra.account_id accountId,
+            stra.ad_convert_id convertId,
             stra.creative_action_track_url actionTrackUrl,
             ua.auth_name accountName,
             ua.user_id operateUserid,
@@ -16,6 +17,10 @@
                 LEFT JOIN ctop_user_allocation ua on stra.account_id = ua.account_id
         WHERE
             stra.status = 0
+        <if test="accountId !=null and accountId != ''">
+            AND stra.account_id = #{accountId}
+        </if>
+        GROUP BY stra.account_id
         ORDER BY
             stra.create_time DESC
     </select>
@@ -45,4 +50,74 @@
 
     </select>
 
+
+
+    <!-- 新增第三方监测连接 -->
+    <insert id="insertAccountTrackUrl">
+        INSERT INTO ctop_ai_bytedance_advertiser_strategy_action_track_url (
+            `account_id`,
+            `action_track_url`,
+            `warning_flag`,
+            `create_user_id`,
+            `create_time`
+        )
+        VALUES
+        ( #{accountId}, #{actionTrackUrl}, 1, #{createUserId}, NOW());
+    </insert>
+
+
+
+
+
+    <!-- 查询 监测链接 -->
+    <select id="getAccountActionTrackUrl" resultType="org.jeecg.modules.bytedance.advertise.vo.MonitorBytedanceAdVo">
+        SELECT
+        u.account_id,
+        u.action_track_url,
+        u.warning_flag,
+        u.create_user_id,
+        u.create_time,
+        u.update_time,
+        (SELECT p.project_name from ctop_project p where p.id = a.project_id) project_name,
+        a.auth_name as accountName,
+        a.user_id as operateUserid,
+        a.user_name as operateUserName
+        FROM
+        ctop_ai_bytedance_advertiser_strategy_action_track_url u
+        LEFT JOIN ctop_user_allocation a on u.account_id = a.account_id
+        <where>
+              <if test="accountId !=null and accountId != ''">
+                  AND  u.account_id = #{accountId}
+              </if>
+              <if test="warningFlag !=null and warningFlag != '0'.toString()">
+                  AND  u.warning_flag = #{warningFlag}
+              </if>
+              <if test="operateUserIds != null and operateUserIds.size > 0">
+                  AND  a.user_id in
+                  <foreach item="userId" index="index" collection="operateUserIds" open="(" separator="," close=")">
+                      #{userId}
+                  </foreach>
+              </if>
+        </where>
+    </select>
+
+
+    <!-- 修改 第三方监测链接 -->
+    <update id="updAccountActionTrackUrl">
+        UPDATE ctop_ai_bytedance_advertiser_strategy_action_track_url
+        SET
+        <if test="actionTrackUrl != null and actionTrackUrl !=''">
+            action_track_url =#{actionTrackUrl},
+        </if>
+        <if test="warningFlag != null and warningFlag !=''">
+            warning_flag =#{warningFlag},
+        </if>
+        <if test="createUserId != null and createUserId !=''">
+            create_user_id =#{createUserId},
+        </if>
+            update_time = NOW()
+        WHERE account_id = #{accountId};
+    </update>
+
+
 </mapper>

+ 10 - 1
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/IMonitorBytedanceService.java

@@ -1,9 +1,12 @@
 package org.jeecg.modules.bytedance.advertise.service;
 
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.bytedance.advertise.vo.MonitorBytedanceAdVo;
+
+import java.util.Set;
 
 /**
- * @Description: 规则账户清洗数据
+ * @Description: 头条监测连接预警
  * @Author: jeecg-boot
  * @Date: 2020-11-16
  * @Version: V1.0
@@ -11,5 +14,11 @@ import org.jeecg.common.api.vo.Result;
 public interface IMonitorBytedanceService{
 
 
+    Result insertAccountTrackUrl(MonitorBytedanceAdVo monitorBytedanceAdVo);
+
     Result monitorBytedanceActionTrackUrl();
+
+    Result updAccountActionTrackUrl(MonitorBytedanceAdVo monitorBytedanceAdVo);
+
+    Result selectAccountActionTrackUrlList(String accountId, String warningFlag, Set<String> operatorUserIds, Integer pageNum, Integer pageSize);
 }

+ 132 - 1
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/impl/MonitorBytedanceServiceImpl.java

@@ -1,11 +1,15 @@
 package org.jeecg.modules.bytedance.advertise.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.bytedance.advertise.mapper.MonitorBytedanceActionTrackUrlMapper;
+import org.jeecg.modules.bytedance.advertise.service.IAiBytedanceAdvertiserStrategyService;
 import org.jeecg.modules.bytedance.advertise.service.IMonitorBytedanceService;
 import org.jeecg.modules.bytedance.advertise.vo.MonitorBytedanceAdVo;
+import org.jeecg.modules.bytedance.common.service.IUserAllocationService;
 import org.jeecg.modules.bytedance.common.utils.Check;
 import org.jeecg.modules.bytedance.common.utils.CorpWexinUtils;
 import org.springframework.stereotype.Service;
@@ -13,6 +17,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.text.MessageFormat;
 import java.util.List;
+import java.util.Set;
 
 /**
  * 规则账户清洗数据
@@ -27,8 +32,132 @@ public class MonitorBytedanceServiceImpl implements IMonitorBytedanceService {
     private MonitorBytedanceActionTrackUrlMapper monitorBytedanceActionTrackUrlMapper;
 
     @Resource
+    private IAiBytedanceAdvertiserStrategyService aiBytedanceAdvertiserStrategyService;
+
+    @Resource
+    private IUserAllocationService userAllocationService;
+
+
+
+    @Resource
     private CorpWexinUtils corpWexinUtils;
 
+
+    /**
+     *
+     * @description:新增 第三方监测连接
+     *
+     * @param monitorBytedanceAdVo
+     * @return: org.jeecg.common.api.vo.Result
+     * @author: zianY
+     * @time: 2022/1/11
+     */
+    public Result insertAccountTrackUrl(MonitorBytedanceAdVo monitorBytedanceAdVo){
+        //账户 查询 第三方监测链接
+        List<MonitorBytedanceAdVo> trackUrl = monitorBytedanceActionTrackUrlMapper.getAccountActionTrackUrl(String.valueOf(monitorBytedanceAdVo.getAccountId()), null,null);
+        if (!Check.isNull(trackUrl)){
+            return Result.errorMsg("账户已存在第三方监测链接,请重新编辑。");
+        }
+        //查询账户配置中的 转化id
+        List<MonitorBytedanceAdVo> accountList = monitorBytedanceActionTrackUrlMapper.getBytedancStrategyAcctionId(monitorBytedanceAdVo.getAccountId());
+        if (!Check.isNull(accountList)){
+            // 账户id  和 转化id 查询 第三方监测链接
+            Result resultConvert = aiBytedanceAdvertiserStrategyService.readToolConvertInfo(Long.toString(accountList.get(0).getAccountId()),accountList.get(0).getConvertId());
+            if (!resultConvert.isSuccess()){
+                return  Result.errorMsg(resultConvert.getMessage());
+            }
+            JSONObject jsonObject = (JSONObject) JSONObject.toJSON(resultConvert.getResult());
+            String action_track_url = jsonObject.getString("action_track_url");
+            if (!StringUtils.equals(action_track_url,monitorBytedanceAdVo.getActionTrackUrl())){
+                return Result.errorMsg("输入的第三方监测链接与账户下转化目标所属的第三方监测链接不一致,请重新输入。");
+            }
+        }
+        //新增 第三方监测链接
+        monitorBytedanceActionTrackUrlMapper.insertAccountTrackUrl(monitorBytedanceAdVo);
+        return Result.successMsg("成功。",null);
+    }
+
+
+    /**
+     *
+     * @description: 修改 第三方监测链接
+     *
+     * @param monitorBytedanceAdVo
+     * @return: org.jeecg.common.api.vo.Result
+     * @author: zianY
+     * @time: 2022/1/11
+     */
+    @Override
+    public Result updAccountActionTrackUrl(MonitorBytedanceAdVo monitorBytedanceAdVo) {
+
+        //查询账户配置中的 转化id
+        List<MonitorBytedanceAdVo> accountList = monitorBytedanceActionTrackUrlMapper.getBytedancStrategyAcctionId(monitorBytedanceAdVo.getAccountId());
+        if (!Check.isNull(accountList)){
+            // 账户id  和 转化id 查询 第三方监测链接
+            Result resultConvert = aiBytedanceAdvertiserStrategyService.readToolConvertInfo(Long.toString(accountList.get(0).getAccountId()),accountList.get(0).getConvertId());
+            if (!resultConvert.isSuccess()){
+                return  Result.errorMsg(resultConvert.getMessage());
+            }
+            JSONObject jsonObject = (JSONObject) JSONObject.toJSON(resultConvert.getResult());
+            String action_track_url = jsonObject.getString("action_track_url");
+            if (!StringUtils.equals(action_track_url,monitorBytedanceAdVo.getActionTrackUrl())){
+                return Result.errorMsg("输入的第三方监测链接与账户下转化目标所属的第三方监测链接不一致,请重新输入。");
+            }
+        }
+        monitorBytedanceActionTrackUrlMapper.updAccountActionTrackUrl(monitorBytedanceAdVo);
+        return Result.successMsg("修改成功。", null);
+    }
+
+    /**
+     *
+     * @description: 监测预警-查询
+     *
+     * @param accountId
+     * @param warningFlag
+     * @param operatorUserIds
+     * @param pageNum
+     * @param pageSize
+     * @return: org.jeecg.common.api.vo.Result
+     * @author: zianY
+     * @time: 2022/1/11
+     */
+    @Override
+    public Result selectAccountActionTrackUrlList(String accountId, String warningFlag, Set<String> operatorUserIds,Integer pageNum,Integer pageSize) {
+
+        PageHelper.startPage(pageNum,pageSize);
+        List<MonitorBytedanceAdVo> list = monitorBytedanceActionTrackUrlMapper.getAccountActionTrackUrl(accountId,warningFlag,operatorUserIds);
+        PageInfo<MonitorBytedanceAdVo> pageInfo = new PageInfo<MonitorBytedanceAdVo>(list);
+        return Result.successMsg("查询成功",pageInfo);
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
     /**
      * @description: 监测预警-点击监测链接
      * @param
@@ -38,7 +167,7 @@ public class MonitorBytedanceServiceImpl implements IMonitorBytedanceService {
      */
     public Result monitorBytedanceActionTrackUrl(){
         //查询 头条自动投放配置 中的账户 和 点击监测链接
-        List<MonitorBytedanceAdVo> accountList = monitorBytedanceActionTrackUrlMapper.getBytedancStrategyAcctionId();
+        List<MonitorBytedanceAdVo> accountList = monitorBytedanceActionTrackUrlMapper.getBytedancStrategyAcctionId(null);
         accountList.forEach(accountInfo ->{
             //根据账户 查询头条计划中的 点击监测链接
             List<MonitorBytedanceAdVo> actionTrackUrlList = monitorBytedanceActionTrackUrlMapper.getBytedancPlanActionTrackUrl(accountInfo.getAccountId());
@@ -55,6 +184,8 @@ public class MonitorBytedanceServiceImpl implements IMonitorBytedanceService {
         });
         return Result.successMsg("成功。",null);
     }
+
+
     /**
      * 发送 点击监测链接 预警消息
      */

+ 7 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/vo/MonitorBytedanceAdVo.java

@@ -12,10 +12,17 @@ import java.io.Serializable;
 public class MonitorBytedanceAdVo implements Serializable {
     //账户id
     private long accountId;
+    //转化id
+    private String convertId;
     //点击监测链接
     private String actionTrackUrl;
+    //是否开启监测链接预警 1-开启 2-不开启'
+    private int warningFlag;
+    //创建人
+    private String createUserId;
     //账户名称
     private String accountName;
+    private String projectName;
     //运营人员id
     private String operateUserid;
     //运营人员名称

+ 54 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/bytedance/advertise/controller/BytedancePlanJobController.java

@@ -2,16 +2,24 @@ package org.jeecg.modules.bytedance.advertise.controller;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.bytedance.advertise.service.IMonitorBytedanceService;
+import org.jeecg.modules.bytedance.advertise.vo.MonitorBytedanceAdVo;
+import org.jeecg.modules.bytedance.common.constant.BytedanceConstant;
+import org.jeecg.modules.bytedance.common.service.IUserAllocationService;
+import org.jeecg.modules.bytedance.common.utils.Check;
+import org.jeecg.modules.system.service.ISysRoleService;
 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 javax.annotation.Resource;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
- * 头条定时任务
+ * 头条定时任务-监测连接预警
  * @author zian Y
  * @date   2021-12-28
  * @version V1.0
@@ -25,6 +33,11 @@ public class BytedancePlanJobController {
 	@Autowired
 	private IMonitorBytedanceService monitorBytedanceService;
 
+	@Resource
+	private IUserAllocationService userAllocationService;
+
+	@Autowired
+	private ISysRoleService sysRoleService;;
 
 	@ApiOperation(value = "监测预警-点击监测链接", notes = "监测预警-点击监测链接")
 	@GetMapping(value = "/monitorBytedanceActionTrackUrl")
@@ -33,5 +46,42 @@ public class BytedancePlanJobController {
 	}
 
 
+	@ApiOperation(value = "监测预警-新增", notes = "监测预警-新增")
+	@PostMapping(value = "/insertAccountTrackUrl")
+	public Result insertAccountTrackUrl(MonitorBytedanceAdVo monitorBytedanceAdVo) {
+		return monitorBytedanceService.insertAccountTrackUrl(monitorBytedanceAdVo);
+	}
+
+	@ApiOperation(value = "监测预警-修改", notes = "监测预警-修改")
+	@PostMapping(value = "/updAccountActionTrackUrl")
+	public Result updAccountActionTrackUrl(MonitorBytedanceAdVo monitorBytedanceAdVo) {
+		return monitorBytedanceService.updAccountActionTrackUrl(monitorBytedanceAdVo);
+	}
+
+
+	@ApiOperation(value = "监测预警-查询", notes = "监测预警-查询")
+	@GetMapping(value = "/selectAccountActionTrackUrlList")
+	public Result selectAccountActionTrackUrlList(
+			@ApiParam("用户id") @RequestParam(value = "userId") String userId,
+			@ApiParam("账户id") @RequestParam(value = "accountId",required = false) String accountId,
+			@ApiParam("是否开启监测链接预警 1-开启 2-不开启") @RequestParam(value = "warningFlag",required = false) String warningFlag,
+			@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,
+			@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize) {
+		//获取用户角色code
+		String roleCode = sysRoleService.getRoleCodeByUserId(userId);
+		if (Check.isNull(roleCode)){
+			return Result.errorMsg("无法查询到该用户角色信息。");
+		}
+		Set<String> operatorUserIds = new HashSet<>();
+		if(!BytedanceConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)){
+			//查询所有包含自己的下级
+			operatorUserIds = userAllocationService.recursiveQuerySubordinate(userId);
+		}
+		return monitorBytedanceService.selectAccountActionTrackUrlList(accountId,warningFlag,operatorUserIds,pageNum,pageSize);
+
+
+	}
+
+
 
 }