Api 请求日志-封装日志自定义注解
import java.lang.annotation.*;
/**
*Description: <功能操作日志注解>. <br>
*<p>
<声明在被spring管理的类的方法上,会记录下当前的操作日志类型>
比如:@CP_OperateLog(value="注解日志",type=1,key="test")
</p>
*Makedate:2020年12月30日 上午10:55:27
* @author CHENYB
* @version V1.0
*/
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CP_OperateLog {
/**
* 用户操作名称
* @return 用户操作名称,默认为空串
*/
String value() default "";
/**
* 用户操作类型,默认类型为0<br/>
* 0 - 其他操作 <br/>
* 1 - 查询 <br/>
* 2 - 新增 <br/>
* 3 - 修改 <br/>
* 4 - 删除
* @return 用户操作类型
*/
CP_GlobalNamingConstant type() default CP_GlobalNamingConstant.OPERATE_DEFAULT;
/**
* 用户操作名称对应的key,可以通过该key值在属性文件中查找对应的value
* @return key
*/
String key() default "";
}
/**
* 动作枚举
*Makedate:2020年12月30日 上午10:55:27
* @author CHENYB
* @version V1.0
*/
public enum CP_GlobalNamingConstant {
/**
* ****************************************************
* 用户操作日志记录类型定义<br/>
* ****************************************************
*/
/**
* 用户操作类型:登录
*/
OPERATE_LOGIN("登录"),
/**
* 用户操作类型:认证
*/
OPERATE_AUTH("认证"),
/**
* 用户操作类型:获取对象
*/
OPERATE_ENTITY("获取对象"),
/**
* 用户操作类型:获取列表
*/
OPERATE_LIST("获取列表"),
/**
* 用户操作类型:添加记录
*/
OPERATE_ADD("添加记录"),
/**
* 用户操作类型:修改记录
*/
OPERATE_MODIFY("修改记录"),
/**
* 用户操作类型:删除记录
*/
OPERATE_DELETE("删除记录"),
/**
* 用户操作类型:编辑记录
*/
OPERATE_EDIT("编辑记录"),
/**
* 用户操作类型:数据详细信息
*/
OPERATE_DETAIL_MODIFY("修改记录"),
/**
* 用户操作类型:上传
*/
OPERATE_UPLOAD("上传"),
/**
* 用户操作类型:下载
*/
OPERATE_DOWNLOAD("下载"),
/**
* 用户操作类型:缓存管理
*/
OPERATE_CACHE("缓存管理"),
/**
* 用户操作类型:默认
*/
OPERATE_DEFAULT("默认");
private String desc;//中文描述
/**
* 私有构造,防止被外部调用
* @param desc
*/
private CP_GlobalNamingConstant(String desc){
this.desc=desc;
}
/**
* 定义方法,返回描述,跟常规类的定义没区别
* @return
*/
public String getDesc(){
return desc;
}
/**
* 覆盖
* @return
*/
@Override
public String toString() {
return desc;
}
}
@GetMapping("/jobs")
@CP_OperateLog(value = "获取全部任务",type = CP_GlobalNamingConstant.OPERATE_LIST)
@ApiOperation(value = "获取全部任务")
public AjaxResponse jobsInfo (){
List<JobDispatch> list = this.jobDispatchService.findAll();
return AjaxResponse.success(list.size());
}