Parcourir la source

修改出价-修改预算

yangzian il y a 4 ans
Parent
commit
7562742daf
13 fichiers modifiés avec 245 ajouts et 3 suppressions
  1. 1 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/vo/Result.java
  2. 2 3
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/dockapi/marketing.java
  3. 2 0
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/AiBytedanceAdvertiserStrategy.java
  4. 30 0
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/UpdAdStaOrCpaOrBudget.java
  5. 10 0
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/mapper/AiBytedanceAdvertiserStrategyMapper.java
  6. 25 0
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/mapper/xml/AiBytedanceAdvertiserStrategyMapper.xml
  7. 18 0
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/IAiBytedanceAdvertiserStrategyService.java
  8. 74 0
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/impl/AiBytedanceAdvertiserStrategyServiceImpl.java
  9. 14 0
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/common/constant/BytedanceConstant.java
  10. 43 0
      jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/controller/AiBytedanceAdvertiserStrategyController.java
  11. 9 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysRoleMapper.java
  12. 7 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java
  13. 10 0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysRoleServiceImpl.java

+ 1 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/api/vo/Result.java

@@ -118,6 +118,7 @@ public class Result<T> implements Serializable {
 		r.setSuccess(true);
 		r.setCode(CommonConstant.SC_OK_200);
 		r.setResult(data);
+		r.setMessage(msg);
 		return r;
 	}
 

+ 2 - 3
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/dockapi/marketing.java

@@ -576,10 +576,9 @@ public class marketing {
         JSONObject jsonObject = HttpUtils.bytedancePostRequest(token.getAccessToken(),
                 PropertiesUtils.getValue("bytedance_config", "bytedance_v2_ad_update_bid"), params);
         int code = jsonObject.getInteger("code");
-        Map<String, Object> resultMap = new HashMap<>();
         if (code != 0) {
             log.info("修改计划出价接口异常==》accountId:{},message:{}", token.getAccountId(), jsonObject.getString("message"));
-            return Result.error("修改计划出价接口异常");
+            return Result.error("修改计划出价接口异常"+jsonObject.getString("message"));
         }
         return Result.successMsg("修改计划出价成功",jsonObject.getString("data"));
     }
@@ -606,7 +605,7 @@ public class marketing {
         Map<String, Object> resultMap = new HashMap<>();
         if (code != 0) {
             log.info("修改计划预算接口异常==》accountId:{},message:{}", token.getAccountId(), jsonObject.getString("message"));
-            return Result.error("修改计划预算接口异常");
+            return Result.error("修改计划预算接口异常"+jsonObject.getString("message"));
         }
         return Result.successMsg("修改计划预算成功",jsonObject.getString("data"));
     }

