Przeglądaj źródła

feat:记录暂停原因

pudongliang 4 miesięcy temu
rodzic
commit
2320229ea4
33 zmienionych plików z 39 dodań i 13 usunięć
  1. 1 1
      portal/dist/assets/accountGroup-X_gYZSy7.js
  2. 1 1
      portal/dist/assets/adAutoConf-r-wdJotQ.js
  3. 1 1
      portal/dist/assets/adPlanConf-kUBTS2FU.js
  4. 1 1
      portal/dist/assets/auth-C61ue2jY.js
  5. 1 1
      portal/dist/assets/conversion-B0hzexHf.js
  6. 0 0
      portal/dist/assets/detail-DeFDC6o9.js
  7. 0 0
      portal/dist/assets/detail-DoH7uyXl.js
  8. 1 1
      portal/dist/assets/drama-C5D9LMeQ.js
  9. 0 0
      portal/dist/assets/edit-BJanNcIq.js
  10. 0 0
      portal/dist/assets/index-B2uCdUC5.js
  11. 0 0
      portal/dist/assets/index-BJOCbZ8a.js
  12. 1 1
      portal/dist/assets/index-BK34iq5l.js
  13. 0 0
      portal/dist/assets/index-BNjr9JIe.js
  14. 0 0
      portal/dist/assets/index-BZWCKeaP.js
  15. 0 0
      portal/dist/assets/index-BeKH3NEp.js
  16. 0 0
      portal/dist/assets/index-Bp6agbBh.js
  17. 0 0
      portal/dist/assets/index-CmgUSoy5.js
  18. 0 0
      portal/dist/assets/index-DGL6mxbw.js
  19. 0 0
      portal/dist/assets/index-DdaOUK7a.js
  20. 0 0
      portal/dist/assets/index-DmiZ88Xs.js
  21. 0 0
      portal/dist/assets/index-L3sJ8d0y.js
  22. 0 0
      portal/dist/assets/index-lhz2H9E2.js
  23. 0 0
      portal/dist/assets/index-yDQPJiDW.js
  24. 0 0
      portal/dist/assets/index-zUmvyvJt.js
  25. 1 1
      portal/dist/assets/loadPageConf-DIhho3kS.js
  26. 1 1
      portal/dist/assets/ossFile-DIEtcd-f.js
  27. 0 0
      portal/dist/assets/request-DuQSz7VJ.js
  28. 1 1
      portal/dist/assets/user-9jZJvezy.js
  29. 1 1
      portal/dist/index.html
  30. 10 1
      portal/src/views/ad-plan-conf/detail.vue
  31. 12 0
      src/main/java/com/moka/gdtauto/service/AdAutoExecutor.java
  32. 0 1
      src/main/java/com/moka/gdtauto/service/impl/AdPlanConfServiceImpl.java
  33. 6 0
      src/test/java/com/moka/gdtauto/util/SampleTest.java

+ 1 - 1
portal/dist/assets/accountGroup-DMNSIIZh.js → portal/dist/assets/accountGroup-X_gYZSy7.js

@@ -1 +1 @@
-import{r as u}from"./request-CIWQLIMq.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-DuQSz7VJ.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/adAutoConf-zcJrpj20.js → portal/dist/assets/adAutoConf-r-wdJotQ.js

@@ -1 +1 @@
-import{r as e}from"./request-CIWQLIMq.js";function u(t){return e({url:"/api/ad-auto-conf/list",method:"get",params:t})}function n(t){return e({url:`/api/ad-auto-conf/${t}`,method:"get"})}function a(t){return e({url:"/api/ad-auto-conf",method:"post",data:t})}function r(t){return e({url:"/api/ad-auto-conf/update",method:"post",data:t})}function i(t){return e({url:`/api/ad-auto-conf/execute?id=${t}`,method:"post"})}function d(t){return e({url:"/api/execute-log/list",method:"get",params:t})}function c(t){return e({url:"/api/execute-log/getChildLog",method:"get",params:t})}export{c as a,d as b,n as c,i as e,u as g,a as s,r as u};
+import{r as e}from"./request-DuQSz7VJ.js";function u(t){return e({url:"/api/ad-auto-conf/list",method:"get",params:t})}function n(t){return e({url:`/api/ad-auto-conf/${t}`,method:"get"})}function a(t){return e({url:"/api/ad-auto-conf",method:"post",data:t})}function r(t){return e({url:"/api/ad-auto-conf/update",method:"post",data:t})}function i(t){return e({url:`/api/ad-auto-conf/execute?id=${t}`,method:"post"})}function d(t){return e({url:"/api/execute-log/list",method:"get",params:t})}function c(t){return e({url:"/api/execute-log/getChildLog",method:"get",params:t})}export{c as a,d as b,n as c,i as e,u as g,a as s,r as u};

