Răsfoiți Sursa

操作日志

huangjn 3 ani în urmă
părinte
comite
3c7ebd2a1b
18 a modificat fișierele cu 592 adăugiri și 6 ștergeri
  1. 34 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/OperationLogDTO.java
  2. 3 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ContractLog.java
  3. 76 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/OperationLog.java
  4. 22 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ContractLogClient.java
  5. 24 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/OperationLogClient.java
  6. 50 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/OperationLogVO.java
  7. 30 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/SaveContractLogVO.java
  8. 18 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/wrapper/OperationLogWrapper.java
  9. 10 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java
  10. 86 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/OperationLogController.java
  11. 0 1
      blade-service/blade-business/src/main/java/org/springblade/business/controller/WeatherController.java
  12. 1 5
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ConstructionLedgerFeignController.java
  13. 45 0
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ContractLogClientImpl.java
  14. 68 0
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/OperationLogClientImpl.java
  15. 33 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/OperationLogMapper.java
  16. 24 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/OperationLogMapper.xml
  17. 32 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/IOperationLogService.java
  18. 36 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/OperationLogServiceImpl.java

+ 34 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/OperationLogDTO.java

@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.business.dto;
+
+import org.springblade.business.entity.OperationLog;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2022-07-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OperationLogDTO extends OperationLog {
+	private static final long serialVersionUID = 1L;
+
+}

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ContractLog.java

@@ -74,6 +74,7 @@ public class ContractLog extends BaseEntity {
 
     @ApiModelProperty("工程部位")
     private String projectPart;
+
     /**
      * 数据ID
      */
@@ -82,5 +83,7 @@ public class ContractLog extends BaseEntity {
     @ApiModelProperty("填报人姓名")
     private String createUserName;
 
+    @ApiModelProperty("关联工序的ids")
+    private String correlationId;
 
 }

+ 76 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/OperationLog.java

@@ -0,0 +1,76 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.business.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import org.springblade.core.mp.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 实体类
+ *
+ * @author BladeX
+ * @since 2022-07-14
+ */
+@Data
+@TableName("u_operation_log")
+@EqualsAndHashCode(callSuper = true)
+public class OperationLog extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 操作类型
+     */
+    @ApiModelProperty("操作类型")
+    private Integer operationType;
+    /**
+     * 操作模块
+     */
+	@ApiModelProperty("操作模块")
+    private String operationModule;
+    /**
+     * 操作内容
+     */
+	@ApiModelProperty("操作内容")
+    private String operationContent;
+    /**
+     * 操作媒介,PC还是APP
+     */
+	@ApiModelProperty("操作媒介,PC还是APP")
+    private String operationMedium;
+    /**
+     * 操作账户
+     */
+	@ApiModelProperty("操作账户")
+    private String operationAccount;
+    /**
+     * 删除类型则是被删除数据的主键,废除类型则是被废除任务的主键
+     */
+	@ApiModelProperty("删除类型则是被删除数据的主键,废除类型则是被废除任务的主键")
+    private String businessId;
+
+	@ApiModelProperty("操作人")
+    private String createUserName;
+
+
+}

+ 22 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ContractLogClient.java

@@ -0,0 +1,22 @@
+package org.springblade.business.feign;
+
+import org.springblade.business.vo.SaveContractLogVO;
+import org.springblade.common.constant.BusinessConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+@FeignClient(value =
+        BusinessConstant.APPLICATION_WEATHER_NAME
+)
+public interface ContractLogClient {
+
+    String API_PREFIX = "/contractLog";
+
+    /**
+     * 保存日志信息
+     */
+    @PostMapping(API_PREFIX + "/saveContractLog")
+    void saveContractLog(@RequestBody SaveContractLogVO saveContractLogVO);
+
+}

+ 24 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/OperationLogClient.java

