pudongliang 4 месяцев назад
Родитель
Сommit
3f512cf29f
31 измененных файлов с 70 добавлено и 11 удалено
  1. 1 1
      portal/dist/assets/accountGroup-B-ANCzZP.js
  2. 1 1
      portal/dist/assets/adPlanConf-4lCV7fO_.js
  3. 1 1
      portal/dist/assets/auth-Gu-V_Nzc.js
  4. 1 1
      portal/dist/assets/conversion-3s92Ajx3.js
  5. 0 0
      portal/dist/assets/detail-DWz398ai.js
  6. 1 1
      portal/dist/assets/drama-CQYy29sQ.js
  7. 0 0
      portal/dist/assets/index-By2MTcoc.js
  8. 0 0
      portal/dist/assets/index-C4zdh1MB.js
  9. 1 1
      portal/dist/assets/index-CQyQCG_b.js
  10. 0 0
      portal/dist/assets/index-CRSebj36.js
  11. 0 0
      portal/dist/assets/index-CrK45iSX.js
  12. 0 0
      portal/dist/assets/index-CtYWXGHH.js
  13. 0 0
      portal/dist/assets/index-DMUbgw6p.js
  14. 0 0
      portal/dist/assets/index-DiFdCBIF.js
  15. 0 0
      portal/dist/assets/index-DnCn4aIS.js
  16. 0 0
      portal/dist/assets/index-Dnxok0w7.js
  17. 0 0
      portal/dist/assets/index-HDlDLBWp.js
  18. 0 0
      portal/dist/assets/index-Z5gPEppn.js
  19. 0 0
      portal/dist/assets/index-bsRRhJDA.js
  20. 1 1
      portal/dist/assets/ossFile-D7DM59st.js
  21. 0 0
      portal/dist/assets/request--HXk_9Id.js
  22. 1 1
      portal/dist/assets/user-Bm-0GMf4.js
  23. 1 1
      portal/dist/index.html
  24. 24 0
      portal/src/views/ad-plan-conf/index.vue
  25. 7 0
      src/main/java/com/moka/gdtauto/controller/AdPlanConfController.java
  26. 5 0
      src/main/java/com/moka/gdtauto/controller/vo/CreateAdPlanConfRequest.java
  27. 5 0
      src/main/java/com/moka/gdtauto/controller/vo/UpdateAdPlanConfRequest.java
  28. 5 0
      src/main/java/com/moka/gdtauto/entity/AdPlan.java
  29. 6 0
      src/main/java/com/moka/gdtauto/entity/AdPlanConf.java
  30. 3 1
      src/main/java/com/moka/gdtauto/service/impl/AdPlanConfServiceImpl.java
  31. 6 1
      src/main/java/com/moka/gdtauto/util/AdgroupsAddReqPool.java

+ 1 - 1
portal/dist/assets/accountGroup-BeYNEMzT.js → portal/dist/assets/accountGroup-B-ANCzZP.js

@@ -1 +1 @@
-import{r as u}from"./request-tl58KW-y.js";function c(t){return u({url:"/api/account-group/create",method:"post",data:t})}function e(t){return u({url:"/api/account-group/update",method:"post",data:t})}function n(t){return u({url:`/api/account-group/${t}`,method:"delete"})}function a(t=1,o=10){return u({url:"/api/account-group/list",method:"get",params:{pageNum:t,pageSize:o}})}function p(){return u({url:"/api/account-group/all",method:"get"})}function i(t){return u({url:`/api/account-group/${t}/accounts`,method:"get"})}export{i as a,p as b,c,n as d,a as g,e as u};
+import{r as u}from"./request--HXk_9Id.js";function c(t){return u({url:"/api/account-group/create",method:"post",data:t})}function e(t){return u({url:"/api/account-group/update",method:"post",data:t})}function n(t){return u({url:`/api/account-group/${t}`,method:"delete"})}function a(t=1,o=10){return u({url:"/api/account-group/list",method:"get",params:{pageNum:t,pageSize:o}})}function p(){return u({url:"/api/account-group/all",method:"get"})}function i(t){return u({url:`/api/account-group/${t}/accounts`,method:"get"})}export{i as a,p as b,c,n as d,a as g,e as u};

+ 1 - 1
portal/dist/assets/adPlanConf-BRBjuefQ.js → portal/dist/assets/adPlanConf-4lCV7fO_.js

