LoginController.php 9.9 KB
<?php
/**
 * Created by PhpStorm.
 * User: panhaowen
 * Date: 2018/12/3
 * Time: 16:59
 */

namespace api\user\controller;
use think\Controller;
use think\Db;
/**
 * @title 后台用户
 * @description 用户相关接口
 */
header('Access-Control-Allow-Origin:*');
class LoginController extends Controller{

    /**
     * @title 登录接口
     * @description
     * @author panhaowen
     * @url /user/login/login
     * @method POST
     * @param name:user_login type:varchar require:1 desc:用户登录账号
     * @param name:user_pass type:varchar require:1 desc:用户登录密码
     * @return user_type:1管理员,2普通用户,3代理用户
     * @return token:登录唯一标识
     */
    public function login()
    {
        $param=$this->request->param();
        $user=Db::name('user')->where(['user_login'=>$param['user_login'],'user_pass'=>cmf_password($param['user_pass'])])->find();
        if (!$user){
            $this->error('用户不存在');
        }
        if ($user['user_status']==0){
            $this->error('用户被冻结');
        }
        $token = cmf_generate_user_token($user['id'], 'web');
        $user['token']=$token;
        $this->success('登录成功',$user);
    }


    /**
     * @title 管理员修改密码
     * @description
     * @author panhaowen
     * @url /user/login/editPassword
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_pass type:varchar require:1 desc:要修改的密码
     */
    public function editPassword()
    {
        $param=$this->request->param();
        $user=$this->getUser();
        $re=Db::name('user')->where('id',$user['id'])->update(['user_pass'=>cmf_password($param['user_pass'])]);
        if ($re) {
            $this->success('修改密码成功');
        }else{
            $this->error('修改密码失败');
        }
    }

    /**
     * @title 添加客服qq
     * @description
     * @author panhaowen
     * @url /user/login/addKefu
     * @method POST
     * @param name:qq type:varchar require:1 desc:客服的qq号
     */
    public function addKefu()
    {
        $param=$this->request->param();
        $re=Db::name('kefu')->insert(['qq'=>$param['qq'],'create_time'=>time()]);
        if ($re) {
            $this->success('添加客服成功');
        }else{
            $this->error('添加客服失败');
        }
    }


    /**
     * @title 添加管理员
     * @description
     * @author panhaowen
     * @url /user/login/addAdmin
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_login type:varchar require:1 desc:管理员账号
     * @param name:user_pass type:varchar require:1 desc:管理员密码
     */
    public function addAdmin()
    {
        $user=$this->getUser();
        if ($user['id']!=1){
            $this->error('非超级管理员不可添加管理员');
        }
        $param=$this->request->param();
        $param['user_type']=1;
        $param['create_time']=time();
        $param['user_pass']=cmf_password($param['user_pass']);
        $re=Db::name('user')->insert($param);
        if ($re) {
            $this->success('添加管理员成功');
        }else{
            $this->error('添加管理员失败');
        }
    }

    /**
     * @title 编辑管理员
     * @description
     * @author panhaowen
     * @url /user/login/editAdmin
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_id type:int require:1 desc:管理员id
     */
    public function editAdmin()
    {
        $param=$this->request->param();
        $user=$this->getUser();
        if ($user['id']!=1){
            $this->error('非超级管理员不可编辑管理员');
        }
        $data=Db::name('user')->where('id',$param['user_id'])->find();
        $this->success('获取信息成功',$data);
    }

    /**
     * @title 编辑管理员提交
     * @description
     * @author panhaowen
     * @url /user/login/editAdminPost
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_id type:varchar require:1 desc:管理员id
     * @param name:param type:varchar require:1 desc:编辑参数(user_login,user_pass)
     */
    public function editAdminPost()
    {
        $param=$this->request->param();
        $user=$this->getUser();
        if ($user['id']!=1){
            $this->error('非超级管理员不可编辑管理员');
        }
        $re=Db::name('user')->where('id',$param['user_id'])->update($param);
        if ($re) {
            $this->success('编辑管理员成功');
        }else{
            $this->error('编辑管理员失败');
        }
    }


