Преглед изворни кода

fix:规则删除,新增丢失名称问题

pudongliang пре 4 месеци
родитељ
комит
48704da18b
35 измењених фајлова са 59 додато и 31 уклоњено
  1. 1 1
      portal/dist/assets/accountGroup-CWp67h-8.js
  2. 1 0
      portal/dist/assets/adAutoConf-DOSAJ0Uf.js
  3. 0 1
      portal/dist/assets/adAutoConf-zLeV_gJw.js
  4. 1 1
      portal/dist/assets/adPlanConf-BpscLu3i.js
  5. 1 1
      portal/dist/assets/auth-DBQ6imY2.js
  6. 1 1
      portal/dist/assets/conversion-BqNJEDsc.js
  7. 0 0
      portal/dist/assets/detail-C4GJ84rf.js
  8. 1 1
      portal/dist/assets/drama-CKOO8-rf.js
  9. 0 0
      portal/dist/assets/edit-D7U4tpSb.js
  10. 0 0
      portal/dist/assets/index-B62ouZjJ.js
  11. 0 0
      portal/dist/assets/index-BB9D6e69.js
  12. 0 0
      portal/dist/assets/index-Bh6aSti8.js
  13. 0 0
      portal/dist/assets/index-CWrR8cYe.js
  14. 0 0
      portal/dist/assets/index-Cx261g0F.js
  15. 0 0
      portal/dist/assets/index-CzWxUTum.js
  16. 0 0
      portal/dist/assets/index-D3eYa4rn.js
  17. 0 0
      portal/dist/assets/index-D8ggKI4K.js
  18. 0 0
      portal/dist/assets/index-DH4rsdSG.js
  19. 0 0
      portal/dist/assets/index-DLBabo8z.js
  20. 0 0
      portal/dist/assets/index-DWbI8glz.js
  21. 0 0
      portal/dist/assets/index-DYqAr0EL.js
  22. 0 0
      portal/dist/assets/index-DifQ9T-8.js
  23. 1 1
      portal/dist/assets/index-Du1Foor6.js
  24. 0 0
      portal/dist/assets/index-XSnKIZUn.js
  25. 0 0
      portal/dist/assets/index-_qJXGks5.js
  26. 0 0
      portal/dist/assets/index-htO3QnXj.js
  27. 0 0
      portal/dist/assets/index-kK8zg8aL.js
  28. 1 1
      portal/dist/assets/loadPageConf-Dn3DEE7L.js
  29. 1 1
      portal/dist/assets/ossFile-DKTfHVO-.js
  30. 0 0
      portal/dist/assets/request-CThpUv0m.js
  31. 1 1
      portal/dist/assets/user-CenFN_Bi.js
  32. 1 1
      portal/dist/index.html
  33. 1 0
      portal/src/views/ad-auto-conf/index.vue
  34. 44 18
      src/main/java/com/moka/gdtauto/controller/McpController.java
  35. 3 2
      src/main/resources/mapper/AdAutoConfMapper.xml

+ 1 - 1
portal/dist/assets/accountGroup-B4TxRTCi.js → portal/dist/assets/accountGroup-CWp67h-8.js

@@ -1 +1 @@
-import{r as u}from"./request-CLGY40Ww.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-CThpUv0m.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 - 0
portal/dist/assets/adAutoConf-DOSAJ0Uf.js

@@ -0,0 +1 @@
+import{r as e}from"./request-CThpUv0m.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 d(t){return e({url:`/api/ad-auto-conf/${t}`,method:"delete"})}function i(t){return e({url:`/api/ad-auto-conf/execute?id=${t}`,method:"post"})}function f(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,f as b,n as c,d,i as e,u as g,a as s,r as u};

+ 0 - 1
portal/dist/assets/adAutoConf-zLeV_gJw.js

@@ -1 +0,0 @@
-import{r as e}from"./request-CLGY40Ww.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-CHK-ztey.js → portal/dist/assets/adPlanConf-BpscLu3i.js

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