@@ -1 +1 @@
-import{r as a}from"./request-tl58KW-y.js";function r(n){return a({url:"/api/ad-plan-conf/reCreate",method:"post",data:n})}function o(n){return a({url:"/api/ad-plan-conf/generate-plan",method:"post",data:n})}function l(n){return a({url:`/api/ad-plan-conf/reGeneratePlan/${n}`,method:"get"})}function d(n){return a({url:"/api/ad-plan-conf/create",method:"post",data:n})}function u(n){return a({url:"/api/ad-plan-conf/update",method:"post",data:n})}function p(n){return a({url:`/api/ad-plan-conf/${n}`,method:"delete"})}function i(n=1,e=10){return a({url:"/api/ad-plan-conf/list",method:"get",params:{pageNum:n,pageSize:e}})}function f(n){return a({url:`/api/ad-plan-conf/${n}`,method:"get"})}function c(n){return a({url:"/api/ad-plan/list",method:"get",params:n})}function s(n){return a({url:`/api/ad-plan-creative/plan/${n}`,method:"get"})}export{o as a,f as b,d as c,p as d,c as e,l as f,i as g,s as h,r,u};
+import{r as a}from"./request--HXk_9Id.js";function r(n){return a({url:"/api/ad-plan-conf/reCreate",method:"post",data:n})}function o(n){return a({url:"/api/ad-plan-conf/generate-plan",method:"post",data:n})}function l(n){return a({url:`/api/ad-plan-conf/reGeneratePlan/${n}`,method:"get"})}function d(n){return a({url:"/api/ad-plan-conf/create",method:"post",data:n})}function u(n){return a({url:"/api/ad-plan-conf/update",method:"post",data:n})}function p(n){return a({url:`/api/ad-plan-conf/${n}`,method:"delete"})}function i(n=1,e=10){return a({url:"/api/ad-plan-conf/list",method:"get",params:{pageNum:n,pageSize:e}})}function f(n){return a({url:`/api/ad-plan-conf/${n}`,method:"get"})}function c(n){return a({url:"/api/ad-plan/list",method:"get",params:n})}function s(n){return a({url:`/api/ad-plan-creative/plan/${n}`,method:"get"})}export{o as a,f as b,d as c,p as d,c as e,l as f,i as g,s as h,r,u};

+ 1 - 1
portal/dist/assets/auth-CqkUtP0_.js → portal/dist/assets/auth-Gu-V_Nzc.js

@@ -1 +1 @@
-import{r as t}from"./request-tl58KW-y.js";function i(){return t({url:"/api/gdt/auth/authorize-url",method:"get"})}function n(r){return t({url:"/api/gdt/auth/refresh",method:"post",params:r})}function u(){return t({url:"/api/gdt/auth/list",method:"get"})}function a(){return u()}function o(){return t({url:"/api/gdt/auth/expiring",method:"get"})}export{o as a,a as b,i as g,u as l,n as r};
+import{r as t}from"./request--HXk_9Id.js";function i(){return t({url:"/api/gdt/auth/authorize-url",method:"get"})}function n(r){return t({url:"/api/gdt/auth/refresh",method:"post",params:r})}function u(){return t({url:"/api/gdt/auth/list",method:"get"})}function a(){return u()}function o(){return t({url:"/api/gdt/auth/expiring",method:"get"})}export{o as a,a as b,i as g,u as l,n as r};

+ 1 - 1
portal/dist/assets/conversion-P3Cckzrt.js → portal/dist/assets/conversion-3s92Ajx3.js

@@ -1 +1 @@
-import{r as t}from"./request-tl58KW-y.js";function e(n,o){return t({url:"/api/gdt/conversion/sync",method:"post",params:{orgAccountId:n,accountId:o}})}function s(n=1,o=20){return t({url:"/api/gdt/conversion/list",method:"get",params:{page:n,pageSize:o}})}function i(n){return t({url:"/api/gdt/conversion/detail",method:"get",params:{conversionId:n}})}function a(){return t({url:"/api/gdt/conversion/all",method:"get"})}export{s as a,i as b,a as g,e as s};
+import{r as t}from"./request--HXk_9Id.js";function e(n,o){return t({url:"/api/gdt/conversion/sync",method:"post",params:{orgAccountId:n,accountId:o}})}function s(n=1,o=20){return t({url:"/api/gdt/conversion/list",method:"get",params:{page:n,pageSize:o}})}function i(n){return t({url:"/api/gdt/conversion/detail",method:"get",params:{conversionId:n}})}function a(){return t({url:"/api/gdt/conversion/all",method:"get"})}export{s as a,i as b,a as g,e as s};

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/detail-DWz398ai.js


