ComController.php 5.9 KB
<?php

namespace App\Http\Controllers\Bside;

use App\Enums\Common\Code;
use App\Helper\AyrShare as AyrShareHelper;
use App\Helper\Country;
use App\Models\AyrShare\AyrRelease as AyrReleaseModel;
use App\Models\AyrShare\AyrShare as AyrShareModel;
use App\Models\Project\Project;
use App\Models\Project\Project as ProjectModel;
use App\Models\User\ProjectMenu as ProjectMenuModel;
use App\Models\User\ProjectRole as ProjectRoleModel;
use App\Models\User\User as UserModel;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;

/***
 * 当前为公共类  所有方法均不需要验证登录token
 */
class ComController extends BaseController
{
    /**
     * @name :管理员登录
     * @return void
     * @author :liyuhang
     * @method
     */
    public function login(){
        $this->request->validate([
            'mobile'=>['required'],
            'password'=>['required'],
        ],[
            'mobile.required'=>'电话号码必须填写',
            'password.required'=>'内容必须填写',
            'mobile.max'   =>  'mobile不大于12字符.',
        ]);
        $userModel = new UserModel();
        $res = $userModel->login($this->param);
        if($res === false){
            $this->response('当前用户不存在或者被禁用,登录失败',Code::USER_ERROR,[]);
        }
        $this->response('请求成功',Code::SUCCESS,$res);
    }

    /**
     * @name :获取当前用户权限菜单列表
     * @return void
     * @author :liyuhang
     * @method
     */
    public function get_menu(){
        //根据当前登录用户角色返回用户菜单列表
        $projectRoleModel = new ProjectRoleModel();
        $info = $projectRoleModel->read(['id'=>$this->user['role_id']]);
        $projectMenuModel = new ProjectMenuModel();
        $info['role_menu'] = trim($info['role_menu'],',');
        $lists = $projectMenuModel->where(['status'=>0,'is_role'=>0])->whereIn('id',explode(',',$info['role_menu']))->get();
        $lists = $lists->toArray();
        $menu = array();
        foreach ($lists as $k => $v){
            $v = (array)$v;
            if ($v['pid'] == 0) {
                $v['sub'] = _get_child($v['id'], $lists);
                $menu[]   = $v;
            }
        }
        $this->response('当前用户菜单列表',Code::SUCCESS,$menu);
    }

    /**
     * @name :获取当前项目详情
     * @return void
     * @author :liyuhang
     * @method
     */
    public function get_project(ProjectModel $projectModel){
        $info = $projectModel->read(['id'=>$this->user['project_id']]);
        if(empty($info)){
            $this->response('error',Code::USER_ERROR);
        }
        $this->response('success',Code::SUCCESS,$info);
    }

    /**
     * @name :登录用户编辑资料/修改密码
     * @return void
     * @author :liyuhang
     * @method
     */
    public function edit_info(){
        $this->request->validate([
            'password'=>['required'],
            'name'=>['required'],
        ],[
            'password.required'=>'密码必须填写',
            'name.required'=>'名称必须填写',
        ]);
        $userModel = new UserModel();
        $this->param['id'] = $this->uid;
        $rs = $userModel->edits($this->param);
        if($rs === false){
            $this->response('参数错误或其他服务器原因,编辑失败',Code::USER_ERROR);
        }
        $this->response('编辑成功');
    }

    /**
     * @name :退出登录
     * @return void
     * @author :liyuhang
     * @method :post
     */
    public function logout(){
        $rs = Cache::pull($this->token);
        if($rs === false){
            $this->response('error',Code::USER_ERROR);
        }
        $this->response('success');
    }


    /**
     * @name   : (测试定时任务)检测用户是否无操作记录
     * @author :lyh
     * @method :post
     * @time   :2023/5/12 14:55
     */
//    protected function ceShi(){
//        $this->error = 0;
//        //获取所有ayr_share用户
//        $ayr_share_model = new AyrShareModel();
//        $ayr_share_list = $ayr_share_model->list($this->map);
//        if(!empty($ayr_share_list)){
//            foreach ($ayr_share_list as $k => $v){
//                //查询当前用户是否有未推送的博文
//                $ayr_release = new AyrReleaseModel();
//                $release_info = $ayr_release->read(['schedule_date'=>['>',date('Y-m-d H:i:s',time())],'share_id'=>$v['id']]);
//                //有推文时,直接跳出循环
//                if($release_info !== false){
//                    continue;
//                }
//                //查看用户是否在一周内有发送博客
//                $start_at = Carbon::now()->modify('-7 days')->toDateString();
//                $end_at = Carbon::now()->toDateString();
//                $release_info = $ayr_release->read(['created_at'=>['between',[$start_at,$end_at]]]);
//                //有发送博文,则跳出循环
//                if($release_info  == false){
//                    continue;
//                }
//                //删除用户第三方配置
//                $ayr_share_helper = new AyrShareHelper();
//                $data_profiles = [
//                    'title'=>$v['title'],
//                    'profileKey'=>$v['profile_key']
//                ];
//                $res = $ayr_share_helper->deleted_profiles($data_profiles);
//                if($res['status'] == 'fail'){
//                    $this->error++;
//                    continue;
//                }
//                //更新数据库
//                $data = [
//                    'title'=>null,
//                    'bind_plat_from'=>null,
//                    'profile_key'=>null,
//                    'ref_id'=>null,
//                ];
//                $res = $ayr_share_model->edit($data,['id'=>$v['id']]);
//                if($res == false){
//                    $this->error++;
//                }
//            }
//        }
//        return $this->error;
//    }

}