From 06c03ed709f4f6f6eb1f70784a81a145e5426c2f Mon Sep 17 00:00:00 2001 From: luying Date: Mon, 10 Apr 2023 10:38:40 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(37=E9=9C=80=E6=B1=82):=20?= =?UTF-8?q?=E7=A4=BC=E5=8C=85=E7=A0=81=E7=9A=84=E4=BD=BF=E7=94=A8=E9=99=90?= =?UTF-8?q?=E5=88=B6=E9=80=9A=E8=BF=87order=5Fid=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/consts/statusCode.ts | 1 + shared/db/GiftCodeDetail.ts | 6 ++++++ web-server/app/service/Sdk.ts | 10 +++------- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index 5952e2327..c63e41202 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -799,4 +799,5 @@ export const SDK_37_ACTIVITY_CODE = { GIFT_CHANNEL_ERR: { code: 20007, simStr: '礼包不可在此渠道使用' }, TIME_IS_EXPIRED: { code: 20008, simStr: '时间戳已过期' }, SERVER_NOT_FOUND: { code: 20009, simStr: '服务器未找到' }, + GIFT_CODE_CANNOT_USE: { code: 20010, simStr: '该礼包码不可使用' }, } \ No newline at end of file diff --git a/shared/db/GiftCodeDetail.ts b/shared/db/GiftCodeDetail.ts index 709581001..3b2932870 100644 --- a/shared/db/GiftCodeDetail.ts +++ b/shared/db/GiftCodeDetail.ts @@ -63,6 +63,12 @@ export default class GiftCodeDetail extends BaseModel { return result; } + public static async checkOrderHasUsed(id: number, orderId: string) { + let result = await GiftCodeDetailModel.exists({ giftId: id, 'record.orderId': orderId }); + return result; + } + + public static async findAllCodeByGiftId(id: number, cnt: number) { let n = Math.ceil(cnt/1000); let result: GiftCodeDetailType[] = []; diff --git a/web-server/app/service/Sdk.ts b/web-server/app/service/Sdk.ts index 72560a2ae..a5a944139 100644 --- a/web-server/app/service/Sdk.ts +++ b/web-server/app/service/Sdk.ts @@ -454,8 +454,8 @@ export default class Sdk extends Service { if(!giftCode) { return resResult(SDK_37_ACTIVITY_CODE.GIFT_NOT_FOUND); } - if(giftCode.generateType == GIFT_GENERATE_TYPE.ONE_TO_ONE) { // 一人一条,单条不能被多人使用 - if(giftCodeDetail.usedNum > 0) return resResult(SDK_37_ACTIVITY_CODE.USE_CNT_MAX); + if(giftCode.generateType != GIFT_GENERATE_TYPE.ONE_TO_MANY) { // 一人一条,单条不能被多人使用 + return resResult(SDK_37_ACTIVITY_CODE.GIFT_CODE_CANNOT_USE); } if(!giftCode.isEnable) return resResult(SDK_37_ACTIVITY_CODE.GIFT_CODE_HAS_EXPIRED); if (giftCode.beginTime > nowSeconds()) return resResult(SDK_37_ACTIVITY_CODE.GIFT_CODE_NOT_START); @@ -467,12 +467,8 @@ export default class Sdk extends Service { let role = await RoleModel.findByUid(user.uid, params.server_id); if(!role) return resResult(SDK_37_ACTIVITY_CODE.ROLE_NOT_FOUND); - - if (giftCodeDetail.roleIds.indexOf(role.roleId) != -1) { - return resResult(SDK_37_ACTIVITY_CODE.ORDER_DUPLICATE); - } - let checkHasUse = await GiftCodeDetailModel.checkHasUsed(role.roleId, giftCodeDetail.giftId); + let checkHasUse = await GiftCodeDetailModel.checkOrderHasUsed(giftCodeDetail.giftId, params.order_id); if(checkHasUse) { return resResult(SDK_37_ACTIVITY_CODE.ORDER_DUPLICATE); }