+ 1 - 1
portal/dist/assets/auth-CDge7bHP.js → portal/dist/assets/auth-DBQ6imY2.js

@@ -1 +1 @@
-import{r as t}from"./request-CLGY40Ww.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-CThpUv0m.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-CXLG4o95.js → portal/dist/assets/conversion-BqNJEDsc.js

@@ -1 +1 @@
-import{r as t}from"./request-CLGY40Ww.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-CThpUv0m.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-C4GJ84rf.js


+ 1 - 1
portal/dist/assets/drama-BWFi-ffY.js → portal/dist/assets/drama-CKOO8-rf.js

@@ -1 +1 @@
-import{r as t}from"./request-CLGY40Ww.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-CThpUv0m.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/edit-D7U4tpSb.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-B62ouZjJ.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-BB9D6e69.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-Bh6aSti8.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-CWrR8cYe.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-Cx261g0F.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-CzWxUTum.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-D3eYa4rn.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-D8ggKI4K.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-DH4rsdSG.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-DLBabo8z.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-DWbI8glz.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-DYqAr0EL.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-DifQ9T-8.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
portal/dist/assets/index-Du1Foor6.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-XSnKIZUn.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-_qJXGks5.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-htO3QnXj.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/index-kK8zg8aL.js


+ 1 - 1
portal/dist/assets/loadPageConf-PLGrQsYQ.js → portal/dist/assets/loadPageConf-Dn3DEE7L.js

@@ -1 +1 @@
-import{r as o}from"./request-CLGY40Ww.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-CThpUv0m.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-CJfU0j4P.js → portal/dist/assets/ossFile-DKTfHVO-.js

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

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
portal/dist/assets/request-CThpUv0m.js


+ 1 - 1
portal/dist/assets/user-BHGHoXtD.js → portal/dist/assets/user-CenFN_Bi.js

@@ -1 +1 @@
-import{r as e}from"./request-CLGY40Ww.js";function t(){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})}function i(r){return e({url:"/api/user/save",method:"post",params:r})}export{u as a,t as b,a as c,n as g,o as l,i as s};
+import{r as e}from"./request-CThpUv0m.js";function t(){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})}function i(r){return e({url:"/api/user/save",method:"post",params:r})}export{u as a,t as b,a as c,n as g,o as l,i as s};

+ 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-Bwbh2Xl0.js"></script>
+    <script type="module" crossorigin src="/assets/index-Du1Foor6.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-5iqyiYFJ.css">
   </head>
   <body>

+ 1 - 0
portal/src/views/ad-auto-conf/index.vue

@@ -144,6 +144,7 @@
             <el-button type="primary" size="small" link @click="handleEdit(row)">编辑</el-button>
             <el-button type="warning" size="small" link @click="handleExecute(row)">执行规则</el-button>
             <el-button type="primary" size="small" link @click="handleShowLog(row)">执行日志</el-button>
+            <el-button type="danger" size="small" link @click="handleDelete(row)">删除</el-button>
           </template>
         </el-table-column>
       </el-table>

+ 44 - 18
src/main/java/com/moka/gdtauto/controller/McpController.java

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.moka.gdtauto.common.Constant;
 import com.moka.gdtauto.common.Result;
 import com.moka.gdtauto.entity.AdPlan;
