Browse Source

feat(customer): 添加学生详情修改功能

- 新增 CustomerResourcesAuth 控制器的 edit 方法处理学生信息修改请求
- 在路由中添加 customerResourcesAuth/edit 路由
- 新增 CustomerResourcesService服务的 editInfo 方法实现学生信息修改逻辑
- 优化 CommonService 的 compareData 方法,增加 JSON格式返回值
master
liutong 10 months ago
parent
commit
b062174ab2
  1. 35
      niucloud/app/api/controller/apiController/CustomerResourcesAuth.php
  2. 2
      niucloud/app/api/route/route.php
  3. 6
      niucloud/app/service/api/apiService/CommonService.php
  4. 89
      niucloud/app/service/api/apiService/CustomerResourcesService.php

35
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([]);
}
}

2
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)

6
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)
];
}

89
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)
{

Loading…
Cancel
Save