|
|
@@ -0,0 +1,392 @@
|
|
|
+// 奖池服务 - 对应 supermart-mini/service/award.js
|
|
|
+import { get, post, postL } from './http';
|
|
|
+
|
|
|
+const apis = {
|
|
|
+ INDEX: '/api/app/index/magicMartIndex',
|
|
|
+ IP_LIST: '/api/spu/basic/listWorksLimit',
|
|
|
+ MAGIC_INDEX: '/api/app/index/magicBoxIndex',
|
|
|
+ LIST: '/api/luckPool/list',
|
|
|
+ HORSE: '/api/luckPool/horseRaceLampByIndex',
|
|
|
+ DETAIL: '/api/luckPool/detail',
|
|
|
+ PRODUCTS: '/api/luckPool/prize',
|
|
|
+ HORSE_DETAIL: '/api/luckPool/horseRaceLampByDetail',
|
|
|
+ BUY_RECORD: '/api/luckPool/buyRecord',
|
|
|
+ VERSION: '/api/luckPool/version',
|
|
|
+ PREVIEW: '/api/luckOrder/preSubmit',
|
|
|
+ APPLY: '/api/luckOrder/submit',
|
|
|
+ APPLY_TRY: '/api/luckOrder/demo',
|
|
|
+ APPLY_RESULT: '/api/luckOrder/luckResult',
|
|
|
+ ORDERS: '/api/luckOrder/pageMy',
|
|
|
+ STORE: '/api/luckInventory',
|
|
|
+ STORE_MOVE_SAFE: '/api/luckInventory/addToSafe',
|
|
|
+ STORE_OUT_SAFE: '/api/luckInventory/moveFromSafe',
|
|
|
+ CONVERT_PREVIEW: '/api/luckExchangeOrder/preSubmit',
|
|
|
+ CONVERT_APPLY: '/api/luckExchangeOrder/submit',
|
|
|
+ CONVERT_LIST: '/api/luckExchangeOrder/pageMy',
|
|
|
+ CONVERT_ALL_PREVIEW: '/api/luckExchangeOrder/preOneKeySubmit',
|
|
|
+ CONVERT_ALL: '/api/luckExchangeOrder/oneKeySubmit',
|
|
|
+ TAKE_PREVIEW: '/api/luckPickupOrder/preSubmit',
|
|
|
+ TAKE_APPLY: '/api/luckPickupOrder/submit',
|
|
|
+ TAKE_LIST: '/api/luckPickupOrder/pageMy',
|
|
|
+ TAKE_PAY_ORDER: '/api/luckPickupOrder/pay',
|
|
|
+ POOL_IN: '/api/luckPool/participate',
|
|
|
+ POOL_OUT: '/api/luckPool/unparticipate',
|
|
|
+ PACKAGES: '/api/luckPickupOrder/expressInfo',
|
|
|
+ EXPRESS: '/api/luckPickupOrder/expressDetail',
|
|
|
+ KING: '/api/luckKing/getTheLatestLuckKingRecord',
|
|
|
+ KING_USER: '/api/luckKing/listBillboard',
|
|
|
+ KING_GOODS: '/api/luckKing/listGoods',
|
|
|
+ CHECK_PAYMENT_STATUS: '/api/luckOrder/checkPaymentStatus',
|
|
|
+ GENERATE_PAYMENT_LINK: '/api/luckOrder/generatePaymentLink',
|
|
|
+ KING_PRE: '/api/luckKing/getThePrev',
|
|
|
+ BOX_LIST: '/api/luckBox',
|
|
|
+ BOX_DETAIL: '/api/luckBox/detail',
|
|
|
+ BOX_PRE: '/api/luckBox/getThePrev',
|
|
|
+ BOX_NEXT: '/api/luckBox/getTheNext',
|
|
|
+ UNAVAILABLE_SEAT_NUMBERS: '/api/luckBox/getUnavaliableSeatNumbers',
|
|
|
+ BOX_LOCK: '/api/luckBox/lock',
|
|
|
+ BOX_UN_LOCK: '/api/luckBox/unlock',
|
|
|
+ FEEDBACK_LIST: '/api/app/feedback/list',
|
|
|
+ FEEDBACK_SUBMIT: '/api/app/feedback/submit',
|
|
|
+};
|
|
|
+
|
|
|
+export interface IPItem {
|
|
|
+ id: string;
|
|
|
+ name: string;
|
|
|
+ cover?: string;
|
|
|
+}
|
|
|
+
|
|
|
+export interface PoolItem {
|
|
|
+ id: string;
|
|
|
+ name: string;
|
|
|
+ cover: string;
|
|
|
+ price: number;
|
|
|
+ mode?: string;
|
|
|
+ type?: number;
|
|
|
+ status?: number;
|
|
|
+}
|
|
|
+
|
|
|
+// 获取首页数据
|
|
|
+export const getIndex = async (type = 0) => {
|
|
|
+ const res = await get(apis.INDEX, { type });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取 IP 列表
|
|
|
+export const getIPList = async (limit = 200): Promise<IPItem[]> => {
|
|
|
+ const res = await get<IPItem[]>(apis.IP_LIST, { limit });
|
|
|
+ return res.data || [];
|
|
|
+};
|
|
|
+
|
|
|
+// 获取魔盒首页
|
|
|
+export const getMagicIndex = async () => {
|
|
|
+ const res = await get(apis.MAGIC_INDEX);
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取奖池列表
|
|
|
+export const getPoolList = async (params: {
|
|
|
+ current: number;
|
|
|
+ size: number;
|
|
|
+ mode?: string;
|
|
|
+ type?: number;
|
|
|
+ worksId?: string;
|
|
|
+ keyword?: string;
|
|
|
+ priceMin?: number;
|
|
|
+ priceMax?: number;
|
|
|
+ priceSort?: number;
|
|
|
+}) => {
|
|
|
+ // 处理 mode 参数
|
|
|
+ let processedMode = params.mode;
|
|
|
+ if (processedMode && processedMode.startsWith('UNLIMITED')) {
|
|
|
+ processedMode = 'UNLIMITED';
|
|
|
+ }
|
|
|
+ const res = await post<PoolItem[]>(apis.LIST, { ...params, mode: processedMode });
|
|
|
+ return res;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取跑马灯数据
|
|
|
+export const getHorse = async () => {
|
|
|
+ const res = await post(apis.HORSE);
|
|
|
+ return res.success ? res.data : null;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取奖池详情
|
|
|
+export const getPoolDetail = async (poolId: string) => {
|
|
|
+ const res = await get(apis.DETAIL, { poolId });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取奖池商品
|
|
|
+export const getPoolProducts = async (poolId: string) => {
|
|
|
+ const res = await get(apis.PRODUCTS, { poolId });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取详情跑马灯
|
|
|
+export const getDetailHorse = async (poolId: string, size = 50) => {
|
|
|
+ const res = await post(apis.HORSE_DETAIL, { poolId, size });
|
|
|
+ return res.success ? res.data : null;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取购买记录
|
|
|
+export const getBuyRecord = async (poolId: string, lastId?: string, level?: number, size = 200) => {
|
|
|
+ const res = await post(apis.BUY_RECORD, { poolId, lastId, level, size });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取版本信息
|
|
|
+export const getVersion = async (poolId: string, size = 20) => {
|
|
|
+ const res = await post(apis.VERSION, { poolId, size });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 试玩
|
|
|
+export const tryDemo = async (poolId: string, quantity: number) => {
|
|
|
+ const res = await postL(apis.APPLY_TRY, { poolId, quantity });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 预提交订单
|
|
|
+export const previewOrder = async (poolId: string, quantity?: number, boxNumber?: string, seatNumbers?: number[], packFlag?: boolean) => {
|
|
|
+ const param: any = { poolId };
|
|
|
+ if (quantity) param.quantity = quantity;
|
|
|
+ if (boxNumber) param.boxNumber = boxNumber;
|
|
|
+ if (seatNumbers && seatNumbers.length > 0) param.seatNumbers = seatNumbers;
|
|
|
+ if (packFlag) param.packFlag = packFlag;
|
|
|
+ const res = await postL(apis.PREVIEW, param);
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 提交订单
|
|
|
+export const applyOrder = async (poolId: string, quantity: number, paymentType: string, boxNumber?: string, seatNumbers?: number[], packFlag?: boolean) => {
|
|
|
+ const param: any = { poolId, quantity, paymentType };
|
|
|
+ if (boxNumber) param.boxNumber = boxNumber;
|
|
|
+ if (seatNumbers && seatNumbers.length > 0) param.seatNumbers = seatNumbers;
|
|
|
+ if (packFlag) param.packFlag = packFlag;
|
|
|
+ const res = await postL(apis.APPLY, param);
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取抽奖结果
|
|
|
+export const getApplyResult = async (tradeNo: string) => {
|
|
|
+ const res = await get(apis.APPLY_RESULT, { tradeNo });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 检查支付状态
|
|
|
+export const checkPaymentStatus = async (tradeNo: string) => {
|
|
|
+ const res = await get(apis.CHECK_PAYMENT_STATUS, { tradeNo });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取盲盒订单列表
|
|
|
+export const getAwardOrders = async (current: number, size: number, tab?: string) => {
|
|
|
+ const res = await post(apis.ORDERS, { current, size, tab });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取仓库列表
|
|
|
+export const getStore = async (current: number, size: number, safeFlag?: number, tab?: string) => {
|
|
|
+ const res = await post(apis.STORE, { current, size, status: 0, tab, safeFlag });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 移入保险箱
|
|
|
+export const moveToSafeStore = async (inventoryIds: string[]) => {
|
|
|
+ const res = await postL(apis.STORE_MOVE_SAFE, { inventoryIds });
|
|
|
+ return res.success;
|
|
|
+};
|
|
|
+
|
|
|
+// 移出保险箱
|
|
|
+export const moveOutSafeStore = async (inventoryIds: string[]) => {
|
|
|
+ const res = await postL(apis.STORE_OUT_SAFE, { inventoryIds });
|
|
|
+ return res.success;
|
|
|
+};
|
|
|
+
|
|
|
+// 兑换预览
|
|
|
+export const convertPreview = async (inventoryIds: string[]) => {
|
|
|
+ const res = await postL(apis.CONVERT_PREVIEW, { inventoryIds });
|
|
|
+ return res;
|
|
|
+};
|
|
|
+
|
|
|
+// 兑换申请
|
|
|
+export const convertApply = async (inventoryIds: string[]) => {
|
|
|
+ const res = await postL(apis.CONVERT_APPLY, { inventoryIds });
|
|
|
+ return res.success;
|
|
|
+};
|
|
|
+
|
|
|
+// 兑换列表
|
|
|
+export const getConvertList = async (current: number, size: number) => {
|
|
|
+ const res = await post(apis.CONVERT_LIST, { current, size });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 一键兑换预览
|
|
|
+export const convertAllPreview = async () => {
|
|
|
+ const res = await postL(apis.CONVERT_ALL_PREVIEW);
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 一键兑换
|
|
|
+export const convertAll = async (levels: number[]) => {
|
|
|
+ const res = await postL(apis.CONVERT_ALL, { levels });
|
|
|
+ return res.success;
|
|
|
+};
|
|
|
+
|
|
|
+// 提货预览
|
|
|
+export const takePreview = async (inventoryIds: string[], addressBookId: string) => {
|
|
|
+ const res = await postL(apis.TAKE_PREVIEW, { inventoryIds, addressBookId });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 提货申请
|
|
|
+export const takeApply = async (inventoryIds: string[], addressBookId: string, paymentType: string) => {
|
|
|
+ const res = await postL(apis.TAKE_APPLY, { inventoryIds, addressBookId, paymentType });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 提货列表
|
|
|
+export const getTakeList = async (current: number, size: number) => {
|
|
|
+ const res = await post(apis.TAKE_LIST, { current, size });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 提货支付
|
|
|
+export const takePayOrder = async (inventoryIds: string[], addressBookId: string, paymentType: string, tradeNo?: string) => {
|
|
|
+ const res = await postL(apis.TAKE_PAY_ORDER, { inventoryIds, addressBookId, paymentType, tradeNo });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 参与奖池
|
|
|
+export const poolIn = async (poolId: string) => {
|
|
|
+ const res = await get(apis.POOL_IN, { poolId });
|
|
|
+ return res.success;
|
|
|
+};
|
|
|
+
|
|
|
+// 退出奖池
|
|
|
+export const poolOut = async (poolId?: string) => {
|
|
|
+ const param: any = {};
|
|
|
+ if (poolId) param.poolId = poolId;
|
|
|
+ const res = await get(apis.POOL_OUT, param);
|
|
|
+ return res.success;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取包裹信息
|
|
|
+export const getAwardPackages = async (tradeNo: string) => {
|
|
|
+ const res = await get(apis.PACKAGES, { tradeNo });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取物流详情
|
|
|
+export const getAwardExpress = async (tradeNo: string, packageId: string) => {
|
|
|
+ const res = await get(apis.EXPRESS, { tradeNo, packageId });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取欧皇信息
|
|
|
+export const getKing = async (poolId: string) => {
|
|
|
+ const res = await get(apis.KING, { poolId });
|
|
|
+ return res.success ? res.data : null;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取欧皇榜单
|
|
|
+export const getKingUser = async (poolId: string) => {
|
|
|
+ const res = await get(apis.KING_USER, { poolId });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取欧皇商品
|
|
|
+export const getKingGoods = async (poolId: string) => {
|
|
|
+ const res = await get(apis.KING_GOODS, { poolId });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取上一期欧皇
|
|
|
+export const getPreKing = async (poolId: string) => {
|
|
|
+ const res = await get(apis.KING_PRE, { poolId });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取盒子列表
|
|
|
+export const getBoxList = async (poolId: string, level?: number, current?: number, size?: number) => {
|
|
|
+ const res = await post(apis.BOX_LIST, { poolId, current, size, level });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取盒子详情
|
|
|
+export const getBoxDetail = async (poolId: string, boxNumber?: string) => {
|
|
|
+ const param: any = { poolId };
|
|
|
+ if (boxNumber) param.boxNumber = boxNumber;
|
|
|
+ const res = await get(apis.BOX_DETAIL, param);
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取弹幕列表
|
|
|
+export const getFeedbackList = async () => {
|
|
|
+ const res = await get(apis.FEEDBACK_LIST);
|
|
|
+ return res;
|
|
|
+};
|
|
|
+
|
|
|
+// 发送弹幕
|
|
|
+export const submitFeedback = async (content: string) => {
|
|
|
+ const res = await postL(apis.FEEDBACK_SUBMIT, { content });
|
|
|
+ return res;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取仓库商品详情
|
|
|
+export const getLuckDetail = async (id: string) => {
|
|
|
+ const res = await get('/api/luckInventory/detail', { id });
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+// 获取仓库商品总数
|
|
|
+export const getSumInventory = async () => {
|
|
|
+ const res = await get('/api/luckInventory');
|
|
|
+ return res.data;
|
|
|
+};
|
|
|
+
|
|
|
+export default {
|
|
|
+ getIndex,
|
|
|
+ getIPList,
|
|
|
+ getMagicIndex,
|
|
|
+ getPoolList,
|
|
|
+ getHorse,
|
|
|
+ getPoolDetail,
|
|
|
+ getPoolProducts,
|
|
|
+ getDetailHorse,
|
|
|
+ getBuyRecord,
|
|
|
+ getVersion,
|
|
|
+ tryDemo,
|
|
|
+ previewOrder,
|
|
|
+ applyOrder,
|
|
|
+ getApplyResult,
|
|
|
+ checkPaymentStatus,
|
|
|
+ getAwardOrders,
|
|
|
+ getStore,
|
|
|
+ moveToSafeStore,
|
|
|
+ moveOutSafeStore,
|
|
|
+ convertPreview,
|
|
|
+ convertApply,
|
|
|
+ getConvertList,
|
|
|
+ convertAllPreview,
|
|
|
+ convertAll,
|
|
|
+ takePreview,
|
|
|
+ takeApply,
|
|
|
+ getTakeList,
|
|
|
+ takePayOrder,
|
|
|
+ poolIn,
|
|
|
+ poolOut,
|
|
|
+ getAwardPackages,
|
|
|
+ getAwardExpress,
|
|
|
+ getKing,
|
|
|
+ getKingUser,
|
|
|
+ getKingGoods,
|
|
|
+ getPreKing,
|
|
|
+ getBoxList,
|
|
|
+ getBoxDetail,
|
|
|
+ getFeedbackList,
|
|
|
+ submitFeedback,
|
|
|
+ getLuckDetail,
|
|
|
+ getSumInventory,
|
|
|
+};
|