gorden 9 kuukautta sitten
vanhempi
säilyke
a3b47f7140

+ 15 - 1
app/admin/controller/marketing/DeptPremisesController.php

@@ -23,10 +23,24 @@ class DeptPremisesController extends Curd
     public function selectList()
     {
         $premisses = SysDept::where('dept_category', '营业场所')
-            ->select('dept_id as key', 'dept_name as label','dept_address as address','dept_position as position')
+            ->select('dept_id as key', 'dept_name as label','dept_address as address','dept_position as position','dept_extend_json')
             ->get()
             ->toArray();
 
+        foreach($premisses as &$item){
+            $item['work_time'] = [];
+            if($item['dept_extend_json']){
+                $extendJson = json_decode($item['dept_extend_json'],true);
+                if(isset($extendJson['times'])){
+                    $extendJsonTime = explode('~',$extendJson['times']);
+                    $item['work_time'] = [
+                        date('Y-m-d H:i:s',strtotime(date('Y-m-d ').$extendJsonTime[0])),
+                        date('Y-m-d H:i:s',strtotime(date('Y-m-d ').$extendJsonTime[1])),
+                    ];
+                }
+            }
+        }
+
         return json_success('', $premisses);
     }
 

+ 30 - 0
app/admin/controller/sys_manage/UserController.php

@@ -6,6 +6,7 @@ use app\admin\service\sys_manage\DeptService;
 use app\admin\service\sys_manage\RoleService;
 use app\admin\service\sys_manage\UserService;
 use app\admin\validate\sys_manage\UserValidate;
+use app\model\Member;
 use support\Request;
 
 class UserController
@@ -134,4 +135,33 @@ class UserController
     {
         return UserService::delUser($request);
     }
+
+    public function correlationMember(Request $request){
+        $memberId = $request->post('member_id','');
+        $userId = $request->post('user_id','');
+        $permission = $request->post('permission',[]);
+        if(!$memberId || !$userId){
+            return json_fail('参数异常');
+        }
+        try{
+            $member = Member::where('member_id',$memberId)->first();
+            $memberJson = [];
+            if(!empty($member->member_json)){
+                $memberJson = json_decode($member->member_json,true);
+            }
+    
+            $memberJson['user'] = [
+                'user_id'=>$userId,
+                'permission'=>$permission
+            ];
+            $member->member_json = json_encode($memberJson);
+            $member->save();
+
+            return json_success('success');
+        }catch(\Exception $e){
+            return json_fail('关联会员失败');
+        }
+        
+
+    }
 }

+ 129 - 42
app/admin/service/goods/GoodsService.php

@@ -657,18 +657,18 @@ class GoodsService
                         ];
                     }
                 }
-                if (isset($extendJson['teachers'])){
-                    $data['teachers'] = $extendJson['teachers'];
-                }
-                if (isset($extendJson['address'])) {
-                    $data['address'] = $extendJson['address'];
-                }
-                if (isset($extendJson['min-count'])){
-                    $data['min_count'] = $extendJson['min-count'];
-                }
-                if (isset($extendJson['position'])) {
-                    $data['position'] = $extendJson['position'];
-                }
+                // if (isset($extendJson['teachers'])){
+                //     $data['teachers'] = $extendJson['teachers'];
+                // }
+                // if (isset($extendJson['address'])) {
+                //     $data['address'] = $extendJson['address'];
+                // }
+                // if (isset($extendJson['min-count'])){
+                //     $data['min_count'] = $extendJson['min-count'];
+                // }
+                // if (isset($extendJson['position'])) {
+                //     $data['position'] = $extendJson['position'];
+                // }
                 if (isset($extendJson['label'])) {
                     $data['appointment_label'] = $extendJson['label'];
                 }
@@ -714,6 +714,18 @@ class GoodsService
                 }
                 $data['goods_json'] = $goodsJsonNew;
             }
+            if (isset($extendJson['teachers'])){
+                $data['teachers'] = $extendJson['teachers'];
+            }
+            if (isset($extendJson['address'])) {
+                $data['address'] = $extendJson['address'];
+            }
+            if (isset($extendJson['min-count'])){
+                $data['min_count'] = $extendJson['min-count'];
+            }
+            if (isset($extendJson['position'])) {
+                $data['position'] = $extendJson['position'];
+            }
 
             $data['goods_on_addtimes'] = date('Y-m-d\TH:i:s.u\Z', $data['goods_on_addtimes'] - 60 * 60 * 8);
 
@@ -1251,31 +1263,31 @@ class GoodsService
                     $attributeJsonDate = $currentDate . '至' . $lastDate;
                 }
             
