UserLogic.php 3.8 KB
<?php

namespace App\Http\Logic\Bside\User;

use App\Enums\Common\Code;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\User\ProjectRole;
use App\Models\User\User;

class UserLogic extends BaseLogic
{
    public function __construct()
    {
        parent::__construct();
        $this->model = new User();
        $this->param = $this->requestAll;
    }

    /**
     * @remark :获取用户详情
     * @name   :User_info
     * @author :lyh
     * @method :post
     * @time   :2023/6/17 16:42
     */
    public function user_info(){
        $info = $this->model->read($this->param);
        return $this->success($info);
    }

    /**
     * @remark :添加用户
     * @name   :user_add
     * @author :lyh
     * @method :post
     * @time   :2023/6/17 16:42
     */
    public function user_add(){
        //验证当前用户是否存在
        $info = $this->model->read(['mobile'=>$this->param['mobile'],
            'project_id'=>$this->user['project_id']]);
        if($info !== false){
            $this->fail('当前手机号码已注册');
        }
        if(!isset($this->param['role_id']) || empty($this->param['role_id'])){
            $this->fail('一个账号只允许一个超级管理员,请先添加角色');
        }
        $this->param['create_id'] = $this->user['id'];
        $this->param['operator_id'] = $this->user['id'];
        $this->param['project_id'] = $this->user['project_id'];
        $this->param['type'] = 1;
        //密码加密
        $this->param['password'] = base64_encode(md5($this->param['password']));
        $rs = $this->model->add($this->param);
        if($rs === false){
            $this->fail('error');
        }
        return $this->success();
    }

    /**
     * @remark :编辑用户
     * @name   :user_edit
     * @author :lyh
     * @method :post
     * @time   :2023/6/17 16:42
     */
    public function user_edit(){
        $condition = [
            'id'=>['!=',$this->param['id']],
            'mobile'=>$this->param['mobile'],
            'project_id'=>$this->user['project_id']
        ];
        $info = $this->model->read($condition);
        if($info !== false){
            $this->fail('当前编辑的手机号码已存在');
        }
        $this->param['type'] = 1;
        $this->param['operator_id'] = $this->user['id'];
        if(isset($this->param['password']) && !empty($this->param['password'])){
            $this->param['password'] = base64_encode(md5($this->param['password']));
        }
        if(isset($this->param['role_id']) && ($this->param['role_id'] != 0)){
            $roleModel = new ProjectRole();
            $roleInfo = $roleModel->read(['project_id'=>$this->user['project_id'],'id'=>$this->param['role_id']]);
            if($roleInfo == false){
                $this->fail('当前角色不是当前项目角色');
            }
        }
        $rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
        if($rs === false){
            $this->fail('系统错误,请联系管理员');
        }
        return $this->success();
    }

    /**
     * @remark :编辑状态与排序
     * @name   :user_status
     * @author :lyh
     * @method :post
     * @time   :2023/6/17 16:41
     */
    public function user_status(){
        $this->param['operator_id'] = $this->user['id'];
        $rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
        if($rs === false){
            $this->fail('error',Code::USER_ERROR);
        }
        return $this->success();
    }

    /**
     * @remark :删除用户
     * @name   :user_del
     * @author :lyh
     * @method :post
     * @time   :2023/6/17 16:41
     */
    public function user_del(){
        $this->param['id'] = ['in',$this->param['id']];
        $this->model->del($this->param);
        //对应删除组织架构
        return $this->success();
    }

}