+ 1 - 1
portal/dist/assets/adPlanConf-DYRohldE.js → portal/dist/assets/adPlanConf-kUBTS2FU.js

@@ -1 +1 @@
-import{r as a}from"./request-CIWQLIMq.js";function r(n){return a({url:"/api/ad-plan-conf/reCreate",method:"post",data:n})}function d(n){return a({url:"/api/ad-plan-conf/generate-plan",method:"post",data:n})}function o(n){return a({url:`/api/ad-plan-conf/reGeneratePlan/${n}`,method:"get"})}function u(n){return a({url:`/api/ad-plan-conf/syncSystemStatus/${n}`,method:"get"})}function l(n){return a({url:"/api/ad-plan-conf/create",method:"post",data:n})}function p(n){return a({url:"/api/ad-plan-conf/update",method:"post",data:n})}function s(n=1,e=10){return a({url:"/api/ad-plan-conf/list",method:"get",params:{pageNum:n,pageSize:e}})}function i(n){return a({url:`/api/ad-plan-conf/${n}`,method:"get"})}function f(n){return a({url:"/api/ad-plan/list",method:"get",params:n})}function c(n){return a({url:`/api/ad-plan-creative/plan/${n}`,method:"get"})}function g(n){return a({url:"/api/ad-plan-conf/gdtSuspendByConfId",params:{confId:n},method:"get"})}function m(n){return a({url:"/api/ad-plan-conf/gdtDeleteByConfId",params:{confId:n},method:"get"})}function h(n,e){return a({url:`/api/ad-plan-conf/gdtSuspendByPlanIds/${n}`,method:"post",data:e})}function C(n,e){return a({url:`/api/ad-plan-conf/gdtDeleteByPlanIds/${n}`,method:"post",data:e})}function P(n=[]){return a({url:"/api/ad-plan-conf/getOneCreativeImage",method:"post",data:n})}function y(){return a({url:"/api/ad-plan-conf/getOneBrandImage",method:"get"})}function I(n=[]){return a({url:"/api/ad-plan-conf/getOneCreativeVideo",method:"post",data:n})}export{P as a,y as b,I as c,d,l as e,i as f,s as g,f as h,m as i,h as j,C as k,u as l,o as m,c as n,r,g as s,p as u};
+import{r as a}from"./request-DuQSz7VJ.js";function r(n){return a({url:"/api/ad-plan-conf/reCreate",method:"post",data:n})}function d(n){return a({url:"/api/ad-plan-conf/generate-plan",method:"post",data:n})}function o(n){return a({url:`/api/ad-plan-conf/reGeneratePlan/${n}`,method:"get"})}function u(n){return a({url:`/api/ad-plan-conf/syncSystemStatus/${n}`,method:"get"})}function l(n){return a({url:"/api/ad-plan-conf/create",method:"post",data:n})}function p(n){return a({url:"/api/ad-plan-conf/update",method:"post",data:n})}function s(n=1,e=10){return a({url:"/api/ad-plan-conf/list",method:"get",params:{pageNum:n,pageSize:e}})}function i(n){return a({url:`/api/ad-plan-conf/${n}`,method:"get"})}function f(n){return a({url:"/api/ad-plan/list",method:"get",params:n})}function c(n){return a({url:`/api/ad-plan-creative/plan/${n}`,method:"get"})}function g(n){return a({url:"/api/ad-plan-conf/gdtSuspendByConfId",params:{confId:n},method:"get"})}function m(n){return a({url:"/api/ad-plan-conf/gdtDeleteByConfId",params:{confId:n},method:"get"})}function h(n,e){return a({url:`/api/ad-plan-conf/gdtSuspendByPlanIds/${n}`,method:"post",data:e})}function C(n,e){return a({url:`/api/ad-plan-conf/gdtDeleteByPlanIds/${n}`,method:"post",data:e})}function P(n=[]){return a({url:"/api/ad-plan-conf/getOneCreativeImage",method:"post",data:n})}function y(){return a({url:"/api/ad-plan-conf/getOneBrandImage",method:"get"})}function I(n=[]){return a({url:"/api/ad-plan-conf/getOneCreativeVideo",method:"post",data:n})}export{P as a,y as b,I as c,d,l as e,i as f,s as g,f as h,m as i,h as j,C as k,u as l,o as m,c as n,r,g as s,p as u};

