ソースを参照

修改供应商账号时,修改绑定关系

wufeng 2 年 前
コミット
f74f692716
2 ファイル変更52 行追加14 行削除
  1. 48 11
      app/abutment/logic/Account.php
  2. 4 3
      app/admin/controller/Account.php

+ 48 - 11
app/abutment/logic/Account.php

@@ -257,22 +257,59 @@ class Account
     //修改供应商账号
     public static function editAccount(array $param = [])
     {
+        $user = GetUserInfo($param['token']);
 
-        $db = new SupplierUserModel();
+        Db::connect('mysql_sys')->startTrans();
 
-        $res = $db
-            ->field('uid')
-            ->where(['uid' => $param['uid'], 'is_del' => $db::$is_del_normal])
-            ->findOrEmpty()
-            ->isEmpty();
+        try {
 
-        if ($res) return json_show(1004, '该账号不存在');
+            $db = new SupplierUserModel();
 
-        $rs = $db
-            ->where('uid', $param['uid'])
-            ->save($param);
+            $res = $db
+                ->field('uid')
+                ->where(['uid' => $param['uid'], 'is_del' => $db::$is_del_normal])
+                ->findOrEmpty()
+                ->isEmpty();
+
+            if ($res) return json_show(1004, '该账号不存在');
+
+            $db
+                ->where('uid', $param['uid'])
+                ->strict(false)
+                ->save($param);
+
+            $relation_db = new SupplierRelationUserModel();
+            $insert = $retain = [];
+            foreach ($param['supplier_list'] as $supplier) {
+
+                if (isset($supplier['id']) && $supplier['id'] != 0) $retain[] = $supplier['id'];
+                else $insert[] = [
+                    'uid' => $param['uid'],
+                    'supplierNo' => $supplier['supplierNo'],
+                    'supplierName' => $supplier['supplierName'],
+                    'status' => $db::$status_normal,
+                    'is_del' => $db::$is_del_normal,
+                    'createrid' => $user['data']['user_id'] ?? 0,
+                    'creater' => $user['data']['nickname'] ?? 0,
+                ];
+            }
+
+            //除了保留id,其余删除
+            if (!empty($retain)) $relation_db->where([
+                'is_del' => $db::$is_del_normal,
+                'uid' => $param['uid']
+            ])->whereNotIn('id', $retain)->save(['is_del' => $db::$is_del_deleted]);
+
+            if ($insert) $relation_db->saveAll($insert);
+
+            Db::connect('mysql_sys')->commit();
+
+            return json_show(0, '操作成功');
+        } catch (Exception $exception) {
+            Db::connect('mysql_sys')->rollback();
+            return json_show(1005, '操作失败,' . $exception->getMessage());
+        }
 
-        return $rs ? json_show(0, '修改成功') : json_show(1005, '修改失败');
 
     }
 

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

@@ -14,7 +14,7 @@ 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|供应商编码' => 'alphaNum|length:18',
@@ -75,7 +75,7 @@ class Account extends Base
 
         $token = $this->request->filter('trim')->post('token');
 
-        return AccountLogic::addAccount($param,$token);
+        return AccountLogic::addAccount($param, $token);
 
     }
 
@@ -83,13 +83,14 @@ class Account extends Base
     public function editAccount()
     {
 
-        $param = $this->request->filter('trim')->only(['uid', 'nickname', 'mobile', 'email' => ''], 'post');
+        $param = $this->request->filter('trim')->only(['token', 'uid', 'nickname', 'mobile', 'email' => '', 'supplier_list' => []], 'post');
 
         $val = Validate::rule([
             'uid|用户ID' => 'require|number|gt:0',
             'nickname|姓名' => 'require|max:255',
             'mobile|手机号' => 'require|number|length:11|mobile',
             'email|邮箱' => 'email',
+            'supplier_list|供应商列表' => 'array|max:100',
         ]);
 
         if (!$val->check($param)) return json_show(1004, $val->getError());