+ 1 - 1
portal/dist/assets/drama-BYJHDor5.js → portal/dist/assets/drama-CQYy29sQ.js

@@ -1 +1 @@
-import{r as t}from"./request-tl58KW-y.js";function n(a){return t({url:"/api/gdt/asset/drama/sync",method:"post",params:{accountId:a}})}function m(a=1,s=20,r=""){return t({url:"/api/gdt/asset/drama/list",method:"get",params:{dramaName:r,page:a,pageSize:s}})}function d(a){return t({url:"/api/gdt/asset/drama/myDramaAssets",method:"get",params:{dramaName:a}})}function o(){return t({url:"/api/gdt/asset/drama/sync/conf/myConf",method:"get"})}function u(a){return t({url:"/api/gdt/asset/drama/sync/conf/add",method:"post",data:a})}function i(a){return t({url:"/api/gdt/asset/drama/sync/conf/delete",method:"post",params:{id:a}})}export{o as a,u as b,i as d,m as g,d as m,n as s};
+import{r as t}from"./request--HXk_9Id.js";function n(a){return t({url:"/api/gdt/asset/drama/sync",method:"post",params:{accountId:a}})}function m(a=1,s=20,r=""){return t({url:"/api/gdt/asset/drama/list",method:"get",params:{dramaName:r,page:a,pageSize:s}})}function d(a){return t({url:"/api/gdt/asset/drama/myDramaAssets",method:"get",params:{dramaName:a}})}function o(){return t({url:"/api/gdt/asset/drama/sync/conf/myConf",method:"get"})}function u(a){return t({url:"/api/gdt/asset/drama/sync/conf/add",method:"post",data:a})}function i(a){return t({url:"/api/gdt/asset/drama/sync/conf/delete",method:"post",params:{id:a}})}export{o as a,u as b,i as d,m as g,d as m,n as s};

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-By2MTcoc.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-C4zdh1MB.js


Разница между файлами не показана из-за своего большого размера
+ 1 - 1
portal/dist/assets/index-CQyQCG_b.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-CRSebj36.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-CrK45iSX.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-CtYWXGHH.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-DMUbgw6p.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-DiFdCBIF.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-DnCn4aIS.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-Dnxok0w7.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-HDlDLBWp.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-Z5gPEppn.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/index-bsRRhJDA.js


+ 1 - 1
portal/dist/assets/ossFile-CSxBtP3Y.js → portal/dist/assets/ossFile-D7DM59st.js

@@ -1 +1 @@
-import{r as t}from"./request-tl58KW-y.js";function i(e){return t({timeout:3e5,url:"/api/oss-file/upload",method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}})}function o(e){return t({url:"/api/oss-file/list",method:"get",params:e})}function r(e){return t({url:`/api/oss-file/${e}`,method:"delete"})}function l(e){return t({url:"/api/oss-file/batch",method:"delete",params:{fileIds:e}})}export{l as b,r as d,o as g,i as u};
+import{r as t}from"./request--HXk_9Id.js";function i(e){return t({timeout:3e5,url:"/api/oss-file/upload",method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}})}function o(e){return t({url:"/api/oss-file/list",method:"get",params:e})}function r(e){return t({url:`/api/oss-file/${e}`,method:"delete"})}function l(e){return t({url:"/api/oss-file/batch",method:"delete",params:{fileIds:e}})}export{l as b,r as d,o as g,i as u};

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
portal/dist/assets/request--HXk_9Id.js


+ 1 - 1
portal/dist/assets/user-GjOhxWtL.js → portal/dist/assets/user-Bm-0GMf4.js

@@ -1 +1 @@
-import{r as e}from"./request-tl58KW-y.js";function s(){return e({url:"/api/user/list",method:"get"})}function u(r){return e({url:"/api/user/info",method:"get",params:r})}function n(r){return e({url:"/api/user/user-token-url",method:"get",params:r})}function o(r){return e({url:"/api/user/login",method:"post",params:r})}function a(r){return e({url:"/api/user/change-password",method:"post",params:r})}export{u as a,s as b,a as c,n as g,o as l};
+import{r as e}from"./request--HXk_9Id.js";function s(){return e({url:"/api/user/list",method:"get"})}function u(r){return e({url:"/api/user/info",method:"get",params:r})}function n(r){return e({url:"/api/user/user-token-url",method:"get",params:r})}function o(r){return e({url:"/api/user/login",method:"post",params:r})}function a(r){return e({url:"/api/user/change-password",method:"post",params:r})}export{u as a,s as b,a as c,n as g,o as l};

