# 系统注解

# 身份验证注解

# 用户必须登录后才可以访问某个接口

使用范围

  • Class 使用在类上面,对该类的所有方法有效
  • Method 使用方法上面只对该方法有效
/**
 * @Auth
 */
class UserController extends MineController
{
    // ...    
}

OR

class FooController extends MineController
{
    /**
     * @Auth
     */
    public function index()
    {
        // ...
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 权限验证注解

# 只允许有某接口权限的用户访问 (会附带对身份验证)

使用范围

  • Method 只对方法有效

参数说明

  • 要验证的权限标识代码,可在 菜单管理 查询菜单的权限标识代码(支持验证多个权限 v0.5.4+
  • 验证条件:AND 和 OR v0.5.4+

使用方法

  • @Permission("菜单代码")
class UserController extends MineController
{
    /**
     * 验证一个权限,通过即可访问
     * @Permission("system:user:index")
     */
    public function index(): ResponseInterface
    {
        //...
    }

    /**
     * 验证多个权限,全部通过才可访问
     * @Permission("system:user:save,system:user:update", "AND")
     */
    public function save(): ResponseInterface
    {
        //...
    }

    /**
     * 验证多个权限,其中一个通过即可访问
     * @Permission("system:user:index,system:user:read", "OR")
     */
    public function read(): ResponseInterface
    {
        //...
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 角色验证注解 v0.6.1+

# 只允许有某角色的用户访问 (会附带对身份验证)

使用范围

  • Method 只对方法有效

参数说明

  • 要验证的角色标识代码,可在 角色管理 查询角色的标识代码(支持验证多个权限)
  • 验证条件:AND 和 OR

使用方法

  • @Role("角色代码")
class UserController extends MineController
{
    /**
     * 验证拥有superAdmin角色才可访问
     * @Role("superAdmin")
     */
    public function index(): ResponseInterface
    {
        //...
    }

    /**
     * 验证多个角色,全部通过才可访问
     * @Role("CEO,CTO", "AND")
     */
    public function save(): ResponseInterface
    {
        //...
    }

    /**
     * 验证多个角色,其中一个通过就可访问
     * @Role("CEO,COO", "OR")
     */
    public function read(): ResponseInterface
    {
        //...
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 操作日志注解

# 使用后会记录用户在后台请求某接口的参数、返回值、用户信息等

使用范围

  • Method 只对方法有效 未传值情况下,请配合@Permission注解一起使用

参数说明 0.4.1版本新增

  • 要记录的菜单名称

使用方法

  • @OperationLog
  • @OperationLog("用户更新") 0.4.1版本新增
class UserController extends MineController
{
    /**
     * 新增用户
     * @PostMapping("save")
     * @Permission("system:user:save")
     * @OperationLog
     */
    public function save(): ResponseInterface
    {
        //...
    }

    /**
     * 获取用户列表
     * @GetMapping("list")
     * @OperationLog("用户列表")
     */
    public function list(): ResponseInterface
    {
        //...
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 数据库事务注解

# 使用后会自动启动事务、提交。执行失败自动回滚。

使用范围

  • Method 只对方法有效

使用方法

  • @Transaction
/**
 * @Transaction
 */
public function save(): ResponseInterface
{
    //...
}
1
2
3
4
5
6
7

# 防止重复提交注解

# 对接口使用后会在3秒内(默认值)禁止再次访问

使用范围

  • Method 只对方法有效

参数说明

  • 要禁止的秒数,默认值3秒

使用方法

  • @Resubmit
  • @Resubmit("10")
/**
 * @Resubmit("5")
 */
public function save(): ResponseInterface
{
    //...
}
1
2
3
4
5
6
7

# 清除缓存注解

# 主要用于更新、删除数据操作后,执行清除缓存操作,只需要指定缓存key即可 0.4.1版本新增

使用范围

  • Method 只对方法有效

参数说明

  • 要清除的缓存key,支持多个,每个key以逗号隔开;支持通配符清除缓存
  • 通配符 * 例子:'loginInfo:*'

使用方法

  • @DelteCache('crontab')
  • @DelteCache("crontab,config:*")
/**
 * 在更新完信息后,使用删除缓存注解,自动清除指定缓存
 * @DelteCache("crontab,loginInfo:*")
 */
public function updateInfo(): ResponseInterface
{
    //...
}
1
2
3
4
5
6
7
8

# Excel相关注解

# 注解服务用于 数据导出为ExcelExcel导入到数据库

# 定义Excel DTO类注解

  • CLASS 只对类有效
  • 使用方法 @ExcelData

# 定义Excel DTO类属性注解

  • METHOD 只对方法有效
  • 使用方法 @ExcelProperty(value="显示列名", index="显示、读取顺序")
  • 参数说明
参数 说明
value 显示在excel第一行的列名称
index 设置excel列的显示顺序,从0开始
以下功能为 0.6.2 版本新增 以下功能为 0.6.2 版本新增
width 设置单元格的宽度
align 设置单元格的对齐方式,有 left, center, right 可选,默认 left
headColor 设置表头单元格字体颜色,十六进制,例如 00FF00,xlswriter只支持整行设置
headBgColor 设置表头单元格背景颜色,十六进制,例如 00FF00,xlswriter只支持整行设置
color 设置表体单元格字体颜色,十六进制,例如 00FF00,xlswriter只支持整行设置
bgClor 设置表体单元格背景颜色,十六进制,例如 00FF00,xlswriter只支持整行设置
<?php
namespace App\System\Dto;

use Mine\Interfaces\MineModelExcel;
use Mine\Annotation\ExcelData;
use Mine\Annotation\ExcelProperty;

/**
 * 用户数据对象类
 * @ExcelData
 */
class UserDto implements MineModelExcel
{
    /**
     * @ExcelProperty(value="用户名", index="0")
     */
    public $username;

    /**
     * @ExcelProperty(value="昵称", index="1")
     */
    public $nickname;
    
    /**
     * @ExcelProperty(value="手机", index="2")
     */
    public $phone;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28