!292 mapstruct-plus 接入替换 BeanUtil

* add 新增 mapstruct-plus 用于实体类转换 ;
This commit is contained in:
MichelleChung 2023-03-02 14:09:51 +00:00 committed by 疯狂的狮子Li
parent 37794b5738
commit 6e21c64728
69 changed files with 333 additions and 106 deletions

18
pom.xml
View File

@ -35,6 +35,8 @@
<dynamic-ds.version>3.6.1</dynamic-ds.version> <dynamic-ds.version>3.6.1</dynamic-ds.version>
<alibaba-ttl.version>2.14.2</alibaba-ttl.version> <alibaba-ttl.version>2.14.2</alibaba-ttl.version>
<xxl-job.version>2.3.1</xxl-job.version> <xxl-job.version>2.3.1</xxl-job.version>
<mapstruct-plus.version>1.1.6</mapstruct-plus.version>
<mapstruct-plus.lombok.version>0.2.0</mapstruct-plus.lombok.version>
<lombok.version>1.18.24</lombok.version> <lombok.version>1.18.24</lombok.version>
<bouncycastle.version>1.72</bouncycastle.version> <bouncycastle.version>1.72</bouncycastle.version>
@ -294,6 +296,12 @@
<version>${bouncycastle.version}</version> <version>${bouncycastle.version}</version>
</dependency> </dependency>
<dependency>
<groupId>io.github.linpeilie</groupId>
<artifactId>mapstruct-plus-spring-boot-starter</artifactId>
<version>${mapstruct-plus.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId> <artifactId>ruoyi-system</artifactId>
@ -355,6 +363,16 @@
<artifactId>spring-boot-configuration-processor</artifactId> <artifactId>spring-boot-configuration-processor</artifactId>
<version>${spring-boot.version}</version> <version>${spring-boot.version}</version>
</path> </path>
<path>
<groupId>io.github.linpeilie</groupId>
<artifactId>mapstruct-plus-processor</artifactId>
<version>${mapstruct-plus.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>${mapstruct-plus.lombok.version}</version>
</path>
</annotationProcessorPaths> </annotationProcessorPaths>
<compilerArgs> <compilerArgs>
<arg>-parameters</arg> <arg>-parameters</arg>

View File

@ -1,12 +1,12 @@
package com.ruoyi.web.controller; package com.ruoyi.web.controller;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginBody; import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.domain.model.SmsLoginBody; import com.ruoyi.common.core.domain.model.SmsLoginBody;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.common.tenant.helper.TenantHelper; import com.ruoyi.common.tenant.helper.TenantHelper;
@ -119,7 +119,7 @@ public class SysLoginController {
@GetMapping("/tenant/list") @GetMapping("/tenant/list")
public R<List<TenantListVo>> tenantList(HttpServletRequest request) throws Exception { public R<List<TenantListVo>> tenantList(HttpServletRequest request) throws Exception {
List<SysTenantVo> tenantList = tenantService.queryList(new SysTenantBo()); List<SysTenantVo> tenantList = tenantService.queryList(new SysTenantBo());
List<TenantListVo> voList = BeanUtil.copyToList(tenantList, TenantListVo.class); List<TenantListVo> voList = MapstructUtils.convert(tenantList, TenantListVo.class);
// 获取域名 // 获取域名
String host = new URL(request.getRequestURL().toString()).getHost(); String host = new URL(request.getRequestURL().toString()).getHost();
// 根据域名进行筛选 // 根据域名进行筛选

View File

@ -1,5 +1,7 @@
package com.ruoyi.web.domain.vo; package com.ruoyi.web.domain.vo;
import com.ruoyi.system.domain.vo.SysTenantVo;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
/** /**
@ -8,6 +10,7 @@ import lombok.Data;
* @author Lion Li * @author Lion Li
*/ */
@Data @Data
@AutoMapper(target = SysTenantVo.class)
public class TenantListVo { public class TenantListVo {
private String tenantId; private String tenantId;

View File

@ -3,7 +3,6 @@ package com.ruoyi.web.service;
import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.secure.BCrypt;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.Constants;
@ -267,7 +266,7 @@ public class SysLoginService {
loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId())); loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId()));
loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId())); loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId()));
loginUser.setDeptName(ObjectUtil.isNull(user.getDept()) ? "" : user.getDept().getDeptName()); loginUser.setDeptName(ObjectUtil.isNull(user.getDept()) ? "" : user.getDept().getDeptName());
List<RoleDTO> roles = BeanUtil.copyToList(user.getRoles(), RoleDTO.class); List<RoleDTO> roles = MapstructUtils.convert(user.getRoles(), RoleDTO.class);
loginUser.setRoles(roles); loginUser.setRoles(roles);
return loginUser; return loginUser;
} }

View File

@ -85,6 +85,11 @@
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency>
<groupId>io.github.linpeilie</groupId>
<artifactId>mapstruct-plus-spring-boot-starter</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -0,0 +1,92 @@
package com.ruoyi.common.core.utils;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import io.github.linpeilie.Converter;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
/**
* Mapstruct 工具类
* <p>参考文档<a href="https://mapstruct.plus/guide/quick-start">mapstruct-plus</a></p>
*
* @author Michelle.Chung
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class MapstructUtils {
private final static Converter CONVERTER = SpringUtils.getBean(Converter.class);
/**
* T 类型对象转换为 desc 类型的对象并返回
*
* @param source 数据来源实体
* @param desc 描述对象 转换后的对象
* @return desc
*/
public static <T, V> V convert(T source, Class<V> desc) {
if (ObjectUtil.isNull(source)) {
return null;
}
if (ObjectUtil.isNull(desc)) {
return null;
}
return CONVERTER.convert(source, desc);
}
/**
* T 类型对象按照配置的映射字段规则 desc 类型的对象赋值并返回 desc 对象
*
* @param source 数据来源实体
* @param desc 转换后的对象
* @return desc
*/
public static <T, V> V convert(T source, V desc) {
if (ObjectUtil.isNull(source)) {
return null;
}
if (ObjectUtil.isNull(desc)) {
return null;
}
return CONVERTER.convert(source, desc);
}
/**
* T 类型的集合转换为 desc 类型的集合并返回
*
* @param sourceList 数据来源实体列表
* @param desc 描述对象 转换后的对象
* @return desc
*/
public static <T, V> List<V> convert(List<T> sourceList, Class<V> desc) {
if (ObjectUtil.isNull(sourceList)) {
return null;
}
if (CollUtil.isEmpty(sourceList)) {
return CollUtil.newArrayList();
}
return StreamUtils.toList(sourceList, source -> CONVERTER.convert(source, desc));
}
/**
* Map 转换为 beanClass 类型的集合并返回
*
* @param map 数据来源
* @param beanClass bean类
* @return bean对象
*/
public static <T> T convert(Map<String, Object> map, Class<T> beanClass) {
if (MapUtil.isEmpty(map)) {
return null;
}
if (ObjectUtil.isNull(beanClass)) {
return null;
}
return CONVERTER.convert(map, beanClass);
}
}

