增加分享和抽奖相关后台接口
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 { Coupon } from '../../models/shop/Coupon'
|
||||||
import { getCouponUrl } from '../../services/File'
|
import { getCouponUrl } from '../../services/File'
|
||||||
import { UserItem } from '../../models/user/UserItem'
|
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 { UserReward } from '../../models/user/UserReward'
|
||||||
import { random_prob } from '../../utils/number.util'
|
import { random_prob } from '../../utils/number.util'
|
||||||
|
|
||||||
@ -89,6 +89,8 @@ class LotteryController extends BaseController {
|
|||||||
}
|
}
|
||||||
let idx = random_prob(arr)
|
let idx = random_prob(arr)
|
||||||
const reward = cfg.lottery_cfgs[idx]
|
const reward = cfg.lottery_cfgs[idx]
|
||||||
|
let rewardList = []
|
||||||
|
if (reward.coupon !== EMPTY) {
|
||||||
let obj = await UserReward.saveOneRecord({
|
let obj = await UserReward.saveOneRecord({
|
||||||
accountId,
|
accountId,
|
||||||
shop: shop.id,
|
shop: shop.id,
|
||||||
@ -98,8 +100,8 @@ class LotteryController extends BaseController {
|
|||||||
activityId: 'lottery',
|
activityId: 'lottery',
|
||||||
source: 'lottery',
|
source: 'lottery',
|
||||||
})
|
})
|
||||||
let rewardList = []
|
|
||||||
rewardList.push(obj)
|
rewardList.push(obj)
|
||||||
|
}
|
||||||
return rewardList
|
return rewardList
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,3 +12,4 @@ export class BaseConst {
|
|||||||
|
|
||||||
// 抽奖券的物品id
|
// 抽奖券的物品id
|
||||||
export const LOTTERY_TICKET = 'lottery_ticket'
|
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'
|
import { Base } from '@typegoose/typegoose/lib/defaultClasses'
|
||||||
|
|
||||||
export class ShareCfgClass extends Base {
|
export class ShareCfgClass extends Base {
|
||||||
|
@prop()
|
||||||
|
public id: number
|
||||||
/**
|
/**
|
||||||
* 所需人数
|
* 所需人数
|
||||||
* @type {number}
|
* @type {number}
|
||||||
@ -30,6 +32,8 @@ export class ShareCfgClass extends Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class LotteryCfgClass extends Base {
|
export class LotteryCfgClass extends Base {
|
||||||
|
@prop()
|
||||||
|
public id: number
|
||||||
/**
|
/**
|
||||||
* 获取概率
|
* 获取概率
|
||||||
* @type {number}
|
* @type {number}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user