123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- <?php
- /**
- * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
- * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
- * @author pillar<ltmn@qq.com>
- * 帐号管理
- */
- namespace app\system\controller\passport;
- use app\common\model\SystemMember;
- use app\common\model\SystemMemberMiniapp;
- use app\common\model\SystemMemberBank;
- use app\system\event\AppConfig;
- use app\common\facade\Alisms;
- class Member extends Common{
- public function initialize() {
- parent::initialize();
- if($this->user->parent_id){
- $this->error('仅创始人有权限访问');
- }
- if($this->member_miniapp_id){
- $pathMaps[] = ['name'=>$this->member_miniapp->appname,'url'=>'javascript:;'];
- }
- $pathMaps[] = ['name'=>'帐号管理','url'=>'javascript:;'];
- $this->assign('pathMaps',$pathMaps);
- }
- /**
- * 我的帐号信息
- */
- public function index(){
- $bank = SystemMemberBank::where(['member_id' => $this->user->id])->find();
- if(empty($bank)){
- $bank['money'] = money(0);
- $bank['lack_money'] = money(0);
- }
- $view['bank'] = $bank;
- return view()->assign($view);
- }
- /**
- * 修改登录手机号
- */
- public function phone(){
- if(request()->isPost()){
- $data = [
- 'id' => $this->user->id,
- 'phone_id' => $this->request->param('phone_id/s'),
- 'sms_code' => $this->request->param('sms_code/s'),
- 'login_password' => $this->request->param('safepassword/s'),
- ];
- $validate = $this->validate($data,'Member.updatephone');
- if(true !== $validate){
- return enjson(0,$validate);
- }
- //判断验证码
- if(!Alisms::isSms($data['phone_id'],$data['sms_code'])){
- return enjson(0,'验证码错误');
- }
- //验证安全密码
- if(!password_verify(md5($data['login_password']),$this->user->safe_password)) {
- return enjson(0,'安全密码错误');
- }
- //验证码通过
- $result = SystemMember::editPhone($data);
- if($result){
- return enjson(200,'修改成功',['url' => url('system/passport.member/index')]);
- }else{
- return enjson(0,'修改失败');
- }
- }else{
- return view();
- }
- }
-
- /**
- * 修改安全密码
- */
- public function safepassword(){
- if($this->user->lock_config){
- $this->error('你账户锁定配置权限');
- }
- if(request()->isPost()){
- $data = [
- 'id' => $this->user->id,
- 'login_password' => $this->request->param('login_password/s'),
- 'safepassword' => $this->request->param('safepassword/s'),
- 'safepassword_confirm' => $this->request->param('safepassword_confirm/s'),
- ];
- $validate = $this->validate($data,'Member.safepassword');
- if(true !== $validate){
- return enjson(0,$validate);
- }
- //验证密码
- if(!password_verify(md5($data['login_password']),$this->user->safe_password)) {
- return enjson(0,'安全密码错误');
- }
- //验证码通过
- $result = SystemMember::updateSafePasspord($this->user->id,$data['safepassword']);
- if($result){
- return enjson(200,'修改成功',['url' => url('system/passport.member/index')]);
- }else{
- return enjson(0,'修改失败');
- }
- }else{
- return view();
- }
- }
- /**
- * 员工管理
- */
- public function staff(){
- $list = SystemMember::where(['parent_id' => $this->user->id,'bind_member_miniapp_id' => $this->member_miniapp_id])->order('id desc')->paginate(20);
- foreach ($list as $key => $value) {
- $list[$key] = $value;
- switch ($value->miniapp->miniapp->types) {
- case 'mp':
- $head_img = $value->miniapp->mp_head_img;
- break;
- case 'program':
- $head_img = $value->miniapp->miniapp_head_img;
- break;
- case 'app':
- $head_img = $value->miniapp->head_img;
- break;
- default:
- $head_img = empty($value->miniapp->mp_head_img) ? $value->miniapp->miniapp_head_img : $value->miniapp->mp_head_img;
- break;
- }
- $list[$key]['logo'] = empty($head_img) ? "/static/{$value->miniapp->miniapp->miniapp_dir}/logo.png" : $head_img;
- $list[$key]['auth_group'] = AppConfig::auth($value->miniapp->miniapp->miniapp_dir);
- }
- $view['list'] = $list;
- return view()->assign($view);
- }
- /**
- * 添加员工
- */
- public function staffAdd(){
- if(request()->isPost()){
- $data = [
- 'user_id' => $this->user->id,
- 'miniapp_id' => $this->member_miniapp_id,
- 'username' => $this->request->param('username/s'),
- 'phone_id' => $this->request->param('phone_id/d'),
- 'auth' => $this->request->param('auth/d',0),
- 'login_password' => $this->request->param('login_password/s'),
- ];
- $validate = $this->validate($data,'Member.bindapp');
- if(true !== $validate){
- return json(['code'=>0,'msg'=>$validate]);
- }
- //判断手机号是否重复
- $info = SystemMember::where(['phone_id' => $data['phone_id']])->find();
- if(!empty($info)){
- return json(['code'=>0,'msg'=>'手机账号已存在']);
- }
- $result = SystemMember::bindEdit($data);
- if($result){
- return json(['code'=>200,'msg'=>'修改成功','url' => url('passport.member/staff')]);
- }else{
- return json(['code'=>0,'msg'=>'修改失败']);
- }
- }else{
- $miniapp = SystemMemberMiniapp::field('miniapp_id')->where(['id' => $this->member_miniapp_id])->find();
- $view['auth'] = AppConfig::auth($miniapp->miniapp->miniapp_dir);
- return view()->assign($view);
- }
- }
-
- /**
- * 添加员工
- */
- public function staffEdit(){
- if(request()->isPost()){
- $data = [
- 'user_id' => $this->user->id,
- 'id' => $this->request->param('id/d'),
- 'miniapp_id' => $this->member_miniapp_id,
- 'auth' => $this->request->param('auth/d',0),
- 'username' => $this->request->param('username/s'),
- 'phone_id' => $this->request->param('phone_id/d'),
- 'login_password' => $this->request->param('login_password/s'),
- ];
- $validate = $this->validate($data,'Member.bindapp');
- if(true !== $validate){
- return json(['code'=>0,'msg'=>$validate]);
- }
- //判断手机号是否重复
- $info = SystemMember::where(['phone_id' => $data['phone_id']])->where('id','<>',$data['id'])->find();
- if(!empty($info)){
- return json(['code'=>0,'msg'=>'手机账号已存在']);
- }
- $result = SystemMember::bindEdit($data);
- if($result){
- return json(['code'=>200,'msg'=>'修改成功','url' => url('passport.member/staff')]);
- }else{
- return json(['code'=>0,'msg'=>'修改失败']);
- }
- }else{
- $id = $this->request->param('id/d');
- $info = SystemMember::where(['parent_id' => $this->user->id,'id' => $id])->find();
- if(!$info){
- return $this->error("404 NOT FOUND");
- }
- $miniapp = SystemMemberMiniapp::field('miniapp_id')->where(['id' => $info->bind_member_miniapp_id])->find();
- $view['info'] = $info;
- $view['auth'] = AppConfig::auth($miniapp->miniapp->miniapp_dir);
- return view()->assign($view);
- }
- }
- /**
- * 读取权限配置
- */
- public function getuserAuth(){
- $auth = $this->request->param('auth/d');
- $miniapp = SystemMemberMiniapp::field('miniapp_id')->where(['id' => $this->member_miniapp_id])->find();
- if(!$miniapp){
- return enjson(204);
- }
- $authconfig = AppConfig::auth($miniapp->miniapp->miniapp_dir);
- if(!$authconfig){
- return enjson(204);
- }
- foreach ($authconfig as $key => $value) {
- if($auth == $value['auth'] && isset($value['group'])){
- return enjson(200,$value['group']);
- break;
- }
- }
- return enjson(204);
- }
-
- /**
- * 检测手机号是否重复
- */
- public function isphone(){
- $userid = $this->request->param('id/d');
- $value = $this->request->param('param/s');
- if($userid){
- $result = SystemMember::where('id','<>',$userid)->where(['phone_id' => $value])->find();
- }else{
- $result = SystemMember::where(['phone_id' => $value])->find();
- }
- if($result){
- return json(['status'=>'n','info'=>'手机号已存在']);
- }else{
- return json(['status'=>'y','info'=>'可以使用']);
- }
- }
-
- /**
- * 锁定
- * @param integer $id 用户ID
- */
- public function staffLock(int $id){
- $result = SystemMember::lock($id);
- if(!$result){
- return json(['code'=>0,'message'=>'操作失败']);
- }else{
- return json(['code'=>200,'message'=>'操作成功']);
- }
- }
- /**
- * [删除]
- * @access public
- * @return bool
- */
- public function staffDelete(){
- $id = $this->request->param('id/d');
- $result = SystemMember::where(['parent_id' => $this->user->id,'id' => $id])->delete();
- if(!$result){
- return json(['code' => 0,'msg'=>'操作失败']);
- }else{
- return json(['code' =>200,'msg'=>'操作成功']);
- }
- }
- /**
- * 获取登录/找回密码等验证码
- */
- public function getLoginSms(){
- if(request()->isPost()){
- $data = [
- 'phone_id' => $this->request->param('phone/s')
- ];
- $validate = $this->validate($data,'Sms.getsms');
- if(true !== $validate){
- return json(['code'=>0,'message'=>$validate]);
- }
- //判断是否登录
- if($data['phone_id'] != $this->user->phone_id){
- return json(['code'=>0,'message'=>"请输入正确的手机号"]);
- }
- $user = SystemMember::where(['phone_id' => $this->user->phone_id])->find();
- if(empty($user)) {
- return json(['code'=>0,'message'=>"用户不存在"]);
- }
- $sms = Alisms::putSms($this->user->phone_id);
- return json($sms);
- }else{
- return $this->error("404 NOT FOUND");
- }
- }
- }
|