+ 1 - 1
portal/dist/index.html

@@ -5,7 +5,7 @@
     <link rel="icon" type="image/svg+xml" href="/vite.svg" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>腾讯广告自动化管理后台</title>
-    <script type="module" crossorigin src="/assets/index-BmvEak8n.js"></script>
+    <script type="module" crossorigin src="/assets/index-CQyQCG_b.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-BeI5MTU7.css">
   </head>
   <body>

+ 24 - 0
portal/src/views/ad-plan-conf/index.vue

@@ -54,6 +54,11 @@
             ¥{{ (row.bidAmount / 100).toFixed(2) }}
           </template>
         </el-table-column>
+        <el-table-column label="期望ROI" width="120">
+          <template #default="{ row }">
+            {{ row.deepConversionWorthRate }}
+          </template>
+        </el-table-column>
         <el-table-column prop="accountGroupId" label="账号组ID" width="100" />
         <el-table-column prop="conversionId" label="转化ID" width="120" />
         <el-table-column prop="dramaId" label="短剧ID" width="100" />
@@ -151,6 +156,18 @@
           <span class="ml-2 text-sm text-gray-500">= {{ formData.bidAmount }} 分</span>
         </el-form-item>
 
+        <el-form-item label="期望ROI" prop="deepConversionWorthRate" v-if="formData.adType === 2">
+          <el-input-number
+            v-model="formData.deepConversionWorthRate"
+            :min="0"
+            :precision="2"
+            :step="0.10"
+            placeholder="请输入期望ROI"
+            style="width: 100%"
+            :controls="true"
+          />
+        </el-form-item>
+
         <el-form-item label="转化ID" prop="conversionId">
           <el-select
           :disabled="valueDisabled"
@@ -397,6 +414,11 @@
             ¥{{ (row.bidAmount / 100).toFixed(2) }}
           </template>
         </el-table-column>
+        <el-table-column prop="deepConversionWorthRate" label="期望ROI" width="120">
+          <template #default="{ row }">
+            {{ row.deepConversionWorthRate }}
+          </template>
+        </el-table-column>
         <el-table-column prop="conversionId" label="转化ID" width="120" />
         <el-table-column prop="wxCorpid" label="企微主体ID" width="150" show-overflow-tooltip />
         <el-table-column prop="dramaId" label="短剧ID" width="100" />
