index.ts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726
  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. IUserAdmin,
  24. AccountPlanConfig,
  25. IGZHItem,
  26. IDomainItem,
  27. IPBookItem,
  28. } from "#/api";
  29. /**
  30. * 登录
  31. * @param userData 用户信息
  32. */
  33. export const doLogin = <T>(userData: T): AxiosPromise<IUser> => {
  34. return axios.post("/login", userData);
  35. };
  36. /**
  37. * 书籍搜素
  38. * @param key_word
  39. * @param page
  40. */
  41. export const getDeliveryBookList = (
  42. query: Partial<{
  43. official_name: string;
  44. book_name: string;
  45. page: number;
  46. }> = { page: 1 }
  47. ): AxiosPromise<IList<IDeliveryBook>> => {
  48. return axios("/getUserDeliveryBooks", {
  49. params: query,
  50. });
  51. };
  52. /**
  53. * 获取公众号 - 无分页 用作于下拉
  54. */
  55. export const getOfficialSimpleAccount = (): AxiosPromise<IOfficialSimple[]> => {
  56. return axios("/simpleUserOfficialAccounts");
  57. };
  58. /**
  59. * 通过书名搜索书籍
  60. * @param key_word
  61. * @param page
  62. */
  63. export const getBooksByName = (
  64. key_word: string,
  65. page = 1
  66. ): AxiosPromise<IList<IBookSearchResult>> => {
  67. return axios("/searchBooks", { params: { key_word, page } });
  68. };
  69. /**
  70. * @description: 获取广告投放列表
  71. */
  72. export const getAdPushList = (
  73. query: Partial<{
  74. email: string;
  75. account_name: string;
  76. account_id: string;
  77. advertiser_id: string;
  78. page: number;
  79. }> = { page: 1 }
  80. ): AxiosPromise<IList<ADpushSimple>> => {
  81. return axios("/ad/userAdAdvertisers", { params: query });
  82. };
  83. /**
  84. * 获取公众号列表
  85. * @param query
  86. */
  87. export const getOfficialAccounts = (query: {
  88. official_name: string;
  89. platform: string;
  90. page: number;
  91. report_module: any;
  92. report_status: any;
  93. }): AxiosPromise<IList<IOfficials>> => {
  94. return axios("/userOfficialAccounts", { params: query });
  95. };
  96. /**
  97. * 获取公众号列表
  98. * @param query
  99. */
  100. export const getADPlanlist = (
  101. query: Partial<{
  102. ad_id: string;
  103. advertiser_id: string;
  104. campaign_id: string;
  105. status: string;
  106. begin_date: any;
  107. end_date: any;
  108. cost_order: number;
  109. page: number;
  110. }> = { page: 1 }
  111. ): AxiosPromise<IList<ADPlanItem>> => {
  112. return axios("/ad/adData", { params: query });
  113. };
  114. /**
  115. * @description: 获取投放数据列表
  116. */
  117. export const getDeliveryStatList = (
  118. query: Partial<{
  119. start_time: string;
  120. end_time: string;
  121. official_name: string;
  122. book_name: string;
  123. page: number;
  124. day_num: number;
  125. }> = { page: 1 }
  126. ): AxiosPromise<any> => {
  127. return axios("/delivery/stat", { params: query });
  128. };
  129. /*
  130. * 获取平台列表
  131. */
  132. export const getPlatforms = (): AxiosPromise<IPlatform[]> => {
  133. return axios("/simplePlatforms");
  134. };
  135. /**
  136. * 添加投放书籍
  137. * @param data
  138. */
  139. export const addDeliveryBook = (data: {
  140. delivery_bid: string | number;
  141. official_id: string | number;
  142. platform: string;
  143. }) => {
  144. return axios.post("/addDeliveryBook", data);
  145. };
  146. /**
  147. * 退出登录
  148. */
  149. export const logout = () => {
  150. return axios("/logout");
  151. };
  152. /**
  153. * 停止投放书籍
  154. * @param id 记录id
  155. */
  156. export const onStopDeliveryBook = (id: number) => {
  157. return axios("/stopDeliveryBook", { params: { id } });
  158. };
  159. /**
  160. * 自定义列
  161. * @param null
  162. */
  163. export const getCustomColumn = () => {
  164. return axios("/ad/adFields");
  165. };
  166. /**
  167. * @description: 获取更多投放数据
  168. */
  169. export const getDeliveryMoreStatList = (
  170. query: Partial<{
  171. official_id: number;
  172. start_time: string;
  173. end_time: string;
  174. official_name: string;
  175. book_name: string;
  176. page: number;
  177. }> = { page: 1 }
  178. ): AxiosPromise<IList<any>> => {
  179. return axios("/delivery/moreStat", { params: query });
  180. };
  181. /* 广告授权
  182. * @param null
  183. */
  184. export const getAdauth = () => {
  185. return axios("/oauth/accountGrant");
  186. };
  187. /* 广告预算修改
  188. * @param null
  189. */
  190. export const adChangeMoney = (data: {
  191. ad_id: string | number;
  192. budget: string | number;
  193. }) => {
  194. return axios.post("/ad/updateAdBudget", data);
  195. };
  196. /* 广告出价修改
  197. * @param null
  198. */
  199. export const adChangeCrem = (data: {
  200. ad_id: string | number;
  201. bid: string | number;
  202. }) => {
  203. return axios.post("/api/updateAdBid", data);
  204. };
  205. /* 修改广告状态
  206. * @param null
  207. */
  208. export const statusChange = (data: {
  209. ad_id: string | number;
  210. status: string;
  211. }) => {
  212. return axios.post("/ad/updateAdStatus", data);
  213. };
  214. /* 获取操作日志
  215. * @param null
  216. */
  217. export const opertaroLog = (
  218. query: Partial<{
  219. begin_time: string;
  220. end_time: string;
  221. page: number;
  222. ad_id: string;
  223. }> = { page: 1 }
  224. ): AxiosPromise<IList<adPlanLog>> => {
  225. return axios("/ad/adOptLogs", { params: query });
  226. };
  227. /* 获取广告状态
  228. * @param null
  229. */
  230. export const getAddStatus = (): AxiosPromise<any> => {
  231. return axios("/ad/adStatus");
  232. };
  233. //广告计划字段
  234. export const getAdplanTable = (query: {
  235. field: string;
  236. }): AxiosPromise<Array<{
  237. desc: string;
  238. name: string;
  239. }>> => {
  240. return axios("/ad/adStatFields", { params: query });
  241. };
  242. //广告计划字段
  243. export const getAdplanData = (query: {
  244. field: string;
  245. begin_date: string;
  246. end_date: string;
  247. ids: string;
  248. page: number;
  249. }): AxiosPromise<any> => {
  250. return axios("/ad/adStats", { params: query });
  251. };
  252. //获取计划的回传配置
  253. export const getAdBackPlan = (query: {
  254. ad_lid: string;
  255. back_platform: string;
  256. }): AxiosPromise<any> => {
  257. return axios("/getReportConfig", { params: query });
  258. };
  259. //设置回传配置
  260. export const setBackConfig = (data: {
  261. id: string | number;
  262. back_on: number;
  263. rate: number;
  264. condition: string;
  265. price: number;
  266. float_rate: string | number;
  267. }) => {
  268. return axios.post("/setReportConfig", data);
  269. };
  270. /**
  271. * @description: 获取广告投放列表
  272. */
  273. export const getRegisterData = (
  274. query: Partial<{
  275. ad_lid: number;
  276. back_platform: string;
  277. is_paid: number;
  278. show_all: number;
  279. page: number;
  280. }> = { page: 1 }
  281. ): AxiosPromise<IList<RegisterData>> => {
  282. return axios("/getAdMatchUsers", { params: query });
  283. };
  284. //强制回传
  285. export const setMustUpback = (data: {
  286. uid: string | number;
  287. platform: string;
  288. report_type: string;
  289. }) => {
  290. return axios.post("/forceReport", data);
  291. };
  292. //广告统计字段
  293. export const getAdStatus = (): AxiosPromise<Array<{
  294. desc: string;
  295. name: string;
  296. }>> => {
  297. return axios("/ad/adStatOptFields");
  298. };
  299. //广告统计tab
  300. export const getDesignList = (query: {
  301. day_num: number;
  302. }): AxiosPromise<Array<{
  303. desc: string;
  304. name: string;
  305. }>> => {
  306. return axios("/delivery/getDeliveryStatFields", { params: query });
  307. };
  308. //财务数据
  309. export const getFinanceList = (
  310. query: Partial<{
  311. start_ymd: string;
  312. end_ymd: string;
  313. page: number;
  314. advertiser_id: string;
  315. }> = { page: 1 }
  316. ): AxiosPromise<IList<FinanceData>> => {
  317. return axios("/ad/adFinanceStat", { params: query });
  318. };
  319. //广告组数据
  320. export const getAdgroupList = (
  321. query: Partial<{
  322. advertiser_id: string;
  323. account_id: string;
  324. campaign_id: string;
  325. begin_date: string;
  326. end_date: string;
  327. page: number;
  328. uids: string;
  329. }> = { page: 1 }
  330. ): AxiosPromise<IList<AdGroupData>> => {
  331. return axios("/ad/adCampaigns", { params: query });
  332. };
  333. //修改广告组状态
  334. export const setGroupStatus = (data: {
  335. campaign_id: string | number;
  336. status: string | number;
  337. }) => {
  338. return axios.post("/ad/updateCampaignStatus", data);
  339. };
  340. //广告组账户列表
  341. export const getAdgroupData = (
  342. query: Partial<{
  343. advertiser_id: string | number;
  344. account_id: string | number;
  345. page: number;
  346. begin_date: string;
  347. end_date: string;
  348. uids: string;
  349. }> = { page: 1 }
  350. ): AxiosPromise<IList<AdgroupList>> => {
  351. return axios("/ad/adAdvertisers", { params: query });
  352. };
  353. //更新账户日预算
  354. export const setGroupDay = (data: {
  355. advertiser_id: string | number;
  356. budget_mode: string;
  357. budget?: number | string;
  358. }) => {
  359. return axios.post("/ad/updateAdvertiserBudget", data);
  360. };
  361. //获取自定义所有列
  362. export const getCoustomClomuns = (): any => {
  363. return axios("/ad/getFields");
  364. };
  365. //设置站点回传比例
  366. export const setChannelRate = (data: {
  367. rate: string | number;
  368. channel_id: string;
  369. }) => {
  370. return axios.post("/setChannelConfig", data);
  371. };
  372. //保存自定义列
  373. export const setCoustomClomuns = (data: any): any => {
  374. return axios.post("/ad/saveFields", { fields: data });
  375. };
  376. //获取组统计
  377. export const ALLadGroupData = (
  378. query: Partial<{
  379. advertiser_id: string | number;
  380. campaign_id: string | number;
  381. end_date: string;
  382. begin_date: string;
  383. cost_order: number;
  384. uids: string;
  385. }>
  386. ) => {
  387. return axios("/ad/adCampaignSum", { params: query });
  388. };
  389. //获取🐖统计
  390. export const ALLAcountGroupData = (
  391. query: Partial<{
  392. advertiser_id: string | number;
  393. campaign_id: string | number;
  394. begin_date: string;
  395. end_date: string;
  396. cost_order: number;
  397. uids: string;
  398. }>
  399. ) => {
  400. return axios("/ad/adAdvertiserSum", { params: query });
  401. };
  402. //获取广告计划汇总
  403. export const getadDataSum = (
  404. query: Partial<{
  405. advertiser_id: string | number;
  406. campaign_id: string | number;
  407. ad_id: number;
  408. begin_date: string;
  409. end_date: string;
  410. cost_order: number;
  411. status: number | string;
  412. }>
  413. ) => {
  414. return axios("/ad/adSumData", { params: query });
  415. };
  416. //设置回传付费最低金额
  417. export const setBackMinimum = (data: {
  418. advertiser_id: string;
  419. back_min_price: number | string;
  420. }) => {
  421. return axios.post("/setAdAdvertiserBackMinPrice", data);
  422. };
  423. /* 修改广告状态
  424. * @param null
  425. */
  426. export const statusAdChange = (data: {
  427. advertiser_id: string | number;
  428. is_enable: string | number;
  429. }) => {
  430. return axios("/ad/updateAdvertiserStatus", { params: data });
  431. };
  432. /**
  433. * 获取权限用户列表
  434. * @returns
  435. */
  436. export const getAuthorUser = (): AxiosPromise<IUserAdmin> => {
  437. return axios("/userInfo");
  438. };
  439. // 获取公众号回传配置
  440. export const getOfficialBackConfig = (
  441. channel_id: number
  442. ): AxiosPromise<AccountPlanConfig> => {
  443. return axios("/channel/reportConfig", { params: { channel_id } });
  444. };
  445. // 保存公众号回传配置
  446. export const setOfficialBackConfig = (data: any) => {
  447. return axios.post("/channel/setReportConfig", data);
  448. };
  449. // 切换公众号回传方式
  450. export const onUpdateOfficialReportType = (
  451. channel_id: number,
  452. report_module: string
  453. ) => {
  454. return axios.post("/channel/switchReportModule", {
  455. channel_id,
  456. report_module,
  457. });
  458. };
  459. /**
  460. * 获取落地页列表
  461. * @returns
  462. */
  463. export const getLandingPageList = (data: {
  464. page: number | 1;
  465. title?: string;
  466. link_source?: string;
  467. gzh_name?: string;
  468. start_time?: string;
  469. end_time?: string;
  470. status?: number;
  471. }) => {
  472. return axios("/landingPage/list", { params: data });
  473. };
  474. /**
  475. * 删除落地页
  476. * @returns
  477. */
  478. export const landingDelete = (data: { id: string | number }) => {
  479. return axios("/landingPage/delete", { params: data });
  480. };
  481. /**
  482. * 落地页 创建落地页
  483. * @returns
  484. */
  485. export const landingAdd = (data: any) => {
  486. return axios.post("/landingPage/add", data);
  487. };
  488. /**
  489. * 落地页书籍列表
  490. * @returns
  491. */
  492. export const landingBook = (data: {
  493. book_name?: string;
  494. official_name?: string;
  495. }) => {
  496. return axios("/landingPage/books", { params: data });
  497. };
  498. /**
  499. * 生成落地页
  500. * @returns
  501. */
  502. export const setLandingBook = (data: any) => {
  503. return axios.post("/landingPage/setLink", data);
  504. };
  505. /**
  506. * 落地页章节列表
  507. * @returns
  508. */
  509. export const landingCharpter = (data: { bid?: string }) => {
  510. return axios("/landingPage/chapters", { params: data });
  511. };
  512. /**
  513. * 落地页我得图片
  514. * @returns
  515. */
  516. export const landingMypic = (data: any) => {
  517. return axios("/landingPage/myDocuments", { params: data });
  518. };
  519. /**
  520. * 落地页保存封面
  521. * @returns
  522. */
  523. export const landingSaveMypic = (url: string) => {
  524. return axios("/landingPage/uploadDocument", { params: { link: url } });
  525. };
  526. /**
  527. * 落地页 编辑
  528. * @returns
  529. */
  530. export const landingEdit = (data: any) => {
  531. return axios.post("/landingPage/edit", data);
  532. };
  533. /**
  534. * 落地页 提交审核
  535. * @returns
  536. */
  537. export const landingSubmit = (data: { id: string | number }) => {
  538. return axios("/landingPage/submit", { params: data });
  539. };
  540. /*
  541. * 获取落地页公众号列表
  542. * @returns
  543. */
  544. export const getLandingOfficials = (): AxiosPromise<IList<IGZHItem>> => {
  545. return axios("/landingPage/getGzh");
  546. };
  547. /**
  548. * 获取落地页域名列表
  549. * @returns
  550. */
  551. export const getLandingDomains = (): AxiosPromise<IList<IDomainItem>> => {
  552. return axios("/landingPage/domain");
  553. };
  554. /**
  555. * 获取落地页详情
  556. * @returns
  557. */
  558. export const getLandingInfo = (id: string): AxiosPromise<any> => {
  559. return axios("/landingPage/info", { params: { id } });
  560. };
  561. /**
  562. * 获取落地页推广书籍列表
  563. * @param official_name
  564. * @param book_name
  565. * @returns
  566. */
  567. export const getLandingBooks = (
  568. official_name?: string,
  569. book_name?: string
  570. ): AxiosPromise<IList<IPBookItem>> => {
  571. return axios("/landingPage/books", {
  572. params: {
  573. official_name,
  574. book_name,
  575. page_size: 999,
  576. },
  577. });
  578. };
  579. /**
  580. * 获取封面列表
  581. * @param type
  582. * @param category
  583. * @returns
  584. */
  585. export const getLandingPic = (type?: any, category?: any, page?: any): any => {
  586. return axios("/landingPage/documents", {
  587. params: {
  588. type,
  589. category,
  590. page,
  591. },
  592. });
  593. };
  594. /**
  595. * 图片上传
  596. * @param file
  597. * @param type
  598. * @returns
  599. */
  600. export const onUpload = (
  601. file: File,
  602. type: string
  603. ): AxiosPromise<{ url: string }> => {
  604. const formData = new FormData();
  605. formData.append("file", file);
  606. formData.append("type", type);
  607. return axios.post("/landingPage/upload", formData);
  608. };
  609. /**
  610. * 模板列表
  611. * @param type
  612. * @param category
  613. * @returns
  614. */
  615. export const getLandingTempalte = (): any => {
  616. return axios("/landingPage/bodyTemplates");
  617. };
  618. /**
  619. * 修改密码
  620. * @param opasswd
  621. * @param new_passwd
  622. * @param new_passwd_repeat
  623. * @returns
  624. */
  625. export const changePwdApi = (data: {
  626. opasswd: string;
  627. new_passwd: string;
  628. new_passwd_repeat: string;
  629. }): any => {
  630. return axios.post("/user/resetPassword", data);
  631. };
  632. /**
  633. * 模板列表
  634. * @param campaign_id
  635. * @param budget_mode
  636. * @returns
  637. */
  638. export const changeAdgroupBudget = (data: {
  639. campaign_id: string;
  640. budget_mode: string;
  641. budget: number;
  642. }): any => {
  643. return axios.post("/ad/updateCampaignBudget", data);
  644. };
  645. /**
  646. * 财务统计
  647. * @param campaign_id
  648. * @param budget_mode
  649. * @returns
  650. */
  651. export const getFinanceSum = (
  652. query: Partial<{
  653. start_ymd: string;
  654. end_ymd: string;
  655. page: number;
  656. advertiser_id: string;
  657. }>
  658. ): any => {
  659. return axios("/ad/adFinanceStatSum", { params: query });
  660. };