adMonitor.ts 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. import { api } from '../api'
  2. import { request } from 'umi'
  3. export interface ListType {
  4. // startTime?: string,
  5. // endTime?: string,
  6. timeUnit?: 'minute' | 'hour' | 'day',//时间维度
  7. adgroup?: any,//广告ID
  8. campaign?: any,//计划ID
  9. accountId?: any,//广告账户
  10. sysUserId?: any,//投手
  11. pageNum?: number,//页数
  12. pageSize?: number//条数
  13. sortField?: string, // "排序字段"
  14. sort?: 'ASC' | 'DESC' // 排序方式
  15. topN?: number
  16. }
  17. /** 获取起量广告列表总表 */
  18. export async function getPlanListApi(params: ListType) {
  19. Object.keys(params).forEach(key => {
  20. if (!params[key]) {
  21. delete params[key]
  22. }
  23. })
  24. return request(`${api}/tencentMonitor/adControl/up/ad/list`, {
  25. method: 'POST',
  26. data: params
  27. })
  28. }
  29. /** 获取起量广告列表明细 */
  30. export async function getDetailListApi(params: ListType) {
  31. Object.keys(params).forEach(key => {
  32. if (!params[key]) {
  33. delete params[key]
  34. }
  35. })
  36. return request(`${api}/tencentMonitor/adControl/up/ad/detail/list`, {
  37. method: 'POST',
  38. data: params
  39. })
  40. }
  41. export interface ListHourProps {
  42. pageNum: number,
  43. pageSize: number,
  44. accountIdStr?: string, // 广告账号(字符串文本,随便输,可以输入多个)
  45. adCreateTimeMin?: string // 广告创建时间
  46. adCreateTimeMax?: string //
  47. adgroupIdStr?: string // 广告 id(字符串文本,随便输,可以输入多个)
  48. columns?: string[] // 列
  49. conversionsCountDayMin?: number, // 最低今日转化数
  50. conversionsCountTotalMin?: number // 最低总转化数
  51. costDayMin?: number, // 最低今日消耗
  52. costTotalMin?: number, // 最小总消耗
  53. promotedObjectName?: string // 推广目标名称
  54. promotedObjectType?: string // 推广目标类型
  55. sortAsc?: boolean, // 是否顺序
  56. sortColumn?: string, // 排序列
  57. sysUserIds?: number[],
  58. thousandDisplayPriceDayMin?: number, // 最低今日千次曝光成本
  59. thousandDisplayPriceTotalMin?: number // 最低总千次曝光成本
  60. }
  61. export async function getListForHourApi(params: ListHourProps) {
  62. return request(`${api}/tencentMonitor/adData/listForHour`, {
  63. method: 'POST',
  64. data: params
  65. })
  66. }
  67. /** 获取起量广告列表5min */
  68. export async function getMinuteListApi(params: ListType) {
  69. Object.keys(params).forEach(key => {
  70. if (!params[key]) {
  71. delete params[key]
  72. }
  73. })
  74. return request(`${api}/tencentMonitor/adControl/up/ad/detail/list/minute`, {
  75. method: 'POST',
  76. data: params
  77. })
  78. }
  79. /** 获取今日计划总消耗图谱 折线图 */
  80. export async function getTotalCostApi(params: ListType) {
  81. Object.keys(params).forEach(key => {
  82. if (!params[key]) {
  83. delete params[key]
  84. }
  85. })
  86. return request(`${api}/tencentMonitor/adControl/total/cost/list`, {
  87. method: 'GET',
  88. params
  89. })
  90. }
  91. /** 获取计划消耗图谱 z柱状图 */
  92. export async function getPlanCostApi(params: ListType) {
  93. Object.keys(params).forEach(key => {
  94. if (!params[key]) {
  95. delete params[key]
  96. }
  97. })
  98. return request(`${api}/tencentMonitor/adControl/ad/cost/list`, {
  99. method: 'GET',
  100. params
  101. })
  102. }
  103. /** 获取消耗速度详情(弹窗) */
  104. export async function getCostSpeedApi(params: ListType) {
  105. Object.keys(params).forEach(key => {
  106. if (!params[key]) {
  107. delete params[key]
  108. }
  109. })
  110. return request(`${api}/tencentMonitor/adControl/cost/speed/info`, {
  111. method: 'POST',
  112. data: params
  113. })
  114. }
  115. /** 获取组员 */
  116. export async function getUserGroupApi() {
  117. return request(`${api}/erp/userGroup/memberUser/`, {
  118. method: 'GET'
  119. })
  120. }
  121. export interface allPlanProps {
  122. pageNum?: number,
  123. pageSize?: number,
  124. adSeat?: any[],// 广告位置 1 : 朋友圈信息流, 2 : 公众号文章底部, 3 : 公众号文中广告, 4 : 公众号文章视频贴片, 5 : 小程序banner广告, 6 : 激励式广告
  125. createStartTime?: string, // 创建开始时间
  126. createEndTime?: string, // 创建结束时间
  127. adgroup?: string, // 广告ID & 广告名称
  128. creativeId?: string, // 创意ID & 创意名称
  129. creativeStatus?: 1 | 2 | 3, // 创意状态, 0或者null : 全部, 1 : 审核通过, 2 : 审核中, 3 : 未通过
  130. dataStartTime?: string, // 数据结束日期(格式 : yyyy-MM-dd)
  131. dataEndTime?: string, // 数据结束日期(格式 : yyyy-MM-dd)
  132. followStatus?: 1 | 2, // 关注状态, 0或者null : 全部, 1 : 已关注, 2 : 未关注
  133. mainBookList?: any[], // 主投书籍列表
  134. accountId?: any, // 投放计划数据源, 账号
  135. sysUserId?: any, // 投手id列表
  136. campaign?: string, // 计划id或者计划名称
  137. adStatus?: number, // 计划状态, 0或者null : 全部, 1 : 投放中, …依次递增
  138. sortField?: string, // "排序字段"
  139. sort?: 'ASC' | 'DESC', // 排序方式
  140. }
  141. /** 计划列表 */
  142. export async function getAllPlanListApi(data: allPlanProps) {
  143. Object.keys(data).forEach(key => {
  144. if (!data[key]) {
  145. delete data[key]
  146. }
  147. })
  148. return request(`${api}/tencentMonitor/adControl/all/ad/list`, {
  149. method: 'POST',
  150. data
  151. })
  152. }
  153. /** 获取所有书籍 */
  154. export async function getBookListAllApi() {
  155. return request(`${api}/erp/book/all`, {
  156. method: 'GET'
  157. })
  158. }
  159. /** 下载 */
  160. /** 下载起量广告总表 */
  161. export async function downLoadUpAdApi(params: ListType) {
  162. return request(`${api}/tencentMonitor/adExcel/up/ad/list`, {
  163. method: 'POST',
  164. data: params,
  165. responseType: 'blob'
  166. })
  167. }
  168. /** 下载单个广告明细表(小时) */
  169. export async function downLoadDetailApi(params: ListType) {
  170. return request(`${api}/tencentMonitor/adExcel/up/ad/detail/list`, {
  171. method: 'POST',
  172. data: params,
  173. responseType: 'blob'
  174. })
  175. }
  176. /** 下载单个广告明细表(5分钟) */
  177. export async function downLoadDetailMinuteApi(params: ListType) {
  178. return request(`${api}/tencentMonitor/adExcel/up/ad/detail/list/minute`, {
  179. method: 'POST',
  180. data: params,
  181. responseType: 'blob'
  182. })
  183. }
  184. /** 下载消耗速度详情(弹窗) */
  185. export async function downLoadSpeedApi(params: ListType) {
  186. return request(`${api}/tencentMonitor/adExcel/cost/speed/info`, {
  187. method: 'POST',
  188. data: params,
  189. responseType: 'blob'
  190. })
  191. }
  192. /** 下载计划列表 */
  193. export async function downLoadAllAdListApi(data: allPlanProps) {
  194. Object.keys(data).forEach(key => {
  195. if (!data[key]) {
  196. delete data[key]
  197. }
  198. })
  199. return request(`${api}/tencentMonitor/adExcel/all/ad/list`, {
  200. method: 'POST',
  201. data,
  202. responseType: 'blob'
  203. })
  204. }
  205. // 监控数据源
  206. // 查询分组
  207. export async function getAdGroupListApi() {
  208. return request(`${api}/tencentMonitor/adGroup/list`, {
  209. method: 'GET'
  210. })
  211. }
  212. // 查询分组
  213. export async function addEditGroupApi(data: { groupName: string, id?: number, remark?: string }) {
  214. return request(`${api}/tencentMonitor/adGroup/add/or/update`, {
  215. method: 'POST',
  216. data
  217. })
  218. }
  219. // 删除分组
  220. export async function deleteAdGroupApi(params: { id: number }) {
  221. return request(`${api}/tencentMonitor/adGroup/delete`, {
  222. method: 'DELETE',
  223. params
  224. })
  225. }
  226. // 分组账号查询
  227. export interface AccountListProps {
  228. // beginDate?: string,
  229. // endDate?: string,
  230. groupId?: number,
  231. mpAppIdList?: string[],
  232. pitcherIdList?: string[],
  233. pageNum: number,
  234. pageSize: number
  235. }
  236. export async function getAccountListApi(data: AccountListProps) {
  237. Object.keys(data).forEach(key => {
  238. if (!data[key]) {
  239. delete data[key]
  240. }
  241. })
  242. return request(`${api}/tencentMonitor/adGroup/accountList`, {
  243. method: 'POST',
  244. data
  245. })
  246. }
  247. // 账号绑定或者解绑分组
  248. export async function addDelAccountApi(data: { accountIdList: number[], groupId: number, type: 0 | 1 }) {
  249. return request(`${api}/tencentMonitor/adGroup/account/update`, {
  250. method: 'POST',
  251. data
  252. })
  253. }
  254. /**
  255. * 获取广告账户
  256. * @returns
  257. */
  258. export async function getAdqAccountListApi() {
  259. return request(`${api}/adq/adAccount/allOfUser`, {
  260. method: 'Get'
  261. })
  262. }
  263. /**
  264. * NEW 广告消耗趋势 获取今日计划总消耗图谱 折线图
  265. * @param data
  266. * @returns
  267. */
  268. export async function getCostTrendListApi(data: ListType) {
  269. Object.keys(data).forEach(key => {
  270. if (!data[key]) {
  271. delete data[key]
  272. }
  273. })
  274. return request(`${api}/tencentMonitor/adData/costTrend`, {
  275. method: 'POST',
  276. data
  277. })
  278. }
  279. /**
  280. * NEW 广告起量排行
  281. * @param params
  282. * @returns
  283. */
  284. export async function getCostTopListApi(data: ListType) {
  285. Object.keys(data).forEach(key => {
  286. if (!data[key]) {
  287. delete data[key]
  288. }
  289. })
  290. return request(`${api}/tencentMonitor/adData/costTop`, {
  291. method: 'POST',
  292. data
  293. })
  294. }
  295. export interface GetColumnTrendProps {
  296. accountId: number
  297. adgroupId: number
  298. timeUnit: 'day' | 'hour' | 'minute'
  299. trendColumns: string[]
  300. }
  301. /**
  302. * NEW 广告指标趋势
  303. * @param data
  304. * @returns
  305. */
  306. export async function getColumnTrendApi(data: GetColumnTrendProps) {
  307. return request(`${api}/tencentMonitor/adData/columnTrend`, {
  308. method: 'POST',
  309. data
  310. })
  311. }
  312. /**
  313. * NEW 广告数据-指定广告的总数据
  314. * @param data
  315. * @returns
  316. */
  317. export async function getAdTotalDataApi(data: { accountId: number, adgroupId: number, columns: string[] }) {
  318. return request(`${api}/tencentMonitor/adData/adTotalData`, {
  319. method: 'POST',
  320. data
  321. })
  322. }
  323. export interface GetListForAdProps {
  324. accountId: number,
  325. adgroupId: number,
  326. columns: string[],
  327. pageNum: number,
  328. pageSize: number,
  329. timeUnit: 'day' | 'hour' | 'minute'
  330. sortAsc?: boolean
  331. }
  332. /**
  333. * NEW 广告数据列表-指定广告的所有数据
  334. * @param data
  335. * @returns
  336. */
  337. export async function getListForAdApi(data: GetListForAdProps) {
  338. return request(`${api}/tencentMonitor/adData/listForAd`, {
  339. method: 'POST',
  340. data
  341. })
  342. }
  343. export interface AdListProps {
  344. pageNum: number
  345. pageSize: number
  346. columns: string[]
  347. adCreateTimeMax?: string
  348. adCreateTimeMin?: string
  349. conversionsCountDayMin?: number
  350. conversionsCountTotalMin?: number,
  351. costDayMin?: number
  352. costTotalMin?: number
  353. thousandDisplayPriceDayMin?: number
  354. thousandDisplayPriceTotalMin?: number
  355. promotedObjectName?: string
  356. accountIdStr?: string,
  357. accountMemo?: string,
  358. accountRemark?: string,
  359. adgroupIdStr?: string,
  360. adgroupName?: string
  361. isDeepConversionSpec?: boolean
  362. isDeleted?: boolean
  363. optimizationGoal?: string
  364. promotedObjectType?: string
  365. sortAsc?: boolean
  366. sortColumn?: string
  367. status?: string
  368. sysUserIds?: number
  369. putDateBegin?: string,
  370. putDateEnd?: string
  371. }
  372. export async function getAdListApi(data: AdListProps) {
  373. return request(`${api}/tencentMonitor/ad/list`, {
  374. method: 'POST',
  375. data
  376. })
  377. }
  378. /**
  379. * 广告详情
  380. * @param param0
  381. * @returns
  382. */
  383. export async function getAdgroupsDetailsApi({ accountId, adgroupId }: { accountId: any, adgroupId: any }) {
  384. return request(`${api}/adq/adgroups/detail/${accountId}/${adgroupId}`, {
  385. method: 'POST'
  386. })
  387. }
  388. /**
  389. * 移除广告的告警规则---广告告警规则表的操作
  390. * @param param0
  391. * @returns
  392. */
  393. export async function delAdWarningRuleApi({ accountId, adgroupId, ruleId }: { accountId: any, adgroupId: any, ruleId: number }) {
  394. return request(`${api}/adq/sysWarningRule/removeAdgroup/${accountId}/${adgroupId}/${ruleId}`, {
  395. method: 'PUT'
  396. })
  397. }
  398. /**
  399. * 将指定广告加入规则黑名单---默认列表 + 广告账号列表的操作
  400. * @param param0
  401. * @returns
  402. */
  403. export async function addAdToRuleBlackListApi({ accountId, adgroupId, ruleId }: { accountId: any, adgroupId: any, ruleId: number }) {
  404. return request(`${api}/adq/sysWarningRule/configRuleBlackList/${accountId}/${adgroupId}/${ruleId}`, {
  405. method: 'PUT'
  406. })
  407. }
  408. /**
  409. * 将广告移出告警规则的黑名单---黑名单列表的操作
  410. * @param param0
  411. * @returns
  412. */
  413. export async function delAdToRuleBlackListApi({ accountId, adgroupId, ruleId }: { accountId: any, adgroupId: any, ruleId: number }) {
  414. return request(`${api}/adq/sysWarningRule/removeBlackList/${accountId}/${adgroupId}/${ruleId}`, {
  415. method: 'PUT'
  416. })
  417. }
  418. /**
  419. * 配置广告的告警规则
  420. * @param param0
  421. * @returns
  422. */
  423. export async function configAdWarningRuleApi({ accountId, adgroupId, ruleIds }: { accountId: any, adgroupId: any, ruleIds: string }) {
  424. return request(`${api}/adq/sysWarningRule/configRuleAdgroup/${accountId}/${adgroupId}/${ruleIds}`, {
  425. method: 'PUT'
  426. })
  427. }