From b82813e5ec17fafcb10938e65d471cb18519987c Mon Sep 17 00:00:00 2001 From: unknown <736250432@qq.com> Date: Tue, 19 Sep 2023 17:07:54 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8DSystemValidate=E7=9A=84bu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/validate/systems/SystemValidate.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/common/validate/systems/SystemValidate.php b/app/common/validate/systems/SystemValidate.php index 7f4efc98..423e4594 100644 --- a/app/common/validate/systems/SystemValidate.php +++ b/app/common/validate/systems/SystemValidate.php @@ -36,7 +36,7 @@ class SystemValidate extends BaseValidate public function sceneEdit(): SystemValidate { - return $this->only(['id','_name','url','status']); + return $this->only(['id','name','url','status']); } public function sceneDetail(): SystemValidate From e90a217048f626f98d1b2c5d7cf76b935dcfc5f0 Mon Sep 17 00:00:00 2001 From: unknown <736250432@qq.com> Date: Tue, 19 Sep 2023 17:39:40 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8DresetPassword=E6=96=B9?= =?UTF-8?q?=E6=B3=95bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/logic/UserLogic.php | 8 +++++++- app/common/validate/login/PasswordValidate.php | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/api/logic/UserLogic.php b/app/api/logic/UserLogic.php index 897a72dd..595ea803 100644 --- a/app/api/logic/UserLogic.php +++ b/app/api/logic/UserLogic.php @@ -15,6 +15,11 @@ class UserLogic extends BaseLogic public static function resetPassword(array $params): bool { try { + //验证手机号码 + $user = User::field('id')->where('phone',$params['phone'])->findOrEmpty(); + if($user->isEmpty()){ + throw new \Exception('该手机号未注册'); + } // 校验验证码 $smsDriver = new SmsDriver(); if (!$smsDriver->verify($params['phone'], $params['code'], NoticeEnum::FIND_LOGIN_PASSWORD_CAPTCHA)) { @@ -24,7 +29,8 @@ class UserLogic extends BaseLogic $passwordSalt = Config::get('project.unique_identification'); $password = create_password($params['password'], $passwordSalt); // 更新 - User::where('phone', $params['phone'])->update(['password' => $password]); + $user->password = $password; + $user->save(); return true; } catch (\Exception $e) { self::setError($e->getMessage()); diff --git a/app/common/validate/login/PasswordValidate.php b/app/common/validate/login/PasswordValidate.php index 17710dfb..17910cd3 100644 --- a/app/common/validate/login/PasswordValidate.php +++ b/app/common/validate/login/PasswordValidate.php @@ -16,7 +16,7 @@ class PasswordValidate extends BaseValidate 'phone' => 'require|mobile', 'code' => 'require', 'old_password' => 'require', - 'password' => 'require|length:6,20', + 'password' => 'require|length:6,20|different:old_password', 'password_confirm' => 'require|confirm', ]; @@ -27,6 +27,7 @@ class PasswordValidate extends BaseValidate 'code.require' => '请填写验证码', 'password.require' => '请输入新密码', 'password.length' => '密码须在6-25位之间', + 'password.different' => '新密码不能和原密码一样', 'password_confirm.require' => '请确认密码', 'password_confirm.confirm' => '确认密码和新密码不一致', 'old_password.require' => '请输入原密码', From 7914a757a669f06293d6fd4bd00c02bc5212cd17 Mon Sep 17 00:00:00 2001 From: unknown <736250432@qq.com> Date: Wed, 20 Sep 2023 17:15:43 +0800 Subject: [PATCH 3/3] update --- app/adminapi/lists/user/UserLists.php | 51 +++++++++++++++++++++----- app/api/config/route.php | 2 +- app/api/controller/IndexController.php | 2 +- 3 files changed, 43 insertions(+), 12 deletions(-) diff --git a/app/adminapi/lists/user/UserLists.php b/app/adminapi/lists/user/UserLists.php index e409ba61..959487e7 100644 --- a/app/adminapi/lists/user/UserLists.php +++ b/app/adminapi/lists/user/UserLists.php @@ -12,26 +12,57 @@ class UserLists extends BaseAdminDataLists implements ListsSearchInterface public function setSearch(): array { return [ - '=' => ['status'], - '%like%' => ['nick_name','phone'], + '=' => ['status','age','gender'], + '%like%' => ['nick_name','real_name','phone'], ]; } // 获取用户列表 public function lists(): array { - $field = "id,phone,avatar,nick_name,real_name,id_card,gender,age,total_balance,total_integral,status,create_time"; - return User::field($field)->where($this->searchWhere)->where('status','<>',2) - ->limit($this->limitOffset, $this->limitLength) - ->order('id desc')->select()->each(function($item){ - $item['status_text'] = $item->status_text; - $item['gender_text'] = $item->gender_text; - })->toArray(); + $params = $this->params; + $field = "u.id,phone,avatar,nick_name,real_name,id_card,gender,age,total_balance,total_integral,CONCAT(province_name,city_name,area_name,street_name,village_name,brigade_name,address) as address,status,create_time"; + return User::alias('u')->field($field) + ->leftJoin('geo_province p','u.province = p.province_code') + ->leftJoin('geo_city c','u.city = c.city_code') + ->leftJoin('geo_area a','u.area = a.area_code') + ->leftJoin('geo_street s','u.street = s.street_code') + ->leftJoin('geo_village v','u.village = v.village_code') + ->leftJoin('geo_brigade b','u.brigade = b.id') + ->where('status','<>',2) + ->where($this->searchWhere) + ->where(function($query) use ($params){ + if(isset($params['address'])){ + $query->where('CONCAT(province_name,city_name,area_name,street_name,village_name,brigade_name,address) LIKE "%'.$params['address'].'%"'); + } + }) + ->limit($this->limitOffset, $this->limitLength) + ->order('u.id desc') + ->select()->each(function($item){ + $item['gender_text'] = $item->gender_text; + $item['status_text'] = $item->status_text; + })->toArray(); } // 获取数量 public function count(): int { - return User::field('id')->where($this->searchWhere)->where('status','<>',2)->count(); + $params = $this->params; + $field = "u.id,CONCAT(province_name,city_name,area_name,street_name,village_name,brigade_name,address) as address,status,create_time"; + return User::alias('u')->field($field) + ->leftJoin('geo_province p','u.province = p.province_code') + ->leftJoin('geo_city c','u.city = c.city_code') + ->leftJoin('geo_area a','u.area = a.area_code') + ->leftJoin('geo_street s','u.street = s.street_code') + ->leftJoin('geo_village v','u.village = v.village_code') + ->leftJoin('geo_brigade b','u.brigade = b.id') + ->where('status','<>',2) + ->where($this->searchWhere) + ->where(function($query) use ($params){ + if(isset($params['address'])){ + $query->where('CONCAT(province_name,city_name,area_name,street_name,village_name,brigade_name,address) LIKE "%'.$params['address'].'%"'); + } + }) + ->count(); } } \ No newline at end of file diff --git a/app/api/config/route.php b/app/api/config/route.php index 38ea7783..4f75ebd5 100644 --- a/app/api/config/route.php +++ b/app/api/config/route.php @@ -14,7 +14,7 @@ return [ 'middleware' => [ app\api\http\middleware\InitMiddleware::class, // 初始化 -// app\api\http\middleware\VerifySignMiddleware::class, // 签名验证 + app\api\http\middleware\VerifySignMiddleware::class, // 签名验证 app\api\http\middleware\LoginMiddleware::class, // 登录验证 ], ]; diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index 1eb5f392..5cc8dc8b 100644 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -32,7 +32,7 @@ class IndexController extends BaseApiController return $this->fail('短信场景错误'); } //验证手机号 - $user = User::field('user_phone')->where('user_phone',$params['phone'])->findOrEmpty(); + $user = User::field('phone')->where('phone',$params['phone'])->findOrEmpty(); if($user->isEmpty()){ return $this->fail('手机号码错误'); }