Explorar o código

接口对接调整

gorden hai 11 meses
pai
achega
6218ffb094

+ 71 - 0
app/admin/controller/medical/DoctorController.php

@@ -5,6 +5,7 @@ namespace app\admin\controller\medical;
 use app\admin\validate\medical\DoctorValidate;
 use app\controller\Curd;
 use app\model\MedicalDoctor;
+use support\exception\BusinessException;
 use support\Request;
 use support\Response;
 
@@ -36,6 +37,76 @@ class DoctorController extends Curd
         return $this->doFormat($query, $format, $limit);
     }
 
+    protected function afterQuery($items)
+    {
+        foreach ($items as &$item) {
+            $item['doctor_avatar'] = getenv('STORAGE_DOMAIN') . $item['doctor_avatar'];
+        }
+
+        return $items;
+    }
+
+    protected function afterInfoQuery($info)
+    {
+        $info->doctor_avatar = getenv("STORAGE_DOMAIN") . $info->doctor_avatar;
+        // 出诊时间
+        if ($info->doctor_visit_time) {
+            $doctorVisitTimeArr = explode('~', $info->doctor_visit_time);
+            foreach ($doctorVisitTimeArr as $key => $item){
+                $doctorVisitTimeArr[$key] = date("Y-m-d\TH:i:s\Z",strtotime(date('Y-m-d ').$item)-8*3600);
+            }
+            $info->doctor_visit_time = $doctorVisitTimeArr;
+        }
+        // 上班时间
+        if ($info->doctor_work) {
+            $doctorWorkArr = explode('~', $info->doctor_work);
+            foreach ($doctorWorkArr as $key => $item){
+                $doctorWorkArr[$key] = date("Y-m-d\TH:i:s\Z",strtotime(date('Y-m-d ').$item)-8*3600);
+            }
+            $info->doctor_work = $doctorWorkArr;
+        }
+
+        return $info;
+    }
+
+    protected function insertInput(Request $request): array
+    {
+        $data = $this->inputFilter($request->post());
+        $data['doctor_avatar'] = str_replace(getenv("STORAGE_DOMAIN"), '', $data['doctor_avatar']);
+        // 处理时间
+        $doctorVisitTimeStart = date('H:i', strtotime($data['doctor_visit_time'][0]));
+        dd($doctorVisitTimeStart);
+
+        return $data;
+    }
+
+    protected function updateInput(Request $request): array
+    {
+        $primary_key = $this->model->getKeyName();
+        $id = $request->post($primary_key);
+        $data = $this->inputFilter($request->post());
+        $model = $this->model->find($id);
+        if (!$model) {
+            throw new BusinessException('记录不存在', 2);
+        }
+        unset($data[$primary_key]);
+        // 头像
+        $data['doctor_avatar'] = str_replace(getenv("STORAGE_DOMAIN"), '', $data['doctor_avatar']);
+        // 处理时间
+        if ($data['doctor_visit_time']) {
+            $doctorVisitTimeStart = date('H:i', strtotime(explode(',', $data['doctor_visit_time'])[0]));
+            $doctorVisitTimeEnd = date('H:i', strtotime(explode(',', $data['doctor_visit_time'])[1]));
+            $data['doctor_visit_time'] = $doctorVisitTimeStart . '~' . $doctorVisitTimeEnd;
+        }
+        if ($data['doctor_work']){
+            $doctorWorkStart = date('H:i', strtotime(explode(',', $data['doctor_work'])[0]));
+            $doctorWorkEnd = date('H:i', strtotime(explode(',', $data['doctor_work'])[1]));
+            $data['doctor_work'] = $doctorWorkStart . '~' . $doctorWorkEnd;
+        }
+
+        return [$id, $data];
+    }
+
     /**
      * @Desc 软删除
      * @Author Gorden

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

@@ -229,7 +229,7 @@ class MenuController extends Curd
         $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);

+ 2 - 2
app/admin/controller/sys_manage/UserController.php

@@ -124,8 +124,8 @@ class UserController
      * @param $id
      * @return \support\Response
      */
-    public function delUser($id)
+    public function delUser(Request $request)
     {
-        return UserService::delUser($id);
+        return UserService::delUser($request);
     }
 }

+ 3 - 3
app/admin/service/sys_manage/ConfigService.php

