From b062174ab21e6dbb7bbc2f132aff3e3d6d036baf Mon Sep 17 00:00:00 2001 From: liutong <836164388@qq.com> Date: Thu, 5 Jun 2025 10:59:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(customer):=20=E6=B7=BB=E5=8A=A0=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E8=AF=A6=E6=83=85=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 CustomerResourcesAuth 控制器的 edit 方法处理学生信息修改请求 - 在路由中添加 customerResourcesAuth/edit 路由 - 新增 CustomerResourcesService服务的 editInfo 方法实现学生信息修改逻辑 - 优化 CommonService 的 compareData 方法,增加 JSON格式返回值 --- .../apiController/CustomerResourcesAuth.php | 35 ++++++++ niucloud/app/api/route/route.php | 2 + .../service/api/apiService/CommonService.php | 6 ++ .../apiService/CustomerResourcesService.php | 89 +++++++++++++++++++ 4 files changed, 132 insertions(+) diff --git a/niucloud/app/api/controller/apiController/CustomerResourcesAuth.php b/niucloud/app/api/controller/apiController/CustomerResourcesAuth.php index daff3e80..1fd574ab 100644 --- a/niucloud/app/api/controller/apiController/CustomerResourcesAuth.php +++ b/niucloud/app/api/controller/apiController/CustomerResourcesAuth.php @@ -81,4 +81,39 @@ class customerResourcesAuth extends BaseApiService return success($res['data']); } + //学生详情-修改 + public function edit(Request $request){ + $member_id = $this->member_id; + $where = [ + 'member_id'=>$member_id + ]; + $data = [ + 'headimg' => $request->param('headimg', ''), + 'name' => $request->param('name', ''), + 'gender' => $request->param('gender', ''), + 'age' => $request->param('age', ''), + 'phone_number' => $request->param('phone_number', ''), + ]; + + // 验证必填字段 + if (empty($data['name'])) { + return fail('姓名不能为空'); + } + if (empty($data['gender'])) { + return fail('性别不能为空'); + } + if (empty($data['age'])) { + return fail('年龄不能为空'); + } + if (empty($data['phone_number'])) { + return fail('手机号不能为空'); + } + + $res = (new CustomerResourcesService())->editInfo($where,$data); + if (!$res['code']) { + return fail($res['msg']); + } + return success([]); + } + } diff --git a/niucloud/app/api/route/route.php b/niucloud/app/api/route/route.php index 3e296836..b502522d 100644 --- a/niucloud/app/api/route/route.php +++ b/niucloud/app/api/route/route.php @@ -332,6 +332,8 @@ Route::group(function () { Route::post('memberUploadImage', 'upload.Upload/image'); //学生详情 Route::get('customerResourcesAuth/info', 'apiController.CustomerResourcesAuth/info'); + //学生详情-修改 + Route::post('customerResourcesAuth/edit', 'apiController.CustomerResourcesAuth/edit'); })->middleware(ApiChannel::class) diff --git a/niucloud/app/service/api/apiService/CommonService.php b/niucloud/app/service/api/apiService/CommonService.php index 07380753..1f0e82cf 100644 --- a/niucloud/app/service/api/apiService/CommonService.php +++ b/niucloud/app/service/api/apiService/CommonService.php @@ -143,12 +143,18 @@ class CommonService extends BaseApiService } return [ + // 返回发生更改的字段名数组 'changed_fields' => $changedFields, + // 返回旧数据中的更改字段及其值 'old_values' => $oldChanges, + // 返回新数据中的更改字段及其值 'new_values' => $newChanges, + // 将 changed_fields 转换为 JSON 格式,保留中文字符 'changed_fields_json' => json_encode($changedFields, JSON_UNESCAPED_UNICODE), + // 将 old_changes 转换为 JSON 格式,保留中文字符 'old_values_json' => json_encode($oldChanges, JSON_UNESCAPED_UNICODE), + // 将 new_changes 转换为 JSON 格式,保留中文字符 'new_values_json' => json_encode($newChanges, JSON_UNESCAPED_UNICODE) ]; } diff --git a/niucloud/app/service/api/apiService/CustomerResourcesService.php b/niucloud/app/service/api/apiService/CustomerResourcesService.php index b5cd055e..ff5e380a 100644 --- a/niucloud/app/service/api/apiService/CustomerResourcesService.php +++ b/niucloud/app/service/api/apiService/CustomerResourcesService.php @@ -311,6 +311,95 @@ class CustomerResourcesService extends BaseApiService } } + //客户资源(学生个人资料)-编辑 + public function editInfo(array $where, array $data) + { + + $res = [ + 'code' => 0, + 'msg' => '操作失败', + 'data' => [] + ]; + + if (!$where) { + $res['msg'] = '查询条件不能为空'; + return $res; + } + + $customer_resources_data = [ + 'name' => $data['name'], // 姓名 + 'gender' => $data['gender'], // 性别(male:男, female:女) + 'age' => $data['age'], // 年龄 + 'phone_number' => $data['phone_number'], // 手机号 + ]; + + $date = date('Y-m-d H:i:s'); + $customer_resources_data['updated_at'] = $date; + + //开启事物 + Db::startTrans(); + try { + $customer_resources = CustomerResources::where('member_id', $where['member_id'])->find(); + + if ($customer_resources) { + $customer_resources = $customer_resources->toArray(); + } + $update_1 = CustomerResources::where('id', $customer_resources['id'])->update($customer_resources_data);//客户资源表 + if (!$update_1) { + Db::rollback(); + return $res; + } + + //更新学生账户登录表 + $member_data = [ + 'username'=>$data['phone_number'], + 'mobile'=>$data['phone_number'], + 'update_time'=>time() + ]; + if(!empty($data['headimg'])){ + $member_data['headimg'] = $data['headimg']; + } + $update_member = Member::where('member_id', $where['member_id'])->update($member_data); + if(!$update_member){ + Db::rollback(); + return $res; + } + + + + //更近客户资源日志表 + $compareData = (new CommonService)->compareData($customer_resources, $customer_resources_data); + if ($compareData['changed_fields']) { + $data = [ + "customer_resource_id" => $customer_resources['id'],//客户资源的ID + "operator_id" => 0,//操作人的ID + "campus_id" => 0,//操作人校区的ID|如果这人有2校区就填0 + "modified_fields" => $compareData['changed_fields_json'],//修改的哪些字段 + "old_values" => $compareData['old_values_json'],//修改前的值 + "new_values" => $compareData['new_values_json'],//修改后的值 + ]; + + $id = CustomerResourceChanges::insertGetId($data); + if (!$id) { + Db::rollback(); + return $res; + } + } + + + + Db::commit(); + $res = [ + 'code' => 1, + 'msg' => '操作成功' + ]; + return $res; + } catch (\Exception $exception) { + Db::rollback(); + return $res; + } + } + //客户资源-获取客户资源修改记录列表 public function getCustomerResourceChangesEditLog(array $where) {