Bladeren bron

完善功能

gorden 10 maanden geleden
bovenliggende
commit
cb1005492f

+ 51 - 2
app/admin/controller/device/DeviceController.php

@@ -6,6 +6,7 @@ use app\admin\validate\device\DeviceValidate;
 use app\controller\Curd;
 use app\model\Device;
 use app\model\SysSerial;
+use support\exception\BusinessException;
 use support\Request;
 use support\Response;
 
@@ -73,7 +74,7 @@ class DeviceController extends Curd
     public function selectList()
     {
         $class = get_class($this->model);
-        $data = $class::whereIn('device_status', ['PROCESSING','PENDING'])
+        $data = $class::whereIn('device_status', ['PROCESSING', 'PENDING'])
             ->select('device_id', 'device_name', 'device_src_key')
             ->get()
             ->toArray();
@@ -81,6 +82,49 @@ class DeviceController extends Curd
         return json_success('', $data);
     }
 
+    public function insert(Request $request): Response
+    {
+        if ($this->validate && !$this->validateClass->scene('add')->check($request->post())) {
+            return json_fail($this->validateClass->getError());
+        }
+
+        try {
+            $data = $this->insertInput($request);
+            dump($data);
+            $this->doInsert($data);
+        } catch (BusinessException $customException) {
+            return json_fail($customException->getMessage());
+        } catch (\Exception $e) {
+            dump($e->getMessage());
+            return json_fail('数据写入失败');
+        }
+
+        _syslog("添加设备", "设备名称【" . $request->post('device_name') . '】');
+
+        return json_success('success');
+    }
+
+    public function update(Request $request): Response
+    {
+        if ($this->validate && !$this->validateClass->scene('update')->check($request->post())) {
+            return json_fail($this->validateClass->getError());
+        }
+
+        try {
+            [$id, $data] = $this->updateInput($request);
+            $this->doUpdate($id, $data);
+        } catch (BusinessException $e) {
+            return json_fail($e->getMessage());
+        } catch (\Exception $e) {
+            dump($e->getTrace());
+            return json_fail('数据更新失败');
+        }
+
+        _syslog("编辑设备", "设备名称【" . $request->post('device_name') . '】');
+
+        return json_success('success');
+    }
+
     protected function insertInput(Request $request): array
     {
         $data = $this->inputFilter($request->post());
@@ -100,7 +144,7 @@ class DeviceController extends Curd
     {
         $id = SysSerial::getSerial();
 
-        return "DE" . str_pad($id, 16, '0', STR_PAD_LEFT) . random_string(8);
+        return "DE" . str_pad($id, 16, '0', STR_PAD_LEFT) . random_string(6, 'up');
     }
 
     public function delete(Request $request): Response
@@ -111,7 +155,12 @@ class DeviceController extends Curd
             return json_fail('只有库存状态的设备可以删除');
         }
 
+        $devices = Device::whereIn('device_id', $ids)->get()->toArray();
+
         $this->doDelete($ids);
+
+        _syslog("删除设备", "删除的设备ID【" . implode(',', $ids) . '】', $devices);
+
         return json_success('success');
     }
 }

+ 5 - 1
app/admin/controller/member/MemberController.php

@@ -31,7 +31,7 @@ class MemberController
         foreach ($res as $item) {
             $data[] = [
                 'key' => $item->member_id,
-                'value' => !empty($item->member_cert_name) ? $item->member_cert_name.'-'.$item->member_mobile : $item->member_mobile,
+                'value' => !empty($item->member_cert_name) ? $item->member_cert_name . '-' . $item->member_mobile : $item->member_mobile,
             ];
         }
 
@@ -87,6 +87,8 @@ class MemberController
             return json_fail($validate->getError());
         }
 
+        _syslog("添加用户", "用户【" . $request->post('member_cert_name') . '】');
+
         return MemberService::add($request->post());
     }
 
@@ -97,6 +99,8 @@ class MemberController
             return json_fail($validate->getError());
         }
 
+        _syslog("编辑用户", "用户【" . $request->post('member_cert_name') ?? $request->post('member_id') . '】');
+
         return MemberService::update($request->post());
     }
 

+ 18 - 1
app/admin/controller/sys_manage/MenuController.php

@@ -6,6 +6,8 @@ use app\admin\validate\sys_manage\MenuValidate;
 use app\common\Tree;
 use app\controller\Curd;
 use app\model\SysMenu;
+use app\model\SysRole;
+use app\model\SysUser;
 use support\Db;
 use support\exception\BusinessException;
 use support\Request;
