diff --git a/src/api/controllers/coupon.controller.ts b/src/api/controllers/coupon.controller.ts index 037853e..92590aa 100644 --- a/src/api/controllers/coupon.controller.ts +++ b/src/api/controllers/coupon.controller.ts @@ -59,7 +59,7 @@ class CouponController extends BaseController { const record = await UserCoupon.findOne({ sid: id, accountId: sender }) const recordNew = record.copy() recordNew.accountId = accountId - recordNew.source = 'share' + recordNew.source = 'receive' recordNew.activityId = record.id await recordNew.save() const shop = await Shop.fetchByID(record.shop) diff --git a/src/models/user/UserCoupon.ts b/src/models/user/UserCoupon.ts index e7a6f9e..6f13c13 100644 --- a/src/models/user/UserCoupon.ts +++ b/src/models/user/UserCoupon.ts @@ -52,6 +52,8 @@ class UserCouponClass extends BaseModule { public count: number /** * 来源 + * receive: 领取别人分享的 + * share: 分享成就 */ @prop() public source: string @@ -78,6 +80,11 @@ class UserCouponClass extends BaseModule { */ @prop() public status: number + /** + * 过期时间 + */ + @prop({ default: 0 }) + public expire: number public static async fetchCount({ accountId, shop, item }: { accountId: string; shop: string; item: string }) { let record = await UserCoupon.findOne({ accountId, shop, item }) @@ -89,6 +96,7 @@ class UserCouponClass extends BaseModule { record.shop = this.shop record.item = this.item record.count = this.count + record.expire = this.expire || 0 record.status = 0 return record } @@ -104,6 +112,7 @@ class UserCouponClass extends BaseModule { source, activityId, rewardId, + expire, }: { accountId: string shop: string @@ -112,6 +121,7 @@ class UserCouponClass extends BaseModule { source: string activityId: string rewardId: string + expire: number }) { for (let i = 0; i < count; i++) { let record = new UserCoupon({}) @@ -123,6 +133,7 @@ class UserCouponClass extends BaseModule { record.source = source record.rewardId = rewardId record.status = 0 + record.expire = expire await record.save() } } diff --git a/src/models/user/UserReward.ts b/src/models/user/UserReward.ts index bb5ea19..b25f438 100644 --- a/src/models/user/UserReward.ts +++ b/src/models/user/UserReward.ts @@ -120,7 +120,11 @@ class UserRewardClass extends BaseModule { await saveRecord(0, count) let cdata = await Coupon.findById(itemId) name = cdata.name - await UserCoupon.addOne({ accountId, shop, item: itemId, count, source, activityId, rewardId }) + let expire = 0 + if (cdata.validDays) { + expire = Date.now() + cdata.validDays * 24 * 60 * 60 * 1000 + } + await UserCoupon.addOne({ accountId, shop, item: itemId, count, source, activityId, rewardId, expire }) await Coupon.updateCount(itemId, count) url = getCouponUrl(shop, itemId) }