lrf 2 年之前
父节点
当前提交
7bb88d1a40
共有 2 个文件被更改,包括 28 次插入23 次删除
  1. 7 0
      app/service/user/user.js
  2. 21 23
      app/service/view/goods.js

+ 7 - 0
app/service/user/user.js

@@ -181,6 +181,13 @@ class UserService extends CrudService {
     if (target !== rt) throw new BusinessError(ErrorCode.DATA_INVALID, '操作对象不是同一个数据,操作无效');
     await this.model.deleteOne({ _id: target });
   }
+
+  async getUserIsLeader(id) {
+    const user = await this.model.findById(id, { is_leader: 1 }).lean();
+    if (!user) return false;
+    const is_leader = _.get(user, 'is_leader', '1');
+    return is_leader === '0';
+  }
 }
 
 module.exports = UserService;

+ 21 - 23
app/service/view/goods.js

@@ -17,6 +17,7 @@ class GoodsService extends CrudService {
     this.gjaModel = this.ctx.model.Shop.GoodsJoinAct;
     this.actTagsModel = this.ctx.model.System.ActTags;
     this.goodsConfigModel = this.ctx.model.Shop.GoodsConfig;
+    this.userModel = this.ctx.model.User.User;
   }
   /**
    *
@@ -159,23 +160,22 @@ class GoodsService extends CrudService {
       }
     }
     data.act = _.uniqBy(data.act, '_id');
-    const user = _.get(this.ctx, 'user');
-    if (user) {
-      const is_leader = _.get(user, 'is_leader', '1');
-      if (is_leader === '0') {
-        if (is_leader === '0') {
-          data.specs = data.specs.map(i => {
-            const { sell_money, leader_price } = i;
-            const sm = this.ctx.toNumber(sell_money);
-            const obj = { o_sell_money: sm };
-            if (leader_price) {
-              const lp = this.ctx.toNumber(leader_price);
-              obj.leader_price = lp;
-              obj.sell_money = lp;
-            }
-            return { ...i, ...obj };
-          });
-        }
+    const user_id = _.get(this.ctx, 'user._id');
+    if (user_id) {
+      // 检查团长价格
+      const is_leader = await this.ctx.service.user.user.getUserIsLeader(user_id);
+      if (is_leader) {
+        data.specs = data.specs.map(i => {
+          const { sell_money, leader_price } = i;
+          const sm = this.ctx.toNumber(sell_money);
+          const obj = { o_sell_money: sm };
+          if (leader_price) {
+            const lp = this.ctx.toNumber(leader_price);
+            obj.leader_price = lp;
+            obj.sell_money = lp;
+          }
+          return { ...i, ...obj };
+        });
       }
     }
     return data;
@@ -263,12 +263,10 @@ class GoodsService extends CrudService {
     const platformActList = await this.platformActModel.find({ is_use: '0', type: [ '2', '3', '5', '6' ] });
     await this.getAboutAct(platformActList, list);
     // 检查团长价格
-    const user = _.get(this.ctx, 'user');
-    if (user) {
-      const is_leader = _.get(user, 'is_leader', '1');
-      if (is_leader === '1') {
-        list = list.map(i => _.omit(i, [ 'leader_price' ]));
-      }
+    const user_id = _.get(this.ctx, 'user._id');
+    const is_leader = await this.ctx.service.user.user.getUserIsLeader(user_id);
+    if (!is_leader) {
+      list = list.map(i => _.omit(i, [ 'leader_price' ]));
     }
     const tpipeline = _.cloneDeep(pipeline);
     tpipeline.push({ $count: 'total' });