+ 2 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/AiBytedanceAdvertiserStrategy.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
+import org.jeecg.common.aspect.annotation.Dict;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -22,6 +23,7 @@ public class AiBytedanceAdvertiserStrategy{
 	@TableId(type = IdType.AUTO)
 	private Long id;
 	/**账户id*/
+	@Dict(dicCode = "account_id",dictTable = "ctop_user_allocation",dicText = "auth_name")
 	private Long accountId;
 	/**组名称*/
 	private String campaignName;

+ 30 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/UpdAdStaOrCpaOrBudget.java

@@ -0,0 +1,30 @@
+package org.jeecg.modules.bytedance.advertise.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Administrator
+ * 2021/4/22
+ **/
+@Data
+public class UpdAdStaOrCpaOrBudget implements Serializable {
+
+    private String id;
+    // 1-修改出价 2-修改预算
+    private String type;
+    //广告主id
+    private String accountId;
+    List<Map<String,Object>> data;
+
+    //private List<UpdPriceVo> data;
+
+
+
+
+
+
+}

+ 10 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/mapper/AiBytedanceAdvertiserStrategyMapper.java

@@ -1,7 +1,9 @@
 package org.jeecg.modules.bytedance.advertise.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import io.lettuce.core.dynamic.annotation.Param;
 import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
+import org.jeecg.modules.bytedance.advertise.entity.UpdAdStaOrCpaOrBudget;
 
 /**
  * 头条智能投放账户配置信息表
@@ -11,4 +13,12 @@ import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrateg
  */
 public interface AiBytedanceAdvertiserStrategyMapper extends BaseMapper<AiBytedanceAdvertiserStrategy> {
 
+
+    Integer updStaById(@Param("id") String id,@Param("state") String state);
+
+    Integer updCpaById(@Param("id") String id,@Param("adCpaBid") String adCpaBid);
+
+    Integer updBudgetById(@Param("id") String id,@Param("budget") String budget
+                                    );
+
 }

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

@@ -2,4 +2,29 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.bytedance.advertise.mapper.AiBytedanceAdvertiserStrategyMapper">
 
+
+    <!--修改 头条 配置信息 状态 -->
+    <update id="updStaById">
+        UPDATE ctop_ai_bytedance_advertiser_strategy
+            SET status = #{state}
+        WHERE
+            id = #{id}
+    </update>
+
+    <!--修改 头条 配置信息 出价  -->
+    <update id="updCpaById">
+        UPDATE ctop_ai_bytedance_advertiser_strategy
+            SET ad_cpa_bid = #{adCpaBid}
+        WHERE
+            id = #{id}
+    </update>
+
+    <!--修改 头条 配置信息 预算 -->
+    <update id="updBudgetById">
+        UPDATE ctop_ai_bytedance_advertiser_strategy
+            SET ad_budget = #{budget}
+        WHERE
+            id = #{id}
+    </update>
+
 </mapper>

+ 18 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/IAiBytedanceAdvertiserStrategyService.java

@@ -1,7 +1,9 @@
 package org.jeecg.modules.bytedance.advertise.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
+import org.jeecg.modules.bytedance.advertise.entity.UpdAdStaOrCpaOrBudget;
 
 /**
  * 头条智能投放账户配置信息表
@@ -12,4 +14,20 @@ import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrateg
 public interface IAiBytedanceAdvertiserStrategyService extends IService<AiBytedanceAdvertiserStrategy> {
     //创建创意创建
     Long createCreative(AiBytedanceAdvertiserStrategy strategy,Integer createType, Long videoCnt);
+
+
+    /**
+     * 头条 - 配置信息 修改 状态
+     * @param
+     * @return
+     */
+    Result updStaById(String id,String state);
+
+    /**
+     * 头条 - 配置信息 修改 出价; 预算;
+     * @param updAdStaOrCpaOrBudget
+     * @return
+     */
+    Result updStaOrCpaOrBudgetById(UpdAdStaOrCpaOrBudget updAdStaOrCpaOrBudget);
+
 }

+ 74 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/impl/AiBytedanceAdvertiserStrategyServiceImpl.java

@@ -2,14 +2,24 @@ package org.jeecg.modules.bytedance.advertise.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
+import org.checkerframework.checker.units.qual.A;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.bytedance.advertise.dockapi.marketing;
 import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
+import org.jeecg.modules.bytedance.advertise.entity.UpdAdStaOrCpaOrBudget;
+import org.jeecg.modules.bytedance.advertise.entity.UpdPriceVo;
 import org.jeecg.modules.bytedance.advertise.mapper.AiBytedanceAdvertiserStrategyMapper;
 import org.jeecg.modules.bytedance.advertise.service.IAiBytedanceAdvertiserStrategyService;
 import org.jeecg.modules.bytedance.common.entity.CtopOauthToken;
 import org.jeecg.modules.bytedance.common.service.ICtopOauthTokenService;
+import org.jeecg.modules.bytedance.common.utils.Check;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 头条智能投放账户配置信息表
  * @author jeecg-boot