View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ReflectionKit; import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.Db; import com.baomidou.mybatisplus.extension.toolkit.Db;
import com.ruoyi.common.core.utils.BeanCopyUtils; import com.ruoyi.common.core.utils.MapstructUtils;
import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory; import org.apache.ibatis.logging.LogFactory;
@ -112,7 +112,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
if (ObjectUtil.isNull(obj)) { if (ObjectUtil.isNull(obj)) {
return null; return null;
} }
return BeanCopyUtils.copy(obj, voClass); return MapstructUtils.convert(obj, voClass);
} }
default List<V> selectVoBatchIds(Collection<? extends Serializable> idList) { default List<V> selectVoBatchIds(Collection<? extends Serializable> idList) {
@ -127,7 +127,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList(); return CollUtil.newArrayList();
} }
return BeanCopyUtils.copyList(list, voClass); return MapstructUtils.convert(list, voClass);
} }
default List<V> selectVoByMap(Map<String, Object> map) { default List<V> selectVoByMap(Map<String, Object> map) {
@ -142,7 +142,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList(); return CollUtil.newArrayList();
} }
return BeanCopyUtils.copyList(list, voClass); return MapstructUtils.convert(list, voClass);
} }
default V selectVoOne(Wrapper<T> wrapper) { default V selectVoOne(Wrapper<T> wrapper) {
@ -157,7 +157,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
if (ObjectUtil.isNull(obj)) { if (ObjectUtil.isNull(obj)) {
return null; return null;
} }
return BeanCopyUtils.copy(obj, voClass); return MapstructUtils.convert(obj, voClass);
} }
default List<V> selectVoList() { default List<V> selectVoList() {
@ -176,7 +176,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList(); return CollUtil.newArrayList();
} }
return BeanCopyUtils.copyList(list, voClass); return MapstructUtils.convert(list, voClass);
} }
default <P extends IPage<V>> P selectVoPage(IPage<T> page, Wrapper<T> wrapper) { default <P extends IPage<V>> P selectVoPage(IPage<T> page, Wrapper<T> wrapper) {
@ -192,7 +192,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
if (CollUtil.isEmpty(pageData.getRecords())) { if (CollUtil.isEmpty(pageData.getRecords())) {
return (P) voPage; return (P) voPage;
} }
voPage.setRecords(BeanCopyUtils.copyList(pageData.getRecords(), voClass)); voPage.setRecords(MapstructUtils.convert(pageData.getRecords(), voClass));
return (P) voPage; return (P) voPage;
} }

View File

@ -1,8 +1,8 @@
package com.ruoyi.demo.controller; package com.ruoyi.demo.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.ValidatorUtils; import com.ruoyi.common.core.utils.ValidatorUtils;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
@ -29,8 +29,8 @@ import org.springframework.web.multipart.MultipartFile;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
@ -76,7 +76,7 @@ public class TestDemoController extends BaseController {
public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception { public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
ExcelResult<TestDemoImportVo> excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true); ExcelResult<TestDemoImportVo> excelResult = ExcelUtil.importExcel(file.getInputStream(), TestDemoImportVo.class, true);
List<TestDemoImportVo> volist = excelResult.getList(); List<TestDemoImportVo> volist = excelResult.getList();
List<TestDemo> list = BeanUtil.copyToList(volist, TestDemo.class); List<TestDemo> list = MapstructUtils.convert(volist, TestDemo.class);
testDemoService.saveBatch(list); testDemoService.saveBatch(list);
return R.ok(excelResult.getAnalysis()); return R.ok(excelResult.getAnalysis());
} }

View File

