Explorar o código

回显添加素材图片url

yangzian %!s(int64=4) %!d(string=hai) anos
pai
achega
4f7ce17d3d

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

@@ -447,7 +447,7 @@ public class marketing {
         //行动号召
         params.put("action_text", strategy.getCreativeCallToAction());
         //是否使用智能优选,true为使用,false为不使用
-        params.put("enable_personal_action", strategy.isCreativeEnablePersonalAction());
+        params.put("enable_personal_action", strategy.getCreativeEnablePersonalAction());
         //卡片标题
         params.put("product_description", strategy.getCreativeProductDescription());
         //推广卖点 长度6-9个字,最多可填10个卖点

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

@@ -9,6 +9,7 @@ import org.jeecg.common.aspect.annotation.Dict;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.Date;
 
 /**
@@ -27,6 +28,7 @@ public class AiBytedanceAdvertiserStrategy{
 	/**账户id*/
 	@Dict(dicCode = "account_id",dictTable = "ctop_user_allocation",dicText = "auth_name")
 	private Long accountId;
+
 	/**组名称*/
 	private String campaignName;
 	/**
@@ -211,6 +213,8 @@ public class AiBytedanceAdvertiserStrategy{
 	private java.math.BigDecimal adRoiGoal;
 	/**广告位置*/
 	private String creativeInventoryType;
+	@TableField(exist = false)
+	private String[] creativeInventoryTypes;
 	/**优选广告位*/
 	private Integer creativeSmartInventory;
 	/**场景广告位*/
@@ -256,7 +260,7 @@ public class AiBytedanceAdvertiserStrategy{
 	/**推广卡片的行动号召*/
 	private String creativeCallToAction;
 	/**是否使用智能优选*/
-	private boolean creativeEnablePersonalAction;
+	private Boolean creativeEnablePersonalAction;
 	/**商品卡片id*/
 	private String creativeProductImageId;
 	//商品卡片md5
@@ -291,10 +295,19 @@ public class AiBytedanceAdvertiserStrategy{
 	private String userId;
 
 	@TableField(exist = false)
-	private String logingUserId;
+	private String loginUserId;
 
 	@TableField(exist = false)
 	private String imageUrl;
 
+	//消耗
+	@TableField(exist = false)
+	private BigDecimal cost;
+	//余额
+	@TableField(exist = false)
+	private BigDecimal validBalance;
+
+
+
 
 }

+ 75 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/entity/RuleDataAccount.java

@@ -0,0 +1,75 @@
+package org.jeecg.modules.bytedance.advertise.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 规则账户清洗数据
+ * @author jeecg-boot
+ * @date   2020-11-16
+ * @version V1.0
+ */
+@Data
+@TableName("ctop_rule_data_account")
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="ctop_rule_data_account对象", description="规则账户清洗数据")
+public class RuleDataAccount {
+
+	/**id*/
+    @ApiModelProperty(value = "id")
+	private Long id;
+	/**账户id*/
+	@Excel(name = "账户id", width = 15)
+    @ApiModelProperty(value = "账户id")
+	private Long accountId;
+	/**账户name*/
+	@Excel(name = "账户id", width = 15)
+	@ApiModelProperty(value = "账户id")
+	private String accountName;
+	/**消耗*/
+	@Excel(name = "消耗", width = 15)
+    @ApiModelProperty(value = "消耗")
+	private BigDecimal cost;
+	/**validBalance*/
+	@Excel(name = "validBalance", width = 15)
+    @ApiModelProperty(value = "validBalance")
+	private BigDecimal validBalance;
+	/**转化数*/
+	@Excel(name = "转化数", width = 15)
+    @ApiModelProperty(value = "转化数")
+	private Long convertNum;
+	/**转化成本*/
+	@Excel(name = "转化成本", width = 15)
+    @ApiModelProperty(value = "转化成本")
+	private BigDecimal convertCost;
+	/**次留数*/
+	@Excel(name = "次留数", width = 15)
+    @ApiModelProperty(value = "次留数")
+	private Long nextDayOpenNum;
+	/**nextDayOpenCost*/
+	@Excel(name = "nextDayOpenCost", width = 15)
+    @ApiModelProperty(value = "nextDayOpenCost")
+	private BigDecimal nextDayOpenCost;
+
+	private BigDecimal nextDayOpenRate;
+
+	/**status*/
+	@Excel(name = "status", width = 15)
+    @ApiModelProperty(value = "status")
+	private Integer status;
+	/**createTime*/
+    @ApiModelProperty(value = "createTime")
+	private Date createTime;
+	/**updateTime*/
+    @ApiModelProperty(value = "updateTime")
+	private Date updateTime;
+}

+ 14 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/mapper/RuleDataAccountMapper.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.bytedance.advertise.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.bytedance.advertise.entity.RuleDataAccount;
+
+/**
+ * 规则账户清洗数据
+ * @author: jeecg-boot
+ * @date:   2020-11-16
+ * @cersion: V1.0
+ */
+public interface RuleDataAccountMapper extends BaseMapper<RuleDataAccount> {
+
+}

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

@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.bytedance.advertise.mapper.RuleDataAccountMapper">
+
+</mapper>

+ 16 - 0
jeecg-boot-bytedance/src/main/java/org/jeecg/modules/bytedance/advertise/service/IRuleDataAccountService.java

@@ -0,0 +1,16 @@
+package org.jeecg.modules.bytedance.advertise.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.bytedance.advertise.entity.RuleDataAccount;
+
+/**
+ * @Description: 规则账户清洗数据
+ * @Author: jeecg-boot
+ * @Date: 2020-11-16
+ * @Version: V1.0
+ */
+public interface IRuleDataAccountService extends IService<RuleDataAccount> {
+
+}

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

@@ -429,6 +429,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
         // 数据入库 string[] 转 string
         //商品卖点
         aiBytedanceAdvertiserStrategy.setCreativeProductSellingPoints(StringUtils.join(aiBytedanceAdvertiserStrategy.getProductSellingPoints(), ","));
+        //广告位置
+        aiBytedanceAdvertiserStrategy.setCreativeInventoryType(StringUtils.join(aiBytedanceAdvertiserStrategy.getCreativeInventoryTypes(), ","));
         //创意标签
         aiBytedanceAdvertiserStrategy.setCreativeAdKeywords(StringUtils.join(aiBytedanceAdvertiserStrategy.getAdKeywords(), ","));
 

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

@@ -0,0 +1,28 @@
+package org.jeecg.modules.bytedance.advertise.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.bytedance.advertise.entity.RuleDataAccount;
+import org.jeecg.modules.bytedance.advertise.mapper.RuleDataAccountMapper;
+import org.jeecg.modules.bytedance.advertise.service.IRuleDataAccountService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 规则账户清洗数据
+ *
+ * @author jeecg-boot
+ * @version V1.0
+ * @date 2020-11-16
+ */
+@Service
+public class RuleDataAccountServiceImpl extends ServiceImpl<RuleDataAccountMapper, RuleDataAccount> implements IRuleDataAccountService {
+
+    @Autowired
+    private RuleDataAccountMapper ruleDataAccountMapper;
+
+
+}

+ 32 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/bytedance/advertise/controller/AiBytedanceAdvertiserStrategyController.java

@@ -10,12 +10,18 @@ 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.RuleDataAccount;
 import org.jeecg.modules.bytedance.advertise.entity.UpdAdStaOrCpaOrBudget;
 import org.jeecg.modules.bytedance.advertise.service.IAiBytedanceAdvertiserStrategyService;
+import org.jeecg.modules.bytedance.advertise.service.IRuleDataAccountService;
 import org.jeecg.modules.bytedance.advertise.vo.AdConvertQueryVo;
 import org.jeecg.modules.bytedance.advertise.vo.AdGroupSearchVo;
 import org.jeecg.modules.bytedance.advertise.vo.PlanSearchVo;
 import org.jeecg.modules.bytedance.common.constant.BytedanceConstant;
+import org.jeecg.modules.bytedance.common.entity.MaterialImageInfo;
+import org.jeecg.modules.bytedance.common.service.IMaterialImageInfoService;
+import org.jeecg.modules.bytedance.common.service.impl.MaterialImageInfoServiceImpl;
+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.*;
@@ -41,6 +47,12 @@ public class AiBytedanceAdvertiserStrategyController {
 	@Autowired
 	private ISysRoleService sysRoleService;
 
+	@Autowired
+	private IRuleDataAccountService ruleDataAccountService;
+
+	@Autowired
+	private IMaterialImageInfoService materialImageInfoService;
+
 
 	/**
 	  * 分页列表查询
@@ -59,13 +71,28 @@ public class AiBytedanceAdvertiserStrategyController {
 		Result<IPage<AiBytedanceAdvertiserStrategy>> result = new Result<>();
 		QueryWrapper<AiBytedanceAdvertiserStrategy> queryWrapper = QueryGenerator.initQueryWrapper(aiBytedanceAdvertiserStrategy, req.getParameterMap());
 		//获取用户角色code
-		String roleCode = sysRoleService.getRoleCodeByUserId(aiBytedanceAdvertiserStrategy.getLogingUserId());
+		String roleCode = sysRoleService.getRoleCodeByUserId(aiBytedanceAdvertiserStrategy.getLoginUserId());
 		if(null != roleCode && !BytedanceConstant.COMMON_ROLE_CODE_ADMIN.equals(roleCode)){
-			queryWrapper.eq("user_id", aiBytedanceAdvertiserStrategy.getLogingUserId());
+			queryWrapper.eq("user_id", aiBytedanceAdvertiserStrategy.getLoginUserId());
 		}
 		Page<AiBytedanceAdvertiserStrategy> page = new Page<AiBytedanceAdvertiserStrategy>(pageNo, pageSize);
 		//查询
 		IPage<AiBytedanceAdvertiserStrategy> pageList = aiBytedanceAdvertiserStrategyService.page(page, queryWrapper);
+		pageList.getRecords().forEach(pojo ->{
+			if (!Check.isNull(pojo.getAccountId())){
+				QueryWrapper<RuleDataAccount> ruleDataAccountQueryWrapper = new QueryWrapper<>();
+				ruleDataAccountQueryWrapper.eq("account_id",pojo.getAccountId());
+				//获取消耗 余额
+				RuleDataAccount ruleDataAccountVo =  ruleDataAccountService.getOne(ruleDataAccountQueryWrapper);
+				//消耗
+				pojo.setCost(ruleDataAccountVo.getCost());
+				//余额
+				pojo.setValidBalance(ruleDataAccountVo.getValidBalance());
+			}
+
+
+		});
+
 		result.setSuccess(true);
 		result.setResult(pageList);
 		return result;
@@ -159,6 +186,9 @@ public class AiBytedanceAdvertiserStrategyController {
 		if(aiBytedanceAdvertiserStrategy==null) {
 			result.error500("未找到对应实体");
 		}else {
+			//素材图片url
+			MaterialImageInfo materialImageInfo = materialImageInfoService.getByCode(aiBytedanceAdvertiserStrategy.getCreativeProductImageCode());
+			aiBytedanceAdvertiserStrategy.setImageUrl(materialImageInfo.getUrl());
 			result.setResult(aiBytedanceAdvertiserStrategy);
 			result.setSuccess(true);
 		}