taobao.ts 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  1. import axios from 'axios';
  2. import type { ListRes } from './base';
  3. function ForwardAPI(url: string) {
  4. return url;
  5. }
  6. export interface UpdateConfigModel {
  7. cookie: string;
  8. blacklist_oaid: string;
  9. ignorePercentage: number;
  10. jdIgnorePercentage: number;
  11. pass_salt: string;
  12. ignorePercentageCity: string;
  13. jdIgnorePercentageCity: string;
  14. fake_click_min: number;
  15. fake_click_max: number;
  16. fake_click_ttl: number;
  17. rt_max: number;
  18. similar_timeout: number;
  19. tk_whitelist_regular: string;
  20. tk_blacklist_regular: string;
  21. multi_token_regular: string;
  22. jd_limit_per_ip_24h: number;
  23. jd_limit_per_oaid_24h: number;
  24. jd_blacklist_regular: string;
  25. jd_h5st_sign_url: string;
  26. jd_h5st_sign_version: string;
  27. dp_style: string;
  28. dp_style_percentage: number;
  29. dp_style_default_str: string;
  30. tk_limit_per_ip_24h: number;
  31. tk_limit_per_oaid_24h: number;
  32. tk_parse_retry_count: number;
  33. cpsIgnorePercentageCity: string;
  34. cps_limit_per_ip_24h: number;
  35. cps_limit_per_oaid_24h: number;
  36. pddIgnorePercentageCity: string;
  37. pddIgnorePercentage: number;
  38. pdd_limit_per_oaid_24h: number;
  39. pdd_limit_per_ip_24h: number;
  40. pdd_blacklist_regular: string;
  41. ks_limit_per_ip_24h: number;
  42. ks_limit_per_oaid_24h: number;
  43. ksIgnorePercentageCity: string;
  44. ksIgnorePercentage: number;
  45. ks_blacklist_regular: string;
  46. ksTestToken: string;
  47. }
  48. export interface UpdateConfigRes {
  49. msg?: string;
  50. code: number;
  51. data?: UpdateConfigModel;
  52. }
  53. // list
  54. export interface TkPoolRecord {
  55. id: number;
  56. name: string;
  57. company: string;
  58. phone: string;
  59. cookies: string;
  60. create_time: Date;
  61. current_amt: number;
  62. description: string;
  63. note: string;
  64. floorId: string;
  65. last_time: Date;
  66. login_time: Date;
  67. nodeName: string;
  68. suspended_endpoint: string;
  69. refpid: string;
  70. status: boolean;
  71. tb_token: string;
  72. api: string;
  73. end_point: string;
  74. api_id: number;
  75. enable_fake_click: boolean;
  76. enable_parse: boolean;
  77. enable_coupon: boolean;
  78. enable_sync_order: boolean;
  79. enable_deep_url: boolean;
  80. enable_promotionQuery: boolean;
  81. appkey: string;
  82. appSecret: string;
  83. open_pid: string;
  84. daily_income_limit: number;
  85. daily_calls_limit: number;
  86. current_hourly_calls: number;
  87. hourly_calls_limit: number;
  88. current_daily_calls: number;
  89. time_range: number;
  90. is_banned: boolean;
  91. }
  92. export interface FormRes {
  93. msg: string;
  94. code: number;
  95. success: boolean;
  96. }
  97. export interface TkUpdateAccountModel {
  98. id: number;
  99. name: string;
  100. val: any;
  101. }
  102. export interface TkPoolParams extends Partial<TkPoolRecord> {
  103. current: number;
  104. pageSize: number;
  105. show_hide: boolean;
  106. sort?: string;
  107. order?: string;
  108. getTotal: boolean;
  109. }
  110. /*
  111. tk_report_hourtrend
  112. */
  113. export interface TkReportRecord {
  114. id: number;
  115. accountName: string;
  116. report_date: Date;
  117. isLeaf?: boolean;
  118. create_time: Date;
  119. last_time: Date;
  120. uclk_uv_56: number;
  121. uclk_pv_56: number;
  122. uclt_uv_56: number;
  123. ucart_uv_56: number;
  124. dep_ord_num_56: number;
  125. dep_ord_dep_amt_56: number;
  126. pay_ord_num_56: number;
  127. pay_ord_amt_56: number;
  128. pay_tk_disp_tfee_56: number;
  129. pay_ord_uv_56: number;
  130. eff_ord_num: number;
  131. eff_ord_amt: number;
  132. eff_tk_disp_tfee: number;
  133. sett_ord_num_56: number;
  134. sett_ord_amt_56: number;
  135. sett_tk_disp_tfee_56: number;
  136. order_ord_amt_12: number;
  137. order_ord_amt_14: number;
  138. order_ord_tfee_12: number;
  139. order_ord_tfee_14: number;
  140. order_ord_amt_12_14: number;
  141. order_ord_tfee_12_14: number;
  142. total_count: number;
  143. abandon_count: number;
  144. success_count: number;
  145. abandon_percentage: string;
  146. success_percentage: string;
  147. }
  148. export interface TkReportParams extends Partial<TkReportRecord> {
  149. accountId?: number;
  150. filterHours?: number;
  151. total_key?: string;
  152. query_date?: string[]; // 覆盖 report_date 的类型为字符串数组
  153. current: number;
  154. pageSize: number;
  155. sort?: string;
  156. order?: string;
  157. }
  158. export interface TkReportRes extends ListRes {
  159. list: TkReportRecord[];
  160. }
  161. export interface TkPoolRes extends ListRes {
  162. list: TkPoolRecord[];
  163. }
  164. export interface ChartDataResponse {
  165. name: string;
  166. value: number;
  167. }
  168. export interface TkReportChartRes {
  169. code: number;
  170. data: ChartDataResponse[];
  171. data2: ChartDataResponse[];
  172. }
  173. export interface TkSettleBillRecord {
  174. id: number;
  175. accountName: string;
  176. belongTime: Date;
  177. create_time: Date;
  178. last_time: Date;
  179. bizType: number;
  180. bizTypeDesc: string;
  181. clearingPeriod: string;
  182. expectedEarnings: number;
  183. incomeType: number;
  184. incomeTypeDesc: string;
  185. settleIncomeTotal: number;
  186. settleStatus: string;
  187. dividedIncome: number;
  188. platformServiceFee: number;
  189. }
  190. export interface TkSettleBillsParams extends Partial<TkSettleBillRecord> {
  191. keyword?: string;
  192. query_date?: string[]; // 覆盖 report_date 的类型为字符串数组
  193. current: number;
  194. pageSize: number;
  195. sort?: string;
  196. order?: string;
  197. }
  198. export interface UpdateCookieModel {
  199. cookie: string;
  200. }
  201. export interface TkOrderRecord {
  202. id: number;
  203. accountId: number;
  204. accountName: string;
  205. tkPaidTime: string; // assuming ISO 8601 format for datetime
  206. orderType: string;
  207. adzoneId: number;
  208. incomeRate: number;
  209. subsidyType: string;
  210. totalCommissionFee: number;
  211. subsidyFee: number;
  212. pubShareFee: number;
  213. itemPlatformTypeText: string;
  214. marketingType: string;
  215. pubShareFeeForCommission: number;
  216. tkTotalRateForCommissionAndSdy: number;
  217. alipayTotalPrice: number;
  218. tkStatus: number;
  219. tkBizTag: number;
  220. tkOrderRole: number;
  221. tkCreateTime: string; // assuming ISO 8601 format for datetime
  222. pubShareFeeForSdy: number;
  223. tkEarningTime: string; // assuming ISO 8601 format for datetime
  224. siteName: string;
  225. itemNum: number;
  226. tradeParentId: string;
  227. payPrice: number;
  228. flowSource: string;
  229. sellerNick: string;
  230. adzoneName: string;
  231. pubShareRate: number;
  232. mktId: string;
  233. isLx: string;
  234. pubSharePreFeeForSdy: number;
  235. preSell: number;
  236. alimamaShareFee: number;
  237. mktItemLink: string;
  238. itemPrice: number;
  239. modifiedTime: string; // assuming ISO 8601 format for datetime
  240. alimamaRate: number;
  241. pubSharePreFee: number;
  242. itemImg: string;
  243. tkOrderRoleText: string;
  244. pubId: number;
  245. tkDepositTime: string;
  246. tkCommissionFeeForMediaPlatform: number;
  247. subsidyRate: number;
  248. clickTime: string; // assuming ISO 8601 format for datetime
  249. tbPaidTime: string; // assuming ISO 8601 format for datetime
  250. terminalType: string;
  251. supportItemClick: number;
  252. tkStatusText: string;
  253. alimmTechServiceFee: number;
  254. alimmTechServicePreFee: number;
  255. alimmTechServiceRate: number;
  256. itemTitle: string;
  257. tkTotalRate: number;
  258. pubSharePreFeeForCommission: number;
  259. depositPrice: number;
  260. pubShareRateForSdy: number;
  261. sellerShopTitle: string;
  262. itemCategoryName: string;
  263. refundTag: number;
  264. tbDepositTime: string;
  265. tkCommissionRateForMediaPlatform: number;
  266. tkTotalRateForSdy: number;
  267. tkCommissionPreFeeForMediaPlatform: number;
  268. siteId: number;
  269. totalCommissionRate: number;
  270. alimmShareInfo: string;
  271. tradeId: string;
  272. create_time: string; // assuming ISO 8601 format for datetime
  273. last_time: string; // assuming ISO 8601 format for datetime
  274. }
  275. export interface TkOrdersParams {
  276. keyword?: string;
  277. tkStatus?: number[];
  278. query_date?: string[]; // 覆盖 report_date 的类型为字符串数组
  279. current: number;
  280. pageSize: number;
  281. maxTotal: number;
  282. sort?: string;
  283. order?: string;
  284. }
  285. export interface TkOrdersRes extends ListRes {
  286. list: TkOrderRecord[];
  287. }
  288. export function updateConfig(data: UpdateConfigModel) {
  289. const url = ForwardAPI('/api/config/update');
  290. return axios.post<FormRes>(url, data);
  291. }
  292. export function getConfig() {
  293. const url = ForwardAPI('/api/config/get');
  294. return axios.get<UpdateConfigModel>(url);
  295. }
  296. export function updateCookies(data: UpdateCookieModel) {
  297. const url = ForwardAPI('/api/taobao/updateCookies');
  298. return axios.post<FormRes>(url, data);
  299. }
  300. export function TkUpdateAccount(data: TkUpdateAccountModel) {
  301. const url = ForwardAPI('/api/taobao/update');
  302. return axios.post<UpdateConfigRes>(url, data);
  303. }
  304. export function queryTkPool(data: TkPoolParams) {
  305. const url = ForwardAPI('/api/taobao/list');
  306. return axios.post<TkPoolRes>(url, data);
  307. }
  308. export function queryTkReport(data: TkReportParams) {
  309. const url = ForwardAPI('/api/taobao/report_list');
  310. return axios.post<TkReportRes>(url, data);
  311. }
  312. export function queryTkReportDailys(data: TkReportParams) {
  313. const url = ForwardAPI('/api/taobao/report_dailys');
  314. return axios.post<TkReportRes>(url, data);
  315. }
  316. export function queryTkReportHourlys(data: TkReportParams) {
  317. const url = ForwardAPI('/api/taobao/report_hourlys');
  318. return axios.post<TkReportRes>(url, data);
  319. }
  320. export function queryTkReportHourtrend(data: TkReportParams) {
  321. const url = ForwardAPI('/api/taobao/report_hourtrend');
  322. return axios.post<TkReportRes>(url, data);
  323. }
  324. export function queryTkReportChartData(data: TkReportParams) {
  325. const url = ForwardAPI('/api/taobao/chartData');
  326. return axios.post<TkReportChartRes>(url, data);
  327. }
  328. export interface TkSettleBillsRes extends ListRes {
  329. list: TkSettleBillRecord[];
  330. }
  331. export function queryTkSettleBillsTotal(data: TkSettleBillsParams) {
  332. const url = ForwardAPI('/api/taobao/settle_bills_total');
  333. return axios.post<TkSettleBillsRes>(url, data);
  334. }
  335. export function queryTkSettleBills(data: TkSettleBillsParams) {
  336. const url = ForwardAPI('/api/taobao/settle_bills');
  337. return axios.post<TkSettleBillsRes>(url, data);
  338. }
  339. export function queryTkOrders(data: TkOrdersParams) {
  340. const url = ForwardAPI('/api/taobaoOrder/list');
  341. return axios.post<TkOrdersRes>(url, data);
  342. }