package com.xiaopeng.operation.controller; import com.xiaopeng.api.model.operation.XpAdminOperationLog; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.domain.AjaxResult; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.log.enums.AdminBusinessType; import com.xiaopeng.common.security.annotation.InnerAuth; import com.xiaopeng.common.security.annotation.Logical; import com.xiaopeng.common.security.annotation.RequiresPermissions; import com.xiaopeng.operation.query.AdminOperationLogPageQuery; import com.xiaopeng.operation.service.IXpAdminOperationLogService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.Arrays; import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 管理后台操作记录 */ @RestController @RequestMapping({"/api/v1/adminOperationLog"}) @Api(tags = "管理后台-操作记录") public class XpAdminOperationLogController { @Resource private IXpAdminOperationLogService adminOperationLogService; @RequiresPermissions(value = {"/adminOperationLog/list", "/operationLog/list"}, logical = Logical.OR) @GetMapping("/list") @ApiOperation(value = "管理后台操作记录分页列表", tags = {"管理后台-操作记录"}) public AjaxResult> list(AdminOperationLogPageQuery query) { return AjaxResult.success(adminOperationLogService.pageList(query)); } @RequiresPermissions(value = {"/adminOperationLog/list", "/operationLog/list"}, logical = Logical.OR) @GetMapping("/businessTypeList") @ApiOperation(value = "管理后台操作记录业务类型列表", tags = {"管理后台-操作记录"}) public AjaxResult>> businessTypeList() { List> list = Arrays.stream(AdminBusinessType.values()) .sorted(Comparator.comparingInt(AdminBusinessType::getCode)) .map(type -> { Map item = new LinkedHashMap<>(); item.put("code", type.getCode()); item.put("desc", type.getDesc()); item.put("name", type.name()); return item; }) .collect(Collectors.toList()); return AjaxResult.success(list); } @InnerAuth @PostMapping("/saveLog") public R saveLog(@RequestBody XpAdminOperationLog adminOperationLog) { if (adminOperationLog.getOperationTime() == null) { adminOperationLog.setOperationTime(LocalDateTime.now()); } adminOperationLog.setCreateTime(LocalDateTime.now()); return R.ok(adminOperationLogService.save(adminOperationLog)); } }