@@ -19,8 +29,16 @@ import org.springframework.stereotype.Service;
 @Service
 @Slf4j
 public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiBytedanceAdvertiserStrategyMapper, AiBytedanceAdvertiserStrategy> implements IAiBytedanceAdvertiserStrategyService {
+
     @Autowired
     private ICtopOauthTokenService tokenService;
+
+    @Resource
+    private AiBytedanceAdvertiserStrategyMapper aiBytedanceAdvertiserStrategyMapper;
+
+
+
+
     @Override
     public Long createCreative(AiBytedanceAdvertiserStrategy strategy,Integer createType, Long videoCnt) {
         CtopOauthToken token = tokenService.getOauthTokenByAccountId(strategy.getAccountId()+"");
@@ -38,4 +56,60 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         //3:创建创意
         return videoCnt;
     }
+
+
+    /**
+     *  修改状态 (0开-1关)
+     * @param
+     * @return
+     */
+    public Result updStaById(String id,String state) {
+        aiBytedanceAdvertiserStrategyMapper.updStaById(id,state);
+        return Result.successMsg("状态修改成功---》"+(state.equals("0") ? "开" : "关"), null);
+    }
+
+
+    /**
+     * 头条 - 配置信息 修改 出价; 预算;
+     * @param updAdStaOrCpaOrBudget
+     * @return
+     */
+    public Result updStaOrCpaOrBudgetById(UpdAdStaOrCpaOrBudget updAdStaOrCpaOrBudget) {
+        Result updResult = new Result();
+        CtopOauthToken token = tokenService.getOauthTokenByAccountId(updAdStaOrCpaOrBudget.getAccountId());
+        List<Map<String,Object>> priceList = updAdStaOrCpaOrBudget.getData();
+        //1-修改出价
+        if ("1".equals(updAdStaOrCpaOrBudget.getType())) {
+            // api 更新计划出价
+            updResult = marketing.updatePlanBid(token,updAdStaOrCpaOrBudget.getAccountId(),priceList);
+            if (!"200".equals(updResult.getCode())){
+                return Result.error(updResult.getMessage());
+            }
+            // 修改 出价
+            priceList.forEach(map-> {
+                aiBytedanceAdvertiserStrategyMapper.updCpaById(updAdStaOrCpaOrBudget.getId(),map.get("bid").toString());
+            });
+        }
+        //2-修改预算
+        if ("2".equals(updAdStaOrCpaOrBudget.getType())) {
+            // api 修改计划 预算
+            updResult = marketing.updatePlanBudget(token,updAdStaOrCpaOrBudget.getAccountId(),priceList);
+            if (!"200".equals(updResult.getCode())){
+                return Result.error(updResult.getMessage());
+            }
+            // 修改 预算
+            priceList.forEach(map-> {
+                aiBytedanceAdvertiserStrategyMapper.updBudgetById(updAdStaOrCpaOrBudget.getId(),map.get("budget").toString());
+            });
+        }
+        return Result.successMsg("修改"+("1".equals(updAdStaOrCpaOrBudget.getType()) ? "出价" : "预算")+"成功。", updResult.getResult());
+    }
+
+
+
+
+
+
+
+
 }

+ 14 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/common/constant/BytedanceConstant.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.bytedance.common.constant;
+
+/**
+ * Administrator
+ * 2021/4/22
+ **/
+public class BytedanceConstant {
+
+
+    //角色编码  管理员
+    public static final String COMMON_ROLE_CODE_ADMIN = "admin";
+
+
+}

+ 43 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/controller/AiBytedanceAdvertiserStrategyController.java

@@ -3,18 +3,26 @@ package org.jeecg.modules.bytedance.advertise.controller;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.lettuce.core.dynamic.annotation.Param;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
+import org.jeecg.modules.bytedance.advertise.entity.UpdAdStaOrCpaOrBudget;
 import org.jeecg.modules.bytedance.advertise.service.IAiBytedanceAdvertiserStrategyService;