@@ -24,13 +25,38 @@ public class McpController {
     @Autowired
     private AdPlanConfService adPlanConfService;
 
+    @McpTool(name = "get-plans-page-by-conf-id", description = """
+            根据广告配置ID分页获取广告列表
+            注意:响应[bidAmount,dailyBudget,cost,conversionsCost,scanFollowUserCost,reqIncomeVal1,repIncomeVal1]这写字段单位是分,需转化为元;
+            字段说明:bidAmount出价、dailyBudget每日预算、cost消耗、conversionsCost转化消耗、scanFollowUserCost进粉消耗、reqIncomeVal1 广告播放口径的首日广告变现金额、repIncomeVal1 转化回传口径首日广告变现金额、deepConversionWorthRate期望ROI、reqIncomeRoi1 广告播放口径的首日广告变现金额ROI、repIncomeRoi1 转化回传口径首日广告变现金额ROI
+            configuredStatus广告配置状态:AD_STATUS_NORMAL=有效; AD_STATUS_SUSPEND=暂停
+            响应success=true表示获取成功
+            """)
+    public Result<Page<AdPlan>> getPlansByConfId(
+            @McpToolParam(description = "广告配置ID", required = true) Long adPlanConfId,
+            @McpToolParam(description = "页码", required = true) Integer page,
+            @McpToolParam(description = "每页数量", required = true) Integer size) {
+        AdPlanConf adPlanConf = adPlanConfService.getOne(new LambdaQueryWrapper<AdPlanConf>()
+                .eq(AdPlanConf::getId, adPlanConfId)
+                .eq(AdPlanConf::getDeleted, 0));
+        if (adPlanConf == null) {
+            return Result.fail("广告配置不存在");
+        }
+        Page<AdPlan> plans = adPlanService.lambdaQuery()
+                .eq(AdPlan::getDeleted, 0)
+                .eq(AdPlan::getAdPlanConfId, adPlanConfId)
+                .orderByDesc(AdPlan::getId)
+                .page(new Page<>(page, size));
+        return Result.success(plans);
+    }
+
     @McpTool(name = "get-adgrop", description = """
-        根据广告ID获取广告信息
-        响应success=true表示获取成功
-        注意:响应[bidAmount,dailyBudget,cost,conversionsCost,scanFollowUserCost,reqIncomeVal1,repIncomeVal1]这写字段单位是分,需转化为元;
-        字段说明:bidAmount出价、dailyBudget每日预算、cost消耗、conversionsCost转化消耗、scanFollowUserCost进粉消耗、reqIncomeVal1 广告播放口径的首日广告变现金额、repIncomeVal1 转化回传口径首日广告变现金额
-        configuredStatus广告配置状态:AD_STATUS_NORMAL=有效; AD_STATUS_SUSPEND=暂停
-    """)
+                根据广告ID获取广告信息
+                响应success=true表示获取成功
+                注意:响应[bidAmount,dailyBudget,cost,conversionsCost,scanFollowUserCost,reqIncomeVal1,repIncomeVal1]这写字段单位是分,需转化为元;
+                字段说明:bidAmount出价、dailyBudget每日预算、cost消耗、conversionsCost转化消耗、scanFollowUserCost进粉消耗、reqIncomeVal1 广告播放口径的首日广告变现金额、repIncomeVal1 转化回传口径首日广告变现金额、deepConversionWorthRate期望ROI、reqIncomeRoi1 广告播放口径的首日广告变现金额ROI、repIncomeRoi1 转化回传口径首日广告变现金额ROI
+                configuredStatus广告配置状态:AD_STATUS_NORMAL=有效; AD_STATUS_SUSPEND=暂停
+            """)
     public Result<AdPlan> getAdGroup(
             @McpToolParam(description = "广告ID", required = true) Long adgroupId) {
         AdPlan plan = adPlanService.lambdaQuery()
@@ -44,9 +70,9 @@ public class McpController {
         }
     }
 
-    @McpTool(name = "update-adgroup-daily-budget", description = "更新广告每日预算;响应success=true表示操作成功")
+    @McpTool(name = "update-adgroup-daily-budget", description = "更新广告每日预算;响应success=true表示操作成功")
     public Result<AdPlan> updateAdgroupDailyBudget(
-            @McpToolParam(description = "广告ID", required = true) Long adgroupId,
+            @McpToolParam(description = "广告ID", required = true) Long adgroupId,
             @McpToolParam(description = "每日预算(元)", required = true) Long dailyBudgetYuan) {
         AdPlan plan = adPlanService.lambdaQuery().eq(AdPlan::getAdgroupId, adgroupId).one();
         if (plan != null) {
@@ -57,17 +83,17 @@ public class McpController {
             try {
                 adPlanService.updateAdgroupDailyBudget(adPlanConf, plan, dailyBudgetYuan * 100);
             } catch (Exception e) {
-                return Result.fail("更新广告每日预算失败 e=" +  e.getMessage());
+                return Result.fail("更新广告每日预算失败 e=" + e.getMessage());
             }
             return Result.success();
         } else {
-            return Result.fail("广告不存在");
+            return Result.fail("广告不存在");
         }
     }
 
-    @McpTool(name = "suspend-adgroup", description = "暂停广告;响应success=true表示操作成功")
+    @McpTool(name = "suspend-adgroup", description = "暂停广告;响应success=true表示操作成功")
     public Result<AdPlan> suspendAdgroup(
-            @McpToolParam(description = "广告ID", required = true) Long adgroupId) {
+            @McpToolParam(description = "广告ID", required = true) Long adgroupId) {
         AdPlan plan = adPlanService.lambdaQuery().eq(AdPlan::getAdgroupId, adgroupId).one();
         if (plan != null) {
             Long adPlanConfId = plan.getAdPlanConfId();
@@ -77,16 +103,16 @@ public class McpController {
             try {
                 adPlanConfService.gdtSuspendByPlans(adPlanConf, List.of(plan));
             } catch (Exception e) {
-                return Result.fail("暂停广告失败 e=" +  e.getMessage());
+                return Result.fail("暂停广告失败 e=" + e.getMessage());
             }
             return Result.success();
         }
-        return Result.fail("广告不存在");
+        return Result.fail("广告不存在");
     }
 
-    @McpTool(name = "delete-adgroup", description = "删除广告;响应success=true表示操作成功")
+    @McpTool(name = "delete-adgroup", description = "删除广告;响应success=true表示操作成功")
     public Result<AdPlan> deleteAdgroup(
-            @McpToolParam(description = "广告ID", required = true) Long adgroupId) {
+            @McpToolParam(description = "广告ID", required = true) Long adgroupId) {
         AdPlan plan = adPlanService.lambdaQuery().eq(AdPlan::getAdgroupId, adgroupId).one();
         if (plan != null) {
             Long adPlanConfId = plan.getAdPlanConfId();
@@ -96,10 +122,10 @@ public class McpController {
             try {
                 adPlanConfService.gdtDeleteByPlanIds(adPlanConf, List.of(plan.getId()));
             } catch (Exception e) {
-                return Result.fail("删除广告失败 e=" +  e.getMessage());
+                return Result.fail("删除广告失败 e=" + e.getMessage());
             }
             return Result.success(plan);
         }
-        return Result.fail("广告不存在");
+        return Result.fail("广告不存在");
     }
 }

+ 3 - 2
src/main/resources/mapper/AdAutoConfMapper.xml

@@ -3,9 +3,10 @@
 <mapper namespace="com.moka.gdtauto.mapper.AdAutoConfMapper">
 
     <insert id="saveOrUpdate">
-        INSERT INTO ad_auto_conf (job_number, ad_group_id, new_ad_days, rules, create_time, update_time)
-        VALUES (#{jobNumber}, #{adGroupId}, #{newAdDays}, #{rules}, #{createTime}, #{updateTime})
+        INSERT INTO ad_auto_conf (rule_name, job_number, ad_group_id, new_ad_days, rules, create_time, update_time)
+        VALUES (#{ruleName}, #{jobNumber}, #{adGroupId}, #{newAdDays}, #{rules}, #{createTime}, #{updateTime})
         ON DUPLICATE KEY UPDATE
+        rule_name = VALUES(rule_name),
         new_ad_days = VALUES(new_ad_days),
         rules = VALUES(rules),
         update_time = VALUES(update_time)

Неке датотеке нису приказане због велике количине промена