@@ -252,10 +254,25 @@ class MenuController extends Curd
     public function myMenu(Request $request)
     {
         [$where, $format, $limit, $field, $order] = $this->selectInput($request);
+
+        $adminId = \Tinywan\Jwt\JwtToken::getCurrentId();
+        if (!$adminId) {
+            throw new BusinessException("请先登录");
+        }
+        $user = SysUser::where('user_id', $adminId)->first();
+        $permission = [];
+        if (!empty($user->join_user_role_id)) {
+            $role = SysRole::where('role_id', $user->join_user_role_id)->first();
+            $permission = json_decode($role->role_permission,true);
+        }
+        if (!empty($permission)){
+            $where['menu_name'] = ['in', implode(',', $permission)];
+        }
+
         $format = $request->get('format', 'tree');
         $order = $request->get('order', 'desc');
         $field = $field ?? 'menu_sort';
-//        $where['menu_is_show'] = 1;
+        $where['menu_is_show'] = 1;
         $limit = 1000;
         $query = $this->doSelect($where, $field, $order);
         return $this->doFormat($query, $format, $limit);

+ 10 - 0
app/admin/controller/sys_manage/RoleController.php

@@ -76,6 +76,16 @@ class RoleController
         return RoleService::updateRole(intval($id), $request->post());
     }
 
