Thinkphp用户模块接口

本文详细介绍了用户管理的增删改查功能接口,包括用户列表、新增、更新、信息获取、伪删除及状态变更等操作。深入解析了接口参数、返回值及实现逻辑,为开发者提供全面的用户管理接口指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户增删改查功能接口


<?php
namespace app\admin\controller;

class User extends Error
{
    /**
     * @api {post} /admin/user/list  后台用户列表接口
     * 
     * @param int       page      null
     * @param string    username  null
     * 
     * @return array
     */
    public function listApi()
    {
        $param = input('post.');
        $page = $param['page'] ?? 1;

        $where['is_delete'] = 0;
        $where['admin'] = 0;

        if (!empty($param['username'])) {
            $where['username'] = $param['username'];
        }

        $total = $this->db('yzm_user')->where($where)->count();
        if ($total == 0) {
            return [200,['total'=>0, 'data' => []]];
        }

        $data = $this->db('yzm_user')->where($where)->field('id,username,head_url,admin,status,time')->page($page,10)->order('id desc')->select();
        foreach ($data as &$v) {
            $v['time'] = date('Y-m-d H:i:s',$v['time']);
            $v['admin_text'] = $v['admin'] == 1? '管理员':'用户';
        }

        return [200, ['total'=>$total ,'data' => $data]];
    }
    /**
     * @api {post} /admin/user/insert  后台用户新增接口
     * 
     * @param string    username require(必填)
     * @param string    head_url require(必填)
     * @param int    admin require(必填)
     * @param int    status require(必填)
     * 
     * @return array
     */
    public function insertApi()
    {
        $param = input('post.');

        $error = $this->validate($param,'User.insert');
        if (true !== $error) {
            return [501, $error];
        }

        $user = $this->db('yzm_user')->where('username',$param['username'])->where('is_delete',0)->find();
        if ($user) {
            return [501 ,'该用户已存在,再想一下'];
        }

        $row = $this->db('yzm_user')->insert([
            'username' => $param['username'],
            'password' => md5(123456),
            'head_url' => $param['head_url'],
            'admin' => $param['admin'],
            'status' => $param['status'],
            'time' => time(),
            'is_delete' => 0,
        ]);

        if ($row < 1) {
            return [501 ,'操作失败'];
        }

        return [200, true];

    }
    /**
     * @api {post} /admin/user/update  后台用户更新接口
     * 
     * @param string    username require(必填)
     * @param string    head_url require(必填)
     * @param int    admin require(必填)
     * @param int    status require(必填)
     * 
     * @return array
     */
    public function updateApi()
    {
        $param = input('post.');

        $error = $this->validate($param,'User.update');
        if (true !== $error) {
            return [501, $error];
        }

        $user = $this->db('yzm_user')->where('username',$param['username'])->where('id','<>',$param['id'])->where('is_delete',0)->find();
        if ($user) {
            return [501 ,'该用户已存在,再想一下'];
        }

        $row = $this->db('yzm_user')->where('id',$param['id'])->update([
            'username' => $param['username'],
            'head_url' => $param['head_url'],
            'admin' => $param['admin'],
            'status' => $param['status'],
            'is_delete' => 0,
        ]);

        if ($row < 0) {
            return [501 ,'操作失败'];
        }

        return [200, true];

    }
    /**
     * @api {post} /admin/user/info  后台用户信息接口
     *
     * @param int    id require(必填)
     * 
     * @return array
     */
    public function infoApi()
    {
        $id = input('post.id');

        $info = $this->db('yzm_user')->where('id',$id)->where('is_delete',0)->field('id,username,head_url,status,admin,time')->find();
        if (!$info) {
            return [501 ,'数据错误'];
        }

        $info['time'] = date('Y-m-d H:i:s',$info['time']);

        return [200, $info];
    }
    /**
     * @api {post} /admin/user/delete  后台用户伪删除接口
     *
     * @param int    id require(必填)
     * 
     * @return array
     */
    public function deleteApi()
    {
        $id = input('post.id');

        $info = $this->db('yzm_user')->where('id',$id)->where('is_delete',0)->find();
        if (!$info) {
            return [501 ,'数据错误'];
        }

        $row = $this->db('yzm_user')->where('id',$id)->update(['is_delete'=> 1]);

        if ($row < 1) {
            return [501 , '删除失败'];
        }

        return [200, true];
    }
    /**
     * @api {post} /admin/user/changeStatus  后台用户状态接口
     *
     * @param int    id require(必填)
     * 
     * @return array
     */
    public function changeStatusApi()
    {
        $id = input('post.id');

        $info = $this->db('yzm_user')->where('id',$id)->where('is_delete',0)->find();
        if (!$info) {
            return [501 ,'数据错误'];
        }

        $status = $info['status'] == 1 ? 2 : 1;

        $row = $this->db('yzm_user')->where('id',$id)->update(['status'=>$status]);

        if ($row < 1) {
            return [501 ,'操作失败'];
        }

        return [200, true];

    }
}

显示结果页面
在这里插入图片描述

用户模块验证器

<?php
namespace app\admin\validate;

use think\Validate;

class User extends Validate
{
    protected $rule = [
        'id'=>'require|number',
        'username'=>'require|chsDash',
        'oldpassword'=>'require',
        'password'=>'require|alphaDash|confirm:repassword',
        'repassword'=>'require|alphaDash',
        'head_url'=>'require|checkImg',
        'admin'=>'require|number|in:0,1',
        'status'=>'require|number|in:1,2',
    ];

    protected $scene = [
        'insert'=>['username','head_url','admin','status'],
        'update'=>['id','username','head_url','admin','status'],
        'changePass'=>['id','oldpassword','password','repassword'],
    ];
    
    protected function checkImg($img)
    {
        if(!in_array(pathinfo($img,PATHINFO_EXTENSION),['jpeg','jpg','png'])){
             return '请上传jpeg、jpg、png格式的图片';   
        }
        return true;
    }
}

上传文件接口

<?php
namespace app\admin\controller;

class System extends Error
{
    /**
     * @api {post} /admin/system/upload  上传接口
     * 
     * @param file    file require(必填)
     * 
     * @return array
     */
    public function uploadApi()
    {
        $file = request()->file('file');
        
        if (!$file) {
            return [501 ,'文件不存在,上传失败'];
        }

        $info = $file->move('./uploads');
        if (!$info){
            return [501, $file->getError()];
        }

        $name = $info->getSaveName();

        return [200 , 'http://uploads.myvue.com/'.$name];
    }
}

显示结果页面
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值