@@ -0,0 +1,24 @@
+package org.springblade.business.feign;
+
+import org.springblade.common.constant.BusinessConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(value =
+        BusinessConstant.APPLICATION_WEATHER_NAME
+)
+public interface OperationLogClient {
+
+    String API_PREFIX = "/operationLog";
+
+    /**
+     * 保存操作日志
+     * @param type 操作类型,详见业务字典中操作类型
+     * @param operationObjId 操作的业务对象ID
+     */
+    @PostMapping(API_PREFIX + "/saveUserOperationLog")
+    void saveUserOperationLog(@RequestBody Integer type, @RequestParam String operationModule, @RequestParam Object operationObjId);
+
+}

+ 50 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/OperationLogVO.java

@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import org.springblade.business.entity.OperationLog;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 视图实体类
+ *
+ * @author BladeX
+ * @since 2022-07-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OperationLogVO extends OperationLog {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 操作类型
+	 */
+	@ApiModelProperty("操作类型")
+	private String operationTypeValue;
+
+	@ApiModelProperty("输入框查询")
+	private String queryValue;
+
+	@ApiModelProperty("开始时间")
+	private String startTime;
+
+	@ApiModelProperty("结束时间")
+	private String endTime;
+
+}

+ 30 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/SaveContractLogVO.java

@@ -0,0 +1,30 @@
+package org.springblade.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SaveContractLogVO {
+
+    @ApiModelProperty("列表数据主键")
+    private Long id;
+
+    @ApiModelProperty("项目ID")
+    private String projectId;
+
+    @ApiModelProperty("合同段ID")
+    private String contractId;
+
+    @ApiModelProperty("日志填报的节点ID(唯一键)")
+    private String wbsNodeId;
+
+    @ApiModelProperty("填报的日志类型")
+    private String wbsNodeType;
+
+    @ApiModelProperty("填报日期,所选的日期")
+    private String recordTime;
+
+    @ApiModelProperty("关联工序的ids")
+    private String correlationId;
+
+}

+ 18 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/wrapper/OperationLogWrapper.java

@@ -0,0 +1,18 @@
+package org.springblade.business.wrapper;
+
+import org.springblade.business.entity.OperationLog;
+import org.springblade.business.vo.OperationLogVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+
+import java.util.Objects;
+
+public class OperationLogWrapper extends BaseEntityWrapper<OperationLog, OperationLogVO> {
+
+    public static OperationLogWrapper build(){return new OperationLogWrapper();}
+
+    @Override
+    public OperationLogVO entityVO(OperationLog entity) {
+        return Objects.requireNonNull(BeanUtil.copy(entity, OperationLogVO.class));
+    }
+}

+ 10 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java

@@ -11,6 +11,7 @@ import lombok.AllArgsConstructor;
 
 import org.apache.commons.lang.StringUtils;
 import org.springblade.business.entity.Task;
+import org.springblade.business.feign.OperationLogClient;
 import org.springblade.business.feign.TaskClient;
 import org.springblade.business.service.IArchiveShowService;
 import org.springblade.business.vo.ArchiveTaskVO;