@@ -53,9 +53,9 @@ class ConfigService
                 'config_alias' => $params['config_alias'],
                 'config_value' => $params['config_value'],
                 'config_value_json' => !empty($params['config_value_json']) ? $params['config_value_json'] : '{}',
-                'config_sort' => $params['config_sort'],
-                'config_groupby' => $params['config_groupby'],
-                'config_remark' => format_string($params['config_remark']),
+                'config_sort' => $params['config_sort'] ?? 0,
+                'config_groupby' => $params['config_groupby'] ?? '',
+                'config_remark' => isset($params['config_remark']) ? format_string($params['config_remark']) : '',
                 'config_extend_json' => !empty($params['config_extend_json']) ? $params['config_extend_json'] : '{}',
                 'config_addtimes' => time()
             ];

+ 24 - 16
app/admin/service/sys_manage/UserService.php

@@ -3,6 +3,7 @@
 namespace app\admin\service\sys_manage;
 
 use app\model\SysUser;
+use support\Request;
 
 class UserService
 {
@@ -16,21 +17,21 @@ class UserService
      * @param $keywords
      * @return \support\Response
      */
-    public static function userList($page, $limit, $keywords)
+    public static function userList($page, $pageSize, $keywords)
     {
-        $list = SysUser::select('join_user_role_id', 'join_user_dept_id', 'user_status', 'user_category', 'user_name', 'user_login_name', 'user_mobile', 'user_remark', 'user_extend_json', 'user_addtimes')
+        $rows = SysUser::select('join_user_role_id', 'join_user_dept_id', 'user_id', 'user_status', 'user_category', 'user_name', 'user_login_name', 'user_mobile', 'user_remark', 'user_extend_json', 'user_addtimes')
             ->when($keywords != '', function ($query) use ($keywords) {
                 $query->where('user_name', 'like', '%' . $keywords . '%');
             })
             ->orderBy('user_addtimes', 'DESC')
-            ->forPage($page, $limit)
+            ->forPage($page, $pageSize)
             ->get()
             ->toArray();
-        $count = SysUser::when($keywords != '', function ($query) use ($keywords) {
+        $total = SysUser::when($keywords != '', function ($query) use ($keywords) {
             $query->where('user_name', 'like', '%' . $keywords . '%');
         })->count();
 
-        return json_success('', compact('list', 'page', 'limit', 'count'));
+        return json_success('', compact('rows', 'page', 'pageSize', 'total'));
     }
 
     /**
@@ -66,15 +67,15 @@ class UserService
         try {
             $data = [
                 'user_id' => self::generateUserId(),
-                'join_user_role_id' => $params['join_user_role_id'],
-                'join_user_dept_id' => $params['join_user_dept_id'],
-                'user_status' => $params['user_status'],
-                'user_category' => $params['user_category'],
-                'user_name' => $params['user_name'],
-                'user_login_name' => $params['user_login_name'],
+                'join_user_role_id' => $params['join_user_role_id'] ?? 0,
+                'join_user_dept_id' => $params['join_user_dept_id'] ?? 0,
+                'user_status' => $params['user_status'] ?? '',
+                'user_category' => $params['user_category'] ?? '',
+                'user_name' => $params['user_name'] ?? '',
+                'user_login_name' => $params['user_login_name'] ?? '',
                 'user_login_pass' => md5(sha1($params['user_login_pass'])),
-                'user_mobile' => $params['user_mobile'],
-                'user_remark' => $params['user_remark'],
+                'user_mobile' => $params['user_mobile'] ?? '',
+                'user_remark' => $params['user_remark'] ?? '',
                 'user_extend_json' => !empty($params['user_extend_json']) ? $params['user_extend_json'] : '{}',
                 'user_addtimes' => time()
             ];
@@ -82,6 +83,7 @@ class UserService
                 throw new \Exception('添加用户失败');
             }
         } catch (\Exception $e) {
+            dump($e->getMessage());
             return json_fail('添加用户失败');
         }
 
@@ -153,11 +155,17 @@ class UserService
      * @param $id
      * @return \support\Response
      */
-    public static function delUser($id)
+    public static function delUser(Request $request)
     {
+        $ids = $request->post('user_id');
+        if (!$ids) {
+            return json_fail("数据错误");
+        }
         try {
-            if (!SysUser::where('user_id', $id)->delete()) {
-                throw new \Exception('删除用户失败');
+            if (is_array($ids)) {
+                SysUser::whereIn('user_id', $ids)->delete();
+            } else {
+                SysUser::where('user_id', $ids)->delete();
             }
         } catch (\Exception $e) {
             return json_fail('删除用户失败');

+ 2 - 1
app/admin/validate/medical/DoctorValidate.php

@@ -10,7 +10,7 @@ class DoctorValidate extends Validate
         'doctor_id' => 'require|integer',
         'doctor_name' => 'require|chsDash',
         'doctor_position' => 'require|chsDash',
-        'doctor_avatar' => 'require|regex:/^[0-9a-zA-Z\.\/]+$/',
+        'doctor_avatar' => 'require|url',
         'doctor_mobile' => 'mobile',
         'doctor_is_visit' => 'require|in:0,1',
         'doctor_price' => 'require|float',
@@ -28,5 +28,6 @@ class DoctorValidate extends Validate
             'doctor_type', 'doctor_on_line', 'doctor_shop_id', 'doctor_subject_id', 'doctor_status'],
         'update' => ['doctor_id', 'doctor_name', 'doctor_position', 'doctor_avatar', 'doctor_mobile', 'doctor_is_visit', 'doctor_price',
             'doctor_type', 'doctor_on_line', 'doctor_shop_id', 'doctor_subject_id', 'doctor_status'],
+        'info' => ['doctor_id']
     ];
 }

+ 34 - 2
app/controller/Curd.php

@@ -56,6 +56,34 @@ class Curd
         return $this->doFormat($query, $format, $limit);
     }
 
+    /**
+     * @Desc 记录详情
+     * @Author Gorden
+     * @Date 2024/3/18 14:22
+     *
+     * @param Request $request
+     * @return Response
+     */
+    public function info(Request $request): Response
+    {
+        $primaryKey = $this->model->getKeyName();
+        $validateArr = [
+            $primaryKey => $request->get('id')
+        ];
+
+        if ($this->validate && !$this->validateClass->scene('info')->check($validateArr)) {
+            return json_fail($this->validateClass->getError());
+        }
+
+        $data = $this->model->where($primaryKey, $request->get('id'))->first();
+
+        if (method_exists($this, "afterInfoQuery")) {
+            $data = call_user_func([$this, "afterInfoQuery"], $data);
+        }
+
+        return json_success('', $data);
+    }
+
     /**
      * 添加
      * @param Request $request
@@ -144,7 +172,7 @@ class Curd
         $field = $request->get('field');
         $order = $request->get('order', 'asc');
         $format = $request->get('format', 'normal');
-        $limit = (int)$request->get('limit', $format === 'tree' ? 1000 : 10);
+        $limit = (int)$request->get('pageSize', $format === 'tree' ? 1000 : 10);
         $limit = $limit <= 0 ? 10 : $limit;
         $order = $order === 'asc' ? 'asc' : 'desc';
         $where = $request->get();
@@ -518,7 +546,11 @@ class Curd
      */
     protected function formatNormal($items, $total): Response
     {
-        return json(['code' => 0, 'msg' => 'success', 'count' => $total, 'data' => $items]);
+        $data = [
+            'total' => $total,
+            'rows' => $items
+        ];
+        return json(['code' => 200, 'msg' => 'success', 'data' => $data]);
     }
 
     /**

+ 4 - 0
app/model/SysUser.php

@@ -14,6 +14,10 @@ class SysUser extends Model
 
     protected $keyType = 'string';
 
+    public function getUserAddtimesAttribute($value){
+        return date('Y-m-d H:i:s',$value);
+    }
+
     /* 按登录名查找用户 */
     public static function findByLoginName($name)
     {

+ 1 - 1
route/admin.php

@@ -49,7 +49,7 @@ Route::group('/admin', function () {
             Route::post('/add', [\app\admin\controller\sys_manage\UserController::class, 'addUser']);
             Route::post('/update/{id:\w+}', [\app\admin\controller\sys_manage\UserController::class, 'updateUser']);
             Route::post('/updateStatus/{id:\w+}', [\app\admin\controller\sys_manage\UserController::class, 'updateStatus']);
-            Route::delete('/delete/{id:\w+}', [\app\admin\controller\sys_manage\UserController::class, 'delUser']);
+            Route::delete('/delete', [\app\admin\controller\sys_manage\UserController::class, 'delUser']);
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);