index.ts 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461
  1. import { AxiosPromise } from "axios";
  2. import axios from "./config";
  3. // NOTE: 暂时使用ts-ignore忽略module not exported的问题
  4. // @ts-ignore
  5. import {
  6. IUser,
  7. IList,
  8. IDeliveryBook,
  9. IOfficialSimple,
  10. IBookSearchResult,
  11. ADpushSimple,
  12. IOfficials,
  13. ADPlanItem,
  14. deliveryPlanItem,
  15. IPlatform,
  16. adPlanLog,
  17. adPlanCount,
  18. PlanBack,
  19. RegisterData,
  20. FinanceData,
  21. AdGroupData,
  22. AdgroupList,
  23. } from "@/types/api";
  24. /**
  25. * 登录
  26. * @param userData 用户信息
  27. */
  28. export const doLogin = <T>(userData: T): AxiosPromise<IUser> => {
  29. return axios.post("/login", userData);
  30. };
  31. /**
  32. * 书籍搜素
  33. * @param key_word
  34. * @param page
  35. */
  36. export const getDeliveryBookList = (
  37. query: Partial<{
  38. official_name: string;
  39. book_name: string;
  40. page: number;
  41. }> = { page: 1 }
  42. ): AxiosPromise<IList<IDeliveryBook>> => {
  43. return axios("/getUserDeliveryBooks", {
  44. params: query,
  45. });
  46. };
  47. /**
  48. * 获取公众号 - 无分页 用作于下拉
  49. */
  50. export const getOfficialSimpleAccount = (): AxiosPromise<IOfficialSimple[]> => {
  51. return axios("/simpleUserOfficialAccounts");
  52. };
  53. /**
  54. * 通过书名搜索书籍
  55. * @param key_word
  56. * @param page
  57. */
  58. export const getBooksByName = (
  59. key_word: string,
  60. page = 1
  61. ): AxiosPromise<IList<IBookSearchResult>> => {
  62. return axios("/searchBooks", { params: { key_word, page } });
  63. };
  64. /**
  65. * @description: 获取广告投放列表
  66. */
  67. export const getAdPushList = (
  68. query: Partial<{
  69. email: string;
  70. account_name: string;
  71. account_id: string;
  72. advertiser_id: string;
  73. page: number;
  74. }> = { page: 1 }
  75. ): AxiosPromise<IList<ADpushSimple>> => {
  76. return axios("/ad/userAdAdvertisers", { params: query });
  77. };
  78. /**
  79. * 获取公众号列表
  80. * @param query
  81. */
  82. export const getOfficialAccounts = (query: {
  83. official_name: string;
  84. platform: string;
  85. page: number;
  86. }): AxiosPromise<IList<IOfficials>> => {
  87. return axios("/userOfficialAccounts", { params: query });
  88. };
  89. /**
  90. * 获取公众号列表
  91. * @param query
  92. */
  93. export const getADPlanlist = (
  94. query: Partial<{
  95. ad_id: string;
  96. advertiser_id: string;
  97. campaign_id: string;
  98. status: string;
  99. begin_date: any;
  100. end_date: any;
  101. cost_order: number;
  102. page: number;
  103. }> = { page: 1, status: "AD_STATUS_DELIVERY_OK" }
  104. ): AxiosPromise<IList<ADPlanItem>> => {
  105. return axios("/ad/adData", { params: query });
  106. };
  107. /**
  108. * @description: 获取投放数据列表
  109. */
  110. export const getDeliveryStatList = (
  111. query: Partial<{
  112. start_time: string;
  113. end_time: string;
  114. official_name: string;
  115. book_name: string;
  116. page: number;
  117. day_num: number;
  118. }> = { page: 1 }
  119. ): AxiosPromise<any> => {
  120. return axios("/delivery/stat", { params: query });
  121. };
  122. /*
  123. * 获取平台列表
  124. */
  125. export const getPlatforms = (): AxiosPromise<IPlatform[]> => {
  126. return axios("/simplePlatforms");
  127. };
  128. /**
  129. * 添加投放书籍
  130. * @param data
  131. */
  132. export const addDeliveryBook = (data: {
  133. delivery_bid: string | number;
  134. official_id: string | number;
  135. platform: string;
  136. }) => {
  137. return axios.post("/addDeliveryBook", data);
  138. };
  139. /**
  140. * 退出登录
  141. */
  142. export const logout = () => {
  143. return axios("/logout");
  144. };
  145. /**
  146. * 停止投放书籍
  147. * @param id 记录id
  148. */
  149. export const onStopDeliveryBook = (id: number) => {
  150. return axios("/stopDeliveryBook", { params: { id } });
  151. };
  152. /**
  153. * 自定义列
  154. * @param null
  155. */
  156. export const getCustomColumn = () => {
  157. return axios("/ad/adFields");
  158. };
  159. /**
  160. * @description: 获取更多投放数据
  161. */
  162. export const getDeliveryMoreStatList = (
  163. query: Partial<{
  164. official_id: number;
  165. start_time: string;
  166. end_time: string;
  167. official_name: string;
  168. book_name: string;
  169. page: number;
  170. }> = { page: 1 }
  171. ): AxiosPromise<IList<any>> => {
  172. return axios("/delivery/moreStat", { params: query });
  173. };
  174. /* 广告授权
  175. * @param null
  176. */
  177. export const getAdauth = () => {
  178. return axios("/oauth/accountGrant");
  179. };
  180. /* 广告预算修改
  181. * @param null
  182. */
  183. export const adChangeMoney = (data: {
  184. ad_id: string | number;
  185. budget: string | number;
  186. }) => {
  187. return axios.post("/ad/updateAdBudget", data);
  188. };
  189. /* 广告出价修改
  190. * @param null
  191. */
  192. export const adChangeCrem = (data: {
  193. ad_id: string | number;
  194. bid: string | number;
  195. }) => {
  196. return axios.post("/api/updateAdBid", data);
  197. };
  198. /* 修改广告状态
  199. * @param null
  200. */
  201. export const statusChange = (data: {
  202. ad_id: string | number;
  203. status: string;
  204. }) => {
  205. return axios.post("/ad/updateAdStatus", data);
  206. };
  207. /* 获取操作日志
  208. * @param null
  209. */
  210. export const opertaroLog = (
  211. query: Partial<{
  212. begin_time: string;
  213. end_time: string;
  214. page: number;
  215. ad_id: string;
  216. }> = { page: 1 }
  217. ): AxiosPromise<IList<adPlanLog>> => {
  218. return axios("/ad/adOptLogs", { params: query });
  219. };
  220. /* 获取广告状态
  221. * @param null
  222. */
  223. export const getAddStatus = (): AxiosPromise<any> => {
  224. return axios("/ad/adStatus");
  225. };
  226. //广告计划字段
  227. export const getAdplanTable = (query: {
  228. field: string;
  229. }): AxiosPromise<Array<{
  230. desc: string;
  231. name: string;
  232. }>> => {
  233. return axios("/ad/adStatFields", { params: query });
  234. };
  235. //广告计划字段
  236. export const getAdplanData = (query: {
  237. field: string;
  238. begin_date: string;
  239. end_date: string;
  240. ids: string;
  241. page: number;
  242. }): AxiosPromise<any> => {
  243. return axios("/ad/adStats", { params: query });
  244. };
  245. //获取计划的回传配置
  246. export const getAdBackPlan = (query: {
  247. ad_lid: string;
  248. back_platform: string;
  249. }): AxiosPromise<any> => {
  250. return axios("/getReportConfig", { params: query });
  251. };
  252. //设置回传配置
  253. export const setBackConfig = (data: {
  254. id: string | number;
  255. back_on: number;
  256. rate: number;
  257. condition: string;
  258. price: number;
  259. float_rate: string | number;
  260. }) => {
  261. return axios.post("/setReportConfig", data);
  262. };
  263. /**
  264. * @description: 获取广告投放列表
  265. */
  266. export const getRegisterData = (
  267. query: Partial<{
  268. ad_lid: number;
  269. back_platform: string;
  270. is_paid: number;
  271. show_all: number;
  272. page: number;
  273. }> = { page: 1 }
  274. ): AxiosPromise<IList<RegisterData>> => {
  275. return axios("/getAdMatchUsers", { params: query });
  276. };
  277. //强制回传
  278. export const setMustUpback = (data: {
  279. uid: string | number;
  280. platform: string;
  281. report_type: string;
  282. }) => {
  283. return axios.post("/forceReport", data);
  284. };
  285. //广告统计字段
  286. export const getAdStatus = (): AxiosPromise<Array<{
  287. desc: string;
  288. name: string;
  289. }>> => {
  290. return axios("/ad/adStatOptFields");
  291. };
  292. //广告统计tab
  293. export const getDesignList = (query: {
  294. day_num: number;
  295. }): AxiosPromise<Array<{
  296. desc: string;
  297. name: string;
  298. }>> => {
  299. return axios("/delivery/getDeliveryStatFields", { params: query });
  300. };
  301. //财务数据
  302. export const getFinanceList = (
  303. query: Partial<{
  304. start_ymd: string;
  305. end_ymd: string;
  306. page: number;
  307. }> = { page: 1 }
  308. ): AxiosPromise<IList<FinanceData>> => {
  309. return axios("/ad/adFinanceStat", { params: query });
  310. };
  311. //广告组数据
  312. export const getAdgroupList = (
  313. query: Partial<{
  314. advertiser_id: string;
  315. account_id: string;
  316. campaign_id: string;
  317. begin_date: string;
  318. end_date: string;
  319. page: number;
  320. }> = { page: 1 }
  321. ): AxiosPromise<IList<AdGroupData>> => {
  322. return axios("/ad/adCampaigns", { params: query });
  323. };
  324. //修改广告组状态
  325. export const setGroupStatus = (data: {
  326. campaign_id: string | number;
  327. status: string | number;
  328. }) => {
  329. return axios.post("/ad/updateCampaignStatus", data);
  330. };
  331. //广告组账户列表
  332. export const getAdgroupData = (
  333. query: Partial<{
  334. advertiser_id: string | number;
  335. account_id: string | number;
  336. page: number;
  337. begin_date: string;
  338. end_date: string;
  339. }> = { page: 1 }
  340. ): AxiosPromise<IList<AdgroupList>> => {
  341. return axios("/ad/adAdvertisers", { params: query });
  342. };
  343. //更新账户日预算
  344. export const setGroupDay = (data: {
  345. advertiser_id: string | number;
  346. budget_mode: string;
  347. budget?: number | string;
  348. }) => {
  349. return axios.post("/ad/updateAdvertiserBudget", data);
  350. };
  351. //获取自定义所有列
  352. export const getCoustomClomuns = (): any => {
  353. return axios("/ad/getFields");
  354. };
  355. //设置站点回传比例
  356. export const setChannelRate = (data: {
  357. rate: string | number;
  358. channel_id: string;
  359. }) => {
  360. return axios.post("/setChannelConfig", data);
  361. };
  362. //保存自定义列
  363. export const setCoustomClomuns = (data: any): any => {
  364. return axios.post("/ad/saveFields", { fields: data });
  365. };
  366. //获取组统计
  367. export const ALLadGroupData = (
  368. query: Partial<{
  369. advertiser_id: string | number;
  370. campaign_id: string | number;
  371. end_date: string;
  372. begin_date: string;
  373. cost_order: number;
  374. }>
  375. ) => {
  376. return axios("/ad/adCampaignSum", { params: query });
  377. };
  378. //获取🐖统计
  379. export const ALLAcountGroupData = (
  380. query: Partial<{
  381. advertiser_id: string | number;
  382. campaign_id: string | number;
  383. begin_date: string;
  384. end_date: string;
  385. cost_order: number;
  386. }>
  387. ) => {
  388. return axios("/ad/adAdvertiserSum", { params: query });
  389. };
  390. //获取广告计划汇总
  391. export const getadDataSum = (
  392. query: Partial<{
  393. advertiser_id: string | number;
  394. campaign_id: string | number;
  395. ad_id: number;
  396. begin_date: string;
  397. end_date: string;
  398. cost_order: number;
  399. status: number | string;
  400. }>
  401. ) => {
  402. return axios("/ad/adSumData", { params: query });
  403. };
  404. //设置回传付费最低金额
  405. export const setBackMinimum = (data: {
  406. advertiser_id: string;
  407. back_min_price: number | string;
  408. }) => {
  409. return axios.post("/setAdAdvertiserBackMinPrice", data);
  410. };
  411. /* 修改广告状态
  412. * @param null
  413. */
  414. export const statusAdChange = (data: {
  415. advertiser_id: string | number;
  416. is_enable: string | number
  417. }) => {
  418. return axios("/ad/updateAdvertiserStatus", { params: data });
  419. };