lrf 2 年之前
父節點
當前提交
23d54b7b64
共有 1 個文件被更改,包括 54 次插入0 次删除
  1. 54 0
      app/service/user/userCoupon.js

+ 54 - 0
app/service/user/userCoupon.js

@@ -148,6 +148,60 @@ class UserCouponService extends CrudService {
       }
       uc.canUse = true;
     }
+    if (couponList.length <= 0) return [];
+    const dictDataModel = this.ctx.model.Dev.DictData;
+    // 过期字典
+    const expList = await dictDataModel.find({ code: 'coupon_expire_type' });
+    // 减免字典
+    const disList = await dictDataModel.find({ code: 'coupon_discount_type' });
+    // 使用字典
+    const useList = await dictDataModel.find({ code: 'coupon_use_limit' });
+    // 领取字典
+    const getList = await dictDataModel.find({ code: 'coupon_get_limit' });
+    couponList = couponList.map(i => {
+      const { _id, canUse, coupon, meta } = i;
+      let obj = { _id, canUse, name: _.get(coupon, 'name') };
+      // 失效
+      const expire_type = _.get(coupon, 'expire_type');
+      const expire_type_label = _.get(
+        expList.find(f => f.value === expire_type),
+        'label'
+      );
+      let expire_time = _.get(coupon, `expire_config.${expire_type}`);
+      if (expire_time) {
+        if (expire_type === 'fixed') expire_time = expire_time.join(' 至 ');
+        else {
+          expire_time = moment(meta.createdAt).add(expire_time, 'days').format('YYYY-MM-DD HH:mm:ss');
+        }
+      }
+      obj = { ...obj, expire_type, expire_type_label, expire_time };
+      // 减免
+      const discount_type = _.get(coupon, 'discount_type');
+      const discount_type_label = _.get(
+        disList.find(f => f.value === discount_type),
+        'label'
+      );
+      const discount_config = _.get(coupon, 'discoun_config');
+      obj = { ...obj, discount_type, discount_type_label, discount_config };
+      // 使用
+      const use_limit = _.get(coupon, 'use_limit');
+      const use_limit_label = _.get(
+        useList.find(f => f.value === use_limit),
+        'label'
+      );
+      const use_limit_config = _.get(coupon, 'use_limit_config');
+      obj = { ...obj, use_limit, use_limit_label, use_limit_config };
+
+      // 领取
+      const get_limit = _.get(coupon, 'get_limit');
+      const get_limit_label = _.get(
+        getList.find(f => f.value === get_limit),
+        'label'
+      );
+      const get_limit_config = _.get(coupon, 'get_limit_config');
+      obj = { ...obj, get_limit, get_limit_label, get_limit_config };
+      return obj;
+    });
     return couponList;
   }