adq.ts 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. import { request } from 'umi';
  2. import { api } from '../api';
  3. /**
  4. * 获取组员及组员账号列表
  5. */
  6. export async function getAdAccountAllOfMember() {
  7. return request(api + '/adq/adAccount/allOfMember');
  8. }
  9. /***
  10. * 无权限限制获取全部用户列表
  11. *
  12. */
  13. export async function getErpUserAll() {
  14. return request(api + `/erp/user/all`)
  15. }
  16. /**
  17. * 获取ADQ账号列表
  18. * @param adgroupName 广告名称
  19. * @param promotedObjectType 广告类型
  20. * @param accountId 账户ID
  21. * @param adgroupName 广告名称
  22. */
  23. export async function getAdqAdAccountList(params: {
  24. pageNum: number;
  25. pageSize: number;
  26. userId?: string;//用户ID
  27. accountIds?: string[];//账号本地ID
  28. }) {
  29. return request(api + '/adq/adAccount/list', {
  30. method: 'POST',
  31. data: params,
  32. });
  33. }
  34. /**
  35. * 按账号同步计划
  36. * @param adAccountId 本地ID
  37. */
  38. export async function putAdqAdAccountSyncByIds(data: any) {
  39. return request(api + `/adq/adAccount/syncByIds`, {
  40. method: 'PUT',
  41. data
  42. });
  43. }
  44. /**
  45. * 获取ADQ计划列表
  46. * @param adgroupName 广告名称
  47. * @param promotedObjectType 广告类型
  48. * @param accountId 账户ID
  49. * @param adgroupName 广告名称
  50. */
  51. export async function getAdqCampaignList(params: {
  52. pageNum: number;
  53. pageSize: number;
  54. userId?: string;//用户ID
  55. accountId?: string;//账号本地ID
  56. campaignName?: string;//计划名称
  57. configuredStatus?: string;//计划状态
  58. campaignType?: string;//计划类型
  59. promotedObjectType?: string;//推广目标类型
  60. }) {
  61. return request(api + '/adq/campaign/list', {
  62. method: 'POST',
  63. data: params,
  64. });
  65. }
  66. /**
  67. * 按账号同步计划
  68. * @param adAccountId 本地ID
  69. */
  70. export async function putAdqCampaignPage(data: any) {
  71. return request(api + `/adq/campaign/sync/all `, {
  72. method: 'PUT',
  73. data
  74. });
  75. }
  76. /**
  77. * 获取ADQ广告列表
  78. * @param adgroupName 广告名称
  79. * @param promotedObjectType 广告类型
  80. * @param accountId 账户ID
  81. * @param adgroupName 广告名称
  82. */
  83. export async function getAdqAdgroupsList(params: {
  84. pageNum: number;
  85. pageSize: number;
  86. accountId: string;
  87. adgroupName?: string
  88. }) {
  89. return request(api + '/adq/adgroups/list', {
  90. method: 'POST',
  91. data: params,
  92. });
  93. }
  94. /**
  95. * 同步ADQ广告列表
  96. *@param adAccountId 本地ID
  97. */
  98. export async function putAdqAdgroupsSync(data: {
  99. accountIdList: any[]
  100. }) {
  101. return request(api + `/adq/adgroups/sync/all`, {
  102. method: 'PUT',
  103. data
  104. });
  105. }
  106. /**
  107. * 同步ADQ广告列表
  108. *@param adAccountId 本地ID
  109. */
  110. export async function putAdqAdgroupsSyncBatch(data: {
  111. adgroupIds: any[]
  112. }) {
  113. return request(api + `/adq/adgroups/sync/batch`, {
  114. method: 'PUT',
  115. data
  116. });
  117. }
  118. /**
  119. * 多选删除广告
  120. * @param data
  121. * @returns
  122. */
  123. export async function delListAdqAdgroupsApi(data: { adgroupIds: number[] }) {
  124. return request(api + `/adq/adgroups/delete/batch`, {
  125. method: 'POST',
  126. data
  127. });
  128. }
  129. /**
  130. * 删除广告
  131. * @param data
  132. * @returns
  133. */
  134. export async function delAdqAdgroupsApi({ adAccountId, adgroupId }: { adAccountId: number, adgroupId: number }) {
  135. return request(api + `/adq/adgroups/${adAccountId}/${adgroupId}`, {
  136. method: 'DELETE'
  137. });
  138. }
  139. export interface EditAdqAdgroupsProps {
  140. /** 广告组id列表 */
  141. adgroupIds: number[],
  142. /** 广告名称 */
  143. adgroupName?: string,
  144. /** 出价 */
  145. adgroupsUpdateBidAmountDTO?: {
  146. bidAmount: number, // 出价
  147. bidMode: string, // 出价方式
  148. bidStrategy: string,// 出价策略
  149. optimizationGoal: string, // 出价目标
  150. },
  151. /** 排期 */
  152. adgroupsUpdateDatetimeDTO?: {
  153. beginDate: string,
  154. endDate?: string,
  155. firstDayBeginTime?: string,
  156. timeSeries?: string
  157. },
  158. /** 深度优化 */
  159. deepConversionSpec?: {
  160. deepConversionType: string,
  161. deepConversionBehaviorSpec?: {
  162. bidAmount: number,
  163. goal: string
  164. },
  165. deepConversionWorthAdvancedSpec?: {
  166. expectedRoi: number,
  167. goal: string
  168. },
  169. deepConversionWorthSpec?: {
  170. expectedRoi: number,
  171. goal: string
  172. }
  173. },
  174. /** 启停状态 */
  175. configuredStatus?: string
  176. }
  177. export async function editAdqAdgroupsDataApi(data: EditAdqAdgroupsProps) {
  178. return request(api + `/adq/adgroups/update/batch`, {
  179. method: 'POST',
  180. data
  181. });
  182. }
  183. export async function newEditAdqAdgroupsDataApi(data: EditAdqAdgroupsProps) {
  184. return request(api + `/adq/adgroups/configStatus/update/batch`, {
  185. method: 'POST',
  186. data
  187. });
  188. }
  189. export interface CopyAdProps {
  190. adgroupIds: number[], // 广告组id列表
  191. beginDate: string,
  192. endDate: string,
  193. copyCount: number, // 复制数量
  194. firstDayBeginTime?: string
  195. timeSeries?: string
  196. }
  197. export async function copyAdAdApi(data: CopyAdProps) {
  198. return request(api + `/adq/adgroups/copy/batch`, {
  199. method: 'POST',
  200. data
  201. });
  202. }
  203. /**
  204. * 获取ADQ创意列表
  205. * @param adgroupName 广告名称
  206. * @param promotedObjectType 广告类型
  207. * @param accountId 账户ID
  208. * @param adcreativeName
  209. */
  210. export async function getAdqAdcreativeList(params: {
  211. pageNum: number;
  212. pageSize: number;
  213. accountId: string;
  214. adcreativeName?: string
  215. }) {
  216. return request(api + '/adq/adcreative/list', {
  217. method: 'POST',
  218. data: params,
  219. });
  220. }
  221. /**
  222. * 获取ADQ落地页列表
  223. * @param adgroupName 广告名称
  224. * @param promotedObjectType 广告类型
  225. * @param accountId 账户ID
  226. */
  227. export async function getAdqLandingPageList(params: {
  228. pageNum: number;
  229. pageSize: number;
  230. accountId?: number;
  231. pageName?: string;
  232. pageType?: string;
  233. pageTemplateId?: string;
  234. pageStatus?: string;
  235. }) {
  236. Object.keys(params).forEach(key => {
  237. if (!params[key]) {
  238. delete params[key]
  239. }
  240. })
  241. return request(api + '/adq/landingPageWechat/list ', {
  242. method: 'POST',
  243. data: params,
  244. });
  245. }
  246. /**
  247. * 按账号同步落地页
  248. * @param adAccountId 本地ID
  249. */
  250. export async function putAdqLandingPage(data: any) {
  251. return request(api + `/adq/landingPageWechat/sync/all`, {
  252. method: 'PUT',
  253. data
  254. });
  255. }
  256. /**
  257. * 获取ADQ定向列表
  258. * @param adgroupName 广告名称
  259. * @param promotedObjectType 广告类型
  260. * @param accountId 账户ID
  261. */
  262. export async function getAdqTargetingList(params: {
  263. pageNum: number;
  264. pageSize: number;
  265. accountId: string;
  266. pageName: string;
  267. pageType: string;
  268. pageTemplateId: string;
  269. pageStatus: string;
  270. }) {
  271. return request(api + '/adq/targeting/list ', {
  272. method: 'POST',
  273. data: params,
  274. });
  275. }
  276. /**
  277. * 按账号同步ADQ定向列表
  278. * @param adAccountId 本地ID
  279. */
  280. export async function putAdqTargetingSyncAll(data: any) {
  281. return request(api + `/adq/targeting/sync/all `, {
  282. method: 'PUT',
  283. data
  284. });
  285. }
  286. // 同步创意
  287. export async function adcreativeSyncAll(data: {
  288. accountIdList: any[]
  289. }) {
  290. return request(api + `/adq/adcreative/sync/all `, {
  291. method: 'PUT',
  292. data
  293. });
  294. }
  295. /**
  296. * 计划启停
  297. * @param adAccountId 本地ID
  298. */
  299. export async function putAdqCampaignConfigStatus(params: any) {
  300. let { accountId, campaignId, configuredStatus } = params
  301. return request(api + `/adq/campaign/configStatus/${accountId + '_' + campaignId}/${configuredStatus}`, {
  302. method: 'PUT',
  303. });
  304. }
  305. /**
  306. * 广告启停
  307. * @param adAccountId 本地ID
  308. */
  309. export async function putAdqAdgroupsConfigStatus(params: any) {
  310. let { accountId, adgroupId, configuredStatus } = params
  311. return request(api + `/adq/adgroups/configStatus/${accountId}/${adgroupId}/${configuredStatus}`, {
  312. method: 'PUT',
  313. });
  314. }
  315. /**
  316. * log
  317. * @param data
  318. * @returns
  319. */
  320. export async function getLogListApi(data: { accountId?: number, adgroupId?: number, adgroupName?: string, pageNum: number, pageSize: number }) {
  321. return request(api + `/adq/adgroups/operate/log`, {
  322. method: 'POST',
  323. data
  324. });
  325. }
  326. /**
  327. * 获取推广目标列表
  328. * */
  329. export async function getPromotedObjectList(data: { accountId?: number, promotedObjectType?: string, promotedObjectName?: string, pageNum: number, pageSize: number }) {
  330. return request(api + `/adq/promotedObject/list`, {
  331. method: 'POST',
  332. data
  333. });
  334. }
  335. /**
  336. * 同步推广目标列表
  337. * */
  338. export async function putPromotedObjectSync(data: any) {
  339. return request(api + `/adq/promotedObject/sync/all`, {
  340. method: 'PUT',
  341. data
  342. });
  343. }
  344. /**
  345. * 修改人群包
  346. * @param params
  347. * @returns
  348. */
  349. export async function getPutUserApi(params: { userId: number }) {
  350. return request(api + `/adq/adgroups/get/putUser/list`, {
  351. method: 'GET',
  352. params
  353. });
  354. }
  355. /**
  356. * 获取投手
  357. * @param data
  358. * @returns
  359. */
  360. export async function putModifyCustomAudienceApi(data: { adAccountId: number, adgroupIds: number[], customAudienceIds?: number[], excludedCustomAudienceIds?: number[] }) {
  361. return request(api + `/adq/adgroups/modifyCustomAudience`, {
  362. method: 'PUT',
  363. data
  364. });
  365. }
  366. /**获取服务商列表*/
  367. export async function getServiceProviderAll() {
  368. return request(api + `/adq/serviceProvider/all`, {
  369. method: 'GET',
  370. });
  371. }
  372. /*配置服务商*/
  373. export async function putConfigServiceProvider(data: { accountIds: any[], serviceProviderName: string }) {
  374. return request(api + `/adq/adAccount/configServiceProvider`, {
  375. method: 'PUT',
  376. data
  377. });
  378. }
  379. /**
  380. * 删除计划
  381. * @param data
  382. * @returns
  383. */
  384. export async function delCampaignIdsApi(data: { list: string }) {
  385. return request(api + `/adq/campaign/del/${data.list}`, {
  386. method: 'DELETE'
  387. });
  388. }
  389. /**
  390. * 批量修改计划状态
  391. * @param data
  392. * @returns
  393. */
  394. export async function putConfigStatusApi(data: { list: string, configuredStatus: 'AD_STATUS_NORMAL' | 'AD_STATUS_SUSPEND' }) {
  395. return request(api + `/adq/campaign/configStatus/${data.list}/${data.configuredStatus}`, {
  396. method: 'PUT'
  397. });
  398. }