hrjy 3 years ago
parent
commit
89014a22c3

+ 21 - 0
app/admin/model/system/SystemStore.php

@@ -3,6 +3,9 @@
 
 namespace app\admin\model\system;
 
+use app\models\store\StoreOrder;
+use app\models\system\SystemStoreStaff;
+use app\models\user\User;
 use crmeb\traits\ModelTrait;
 use crmeb\basic\BaseModel;
 use crmeb\services\PHPExcelService;
@@ -109,6 +112,24 @@ class SystemStore extends BaseModel
                 ->setExcelContent($export)
                 ->ExcelSave();
         }
+        foreach ($data as &$item) {
+            $uid = SystemStoreStaff::where('store_id', $item['id'])->column('uid');
+            $userUid = $uid;
+            if ($uid){
+                $user = User::select();
+                foreach ($uid as $v)
+                {
+                    $list = get_downline($user,$v);
+                    if ($list){
+                        foreach ($list as $value){
+                            $userUid[$value] = $value;
+                        }
+                    }
+                }
+            }
+            $item['count'] = StoreOrder::where('uid', 'in',$userUid)->where('paid', 1)->count();
+        }
+
         return compact('count', 'data');
     }
 

+ 8 - 10
app/admin/model/ump/StoreCouponUser.php

@@ -37,18 +37,16 @@ class StoreCouponUser extends BaseModel
     public static function systemPage($where)
     {
         $model = new self;
-        if ($where['status'] != '') $model = $model->where('status', $where['status']);
-        if ($where['is_fail'] != '') $model = $model->where('status', $where['is_fail']);
-        if ($where['coupon_title'] != '') $model = $model->where('coupon_title', 'LIKE', "%$where[coupon_title]%");
-        if ($where['nickname'] != '') {
-            $uid = UserModel::where('nickname', 'LIKE', "%$where[nickname]%")->column('uid', 'uid');
-            $model = $model->where('uid', 'IN', implode(',', $uid));
-        };
+        $model = $model->alias('a')
+            ->field('a.*,b.nickname')
+            ->leftJoin('user b', 'a.uid=b.uid');
+        if ($where['status'] != '') $model = $model->where('a.status', $where['status']);
+        if ($where['is_fail'] != '') $model = $model->where('a.status', $where['is_fail']);
+        if ($where['coupon_title'] != '') $model = $model->where('a.coupon_title', 'LIKE', "%$where[coupon_title]%");
+        if ($where['nickname'] != '') $model = $model->where('b.nickname|b.uid', 'LIKE', "%".$where['nickname']."%");
 //        $model = $model->where('is_del',0);
         $model = $model->order('id desc');
-        return self::page($model, function ($item) {
-            $item['nickname'] = UserModel::where('uid', $item['uid'])->value('nickname');
-        }, $where);
+        return self::page($model);
     }
 
     /**

+ 1 - 0
app/admin/view/system/system_store/index.php

@@ -96,6 +96,7 @@
             {field: 'cate_name', title: '分类', width: '10%'},
             {field: 'phone', title: '门店电话', width: '10%'},
             {field: 'address', title: '地址', templet: '#address'},
+            {field: 'count', title: '销量'},
             {field: 'day_time', title: '营业时间', width: '15%'},
             // {field: 'valid_time', title: '核销有效日期', width: '11%'},
             {field: 'status', title: '是否显示', templet: "#checkboxstatus", width: '8%'},

+ 15 - 1
app/api/controller/PublicController.php

@@ -14,6 +14,7 @@ use app\models\system\Express;
 use app\models\system\SystemCity;
 use app\models\system\SystemStore;
 use app\models\system\SystemStoreStaff;
+use app\models\user\User;
 use app\models\user\UserBill;
 use app\models\user\WechatUser;
 use app\Request;
@@ -303,7 +304,20 @@ class PublicController
             $list = [];
         } else{
             foreach ($list as &$item) {
-               $item['count'] = $item['sales'];
+                $uid = SystemStoreStaff::where('store_id', $item['id'])->column('uid');
+                $userUid = $uid;
+                if ($uid){
+                    foreach ($uid as $v)
+                    {
+                        $data = getParent($v);
+                        if ($data){
+                            foreach ($data as $value){
+                                $userUid[$value] = $value;
+                            }
+                        }
+                    }
+                }
+                $item['count'] = StoreOrder::where('uid', 'in',$userUid)->count();
             }
         }
         $data['list'] = $list;

+ 17 - 0
app/common.php

@@ -652,3 +652,20 @@ if (!function_exists('getParent')){
 
     }
 }
+
+if (!function_exists('get_downline')){
+    //所有下级
+    function get_downline($members,$id){
+        $arr=array();
+        foreach ($members as $key => $v) {
+
+            if($v['spread_uid']==$id){  //pid为0的是顶级分类
+
+                $arr[]=$v['uid'];
+                $arr = array_merge($arr,get_downline($members,$v['uid']));
+            }
+        }
+        return $arr;
+
+    }
+}

+ 0 - 1
app/models/user/UserSpread.php

@@ -61,7 +61,6 @@ class UserSpread extends BaseModel
             }
             $sp = $userlist[$sp]['spread_uid'];
         }
-
         $user = User::where('uid', $uid)->find();
         $spread_user = User::get($spread_uid);
         if (!$user || !$spread_user || !$spread_user['is_promoter']) {