Procházet zdrojové kódy

update 替换BeanCopyUtil用法使用mapstruct

Yjoioooo před 3 roky
rodič
revize
49a8e2fd8f

+ 25 - 0
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);
+}

+ 2 - 2
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);
     }
 

+ 7 - 4
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);
     }
 

+ 32 - 0
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<RemoteDictDataVo> convertList(List<SysDictDataVo> sysDictDataVos);
+}

+ 23 - 0
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);
+}

+ 25 - 0
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);
+}

+ 32 - 0
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<RemoteTenantVo> convertList(List<SysTenantVo> sysTenantVos);
+}

+ 26 - 0
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);
+}

+ 2 - 2
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<RemoteDictDataVo> selectDictDataByType(String dictType) {
         List<SysDictDataVo> sysDictDataVos = sysDictTypeService.selectDictDataByType(dictType);
-        return BeanCopyUtils.copyList(sysDictDataVos, RemoteDictDataVo.class);
+        return SysDictDataVoConvert.INSTANCE.convertList(sysDictDataVos);
     }
 
 }

+ 4 - 3
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);
     }
 }

+ 3 - 3
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<RemoteTenantVo> queryList() {
         List<SysTenantVo> sysTenantVos = tenantService.queryList(new SysTenantBo());
-        return BeanCopyUtils.copyList(sysTenantVos, RemoteTenantVo.class);
+        return SysTenantVoConvert.INSTANCE.convertList(sysTenantVos);
     }
 
 }

+ 2 - 2
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("当前系统没有开启注册功能");