-                if (isset($params['work_time'])){
-                    $workTimeStart = date('H:i',strtotime($params['work_time'][0]));
-                    $workTimeEnd = date('H:i',strtotime($params['work_time'][1]));
-                    $attributeJsonTime = $workTimeStart.'至'.$workTimeEnd;
-                }
+                // if (isset($params['work_time'])){
+                //     $workTimeStart = date('H:i',strtotime($params['work_time'][0]));
+                //     $workTimeEnd = date('H:i',strtotime($params['work_time'][1]));
+                //     $attributeJsonTime = $workTimeStart.'至'.$workTimeEnd;
+                // }
 
                 $attributeJson = [
                     'icon' => $model->goods_cover,
                     'date' => $attributeJsonDate,
-                    'time' => $attributeJsonTime,
+                    // 'time' => $attributeJsonTime,
                     'dates' => $newDates ? array_values($newDates) : [],
                     'times' => $times,
                     'person' => $personTotal
                 ];
-                if(isset($params['address'])){
-                    $attributeJson['address'] = $params['address'];
-                }
-                if (isset($params['min_count'])){
-                    $attributeJson['min-count'] = $params['min_count'];
-                }else{
-                    $attributeJson['min-count'] = 1;
-                }
-                if (isset($params['teachers'])){
-                    $attributeJson['teachers'] = $params['teachers'];
-                }
+                // if(isset($params['address'])){
+                //     $attributeJson['address'] = $params['address'];
+                // }
+                // if (isset($params['min_count'])){
+                //     $attributeJson['min-count'] = $params['min_count'];
+                // }else{
+                //     $attributeJson['min-count'] = 1;
+                // }
+                // if (isset($params['teachers'])){
+                //     $attributeJson['teachers'] = $params['teachers'];
+                // }
                 if (!empty($params['appointment_label'])) {
                     $attributeJson['label'] = $params['appointment_label'];
                 }
@@ -1409,7 +1421,38 @@ class GoodsService
                 $attributeJson['service_premises_id'] = $params['goods_service_premises'];
                 $model->goods_attribute_json = json_encode($attributeJson);
             }
+            if (isset($params['min_count'])){
+                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
+                    $attributeJson = json_decode($model->goods_attribute_json, true);
+                } elseif (empty($model->goods_attribute_json)) {
+                    $attributeJson = [];
+                }
+                $attributeJson['min-count'] = $params['min_count'];
+                $model->goods_attribute_json = json_encode($attributeJson);
+            }
+            if (isset($params['teachers'])){
+                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
+                    $attributeJson = json_decode($model->goods_attribute_json, true);
+                } elseif (empty($model->goods_attribute_json)) {
+                    $attributeJson = [];
+                }
+                $attributeJson['teacherst'] = $params['teachers'];
+                $model->goods_attribute_json = json_encode($attributeJson);
+            }
+            if (isset($params['work_time'])){
+                if (!empty($model->goods_attribute_json) && !is_array($model->goods_attribute_json)) {
+                    $attributeJson = json_decode($model->goods_attribute_json, true);
+                } elseif (empty($model->goods_attribute_json)) {
+                    $attributeJson = [];
+                }
 
+                $workTimeStart = date('H:i',strtotime($params['work_time'][0]));
+                $workTimeEnd = date('H:i',strtotime($params['work_time'][1]));
+                $attributeJsonTime = $workTimeStart.'至'.$workTimeEnd;
+                
+                $attributeJson['time'] = $attributeJsonTime;
+                $model->goods_attribute_json = json_encode($attributeJson);
+            }
             if ($model->save()) {
                 return $model->goods_id;
             }
@@ -1688,11 +1731,6 @@ class GoodsService
                 $attributeJson['times'] = $times;
                 $attributeJson['person'] = $personTotal;
 
-                if (isset($params['work_time'])){
-                    $workTimeStart = date('H:i',strtotime($params['work_time'][0]));
-                    $workTimeEnd = date('H:i',strtotime($params['work_time'][1]));
-                    $attributeJson['time'] = $workTimeStart.'至'.$workTimeEnd;
-                }
                 if (!empty($params['appointment_label'])) {
                     $attributeJson['label'] = $params['appointment_label'];
                 }
@@ -1705,14 +1743,19 @@ class GoodsService
                 // if (isset($params['goods_service_premises'])){
                 //     $attributeJson['service_premises_id'] = $params['goods_service_premises'];
                 // }
-                if (isset($params['min_count'])){
-                    $attributeJson['min-count'] = $params['min_count'];
-                }else{
-                    $attributeJson['min-count'] = 1;
-                }
-                if (isset($params['teachers'])){
-                    $attributeJson['teachers'] = $params['teachers'];
-                }
+                // if (isset($params['work_time'])){
+                //     $workTimeStart = date('H:i',strtotime($params['work_time'][0]));
+                //     $workTimeEnd = date('H:i',strtotime($params['work_time'][1]));
+                //     $attributeJson['time'] = $workTimeStart.'至'.$workTimeEnd;
+                // }
+                // if (isset($params['min_count'])){
+                //     $attributeJson['min-count'] = $params['min_count'];
+                // }else{
+                //     $attributeJson['min-count'] = 1;
+                // }
+                // if (isset($params['teachers'])){
+                //     $attributeJson['teachers'] = $params['teachers'];
+                // }
                 $data['goods_attribute_json'] = json_encode($attributeJson, JSON_UNESCAPED_UNICODE);
             }
 