@@ -726,6 +748,7 @@ const handleCreate = () => {
     accountGroupId: null,
     adType: 1,
     bidAmount: 150,
+    deepConversionWorthRate: 0.2,
     conversionId: null,
     targets: '1',
     sites: '1,2,3,4,5,6,7,8,9,10',
@@ -754,6 +777,7 @@ const handleEdit = (row) => {
     accountGroupId: row.accountGroupId,
     adType: row.adType,
     bidAmount: row.bidAmount,
+    deepConversionWorthRate: row.deepConversionWorthRate,
     conversionId: row.conversionId,
     targets: row.targets,
     sites: row.sites,

+ 7 - 0
src/main/java/com/moka/gdtauto/controller/AdPlanConfController.java

@@ -29,6 +29,7 @@ import java.util.List;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 
@@ -105,6 +106,12 @@ public class AdPlanConfController {
                     adPlan.setConversionId(request.getConversionId());
                     adPlan.setDramaId(request.getDramaId());
                     adPlan.setBidAmount(request.getBidAmount());
+                    //adType=2-ROI
+                    if (request.getAdType().equals(2)) {
+                        adPlan.setDeepConversionWorthRate(request.getDeepConversionWorthRate());
+                    } else {
+                        adPlan.setDeepConversionWorthRate(BigDecimal.ZERO);
+                    }
                     adPlan.setWxCorpid(request.getWxCorpid());
                     plans.add(adPlan);
                     List<AdPlanCreative> adPlanCreatives = new ArrayList<>();

+ 5 - 0
src/main/java/com/moka/gdtauto/controller/vo/CreateAdPlanConfRequest.java

@@ -1,5 +1,7 @@
 package com.moka.gdtauto.controller.vo;
 
+import java.math.BigDecimal;
+
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -25,6 +27,9 @@ public class CreateAdPlanConfRequest {
     @Schema(description = "出价金额(分)", example = "10000")
     private Long bidAmount;
 
+    @Schema(description = "期望ROI", example = "0.2")
+    private BigDecimal deepConversionWorthRate;
+
     @Schema(description = "转化ID", example = "123456")
     private Long conversionId;
 

+ 5 - 0
src/main/java/com/moka/gdtauto/controller/vo/UpdateAdPlanConfRequest.java

@@ -1,5 +1,7 @@
 package com.moka.gdtauto.controller.vo;
 
+import java.math.BigDecimal;
+
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -27,6 +29,9 @@ public class UpdateAdPlanConfRequest {
 
     @Schema(description = "出价金额(分)", example = "10000")
     private Long bidAmount;
+    
+    @Schema(description = "期望ROI", example = "0.2")
+    private BigDecimal deepConversionWorthRate;
 
     @Schema(description = "转化ID", example = "123456")
     private Long conversionId;

+ 5 - 0
src/main/java/com/moka/gdtauto/entity/AdPlan.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -51,6 +52,10 @@ public class AdPlan {
      * 出价金额(分)
      */
     private Long bidAmount;
+    /**
+     * 期望ROI
+     */
+    private BigDecimal deepConversionWorthRate;
 
     /**
      * 转化ID

+ 6 - 0
src/main/java/com/moka/gdtauto/entity/AdPlanConf.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -44,6 +45,11 @@ public class AdPlanConf {
     private Long bidAmount;
 
     /**
+     * 期望ROI
+     */
+    private BigDecimal deepConversionWorthRate;
+
+    /**
      * 转化ID
      */
     private Long conversionId;

+ 3 - 1
src/main/java/com/moka/gdtauto/service/impl/AdPlanConfServiceImpl.java

@@ -168,6 +168,7 @@ public class AdPlanConfServiceImpl extends ServiceImpl<AdPlanConfMapper, AdPlanC
             plan.setDramaId(conf.getDramaId());
             plan.setWxCorpid(conf.getWxCorpid());
             plan.setBidAmount(conf.getBidAmount());
+            plan.setDeepConversionWorthRate(conf.getDeepConversionWorthRate());
         });
         adPlanService.updateBatchById(plans);
         List<AdPlanCreative> creatives = adPlanCreativeService.getCreativesByConfId(confId);
@@ -293,7 +294,8 @@ public class AdPlanConfServiceImpl extends ServiceImpl<AdPlanConfMapper, AdPlanC
                 parseTargetConfId(plan.getTarget()),
                 parseSiteConfId(plan.getSite()),
                 plan.getBidAmount(),
-                plan.getConversionId()
+                plan.getConversionId(),
+                plan.getDeepConversionWorthRate()
             );
         }
     }

+ 6 - 1
src/main/java/com/moka/gdtauto/util/AdgroupsAddReqPool.java

@@ -1,5 +1,8 @@
 package com.moka.gdtauto.util;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
 import org.springframework.beans.BeanUtils;
 
 import com.tencent.ads.model.v3.AdgroupsAddRequest;
@@ -50,7 +53,7 @@ public class AdgroupsAddReqPool {
         Long accountId ,String groupName, Long marketingAssetId,
          String beginDate, String endDate, 
          Integer targetConfId, Integer siteConfId, 
-        Long bidAmount, Long conversionId) {
+        Long bidAmount, Long conversionId, BigDecimal deepConversionWorthRate) {
         AdgroupsAddRequest request = new AdgroupsAddRequest();
         BeanUtils.copyProperties(roiRequest, request);
         request.setAccountId(accountId);
@@ -62,6 +65,8 @@ public class AdgroupsAddReqPool {
         request.setSiteSet(SiteConfUtil.getSiteConf(siteConfId));
         request.setBidAmount(bidAmount);
         request.setConversionId(conversionId);
+        // 保留2位小数
+        request.setDeepConversionWorthRate(deepConversionWorthRate.setScale(2, RoundingMode.HALF_UP).doubleValue());
         request.setSmartTargetingMode(SmartTargetingMode.SMART_TARGETING_MANUAL);
         return request;
     }

Некоторые файлы не были показаны из-за большого количества измененных файлов