@@ -51,6 +52,8 @@ public class ArchiveFileController extends BladeController {
 
 	private final TaskClient taskClient;
 
+	private final OperationLogClient operationLogClient;
+
 	/**
 	 * 批量废除
 	 * @param ids 列表主键
@@ -74,6 +77,9 @@ public class ArchiveFileController extends BladeController {
 			// todo ================== 调用撤签
 		}
 
+		//保存操作记录
+		this.operationLogClient.saveUserOperationLog(26, "工程文件", ids);
+
 		return R.data(true);
 	}
 
@@ -91,6 +97,10 @@ public class ArchiveFileController extends BladeController {
 			BeanUtils.copyProperties(archiveTaskVO, taskVO);
 			taskVO.setFormDataId(archiveTaskIds);
 			taskVO.setApprovalType(2);
+
+			//新增操作日志
+			this.operationLogClient.saveUserOperationLog(25, "工程文件", archiveTaskIds);
+
 			//启动流程
 			this.taskClient.startTask(taskVO);
 			//修改状态为待审批

+ 86 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/OperationLogController.java

@@ -0,0 +1,86 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.business.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+
+import org.springblade.business.wrapper.OperationLogWrapper;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.system.entity.DictBiz;
+import org.springblade.system.feign.IDictBizClient;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.business.entity.OperationLog;
+import org.springblade.business.vo.OperationLogVO;
+import org.springblade.business.service.IOperationLogService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+import java.util.List;
+
+/**
+ *  控制器
+ *
+ * @author BladeX
+ * @since 2022-07-14
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/operationLog")
+@Api(value = "操作日志", tags = "操作日志")
+public class OperationLogController extends BladeController {
+
+	private final IOperationLogService operationLogService;
+
+	private final IDictBizClient dictBizClient;
+
+	/**
+	 * 分页 
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "分页", notes = "传入operationLog")
+	public R<IPage<OperationLogVO>> list(OperationLog operationLog, Query query) {
+
+		operationLog.setCreateUser(AuthUtil.getUserId());
+		IPage<OperationLog> pages = operationLogService.page(Condition.getPage(query), Condition.getQueryWrapper(operationLog));
+
+		//获取业务字典
+		List<DictBiz> dictBizList = this.dictBizClient.getList("operation_type", "notRoot").getData();
+
+		IPage<OperationLogVO> voiPage = OperationLogWrapper.build().pageVO(pages);
+		List<OperationLogVO> resultVo = voiPage.getRecords();
+		resultVo.forEach(vo -> {
+			for(DictBiz biz : dictBizList){
+				if(vo.getOperationType() != null && vo.getOperationType().toString().equals(biz.getDictKey())){
+					vo.setOperationTypeValue(biz.getDictValue());
+					break;
+				}
+			}
+		});
+		voiPage.setRecords(resultVo);
+
+		return R.data(voiPage);
+	}
+
+	
+}

+ 0 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/WeatherController.java

@@ -2,7 +2,6 @@ package org.springblade.business.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.*;
-import io.undertow.util.DateUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;

+ 1 - 5
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ConstructionLedgerFeignController.java

@@ -23,10 +23,6 @@ public class ConstructionLedgerFeignController implements ConstructionLedgerFeig
     @Override
     @PostMapping(INIT_URL)
     public boolean initConstructionLedger(@RequestBody ConstructionLedger constructionLedger) {
-        boolean save = iConstructionLedgerService.save(constructionLedger);
-        if (save) {
-            return true;
-        }
-        return false;
+        return iConstructionLedgerService.save(constructionLedger);
     }
 }

+ 45 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ContractLogClientImpl.java

@@ -0,0 +1,45 @@
+package org.springblade.business.feignClient;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
+import org.springblade.business.entity.ContractLog;
+import org.springblade.business.feign.ContractLogClient;
+import org.springblade.business.service.IContractLogService;
+import org.springblade.business.vo.SaveContractLogVO;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+@RestController
+@AllArgsConstructor
+@NonDS
+public class ContractLogClientImpl implements ContractLogClient {
+
+    private final IContractLogService contractLogService;
+
+    @Override
+    public void saveContractLog(SaveContractLogVO saveContractLogVO) {
+        ContractLog contractLog = new ContractLog();
+        //复制数据
+        BeanUtils.copyProperties(saveContractLogVO, contractLog);
+
+        if(contractLog.getId() != null){
+            //主键不为空,说明是修改
+            //修改只修改关联的工序ids
+            if(StringUtils.isNotEmpty(contractLog.getCorrelationId())){
+                this.contractLogService.update(Wrappers.<ContractLog>lambdaUpdate().set(ContractLog::getContractId, contractLog.getCorrelationId()).set(ContractLog::getUpdateUser, AuthUtil.getUserId()).set(ContractLog::getUpdateTime, new Date()).eq(ContractLog::getId, contractLog.getId().toString()));
+            }
+        } else {
+            //新增
+            contractLog.setCreateUser(AuthUtil.getUserId());
+            contractLog.setCreateUserName(AuthUtil.getUserName());
+
+            this.contractLogService.save(contractLog);
+        }
+
+    }
+}

+ 68 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/OperationLogClientImpl.java

@@ -0,0 +1,68 @@
+package org.springblade.business.feignClient;
+
+import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
+import org.springblade.business.entity.OperationLog;
+import org.springblade.business.feign.OperationLogClient;
+import org.springblade.business.service.IOperationLogService;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.system.entity.DictBiz;
+import org.springblade.system.feign.IDictBizClient;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+import java.util.List;
+
+@RestController
+@AllArgsConstructor
+@NonDS
+public class OperationLogClientImpl implements OperationLogClient {
+
+    private final IOperationLogService operationLogService;
+
+    private final IDictBizClient dictBizClient;
+
+    @Override
+    public void saveUserOperationLog(Integer type, String operationModule, Object operationObjId) {
+        try{
+            //获取业务字典
+            List<DictBiz> dictBizList = this.dictBizClient.getList("operation_type", "notRoot").getData();
+            String operationAccount = "";
+            for(DictBiz dictBiz : dictBizList){
+                if(dictBiz.getDictKey().equals(type.toString())){
+                    operationAccount = dictBiz.getDictValue();
+                    break;
+                }
+            }
+
+            //新增数据
+            OperationLog newData = new OperationLog();
+            //操作模块
+            newData.setOperationModule(operationModule);
+            //操作内容
+            newData.setOperationAccount(operationAccount + ";" + operationObjId);
+            //PC 还是 APP
+            newData.setOperationMedium("PC");
+            //业务数据
+            newData.setOperationType(type);
+            if(operationObjId != null && StringUtils.isNotEmpty(operationObjId.toString())){
+                //业务数据ID
+                newData.setBusinessId(operationObjId.toString());
+            }
+            //操作账户
+            newData.setOperationAccount(AuthUtil.getUserName());
+            //操作人姓名
+            newData.setCreateUserName(AuthUtil.getNickName());
+            //操作人ID
+            newData.setCreateUser(AuthUtil.getUserId());
+            //操作时间
+            newData.setCreateTime(new Date());
+            //保存数据
+            this.operationLogService.save(newData);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+}

+ 33 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/OperationLogMapper.java

@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.business.mapper;
+
+import org.springblade.business.entity.OperationLog;
+import org.springblade.business.vo.OperationLogVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ *  Mapper 接口
+ *
+ * @author BladeX
+ * @since 2022-07-14
+ */
+public interface OperationLogMapper extends BaseMapper<OperationLog> {
+
+}

+ 24 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/OperationLogMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.business.mapper.OperationLogMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="operationLogResultMap" type="org.springblade.business.entity.OperationLog">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="operation_type" property="operationType"/>
+        <result column="operation_module" property="operationModule"/>
+        <result column="operation_content" property="operationContent"/>
+        <result column="operation_medium" property="operationMedium"/>
+        <result column="operation_account" property="operationAccount"/>
+        <result column="business_id" property="businessId"/>
+        <result column="create_user_name" property="createUserName"/>
+    </resultMap>
+
+</mapper>

+ 32 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/IOperationLogService.java

@@ -0,0 +1,32 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.business.service;
+
+import org.springblade.business.entity.OperationLog;
+import org.springblade.business.vo.OperationLogVO;
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ *  服务类
+ *
+ * @author BladeX
+ * @since 2022-07-14
+ */
+public interface IOperationLogService extends BaseService<OperationLog> {
+
+}

+ 36 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/OperationLogServiceImpl.java

@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.business.service.impl;
+
+import org.springblade.business.entity.OperationLog;
+import org.springblade.business.vo.OperationLogVO;
+import org.springblade.business.mapper.OperationLogMapper;
+import org.springblade.business.service.IOperationLogService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ *  服务实现类
+ *
+ * @author BladeX
+ * @since 2022-07-14
+ */
+@Service
+public class OperationLogServiceImpl extends BaseServiceImpl<OperationLogMapper, OperationLog> implements IOperationLogService {
+
+}