package com.ema.admin.modules.system.controller;

import com.ema.common.aspect.logger.LogTypeEnum;
import com.mybatisflex.core.paginate.Page;
import com.ema.admin.modules.system.entity.SysOperLog;
import com.ema.admin.modules.system.entity.SysOperLogQueryVo;
import com.ema.admin.modules.system.service.SysOperLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 操作日志记录 控制层。
 *
 * @author LIJIAN
 * @since 2026-03-25
 */
@RestController
@Api(tags = "操作日志记录接口")
@RequestMapping("/sysOperLog")
public class SysOperLogController {

    @Autowired
    private SysOperLogService sysOperLogService;

    /**
     * 根据操作日志记录主键获取详细信息。
     *
     * @param id 操作日志记录主键
     * @return 操作日志记录详情
     */
    @GetMapping("getInfo/{id}")
    @ApiOperation("根据主键获取操作日志记录")
    public SysOperLog getInfo(@PathVariable @ApiParam("操作日志记录主键") String id) {
        SysOperLog operLog = sysOperLogService.getById(id);
        operLog.setType(LogTypeEnum.getDescribe(operLog.getType()));
        return operLog;
    }

    /**
     * 分页查询操作日志记录（带查询条件）。
     *
     * @param queryVo 查询条件
     * @return 分页对象
     */
    @PostMapping("page")
    @ApiOperation("分页查询操作日志记录（带查询条件）")
    public Page<SysOperLog> page(@RequestBody @ApiParam("查询条件") SysOperLogQueryVo queryVo) {
        return sysOperLogService.page(queryVo);
    }
}