+ 1 - 1
portal/dist/assets/auth-r39xoDUc.js → portal/dist/assets/auth-C61ue2jY.js

@@ -1 +1 @@
-import{r as t}from"./request-CIWQLIMq.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-DuQSz7VJ.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-BncE0AJx.js → portal/dist/assets/conversion-B0hzexHf.js

@@ -1 +1 @@
-import{r as t}from"./request-CIWQLIMq.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-DuQSz7VJ.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};

Plik diff jest za duży
+ 0 - 0
portal/dist/assets/detail-DeFDC6o9.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/detail-DoH7uyXl.js


+ 1 - 1
portal/dist/assets/drama-Bhh1wuG1.js → portal/dist/assets/drama-C5D9LMeQ.js

@@ -1 +1 @@
-import{r as t}from"./request-CIWQLIMq.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-DuQSz7VJ.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};

Plik diff jest za duży
+ 0 - 0
portal/dist/assets/edit-BJanNcIq.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-B2uCdUC5.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-BJOCbZ8a.js


Plik diff jest za duży
+ 1 - 1
portal/dist/assets/index-BK34iq5l.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-BNjr9JIe.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-BZWCKeaP.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-BeKH3NEp.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-Bp6agbBh.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-CmgUSoy5.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-DGL6mxbw.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-DdaOUK7a.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-DmiZ88Xs.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-L3sJ8d0y.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-lhz2H9E2.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-yDQPJiDW.js


Plik diff jest za duży
+ 0 - 0
portal/dist/assets/index-zUmvyvJt.js


+ 1 - 1
portal/dist/assets/loadPageConf-BlimLTbf.js → portal/dist/assets/loadPageConf-DIhho3kS.js

@@ -1 +1 @@
-import{r as o}from"./request-CIWQLIMq.js";function t(a){return o({url:"/api/load-page-conf/list",method:"get",params:a})}function n(a){return o({url:`/api/load-page-conf/${a}`,method:"get"})}function r(a){return o({url:"/api/load-page-conf",method:"post",data:a})}function u(a){return o({url:"/api/load-page-conf",method:"put",data:a})}function d(){return o({url:"/api/load-page-conf/all",method:"get"})}export{t as a,n as b,r as c,d as g,u};
+import{r as o}from"./request-DuQSz7VJ.js";function t(a){return o({url:"/api/load-page-conf/list",method:"get",params:a})}function n(a){return o({url:`/api/load-page-conf/${a}`,method:"get"})}function r(a){return o({url:"/api/load-page-conf",method:"post",data:a})}function u(a){return o({url:"/api/load-page-conf",method:"put",data:a})}function d(){return o({url:"/api/load-page-conf/all",method:"get"})}export{t as a,n as b,r as c,d as g,u};

+ 1 - 1
portal/dist/assets/ossFile-npKfCGsr.js → portal/dist/assets/ossFile-DIEtcd-f.js

