Skip to content

操作日志

这里介绍一下操作日志的使用。

功能介绍

主要包含在 wmeimob-spring-boot-starter-operationlog jar 中。

引入公共依赖:

xml
<dependency>
    <groupId>com.wmeimob</groupId>
    <artifactId>wmeimob-spring-boot-starter-operationlog</artifactId>
</dependency>

与标品的集成

java
/**
 * Banner
 *
 * @author mjyang
 * @date 2021-08-27 17:07:32
 **/
@Api(tags = "Banner")
@RestController
@RequestMapping("/mall/banner")
@RequiredArgsConstructor
public class BannerController {

    private static final String MODULE = "Banner";

    private final BannerService bannerService;

    @ApiOperation("列表")
    @GetMapping("/queryList")
    @LogRecord(subType = "查询", type = MODULE, bizNo = "", extra = "{{#dto}}", success = "{{#_ret}}", fail = "{{#_errorMsg}}")
    public JsonResult<PagedResult<BannerOutputDto>> list(BannerQuery dto) {
        return JsonResult.ok(this.bannerService.list(dto));
    }

    @ApiOperation("详情")
    @GetMapping("/get/{id}")
    @LogRecord(subType = "查询", type = MODULE, bizNo = "{{#id}}", success = "{{#_ret}}", fail = "{{#_errorMsg}}")
    public JsonResult<BannerOutputDto> get(@PathVariable("id") Long id) {
        return JsonResult.ok(this.bannerService.get(id));
    }

    @ApiOperation("新增")
    @PostMapping("/add")
    @LogRecord(subType = "新增", type = MODULE, bizNo = "{{#_ret.data}}", extra = "{{#dto}}", success = "{{#_ret}}", fail = "{{#_errorMsg}}")
    @Lock4j(name = "BANNER_REPEAT_KEY", keys = "REPEAT")
    public JsonResult<Long> insert(@RequestBody @Validated BannerCreateInputDto dto) {
        return JsonResult.ok(this.bannerService.insert(dto));
    }

    @ApiOperation("编辑")
    @PutMapping("/update")
    @LogRecord(subType = "修改", type = MODULE, bizNo = "{{#dto.id}}", extra = "{{#dto}}", success = "{{#_ret}}", fail = "{{#_errorMsg}}")
    public JsonResult<Void> update(@RequestBody @Validated BannerModifyInputDto dto) {
        this.bannerService.update(dto);
        return JsonResult.ok();
    }

    @ApiOperation("修改状态")
    @PutMapping("/updateStatus")
    @LogRecord(subType = "修改", type = MODULE, bizNo = "{{#dto.id}}", extra = "{{#dto}}", success = "{{#_ret}}", fail = "{{#_errorMsg}}")
    public JsonResult<Void> updateStatus(@RequestBody @Validated BannerModifyStatusInputDto dto) {
        this.bannerService.updateStatus(dto);
        return JsonResult.ok();
    }

    @ApiOperation("删除")
    @DeleteMapping("/delete/{id}")
    @LogRecord(subType = "删除", type = MODULE, bizNo = "{{#id}}", success = "{{#_ret}}", fail = "{{#_errorMsg}}")
    public JsonResult<Void> delete(@PathVariable("id") Long id) {
        this.bannerService.delete(id);
        return JsonResult.ok();
    }
}

其他

该组件使用了美团开源操作日志组件,更多用法可以参考