@ -3,6 +3,8 @@ package com.ruoyi.demo.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.demo.domain.TestDemo;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -18,6 +20,7 @@ import jakarta.validation.constraints.NotNull;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TestDemo.class)
public class TestDemoBo extends BaseEntity { public class TestDemoBo extends BaseEntity {
/** /**

View File

@ -3,6 +3,8 @@ package com.ruoyi.demo.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.demo.domain.TestTree;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
@ -17,6 +19,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TestTree.class)
public class TestTreeBo extends BaseEntity { public class TestTreeBo extends BaseEntity {
/** /**

View File

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.translation.annotation.Translation; import com.ruoyi.common.translation.annotation.Translation;
import com.ruoyi.common.translation.constant.TransConstant; import com.ruoyi.common.translation.constant.TransConstant;
import com.ruoyi.demo.domain.TestDemo;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -19,6 +21,7 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = TestDemo.class)
public class TestDemoVo implements Serializable { public class TestDemoVo implements Serializable {
@Serial @Serial

View File

@ -2,6 +2,8 @@ package com.ruoyi.demo.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.demo.domain.TestTree;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -17,6 +19,7 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = TestTree.class)
public class TestTreeVo implements Serializable { public class TestTreeVo implements Serializable {
@Serial @Serial

View File

@ -1,9 +1,9 @@
package com.ruoyi.demo.service.impl; package com.ruoyi.demo.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
@ -70,7 +70,7 @@ public class TestDemoServiceImpl implements ITestDemoService {
@Override @Override
public Boolean insertByBo(TestDemoBo bo) { public Boolean insertByBo(TestDemoBo bo) {
TestDemo add = BeanUtil.toBean(bo, TestDemo.class); TestDemo add = MapstructUtils.convert(bo, TestDemo.class);
validEntityBeforeSave(add); validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
@ -81,7 +81,7 @@ public class TestDemoServiceImpl implements ITestDemoService {
@Override @Override
public Boolean updateByBo(TestDemoBo bo) { public Boolean updateByBo(TestDemoBo bo) {
TestDemo update = BeanUtil.toBean(bo, TestDemo.class); TestDemo update = MapstructUtils.convert(bo, TestDemo.class);
validEntityBeforeSave(update); validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;
} }

View File

@ -1,8 +1,8 @@
package com.ruoyi.demo.service.impl; package com.ruoyi.demo.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.demo.domain.TestTree; import com.ruoyi.demo.domain.TestTree;
import com.ruoyi.demo.domain.bo.TestTreeBo; import com.ruoyi.demo.domain.bo.TestTreeBo;
@ -52,7 +52,7 @@ public class TestTreeServiceImpl implements ITestTreeService {
@Override @Override
public Boolean insertByBo(TestTreeBo bo) { public Boolean insertByBo(TestTreeBo bo) {
TestTree add = BeanUtil.toBean(bo, TestTree.class); TestTree add = MapstructUtils.convert(bo, TestTree.class);
validEntityBeforeSave(add); validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
if (flag) { if (flag) {
@ -63,7 +63,7 @@ public class TestTreeServiceImpl implements ITestTreeService {
@Override @Override
public Boolean updateByBo(TestTreeBo bo) { public Boolean updateByBo(TestTreeBo bo) {
TestTree update = BeanUtil.toBean(bo, TestTree.class); TestTree update = MapstructUtils.convert(bo, TestTree.class);
validEntityBeforeSave(update); validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;
} }

View File

@ -5,6 +5,7 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
#foreach ($import in $importList) #foreach ($import in $importList)
import ${import}; import ${import};
@ -20,6 +21,7 @@ import java.util.Date;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ${ClassName}.class, reverseConvertGenerate = false)
public class ${ClassName}Bo extends BaseEntity { public class ${ClassName}Bo extends BaseEntity {
#foreach ($column in $columns) #foreach ($column in $columns)

View File

@ -1,6 +1,6 @@
package ${packageName}.service.impl; package ${packageName}.service.impl;
import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
#if($table.crud || $table.sub) #if($table.crud || $table.sub)
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
@ -94,7 +94,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
*/ */
@Override @Override
public Boolean insertByBo(${ClassName}Bo bo) { public Boolean insertByBo(${ClassName}Bo bo) {
${ClassName} add = BeanUtil.toBean(bo, ${ClassName}.class); ${ClassName} add = MapstructUtils.convert(bo, ${ClassName}.class);
validEntityBeforeSave(add); validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
#set($pk=$pkColumn.javaField.substring(0,1).toUpperCase() + ${pkColumn.javaField.substring(1)}) #set($pk=$pkColumn.javaField.substring(0,1).toUpperCase() + ${pkColumn.javaField.substring(1)})
@ -109,7 +109,7 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service {
*/ */
@Override @Override
public Boolean updateByBo(${ClassName}Bo bo) { public Boolean updateByBo(${ClassName}Bo bo) {
${ClassName} update = BeanUtil.toBean(bo, ${ClassName}.class); ${ClassName} update = MapstructUtils.convert(bo, ${ClassName}.class);
validEntityBeforeSave(update); validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0; return baseMapper.updateById(update) > 0;
} }

View File

@ -8,6 +8,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import lombok.Data; import lombok.Data;
import io.github.linpeilie.annotations.AutoMapper;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
@ -23,6 +24,7 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = ${ClassName}.class)
public class ${ClassName}Vo implements Serializable { public class ${ClassName}Vo implements Serializable {
@Serial @Serial

View File

@ -3,11 +3,11 @@ package com.ruoyi.system.controller.monitor;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.exception.NotLoginException;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.constant.GlobalConstants; import com.ruoyi.common.core.constant.GlobalConstants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.dto.UserOnlineDTO; import com.ruoyi.common.core.domain.dto.UserOnlineDTO;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.annotation.Log;
@ -69,7 +69,7 @@ public class SysUserOnlineController extends BaseController {
} }
Collections.reverse(userOnlineDTOList); Collections.reverse(userOnlineDTOList);
userOnlineDTOList.removeAll(Collections.singleton(null)); userOnlineDTOList.removeAll(Collections.singleton(null));
List<SysUserOnline> userOnlineList = BeanUtil.copyToList(userOnlineDTOList, SysUserOnline.class); List<SysUserOnline> userOnlineList = MapstructUtils.convert(userOnlineDTOList, SysUserOnline.class);
return TableDataInfo.build(userOnlineList); return TableDataInfo.build(userOnlineList);
} }

View File

@ -1,10 +1,10 @@
package com.ruoyi.system.controller.system; package com.ruoyi.system.controller.system;
import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.secure.BCrypt;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.file.MimeTypeUtils; import com.ruoyi.common.core.utils.file.MimeTypeUtils;
import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.annotation.Log;
@ -60,7 +60,7 @@ public class SysProfileController extends BaseController {
@Log(title = "个人信息", businessType = BusinessType.UPDATE) @Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public R<Void> updateProfile(@RequestBody SysUserProfileBo profile) { public R<Void> updateProfile(@RequestBody SysUserProfileBo profile) {
SysUserBo user = BeanUtil.copyProperties(profile, SysUserBo.class); SysUserBo user = MapstructUtils.convert(profile, SysUserBo.class);
if (StringUtils.isNotEmpty(user.getPhonenumber()) if (StringUtils.isNotEmpty(user.getPhonenumber())
&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在");

View File

@ -15,8 +15,8 @@ import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.common.web.core.BaseController; import com.ruoyi.common.web.core.BaseController;
import com.ruoyi.system.domain.SysDept;
import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.domain.bo.SysDeptBo;
import com.ruoyi.system.domain.bo.SysRoleBo; import com.ruoyi.system.domain.bo.SysRoleBo;
import com.ruoyi.system.domain.bo.SysUserBo; import com.ruoyi.system.domain.bo.SysUserBo;
import com.ruoyi.system.domain.vo.DeptTreeSelectVo; import com.ruoyi.system.domain.vo.DeptTreeSelectVo;
@ -247,7 +247,7 @@ public class SysRoleController extends BaseController {
public R<DeptTreeSelectVo> roleDeptTreeselect(@PathVariable("roleId") Long roleId) { public R<DeptTreeSelectVo> roleDeptTreeselect(@PathVariable("roleId") Long roleId) {
DeptTreeSelectVo selectVo = new DeptTreeSelectVo(); DeptTreeSelectVo selectVo = new DeptTreeSelectVo();
selectVo.setCheckedKeys(deptService.selectDeptListByRoleId(roleId)); selectVo.setCheckedKeys(deptService.selectDeptListByRoleId(roleId));
selectVo.setDepts(deptService.selectDeptTreeList(new SysDept())); selectVo.setDepts(deptService.selectDeptTreeList(new SysDeptBo()));
return R.ok(selectVo); return R.ok(selectVo);
} }
} }

View File

@ -2,13 +2,13 @@ package com.ruoyi.system.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.secure.BCrypt;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.core.constant.TenantConstants; import com.ruoyi.common.core.constant.TenantConstants;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.excel.core.ExcelResult; import com.ruoyi.common.excel.core.ExcelResult;
@ -20,7 +20,7 @@ import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.tenant.helper.TenantHelper; import com.ruoyi.common.tenant.helper.TenantHelper;
import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.common.web.core.BaseController; import com.ruoyi.common.web.core.BaseController;
import com.ruoyi.system.domain.SysDept; import com.ruoyi.system.domain.bo.SysDeptBo;
import com.ruoyi.system.domain.bo.SysUserBo; import com.ruoyi.system.domain.bo.SysUserBo;
import com.ruoyi.system.domain.vo.*; import com.ruoyi.system.domain.vo.*;
import com.ruoyi.system.listener.SysUserImportListener; import com.ruoyi.system.listener.SysUserImportListener;
@ -69,15 +69,7 @@ public class SysUserController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(SysUserBo user, HttpServletResponse response) { public void export(SysUserBo user, HttpServletResponse response) {
List<SysUserVo> list = userService.selectUserList(user); List<SysUserVo> list = userService.selectUserList(user);
List<SysUserExportVo> listVo = BeanUtil.copyToList(list, SysUserExportVo.class); List<SysUserExportVo> listVo = MapstructUtils.convert(list, SysUserExportVo.class);
for (int i = 0; i < list.size(); i++) {
SysDeptVo dept = list.get(i).getDept();
SysUserExportVo vo = listVo.get(i);
if (ObjectUtil.isNotEmpty(dept)) {
vo.setDeptName(dept.getDeptName());
vo.setLeader(dept.getLeader());
}
}
ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response); ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response);
} }
@ -248,7 +240,7 @@ public class SysUserController extends BaseController {
*/ */
@SaCheckPermission("system:user:list") @SaCheckPermission("system:user:list")
@GetMapping("/deptTree") @GetMapping("/deptTree")
public R<List<Tree<Long>>> deptTree(SysDept dept) { public R<List<Tree<Long>>> deptTree(SysDeptBo dept) {
return R.ok(deptService.selectDeptTreeList(dept)); return R.ok(deptService.selectDeptTreeList(dept));
} }

View File

@ -2,6 +2,8 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.system.domain.SysConfig;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
@ -16,6 +18,7 @@ import com.ruoyi.common.mybatis.core.domain.BaseEntity;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysConfig.class, reverseConvertGenerate = false)
public class SysConfigBo extends BaseEntity { public class SysConfigBo extends BaseEntity {
/** /**

View File

@ -3,6 +3,8 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.system.domain.SysDept;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@ -18,6 +20,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysDept.class, reverseConvertGenerate = false)
public class SysDeptBo extends BaseEntity { public class SysDeptBo extends BaseEntity {
/** /**

View File

@ -3,6 +3,8 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.system.domain.SysDictData;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@ -17,6 +19,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysDictData.class, reverseConvertGenerate = false)
public class SysDictDataBo extends BaseEntity { public class SysDictDataBo extends BaseEntity {
/** /**

View File

@ -3,6 +3,8 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.system.domain.SysDictType;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
@ -18,6 +20,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysDictType.class, reverseConvertGenerate = false)
public class SysDictTypeBo extends BaseEntity { public class SysDictTypeBo extends BaseEntity {
/** /**

View File

@ -1,5 +1,7 @@
package com.ruoyi.system.domain.bo; package com.ruoyi.system.domain.bo;
import com.ruoyi.system.domain.SysLogininfor;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
@ -13,6 +15,7 @@ import java.util.Map;
*/ */
@Data @Data
@AutoMapper(target = SysLogininfor.class, reverseConvertGenerate = false)
public class SysLogininforBo { public class SysLogininforBo {
/** /**

View File

@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.system.domain.SysMenu;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@ -18,6 +20,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysMenu.class, reverseConvertGenerate = false)
public class SysMenuBo extends BaseEntity { public class SysMenuBo extends BaseEntity {
/** /**

View File

@ -4,6 +4,8 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.xss.Xss; import com.ruoyi.common.core.xss.Xss;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.system.domain.SysNotice;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@ -18,6 +20,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysNotice.class, reverseConvertGenerate = false)
public class SysNoticeBo extends BaseEntity { public class SysNoticeBo extends BaseEntity {
/** /**

View File

@ -1,6 +1,10 @@
package com.ruoyi.system.domain.bo; package com.ruoyi.system.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.common.log.event.OperLogEvent;
import com.ruoyi.system.domain.SysOperLog;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
@ -15,6 +19,10 @@ import java.util.Map;
*/ */
@Data @Data
@AutoMappers({
@AutoMapper(target = SysOperLog.class, reverseConvertGenerate = false),
@AutoMapper(target = OperLogEvent.class)
})
public class SysOperLogBo { public class SysOperLogBo {
/** /**

View File

@ -1,7 +1,8 @@
package com.ruoyi.system.domain.bo; package com.ruoyi.system.domain.bo;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.common.tenant.core.TenantEntity; import com.ruoyi.system.domain.SysOss;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -12,6 +13,7 @@ import lombok.EqualsAndHashCode;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysOss.class, reverseConvertGenerate = false)
public class SysOssBo extends BaseEntity { public class SysOssBo extends BaseEntity {
/** /**

View File

@ -3,7 +3,8 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.common.tenant.core.TenantEntity; import com.ruoyi.system.domain.SysOssConfig;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@ -20,6 +21,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysOssConfig.class, reverseConvertGenerate = false)
public class SysOssConfigBo extends BaseEntity { public class SysOssConfigBo extends BaseEntity {
/** /**

View File

@ -3,7 +3,8 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.common.tenant.core.TenantEntity; import com.ruoyi.system.domain.SysPost;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@ -18,6 +19,7 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysPost.class, reverseConvertGenerate = false)
public class SysPostBo extends BaseEntity { public class SysPostBo extends BaseEntity {
/** /**

View File

@ -4,6 +4,8 @@ import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.system.domain.SysRole;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@ -20,6 +22,7 @@ import lombok.NoArgsConstructor;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysRole.class, reverseConvertGenerate = false)
public class SysRoleBo extends BaseEntity { public class SysRoleBo extends BaseEntity {
/** /**

View File

@ -2,6 +2,8 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.system.domain.SysTenant;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
@ -18,6 +20,7 @@ import com.ruoyi.common.mybatis.core.domain.BaseEntity;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysTenant.class, reverseConvertGenerate = false)
public class SysTenantBo extends BaseEntity { public class SysTenantBo extends BaseEntity {
/** /**

View File

@ -2,6 +2,9 @@ package com.ruoyi.system.domain.bo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.system.domain.SysTenantPackage;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMapping;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
@ -16,6 +19,7 @@ import com.ruoyi.common.mybatis.core.domain.BaseEntity;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysTenantPackage.class, reverseConvertGenerate = false)
public class SysTenantPackageBo extends BaseEntity { public class SysTenantPackageBo extends BaseEntity {
/** /**
@ -33,6 +37,7 @@ public class SysTenantPackageBo extends BaseEntity {
/** /**
* 关联菜单id * 关联菜单id
*/ */
@AutoMapping(target = "menuIds", expression = "java(com.ruoyi.common.core.utils.StringUtils.join(source.getMenuIds(), \",\"))")
private Long[] menuIds; private Long[] menuIds;
/** /**

View File

@ -5,6 +5,8 @@ import com.ruoyi.common.core.xss.Xss;
import com.ruoyi.common.mybatis.core.domain.BaseEntity; import com.ruoyi.common.mybatis.core.domain.BaseEntity;
import com.ruoyi.common.sensitive.annotation.Sensitive; import com.ruoyi.common.sensitive.annotation.Sensitive;
import com.ruoyi.common.sensitive.core.SensitiveStrategy; import com.ruoyi.common.sensitive.core.SensitiveStrategy;
import com.ruoyi.system.domain.SysUser;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size; import jakarta.validation.constraints.Size;
@ -23,6 +25,7 @@ import java.util.Date;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SysUser.class, reverseConvertGenerate = false)
public class SysUserBo extends BaseEntity { public class SysUserBo extends BaseEntity {
/** /**

View File

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysConfig;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -18,6 +20,7 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysConfig.class)
public class SysConfigVo implements Serializable { public class SysConfigVo implements Serializable {
@Serial @Serial

View File

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysDept;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -17,6 +19,7 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysDept.class)
public class SysDeptVo implements Serializable { public class SysDeptVo implements Serializable {
@Serial @Serial

View File

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysDictData;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -18,6 +20,7 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysDictData.class)
public class SysDictDataVo implements Serializable { public class SysDictDataVo implements Serializable {
@Serial @Serial

View File

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysDictType;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -18,6 +20,7 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysDictType.class)
public class SysDictTypeVo implements Serializable { public class SysDictTypeVo implements Serializable {
@Serial @Serial

View File

@ -5,6 +5,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysLogininfor;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -20,6 +22,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysLogininfor.class)
public class SysLogininforVo implements Serializable { public class SysLogininforVo implements Serializable {
@Serial @Serial

View File

@ -1,5 +1,7 @@
package com.ruoyi.system.domain.vo; package com.ruoyi.system.domain.vo;
import com.ruoyi.system.domain.SysMenu;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -15,6 +17,7 @@ import java.util.List;
* @author Michelle.Chung * @author Michelle.Chung
*/ */
@Data @Data
@AutoMapper(target = SysMenu.class)
public class SysMenuVo implements Serializable { public class SysMenuVo implements Serializable {
@Serial @Serial

View File

@ -2,6 +2,8 @@ package com.ruoyi.system.domain.vo;
import com.ruoyi.common.translation.annotation.Translation; import com.ruoyi.common.translation.annotation.Translation;
import com.ruoyi.common.translation.constant.TransConstant; import com.ruoyi.common.translation.constant.TransConstant;
import com.ruoyi.system.domain.SysNotice;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -16,6 +18,7 @@ import java.util.Date;
* @author Michelle.Chung * @author Michelle.Chung
*/ */
@Data @Data
@AutoMapper(target = SysNotice.class)
public class SysNoticeVo implements Serializable { public class SysNoticeVo implements Serializable {
@Serial @Serial

View File

@ -6,6 +6,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysOperLog;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -20,6 +22,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysOperLog.class)
public class SysOperLogVo implements Serializable { public class SysOperLogVo implements Serializable {
@Serial @Serial

View File

@ -1,6 +1,8 @@
package com.ruoyi.system.domain.vo; package com.ruoyi.system.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.ruoyi.system.domain.SysOssConfig;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -16,6 +18,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysOssConfig.class)
public class SysOssConfigVo implements Serializable { public class SysOssConfigVo implements Serializable {
@Serial @Serial

View File

@ -2,6 +2,8 @@ package com.ruoyi.system.domain.vo;
import com.ruoyi.common.translation.annotation.Translation; import com.ruoyi.common.translation.annotation.Translation;
import com.ruoyi.common.translation.constant.TransConstant; import com.ruoyi.common.translation.constant.TransConstant;
import com.ruoyi.system.domain.SysOss;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -14,6 +16,7 @@ import java.util.Date;
* @author Lion Li * @author Lion Li
*/ */
@Data @Data
@AutoMapper(target = SysOss.class)
public class SysOssVo implements Serializable { public class SysOssVo implements Serializable {
@Serial @Serial

View File

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysPost;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -19,6 +21,7 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysPost.class)
public class SysPostVo implements Serializable { public class SysPostVo implements Serializable {
@Serial @Serial

View File

@ -3,8 +3,12 @@ package com.ruoyi.system.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.domain.dto.RoleDTO;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysRole;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -18,6 +22,10 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMappers({
@AutoMapper(target = SysRole.class),
@AutoMapper(target = RoleDTO.class)
})
public class SysRoleVo implements Serializable { public class SysRoleVo implements Serializable {
@Serial @Serial

View File

@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysTenantPackage;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -17,6 +19,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysTenantPackage.class)
public class SysTenantPackageVo implements Serializable { public class SysTenantPackageVo implements Serializable {
@Serial @Serial

View File

@ -5,6 +5,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import com.ruoyi.system.domain.SysTenant;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -18,6 +20,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = SysTenant.class)
public class SysTenantVo implements Serializable { public class SysTenantVo implements Serializable {
@Serial @Serial

View File

@ -3,6 +3,8 @@ package com.ruoyi.system.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.excel.annotation.ExcelDictFormat; import com.ruoyi.common.excel.annotation.ExcelDictFormat;
import com.ruoyi.common.excel.convert.ExcelDictConvert; import com.ruoyi.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.ReverseAutoMapping;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -18,6 +20,7 @@ import java.util.Date;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AutoMapper(target = SysUserVo.class, convertGenerate = false)
public class SysUserExportVo implements Serializable { public class SysUserExportVo implements Serializable {
@Serial @Serial
@ -82,12 +85,14 @@ public class SysUserExportVo implements Serializable {
/** /**
* 部门名称 * 部门名称
*/ */
@ReverseAutoMapping(target = "deptName", source = "dept.deptName")
@ExcelProperty(value = "部门名称") @ExcelProperty(value = "部门名称")
private String deptName; private String deptName;
/** /**
* 负责人 * 负责人
*/ */
@ReverseAutoMapping(target = "leader", source = "dept.leader")
@ExcelProperty(value = "部门负责人") @ExcelProperty(value = "部门负责人")
private String leader; private String leader;

View File

@ -2,6 +2,8 @@ package com.ruoyi.system.domain.vo;
import com.ruoyi.common.translation.annotation.Translation; import com.ruoyi.common.translation.annotation.Translation;
import com.ruoyi.common.translation.constant.TransConstant; import com.ruoyi.common.translation.constant.TransConstant;
import com.ruoyi.system.domain.SysUser;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -16,6 +18,7 @@ import java.util.List;
* @author Michelle.Chung * @author Michelle.Chung
*/ */
@Data @Data
@AutoMapper(target = SysUser.class)
public class SysUserVo implements Serializable { public class SysUserVo implements Serializable {
@Serial @Serial

View File

@ -1,11 +1,11 @@
package com.ruoyi.system.listener; package com.ruoyi.system.listener;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.crypto.digest.BCrypt; import cn.hutool.crypto.digest.BCrypt;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.event.AnalysisEventListener;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.common.core.utils.ValidatorUtils; import com.ruoyi.common.core.utils.ValidatorUtils;
import com.ruoyi.common.excel.core.ExcelListener; import com.ruoyi.common.excel.core.ExcelListener;
@ -55,7 +55,7 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
try { try {
// 验证是否存在这个用户 // 验证是否存在这个用户
if (ObjectUtil.isNull(sysUser)) { if (ObjectUtil.isNull(sysUser)) {
SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class); SysUserBo user = MapstructUtils.convert(userVo, SysUserBo.class);
ValidatorUtils.validate(user); ValidatorUtils.validate(user);
user.setPassword(password); user.setPassword(password);
user.setCreateBy(operUserId); user.setCreateBy(operUserId);
@ -64,7 +64,7 @@ public class SysUserImportListener extends AnalysisEventListener<SysUserImportVo
successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功"); successMsg.append("<br/>").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功");
} else if (isUpdateSupport) { } else if (isUpdateSupport) {
Long userId = sysUser.getUserId(); Long userId = sysUser.getUserId();
SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class); SysUserBo user = MapstructUtils.convert(userVo, SysUserBo.class);
user.setUserId(userId); user.setUserId(userId);
ValidatorUtils.validate(user); ValidatorUtils.validate(user);
userService.checkUserAllowed(user); userService.checkUserAllowed(user);

View File

@ -27,7 +27,7 @@ public interface ISysDeptService {
* @param dept 部门信息 * @param dept 部门信息
* @return 部门树信息集合 * @return 部门树信息集合
*/ */
List<Tree<Long>> selectDeptTreeList(SysDept dept); List<Tree<Long>> selectDeptTreeList(SysDeptBo dept);
/** /**
* 构建前端所需要下拉树结构 * 构建前端所需要下拉树结构

View File

@ -1,6 +1,5 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
@ -11,6 +10,7 @@ import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.service.ConfigService; import com.ruoyi.common.core.service.ConfigService;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
@ -123,7 +123,7 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
@CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#bo.configKey") @CachePut(cacheNames = CacheNames.SYS_CONFIG, key = "#bo.configKey")
@Override @Override
public String insertConfig(SysConfigBo bo) { public String insertConfig(SysConfigBo bo) {
SysConfig config = BeanUtil.toBean(bo, SysConfig.class); SysConfig config = MapstructUtils.convert(bo, SysConfig.class);
int row = baseMapper.insert(config); int row = baseMapper.insert(config);
if (row > 0) { if (row > 0) {
return config.getConfigValue(); return config.getConfigValue();
@ -141,7 +141,7 @@ public class SysConfigServiceImpl implements ISysConfigService, ConfigService {
@Override @Override
public String updateConfig(SysConfigBo bo) { public String updateConfig(SysConfigBo bo) {
int row = 0; int row = 0;
SysConfig config = BeanUtil.toBean(bo, SysConfig.class); SysConfig config = MapstructUtils.convert(bo, SysConfig.class);
if (config.getConfigId() != null) { if (config.getConfigId() != null) {
SysConfig temp = baseMapper.selectById(config.getConfigId()); SysConfig temp = baseMapper.selectById(config.getConfigId());
if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) { if (!StringUtils.equals(temp.getConfigKey(), config.getConfigKey())) {

View File

@ -1,6 +1,5 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.Tree;
@ -12,6 +11,7 @@ import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.service.DeptService; import com.ruoyi.common.core.service.DeptService;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.TreeBuildUtils; import com.ruoyi.common.core.utils.TreeBuildUtils;
@ -64,12 +64,11 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
/** /**
* 查询部门树结构信息 * 查询部门树结构信息
* *
* @param dept 部门信息 * @param bo 部门信息
* @return 部门树信息集合 * @return 部门树信息集合
*/ */
@Override @Override
public List<Tree<Long>> selectDeptTreeList(SysDept dept) { public List<Tree<Long>> selectDeptTreeList(SysDeptBo bo) {
SysDeptBo bo = BeanUtil.toBean(dept, SysDeptBo.class);
LambdaQueryWrapper<SysDept> lqw = buildQueryWrapper(bo); LambdaQueryWrapper<SysDept> lqw = buildQueryWrapper(bo);
List<SysDept> depts = baseMapper.selectList(lqw); List<SysDept> depts = baseMapper.selectList(lqw);
return buildDeptTreeSelect(depts); return buildDeptTreeSelect(depts);
@ -239,7 +238,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) { if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) {
throw new ServiceException("部门停用,不允许新增"); throw new ServiceException("部门停用,不允许新增");
} }
SysDept dept = BeanUtil.toBean(bo, SysDept.class); SysDept dept = MapstructUtils.convert(bo, SysDept.class);
dept.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + dept.getParentId()); dept.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + dept.getParentId());
return baseMapper.insert(dept); return baseMapper.insert(dept);
} }
@ -253,7 +252,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
@CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#bo.deptId") @CacheEvict(cacheNames = CacheNames.SYS_DEPT, key = "#bo.deptId")
@Override @Override
public int updateDept(SysDeptBo bo) { public int updateDept(SysDeptBo bo) {
SysDept dept = BeanUtil.toBean(bo, SysDept.class); SysDept dept = MapstructUtils.convert(bo, SysDept.class);
SysDept newParentDept = baseMapper.selectById(dept.getParentId()); SysDept newParentDept = baseMapper.selectById(dept.getParentId());
SysDept oldDept = baseMapper.selectById(dept.getDeptId()); SysDept oldDept = baseMapper.selectById(dept.getDeptId());
if (ObjectUtil.isNotNull(newParentDept) && ObjectUtil.isNotNull(oldDept)) { if (ObjectUtil.isNotNull(newParentDept) && ObjectUtil.isNotNull(oldDept)) {

View File

@ -1,10 +1,10 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.CacheNames; import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.system.domain.SysDictData; import com.ruoyi.system.domain.SysDictData;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
@ -111,7 +111,7 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
@CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType") @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType")
@Override @Override
public List<SysDictDataVo> insertDictData(SysDictDataBo bo) { public List<SysDictDataVo> insertDictData(SysDictDataBo bo) {
SysDictData data = BeanUtil.toBean(bo, SysDictData.class); SysDictData data = MapstructUtils.convert(bo, SysDictData.class);
int row = baseMapper.insert(data); int row = baseMapper.insert(data);
if (row > 0) { if (row > 0) {
return baseMapper.selectDictDataByType(data.getDictType()); return baseMapper.selectDictDataByType(data.getDictType());
@ -128,7 +128,7 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
@CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType") @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType")
@Override @Override
public List<SysDictDataVo> updateDictData(SysDictDataBo bo) { public List<SysDictDataVo> updateDictData(SysDictDataBo bo) {
SysDictData data = BeanUtil.toBean(bo, SysDictData.class); SysDictData data = MapstructUtils.convert(bo, SysDictData.class);
int row = baseMapper.updateById(data); int row = baseMapper.updateById(data);
if (row > 0) { if (row > 0) {
return baseMapper.selectDictDataByType(data.getDictType()); return baseMapper.selectDictDataByType(data.getDictType());

View File

@ -1,7 +1,6 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.context.SaHolder;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -13,6 +12,7 @@ import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.service.DictService; import com.ruoyi.common.core.service.DictService;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
@ -165,7 +165,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
@CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType") @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#bo.dictType")
@Override @Override
public List<SysDictTypeVo> insertDictType(SysDictTypeBo bo) { public List<SysDictTypeVo> insertDictType(SysDictTypeBo bo) {
SysDictType dict = BeanUtil.toBean(bo, SysDictType.class); SysDictType dict = MapstructUtils.convert(bo, SysDictType.class);
int row = baseMapper.insert(dict); int row = baseMapper.insert(dict);
if (row > 0) { if (row > 0) {
return new ArrayList<>(); return new ArrayList<>();
@ -183,7 +183,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public List<SysDictDataVo> updateDictType(SysDictTypeBo bo) { public List<SysDictDataVo> updateDictType(SysDictTypeBo bo) {
SysDictType dict = BeanUtil.toBean(bo, SysDictType.class); SysDictType dict = MapstructUtils.convert(bo, SysDictType.class);
SysDictType oldDict = baseMapper.selectById(dict.getDictId()); SysDictType oldDict = baseMapper.selectById(dict.getDictId());
dictDataMapper.update(null, new LambdaUpdateWrapper<SysDictData>() dictDataMapper.update(null, new LambdaUpdateWrapper<SysDictData>()
.set(SysDictData::getDictType, dict.getDictType()) .set(SysDictData::getDictType, dict.getDictType())

View File

@ -1,11 +1,11 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgent;
import cn.hutool.http.useragent.UserAgentUtil; import cn.hutool.http.useragent.UserAgentUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.log.event.LogininforEvent; import com.ruoyi.common.log.event.LogininforEvent;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
@ -116,7 +116,7 @@ public class SysLogininforServiceImpl implements ISysLogininforService {
*/ */
@Override @Override
public void insertLogininfor(SysLogininforBo bo) { public void insertLogininfor(SysLogininforBo bo) {
SysLogininfor logininfor = BeanUtil.toBean(bo, SysLogininfor.class); SysLogininfor logininfor = MapstructUtils.convert(bo, SysLogininfor.class);
logininfor.setLoginTime(new Date()); logininfor.setLoginTime(new Date());
baseMapper.insert(logininfor); baseMapper.insert(logininfor);
} }

View File

@ -1,6 +1,5 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.Tree;
@ -9,7 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.utils.BeanCopyUtils; import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.TreeBuildUtils; import com.ruoyi.common.core.utils.TreeBuildUtils;
@ -83,7 +82,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
.orderByAsc("m.parent_id") .orderByAsc("m.parent_id")
.orderByAsc("m.order_num"); .orderByAsc("m.order_num");
List<SysMenu> list = baseMapper.selectMenuListByUserId(wrapper); List<SysMenu> list = baseMapper.selectMenuListByUserId(wrapper);
menuList = BeanCopyUtils.copyList(list, SysMenuVo.class); menuList = MapstructUtils.convert(list, SysMenuVo.class);
} }
return menuList; return menuList;
} }
@ -287,7 +286,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
*/ */
@Override @Override
public int insertMenu(SysMenuBo bo) { public int insertMenu(SysMenuBo bo) {
SysMenu menu = BeanUtil.toBean(bo, SysMenu.class); SysMenu menu = MapstructUtils.convert(bo, SysMenu.class);
return baseMapper.insert(menu); return baseMapper.insert(menu);
} }
@ -299,7 +298,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
*/ */
@Override @Override
public int updateMenu(SysMenuBo bo) { public int updateMenu(SysMenuBo bo) {
SysMenu menu = BeanUtil.toBean(bo, SysMenu.class); SysMenu menu = MapstructUtils.convert(bo, SysMenu.class);
return baseMapper.updateById(menu); return baseMapper.updateById(menu);
} }

View File

@ -1,10 +1,10 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
@ -82,7 +82,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
*/ */
@Override @Override
public int insertNotice(SysNoticeBo bo) { public int insertNotice(SysNoticeBo bo) {
SysNotice notice = BeanUtil.toBean(bo, SysNotice.class); SysNotice notice = MapstructUtils.convert(bo, SysNotice.class);
return baseMapper.insert(notice); return baseMapper.insert(notice);
} }
@ -94,7 +94,7 @@ public class SysNoticeServiceImpl implements ISysNoticeService {
*/ */
@Override @Override
public int updateNotice(SysNoticeBo bo) { public int updateNotice(SysNoticeBo bo) {
SysNotice notice = BeanUtil.toBean(bo, SysNotice.class); SysNotice notice = MapstructUtils.convert(bo, SysNotice.class);
return baseMapper.updateById(notice); return baseMapper.updateById(notice);
} }

View File

@ -1,9 +1,9 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
@ -43,7 +43,7 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
@Async @Async
@EventListener @EventListener
public void recordOper(OperLogEvent operLogEvent) { public void recordOper(OperLogEvent operLogEvent) {
SysOperLogBo operLog = BeanUtil.toBean(operLogEvent, SysOperLogBo.class); SysOperLogBo operLog = MapstructUtils.convert(operLogEvent, SysOperLogBo.class);
// 远程查询操作地点 // 远程查询操作地点
operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp())); operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp()));
insertOperlog(operLog); insertOperlog(operLog);
@ -81,7 +81,7 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
*/ */
@Override @Override
public void insertOperlog(SysOperLogBo bo) { public void insertOperlog(SysOperLogBo bo) {
SysOperLog operLog = BeanUtil.toBean(bo, SysOperLog.class); SysOperLog operLog = MapstructUtils.convert(bo, SysOperLog.class);
operLog.setOperTime(new Date()); operLog.setOperTime(new Date());
baseMapper.insert(operLog); baseMapper.insert(operLog);
} }

View File

@ -1,6 +1,5 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -10,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.CacheNames; import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.json.utils.JsonUtils; import com.ruoyi.common.json.utils.JsonUtils;
@ -95,7 +95,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService {
@Override @Override
public Boolean insertByBo(SysOssConfigBo bo) { public Boolean insertByBo(SysOssConfigBo bo) {
SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class); SysOssConfig config = MapstructUtils.convert(bo, SysOssConfig.class);
validEntityBeforeSave(config); validEntityBeforeSave(config);
boolean flag = baseMapper.insert(config) > 0; boolean flag = baseMapper.insert(config) > 0;
if (flag) { if (flag) {
@ -106,7 +106,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService {
@Override @Override
public Boolean updateByBo(SysOssConfigBo bo) { public Boolean updateByBo(SysOssConfigBo bo) {
SysOssConfig config = BeanUtil.toBean(bo, SysOssConfig.class); SysOssConfig config = MapstructUtils.convert(bo, SysOssConfig.class);
validEntityBeforeSave(config); validEntityBeforeSave(config);
LambdaUpdateWrapper<SysOssConfig> luw = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<SysOssConfig> luw = new LambdaUpdateWrapper<>();
luw.set(ObjectUtil.isNull(config.getPrefix()), SysOssConfig::getPrefix, ""); luw.set(ObjectUtil.isNull(config.getPrefix()), SysOssConfig::getPrefix, "");
@ -171,7 +171,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateOssConfigStatus(SysOssConfigBo bo) { public int updateOssConfigStatus(SysOssConfigBo bo) {
SysOssConfig sysOssConfig = BeanUtil.toBean(bo, SysOssConfig.class); SysOssConfig sysOssConfig = MapstructUtils.convert(bo, SysOssConfig.class);
int row = baseMapper.update(null, new LambdaUpdateWrapper<SysOssConfig>() int row = baseMapper.update(null, new LambdaUpdateWrapper<SysOssConfig>()
.set(SysOssConfig::getStatus, "1")); .set(SysOssConfig::getStatus, "1"));
row += baseMapper.updateById(sysOssConfig); row += baseMapper.updateById(sysOssConfig);

View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.CacheNames; import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.service.OssService; import com.ruoyi.common.core.service.OssService;
import com.ruoyi.common.core.utils.BeanCopyUtils; import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
@ -138,7 +138,7 @@ public class SysOssServiceImpl implements ISysOssService, OssService {
oss.setService(storage.getConfigKey()); oss.setService(storage.getConfigKey());
baseMapper.insert(oss); baseMapper.insert(oss);
SysOssVo sysOssVo = new SysOssVo(); SysOssVo sysOssVo = new SysOssVo();
BeanCopyUtils.copy(oss, sysOssVo); MapstructUtils.convert(oss, sysOssVo);
return this.matchingUrl(sysOssVo); return this.matchingUrl(sysOssVo);
} }

View File

@ -1,12 +1,12 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
@ -177,7 +177,7 @@ public class SysPostServiceImpl implements ISysPostService {
*/ */
@Override @Override
public int insertPost(SysPostBo bo) { public int insertPost(SysPostBo bo) {
SysPost post = BeanUtil.toBean(bo, SysPost.class); SysPost post = MapstructUtils.convert(bo, SysPost.class);
return baseMapper.insert(post); return baseMapper.insert(post);
} }
@ -189,7 +189,7 @@ public class SysPostServiceImpl implements ISysPostService {
*/ */
@Override @Override
public int updatePost(SysPostBo bo) { public int updatePost(SysPostBo bo) {
SysPost post = BeanUtil.toBean(bo, SysPost.class); SysPost post = MapstructUtils.convert(bo, SysPost.class);
return baseMapper.updateById(post); return baseMapper.updateById(post);
} }
} }

View File

@ -1,6 +1,5 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
@ -9,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
@ -231,7 +231,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int insertRole(SysRoleBo bo) { public int insertRole(SysRoleBo bo) {
SysRole role = BeanUtil.toBean(bo, SysRole.class); SysRole role = MapstructUtils.convert(bo, SysRole.class);
// 新增角色信息 // 新增角色信息
baseMapper.insert(role); baseMapper.insert(role);
bo.setRoleId(role.getRoleId()); bo.setRoleId(role.getRoleId());
@ -247,7 +247,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateRole(SysRoleBo bo) { public int updateRole(SysRoleBo bo) {
SysRole role = BeanUtil.toBean(bo, SysRole.class); SysRole role = MapstructUtils.convert(bo, SysRole.class);
// 修改角色信息 // 修改角色信息
baseMapper.updateById(role); baseMapper.updateById(role);
// 删除角色与菜单关联 // 删除角色与菜单关联
@ -263,7 +263,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/ */
@Override @Override
public int updateRoleStatus(SysRoleBo bo) { public int updateRoleStatus(SysRoleBo bo) {
SysRole role = BeanUtil.toBean(bo, SysRole.class); SysRole role = MapstructUtils.convert(bo, SysRole.class);
return baseMapper.updateById(role); return baseMapper.updateById(role);
} }
@ -276,7 +276,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int authDataScope(SysRoleBo bo) { public int authDataScope(SysRoleBo bo) {
SysRole role = BeanUtil.toBean(bo, SysRole.class); SysRole role = MapstructUtils.convert(bo, SysRole.class);
// 修改角色信息 // 修改角色信息
baseMapper.updateById(role); baseMapper.updateById(role);
// 删除角色与部门关联 // 删除角色与部门关联

View File

@ -1,8 +1,8 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
@ -78,7 +78,7 @@ public class SysTenantPackageServiceImpl implements ISysTenantPackageService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(SysTenantPackageBo bo) { public Boolean insertByBo(SysTenantPackageBo bo) {
SysTenantPackage add = BeanUtil.toBean(bo, SysTenantPackage.class); SysTenantPackage add = MapstructUtils.convert(bo, SysTenantPackage.class);
// 保存菜单id // 保存菜单id
List<Long> menuIds = Arrays.asList(bo.getMenuIds()); List<Long> menuIds = Arrays.asList(bo.getMenuIds());
if (CollUtil.isNotEmpty(menuIds)) { if (CollUtil.isNotEmpty(menuIds)) {
@ -99,7 +99,7 @@ public class SysTenantPackageServiceImpl implements ISysTenantPackageService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(SysTenantPackageBo bo) { public Boolean updateByBo(SysTenantPackageBo bo) {
SysTenantPackage update = BeanUtil.toBean(bo, SysTenantPackage.class); SysTenantPackage update = MapstructUtils.convert(bo, SysTenantPackage.class);
// 保存菜单id // 保存菜单id
List<Long> menuIds = Arrays.asList(bo.getMenuIds()); List<Long> menuIds = Arrays.asList(bo.getMenuIds());
if (CollUtil.isNotEmpty(menuIds)) { if (CollUtil.isNotEmpty(menuIds)) {
@ -118,7 +118,7 @@ public class SysTenantPackageServiceImpl implements ISysTenantPackageService {
*/ */
@Override @Override
public int updatePackageStatus(SysTenantPackageBo bo) { public int updatePackageStatus(SysTenantPackageBo bo) {
SysTenantPackage tenantPackage = BeanUtil.toBean(bo, SysTenantPackage.class); SysTenantPackage tenantPackage = MapstructUtils.convert(bo, SysTenantPackage.class);
return baseMapper.updateById(tenantPackage); return baseMapper.updateById(tenantPackage);
} }

View File

@ -1,7 +1,6 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.secure.BCrypt;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
@ -12,6 +11,7 @@ import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.TenantConstants; import com.ruoyi.common.core.constant.TenantConstants;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
@ -115,7 +115,7 @@ public class SysTenantServiceImpl implements ISysTenantService {
public Boolean insertByBo(SysTenantBo bo) { public Boolean insertByBo(SysTenantBo bo) {
TenantHelper.enableIgnore(); TenantHelper.enableIgnore();
SysTenant add = BeanUtil.toBean(bo, SysTenant.class); SysTenant add = MapstructUtils.convert(bo, SysTenant.class);
// 获取所有租户编号 // 获取所有租户编号
List<String> tenantIds = baseMapper.selectObjs( List<String> tenantIds = baseMapper.selectObjs(
@ -252,7 +252,7 @@ public class SysTenantServiceImpl implements ISysTenantService {
@CacheEvict(cacheNames = CacheNames.SYS_TENANT, key = "#bo.tenantId") @CacheEvict(cacheNames = CacheNames.SYS_TENANT, key = "#bo.tenantId")
@Override @Override
public Boolean updateByBo(SysTenantBo bo) { public Boolean updateByBo(SysTenantBo bo) {
SysTenant tenant = BeanUtil.toBean(bo, SysTenant.class); SysTenant tenant = MapstructUtils.convert(bo, SysTenant.class);
tenant.setTenantId(null); tenant.setTenantId(null);
tenant.setPackageId(null); tenant.setPackageId(null);
return baseMapper.updateById(tenant) > 0; return baseMapper.updateById(tenant) > 0;
@ -267,7 +267,7 @@ public class SysTenantServiceImpl implements ISysTenantService {
@CacheEvict(cacheNames = CacheNames.SYS_TENANT, key = "#bo.tenantId") @CacheEvict(cacheNames = CacheNames.SYS_TENANT, key = "#bo.tenantId")
@Override @Override
public int updateTenantStatus(SysTenantBo bo) { public int updateTenantStatus(SysTenantBo bo) {
SysTenant tenant = BeanUtil.toBean(bo, SysTenant.class); SysTenant tenant = MapstructUtils.convert(bo, SysTenant.class);
return baseMapper.updateById(tenant); return baseMapper.updateById(tenant);
} }

View File

@ -1,6 +1,5 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@ -14,6 +13,7 @@ import com.ruoyi.common.core.constant.CacheNames;
import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.core.service.UserService;
import com.ruoyi.common.core.utils.MapstructUtils;
import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StreamUtils;
import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.PageQuery;
@ -281,7 +281,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int insertUser(SysUserBo user) { public int insertUser(SysUserBo user) {
SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class); SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
// 新增用户信息 // 新增用户信息
int rows = baseMapper.insert(sysUser); int rows = baseMapper.insert(sysUser);
user.setUserId(sysUser.getUserId()); user.setUserId(sysUser.getUserId());
@ -302,7 +302,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
public boolean registerUser(SysUserBo user, String tenantId) { public boolean registerUser(SysUserBo user, String tenantId) {
user.setCreateBy(user.getUserId()); user.setCreateBy(user.getUserId());
user.setUpdateBy(user.getUserId()); user.setUpdateBy(user.getUserId());
SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class); SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
sysUser.setTenantId(tenantId); sysUser.setTenantId(tenantId);
return baseMapper.insert(sysUser) > 0; return baseMapper.insert(sysUser) > 0;
} }
@ -325,7 +325,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId)); userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId));
// 新增用户与岗位管理 // 新增用户与岗位管理
insertUserPost(user); insertUserPost(user);
SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class); SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
return baseMapper.updateById(sysUser); return baseMapper.updateById(sysUser);
} }
@ -351,7 +351,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
*/ */
@Override @Override
public int updateUserStatus(SysUserBo user) { public int updateUserStatus(SysUserBo user) {
SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class); SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
return baseMapper.updateById(sysUser); return baseMapper.updateById(sysUser);
} }
@ -363,7 +363,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
*/ */
@Override @Override
public int updateUserProfile(SysUserBo user) { public int updateUserProfile(SysUserBo user) {
SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class); SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
return baseMapper.updateById(sysUser); return baseMapper.updateById(sysUser);
} }
@ -390,7 +390,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
*/ */
@Override @Override
public int resetPwd(SysUserBo user) { public int resetPwd(SysUserBo user) {
SysUser sysUser = BeanUtil.copyProperties(user, SysUser.class); SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
return baseMapper.updateById(sysUser); return baseMapper.updateById(sysUser);
} }