@@ -1839,6 +1882,50 @@ class GoodsService
                 $data['goods_attribute_json']['service_premises_id'] = $params['goods_service_premises'];
                 $data['goods_attribute_json'] = json_encode($data['goods_attribute_json']);
             }
+            if (isset($params['work_time'])){
+                if (!empty($data['goods_attribute_json']) && !is_array($data['goods_attribute_json'])) {
+                    if (is_json($data['goods_attribute_json'])) {
+                        $data['goods_attribute_json'] = json_decode($data['goods_attribute_json'], true);
+                    } else {
+                        $data['goods_attribute_json'] = [];
+                    }
+                } elseif (empty($data['goods_attribute_json'])) {
+                    $data['goods_attribute_json'] = [];
+                }
+
+                $workTimeStart = date('H:i',strtotime($params['work_time'][0]));
+                $workTimeEnd = date('H:i',strtotime($params['work_time'][1]));
+
+                $data['goods_attribute_json']['time'] = $workTimeStart.'至'.$workTimeEnd;
+                $data['goods_attribute_json'] = json_encode($data['goods_attribute_json']);
+
+            }
+            if (isset($params['min_count'])){
+                if (!empty($data['goods_attribute_json']) && !is_array($data['goods_attribute_json'])) {
+                    if (is_json($data['goods_attribute_json'])) {
+                        $data['goods_attribute_json'] = json_decode($data['goods_attribute_json'], true);
+                    } else {
+                        $data['goods_attribute_json'] = [];
+                    }
+                } elseif (empty($data['goods_attribute_json'])) {
+                    $data['goods_attribute_json'] = [];
+                }
+                $data['goods_attribute_json']['min-count'] = $params['min_count'];
+                $data['goods_attribute_json'] = json_encode($data['goods_attribute_json']);
+            }
+            if (isset($params['teachers'])){
+                if (!empty($data['goods_attribute_json']) && !is_array($data['goods_attribute_json'])) {
+                    if (is_json($data['goods_attribute_json'])) {
+                        $data['goods_attribute_json'] = json_decode($data['goods_attribute_json'], true);
+                    } else {
+                        $data['goods_attribute_json'] = [];
+                    }
+                } elseif (empty($data['goods_attribute_json'])) {
+                    $data['goods_attribute_json'] = [];
+                }
+                $data['goods_attribute_json']['teachers'] = $params['teachers'];
+                $data['goods_attribute_json'] = json_encode($data['goods_attribute_json']);
+            }
 
             foreach ($data as $key => $val) {
                 $row->{$key} = $val;

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

@@ -2,6 +2,7 @@
 
 namespace app\admin\service\sys_manage;
 
+use app\model\Member;
 use app\model\SysUser;
 use support\Db;
 use support\Request;
@@ -75,8 +76,30 @@ class UserService
         if (!$user) {
             return json_fail('用户不存在');
         }
+        $user = $user->toArray();
+        $member = Member::with([
+            'cert'=>function($query){
+                $query->select('join_cert_member_id','member_cert_name');
+            }
+        ])->whereJsonContains('member_json->user->user_id',$id)
+            ->first();
+        $memberTitle = $member->cert ? $member->cert->member_cert_name.'-'.$member->member_mobile : $member->member_mobile;
+        $user['member_id'] = $member['member_id'];
+        $user['memberList'] = [
+            [
+                'key'=>$member->member_id,
+                'value'=>$memberTitle
+            ]
+        ];
+        $user['permission'] = [];
+        if(!empty($member->member_json)){
+            $memberJson = json_decode($member->member_json,true);
+            if(isset($memberJson['user']) && isset($memberJson['user']['permission'])){
+                $user['permission'] = $memberJson['user']['permission'];
+            }
+        }
 
-        return json_success('', $user->toArray());
+        return json_success('', $user);
     }
 
     /**

+ 1 - 0
route/admin.php

@@ -153,6 +153,7 @@ Route::group('/admin', function () {
             Route::post('/updateStatus/{id:\w+}', [\app\admin\controller\sys_manage\UserController::class, 'updateStatus']);
             Route::post('/updatePassword/{id:\w+}', [\app\admin\controller\sys_manage\UserController::class, 'updatePassword']);
             Route::delete('/delete', [\app\admin\controller\sys_manage\UserController::class, 'delUser']);
+            Route::post('/correlationMember',[\app\admin\controller\sys_manage\UserController::class,'correlationMember']);
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);