From 49a8e2fd8f94085a2c339a40669b536ebab2aefe Mon Sep 17 00:00:00 2001 From: Yjoioooo <693337446@qq.com> Date: Wed, 26 Apr 2023 17:11:20 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=9B=BF=E6=8D=A2BeanCopyUtil?= =?UTF-8?q?=E7=94=A8=E6=B3=95=E4=BD=BF=E7=94=A8mapstruct?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/convert/OperLogEventConvert.java | 25 +++++++++++++++ .../common/log/event/LogEventListener.java | 4 +-- .../service/impl/SysOssServiceImpl.java | 11 ++++--- .../domain/convert/SysDictDataVoConvert.java | 32 +++++++++++++++++++ .../convert/SysLogininforBoConvert.java | 23 +++++++++++++ .../domain/convert/SysOperLogBoConvert.java | 25 +++++++++++++++ .../domain/convert/SysTenantVoConvert.java | 32 +++++++++++++++++++ .../domain/convert/SysUserBoConvert.java | 26 +++++++++++++++ .../system/dubbo/RemoteDictServiceImpl.java | 4 +-- .../system/dubbo/RemoteLogServiceImpl.java | 7 ++-- .../system/dubbo/RemoteTenantServiceImpl.java | 6 ++-- .../system/dubbo/RemoteUserServiceImpl.java | 4 +-- 12 files changed, 183 insertions(+), 16 deletions(-) create mode 100644 ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/domain/convert/OperLogEventConvert.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysDictDataVoConvert.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysLogininforBoConvert.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysOperLogBoConvert.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysTenantVoConvert.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysUserBoConvert.java diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/domain/convert/OperLogEventConvert.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/domain/convert/OperLogEventConvert.java new file mode 100644 index 00000000..e3b01efe --- /dev/null +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/domain/convert/OperLogEventConvert.java @@ -0,0 +1,25 @@ +package org.dromara.common.log.domain.convert; + +import org.dromara.common.log.event.OperLogEvent; +import org.dromara.system.api.domain.bo.RemoteOperLogBo; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * 操作日志转换器 + * @author zhujie + */ +@Mapper +public interface OperLogEventConvert { + + OperLogEventConvert INSTANCE = Mappers.getMapper(OperLogEventConvert.class); + + /** + * OperLogEventToRemoteOperLogBo + * @param operLogEvent 待转换对象 + * @return 转换后对象 + */ + @Mapping(target = "params", ignore = true) + RemoteOperLogBo convert(OperLogEvent operLogEvent); +} diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java index 48b09e68..a70adcfb 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java @@ -5,10 +5,10 @@ import cn.hutool.http.useragent.UserAgentUtil; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.constant.Constants; -import org.dromara.common.core.utils.BeanCopyUtils; import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.ip.AddressUtils; +import org.dromara.common.log.domain.convert.OperLogEventConvert; import org.dromara.system.api.RemoteLogService; import org.dromara.system.api.domain.bo.RemoteLogininforBo; import org.dromara.system.api.domain.bo.RemoteOperLogBo; @@ -36,7 +36,7 @@ public class LogEventListener { @Async @EventListener public void saveLog(OperLogEvent operLogEvent) { - RemoteOperLogBo sysOperLog = BeanCopyUtils.copy(operLogEvent, RemoteOperLogBo.class); + RemoteOperLogBo sysOperLog = OperLogEventConvert.INSTANCE.convert(operLogEvent); remoteLogService.saveLog(sysOperLog); } diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssServiceImpl.java index db98dc35..c24ff294 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssServiceImpl.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/service/impl/SysOssServiceImpl.java @@ -7,9 +7,10 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.constant.CacheNames; import org.dromara.common.core.exception.ServiceException; -import org.dromara.common.core.utils.BeanCopyUtils; +import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.file.FileUtils; @@ -24,7 +25,6 @@ import org.dromara.resource.domain.bo.SysOssBo; import org.dromara.resource.domain.vo.SysOssVo; import org.dromara.resource.mapper.SysOssMapper; import org.dromara.resource.service.ISysOssService; -import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.Cacheable; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; @@ -33,7 +33,10 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -138,7 +141,7 @@ public class SysOssServiceImpl implements ISysOssService { oss.setService(storage.getConfigKey()); baseMapper.insert(oss); SysOssVo sysOssVo = new SysOssVo(); - BeanCopyUtils.copy(oss, sysOssVo); + MapstructUtils.convert(oss, sysOssVo); return this.matchingUrl(sysOssVo); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysDictDataVoConvert.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysDictDataVoConvert.java new file mode 100644 index 00000000..4777c87c --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysDictDataVoConvert.java @@ -0,0 +1,32 @@ +package org.dromara.system.domain.convert; + +import org.dromara.system.api.domain.vo.RemoteDictDataVo; +import org.dromara.system.domain.vo.SysDictDataVo; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 字典数据转换器 + * @author zhujie + */ +@Mapper +public interface SysDictDataVoConvert { + + SysDictDataVoConvert INSTANCE = Mappers.getMapper(SysDictDataVoConvert.class); + + /** + * SysDictDataVoToRemoteDictDataVo + * @param sysDictDataVo 待转换对象 + * @return 转换后对象 + */ + RemoteDictDataVo convert(SysDictDataVo sysDictDataVo); + + /** + * SysDictDataVoListToRemoteDictDataVoList + * @param sysDictDataVos 待转换对象 + * @return 转换后对象 + */ + List convertList(List sysDictDataVos); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysLogininforBoConvert.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysLogininforBoConvert.java new file mode 100644 index 00000000..b8cb8b20 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysLogininforBoConvert.java @@ -0,0 +1,23 @@ +package org.dromara.system.domain.convert; + +import org.dromara.system.api.domain.bo.RemoteLogininforBo; +import org.dromara.system.domain.bo.SysLogininforBo; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 登录日志转换器 + * @author zhujie + */ +@Mapper +public interface SysLogininforBoConvert { + + SysLogininforBoConvert INSTANCE = Mappers.getMapper(SysLogininforBoConvert.class); + + /** + * RemoteLogininforBoToSysLogininforBo + * @param remoteLogininforBo 待转换对象 + * @return 转换后对象 + */ + SysLogininforBo convert(RemoteLogininforBo remoteLogininforBo); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysOperLogBoConvert.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysOperLogBoConvert.java new file mode 100644 index 00000000..2678c786 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysOperLogBoConvert.java @@ -0,0 +1,25 @@ +package org.dromara.system.domain.convert; + +import org.dromara.system.api.domain.bo.RemoteOperLogBo; +import org.dromara.system.domain.bo.SysOperLogBo; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * 操作日志转换器 + * @author zhujie + */ +@Mapper +public interface SysOperLogBoConvert { + + SysOperLogBoConvert INSTANCE = Mappers.getMapper(SysOperLogBoConvert.class); + + /** + * RemoteOperLogBoToSysOperLogBo + * @param remoteOperLogBo 待转换对象 + * @return 转换后对象 + */ + @Mapping(target = "businessTypes", ignore = true) + SysOperLogBo convert(RemoteOperLogBo remoteOperLogBo); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysTenantVoConvert.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysTenantVoConvert.java new file mode 100644 index 00000000..f0aa2c14 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysTenantVoConvert.java @@ -0,0 +1,32 @@ +package org.dromara.system.domain.convert; + +import org.dromara.system.api.domain.vo.RemoteTenantVo; +import org.dromara.system.domain.vo.SysTenantVo; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 租户转换器 + * @author zhujie + */ +@Mapper +public interface SysTenantVoConvert { + + SysTenantVoConvert INSTANCE = Mappers.getMapper(SysTenantVoConvert.class); + + /** + * SysTenantVoToRemoteTenantVo + * @param sysTenantVo 待转换对象 + * @return 转换后对象 + */ + RemoteTenantVo convert(SysTenantVo sysTenantVo); + + /** + * SysTenantVoListToRemoteTenantVoList + * @param sysTenantVos 待转换对象 + * @return 转换后对象 + */ + List convertList(List sysTenantVos); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysUserBoConvert.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysUserBoConvert.java new file mode 100644 index 00000000..dc3171c3 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/convert/SysUserBoConvert.java @@ -0,0 +1,26 @@ +package org.dromara.system.domain.convert; + +import org.dromara.system.api.domain.bo.RemoteUserBo; +import org.dromara.system.domain.bo.SysUserBo; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.factory.Mappers; + +/** + * 用户信息转换器 + * @author zhujie + */ +@Mapper +public interface SysUserBoConvert { + + SysUserBoConvert INSTANCE = Mappers.getMapper(SysUserBoConvert.class); + + /** + * RemoteUserBoToSysUserBo + * @param remoteUserBo 待转换对象 + * @return 转换后对象 + */ + @Mapping(target = "roleIds", ignore = true) + @Mapping(target = "postIds", ignore = true) + SysUserBo convert(RemoteUserBo remoteUserBo); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDictServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDictServiceImpl.java index b8a9519d..f12bae71 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDictServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDictServiceImpl.java @@ -2,9 +2,9 @@ package org.dromara.system.dubbo; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboService; -import org.dromara.common.core.utils.BeanCopyUtils; import org.dromara.system.api.RemoteDictService; import org.dromara.system.api.domain.vo.RemoteDictDataVo; +import org.dromara.system.domain.convert.SysDictDataVoConvert; import org.dromara.system.domain.vo.SysDictDataVo; import org.dromara.system.service.ISysDictTypeService; import org.springframework.stereotype.Service; @@ -27,7 +27,7 @@ public class RemoteDictServiceImpl implements RemoteDictService { @Override public List selectDictDataByType(String dictType) { List sysDictDataVos = sysDictTypeService.selectDictDataByType(dictType); - return BeanCopyUtils.copyList(sysDictDataVos, RemoteDictDataVo.class); + return SysDictDataVoConvert.INSTANCE.convertList(sysDictDataVos); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteLogServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteLogServiceImpl.java index 88fa2ab6..49f3a08e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteLogServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteLogServiceImpl.java @@ -2,12 +2,13 @@ package org.dromara.system.dubbo; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboService; -import org.dromara.common.core.utils.BeanCopyUtils; import org.dromara.system.api.RemoteLogService; import org.dromara.system.api.domain.bo.RemoteLogininforBo; import org.dromara.system.api.domain.bo.RemoteOperLogBo; import org.dromara.system.domain.bo.SysLogininforBo; import org.dromara.system.domain.bo.SysOperLogBo; +import org.dromara.system.domain.convert.SysLogininforBoConvert; +import org.dromara.system.domain.convert.SysOperLogBoConvert; import org.dromara.system.service.ISysLogininforService; import org.dromara.system.service.ISysOperLogService; import org.springframework.stereotype.Service; @@ -27,13 +28,13 @@ public class RemoteLogServiceImpl implements RemoteLogService { @Override public void saveLog(RemoteOperLogBo remoteOperLogBo) { - SysOperLogBo sysOperLogBo = BeanCopyUtils.copy(remoteOperLogBo, SysOperLogBo.class); + SysOperLogBo sysOperLogBo = SysOperLogBoConvert.INSTANCE.convert(remoteOperLogBo); operLogService.insertOperlog(sysOperLogBo); } @Override public void saveLogininfor(RemoteLogininforBo remoteLogininforBo) { - SysLogininforBo sysLogininforBo = BeanCopyUtils.copy(remoteLogininforBo, SysLogininforBo.class); + SysLogininforBo sysLogininforBo = SysLogininforBoConvert.INSTANCE.convert(remoteLogininforBo); logininforService.insertLogininfor(sysLogininforBo); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteTenantServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteTenantServiceImpl.java index a054bbf0..2bdaa425 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteTenantServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteTenantServiceImpl.java @@ -2,10 +2,10 @@ package org.dromara.system.dubbo; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboService; -import org.dromara.common.core.utils.BeanCopyUtils; import org.dromara.system.api.RemoteTenantService; import org.dromara.system.api.domain.vo.RemoteTenantVo; import org.dromara.system.domain.bo.SysTenantBo; +import org.dromara.system.domain.convert.SysTenantVoConvert; import org.dromara.system.domain.vo.SysTenantVo; import org.dromara.system.service.ISysTenantService; import org.springframework.stereotype.Service; @@ -28,7 +28,7 @@ public class RemoteTenantServiceImpl implements RemoteTenantService { @Override public RemoteTenantVo queryByTenantId(String tenantId) { SysTenantVo sysTenantVo = tenantService.queryByTenantId(tenantId); - return BeanCopyUtils.copy(sysTenantVo, RemoteTenantVo.class); + return SysTenantVoConvert.INSTANCE.convert(sysTenantVo); } /** @@ -37,7 +37,7 @@ public class RemoteTenantServiceImpl implements RemoteTenantService { @Override public List queryList() { List sysTenantVos = tenantService.queryList(new SysTenantBo()); - return BeanCopyUtils.copyList(sysTenantVos, RemoteTenantVo.class); + return SysTenantVoConvert.INSTANCE.convertList(sysTenantVos); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java index 219e9888..58967d93 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java @@ -8,7 +8,6 @@ import org.apache.dubbo.config.annotation.DubboService; import org.dromara.common.core.enums.UserStatus; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.user.UserException; -import org.dromara.common.core.utils.BeanCopyUtils; import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.domain.bo.RemoteUserBo; import org.dromara.system.api.model.LoginUser; @@ -16,6 +15,7 @@ import org.dromara.system.api.model.RoleDTO; import org.dromara.system.api.model.XcxLoginUser; import org.dromara.system.domain.SysUser; import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.convert.SysUserBoConvert; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.mapper.SysUserMapper; import org.dromara.system.service.ISysConfigService; @@ -106,7 +106,7 @@ public class RemoteUserServiceImpl implements RemoteUserService { @Override public Boolean registerUserInfo(RemoteUserBo remoteUserBo) { - SysUserBo sysUserBo = BeanCopyUtils.copy(remoteUserBo, SysUserBo.class); + SysUserBo sysUserBo = SysUserBoConvert.INSTANCE.convert(remoteUserBo); String username = sysUserBo.getUserName(); if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { throw new ServiceException("当前系统没有开启注册功能");