+import org.jeecg.modules.bytedance.common.constant.BytedanceConstant;
+import org.jeecg.modules.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 头条智能投放账户配置信息表
@@ -30,6 +38,10 @@ public class AiBytedanceAdvertiserStrategyController {
 	@Autowired
 	private IAiBytedanceAdvertiserStrategyService aiBytedanceAdvertiserStrategyService;
 
+	@Autowired
+	private ISysRoleService sysRoleService;
+
+
 	/**
 	  * 分页列表查询
 	 * @param aiBytedanceAdvertiserStrategy
@@ -46,7 +58,15 @@ public class AiBytedanceAdvertiserStrategyController {
 																	  HttpServletRequest req) {
 		Result<IPage<AiBytedanceAdvertiserStrategy>> result = new Result<>();
 		QueryWrapper<AiBytedanceAdvertiserStrategy> queryWrapper = QueryGenerator.initQueryWrapper(aiBytedanceAdvertiserStrategy, req.getParameterMap());
+		//获取登录用户信息
+		LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		//获取用户角色code
+		String roleCode = sysRoleService.getRoleCodeByUserId(loginUser.getId());
+		if(!BytedanceConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)){
+			queryWrapper.eq("user_id", loginUser.getId());
+		}
 		Page<AiBytedanceAdvertiserStrategy> page = new Page<AiBytedanceAdvertiserStrategy>(pageNo, pageSize);
+		//查询
 		IPage<AiBytedanceAdvertiserStrategy> pageList = aiBytedanceAdvertiserStrategyService.page(page, queryWrapper);
 		result.setSuccess(true);
 		result.setResult(pageList);
@@ -147,4 +167,27 @@ public class AiBytedanceAdvertiserStrategyController {
 		}
 		return result;
 	}
+
+
+	@ApiOperation(value="头条智能投放账户配置信息-修改状态(0开-1关)", notes="头条智能投放账户配置信息-修改状态(0开-1关)")
+	@PutMapping(value = "/updStaById")
+	public Result updStaById(@RequestParam("id") String id, @RequestParam("state") String state) {
+		return aiBytedanceAdvertiserStrategyService.updStaById(id,state);
+
+	}
+
+	@ApiOperation(value="头条智能投放账户配置信息-修改出价;预算", notes="头条智能投放账户配置信息-修改出价;预算")
+	@PutMapping(value = "/updStaOrCpaOrBudgetById")
+	public Result updStaOrCpaOrBudgetById(UpdAdStaOrCpaOrBudget updAdStaOrCpaOrBudget) {
+		return aiBytedanceAdvertiserStrategyService.updStaOrCpaOrBudgetById(updAdStaOrCpaOrBudget);
+
+	}
+
+
+
+
+
+
+
+
 }

+ 9 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysRoleMapper.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.system.mapper;
 
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.jeecg.modules.system.entity.SysRole;
 
@@ -34,4 +35,12 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
     @Delete("delete from sys_role_permission where role_id = #{roleId}")
     void deleteRolePermissionRelation(@Param("roleId") String roleId);
 
+
+    /**
+     * 根据userId获取角色code
+     * @param userId
+     * @return
+     */
+    @Select("select c.role_code from sys_user left join sys_user_role b on a.id = b.user_id left join sys_role c on b.role_id = c.id where a.id = #{userId}")
+    String getRoleCodeByUserId(@Param("userId") String userId);
 }

+ 7 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java

@@ -40,4 +40,11 @@ public interface ISysRoleService extends IService<SysRole> {
      */
     public boolean deleteBatchRole(String[] roleids);
 
+    /**
+     * 根据userId获取角色code
+     * @param userId
+     * @return
+     */
+    String getRoleCodeByUserId(String userId);
+
 }

+ 10 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysRoleServiceImpl.java

@@ -90,4 +90,14 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         this.removeByIds(Arrays.asList(roleIds));
         return true;
     }
+
+    /**
+     * 根据userId获取角色code
+     * @param userId
+     * @return
+     */
+    public String getRoleCodeByUserId(String userId){
+        return sysRoleMapper.getRoleCodeByUserId(userId);
+    }
+
 }