diff --git a/nex-be/src/main/java/com/unisinsight/project/controller/ImageVirtualMachinesController.java b/nex-be/src/main/java/com/unisinsight/project/controller/ImageVirtualMachinesController.java index f2bc3d2..997cc74 100644 --- a/nex-be/src/main/java/com/unisinsight/project/controller/ImageVirtualMachinesController.java +++ b/nex-be/src/main/java/com/unisinsight/project/controller/ImageVirtualMachinesController.java @@ -3,6 +3,7 @@ package com.unisinsight.project.controller; import cn.hutool.json.JSONUtil; import com.unisinsight.project.entity.req.DeleteIdReq; +import com.unisinsight.project.entity.req.ImageDesktopReq; import com.unisinsight.project.entity.req.ImageVirtualMachinesReq; import com.unisinsight.project.entity.res.ImageVirtualMachinesRes; import com.unisinsight.project.entity.res.PageResult; @@ -135,6 +136,24 @@ public class ImageVirtualMachinesController { log.info("终端重启请求参数为:{}", JSONUtil.toJsonStr(req)); return service.reboot(req); } + @ApiOperation(value = "终端挂载文件") + @PostMapping("/iso/attach") + public Result attachIso(@RequestBody ImageVirtualMachinesReq req) { + if (Objects.isNull(req)) { + return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR); + } + log.info("终端挂载文件请求参数为:{}", JSONUtil.toJsonStr(req)); + return service.attachIso(req); + } + @ApiOperation(value = "终端卸载文件") + @PostMapping("/iso/remove") + public Result removeIso(@RequestBody ImageVirtualMachinesReq req) { + if (Objects.isNull(req)) { + return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR); + } + log.info("终端卸载文件请求参数为:{}", JSONUtil.toJsonStr(req)); + return service.removeIso(req); + } } diff --git a/nex-be/src/main/java/com/unisinsight/project/controller/OperateLogController.java b/nex-be/src/main/java/com/unisinsight/project/controller/OperateLogController.java new file mode 100644 index 0000000..51ffccd --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/controller/OperateLogController.java @@ -0,0 +1,101 @@ +package com.unisinsight.project.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.unisinsight.project.entity.dao.OperateLog; +import com.unisinsight.project.entity.req.OperateLogReq; +import com.unisinsight.project.entity.res.OperateLogRes; +import com.unisinsight.project.service.OperateLogService; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; + +import javax.annotation.Resource; +import java.io.Serializable; +import java.util.List; + +import com.unisinsight.project.exception.Result; +import lombok.extern.slf4j.Slf4j; +import com.unisinsight.project.exception.BaseErrorCode; + +import java.util.Objects; + +import com.unisinsight.project.entity.req.DeleteIdReq; +import cn.hutool.json.JSONUtil; + +/** + * (OperateLog)表控制层 + * + * @author ch + * @since 2025-09-03 10:51:42 + */ +@RestController +@Api(tags = "日志记录") +@Slf4j +@RequestMapping("/api/nex/v1/operate/log") +public class OperateLogController { + /** + * 服务对象 + */ + @Resource + private OperateLogService service; + + /** + * 分页查询所有数据 + * + * @param page 分页对象 + * @param operateLog 查询实体 + * @return 所有数据 + */ + @PostMapping("/select/page") + @ApiOperation(value = "分页查询") + public Result selectPage(@RequestBody OperateLogReq operateLogReq) { + if (Objects.isNull(operateLogReq)) { + return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR); + } + log.info("分页查询请求参数为:{}", JSONUtil.toJsonStr(operateLogReq)); + return service.selectPage(operateLogReq); + } + + @ApiOperation(value = "新增") + @PostMapping("/add") + public Result insertImageVirtualMachines(@RequestBody OperateLogReq operateLogReq) { + if (Objects.isNull(operateLogReq)) { + return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR); + } + log.info("新增请求参数为:{}", JSONUtil.toJsonStr(operateLogReq)); + return service.insert(operateLogReq); + } + + @ApiOperation(value = "$tableInfo.comment修改") + @PostMapping("/update") + public Result updateUser(@RequestBody OperateLogReq operateLogReq) { + if (Objects.isNull(operateLogReq)) { + return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR); + } + log.info("修改请求参数为:{}", JSONUtil.toJsonStr(operateLogReq)); + return service.update(operateLogReq); + } + + @ApiOperation(value = "查询") + @PostMapping("/query") + public Result queryUser(@RequestBody OperateLogReq operateLogReq) { + if (Objects.isNull(operateLogReq)) { + return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR); + } + log.info("查询请求参数为:{}", JSONUtil.toJsonStr(operateLogReq)); + return service.query(operateLogReq); + } + + @ApiOperation(value = "删除") + @PostMapping("/delete") + public Result delete(@RequestBody DeleteIdReq deleteIdReq) { + if (Objects.isNull(deleteIdReq)) { + return Result.errorResult(BaseErrorCode.PARAMS_CHK_ERROR); + } + log.info("删除请求参数为:{}", JSONUtil.toJsonStr(deleteIdReq)); + return service.delete(deleteIdReq); + } +} + diff --git a/nex-be/src/main/java/com/unisinsight/project/entity/dao/OperateLog.java b/nex-be/src/main/java/com/unisinsight/project/entity/dao/OperateLog.java new file mode 100644 index 0000000..a6e1af1 --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/entity/dao/OperateLog.java @@ -0,0 +1,64 @@ +package com.unisinsight.project.entity.dao; + + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + + +/** + * (OperateLog)表实体类 + * + * @author ch + * @since 2025-09-03 10:51:42 + */ +@TableName(value = "operate_log") +@Data +@ApiModel("") +public class OperateLog extends Model { + /** + * ${column.comment} + **/ + @TableId(value = "id", type = IdType.AUTO) + @ApiModelProperty("${column.comment}") + private Integer id; + /** + * 用户名 + **/ + + + @TableField(value = "username") + @ApiModelProperty("用户名") + private String username; + /** + * 序列号 + **/ + + + @TableField(value = "device_id") + @ApiModelProperty("序列号") + private String deviceId; + /** + * 操作详情 + **/ + + + @TableField("log_desc") + @ApiModelProperty("操作详情") + private String logDesc; + /** + * 操作时间 + **/ + + + @TableField(value = "operate_time",fill = FieldFill.INSERT) + @ApiModelProperty("操作时间") + private Date operateTime; + +} + diff --git a/nex-be/src/main/java/com/unisinsight/project/entity/req/ImageDesktopReq.java b/nex-be/src/main/java/com/unisinsight/project/entity/req/ImageDesktopReq.java index 33e283e..7d0819b 100644 --- a/nex-be/src/main/java/com/unisinsight/project/entity/req/ImageDesktopReq.java +++ b/nex-be/src/main/java/com/unisinsight/project/entity/req/ImageDesktopReq.java @@ -63,6 +63,9 @@ public class ImageDesktopReq { @JsonProperty("storage_path") @ApiModelProperty("镜像存储路径") private String storagePath; + @JsonProperty("storage_pool_name") + @ApiModelProperty("镜像存储路径") + private String storagePoolName; /** * 创建时间 **/ diff --git a/nex-be/src/main/java/com/unisinsight/project/entity/req/ImageOperationIsoReq.java b/nex-be/src/main/java/com/unisinsight/project/entity/req/ImageOperationIsoReq.java new file mode 100644 index 0000000..00e7864 --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/entity/req/ImageOperationIsoReq.java @@ -0,0 +1,30 @@ +package com.unisinsight.project.entity.req; + + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +/** + * @author : ch + * @version : 1.0 + * @ClassName : ImageOperationReq + * @Description : + * @DATE : Created in 16:14 2025/8/25 + *
       Copyright: Copyright(c) 2025     
+ *
       Company :  	紫光汇智信息技术有限公司	           
+ * Modification History: + * Date Author Version Discription + * -------------------------------------------------------------------------- + * 2025/08/25 ch 1.0 Why & What is modified: <修改原因描述> * + */ + +@Data +@Builder +public class ImageOperationIsoReq { + + @JsonProperty("vm_name") + private String vmName; + @JsonProperty("iso_path") + private String isoPath; +} \ No newline at end of file diff --git a/nex-be/src/main/java/com/unisinsight/project/entity/req/OperateLogReq.java b/nex-be/src/main/java/com/unisinsight/project/entity/req/OperateLogReq.java new file mode 100644 index 0000000..e385c2e --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/entity/req/OperateLogReq.java @@ -0,0 +1,65 @@ +package com.unisinsight.project.entity.req; + + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * (OperateLog)表实体类 + * + * @author ch + * @since 2025-09-03 10:51:43 + */ +@Data +@ApiModel("") +public class OperateLogReq { + /** + * ${column.comment} + **/ + @JsonProperty("id") + @ApiModelProperty("${column.comment}") + private Integer id; + /** + * 用户名 + **/ + @JsonProperty("username") + @ApiModelProperty("用户名") + private String username; + /** + * 序列号 + **/ + @JsonProperty("device_id") + @ApiModelProperty("序列号") + private String deviceId; + /** + * 操作详情 + **/ + @JsonProperty("log_desc") + @ApiModelProperty("操作详情") + private String logDesc; + /** + * 操作时间 + **/ + @JsonProperty("operate_time") + @ApiModelProperty("操作时间") + private Date operateTime; + /** + * 查询页 + */ + @ApiModelProperty(value = "查询页", notes = "分页查询时再传") + @JsonProperty("page_num") + private Integer pageNum; + + + /** + * 每页数量 + */ + @ApiModelProperty(value = "每页数量", notes = "分页查询时再传") + @JsonProperty("page_size") + private Integer pageSize; +} + diff --git a/nex-be/src/main/java/com/unisinsight/project/entity/res/OperateLogRes.java b/nex-be/src/main/java/com/unisinsight/project/entity/res/OperateLogRes.java new file mode 100644 index 0000000..cc1c005 --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/entity/res/OperateLogRes.java @@ -0,0 +1,53 @@ +package com.unisinsight.project.entity.res; + + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (OperateLog)表实体类 + * + * @author ch + * @since 2025-09-03 10:51:44 + */ +@Data +@ApiModel("") +public class OperateLogRes implements Serializable { + /** + * ${column.comment} + **/ + @JsonProperty("id") + @ApiModelProperty("${column.comment}") + private Integer id; + /** + * 用户名 + **/ + @JsonProperty("username") + @ApiModelProperty("用户名") + private String username; + /** + * 序列号 + **/ + @JsonProperty("device_id") + @ApiModelProperty("序列号") + private String deviceId; + /** + * 操作详情 + **/ + @JsonProperty("log_desc") + @ApiModelProperty("操作详情") + private String logDesc; + /** + * 操作时间 + **/ + @JsonProperty("operate_time") + @ApiModelProperty("操作时间") + private Date operateTime; + +} + diff --git a/nex-be/src/main/java/com/unisinsight/project/feign/ExternalApiClient.java b/nex-be/src/main/java/com/unisinsight/project/feign/ExternalApiClient.java index f6b6ad5..2b1ad63 100644 --- a/nex-be/src/main/java/com/unisinsight/project/feign/ExternalApiClient.java +++ b/nex-be/src/main/java/com/unisinsight/project/feign/ExternalApiClient.java @@ -87,4 +87,8 @@ public interface ExternalApiClient { @PostMapping("/api/v1/vm/reboot") ApiResponse rebootImage(@RequestBody ImageOperationReq operationReq); + @PostMapping("/api/v1/vm/remove-iso") + ApiResponse removeIso(@RequestBody ImageOperationReq operationReq); + @PostMapping("/api/v1/vm/attach-iso") + ApiResponse attachIso(@RequestBody ImageOperationIsoReq operationReq); } diff --git a/nex-be/src/main/java/com/unisinsight/project/mapper/OperateLogMapper.java b/nex-be/src/main/java/com/unisinsight/project/mapper/OperateLogMapper.java new file mode 100644 index 0000000..947b03e --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/mapper/OperateLogMapper.java @@ -0,0 +1,18 @@ +package com.unisinsight.project.mapper; + +import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import com.unisinsight.project.entity.dao.OperateLog; + +/** + * (OperateLog)表数据库访问层 + * + * @author ch + * @since 2025-09-03 10:51:43 + */ +public interface OperateLogMapper extends BaseMapper { + +} + diff --git a/nex-be/src/main/java/com/unisinsight/project/service/ImageVirtualMachinesService.java b/nex-be/src/main/java/com/unisinsight/project/service/ImageVirtualMachinesService.java index 4d9da9a..8767b0b 100644 --- a/nex-be/src/main/java/com/unisinsight/project/service/ImageVirtualMachinesService.java +++ b/nex-be/src/main/java/com/unisinsight/project/service/ImageVirtualMachinesService.java @@ -3,6 +3,7 @@ package com.unisinsight.project.service; import com.baomidou.mybatisplus.extension.service.IService; import com.unisinsight.project.entity.dao.ImageVirtualMachines; import com.unisinsight.project.entity.req.DeleteIdReq; +import com.unisinsight.project.entity.req.ImageDesktopReq; import com.unisinsight.project.entity.req.ImageVirtualMachinesReq; import com.unisinsight.project.entity.res.ImageVirtualMachinesRes; import com.unisinsight.project.entity.res.PageResult; @@ -55,7 +56,10 @@ public interface ImageVirtualMachinesService extends IService reboot(ImageVirtualMachinesReq req); - + + Result removeIso(ImageVirtualMachinesReq req); + + Result attachIso(ImageVirtualMachinesReq req); } diff --git a/nex-be/src/main/java/com/unisinsight/project/service/OperateLogService.java b/nex-be/src/main/java/com/unisinsight/project/service/OperateLogService.java new file mode 100644 index 0000000..4af9d4d --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/service/OperateLogService.java @@ -0,0 +1,31 @@ +package com.unisinsight.project.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.unisinsight.project.entity.dao.OperateLog; +import com.unisinsight.project.entity.req.DeleteIdReq; +import com.unisinsight.project.entity.req.OperateLogReq; +import com.unisinsight.project.entity.res.OperateLogRes; +import com.unisinsight.project.entity.res.PageResult; +import com.unisinsight.project.exception.Result; + +/** + * (OperateLog)表服务接口 + * + * @author ch + * @since 2025-09-03 10:51:44 + */ +public interface OperateLogService extends IService { + Result> selectPage(OperateLogReq operateLogReq); + + Result insert(OperateLogReq operateLogReq); + + Result update(OperateLogReq operateLogReq); + + Result query(OperateLogReq operateLogReq); + + Result delete(DeleteIdReq deleteIdReq); + + +} + diff --git a/nex-be/src/main/java/com/unisinsight/project/service/StoragePoolService.java b/nex-be/src/main/java/com/unisinsight/project/service/StoragePoolService.java index fb65a41..756b1f0 100644 --- a/nex-be/src/main/java/com/unisinsight/project/service/StoragePoolService.java +++ b/nex-be/src/main/java/com/unisinsight/project/service/StoragePoolService.java @@ -1,6 +1,7 @@ package com.unisinsight.project.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; import com.unisinsight.project.entity.dao.StoragePool; import com.unisinsight.project.entity.req.StoragePoolReq; import com.unisinsight.project.entity.res.PageResult; @@ -9,7 +10,7 @@ import com.unisinsight.project.entity.res.StoragePoolRes; /** * 存储池服务接口 */ -public interface StoragePoolService { +public interface StoragePoolService extends IService { /** * 新增存储池 diff --git a/nex-be/src/main/java/com/unisinsight/project/service/impl/ImageVirtualMachinesServiceImpl.java b/nex-be/src/main/java/com/unisinsight/project/service/impl/ImageVirtualMachinesServiceImpl.java index e849f66..ab8d684 100644 --- a/nex-be/src/main/java/com/unisinsight/project/service/impl/ImageVirtualMachinesServiceImpl.java +++ b/nex-be/src/main/java/com/unisinsight/project/service/impl/ImageVirtualMachinesServiceImpl.java @@ -8,10 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.unisinsight.project.entity.dao.Image; -import com.unisinsight.project.entity.dao.ImageDesktop; -import com.unisinsight.project.entity.dao.ImageTool; -import com.unisinsight.project.entity.dao.ImageVirtualMachines; +import com.unisinsight.project.entity.dao.*; import com.unisinsight.project.entity.dto.ApiResponse; import com.unisinsight.project.entity.dto.VmInfoDTO; import com.unisinsight.project.entity.req.*; @@ -23,10 +20,7 @@ import com.unisinsight.project.exception.Result; import com.unisinsight.project.feign.ExternalApiClient; import com.unisinsight.project.feign.ExternalTorrentClient; import com.unisinsight.project.mapper.ImageVirtualMachinesMapper; -import com.unisinsight.project.service.ImageDesktopService; -import com.unisinsight.project.service.ImageService; -import com.unisinsight.project.service.ImageToolService; -import com.unisinsight.project.service.ImageVirtualMachinesService; +import com.unisinsight.project.service.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -59,6 +53,8 @@ public class ImageVirtualMachinesServiceImpl extends ServiceImpl cloneTemplate(ImageVirtualMachinesReq req) { // 查询虚拟机信息 LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(ImageVirtualMachines::getImageName, req.getImageName()); + queryWrapper.eq(ImageVirtualMachines::getId, req.getId()); ImageVirtualMachines imageVirtualMachines = getOne(queryWrapper); if (ObjectUtils.isEmpty(imageVirtualMachines)) { log.info("查询镜像虚拟机返回为空"); @@ -271,7 +267,7 @@ public class ImageVirtualMachinesServiceImpl extends ServiceImpl vmInfoResponse = externalApiClient.getVmInfo(req.getImageName()); + ApiResponse vmInfoResponse = externalApiClient.getVmInfo(imageVirtualMachines.getImageName()); if (vmInfoResponse == null || !"200".equals(vmInfoResponse.getCode()) || vmInfoResponse.getData() == null) { log.error("获取虚拟机信息失败: {}", vmInfoResponse); return Result.errorResult(BaseErrorCode.HTTP_REQUEST_FAILURE, "获取虚拟机信息失败"); @@ -282,10 +278,13 @@ public class ImageVirtualMachinesServiceImpl extends ServiceImpl removeIso(ImageVirtualMachinesReq req) { + ImageOperationReq operationReq = ImageOperationReq.builder().vmName(req.getImageName()).build(); + ApiResponse apiResponse = externalApiClient.removeIso(operationReq); + if (apiResponse == null || !"200".equals(apiResponse.getCode())) { + return Result.errorResult(BaseErrorCode.HTTP_REQUEST_FAILURE, "删除虚拟机ISO失败"); + } + return Result.successResult(); + } + + @Override + public Result attachIso(ImageVirtualMachinesReq req) { + //查询驱动信息 + LambdaQueryWrapper imageToolLambdaQueryWrapper = new LambdaQueryWrapper<>(); + imageToolLambdaQueryWrapper.eq(ImageTool::getFileName, req.getImageToolName()); + ImageTool imageTool = imageToolService.getOne(imageToolLambdaQueryWrapper); + if (imageTool == null) { + return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500, "驱动不存在"); + } + ImageOperationIsoReq operationIsoReq = ImageOperationIsoReq.builder() + .vmName(req.getImageName()) + .isoPath(imageTool.getStorePath()) + .build(); + + ApiResponse apiResponse = externalApiClient.attachIso(operationIsoReq); + if (apiResponse == null || !"200".equals(apiResponse.getCode())) { + return Result.errorResult(BaseErrorCode.HTTP_REQUEST_FAILURE, "删除虚拟机ISO失败"); + } + return Result.successResult(); + } + } diff --git a/nex-be/src/main/java/com/unisinsight/project/service/impl/OperateLogServiceImpl.java b/nex-be/src/main/java/com/unisinsight/project/service/impl/OperateLogServiceImpl.java new file mode 100644 index 0000000..01bb223 --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/service/impl/OperateLogServiceImpl.java @@ -0,0 +1,108 @@ +package com.unisinsight.project.service.impl; + +import org.springframework.stereotype.Service; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.unisinsight.project.entity.dao.OperateLog; +import com.unisinsight.project.entity.req.DeleteIdReq; +import com.unisinsight.project.entity.req.OperateLogReq; +import com.unisinsight.project.entity.res.OperateLogRes; +import com.unisinsight.project.entity.res.PageResult; +import com.unisinsight.project.exception.BaseErrorCode; +import com.unisinsight.project.exception.Result; +import com.unisinsight.project.mapper.OperateLogMapper; +import com.unisinsight.project.service.OperateLogService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Slf4j +/** + * (OperateLog)表服务实现类 + * + * @author ch + * @since 2025-09-03 10:51:44 + */ +@Service("operateLogService") +public class OperateLogServiceImpl extends ServiceImpl implements OperateLogService { + @Resource + private OperateLogMapper mapper; + + @Override + public Result> selectPage(OperateLogReq operateLogReq) { + Page page = new Page<>(operateLogReq.getPageNum(), operateLogReq.getPageSize()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.orderByAsc(OperateLog::getId); + Page operateLogPage = mapper.selectPage(page, queryWrapper); + log.info("分页查询返回:{}", JSONUtil.toJsonStr(operateLogPage)); + if (CollectionUtil.isEmpty(operateLogPage.getRecords())) { + log.info("分页查询返回为空"); + return Result.successResult(); + } else { + PageResult convert = PageResult.convertIPage(operateLogPage, OperateLogRes.class); + List data = convert.getData(); + convert.setData(data); + return Result.successResult(convert); + } + } + + @Override + public Result insert(OperateLogReq operateLogReq) { + OperateLog operateLog = BeanUtil.copyProperties(operateLogReq, OperateLog.class); + int insert = mapper.insert(operateLog); + log.info("新增insert:{}", insert); + + if (insert == 1) { + return Result.successResult(); + } else { + return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500); + } + } + + @Override + public Result update(OperateLogReq operateLogReq) { + OperateLog operateLog = BeanUtil.copyProperties(operateLogReq, OperateLog.class); + int updated = mapper.updateById(operateLog); + log.info("修改updated:{}", updated); + if (updated == 1) { + return Result.successResult(); + } else { + return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500); + } + } + + @Override + public Result query(OperateLogReq operateLogReq) { + OperateLog operateLog = mapper.selectById(operateLogReq.getId()); + + if (ObjectUtils.isEmpty(operateLog)) { + log.info("查询返回为空"); + return Result.successResult(); + } + OperateLogRes res = BeanUtil.copyProperties(operateLog, OperateLogRes.class); + log.info("查询返回:{}", JSONUtil.toJsonStr(res)); + return Result.successResult(res); + } + + @Override + public Result delete(DeleteIdReq deleteIdReq) { + int deleted = mapper.deleteById(deleteIdReq.getId()); + log.info("删除insert:{}", deleted); + if (deleted == 1) { + return Result.successResult(); + } else { + return Result.errorResult(BaseErrorCode.HTTP_ERROR_CODE_500); + } + } + +} + diff --git a/nex-be/src/main/resources/mapper/OperateLogMaper.xml b/nex-be/src/main/resources/mapper/OperateLogMaper.xml new file mode 100644 index 0000000..79868e0 --- /dev/null +++ b/nex-be/src/main/resources/mapper/OperateLogMaper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + id, username, device_id, + log_desc, operate_time + + + + +