@@ -1 +1 @@
-import{r as t}from"./request-CIWQLIMq.js";function i(e){return t({timeout:12e5,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-DuQSz7VJ.js";function i(e){return t({timeout:12e5,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};

Plik diff jest za duży
+ 0 - 0
portal/dist/assets/request-DuQSz7VJ.js


+ 1 - 1
portal/dist/assets/user-Dv0WTFL0.js → portal/dist/assets/user-9jZJvezy.js

@@ -1 +1 @@
-import{r as e}from"./request-CIWQLIMq.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-DuQSz7VJ.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-COxi2iIl.js"></script>
+    <script type="module" crossorigin src="/assets/index-BK34iq5l.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-5wHpskw5.css">
   </head>
   <body>

+ 10 - 1
portal/src/views/ad-plan-conf/detail.vue

@@ -356,7 +356,16 @@
           </template>
         </el-table-column>
         <el-table-column label="花费" prop="cost" width="100"></el-table-column>
-        <el-table-column label="目标转化成本" prop="conversionsCost" width="100"></el-table-column>
+        <el-table-column label="目标转化成本" prop="conversionsCost" width="100">
+          <template #default="{ row }">
+            ¥{{ (row.conversionsCost / 100).toFixed(2) }}
+          </template>
+        </el-table-column>
+        <el-table-column label="加粉成本" prop="scanFollowUserCost" width="100">
+          <template #default="{ row }">
+            ¥{{ (row.scanFollowUserCost / 100).toFixed(2) }}
+          </template>
+        </el-table-column>
         <el-table-column label="曝光" prop="viewCount" width="100"></el-table-column>
         <el-table-column label="有效点击" prop="validClickCount" width="100"></el-table-column>
         <el-table-column label="点击率" prop="ctr" width="100"></el-table-column>

+ 12 - 0
src/main/java/com/moka/gdtauto/service/AdAutoExecutor.java

@@ -213,11 +213,17 @@ public class AdAutoExecutor {
         if (rule.getType() == 1) {
             if (rule.getMinCost() == 0) {
                 if (plan.getReqIncomeRoi1().compareTo(rule.getMinIor()) < 0) {
+                    String s = String.format("不考虑消耗 ROI:%.2f < 阈值:%.2f",
+                            plan.getReqIncomeRoi1(), rule.getMinIor());
+                    plan.setFailReason(s);
                     return true;
                 }
             } else {
                 // getReqIncomeRoi1 < minIor 关闭
                 if (constYuan > rule.getMinCost() && plan.getReqIncomeRoi1().compareTo(rule.getMinIor()) < 0) {
+                    String s = String.format("消耗%d > 阈值%d ROI:%.2f < 阈值:%.2f",
+                        constYuan, rule.getMinCost(), plan.getReqIncomeRoi1(), rule.getMinIor());
+                    plan.setFailReason(s);
                     return true;
                 }
             }
@@ -225,10 +231,16 @@ public class AdAutoExecutor {
             // minCost == 0 表示不限制消耗门槛
             if (rule.getMinCost() == 0) {
                 if (scanCostYuan > rule.getScanMaxCost()) {
+                    String s = String.format("不考虑消耗 粉价消耗%d > 阈值%d",
+                            scanCostYuan, rule.getScanMaxCost());
+                    plan.setFailReason(s);
                     return true;
                 }
             } else {
                 if (scanCostYuan > rule.getScanMaxCost() && constYuan > rule.getMinCost()) {
+                    String s = String.format("消耗%d > 阈值%d; 粉价消耗%d > 阈值%d",
+                        constYuan, rule.getMinCost(), scanCostYuan, rule.getScanMaxCost());
+                    plan.setFailReason(s);
                     return true;
                 }
             }

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

@@ -283,7 +283,6 @@ public class AdPlanConfServiceImpl extends ServiceImpl<AdPlanConfMapper, AdPlanC
                 req.setConfiguredStatus(ConfiguredStatus.SUSPEND);
                 tencentAds.adgroups().adgroupsUpdate(req);
                 plan.setConfiguredStatus(ConfiguredStatus.SUSPEND.getValue());
-                plan.setFailReason("");
             } catch (Exception e) {
                 plan.setFailReason(truncateError(e.getMessage()));
             }

+ 6 - 0
src/test/java/com/moka/gdtauto/util/SampleTest.java

@@ -73,4 +73,10 @@ public class SampleTest {
         System.out.println(dateTime);
     }
     
+    @Test
+    public void testCompare() {
+        BigDecimal planRoi = new BigDecimal("0.15");
+        BigDecimal ruleRoi = new BigDecimal("0.2");
+        System.out.println(planRoi.compareTo(ruleRoi)); // > 1 表示 planRoi 大于 ruleRoi
+    }
 }

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików