Browse Source

供应商账号列表优化

wufeng 2 years ago
parent
commit
4d5f799900
2 changed files with 29 additions and 15 deletions
  1. 26 12
      app/abutment/logic/Account.php
  2. 3 3
      app/admin/controller/Account.php

+ 26 - 12
app/abutment/logic/Account.php

@@ -77,25 +77,39 @@ class Account
     public static function getAccountList(array $param = [])
     {
 
-        $db = new SupplierRelationUserModel();
+        $db = new SupplierUserModel();
+
 
         $rs = $db
-            ->alias('a')
-            ->leftJoin('supplier_user b', 'b.uid=a.uid AND b.is_del=0')
-            ->where([
-                'a.is_del' => $db::$is_del_normal,
-                'a.supplierNo' => $param['supplierNo'],
-            ]);
+            ->where('is_del', $db::$is_del_normal);
+
+        if ($param['keyword'] != '') $rs->whereLike('nickname|mobile', '%' . $param['keyword'] . '%');
+        if ($param['status'] != '') $rs->where('status', $param['status']);
+        if ($param['supplierNo'] != '') {
+            $uids = SupplierRelationUserModel::where([
+                'is_del' => $db::$is_del_normal,
+                'supplierNo' => $param['supplierNo']
+            ])->column('uid');
+
+            $rs->whereIn('uid', $uids);
+        }
 
-        if ($param['keyword'] != '') $rs->whereLike('b.nickname|b.mobile', '%' . $param['keyword'] . '%');
-        if ($param['status'] != '') $rs->where('a.status', $param['status']);
+        $count = $rs->count('uid');
 
-        $count = $rs->count('a.id');
 
         $list = $rs
-            ->field('a.id,b.uid,b.nickname,b.mobile,b.email,a.status,a.addtime,a.creater')
-            ->order('a.addtime', 'desc')
+            ->field('uid,nickname,mobile,email,status,addtime,creater')
+            ->order('addtime', 'desc')
             ->page($param['page'], $param['size'])
+            ->append(['supplier_list'])
+            ->withAttr('supplier_list', function ($val, $data) use ($db) {
+                return SupplierRelationUserModel::where([
+                    'is_del' => $db::$is_del_normal,
+                    'uid' => $data['uid']
+                ])->field('supplierNo,supplierName,status')
+                    ->select()
+                    ->toArray();
+            })
             ->select()
             ->toArray();
 

+ 3 - 3
app/admin/controller/Account.php

@@ -14,10 +14,10 @@ class Account extends Base
     public function getAccountList()
     {
 
-        $param = $this->request->filter('trim')->only(['supplierNo', 'keyword' => '', 'status' => '', 'page' => 1, 'size' => 15], 'post');
+        $param = $this->request->filter('trim')->only(['supplierNo'=>'', 'keyword' => '', 'status' => '', 'page' => 1, 'size' => 15], 'post');
 
         $val = Validate::rule([
-            'supplierNo|供应商编码' => 'require|alphaNum|length:18',
+            'supplierNo|供应商编码' => 'alphaNum|length:18',
             'keyword|关键字' => 'chsDash|max:100',
             'status|状态' => 'number|in:' . SupplierUser::$status_disabled . ',' . SupplierUser::$status_normal,
             'page|页码' => 'require|number|gt:0',
@@ -68,7 +68,7 @@ class Account extends Base
             'nickname|姓名' => 'require|max:255',
             'mobile|手机号' => 'require|number|length:11|mobile',
             'email|邮箱' => 'email',
-            'supplierNo|供应商编码' => 'require|alphaNum|length:18',
+            'supplierNo|供应商编码' => 'require|array|max:100',
         ]);
 
         if (!$val->check($param)) return json_show(1004, $val->getError());