增加分享和抽奖相关后台接口
This commit is contained in:
parent
3bdd960cfa
commit
5f7b57fe78
56
src/admin/controllers/shop_cfg.controller.ts
Normal file
56
src/admin/controllers/shop_cfg.controller.ts
Normal file
@ -0,0 +1,56 @@
|
||||
import BaseController from '../../common/base.controller'
|
||||
import { permission, router } from '../../decorators/router'
|
||||
import { ZError } from '../../common/ZError'
|
||||
import { ShopCfg } from '../../models/shop/ShopCfg'
|
||||
|
||||
class ShopCfgController extends BaseController {
|
||||
@permission('shop:edit')
|
||||
@router('post /api/shop/lottery')
|
||||
async lottery_list(req, res) {
|
||||
let { shop } = req.params
|
||||
if (!shop) {
|
||||
throw new ZError(11, 'params mismatch')
|
||||
}
|
||||
let data = (await ShopCfg.findOrCreate({ shop })).doc
|
||||
let cfg = data.lottery_cfgs || []
|
||||
return cfg
|
||||
}
|
||||
|
||||
@permission('shop:edit')
|
||||
@router('post /api/shop/lottery_update')
|
||||
async lottery_save(req, res) {
|
||||
let { shop, cfgs } = req.params
|
||||
if (!shop) {
|
||||
throw new ZError(11, 'params mismatch')
|
||||
}
|
||||
let data = (await ShopCfg.findOrCreate({ shop })).doc
|
||||
data.lottery_cfgs = cfgs
|
||||
await data.save()
|
||||
return {}
|
||||
}
|
||||
|
||||
@permission('shop:edit')
|
||||
@router('post /api/shop/share')
|
||||
async share_list(req, res) {
|
||||
let { shop } = req.params
|
||||
if (!shop) {
|
||||
throw new ZError(11, 'params mismatch')
|
||||
}
|
||||
let data = (await ShopCfg.findOrCreate({ shop })).doc
|
||||
let cfg = data.share_cfgs || []
|
||||
return cfg
|
||||
}
|
||||
|
||||
@permission('shop:edit')
|
||||
@router('post /api/shop/share_update')
|
||||
async share_save(req, res) {
|
||||
let { shop, cfgs } = req.params
|
||||
if (!shop) {
|
||||
throw new ZError(11, 'params mismatch')
|
||||
}
|
||||
let data = (await ShopCfg.findOrCreate({ shop })).doc
|
||||
data.share_cfgs = cfgs
|
||||
await data.save()
|
||||
return {}
|
||||
}
|
||||
}
|
@ -6,7 +6,7 @@ import { ShopCfg } from '../../models/shop/ShopCfg'
|
||||
import { Coupon } from '../../models/shop/Coupon'
|
||||
import { getCouponUrl } from '../../services/File'
|
||||
import { UserItem } from '../../models/user/UserItem'
|
||||
import { LOTTERY_TICKET } from '../../constants/BaseConst'
|
||||
import { EMPTY, LOTTERY_TICKET } from '../../constants/BaseConst'
|
||||
import { UserReward } from '../../models/user/UserReward'
|
||||
import { random_prob } from '../../utils/number.util'
|
||||
|
||||
@ -89,17 +89,19 @@ class LotteryController extends BaseController {
|
||||
}
|
||||
let idx = random_prob(arr)
|
||||
const reward = cfg.lottery_cfgs[idx]
|
||||
let obj = await UserReward.saveOneRecord({
|
||||
accountId,
|
||||
shop: shop.id,
|
||||
itemId: reward.coupon,
|
||||
count: reward.count,
|
||||
rewardId: reward._id + '',
|
||||
activityId: 'lottery',
|
||||
source: 'lottery',
|
||||
})
|
||||
let rewardList = []
|
||||
rewardList.push(obj)
|
||||
if (reward.coupon !== EMPTY) {
|
||||
let obj = await UserReward.saveOneRecord({
|
||||
accountId,
|
||||
shop: shop.id,
|
||||
itemId: reward.coupon,
|
||||
count: reward.count,
|
||||
rewardId: reward._id + '',
|
||||
activityId: 'lottery',
|
||||
source: 'lottery',
|
||||
})
|
||||
rewardList.push(obj)
|
||||
}
|
||||
return rewardList
|
||||
}
|
||||
}
|
||||
|
@ -12,3 +12,4 @@ export class BaseConst {
|
||||
|
||||
// 抽奖券的物品id
|
||||
export const LOTTERY_TICKET = 'lottery_ticket'
|
||||
export const EMPTY = 'empty'
|
||||
|
@ -5,6 +5,8 @@ import { Severity } from '@typegoose/typegoose/lib/internal/constants'
|
||||
import { Base } from '@typegoose/typegoose/lib/defaultClasses'
|
||||
|
||||
export class ShareCfgClass extends Base {
|
||||
@prop()
|
||||
public id: number
|
||||
/**
|
||||
* 所需人数
|
||||
* @type {number}
|
||||
@ -30,6 +32,8 @@ export class ShareCfgClass extends Base {
|
||||
}
|
||||
|
||||
export class LotteryCfgClass extends Base {
|
||||
@prop()
|
||||
public id: number
|
||||
/**
|
||||
* 获取概率
|
||||
* @type {number}
|
||||
|
Loading…
x
Reference in New Issue
Block a user