    /**
     * @title 添加用户
     * @description
     * @author panhaowen
     * @url /user/login/addUser
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_login type:varchar require:1 desc:用户账号
     * @param name:user_pass type:varchar require:1 desc:用户密码
     * @param name:mobile type:varchar require:1 desc:用户电话
     * @param name:qq type:varchar require:1 desc:用户qq
     * @param name:wx type:varchar require:1 desc:用户wx
     * @param name:user_type type:int require:1 desc:2普通用户,3代理用户
     */
    public function addUser()
    {
        $user=$this->getUser();
        if ($user['user_type']!=1){
            $this->error('非管理员不可添加用户');
        }
        $param=$this->request->param();
        $param['create_time']=time();
        $param['user_pass']=cmf_password($param['user_pass']);
        $param['parent_id']=$user['id'];
        $re=Db::name('user')->insert($param);
        if ($re) {
            $this->success('添加用户成功');
        }else{
            $this->error('添加用户失败');
        }
    }

    /**
     * @title 编辑用户
     * @description
     * @author panhaowen
     * @url /user/login/editUser
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_id type:varchar require:1 desc:用户id
     */
    public function editUser()
    {
        $param=$this->request->param();
        $user=$this->getUser();
        if ($user['user_type']!=1){
            $this->error('非管理员不可编辑用户');
        }
        $data=Db::name('user')->where('id',$param['user_id'])->find();
        $this->success('获取信息成功',$data);
    }

    /**
     * @title 编辑用户提交
     * @description
     * @author panhaowen
     * @url /user/login/editUserPost
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_id type:varchar require:1 desc:用户id
     * @param name:param type:varchar require:1 desc:编辑参数(user_login,user_pass,user_type)
     */
    public function editUserPost()
    {
        $param=$this->request->param();
        $user=$this->getUser();
        if ($user['user_type']!=1){
            $this->error('非管理员不可编辑用户');
        }
        $re=Db::name('user')->where('id',$param['user_id'])->update($param);
        if ($re) {
            $this->success('编辑用户成功');
        }else{
            $this->error('编辑用户失败');
        }
    }


    /**
     * @title 冻结/解冻
     * @description
     * @author panhaowen
     * @url /user/login/cold
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_id type:varchar require:1 desc:用户id
     * @param name:user_status type:int require:1 desc:0冻结,1解冻
     */
    public function cold()
    {
        $param=$this->request->param();
        $user=$this->getUser();
        if ($user['user_type']!=1){
            $this->error('非管理员不可进行该操作');
        }
        $re=Db::name('user')->where('id',$param['user_id'])->update(['user_status'=>$param['user_status']]);
        if ($re) {
            $this->success('操作成功');
        }else{
            $this->error('操作失败');
        }
    }

    /**
     * @title 代充/扣除
     * @description
     * @author panhaowen
     * @url /user/login/recharge
     * @method POST
     * @header name:XX-Token require:1 default: desc:token
     * @param name:user_id type:varchar require:1 desc:用户id
     * @param name:type type:int require:1 desc:1代充,2扣除
     */
    public function recharge()
    {
        $param=$this->request->param();
        $user=$this->getUser();
        if ($user['user_type']!=1){
            $this->error('非管理员不可进行该操作');
        }
        if ($param['type']=1) {
            $re = Db::name('user')->where('id', $param['user_id'])->setInc('money', $param['money']);
        }else if ($param['type']=2){
            $re = Db::name('user')->where('id', $param['user_id'])->setDec('money' ,$param['money']);
        }
        if ($re) {
            $this->success('操作成功');
        }else{
            $this->error('操作失败');
        }
    }
    /**
     * @title 用户列表
     * @description 用户列表接口
     * @author panhaowen
     * @url /user/login/userIndex
     * @method POST
     * @param name:param type:array require:0 desc:搜索条件(user_login_user_pass,user_type)
     * @return data:用户数据
     */
    public function userIndex()
    {
        $param=$this->request->param();
        $where=[];
        if (!empty($param['user_login'])){
            $where['user_login']=['like','%'.$param['user_login'].'%'];
        }
        if (!empty($param['mobile'])){
            $where['mobile']=['like','%'.$param['mobile'].'%'];
        }
        $where['user_type']=empty($param['user_type'])?1:$param['user_type'];
        $data=Db::name('user')->where($where)->field('id,user_type,user_login,mobile,money,qq,wx,parent_id')->paginate(1)->each(function ($item) {
            $item['parent_id'] = Db::name('user') ->where('id',$item['parent_id'])->find()['user_login'];
            return $item;
        });
        $this->success('用户数据',$data);
    }
}