+    public function updatePermission($id, Request $request)
+    {
+        $validate = new RoleValidate();
+        if (!$validate->scene('permission')->check($request->post())) {
+            return json_fail($validate->getError());
+        }
+
+        return RoleService::updatePermission(intval($id), $request->post());
+    }
+
     /**
      * @Desc 删除角色
      * @Author Gorden

+ 7 - 0
app/admin/controller/sys_manage/TaskController.php

@@ -160,6 +160,13 @@ class TaskController extends Curd
                 $data['appointment'] = $appointment ?? null;
             }
         }
+        // 查询工单处理记录
+        $process = TaskProcess::with('user')
+            ->where('join_process_task_id',$request->get('id'))
+            ->get()
+            ->toArray();
+
+        $data['process'] = $process;
 
         return json_success('', $data);
     }

+ 17 - 0
app/admin/service/goods/GoodsService.php

@@ -412,6 +412,8 @@ class GoodsService
             return json_fail('数据写入失败~');
         }
 
+        _syslog("添加商品", "商品名【" . $params['goods_name'] . "】");
+
         return json_success('success');
     }
 
@@ -453,6 +455,8 @@ class GoodsService
             return json_fail('数据写入失败~');
         }
 
+        _syslog("添加套餐", "商品名【" . $params['goods_name'] . "】");
+
         return json_success('success');
     }
 
@@ -479,6 +483,9 @@ class GoodsService
             Db::rollBack();
             return json_fail('数据更新失败~');
         }
+
+        _syslog("编辑商品", "商品名【" . $params['goods_name'] . "】" ?? "商品ID:【" . $params['goods_id'] . "】");
+
         return json_success('success');
     }
 
@@ -507,6 +514,8 @@ class GoodsService
             dump($e->getTrace());
             return json_fail('数据更新失败~');
         }
+        _syslog("编辑套餐", "商品名【" . $params['goods_name'] . "】" ?? "商品ID:【" . $params['goods_id'] . "】");
+
         return json_success('success');
     }
 
@@ -527,6 +536,11 @@ class GoodsService
             $ids = [$ids];
         }
 
+        $goods = Goods::whereIn('goods_id', $ids)->get()->toArray();
+        if (!$goods) {
+            return json_fail("数据错误~");
+        }
+
         Db::beginTransaction();
         try {
             Goods::whereIn('goods_id', $ids)->delete();
@@ -536,6 +550,9 @@ class GoodsService
             GoodsSku::whereIn('join_sku_goods_id', $ids)->delete();
 
             Db::commit();
+
+            _syslog("删除商品 / 套餐", "ID:【" . implode(',', $ids) . "】", $goods);
+
             return json_success("商品删除成功");
         } catch (\Exception $e) {
             Db::rollBack();

+ 23 - 3
app/admin/service/member/MemberService.php

@@ -245,13 +245,20 @@ class MemberService
 
             MemberDevice::insert($data);
 
+            $device = Device::where('device_id', $params['join_member_device_id'])->whereIn('device_status', ['PROCESSING', 'PENDING'])->first();
             // 激活设备
-            if (!Device::where('device_id', $params['join_member_device_id'])->whereIn('device_status', ['PROCESSING', 'PENDING'])->exists()) {
+            if (!$device) {
                 Db::rollBack();
                 return json_fail('当前设备不是可激活状态');
             }
+
+            $device->device_status = 'ACTIVED';
+            $device->save();
+
             Device::where('device_id', $params['join_member_device_id'])->update(['device_status' => 'ACTIVED']);
 
+            _syslog("绑定设备", "用户【" . ($params['join_device_member_id'] ?? $params['join_device_master_member_id']) . '】,绑定设备【' . $device->device_name . '】');
+
             Db::commit();
         } catch (\Exception $e) {
             Db::rollBack();
@@ -277,10 +284,18 @@ class MemberService
 
             MemberDevice::where('member_device_id', $request->post('member_device_id'))->update($data);
 
-            Device::where('device_id', $params['join_member_device_id'])->update(['device_status' => $params['member_device_status']]);
+            $device = Device::where('device_id', $params['join_member_device_id'])->first();
+            if ($device->device_status != $params['member_device_status']) {
+                $device->device_status = $params['member_device_status'];
+                $device->save();
+            }
+
+//            Device::where('device_id', $params['join_member_device_id'])->update(['device_status' => $params['member_device_status']]);
 
             Db::commit();
 
+            _syslog("更新绑定设备", "用户【" . ($params['join_device_member_id'] == "" ? $params['join_device_member_id'] : $params['join_device_master_member_id']) . '】,绑定设备【' . $device->device_name . '】');
+
         } catch (\Exception $e) {
             Db::rollBack();
             dump($e->getMessage());
@@ -299,12 +314,17 @@ class MemberService
                 return json_fail('数据不存在');
             }
 
-            Device::where('device_id', $memberDevice->join_member_device_id)->update(['device_status' => 'DISABLED']);
+            $device = Device::where('device_id', $memberDevice->join_member_device_id)->first();
+            $device->device_status = "DISABLED";
+            $device->save();
+//            Device::where('device_id', $memberDevice->join_member_device_id)->update(['device_status' => 'DISABLED']);
 
             $memberDevice->delete();
 
             Db::commit();
 
+            _syslog("解除绑定设备", "用户【" . ($memberDevice->join_device_member_id == "" ? $memberDevice->join_device_member_id : $memberDevice->join_device_master_member_id) . '】,解除绑定设备【' . $device->device_name . '】');
+
             return json_success('解除绑定成功');
         } catch (\Exception $e) {
             Db::rollBack();

+ 28 - 0
app/admin/service/sys_manage/RoleService.php

@@ -35,6 +35,12 @@ class RoleService
             $query->where('role_name', 'like', '%' . $keyword . '%');
         })->count();
 
+        foreach ($rows as &$row) {
+            if (!empty($row['role_permission']) && is_json($row['role_permission'])) {
+                $row['role_permission'] = json_decode($row['role_permission']);
+            }
+        }
+
         return json_success('', compact('rows', 'page', 'pageSize', 'total'));
     }
 
@@ -74,6 +80,7 @@ class RoleService
                 'role_name' => $params['role_name'],
                 'role_remark' => $params['role_remark'] ? format_string($params['role_remark']) : null,
                 'role_extend_json' => $params['role_extend_json'] ?? null,
+                'role_permission'=>'[]',
                 'role_addtimes' => time()
             ];
 
@@ -122,6 +129,27 @@ class RoleService
         return json_success('角色修改成功');
     }
 
+    public static function updatePermission($id, $params)
+    {
+        $role = SysRole::find($id);
+        if (!$role) {
+            return json_fail('角色不存在');
+        }
+
+        try {
+            $data = [
+                'role_permission' => $params['role_permission'],
+            ];
+            if (!SysRole::where('role_id', $id)->update($data)) {
+                throw new \Exception('角色修改失败');
+            }
+        } catch (\Exception $e) {
+            return json_fail($e->getMessage());
+        }
+
+        return json_success('角色修改成功');
+    }
+
     /**
      * @Desc 删除角色
      * @Author Gorden

+ 1 - 0
app/admin/validate/sys_manage/RoleValidate.php

@@ -19,5 +19,6 @@ class RoleValidate extends Validate
         'add' => ['role_status', 'role_category', 'role_name'],
         'update' => ['role_status', 'role_category', 'role_name'],
         'update_status' => ['role_status'],
+        'permission' => ['role_id']
     ];
 }

+ 1 - 0
route/admin.php

@@ -82,6 +82,7 @@ Route::group('/admin', function () {
             Route::post('/update/{id:\d+}', [\app\admin\controller\sys_manage\RoleController::class, 'updateRole']);
             Route::delete('/delete', [\app\admin\controller\sys_manage\RoleController::class, 'delRole']);
             Route::post('/updateStatus/{id:\d+}', [\app\admin\controller\sys_manage\RoleController::class, 'updateStatus']);
+            Route::post('/updatePermission/{id:\d+}', [\app\admin\controller\sys_manage\RoleController::class, 'updatePermission']);
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);