From 94884d2274fe9ceeb62efb5cfe29d5e5645408b7 Mon Sep 17 00:00:00 2001 From: liutong <836164388@qq.com> Date: Fri, 30 May 2025 15:51:23 +0800 Subject: [PATCH 1/5] =?UTF-8?q?refactor(CustomerResources):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=97=B6=E9=97=B4=E5=8F=82=E6=95=B0=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 promised_visit_time 和 optional_class_time 参数处理 - 将时间参数转换为 Y-m-d H:i:s 格式- 更新 customer_resources_data 和 six_speed_data 中的时间字段 --- .../apiController/CustomerResources.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/niucloud/app/api/controller/apiController/CustomerResources.php b/niucloud/app/api/controller/apiController/CustomerResources.php index 16fc4e53..844f7611 100644 --- a/niucloud/app/api/controller/apiController/CustomerResources.php +++ b/niucloud/app/api/controller/apiController/CustomerResources.php @@ -28,6 +28,17 @@ class CustomerResources extends BaseApiService $date = date('Y-m-d'); + $promised_visit_time = $request->param('promised_visit_time', ''); + if($promised_visit_time){ + $promised_visit_time = date('Y-m-d H:i:s',strtotime($promised_visit_time)); + } + + + $optional_class_time = $request->param('optional_class_time', ''); + if($optional_class_time){ + $optional_class_time = date('Y-m-d H:i:s',strtotime($optional_class_time)); + } + $customer_resources_data = [ "create_year_month"=>date('Y-m'), "create_date"=>date('Y-m-d'), @@ -44,15 +55,15 @@ class CustomerResources extends BaseApiService "status" => $request->param('status', ''), "purchasing_power" => $request->param('purchasing_power', ''), "cognitive_idea" => $request->param('cognitive_idea', ''), - "optional_class_time" => $request->param('optional_class_time', ''), + "optional_class_time" => $optional_class_time, "distance" => $request->param('distance', ''), ]; $six_speed_data = [ "purchase_power" => $request->param('purchasing_power', ''), "concept_awareness" => $request->param('cognitive_idea', ''), - "promised_visit_time" => $request->param('promised_visit_time', ''),//承诺到访时间 - "preferred_class_time" => $request->param('optional_class_time', ''),//可选上课时间 + "promised_visit_time" => $promised_visit_time,//承诺到访时间 + "preferred_class_time" => $optional_class_time,//可选上课时间 "distance" => $request->param('distance', ''),//距离 "communication" => $request->param('communication', ''),//沟通备注 "staff_id" => $request->param('staff_id', ''),//人员ID From a221698605c8c586eb91806288135634d32e05da Mon Sep 17 00:00:00 2001 From: liutong <836164388@qq.com> Date: Fri, 30 May 2025 16:41:14 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat(api):=20=E6=B7=BB=E5=8A=A0=E5=BF=98?= =?UTF-8?q?=E8=AE=B0=E5=AF=86=E7=A0=81=E5=8A=9F=E8=83=BD-=20=E5=9C=A8=20Co?= =?UTF-8?q?mmon=20=E6=8E=A7=E5=88=B6=E5=99=A8=E4=B8=AD=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=20forgetPassword=20=E6=96=B9=E6=B3=95=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81=20-=20=E5=9C=A8?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E6=96=87=E4=BB=B6=E4=B8=AD=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=20API=20=E8=B7=AF=E7=94=B1=20-=20?= =?UTF-8?q?=E5=9C=A8=20CommonService=20=E4=B8=AD=E5=AE=9E=E7=8E=B0=20forge?= =?UTF-8?q?tPassword=20=E6=96=B9=E6=B3=95=EF=BC=8C=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=B1=BB=E5=9E=8B=E9=87=8D=E7=BD=AE=E5=AF=86?= =?UTF-8?q?=E7=A0=81=20-=20=E6=94=AF=E6=8C=81=E5=AD=A6=E7=94=9F=E5=92=8C?= =?UTF-8?q?=E5=91=98=E5=B7=A5=E4=B8=A4=E7=A7=8D=E7=94=A8=E6=88=B7=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=9A=84=E5=AF=86=E7=A0=81=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/apiController/Common.php | 26 +++++++++ niucloud/app/api/route/route.php | 6 ++- .../service/api/apiService/CommonService.php | 54 +++++++++++++++++++ 3 files changed, 84 insertions(+), 2 deletions(-) diff --git a/niucloud/app/api/controller/apiController/Common.php b/niucloud/app/api/controller/apiController/Common.php index 27a570ee..9011ea0e 100644 --- a/niucloud/app/api/controller/apiController/Common.php +++ b/niucloud/app/api/controller/apiController/Common.php @@ -35,4 +35,30 @@ class Common extends BaseApiService } return success($res); } + + //忘记密码-通过短信验证码进行密码重置(学生/员工通用) + public function forgetPassword(Request $request) + { + $phone = $request->param('phone', '');//手机号 + $code = $request->param('code', '');//短信验证码 + $code_type = $request->param('code_type', '');//短信验证码类型(发送/验证 短信验证码的类型)|修改密码=editPassword + $password = $request->param('password', '');//新密码 + $user_type = $request->param('user_type', '');//用户类型|customer=学生|personnel=员工(销售/教师) + + if (empty($phone) || empty($code) || empty($code_type) || empty($password) || empty($user_type)) { + return fail('缺少必填参数'); + } + + //@todo 验证短信验证码是否正确(等发送短信验证码接入后在写) + //... + + + //重置密码 + $res = (new CommonService())->forgetPassword($phone, $password, $user_type); + 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 35b6b234..55ac4def 100644 --- a/niucloud/app/api/route/route.php +++ b/niucloud/app/api/route/route.php @@ -176,8 +176,8 @@ Route::group(function () { Route::post('personnelLogin', 'login.Login/personnelLogin'); //获取字典 Route::get('common/getDictionary', 'apiController.Common/getDictionary'); - //员工端-修改密码操作 - Route::post('personnel/edidPassword', 'apiController.Personnel/edidPassword'); + //忘记密码-通过短信验证码进行密码重置(学生/员工通用) + Route::post('common/forgetPassword', 'apiController.Common/forgetPassword'); @@ -209,6 +209,8 @@ Route::group(function () { Route::post('personnel/edit', 'apiController.Personnel/edit'); //员工端-验证旧密码是否正确 Route::post('personnel/checkOldPwd', 'apiController.Personnel/checkOldPwd'); + //员工端-修改密码操作(通过旧密码修改新密码) + Route::post('personnel/edidPassword', 'apiController.Personnel/edidPassword'); //员工端-获取全部人员列表 diff --git a/niucloud/app/service/api/apiService/CommonService.php b/niucloud/app/service/api/apiService/CommonService.php index 26654fd4..5a41285a 100644 --- a/niucloud/app/service/api/apiService/CommonService.php +++ b/niucloud/app/service/api/apiService/CommonService.php @@ -12,6 +12,8 @@ namespace app\service\api\apiService; use app\model\dict\Dict; +use app\model\member\Member; +use app\model\sys\SysUser; use core\base\BaseApiService; /** @@ -43,6 +45,58 @@ class CommonService extends BaseApiService } + /** + * 忘记密码功能 - 根据用户类型重置密码 + * @param string $phone 用户手机号 + * @param string $new_password 用户新密码 + * @param string $user_type 用户类型|customer=学生|personnel=员工(销售/教师) + */ + public function forgetPassword($phone, $new_password, $user_type){ + if($user_type == 'personnel'){ + //重置员工(销售/教师)密码 + $update = SysUser::where('username', $phone)->update([ + 'password' => create_password($new_password),//创建密码 + 'update_time' => time(), + ]); + if (!$update) { + $res = [ + 'code' => 0, + 'msg' => '操作失败', + 'data' => [] + ]; + } else { + $res = [ + 'code' => 1, + 'msg' => '操作成功', + 'data' => [] + ]; + } + return $res; + }else{ + //重置用户(学生)密码 + $update = Member::where('username', $phone)->update([ + 'password' => create_password($new_password),//创建密码 + 'update_time' => time(), + ]); + if (!$update) { + $res = [ + 'code' => 0, + 'msg' => '操作失败', + 'data' => [] + ]; + } else { + $res = [ + 'code' => 1, + 'msg' => '操作成功', + 'data' => [] + ]; + } + return $res; + } + + + } + /** * 对比新旧数据改变 * @param array $old_data 旧数据 From 4d458814767268bb19ee1ae44761a2e1fdf5d934 Mon Sep 17 00:00:00 2001 From: liutong <836164388@qq.com> Date: Fri, 30 May 2025 16:44:37 +0800 Subject: [PATCH 3/5] =?UTF-8?q?fix(login):=20=E4=BC=98=E5=8C=96=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=97=B6=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在查询员工信息后,增加对查询结果为空的检查 - 如果账号不存在,抛出 '账号不存在' 的异常 - 提升用户体验,明确提示错误原因 --- niucloud/app/service/api/login/LoginService.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/niucloud/app/service/api/login/LoginService.php b/niucloud/app/service/api/login/LoginService.php index cff79559..3ce056fa 100644 --- a/niucloud/app/service/api/login/LoginService.php +++ b/niucloud/app/service/api/login/LoginService.php @@ -354,6 +354,9 @@ class LoginService extends BaseApiService { //查询员工信息 $member_info = (new Personnel())->where('phone', $params['phone'])->find(); + if(!$member_info){ + throw new ApiException('账号不存在'); + } if ($member_info->status != 2) throw new ApiException('账号状态异常禁止登录'); $user = (new SysUser())->where('username', $params['phone'])->find(); From 73ddecc4dc6649280ba66ae817e9383a485ff75c Mon Sep 17 00:00:00 2001 From: liutong <836164388@qq.com> Date: Fri, 30 May 2025 17:15:54 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat(customer-resources):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=8E=B7=E5=8F=96=E5=85=A8=E9=83=A8=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 getAll 方法,用于获取全部客户资源数据- 在路由中添加 getAll 接口 - 实现 CustomerResourcesService 中的 getAll 方法 - 接口支持根据客户姓名查询,返回客户资源列表 --- .../apiController/CustomerResources.php | 19 +++++++++++ niucloud/app/api/route/route.php | 2 ++ .../apiService/CustomerResourcesService.php | 33 +++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/niucloud/app/api/controller/apiController/CustomerResources.php b/niucloud/app/api/controller/apiController/CustomerResources.php index 844f7611..3112f01c 100644 --- a/niucloud/app/api/controller/apiController/CustomerResources.php +++ b/niucloud/app/api/controller/apiController/CustomerResources.php @@ -23,6 +23,25 @@ use core\base\BaseApiService; class CustomerResources extends BaseApiService { + + //获取全部客户资源 + public function getAll(Request $request){ + + $name = $request->param('name', '');//客户姓名 + if(empty($name)){ + return fail("缺少客户姓名"); + } + + $where = [ + 'name'=>$name + ]; + $res = (new CustomerResourcesService())->getAll($where); + if(!$res['code']){ + return fail($res['msg']); + } + return success($res['data']); + } + //客户资源添加 public function add(Request $request){ diff --git a/niucloud/app/api/route/route.php b/niucloud/app/api/route/route.php index 55ac4def..23d89641 100644 --- a/niucloud/app/api/route/route.php +++ b/niucloud/app/api/route/route.php @@ -221,6 +221,8 @@ Route::group(function () { Route::post('customerResources/edit', 'apiController.CustomerResources/edit'); //客户资源-修改记录列表 Route::get('customerResources/getEditLogList', 'apiController.CustomerResources/getEditLogList'); + //客户资源-获取全部客户资源列表 + Route::get('customerResources/getAll', 'apiController.CustomerResources/getAll'); //资源共享-列表 diff --git a/niucloud/app/service/api/apiService/CustomerResourcesService.php b/niucloud/app/service/api/apiService/CustomerResourcesService.php index d8e99818..fa33da12 100644 --- a/niucloud/app/service/api/apiService/CustomerResourcesService.php +++ b/niucloud/app/service/api/apiService/CustomerResourcesService.php @@ -35,6 +35,39 @@ class CustomerResourcesService extends BaseApiService parent::__construct(); } + //获取全部客户资源数据 + public function getAll(array $where,string $field = '*') + { + $res = [ + 'code' => 0, + 'msg' => '操作失败', + 'data' => [] + ]; + if(!$where){ + $res['msg'] = '查询条件不能为空'; + return $res; + } + $model = new CustomerResources(); + if(!empty($where['name'])){ + $model = $model->where('name', 'like', "%{$where['name']}%"); + } + $data = $model->field($field) + ->append([ + 'initial_intent_name' + ]) + ->select()->toArray(); + if (!$data) { + $res['msg'] = '暂无数据'; + return $res; + } + $res['code'] = 1; + $res['msg'] = '操作成功'; + $res['data'] = $data; + return $res; + + + } + //添加数据 public function addData(array $customer_resources_data, array $six_speed_data) { From 3258d6071d57ef9c8f9a8f78b5765ee058740c67 Mon Sep 17 00:00:00 2001 From: liutong <836164388@qq.com> Date: Fri, 30 May 2025 18:08:43 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat(customer-resources):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=B5=84=E6=BA=90=E5=88=86=E4=BA=AB=E5=85=B3=E8=81=94?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 CustomerResources 模型中添加 resourceSharingHasMany 方法,实现一对多关联资源共享表 - 在 CustomerResourcesService 中使用 with 方法预加载资源分享关联数据 --- .../app/model/customer_resources/CustomerResources.php | 9 +++++++++ .../service/api/apiService/CustomerResourcesService.php | 3 +++ 2 files changed, 12 insertions(+) diff --git a/niucloud/app/model/customer_resources/CustomerResources.php b/niucloud/app/model/customer_resources/CustomerResources.php index cd2e4f79..3e83166f 100644 --- a/niucloud/app/model/customer_resources/CustomerResources.php +++ b/niucloud/app/model/customer_resources/CustomerResources.php @@ -153,6 +153,15 @@ class CustomerResources extends BaseModel return $this->hasOne(SixSpeed::class, 'resource_id', 'id'); } + //一对多关联"资源共享表" + public function resourceSharingHasMany() + { + return $this->hasMany(ResourceSharing::class, 'resource_id', 'id'); + } + + + + /** * 获取客户初步意向度类型名称 * @param $value diff --git a/niucloud/app/service/api/apiService/CustomerResourcesService.php b/niucloud/app/service/api/apiService/CustomerResourcesService.php index fa33da12..7c3e77a9 100644 --- a/niucloud/app/service/api/apiService/CustomerResourcesService.php +++ b/niucloud/app/service/api/apiService/CustomerResourcesService.php @@ -52,6 +52,9 @@ class CustomerResourcesService extends BaseApiService $model = $model->where('name', 'like', "%{$where['name']}%"); } $data = $model->field($field) + ->with([ + 'resourceSharingHasMany' + ]) ->append([ 'initial_intent_name' ])