diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/aop/BusinessLogRecordAop.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/aop/BusinessLogRecordAop.java index 539b9ae7e..82c52c4ee 100644 --- a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/aop/BusinessLogRecordAop.java +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/aop/BusinessLogRecordAop.java @@ -32,7 +32,6 @@ import cn.stylefeng.roses.kernel.log.business.entity.SysLogBusiness; import cn.stylefeng.roses.kernel.log.business.service.SysLogBusinessService; import cn.stylefeng.roses.kernel.rule.annotation.BizLog; import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; @@ -116,9 +115,6 @@ public class BusinessLogRecordAop implements Ordered { // 设置业务日志的类型编码 sysLogBusiness.setLogTypeCode(bizLog.logTypeCode()); - // 设置调用链id - sysLogBusiness.setTraceId(IdWorker.getId()); - // 设置请求的URL String servletPath = HttpServletUtil.getRequest().getServletPath(); sysLogBusiness.setRequestUrl(servletPath); diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/controller/SysLogBusinessContentController.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/controller/SysLogBusinessContentController.java new file mode 100644 index 000000000..fc4c1e7c2 --- /dev/null +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/controller/SysLogBusinessContentController.java @@ -0,0 +1,39 @@ +package cn.stylefeng.roses.kernel.log.business.controller; + +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.log.business.entity.SysLogBusinessContent; +import cn.stylefeng.roses.kernel.log.business.pojo.request.SysLogBusinessContentRequest; +import cn.stylefeng.roses.kernel.log.business.service.SysLogBusinessContentService; +import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; +import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; +import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 业务日志详情记录控制器 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ +@RestController +@ApiResource(name = "业务日志详情记录控制器") +public class SysLogBusinessContentController { + + @Resource + private SysLogBusinessContentService sysLogBusinessContentService; + + /** + * 分页获取业务日志详情 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + @GetResource(name = "分页获取业务日志详情", path = "/sysLogBusinessContent/page") + public ResponseData> page(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + return new SuccessResponseData<>(sysLogBusinessContentService.findPage(sysLogBusinessContentRequest)); + } + +} diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/controller/SysLogBusinessController.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/controller/SysLogBusinessController.java index df8f098ab..b857f418b 100644 --- a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/controller/SysLogBusinessController.java +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/controller/SysLogBusinessController.java @@ -8,15 +8,19 @@ import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; +import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; /** * 业务日志记录控制器 * * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ @RestController @ApiResource(name = "业务日志记录") @@ -26,12 +30,70 @@ public class SysLogBusinessController { private SysLogBusinessService sysLogBusinessService; /** - * 查询业务日志列表(带分页) + * 添加 * * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ - @GetResource(name = "查询业务日志列表(带分页)", path = "/sysLogBusiness/page") + @PostResource(name = "添加", path = "/sysLogBusiness/add") + public ResponseData add(@RequestBody @Validated(SysLogBusinessRequest.add.class) SysLogBusinessRequest sysLogBusinessRequest) { + sysLogBusinessService.add(sysLogBusinessRequest); + return new SuccessResponseData<>(); + } + + /** + * 删除 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + @PostResource(name = "删除", path = "/sysLogBusiness/delete") + public ResponseData delete(@RequestBody @Validated(SysLogBusinessRequest.delete.class) SysLogBusinessRequest sysLogBusinessRequest) { + sysLogBusinessService.del(sysLogBusinessRequest); + return new SuccessResponseData<>(); + } + + /** + * 编辑 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + @PostResource(name = "编辑", path = "/sysLogBusiness/edit") + public ResponseData edit(@RequestBody @Validated(SysLogBusinessRequest.edit.class) SysLogBusinessRequest sysLogBusinessRequest) { + sysLogBusinessService.edit(sysLogBusinessRequest); + return new SuccessResponseData<>(); + } + + /** + * 查看详情 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + @GetResource(name = "查看详情", path = "/sysLogBusiness/detail") + public ResponseData detail(@Validated(SysLogBusinessRequest.detail.class) SysLogBusinessRequest sysLogBusinessRequest) { + return new SuccessResponseData<>(sysLogBusinessService.detail(sysLogBusinessRequest)); + } + + /** + * 获取列表 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + @GetResource(name = "获取列表", path = "/sysLogBusiness/list") + public ResponseData> list(SysLogBusinessRequest sysLogBusinessRequest) { + return new SuccessResponseData<>(sysLogBusinessService.findList(sysLogBusinessRequest)); + } + + /** + * 获取列表(带分页) + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + @GetResource(name = "分页查询", path = "/sysLogBusiness/page") public ResponseData> page(SysLogBusinessRequest sysLogBusinessRequest) { return new SuccessResponseData<>(sysLogBusinessService.findPage(sysLogBusinessRequest)); } diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/entity/SysLogBusiness.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/entity/SysLogBusiness.java index e727a303c..8f526af1c 100644 --- a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/entity/SysLogBusiness.java +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/entity/SysLogBusiness.java @@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode; * 业务日志记录实例类 * * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ @TableName("sys_log_business") @Data @@ -41,20 +41,6 @@ public class SysLogBusiness extends BaseEntity { @ChineseDescription("日志的标题,摘要信息") private String logTitle; - /** - * 日志记录的内容 - */ - @TableField("log_content") - @ChineseDescription("日志记录的内容") - private String logContent; - - /** - * 调用链唯一id,一个id代表一次接口调用 - */ - @TableField("trace_id") - @ChineseDescription("调用链唯一id,一个id代表一次接口调用") - private Long traceId; - /** * 当前用户请求的url */ diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/entity/SysLogBusinessContent.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/entity/SysLogBusinessContent.java new file mode 100644 index 000000000..2cc33d458 --- /dev/null +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/entity/SysLogBusinessContent.java @@ -0,0 +1,44 @@ +package cn.stylefeng.roses.kernel.log.business.entity; + +import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 业务日志记录实例类 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ +@TableName("sys_log_business_content") +@Data +@EqualsAndHashCode(callSuper = true) +public class SysLogBusinessContent extends BaseEntity { + + /** + * 主键 + */ + @TableId(value = "content_id", type = IdType.ASSIGN_ID) + @ChineseDescription("主键") + private Long contentId; + + /** + * 对应主表主键id + */ + @TableField("business_log_id") + @ChineseDescription("对应主表主键id") + private Long businessLogId; + + /** + * 日志记录的内容 + */ + @TableField("log_content") + @ChineseDescription("日志记录的内容") + private String logContent; + +} diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/enums/SysLogBusinessContentExceptionEnum.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/enums/SysLogBusinessContentExceptionEnum.java new file mode 100644 index 000000000..391fdf4de --- /dev/null +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/enums/SysLogBusinessContentExceptionEnum.java @@ -0,0 +1,36 @@ +package cn.stylefeng.roses.kernel.log.business.enums; + +import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; +import cn.stylefeng.roses.kernel.rule.exception.AbstractExceptionEnum; +import lombok.Getter; + +/** + * 业务日志记录异常相关枚举 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ +@Getter +public enum SysLogBusinessContentExceptionEnum implements AbstractExceptionEnum { + + /** + * 查询结果不存在 + */ + SYS_LOG_BUSINESS_CONTENT_NOT_EXISTED(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10001", "查询结果不存在"); + + /** + * 错误编码 + */ + private final String errorCode; + + /** + * 提示用户信息 + */ + private final String userTip; + + SysLogBusinessContentExceptionEnum(String errorCode, String userTip) { + this.errorCode = errorCode; + this.userTip = userTip; + } + +} \ No newline at end of file diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/enums/SysLogBusinessExceptionEnum.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/enums/SysLogBusinessExceptionEnum.java index 2e2b4897d..80f96cf83 100644 --- a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/enums/SysLogBusinessExceptionEnum.java +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/enums/SysLogBusinessExceptionEnum.java @@ -8,7 +8,7 @@ import lombok.Getter; * 业务日志记录异常相关枚举 * * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ @Getter public enum SysLogBusinessExceptionEnum implements AbstractExceptionEnum { diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/SysLogBusinessContentMapper.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/SysLogBusinessContentMapper.java new file mode 100644 index 000000000..3a6e916ed --- /dev/null +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/SysLogBusinessContentMapper.java @@ -0,0 +1,14 @@ +package cn.stylefeng.roses.kernel.log.business.mapper; + +import cn.stylefeng.roses.kernel.db.mp.injector.CustomBaseMapper; +import cn.stylefeng.roses.kernel.log.business.entity.SysLogBusinessContent; + +/** + * 业务日志记录 Mapper 接口 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ +public interface SysLogBusinessContentMapper extends CustomBaseMapper { + +} \ No newline at end of file diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/SysLogBusinessMapper.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/SysLogBusinessMapper.java index 5e6300e5d..0da89fd92 100644 --- a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/SysLogBusinessMapper.java +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/SysLogBusinessMapper.java @@ -1,14 +1,14 @@ package cn.stylefeng.roses.kernel.log.business.mapper; -import cn.stylefeng.roses.kernel.db.mp.injector.CustomBaseMapper; import cn.stylefeng.roses.kernel.log.business.entity.SysLogBusiness; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * 业务日志记录 Mapper 接口 * * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ -public interface SysLogBusinessMapper extends CustomBaseMapper { +public interface SysLogBusinessMapper extends BaseMapper { } \ No newline at end of file diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/mapping/SysLogBusinessContentMapper.xml b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/mapping/SysLogBusinessContentMapper.xml new file mode 100644 index 000000000..9c0b758fb --- /dev/null +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/mapper/mapping/SysLogBusinessContentMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/pojo/request/SysLogBusinessContentRequest.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/pojo/request/SysLogBusinessContentRequest.java new file mode 100644 index 000000000..2895b3edb --- /dev/null +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/pojo/request/SysLogBusinessContentRequest.java @@ -0,0 +1,39 @@ +package cn.stylefeng.roses.kernel.log.business.pojo.request; + +import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +/** + * 业务日志记录封装类 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class SysLogBusinessContentRequest extends BaseRequest { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = {edit.class, delete.class}) + @ChineseDescription("主键") + private Long contentId; + + /** + * 对应主表主键id + */ + @ChineseDescription("对应主表主键id") + private Long businessLogId; + + /** + * 日志记录的内容 + */ + @ChineseDescription("日志记录的内容") + private String logContent; + +} diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/pojo/request/SysLogBusinessRequest.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/pojo/request/SysLogBusinessRequest.java index 7554945bc..485e6e838 100644 --- a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/pojo/request/SysLogBusinessRequest.java +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/pojo/request/SysLogBusinessRequest.java @@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull; * 业务日志记录封装类 * * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ @EqualsAndHashCode(callSuper = true) @Data @@ -36,18 +36,6 @@ public class SysLogBusinessRequest extends BaseRequest { @ChineseDescription("日志的标题,摘要信息") private String logTitle; - /** - * 日志记录的内容 - */ - @ChineseDescription("日志记录的内容") - private String logContent; - - /** - * 调用链唯一id,一个id代表一次接口调用 - */ - @ChineseDescription("调用链唯一id,一个id代表一次接口调用") - private Long traceId; - /** * 当前用户请求的url */ diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/SysLogBusinessContentService.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/SysLogBusinessContentService.java new file mode 100644 index 000000000..5141bfcf9 --- /dev/null +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/SysLogBusinessContentService.java @@ -0,0 +1,82 @@ +package cn.stylefeng.roses.kernel.log.business.service; + +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.log.business.entity.SysLogBusinessContent; +import cn.stylefeng.roses.kernel.log.business.pojo.request.SysLogBusinessContentRequest; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * 业务日志记录 服务类 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ +public interface SysLogBusinessContentService extends IService { + + /** + * 新增 + * + * @param sysLogBusinessContentRequest 请求参数 + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + void add(SysLogBusinessContentRequest sysLogBusinessContentRequest); + + /** + * 删除 + * + * @param sysLogBusinessContentRequest 请求参数 + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + void del(SysLogBusinessContentRequest sysLogBusinessContentRequest); + + /** + * 编辑 + * + * @param sysLogBusinessContentRequest 请求参数 + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + void edit(SysLogBusinessContentRequest sysLogBusinessContentRequest); + + /** + * 查询详情 + * + * @param sysLogBusinessContentRequest 请求参数 + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + SysLogBusinessContent detail(SysLogBusinessContentRequest sysLogBusinessContentRequest); + + /** + * 获取列表 + * + * @param sysLogBusinessContentRequest 请求参数 + * @return List 返回结果 + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + List findList(SysLogBusinessContentRequest sysLogBusinessContentRequest); + + /** + * 获取列表(带分页) + * + * @param sysLogBusinessContentRequest 请求参数 + * @return PageResult 返回结果 + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + PageResult findPage(SysLogBusinessContentRequest sysLogBusinessContentRequest); + + /** + * 批量保存业务日志详情 + * + * @author fengshuonan + * @since 2023/7/21 19:07 + */ + void batchSaveContent(List sysLogBusinessContentList); + +} \ No newline at end of file diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/SysLogBusinessService.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/SysLogBusinessService.java index cfb1b46d9..b8c843d95 100644 --- a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/SysLogBusinessService.java +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/SysLogBusinessService.java @@ -11,63 +11,63 @@ import java.util.List; * 业务日志记录 服务类 * * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ public interface SysLogBusinessService extends IService { - /** + /** * 新增 * * @param sysLogBusinessRequest 请求参数 * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ void add(SysLogBusinessRequest sysLogBusinessRequest); - /** + /** * 删除 * * @param sysLogBusinessRequest 请求参数 * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ void del(SysLogBusinessRequest sysLogBusinessRequest); - /** + /** * 编辑 * * @param sysLogBusinessRequest 请求参数 * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ void edit(SysLogBusinessRequest sysLogBusinessRequest); - /** + /** * 查询详情 * * @param sysLogBusinessRequest 请求参数 * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ SysLogBusiness detail(SysLogBusinessRequest sysLogBusinessRequest); - /** + /** * 获取列表 * - * @param sysLogBusinessRequest 请求参数 + * @param sysLogBusinessRequest 请求参数 * @return List 返回结果 * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ List findList(SysLogBusinessRequest sysLogBusinessRequest); - /** + /** * 获取列表(带分页) * - * @param sysLogBusinessRequest 请求参数 + * @param sysLogBusinessRequest 请求参数 * @return PageResult 返回结果 * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ PageResult findPage(SysLogBusinessRequest sysLogBusinessRequest); diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/impl/SysLogBusinessContentServiceImpl.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/impl/SysLogBusinessContentServiceImpl.java new file mode 100644 index 000000000..79d60595a --- /dev/null +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/impl/SysLogBusinessContentServiceImpl.java @@ -0,0 +1,108 @@ +package cn.stylefeng.roses.kernel.log.business.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; +import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; +import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; +import cn.stylefeng.roses.kernel.log.business.entity.SysLogBusinessContent; +import cn.stylefeng.roses.kernel.log.business.enums.SysLogBusinessContentExceptionEnum; +import cn.stylefeng.roses.kernel.log.business.mapper.SysLogBusinessContentMapper; +import cn.stylefeng.roses.kernel.log.business.pojo.request.SysLogBusinessContentRequest; +import cn.stylefeng.roses.kernel.log.business.service.SysLogBusinessContentService; +import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 业务日志记录业务实现层 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ +@Service +public class SysLogBusinessContentServiceImpl extends ServiceImpl implements + SysLogBusinessContentService { + + @Override + public void add(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + SysLogBusinessContent sysLogBusinessContent = new SysLogBusinessContent(); + BeanUtil.copyProperties(sysLogBusinessContentRequest, sysLogBusinessContent); + this.save(sysLogBusinessContent); + } + + @Override + public void del(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + SysLogBusinessContent sysLogBusinessContent = this.querySysLogBusinessContent(sysLogBusinessContentRequest); + this.removeById(sysLogBusinessContent.getContentId()); + } + + @Override + public void edit(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + SysLogBusinessContent sysLogBusinessContent = this.querySysLogBusinessContent(sysLogBusinessContentRequest); + BeanUtil.copyProperties(sysLogBusinessContentRequest, sysLogBusinessContent); + this.updateById(sysLogBusinessContent); + } + + @Override + public SysLogBusinessContent detail(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + return this.querySysLogBusinessContent(sysLogBusinessContentRequest); + } + + @Override + public PageResult findPage(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + LambdaQueryWrapper wrapper = createWrapper(sysLogBusinessContentRequest); + Page sysRolePage = this.page(PageFactory.defaultPage(), wrapper); + return PageResultFactory.createPageResult(sysRolePage); + } + + @Override + public void batchSaveContent(List sysLogBusinessContentList) { + this.getBaseMapper().insertBatchSomeColumn(sysLogBusinessContentList); + } + + @Override + public List findList(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + LambdaQueryWrapper wrapper = this.createWrapper(sysLogBusinessContentRequest); + return this.list(wrapper); + } + + /** + * 获取信息 + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + private SysLogBusinessContent querySysLogBusinessContent(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + SysLogBusinessContent sysLogBusinessContent = this.getById(sysLogBusinessContentRequest.getContentId()); + if (ObjectUtil.isEmpty(sysLogBusinessContent)) { + throw new ServiceException(SysLogBusinessContentExceptionEnum.SYS_LOG_BUSINESS_CONTENT_NOT_EXISTED); + } + return sysLogBusinessContent; + } + + /** + * 创建查询wrapper + * + * @author fengshuonan + * @date 2023/07/21 19:02 + */ + private LambdaQueryWrapper createWrapper(SysLogBusinessContentRequest sysLogBusinessContentRequest) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + Long contentId = sysLogBusinessContentRequest.getContentId(); + Long businessLogId = sysLogBusinessContentRequest.getBusinessLogId(); + String logContent = sysLogBusinessContentRequest.getLogContent(); + + queryWrapper.eq(ObjectUtil.isNotNull(contentId), SysLogBusinessContent::getContentId, contentId); + queryWrapper.eq(ObjectUtil.isNotNull(businessLogId), SysLogBusinessContent::getBusinessLogId, businessLogId); + queryWrapper.like(ObjectUtil.isNotEmpty(logContent), SysLogBusinessContent::getLogContent, logContent); + + return queryWrapper; + } + +} \ No newline at end of file diff --git a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/impl/SysLogBusinessServiceImpl.java b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/impl/SysLogBusinessServiceImpl.java index f43f1689f..cdf7bee6c 100644 --- a/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/impl/SysLogBusinessServiceImpl.java +++ b/kernel-d-log/log-business/src/main/java/cn/stylefeng/roses/kernel/log/business/service/impl/SysLogBusinessServiceImpl.java @@ -6,9 +6,11 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageFactory; import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.log.business.entity.SysLogBusiness; +import cn.stylefeng.roses.kernel.log.business.entity.SysLogBusinessContent; import cn.stylefeng.roses.kernel.log.business.enums.SysLogBusinessExceptionEnum; import cn.stylefeng.roses.kernel.log.business.mapper.SysLogBusinessMapper; import cn.stylefeng.roses.kernel.log.business.pojo.request.SysLogBusinessRequest; +import cn.stylefeng.roses.kernel.log.business.service.SysLogBusinessContentService; import cn.stylefeng.roses.kernel.log.business.service.SysLogBusinessService; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -16,6 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @@ -23,11 +26,14 @@ import java.util.List; * 业务日志记录业务实现层 * * @author fengshuonan - * @date 2023/07/21 15:00 + * @date 2023/07/21 19:02 */ @Service public class SysLogBusinessServiceImpl extends ServiceImpl implements SysLogBusinessService { + @Resource + private SysLogBusinessContentService sysLogBusinessContentService; + @Override public void add(SysLogBusinessRequest sysLogBusinessRequest) { SysLogBusiness sysLogBusiness = new SysLogBusiness(); @@ -67,15 +73,18 @@ public class SysLogBusinessServiceImpl extends ServiceImpl sysLogBusinesses = new ArrayList<>(); - for (String content : batchContentList) { - SysLogBusiness sysLogBusiness = new SysLogBusiness(); - BeanUtil.copyProperties(context, sysLogBusiness); - sysLogBusiness.setLogContent(content); - sysLogBusinesses.add(sysLogBusiness); - } + // 先保存基础的日志信息 + this.save(context); - this.getBaseMapper().insertBatchSomeColumn(sysLogBusinesses); + // 再保存详细的日志信息 + List sysLogBusinessContentList = new ArrayList<>(); + for (String content : batchContentList) { + SysLogBusinessContent sysLogBusinessContent = new SysLogBusinessContent(); + sysLogBusinessContent.setBusinessLogId(context.getBusinessLogId()); + sysLogBusinessContent.setLogContent(content); + sysLogBusinessContentList.add(sysLogBusinessContent); + } + this.sysLogBusinessContentService.batchSaveContent(sysLogBusinessContentList); } @Override @@ -88,7 +97,7 @@ public class SysLogBusinessServiceImpl extends ServiceImpl { - wrap.like(SysLogBusiness::getLogTitle, searchText).or().like(SysLogBusiness::getLogContent, searchText); + wrap.like(SysLogBusiness::getLogTitle, searchText).or().like(SysLogBusiness::getRequestUrl, searchText); }); }