diff --git a/niucloud/app/api/controller/login/Login.php b/niucloud/app/api/controller/login/Login.php index ccd00e6d..5d707232 100644 --- a/niucloud/app/api/controller/login/Login.php +++ b/niucloud/app/api/controller/login/Login.php @@ -31,10 +31,7 @@ class Login extends BaseController [ 'username', '' ], [ 'password', '' ], ]); - //校验登录注册配置 - ( new ConfigService() )->checkLoginConfig(MemberLoginTypeDict::USERNAME); - //参数验证 - //验证码验证 + $result = ( new LoginService() )->account($data[ 'username' ], $data[ 'password' ]); if (!$result) { //账号密码错误, 重置验证码 @@ -108,4 +105,11 @@ class Login extends BaseController ( new LoginService() )->resetPassword($data[ 'mobile' ], $data[ 'password' ]); return success('PASSWORD_RESET_SUCCESS'); } + + public function checkMobileCode(){ + $data = $this->request->params([ + [ 'mobile', '' ] + ]); + return success( ( new LoginService() )->checkMobileCode($data['mobile'])); + } } diff --git a/niucloud/app/api/controller/member/Member.php b/niucloud/app/api/controller/member/Member.php index b277f8f3..3c1f9a62 100644 --- a/niucloud/app/api/controller/member/Member.php +++ b/niucloud/app/api/controller/member/Member.php @@ -115,4 +115,31 @@ class Member extends BaseApiController ]); return success(( new AuthService() )->getMobile($data[ 'mobile_code' ])); } + + //验证密码是否正确 + + public function is_pass(){ + $data = $this->request->params([ + [ 'password', '' ], + ]); + return ( new MemberService() )->is_pass($data); + } + + public function set_pass(){ + $data = $this->request->params([ + [ 'old_password', '' ], + [ 'password', '' ], + ]); + return ( new MemberService() )->set_pass($data); + } + + //课程列表 + + public function course_list(){ + $data = $this->request->params([ + [ 'schedule_date', '' ] + ]); + return success(( new MemberService() )->course_list($data)); + } + } diff --git a/niucloud/app/api/route/member.php b/niucloud/app/api/route/member.php index a05e0cb3..31503957 100644 --- a/niucloud/app/api/route/member.php +++ b/niucloud/app/api/route/member.php @@ -105,6 +105,11 @@ Route::group('member', function () { //获取签到设置 Route::get('sign/config', 'member.MemberSign/signConfig'); + Route::post('is_pass', 'member.Member/is_pass'); + Route::post('set_pass', 'member.Member/set_pass'); + + Route::post('course_list', 'member.Member/course_list'); + })->middleware(ApiChannel::class) ->middleware(ApiCheckToken::class, true) ->middleware(ApiLog::class); diff --git a/niucloud/app/api/route/route.php b/niucloud/app/api/route/route.php index 2b371fd4..16c26538 100644 --- a/niucloud/app/api/route/route.php +++ b/niucloud/app/api/route/route.php @@ -70,6 +70,8 @@ Route::group(function() { // 通过外部交易号获取消息跳转路径 Route::get('weapp/getMsgJumpPath', 'weapp.Weapp/getMsgJumpPath'); + //验证手机号验证码 + Route::post('checkMobileCode', 'login.Login/checkMobileCode'); //登录 Route::get('login', 'login.Login/login'); //第三方绑定 @@ -144,6 +146,8 @@ Route::group(function() { Route::get('task/growth', 'sys.Task/growth'); // 获取积分任务 Route::get('task/point', 'sys.Task/point'); + + })->middleware(ApiChannel::class) ->middleware(ApiCheckToken::class) ->middleware(ApiLog::class); diff --git a/niucloud/app/service/api/login/LoginService.php b/niucloud/app/service/api/login/LoginService.php index 450c2247..dd39d7c1 100644 --- a/niucloud/app/service/api/login/LoginService.php +++ b/niucloud/app/service/api/login/LoginService.php @@ -289,8 +289,6 @@ class LoginService extends BaseApiService public function resetPassword(string $mobile, string $password) { $member_service = new MemberService(); - //校验手机验证码 - $this->checkMobileCode($mobile); $member_info = $member_service->findMemberInfo([ 'mobile' => $mobile ]); if ($member_info->isEmpty()) throw new AuthException('MOBILE_NOT_EXIST_MEMBER');//账号不存在 //todo 需要考虑一下,新的密码和原密码一样能否通过验证 diff --git a/niucloud/app/service/api/member/MemberService.php b/niucloud/app/service/api/member/MemberService.php index d31581ce..034e02ac 100644 --- a/niucloud/app/service/api/member/MemberService.php +++ b/niucloud/app/service/api/member/MemberService.php @@ -11,11 +11,17 @@ namespace app\service\api\member; +use addon\zhjw\app\model\classes\Classes; +use addon\zhjw\app\model\courses\Courses; +use addon\zhjw\app\model\timetables\Timetables; +use addon\zhjw\app\model\venues\Venues; +use app\dict\sys\AppTypeDict; use app\model\member\Member; use app\service\core\member\CoreMemberService; use core\base\BaseApiService; use core\exception\ApiException; use core\util\Barcode; +use core\util\TokenAuth; use think\Model; /** @@ -157,4 +163,60 @@ class MemberService extends BaseApiService event("MemberLoginAfter", ['member_id' => $this->member_id]); } } + + public function is_pass($data){ + $password = $this->model->where([['member_id', '=', $this->member_id]])->value("password"); + if (!check_password($data['password'], $password)){ + return fail("密码不正确"); + } + return success("密码正确"); + } + + public function set_pass($data){ + if($data['old_password'] != $data['password']){ + return fail("两次密码输入不一致"); + } + $password_hash = create_password($data['password']); + $data = array( + 'password' => $password_hash, + ); + $member_info = $this->findMemberInfo([ 'member_id' => $this->member_id ]); + $this->editByFind($member_info, $data); + TokenAuth::clearToken($this->member_id, AppTypeDict::API, $this->request->apiToken()); + return success("修改密码成功"); + } + + //课程列表 + public function course_list($data){ + $venues = new Venues(); + $classes = new Classes(); + $timetables = new Timetables(); + $courses = new Courses(); + $list = $venues->order("id desc")->select()->toArray(); + + foreach ($list as $k=>$v){ + $list[$k]['list'] = []; + $classes_list = $classes->where(['venue_id' => $v['id']])->select(); + if($classes_list){ + foreach ($classes_list as $k1=>$v1){ + $timetables_info = $timetables->where(['class_id' => $v1['id'],'schedule_date' => $data['schedule_date']])->find(); + $courses_info = $courses->where(['id' => $timetables_info['courses_id']])->find(); + if($timetables_info and $courses_info){ + $info = [ + 'bj' => $v1['name'], + 'status' => $v1['status'], + 'courses_info' => $courses_info, + 'datetime' => $data['schedule_date'], + 'address' => '', + 'name' => $courses_info['name'] + ]; + $list[$k]['list'][] = $info; + } + + } + } + } + + return $list; + } }