shenrongliang
2025-05-26 e47692e7a147f98c298429a2eaa6a4085d6f795d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import request from '@/config/axios'
import { Sku, Spu } from '@/api/mall/product/spu'
 
export interface CombinationActivityVO {
  id?: number
  name?: string
  spuId?: number
  totalLimitCount?: number
  singleLimitCount?: number
  startTime?: Date
  endTime?: Date
  userSize?: number
  totalCount?: number
  successCount?: number
  orderUserCount?: number
  virtualGroup?: number
  status?: number
  limitDuration?: number
  combinationPrice?: number
  products: CombinationProductVO[]
}
 
// 拼团活动所需属性
export interface CombinationProductVO {
  spuId: number
  skuId: number
  combinationPrice: number // 拼团价格
}
 
// 扩展 Sku 配置
export type SkuExtension = Sku & {
  productConfig: CombinationProductVO
}
 
export interface SpuExtension extends Spu {
  skus: SkuExtension[] // 重写类型
}
 
// 查询拼团活动列表
export const getCombinationActivityPage = async (params: any) => {
  return await request.get({ url: '/promotion/combination-activity/page', params })
}
 
// 查询拼团活动详情
export const getCombinationActivity = async (id: number) => {
  return await request.get({ url: '/promotion/combination-activity/get?id=' + id })
}
 
// 获得拼团活动列表,基于活动编号数组
export const getCombinationActivityListByIds = (ids: number[]) => {
  return request.get({ url: `/promotion/combination-activity/list-by-ids?ids=${ids}` })
}
 
// 新增拼团活动
export const createCombinationActivity = async (data: CombinationActivityVO) => {
  return await request.post({ url: '/promotion/combination-activity/create', data })
}
 
// 修改拼团活动
export const updateCombinationActivity = async (data: CombinationActivityVO) => {
  return await request.put({ url: '/promotion/combination-activity/update', data })
}
 
// 关闭拼团活动
export const closeCombinationActivity = async (id: number) => {
  return await request.put({ url: '/promotion/combination-activity/close?id=' + id })
}
 
// 删除拼团活动
export const deleteCombinationActivity = async (id: number) => {
  return await request.delete({ url: '/promotion/combination-activity/delete?id=' + id })
}