From 1165eabb4b8fe3be76e0b80b5ddc057844e44c2e Mon Sep 17 00:00:00 2001 From: Odboy Date: Tue, 6 Jan 2026 21:10:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor(framework):=20=E4=BC=98=E5=8C=96Bean?= =?UTF-8?q?=E6=8B=B7=E8=B4=9D=E5=B7=A5=E5=85=B7=E7=B1=BB=E5=B9=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=9B=B8=E5=85=B3=E5=AE=9E=E4=BD=93=E7=B1=BB=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatisplus/core/KitMpAnyQUtil.java | 9 ++- .../mybatisplus/core/KitMpCmdGenUtil.java | 1 - .../mybatisplus/core/KitMpQUtil.java | 67 +++++++++++++------ .../core/interfaces/KitMpMapper.java | 13 ++-- .../core/interfaces/KitMpService.java | 9 ++- .../core/interfaces/KitMpServiceImpl.java | 46 ++++++------- .../java/cn/odboy/util/KitAnonTagUtil.java | 36 ++++++---- .../cn/odboy/util/KitBase64SecretUtil.java | 1 - .../main/java/cn/odboy/util/KitBeanUtil.java | 34 ++++++++++ .../java/cn/odboy/util/KitBigDecimalUtil.java | 21 +++--- .../java/cn/odboy/util/KitBrowserUtil.java | 3 +- .../main/java/cn/odboy/util/KitClassUtil.java | 2 - .../main/java/cn/odboy/util/KitCloseUtil.java | 2 - .../main/java/cn/odboy/util/KitCollUtil.java | 7 +- .../main/java/cn/odboy/util/KitDateUtil.java | 22 +----- .../java/cn/odboy/util/KitDesEncryptUtil.java | 2 - .../cn/odboy/util/KitDistributedIdUtil.java | 9 --- .../main/java/cn/odboy/util/KitFileUtil.java | 6 +- .../main/java/cn/odboy/util/KitIPUtil.java | 1 - .../main/java/cn/odboy/util/KitJsonUtil.java | 5 +- .../main/java/cn/odboy/util/KitListUtil.java | 3 +- .../java/cn/odboy/util/KitLogFmtUtil.java | 1 - .../main/java/cn/odboy/util/KitPageUtil.java | 1 - .../odboy/util/KitResourceTemplateUtil.java | 1 - .../odboy/util/KitReturnValueHandleUtil.java | 2 - .../java/cn/odboy/util/KitRsaEncryptUtil.java | 1 - .../java/cn/odboy/util/KitStringUtil.java | 12 ---- .../java/cn/odboy/util/KitSystemUtil.java | 2 - .../main/java/cn/odboy/util/KitValidUtil.java | 5 +- .../cn/odboy/util/xlsx/KitExcelExporter.java | 2 +- .../cn/odboy/util/xlsx/KitXlsxExportUtil.java | 2 +- .../controller/SystemDeptController.java | 3 +- .../controller/SystemMenuController.java | 11 +-- .../system/dal/dataobject/SystemDeptTb.java | 11 --- .../dal/dataobject/SystemLocalStorageTb.java | 5 +- .../system/dal/dataobject/SystemMenuTb.java | 9 --- .../dal/dataobject/SystemQuartzJobTb.java | 3 - .../system/dal/dataobject/SystemRoleTb.java | 3 +- .../system/dal/dataobject/SystemUserTb.java | 3 - .../odboy/system/dal/model/SystemDeptVo.java | 19 ++++++ .../system/dal/model/SystemMenuRouterVo.java | 47 +++++++++++++ .../odboy/system/dal/model/SystemMenuVo.java | 50 +++----------- .../system/dal/model/SystemQuartzJobVo.java | 14 ++++ .../odboy/system/dal/model/SystemUserVo.java | 4 +- .../dal/mysql/SystemQuartzJobMapper.java | 5 ++ .../dal/redis/SystemUserOnlineInfoDAO.java | 54 +++++++-------- .../framework/quartz/ExecutionJobBean.java | 12 ++-- .../system/service/SystemAuthService.java | 13 ++-- .../system/service/SystemDataService.java | 4 +- .../system/service/SystemDeptService.java | 21 +++--- .../service/SystemDictDetailService.java | 8 +-- .../system/service/SystemDictService.java | 4 +- .../system/service/SystemJobService.java | 4 +- .../service/SystemLocalStorageService.java | 6 +- .../system/service/SystemMenuService.java | 47 +++++++------ .../service/SystemQuartzJobService.java | 7 +- .../system/service/SystemRoleService.java | 6 +- .../system/service/SystemUserRoleService.java | 4 +- .../system/service/SystemUserService.java | 8 +-- .../impl/SystemMinioStorageServiceImpl.java | 8 +-- .../mybatisplus/core/KitMpAnyQUtil.java | 8 +-- .../core/interfaces/KitMpMapper.java | 11 +-- .../core/interfaces/KitMpServiceImpl.java | 25 ++++--- .../main/java/cn/odboy/util/KitBeanUtil.java | 34 ++++++++++ .../controller/SystemDeptController.java | 3 +- .../controller/SystemMenuController.java | 11 +-- .../system/dal/dataobject/SystemDeptTb.java | 11 --- .../dal/dataobject/SystemLocalStorageTb.java | 3 +- .../system/dal/dataobject/SystemMenuTb.java | 9 --- .../dal/dataobject/SystemQuartzJobTb.java | 3 - .../system/dal/dataobject/SystemRoleTb.java | 3 +- .../system/dal/dataobject/SystemUserTb.java | 3 - .../odboy/system/dal/model/SystemDeptVo.java | 19 ++++++ .../system/dal/model/SystemMenuRouterVo.java | 47 +++++++++++++ .../odboy/system/dal/model/SystemMenuVo.java | 66 ++++++------------ .../system/dal/model/SystemQuartzJobVo.java | 14 ++++ .../odboy/system/dal/model/SystemUserVo.java | 5 +- .../dal/mysql/SystemQuartzJobMapper.java | 6 ++ .../dal/redis/SystemUserOnlineInfoDAO.java | 49 +++++++------- .../framework/quartz/ExecutionJobBean.java | 9 ++- .../system/service/SystemAuthService.java | 13 ++-- .../system/service/SystemDataService.java | 3 +- .../system/service/SystemDeptService.java | 20 +++--- .../service/SystemDictDetailService.java | 7 +- .../system/service/SystemDictService.java | 3 +- .../system/service/SystemJobService.java | 3 +- .../service/SystemLocalStorageService.java | 5 +- .../system/service/SystemMenuService.java | 48 +++++++------ .../service/SystemQuartzJobService.java | 6 +- .../system/service/SystemRoleService.java | 5 +- .../system/service/SystemUserRoleService.java | 3 +- .../system/service/SystemUserService.java | 7 +- .../impl/SystemMinioStorageServiceImpl.java | 8 +-- .../java/cn/odboy/task/core/TaskManage.java | 8 +-- .../java/cn/odboy/task/core/TaskManage.java | 8 +-- 95 files changed, 661 insertions(+), 546 deletions(-) create mode 100644 cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBeanUtil.java create mode 100644 cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDeptVo.java create mode 100644 cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuRouterVo.java create mode 100644 cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzJobVo.java create mode 100644 cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBeanUtil.java create mode 100644 cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDeptVo.java create mode 100644 cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuRouterVo.java create mode 100644 cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzJobVo.java diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java index c920fd78..efa02dd6 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java @@ -13,10 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.framework.mybatisplus.core; -import cn.hutool.core.bean.BeanUtil; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -42,7 +41,7 @@ public class KitMpAnyQUtil { if (mapperTarget == null) { return null; } - return BeanUtil.copyProperties(mapperTarget, mapperClazz); + return KitBeanUtil.copyToClass(mapperTarget, mapperClazz); } public static List selectList(BaseMapper baseMapper, Object queryParams) { @@ -56,7 +55,7 @@ public class KitMpAnyQUtil { if (mapperTarget == null) { return new ArrayList<>(); } - return BeanUtil.copyToList(mapperTarget, mapperClazz); + return KitBeanUtil.copyToList(mapperTarget, mapperClazz); } public static Long selectCount(BaseMapper baseMapper, Object queryParams) { @@ -74,7 +73,7 @@ public class KitMpAnyQUtil { QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); Page tPage = baseMapper.selectPage(page, queryWrapper); Page mapperTarget = new Page<>(); - mapperTarget.setRecords(BeanUtil.copyToList(tPage.getRecords(), mapperClazz)); + mapperTarget.setRecords(KitBeanUtil.copyToList(tPage.getRecords(), mapperClazz)); mapperTarget.setTotal(tPage.getTotal()); mapperTarget.setSize(tPage.getSize()); mapperTarget.setCurrent(tPage.getCurrent()); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java index 4ce8be51..c24f1b46 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.framework.mybatisplus.core; import cn.hutool.core.util.StrUtil; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java index 3e1a6522..80553c5f 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.framework.mybatisplus.core; import cn.hutool.core.collection.CollectionUtil; @@ -27,14 +26,15 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.extern.slf4j.Slf4j; /** @@ -84,21 +84,47 @@ public class KitMpQUtil { private static void handleWrapper(KitMpQuery q, QueryWrapper queryWrapper, String attributeName, Object fieldVal) { switch (q.type()) { - case EQUAL -> queryWrapper.eq(attributeName, fieldVal); - case GREATER_THAN -> queryWrapper.ge(attributeName, fieldVal); - case LESS_THAN -> queryWrapper.le(attributeName, fieldVal); - case LESS_THAN_NQ -> queryWrapper.lt(attributeName, fieldVal); - case INNER_LIKE -> queryWrapper.like(attributeName, fieldVal); - case LEFT_LIKE -> queryWrapper.likeLeft(attributeName, fieldVal); - case RIGHT_LIKE -> queryWrapper.likeRight(attributeName, fieldVal); - case IN -> handleInOrNotQuery(true, queryWrapper, attributeName, fieldVal); - case NOT_IN -> handleInOrNotQuery(false, queryWrapper, attributeName, fieldVal); - case NOT_EQUAL -> queryWrapper.ne(attributeName, fieldVal); - case NOT_NULL -> queryWrapper.isNotNull(attributeName); - case IS_NULL -> queryWrapper.isNull(attributeName); - case BETWEEN -> handleBetweenQuery(queryWrapper, fieldVal, attributeName); - default -> { - } + case EQUAL: + queryWrapper.eq(attributeName, fieldVal); + break; + case GREATER_THAN: + queryWrapper.ge(attributeName, fieldVal); + break; + case LESS_THAN: + queryWrapper.le(attributeName, fieldVal); + break; + case LESS_THAN_NQ: + queryWrapper.lt(attributeName, fieldVal); + break; + case INNER_LIKE: + queryWrapper.like(attributeName, fieldVal); + break; + case LEFT_LIKE: + queryWrapper.likeLeft(attributeName, fieldVal); + break; + case RIGHT_LIKE: + queryWrapper.likeRight(attributeName, fieldVal); + break; + case IN: + handleInOrNotQuery(true, queryWrapper, attributeName, fieldVal); + break; + case NOT_IN: + handleInOrNotQuery(false, queryWrapper, attributeName, fieldVal); + break; + case NOT_EQUAL: + queryWrapper.ne(attributeName, fieldVal); + break; + case NOT_NULL: + queryWrapper.isNotNull(attributeName); + break; + case IS_NULL: + queryWrapper.isNull(attributeName); + break; + case BETWEEN: + handleBetweenQuery(queryWrapper, fieldVal, attributeName); + break; + default: + break; } } @@ -152,7 +178,8 @@ public class KitMpQUtil { * @param / */ private static void handleBlurryQuery(QueryWrapper queryWrapper, String blurry, Object fieldVal) { - List blurryList = Arrays.stream(blurry.split(",")).filter(StrUtil::isNotBlank).distinct().toList(); + List blurryList = + Arrays.stream(blurry.split(",")).filter(StrUtil::isNotBlank).distinct().collect(Collectors.toList()); queryWrapper.and(wrapper -> { for (String blurryItem : blurryList) { String column = StrUtil.toUnderlineCase(blurryItem); @@ -171,7 +198,7 @@ public class KitMpQUtil { } public static void main(String[] args) { - QueryWrapper query = new QueryWrapper<>(); + QueryWrapper query = new QueryWrapper(); query.or(wrapper -> wrapper.eq("username", 1).or().eq("nickname", 2)); query.eq("id", 1); query.orderByDesc("id"); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java index f0ed545b..8278a0b6 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java @@ -13,13 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.framework.mybatisplus.core.interfaces; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ReflectUtil; import cn.odboy.base.KitPageResult; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -111,7 +110,7 @@ public interface KitMpMapper extends BaseMapper { if (CollUtil.isEmpty(list)) { return new ArrayList<>(); } - return BeanUtil.copyToList(list, clazz); + return KitBeanUtil.copyToList(list, clazz); } /** @@ -126,7 +125,7 @@ public interface KitMpMapper extends BaseMapper { if (CollUtil.isEmpty(list)) { return new ArrayList<>(); } - return BeanUtil.copyToList(list, clazz); + return KitBeanUtil.copyToList(list, clazz); } /** @@ -147,7 +146,7 @@ public interface KitMpMapper extends BaseMapper { if (CollUtil.isEmpty(pageInfo.getRecords())) { return new KitPageResult<>(new ArrayList<>(), pageInfo.getTotal()); } - return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); + return new KitPageResult<>(KitBeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); } /** @@ -168,7 +167,7 @@ public interface KitMpMapper extends BaseMapper { if (CollUtil.isEmpty(pageInfo.getRecords())) { return KitPageUtil.emptyListData(); } - return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); + return new KitPageResult<>(KitBeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); } /** @@ -183,6 +182,6 @@ public interface KitMpMapper extends BaseMapper { if (e == null) { return null; } - return BeanUtil.copyProperties(e, clazz); + return KitBeanUtil.copyToClass(e, clazz); } } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java index dedb70d6..5610b2f5 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.framework.mybatisplus.core.interfaces; import cn.odboy.base.KitPageResult; @@ -49,11 +48,11 @@ public interface KitMpService extends IService { List queryFeatureClazzListByIds(List ids, Class targetClazz); - List queryClazzListByArgs(Q criteria); + List queryClazzListByArgs(Q args); List queryClazzListByArgs(LambdaQueryWrapper wrapper); - List queryFeatureClazzListByArgs(Q criteria, Class targetClazz); + List queryFeatureClazzListByArgs(Q args, Class targetClazz); List queryFeatureClazzListByArgs(LambdaQueryWrapper wrapper, Class targetClazz); @@ -62,9 +61,9 @@ public interface KitMpService extends IService { KitPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz); - KitPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz); + KitPageResult queryFeatureClazzPageByArgs(Q args, IPage pageable, Class targetClazz); - KitPageResult queryClazzPageByArgs(Q criteria, IPage pageable); + KitPageResult queryClazzPageByArgs(Q args, IPage pageable); int modifyClazzByArgs(LambdaQueryWrapper wrapper, T entity); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java index 07b1ce5e..9be39c97 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java @@ -13,14 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.framework.mybatisplus.core.interfaces; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.mybatisplus.core.KitMpQUtil; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.enums.SqlMethod; @@ -46,7 +45,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl int saveFeatureClazz(G resources) { - return getBaseMapper().insert(BeanUtil.copyProperties(resources, this.getEntityClass())); + return getBaseMapper().insert(KitBeanUtil.copyToClass(resources, this.getEntityClass())); } /** @@ -55,7 +54,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl int saveFeatureClazzList(List resources) { - return getBaseMapper().insertBatchSomeColumn(BeanUtil.copyToList(resources, this.getEntityClass())); + return getBaseMapper().insertBatchSomeColumn(KitBeanUtil.copyToList(resources, this.getEntityClass())); } /** @@ -64,7 +63,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl int modifyFeatureClazzById(G resources) { - return getBaseMapper().updateById(BeanUtil.copyProperties(resources, this.getEntityClass())); + return getBaseMapper().updateById(KitBeanUtil.copyToClass(resources, this.getEntityClass())); } /** @@ -77,7 +76,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl { MapperMethod.ParamMap param = new MapperMethod.ParamMap<>(); - param.put("et", BeanUtil.copyProperties(entity, this.getEntityClass())); + param.put("et", KitBeanUtil.copyToClass(entity, this.getEntityClass())); sqlSession.update(sqlStatement, param); }); } @@ -90,7 +89,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl G queryFeatureClazzById(Serializable id, Class targetClazz) { T entity = this.getById(id); - return entity == null ? null : BeanUtil.copyProperties(entity, targetClazz); + return entity == null ? null : KitBeanUtil.copyToClass(entity, targetClazz); } /** @@ -127,7 +126,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl, T> extends ServiceImpl List queryFeatureClazzListByIds(List ids, Class targetClazz) { List entitys = this.listByIds(ids); - return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList() - : BeanUtil.copyToList(entitys, targetClazz); + return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList() : KitBeanUtil.copyToList(entitys, targetClazz); } /** * 查有关的数据 * - * @param criteria 动态条件 + * @param args 动态条件 */ - public List queryClazzListByArgs(Q criteria) { - QueryWrapper predicate = KitMpQUtil.build(criteria); + public List queryClazzListByArgs(Q args) { + QueryWrapper predicate = KitMpQUtil.build(args); return baseMapper.selectList(predicate); } @@ -167,13 +165,13 @@ public class KitMpServiceImpl, T> extends ServiceImpl List queryFeatureClazzListByArgs(Q criteria, Class targetClazz) { - QueryWrapper predicate = KitMpQUtil.build(criteria); + public List queryFeatureClazzListByArgs(Q args, Class targetClazz) { + QueryWrapper predicate = KitMpQUtil.build(args); List data = baseMapper.selectList(predicate); - return BeanUtil.copyToList(data, targetClazz); + return KitBeanUtil.copyToList(data, targetClazz); } /** @@ -186,7 +184,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl(); } - return BeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz); + return KitBeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz); } /** @@ -216,19 +214,19 @@ public class KitMpServiceImpl, T> extends ServiceImpl(); } IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), + return new KitPageResult<>(KitBeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); } - public KitPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz) { - QueryWrapper wrapper = KitMpQUtil.build(criteria); + public KitPageResult queryFeatureClazzPageByArgs(Q args, IPage pageable, Class targetClazz) { + QueryWrapper wrapper = KitMpQUtil.build(args); IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), + return new KitPageResult<>(KitBeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); } - public KitPageResult queryClazzPageByArgs(Q criteria, IPage pageable) { - QueryWrapper wrapper = KitMpQUtil.build(criteria); + public KitPageResult queryClazzPageByArgs(Q args, IPage pageable) { + QueryWrapper wrapper = KitMpQUtil.build(args); IPage originPageData = baseMapper.selectPage(pageable, wrapper); return new KitPageResult<>(originPageData.getRecords(), originPageData.getTotal()); } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java index a2dde622..719df015 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java @@ -1,4 +1,3 @@ - /* * Copyright 2021-2025 Odboy * @@ -14,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.odboy.annotation.AnonymousAccess; @@ -30,7 +28,7 @@ import lombok.experimental.UtilityClass; import org.springframework.context.ApplicationContext; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.mvc.condition.PathPatternsRequestCondition; +import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; @@ -48,9 +46,9 @@ public class KitAnonTagUtil { */ public static Map> getAnonymousUrl(final ApplicationContext applicationContext) { RequestMappingHandlerMapping requestMappingHandlerMapping = - applicationContext.getBean(RequestMappingHandlerMapping.class); + (RequestMappingHandlerMapping) applicationContext.getBean("requestMappingHandlerMapping"); Map handlerMethodMap = requestMappingHandlerMapping.getHandlerMethods(); - Map> anonymousUrls = new HashMap<>(8); + Map> anonymousUrls = new HashMap<>(8); // 获取匿名标记 Set get = new HashSet<>(); Set post = new HashSet<>(); @@ -66,15 +64,27 @@ public class KitAnonTagUtil { new ArrayList<>(infoEntry.getKey().getMethodsCondition().getMethods()); RequestMethodEnum request = RequestMethodEnum.find( requestMethods.isEmpty() ? RequestMethodEnum.ALL.getType() : requestMethods.get(0).name()); - PathPatternsRequestCondition pathPatternsCondition = infoEntry.getKey().getPathPatternsCondition(); - if (pathPatternsCondition != null) { + PatternsRequestCondition patternsCondition = infoEntry.getKey().getPatternsCondition(); + if (patternsCondition != null) { switch (Objects.requireNonNull(request)) { - case GET -> get.addAll(pathPatternsCondition.getPatternValues()); - case POST -> post.addAll(pathPatternsCondition.getPatternValues()); - case PUT -> put.addAll(pathPatternsCondition.getPatternValues()); - case PATCH -> patch.addAll(pathPatternsCondition.getPatternValues()); - case DELETE -> delete.addAll(pathPatternsCondition.getPatternValues()); - default -> all.addAll(pathPatternsCondition.getPatternValues()); + case GET: + get.addAll(patternsCondition.getPatterns()); + break; + case POST: + post.addAll(patternsCondition.getPatterns()); + break; + case PUT: + put.addAll(patternsCondition.getPatterns()); + break; + case PATCH: + patch.addAll(patternsCondition.getPatterns()); + break; + case DELETE: + delete.addAll(patternsCondition.getPatterns()); + break; + default: + all.addAll(patternsCondition.getPatterns()); + break; } } } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java index 95aef732..3947e7a9 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.hutool.core.codec.Base64Encoder; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBeanUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBeanUtil.java new file mode 100644 index 00000000..090657d4 --- /dev/null +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBeanUtil.java @@ -0,0 +1,34 @@ +package cn.odboy.util; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import lombok.experimental.UtilityClass; + +/** + * Bean拷贝相关 + * + * @author odboy + * @date 2026-01-06 + */ +@UtilityClass +public class KitBeanUtil { + + public static T copyToClass(Object source, Class tClass) { + return BeanUtil.copyProperties(source, tClass); + } + + public static void copyToTarget(Object source, Object target) { + BeanUtil.copyProperties(source, target, CopyOptions.create().setIgnoreNullValue(true)); + } + + public static List copyToList(Collection collection, Class targetType) { + List ts = BeanUtil.copyToList(collection, targetType); + if (ts == null) { + return new ArrayList<>(0); + } + return ts; + } +} diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java index f195e33f..d23d1685 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java @@ -1,4 +1,3 @@ - /* * Copyright 2021-2025 Odboy * @@ -14,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import java.math.BigDecimal; @@ -34,14 +32,14 @@ public final class KitBigDecimalUtil { * @return 转换后的 BigDecimal */ private static BigDecimal toBigDecimal(Object obj) { - if (obj instanceof BigDecimal b) { - return b; - } else if (obj instanceof Long l) { - return BigDecimal.valueOf(l); - } else if (obj instanceof Integer i) { - return BigDecimal.valueOf(i); - } else if (obj instanceof Double d) { - return new BigDecimal(d); + if (obj instanceof BigDecimal) { + return (BigDecimal) obj; + } else if (obj instanceof Long) { + return BigDecimal.valueOf((Long) obj); + } else if (obj instanceof Integer) { + return BigDecimal.valueOf((Integer) obj); + } else if (obj instanceof Double) { + return new BigDecimal(String.valueOf(obj)); } else { throw new IllegalArgumentException("Unsupported type"); } @@ -138,15 +136,12 @@ public final class KitBigDecimalUtil { public static void main(String[] args) { BigDecimal num1 = new BigDecimal("10.123"); BigDecimal num2 = new BigDecimal("2.456"); - System.out.println("加法结果: " + add(num1, num2)); System.out.println("减法结果: " + subtract(num1, num2)); System.out.println("乘法结果: " + multiply(num1, num2)); System.out.println("除法结果: " + divide(num1, num2)); - Long cents = 12345L; System.out.println("分转元结果: " + centsToYuan(cents)); - BigDecimal yuan = new BigDecimal("123.45"); System.out.println("元转分结果: " + yuanToCents(yuan)); } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java index e0f7c582..ef003570 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java @@ -13,14 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; -import jakarta.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException; +import jakarta.servlet.http.HttpServletRequest; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java index 45ae37a0..b9527561 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java @@ -1,4 +1,3 @@ - /* * Copyright 2021-2025 Odboy * @@ -14,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import java.lang.reflect.Field; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java index 3f31a2d0..41351658 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java @@ -1,4 +1,3 @@ - /* * Copyright 2021-2025 Odboy * @@ -14,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import java.io.Closeable; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java index ddeaa676..01ebabcc 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.odboy.base.KitSelectOptionVo; @@ -52,7 +51,7 @@ public final class KitCollUtil extends cn.hutool.core.collection.CollUtil { * 使用方式: list = CollUtil.streamDistinct(list, Object::getXXX) */ public static List streamDistinct(List data, Function keyMapper) { - return data.stream().filter(distinctPredicate(keyMapper)).toList(); + return data.stream().filter(distinctPredicate(keyMapper)).collect(Collectors.toList()); } /** @@ -68,7 +67,7 @@ public final class KitCollUtil extends cn.hutool.core.collection.CollUtil { */ public static > List streamAscSort(List data, Function keyExtractor) { - return data.stream().sorted(Comparator.comparing(keyExtractor)).toList(); + return data.stream().sorted(Comparator.comparing(keyExtractor)).collect(Collectors.toList()); } /** @@ -84,7 +83,7 @@ public final class KitCollUtil extends cn.hutool.core.collection.CollUtil { */ public static > List streamDescSort(List data, Function keyExtractor) { - return data.stream().sorted(Comparator.comparing(keyExtractor).reversed()).toList(); + return data.stream().sorted(Comparator.comparing(keyExtractor).reversed()).collect(Collectors.toList()); } /** diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java index 69d9c198..2e4b1d9c 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.hutool.core.date.DatePattern; @@ -69,32 +68,24 @@ public class KitDateUtil { // 什么都不返回 return ""; } - long betweenSeconds = DateUtil.between(startTime, endTime, cn.hutool.core.date.DateUnit.SECOND); - long days = betweenSeconds / (24 * 60 * 60); long hours = (betweenSeconds % (24 * 60 * 60)) / (60 * 60); long minutes = (betweenSeconds % (60 * 60)) / 60; long seconds = betweenSeconds % 60; - StringBuilder result = new StringBuilder(); - if (days > 0) { result.append(days).append("天"); } - if (hours > 0) { result.append(hours).append("时"); } - if (minutes > 0) { result.append(minutes).append("分"); } - - if (seconds > 0 || result.isEmpty()) { + if (seconds > 0 || result.length() == 0) { result.append(seconds).append("秒"); } - return result.toString(); } @@ -110,41 +101,32 @@ public class KitDateUtil { // 什么都不返回 return ""; } - long betweenMs = DateUtil.betweenMs(startTime, endTime); long days = betweenMs / (24 * 60 * 60 * 1000); long hours = (betweenMs % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000); long minutes = (betweenMs % (60 * 60 * 1000)) / (60 * 1000); long seconds = (betweenMs % (60 * 1000)) / 1000; long milliseconds = betweenMs % 1000; - StringBuilder result = new StringBuilder(); - if (days > 0) { result.append(days).append("天"); } - if (hours > 0) { result.append(hours).append("时"); } - if (minutes > 0) { result.append(minutes).append("分"); } - if (seconds > 0) { result.append(seconds).append("秒"); } - if (milliseconds > 0) { result.append(milliseconds).append("毫秒"); } - // 如果所有单位都是0,则显示0毫秒 - if (result.isEmpty()) { + if (result.length() == 0) { result.append("0毫秒"); } - return result.toString(); } } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java index 655b87af..a2c975ee 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import java.nio.charset.StandardCharsets; @@ -93,4 +92,3 @@ public final class KitDesEncryptUtil { return b2; } } - diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java index fadc4a27..6f02d687 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.odboy.framework.exception.BadRequestException; @@ -43,7 +42,6 @@ public final class KitDistributedIdUtil { * 序列号所占位数 */ private final long sequenceBits; - /** * 数据中心 ID 最大值 */ @@ -56,7 +54,6 @@ public final class KitDistributedIdUtil { * 序列号最大值 */ private final long sequenceMask; - /** * 机器 ID 向左移位数 */ @@ -69,7 +66,6 @@ public final class KitDistributedIdUtil { * 时间戳向左移位数 */ private final long timestampLeftShift; - /** * 数据中心 ID */ @@ -101,15 +97,12 @@ public final class KitDistributedIdUtil { this.dataCenterIdBits = dataCenterIdBits; this.workerIdBits = workerIdBits; this.sequenceBits = sequenceBits; - this.maxDataCenterId = ~(-1L << dataCenterIdBits); this.maxWorkerId = ~(-1L << workerIdBits); this.sequenceMask = ~(-1L << sequenceBits); - this.workerIdShift = sequenceBits; this.dataCenterIdShift = sequenceBits + workerIdBits; this.timestampLeftShift = sequenceBits + workerIdBits + dataCenterIdBits; - if (dataCenterId > maxDataCenterId || dataCenterId < 0) { throw new IllegalArgumentException( "Data center ID can't be greater than " + maxDataCenterId + " or less than 0"); @@ -153,14 +146,12 @@ public final class KitDistributedIdUtil { */ public long nextId() { long currentTimestamp = System.currentTimeMillis(); - // 如果当前时间戳小于上一次生成 ID 的时间戳, 说明时钟回拨,抛出异常 if (currentTimestamp < lastTimestamp.get()) { throw new BadRequestException( "Clock moved backwards. Refusing to generate id for " + (lastTimestamp.get() - currentTimestamp) + " milliseconds"); } - long lastTimestampValue = lastTimestamp.get(); if (currentTimestamp == lastTimestampValue) { // 同一毫秒内,序列号自增 diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java index 9ca0dd15..f8d6e7f9 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java @@ -27,9 +27,6 @@ import cn.hutool.poi.excel.ExcelUtil; import cn.odboy.constant.FileTypeEnum; import cn.odboy.constant.SystemConst; import cn.odboy.framework.exception.BadRequestException; -import jakarta.servlet.ServletOutputStream; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -44,6 +41,9 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import jakarta.servlet.ServletOutputStream; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import org.apache.poi.util.IOUtils; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java index 4514d61e..6d651fe3 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.odboy.framework.context.KitSpringBeanHolder; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java index 1ef25569..8b8fc9d5 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import com.alibaba.fastjson2.JSON; @@ -32,12 +31,12 @@ import lombok.experimental.UtilityClass; public final class KitJsonUtil { public static Map toMap(String jsonStr, Class kClass, Class vClass) { - return JSON.parseObject(jsonStr, new TypeReference<>() { + return JSON.parseObject(jsonStr, new TypeReference>() { }); } public static List toList(String jsonStr, Class vClass) { - return JSON.parseObject(jsonStr, new TypeReference<>() { + return JSON.parseObject(jsonStr, new TypeReference>() { }); } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java index 9164bdaf..ca212ef4 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.hutool.core.date.DateTime; @@ -41,7 +40,7 @@ public final class KitListUtil { */ public static List distinctByArgs(List items, Function classifier) { return items.stream().collect(Collectors.groupingBy(classifier)).values().stream() - .map(monitorItem -> monitorItem.iterator().next()).toList(); + .map(monitorItem -> monitorItem.iterator().next()).collect(Collectors.toList()); } /** diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java index 6137775c..022b77c6 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import lombok.experimental.UtilityClass; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java index 26e3e701..f1d888aa 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.odboy.base.KitPageResult; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java index adc96b47..66b5b4d2 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.hutool.core.lang.Dict; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java index 02f9ef3e..73dfaaef 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java @@ -1,4 +1,3 @@ - /* * Copyright 2021-2025 Odboy * @@ -14,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import java.lang.reflect.Method; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java index 2abd829d..ce715058 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import java.io.ByteArrayOutputStream; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java index 61702164..059cbd47 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java @@ -1,4 +1,3 @@ - /* * Copyright 2021-2025 Odboy * @@ -14,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import java.util.Calendar; @@ -40,14 +38,11 @@ public final class KitStringUtil { if (s == null) { return null; } - s = s.toLowerCase(); - StringBuilder sb = new StringBuilder(s.length()); boolean upperCase = false; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); - if (c == SEPARATOR) { upperCase = true; } else if (upperCase) { @@ -57,7 +52,6 @@ public final class KitStringUtil { sb.append(c); } } - return sb.toString(); } @@ -83,18 +77,14 @@ public final class KitStringUtil { if (s == null) { return null; } - StringBuilder sb = new StringBuilder(); boolean upperCase = false; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); - boolean nextUpperCase = true; - if (i < (s.length() - 1)) { nextUpperCase = Character.isUpperCase(s.charAt(i + 1)); } - if ((i > 0) && Character.isUpperCase(c)) { if (!upperCase || !nextUpperCase) { sb.append(SEPARATOR); @@ -103,10 +93,8 @@ public final class KitStringUtil { } else { upperCase = false; } - sb.append(Character.toLowerCase(c)); } - return sb.toString(); } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java index c008d938..fd967556 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java @@ -1,4 +1,3 @@ - /* * Copyright 2021-2025 Odboy * @@ -14,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import oshi.SystemInfo; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java index b5a4c4f9..bfcf2870 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java @@ -13,17 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.util; import cn.odboy.framework.exception.BadRequestException; +import java.util.Set; +import java.util.stream.Collectors; import jakarta.validation.ConstraintViolation; import jakarta.validation.Validation; import jakarta.validation.Validator; import jakarta.validation.ValidatorFactory; import jakarta.validation.groups.Default; -import java.util.Set; -import java.util.stream.Collectors; import lombok.experimental.UtilityClass; /** diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelExporter.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelExporter.java index b36f3c3f..8372a27d 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelExporter.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitExcelExporter.java @@ -3,12 +3,12 @@ package cn.odboy.util.xlsx; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.idev.excel.EasyExcel; -import jakarta.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Date; import java.util.List; +import jakarta.servlet.http.HttpServletResponse; /** * EasyExcel 导出增强工具类 (支持普通/分页模式) diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitXlsxExportUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitXlsxExportUtil.java index 14e60780..320b0f2a 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitXlsxExportUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/xlsx/KitXlsxExportUtil.java @@ -6,13 +6,13 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.idev.excel.FastExcel; import cn.odboy.framework.exception.BadRequestException; -import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Date; import java.util.List; +import jakarta.servlet.http.HttpServletResponse; import lombok.experimental.UtilityClass; /** diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java index 3463d912..382e7b2a 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java @@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.model.SystemCreateDeptArgs; +import cn.odboy.system.dal.model.SystemDeptVo; import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.service.SystemDeptService; @@ -67,7 +68,7 @@ public class SystemDeptController { @ApiOperation("查询部门:根据ID获取同级与上级数据") @PostMapping("/searchDeptTree") @PreAuthorize("@el.check('user:list','dept:list')") - public ResponseEntity> queryDeptSuperiorTree(@RequestBody List ids, + public ResponseEntity> queryDeptSuperiorTree(@RequestBody List ids, @RequestParam(defaultValue = "false") Boolean exclude) { return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude)); } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java index 1cc58b40..2b7fae6e 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java @@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemMenuTb; +import cn.odboy.system.dal.model.SystemMenuRouterVo; import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.framework.operalog.OperationLog; @@ -58,9 +59,9 @@ public class SystemMenuController { @PostMapping(value = "/buildMenus") @ApiOperation("获取前端所需菜单") - public ResponseEntity> buildMenus() { - List systemMenuVos = systemMenuService.buildFrontMenus(); - return ResponseEntity.ok(systemMenuVos); + public ResponseEntity> buildMenus() { + List systemMenuRouterVos = systemMenuService.buildFrontMenus(); + return ResponseEntity.ok(systemMenuRouterVos); } @ApiOperation("返回全部的菜单") @@ -91,8 +92,8 @@ public class SystemMenuController { @ApiOperation("查询菜单:根据ID获取同级与上级数据") @PostMapping("/queryMenuSuperior") @PreAuthorize("@el.check('menu:list')") - public ResponseEntity> queryMenuSuperior(@RequestBody List ids) { - List systemMenuTbs = systemMenuService.listMenuSuperior(ids); + public ResponseEntity> queryMenuSuperior(@RequestBody List ids) { + List systemMenuTbs = systemMenuService.listMenuSuperior(ids); return ResponseEntity.ok(systemMenuTbs); } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDeptTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDeptTb.java index 0bd75d4f..873aa146 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDeptTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDeptTb.java @@ -16,15 +16,11 @@ package cn.odboy.system.dal.dataobject; import cn.odboy.base.KitBaseUserTimeTb; -import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; -import java.util.List; import java.util.Objects; -import java.util.Set; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Getter; @@ -39,13 +35,6 @@ public class SystemDeptTb extends KitBaseUserTimeTb { @TableId(value = "dept_id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) private Long id; - @TableField(exist = false) - @JSONField(serialize = false) - @ApiModelProperty(value = "角色") - private Set roles; - @TableField(exist = false) - @ApiModelProperty(value = "子部门") - private List children; @ApiModelProperty(value = "排序") private Integer deptSort; @NotBlank diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemLocalStorageTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemLocalStorageTb.java index ee0d7011..92c19c3b 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemLocalStorageTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemLocalStorageTb.java @@ -15,9 +15,8 @@ */ package cn.odboy.system.dal.dataobject; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.bean.copier.CopyOptions; import cn.odboy.base.KitBaseUserTimeTb; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -49,6 +48,6 @@ public class SystemLocalStorageTb extends KitBaseUserTimeTb { private String dateGroup; public void copy(SystemLocalStorageTb source) { - BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); + KitBeanUtil.copyToTarget(source, this); } } \ No newline at end of file diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemMenuTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemMenuTb.java index 1a4751fa..0a9f3aa3 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemMenuTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemMenuTb.java @@ -16,15 +16,12 @@ package cn.odboy.system.dal.dataobject; import cn.odboy.base.KitBaseUserTimeTb; -import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; -import java.util.List; import java.util.Objects; -import java.util.Set; import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; @@ -38,12 +35,6 @@ public class SystemMenuTb extends KitBaseUserTimeTb { @TableId(value = "menu_id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) private Long id; - @TableField(exist = false) - @JSONField(serialize = false) - @ApiModelProperty(value = "菜单角色") - private Set roles; - @TableField(exist = false) - private List children; @ApiModelProperty(value = "菜单标题") private String title; @TableField(value = "name") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzJobTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzJobTb.java index 6e46522a..56a34d84 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzJobTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzJobTb.java @@ -36,9 +36,6 @@ public class SystemQuartzJobTb extends KitBaseUserTimeTb { @TableId(value = "id", type = IdType.AUTO) @NotNull(groups = {Update.class}) private Long id; - @TableField(exist = false) - @ApiModelProperty(value = "用于子任务唯一标识", hidden = true) - private String uuid; @ApiModelProperty(value = "定时器名称") private String jobName; @NotBlank diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemRoleTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemRoleTb.java index bb213601..8372251a 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemRoleTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemRoleTb.java @@ -45,8 +45,7 @@ public class SystemRoleTb extends KitBaseUserTimeTb { @ApiModelProperty(value = "名称", hidden = true) private String name; @ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义") - private String dataScope = - SystemDataScopeEnum.THIS_LEVEL.getValue(); + private String dataScope = SystemDataScopeEnum.THIS_LEVEL.getValue(); @ApiModelProperty(value = "级别,数值越小,级别越大") private Integer level = 3; @ApiModelProperty(value = "描述") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemUserTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemUserTb.java index c96de1be..0928b5f4 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemUserTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemUserTb.java @@ -41,9 +41,6 @@ public class SystemUserTb extends KitBaseUserTimeTb { @TableField(value = "dept_id") @ApiModelProperty(hidden = true) private Long deptId; - @ApiModelProperty(value = "用户部门") - @TableField(exist = false) - private SystemDeptTb dept; @NotBlank @ApiModelProperty(value = "用户名称") private String username; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDeptVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDeptVo.java new file mode 100644 index 00000000..eacacdbb --- /dev/null +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDeptVo.java @@ -0,0 +1,19 @@ +package cn.odboy.system.dal.model; + +import cn.odboy.system.dal.dataobject.SystemDeptTb; +import cn.odboy.system.dal.dataobject.SystemRoleTb; +import io.swagger.annotations.ApiModelProperty; +import java.util.List; +import java.util.Set; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class SystemDeptVo extends SystemDeptTb { + + @ApiModelProperty(value = "角色") + private Set roles; + @ApiModelProperty(value = "子部门") + private List children; +} diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuRouterVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuRouterVo.java new file mode 100644 index 00000000..e8c5ff8d --- /dev/null +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuRouterVo.java @@ -0,0 +1,47 @@ +/* + * Copyright 2021-2025 Odboy + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.odboy.system.dal.model; + +import cn.odboy.base.KitObject; +import io.swagger.annotations.ApiModelProperty; +import java.util.List; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 构建前端路由时用到 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class SystemMenuRouterVo extends KitObject { + + @ApiModelProperty(value = "菜单名称") + private String name; + @ApiModelProperty(value = "路径") + private String path; + @ApiModelProperty(value = "隐藏状态") + private Boolean hidden; + @ApiModelProperty(value = "重定向") + private String redirect; + @ApiModelProperty(value = "组件") + private String component; + @ApiModelProperty(value = "总是显示") + private Boolean alwaysShow; + @ApiModelProperty(value = "元数据") + private SystemMenuMetaVo meta; + @ApiModelProperty(value = "子路由") + private List children; +} diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuVo.java index 75c33b9e..3632c9f8 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuVo.java @@ -1,47 +1,19 @@ -/* - * Copyright 2021-2025 Odboy - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ package cn.odboy.system.dal.model; -import cn.odboy.base.KitObject; +import cn.odboy.system.dal.dataobject.SystemMenuTb; +import cn.odboy.system.dal.dataobject.SystemRoleTb; import io.swagger.annotations.ApiModelProperty; import java.util.List; -import lombok.Data; -import lombok.EqualsAndHashCode; +import java.util.Set; +import lombok.Getter; +import lombok.Setter; -/** - * 构建前端路由时用到 - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class SystemMenuVo extends KitObject { +@Getter +@Setter +public class SystemMenuVo extends SystemMenuTb { - @ApiModelProperty(value = "菜单名称") - private String name; - @ApiModelProperty(value = "路径") - private String path; - @ApiModelProperty(value = "隐藏状态") - private Boolean hidden; - @ApiModelProperty(value = "重定向") - private String redirect; - @ApiModelProperty(value = "组件") - private String component; - @ApiModelProperty(value = "总是显示") - private Boolean alwaysShow; - @ApiModelProperty(value = "元数据") - private SystemMenuMetaVo meta; - @ApiModelProperty(value = "子路由") + @ApiModelProperty(value = "菜单角色") + private Set roles; + @ApiModelProperty(value = "子菜单") private List children; } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzJobVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzJobVo.java new file mode 100644 index 00000000..5ef8e4ef --- /dev/null +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzJobVo.java @@ -0,0 +1,14 @@ +package cn.odboy.system.dal.model; + +import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class SystemQuartzJobVo extends SystemQuartzJobTb { + + @ApiModelProperty(value = "用于子任务唯一标识", hidden = true) + private String uuid; +} diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserVo.java index b5463eea..0719ec2b 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserVo.java @@ -1,5 +1,6 @@ package cn.odboy.system.dal.model; +import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; @@ -11,7 +12,8 @@ import lombok.Setter; @Getter @Setter public class SystemUserVo extends SystemUserTb { - + @ApiModelProperty(value = "用户部门") + private SystemDeptTb dept; @ApiModelProperty(value = "用户角色") private Set roles; @ApiModelProperty(value = "用户岗位") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemQuartzJobMapper.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemQuartzJobMapper.java index 333270ea..a2a0bbe3 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemQuartzJobMapper.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemQuartzJobMapper.java @@ -16,6 +16,8 @@ package cn.odboy.system.dal.mysql; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; +import cn.odboy.system.dal.model.SystemQuartzJobVo; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -27,4 +29,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SystemQuartzJobMapper extends BaseMapper { + default SystemQuartzJobVo selectVoById(String id) { + return KitBeanUtil.copyToClass(selectById(id), SystemQuartzJobVo.class); + } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java index c2dbe4ec..d71dac1d 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java @@ -1,6 +1,5 @@ package cn.odboy.system.dal.redis; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; import cn.odboy.framework.properties.AppProperties; @@ -8,20 +7,17 @@ import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.model.SystemUserJwtVo; import cn.odboy.system.dal.model.SystemUserOnlineVo; import cn.odboy.system.framework.permission.core.handler.TokenProvider; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitBrowserUtil; import cn.odboy.util.KitDesEncryptUtil; -import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitIPUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.metadata.IPage; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Date; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import jakarta.servlet.http.HttpServletRequest; @@ -81,28 +77,28 @@ public class SystemUserOnlineInfoDAO { redisHelper.del(loginKey); } - /** - * 导出 - * - * @param all / - * @param response / - * @throws IOException / - */ - public void downloadUserOnlineModelExcel(List all, HttpServletResponse response) - throws IOException { - List> list = new ArrayList<>(); - for (SystemUserOnlineVo user : all) { - Map map = new LinkedHashMap<>(); - map.put("用户名", user.getUserName()); - map.put("部门", user.getDept()); - map.put("登录IP", user.getIp()); - map.put("登录地点", user.getAddress()); - map.put("浏览器", user.getBrowser()); - map.put("登录日期", user.getLoginTime()); - list.add(map); - } - KitFileUtil.downloadExcel(list, response); - } +// /** +// * 导出 +// * +// * @param all / +// * @param response / +// * @throws IOException / +// */ +// public void downloadUserOnlineModelExcel(List all, HttpServletResponse response) +// throws IOException { +// List> list = new ArrayList<>(); +// for (SystemUserOnlineVo user : all) { +// Map map = new LinkedHashMap<>(); +// map.put("用户名", user.getUserName()); +// map.put("部门", user.getDept()); +// map.put("登录IP", user.getIp()); +// map.put("登录地点", user.getAddress()); +// map.put("浏览器", user.getBrowser()); +// map.put("登录日期", user.getLoginTime()); +// list.add(map); +// } +// KitFileUtil.downloadExcel(list, response); +// } /** * 根据用户名强退用户 @@ -172,8 +168,8 @@ public class SystemUserOnlineInfoDAO { public void exportOnlineUserXlsx(HttpServletResponse response, String username) { List userOnlineVos = this.queryUserOnlineModelListByUsername(username); // KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class))); - List rowVos = BeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class); +// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class))); + List rowVos = KitBeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class); KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos); } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java index 621aa09d..53646b96 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package cn.odboy.system.framework.quartz; import cn.hutool.core.exceptions.ExceptionUtil; @@ -27,6 +26,7 @@ import cn.odboy.framework.quartz.core.QuartzRunnable; import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; +import cn.odboy.system.dal.model.SystemQuartzJobVo; import cn.odboy.system.dal.model.SystemSendEmailArgs; import cn.odboy.system.dal.mysql.SystemQuartzLogMapper; import cn.odboy.system.service.SystemEmailService; @@ -52,14 +52,12 @@ public class ExecutionJobBean extends QuartzJobBean { @Override public void executeInternal(JobExecutionContext context) { // 获取任务 - SystemQuartzJobTb quartzJob = (SystemQuartzJobTb) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY); + SystemQuartzJobVo quartzJob = (SystemQuartzJobVo) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY); // 获取spring bean SystemQuartzLogMapper quartzLogMapper = KitSpringBeanHolder.getBean(SystemQuartzLogMapper.class); SystemQuartzJobService systemQuartzJobService = KitSpringBeanHolder.getBean(SystemQuartzJobService.class); KitRedisHelper redisHelper = KitSpringBeanHolder.getBean(KitRedisHelper.class); - String uuid = quartzJob.getUuid(); - SystemQuartzLogTb quartzLog = new SystemQuartzLogTb(); quartzLog.setJobName(quartzJob.getJobName()); quartzLog.setBeanName(quartzJob.getBeanName()); @@ -69,8 +67,7 @@ public class ExecutionJobBean extends QuartzJobBean { quartzLog.setCronExpression(quartzJob.getCronExpression()); try { // 执行任务 - QuartzRunnable task = - new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), quartzJob.getParams()); + QuartzRunnable task = new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), quartzJob.getParams()); Future future = executor.submit(task); // 忽略任务执行结果 future.get(); @@ -123,8 +120,7 @@ public class ExecutionJobBean extends QuartzJobBean { Map data = new HashMap<>(16); data.put("task", quartzJob); data.put("msg", msg); - TemplateEngine engine = - TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); + TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); Template template = engine.getTemplate("SystemQuartzJobTaskAlarmTemplate.ftl"); sendEmailRequest.setContent(template.render(data)); List emails = Arrays.asList(quartzJob.getEmail().split("[,,]")); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemAuthService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemAuthService.java index 441f4d2c..9112506f 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemAuthService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemAuthService.java @@ -1,6 +1,5 @@ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.constant.CaptchaCodeEnum; @@ -16,6 +15,7 @@ import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.framework.permission.core.handler.TokenProvider; import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitRsaEncryptUtil; import com.wf.captcha.base.Captcha; import java.util.HashMap; @@ -47,8 +47,7 @@ public class SystemAuthService { public Map doLogin(SystemUserLoginArgs loginRequest, HttpServletRequest request) throws Exception { // 密码解密 - String password = - KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword()); + String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword()); // 查询验证码 String code = redisHelper.get(loginRequest.getUuid(), String.class); // 清除验证码 @@ -65,15 +64,14 @@ public class SystemAuthService { if (!passwordEncoder.matches(password, jwtUser.getPassword())) { throw new BadRequestException("登录密码错误"); } - Authentication authentication = - new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities()); + Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); // 生成令牌 String token = tokenProvider.createToken(jwtUser); // 返回 token 与 用户信息 Map authInfo = new HashMap<>(2) {{ put("token", String.format("%s %s", SystemConst.TOKEN_PREFIX, token)); - put("user", BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class)); + put("user", KitBeanUtil.copyToClass(jwtUser, SystemUserInfoVo.class)); }}; if (properties.getLogin().isSingle()) { // 踢掉之前已经登录的token @@ -87,7 +85,8 @@ public class SystemAuthService { public SystemUserInfoVo getCurrentUserInfoVo() { SystemUserJwtVo jwtUser = (SystemUserJwtVo) KitSecurityHelper.getCurrentUser(); - return BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class); + // 转换是为了去掉密码 + return KitBeanUtil.copyToClass(jwtUser, SystemUserInfoVo.class); } public Map getCaptchaInfo() { diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDataService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDataService.java index 587cc79e..880d588c 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDataService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDataService.java @@ -19,8 +19,8 @@ import cn.hutool.core.collection.CollUtil; import cn.odboy.system.constant.SystemDataScopeEnum; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; -import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemRoleVo; +import cn.odboy.system.dal.model.SystemUserVo; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -49,7 +49,7 @@ public class SystemDataService { * @param user / * @return / */ - public List queryDeptIdByArgs(SystemUserTb user) { + public List queryDeptIdByArgs(SystemUserVo user) { List deptIds = new ArrayList<>(); // 查询用户角色 List roleList = systemUserRoleService.queryRoleByUsersId(user.getId()); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java index 84955cae..dbaf2674 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; @@ -27,11 +26,13 @@ import cn.odboy.system.constant.SystemZhConst; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.model.SystemCreateDeptArgs; import cn.odboy.system.dal.model.SystemDeptExportRowVo; +import cn.odboy.system.dal.model.SystemDeptVo; import cn.odboy.system.dal.model.SystemProductLineTreeVo; import cn.odboy.system.dal.model.SystemProductLineVo; import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.dal.mysql.SystemDeptMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitClassUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -68,7 +69,7 @@ public class SystemDeptService { */ @Transactional(rollbackFor = Exception.class) public void saveDept(SystemCreateDeptArgs args) { - systemDeptMapper.insert(BeanUtil.copyProperties(args, SystemDeptTb.class)); + systemDeptMapper.insert(KitBeanUtil.copyToClass(args, SystemDeptTb.class)); this.updateDeptSubCnt(args.getPid()); } @@ -272,7 +273,7 @@ public class SystemDeptService { * * @return / */ - public KitPageResult searchDeptTree(List ids, Boolean exclude) { + public KitPageResult searchDeptTree(List ids, Boolean exclude) { Set deptSet1 = new LinkedHashSet<>(); for (Long id : ids) { // 同级数据 @@ -290,18 +291,18 @@ public class SystemDeptService { } deptSet1.addAll(depts); } - ArrayList deptList = new ArrayList<>(deptSet1); + List deptList = KitBeanUtil.copyToList(new ArrayList<>(deptSet1), SystemDeptVo.class); // 构建部门树 - Set trees = new LinkedHashSet<>(); - Set deptSet = new LinkedHashSet<>(); - List deptNames = deptList.stream().map(SystemDeptTb::getName).collect(Collectors.toList()); + Set trees = new LinkedHashSet<>(); + Set deptSet = new LinkedHashSet<>(); + List deptNames = deptList.stream().map(SystemDeptVo::getName).collect(Collectors.toList()); boolean isChild; - for (SystemDeptTb dept : deptList) { + for (SystemDeptVo dept : deptList) { isChild = false; if (dept.getPid() == null) { trees.add(dept); } - for (SystemDeptTb it : deptList) { + for (SystemDeptVo it : deptList) { if (it.getPid() != null && dept.getId().equals(it.getPid())) { isChild = true; if (dept.getChildren() == null) { @@ -319,7 +320,7 @@ public class SystemDeptService { if (CollectionUtil.isEmpty(trees)) { trees = deptSet; } - KitPageResult baseResult = new KitPageResult<>(); + KitPageResult baseResult = new KitPageResult<>(); baseResult.setContent(CollectionUtil.isEmpty(trees) ? new ArrayList<>(deptSet) : new ArrayList<>(trees)); baseResult.setTotalElements(deptSet.size()); return baseResult; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java index 6f81af6a..183b465d 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; @@ -26,6 +25,7 @@ import cn.odboy.system.dal.model.SystemDictDetailVo; import cn.odboy.system.dal.model.SystemQueryDictDetailArgs; import cn.odboy.system.dal.mysql.SystemDictDetailMapper; import cn.odboy.system.dal.mysql.SystemDictMapper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -55,7 +55,7 @@ public class SystemDictDetailService { */ @Transactional(rollbackFor = Exception.class) public void saveDictDetail(SystemCreateDictDetailArgs args) { - SystemDictDetailTb dictDetail = BeanUtil.copyProperties(args, SystemDictDetailTb.class); + SystemDictDetailTb dictDetail = KitBeanUtil.copyToClass(args, SystemDictDetailTb.class); dictDetail.setDictId(args.getDict().getId()); systemDictDetailMapper.insert(dictDetail); } @@ -106,7 +106,7 @@ public class SystemDictDetailService { */ public KitPageResult searchDictDetail(SystemQueryDictDetailArgs args, Page page) { - IPage iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> BeanUtil.copyProperties(i, SystemDictDetailVo.class)); + IPage iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> KitBeanUtil.copyToClass(i, SystemDictDetailVo.class)); List dictIds = iPage.getRecords().stream().map(SystemDictDetailTb::getDictId).collect(Collectors.toList()); Map id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i)); for (SystemDictDetailVo record : iPage.getRecords()) { @@ -130,7 +130,7 @@ public class SystemDictDetailService { return new ArrayList<>(); } return this.listDictDetailByDictId(systemDictTb.getId()).stream().map(m -> { - SystemDictDetailVo detailVo = BeanUtil.copyProperties(m, SystemDictDetailVo.class); + SystemDictDetailVo detailVo = KitBeanUtil.copyToClass(m, SystemDictDetailVo.class); detailVo.setDict(systemDictTb); return detailVo; }).collect(Collectors.toList()); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java index 86df8fff..c2338b5c 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; @@ -25,6 +24,7 @@ import cn.odboy.system.dal.model.SystemDictDetailVo; import cn.odboy.system.dal.model.SystemDictExportRowVo; import cn.odboy.system.dal.model.SystemQueryDictArgs; import cn.odboy.system.dal.mysql.SystemDictMapper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -52,7 +52,7 @@ public class SystemDictService { */ @Transactional(rollbackFor = Exception.class) public void saveDict(SystemCreateDictArgs args) { - systemDictMapper.insert(BeanUtil.copyProperties(args, SystemDictTb.class)); + systemDictMapper.insert(KitBeanUtil.copyToClass(args, SystemDictTb.class)); } /** diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java index b9347a9c..d76b925b 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; @@ -25,6 +24,7 @@ import cn.odboy.system.dal.model.SystemCreateJobArgs; import cn.odboy.system.dal.model.SystemJobExportRowVo; import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.dal.mysql.SystemJobMapper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -56,7 +56,7 @@ public class SystemJobService { if (job != null) { throw new BadRequestException("职位名称已存在"); } - systemJobMapper.insert(BeanUtil.copyProperties(args, SystemJobTb.class)); + systemJobMapper.insert(KitBeanUtil.copyToClass(args, SystemJobTb.class)); } /** diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java index d5b19dfb..a423d4dd 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; @@ -31,6 +30,7 @@ import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemLocalStorageMapper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; @@ -172,8 +172,8 @@ public class SystemLocalStorageService { public void exportLocalStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) { List systemLocalStorageTbs = this.queryLocalStorageByArgs(args); // KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class))); - List rowVos = BeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class); +// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class))); + List rowVos = KitBeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class); KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos); } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java index 3ce013c7..8fcd43c2 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java @@ -26,11 +26,13 @@ import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.model.SystemMenuExportRowVo; import cn.odboy.system.dal.model.SystemMenuMetaVo; +import cn.odboy.system.dal.model.SystemMenuRouterVo; import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitClassUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -278,14 +280,14 @@ public class SystemMenuService { * @param menus 原始数据 * @return / */ - public List buildMenuTree(List menus) { - List trees = new ArrayList<>(); + public List buildMenuTree(List menus) { + List trees = new ArrayList<>(); Set ids = new HashSet<>(); - for (SystemMenuTb menu : menus) { + for (SystemMenuVo menu : menus) { if (menu.getPid() == null) { trees.add(menu); } - for (SystemMenuTb it : menus) { + for (SystemMenuVo it : menus) { if (menu.getId().equals(it.getPid())) { if (menu.getChildren() == null) { menu.setChildren(new ArrayList<>()); @@ -307,12 +309,12 @@ public class SystemMenuService { * @param menus / * @return / */ - public List buildMenuVo(List menus) { - List list = new LinkedList<>(); - menus.forEach(menu -> { + public List buildMenuVo(List menus) { + List list = new LinkedList<>(); + for (SystemMenuVo menu : menus) { if (menu != null) { - List menuList = menu.getChildren(); - SystemMenuVo menuVo = new SystemMenuVo(); + List menuList = menu.getChildren(); + SystemMenuRouterVo menuVo = new SystemMenuRouterVo(); menuVo.setName( ObjectUtil.isNotEmpty(menu.getComponentName()) ? menu.getComponentName() : menu.getTitle()); // 一级目录需要加斜杠, 不然会报警告 @@ -336,17 +338,17 @@ public class SystemMenuService { menuVo.setChildren(buildMenuVo(menuList)); // 处理是一级菜单并且没有子菜单的情况 } else if (menu.getPid() == null) { - SystemMenuVo menuVo1 = getMenuVo(menu, menuVo); + SystemMenuRouterVo menuVo1 = getMenuVo(menu, menuVo); menuVo.setName(null); menuVo.setMeta(null); menuVo.setComponent("Layout"); - List list1 = new ArrayList<>(); + List list1 = new ArrayList<>(); list1.add(menuVo1); menuVo.setChildren(list1); } list.add(menuVo); } - }); + } return list; } @@ -357,8 +359,8 @@ public class SystemMenuService { * @param menuVo / * @return / */ - private SystemMenuVo getMenuVo(SystemMenuTb menu, SystemMenuVo menuVo) { - SystemMenuVo menuVo1 = new SystemMenuVo(); + private SystemMenuRouterVo getMenuVo(SystemMenuTb menu, SystemMenuRouterVo menuVo) { + SystemMenuRouterVo menuVo1 = new SystemMenuRouterVo(); menuVo1.setMeta(menuVo.getMeta()); // 非外链 if (!menu.getIFrame()) { @@ -418,10 +420,11 @@ public class SystemMenuService { return systemMenuMapper.selectList(wrapper); } - public List buildFrontMenus() { + public List buildFrontMenus() { List menuList = this.listMenuByUserId(KitSecurityHelper.getCurrentUserId()); - List menus = this.buildMenuTree(menuList); - return this.buildMenuVo(menus); + List originMenus = KitBeanUtil.copyToList(menuList, SystemMenuVo.class); + List targetMenus = this.buildMenuTree(originMenus); + return this.buildMenuVo(targetMenus); } public Set listChildMenuSetByMenuId(Long id) { @@ -432,9 +435,9 @@ public class SystemMenuService { return menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet()); } - public List listMenuSuperior(List ids) { + public List listMenuSuperior(List ids) { Set menus; - List systemMenuTbs; + List systemMenuTbs; if (CollectionUtil.isNotEmpty(ids)) { menus = new LinkedHashSet<>(this.listMenuByIds(ids)); for (SystemMenuTb menu : menus) { @@ -448,9 +451,11 @@ public class SystemMenuService { } // 编辑菜单时不显示自己以及自己下级的数据, 避免出现PID数据环形问题 menus = menus.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet()); - systemMenuTbs = this.buildMenuTree(new ArrayList<>(menus)); + List newMenuList = new ArrayList<>(menus); + systemMenuTbs = this.buildMenuTree(KitBeanUtil.copyToList(newMenuList, SystemMenuVo.class)); } else { - systemMenuTbs = this.listMenuByPid(null); + List newMenuList = this.listMenuByPid(null); + systemMenuTbs = KitBeanUtil.copyToList(newMenuList, SystemMenuVo.class); } return systemMenuTbs; } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java index bed1e10a..727cbe67 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; @@ -26,12 +25,14 @@ import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo; +import cn.odboy.system.dal.model.SystemQuartzJobVo; import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo; import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs; import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs; import cn.odboy.system.dal.mysql.SystemQuartzJobMapper; import cn.odboy.system.dal.mysql.SystemQuartzLogMapper; import cn.odboy.system.framework.quartz.QuartzManage; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -108,7 +109,7 @@ public class SystemQuartzJobService { throw new BadRequestException("子任务中不能添加当前任务ID"); } } - SystemQuartzJobTb quartzJob = BeanUtil.copyProperties(args, SystemQuartzJobTb.class); + SystemQuartzJobTb quartzJob = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class); systemQuartzJobMapper.insertOrUpdate(quartzJob); quartzManage.updateJobCron(quartzJob); } @@ -167,7 +168,7 @@ public class SystemQuartzJobService { // 如果是手动清除子任务id, 会出现id为空字符串的问题 continue; } - SystemQuartzJobTb quartzJob = systemQuartzJobMapper.selectById(Long.parseLong(id)); + SystemQuartzJobVo quartzJob = systemQuartzJobMapper.selectVoById(id); if (quartzJob == null) { // 防止子任务不存在 continue; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java index b8307736..de8fbc98 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Dict; @@ -32,6 +31,7 @@ import cn.odboy.system.dal.model.SystemRoleExportRowVo; import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -70,7 +70,7 @@ public class SystemRoleService { if (this.getRoleByName(args.getName()) != null) { throw new BadRequestException("角色名称已存在"); } - systemRoleMapper.insert(BeanUtil.copyProperties(args, SystemRoleTb.class)); + systemRoleMapper.insert(KitBeanUtil.copyToClass(args, SystemRoleTb.class)); // 判断是否有部门数据, 若有, 则需创建关联 if (CollectionUtil.isNotEmpty(args.getDepts())) { systemRoleDeptService.batchInsertRoleDept(args.getDepts(), args.getId()); @@ -91,7 +91,7 @@ public class SystemRoleService { @Transactional(rollbackFor = Exception.class) public void updateRoleById(SystemRoleVo args) { checkRoleLevels(args.getLevel()); - SystemRoleVo role = BeanUtil.copyProperties(systemRoleMapper.selectById(args.getId()), SystemRoleVo.class); + SystemRoleVo role = KitBeanUtil.copyToClass(systemRoleMapper.selectById(args.getId()), SystemRoleVo.class); SystemRoleTb role1 = this.getRoleByName(args.getName()); if (role1 != null && !role1.getId().equals(role.getId())) { throw new BadRequestException("角色名称已存在"); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java index 66ac0a3a..4296953a 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemDeptTb; @@ -27,6 +26,7 @@ import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.dal.mysql.SystemUserRoleMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import java.util.ArrayList; import java.util.Collections; @@ -84,7 +84,7 @@ public class SystemUserRoleService { if (role == null) { return null; } - SystemRoleVo roleVo = BeanUtil.copyProperties(role, SystemRoleVo.class); + SystemRoleVo roleVo = KitBeanUtil.copyToClass(role, SystemRoleVo.class); // 查询关联的菜单信息 Set menus = systemRoleMenuService.queryMenuByRoleIds( Collections.singleton(role.getId())); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java index efe856a7..fa5b154c 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; @@ -41,6 +40,7 @@ import cn.odboy.system.dal.mysql.SystemUserMapper; import cn.odboy.system.dal.redis.SystemUserInfoDAO; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitRsaEncryptUtil; @@ -155,7 +155,6 @@ public class SystemUserService { user.setUsername(args.getUsername()); user.setEmail(args.getEmail()); user.setEnabled(args.getEnabled()); - user.setDept(args.getDept()); user.setPhone(args.getPhone()); user.setNickName(args.getNickName()); user.setGender(args.getGender()); @@ -436,7 +435,7 @@ public class SystemUserService { if (user == null) { return null; } - SystemUserVo userVo = BeanUtil.copyProperties(user, SystemUserVo.class); + SystemUserVo userVo = KitBeanUtil.copyToClass(user, SystemUserVo.class); // 查询关联的部门信息 if (user.getDeptId() != null) { SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId()); @@ -493,8 +492,7 @@ public class SystemUserService { args.getDeptIds().addAll(systemDeptService.queryChildDeptIdByDeptIds(data)); } // 数据权限 - List dataScopes = systemDataService.queryDeptIdByArgs( - this.getUserByUsername(currentUsername)); + List dataScopes = systemDataService.queryDeptIdByArgs(this.getUserVoByUsername(currentUsername)); // args.getDeptIds() 不为空并且数据权限不为空则取交集 if (!CollectionUtils.isEmpty(args.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) { // 取交集 diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java index 4fdd02be..5931c8b6 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service.impl; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; @@ -30,6 +29,7 @@ import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemOssStorageMapper; import cn.odboy.system.framework.storage.minio.MinioRepository; import cn.odboy.system.service.SystemOssStorageService; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitDateUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; @@ -72,7 +72,7 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl page) { IPage ossStorageTbs = this.selectOssStorageByArgs(args, page); IPage convert = ossStorageTbs.convert(c -> { - SystemOssStorageVo storageVo = BeanUtil.copyProperties(c, SystemOssStorageVo.class); + SystemOssStorageVo storageVo = KitBeanUtil.copyToClass(c, SystemOssStorageVo.class); storageVo.setFileSizeDesc(KitFileUtil.getSize(storageVo.getFileSize())); return storageVo; }); @@ -157,8 +157,8 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl systemOssStorageVos = this.queryOssStorage(args); // KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class))); - List rowVos = BeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class); +// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class))); + List rowVos = KitBeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class); KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos); } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java index 96e5bd87..efa02dd6 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java @@ -15,7 +15,7 @@ */ package cn.odboy.framework.mybatisplus.core; -import cn.hutool.core.bean.BeanUtil; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -41,7 +41,7 @@ public class KitMpAnyQUtil { if (mapperTarget == null) { return null; } - return BeanUtil.copyProperties(mapperTarget, mapperClazz); + return KitBeanUtil.copyToClass(mapperTarget, mapperClazz); } public static List selectList(BaseMapper baseMapper, Object queryParams) { @@ -55,7 +55,7 @@ public class KitMpAnyQUtil { if (mapperTarget == null) { return new ArrayList<>(); } - return BeanUtil.copyToList(mapperTarget, mapperClazz); + return KitBeanUtil.copyToList(mapperTarget, mapperClazz); } public static Long selectCount(BaseMapper baseMapper, Object queryParams) { @@ -73,7 +73,7 @@ public class KitMpAnyQUtil { QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); Page tPage = baseMapper.selectPage(page, queryWrapper); Page mapperTarget = new Page<>(); - mapperTarget.setRecords(BeanUtil.copyToList(tPage.getRecords(), mapperClazz)); + mapperTarget.setRecords(KitBeanUtil.copyToList(tPage.getRecords(), mapperClazz)); mapperTarget.setTotal(tPage.getTotal()); mapperTarget.setSize(tPage.getSize()); mapperTarget.setCurrent(tPage.getCurrent()); diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java index 9ddaf900..67af7ac2 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java @@ -19,6 +19,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ReflectUtil; import cn.odboy.base.KitPageResult; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -110,7 +111,7 @@ public interface KitMpMapper extends BaseMapper { if (CollUtil.isEmpty(list)) { return new ArrayList<>(); } - return BeanUtil.copyToList(list, clazz); + return KitBeanUtil.copyToList(list, clazz); } /** @@ -125,7 +126,7 @@ public interface KitMpMapper extends BaseMapper { if (CollUtil.isEmpty(list)) { return new ArrayList<>(); } - return BeanUtil.copyToList(list, clazz); + return KitBeanUtil.copyToList(list, clazz); } /** @@ -146,7 +147,7 @@ public interface KitMpMapper extends BaseMapper { if (CollUtil.isEmpty(pageInfo.getRecords())) { return new KitPageResult<>(new ArrayList<>(), pageInfo.getTotal()); } - return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); + return new KitPageResult<>(KitBeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); } /** @@ -167,7 +168,7 @@ public interface KitMpMapper extends BaseMapper { if (CollUtil.isEmpty(pageInfo.getRecords())) { return KitPageUtil.emptyListData(); } - return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); + return new KitPageResult<>(KitBeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); } /** @@ -182,6 +183,6 @@ public interface KitMpMapper extends BaseMapper { if (e == null) { return null; } - return BeanUtil.copyProperties(e, clazz); + return KitBeanUtil.copyToClass(e, clazz); } } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java index a51853bc..9be39c97 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java @@ -15,11 +15,11 @@ */ package cn.odboy.framework.mybatisplus.core.interfaces; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.mybatisplus.core.KitMpQUtil; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.enums.SqlMethod; @@ -45,7 +45,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl int saveFeatureClazz(G resources) { - return getBaseMapper().insert(BeanUtil.copyProperties(resources, this.getEntityClass())); + return getBaseMapper().insert(KitBeanUtil.copyToClass(resources, this.getEntityClass())); } /** @@ -54,7 +54,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl int saveFeatureClazzList(List resources) { - return getBaseMapper().insertBatchSomeColumn(BeanUtil.copyToList(resources, this.getEntityClass())); + return getBaseMapper().insertBatchSomeColumn(KitBeanUtil.copyToList(resources, this.getEntityClass())); } /** @@ -63,7 +63,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl int modifyFeatureClazzById(G resources) { - return getBaseMapper().updateById(BeanUtil.copyProperties(resources, this.getEntityClass())); + return getBaseMapper().updateById(KitBeanUtil.copyToClass(resources, this.getEntityClass())); } /** @@ -76,7 +76,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl { MapperMethod.ParamMap param = new MapperMethod.ParamMap<>(); - param.put("et", BeanUtil.copyProperties(entity, this.getEntityClass())); + param.put("et", KitBeanUtil.copyToClass(entity, this.getEntityClass())); sqlSession.update(sqlStatement, param); }); } @@ -89,7 +89,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl G queryFeatureClazzById(Serializable id, Class targetClazz) { T entity = this.getById(id); - return entity == null ? null : BeanUtil.copyProperties(entity, targetClazz); + return entity == null ? null : KitBeanUtil.copyToClass(entity, targetClazz); } /** @@ -126,7 +126,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl, T> extends ServiceImpl List queryFeatureClazzListByIds(List ids, Class targetClazz) { List entitys = this.listByIds(ids); - return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList() - : BeanUtil.copyToList(entitys, targetClazz); + return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList() : KitBeanUtil.copyToList(entitys, targetClazz); } /** @@ -172,7 +171,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl List queryFeatureClazzListByArgs(Q args, Class targetClazz) { QueryWrapper predicate = KitMpQUtil.build(args); List data = baseMapper.selectList(predicate); - return BeanUtil.copyToList(data, targetClazz); + return KitBeanUtil.copyToList(data, targetClazz); } /** @@ -185,7 +184,7 @@ public class KitMpServiceImpl, T> extends ServiceImpl(); } - return BeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz); + return KitBeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz); } /** @@ -215,14 +214,14 @@ public class KitMpServiceImpl, T> extends ServiceImpl(); } IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), + return new KitPageResult<>(KitBeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); } public KitPageResult queryFeatureClazzPageByArgs(Q args, IPage pageable, Class targetClazz) { QueryWrapper wrapper = KitMpQUtil.build(args); IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), + return new KitPageResult<>(KitBeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBeanUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBeanUtil.java new file mode 100644 index 00000000..090657d4 --- /dev/null +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBeanUtil.java @@ -0,0 +1,34 @@ +package cn.odboy.util; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import lombok.experimental.UtilityClass; + +/** + * Bean拷贝相关 + * + * @author odboy + * @date 2026-01-06 + */ +@UtilityClass +public class KitBeanUtil { + + public static T copyToClass(Object source, Class tClass) { + return BeanUtil.copyProperties(source, tClass); + } + + public static void copyToTarget(Object source, Object target) { + BeanUtil.copyProperties(source, target, CopyOptions.create().setIgnoreNullValue(true)); + } + + public static List copyToList(Collection collection, Class targetType) { + List ts = BeanUtil.copyToList(collection, targetType); + if (ts == null) { + return new ArrayList<>(0); + } + return ts; + } +} diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java index d66c4db4..b7ba0c73 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDeptController.java @@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.model.SystemCreateDeptArgs; +import cn.odboy.system.dal.model.SystemDeptVo; import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.framework.operalog.OperationLog; import cn.odboy.system.service.SystemDeptService; @@ -67,7 +68,7 @@ public class SystemDeptController { @ApiOperation("查询部门:根据ID获取同级与上级数据") @PostMapping("/searchDeptTree") @PreAuthorize("@el.check('user:list','dept:list')") - public ResponseEntity> queryDeptSuperiorTree(@RequestBody List ids, + public ResponseEntity> queryDeptSuperiorTree(@RequestBody List ids, @RequestParam(defaultValue = "false") Boolean exclude) { return ResponseEntity.ok(systemDeptService.searchDeptTree(ids, exclude)); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java index 9fce043a..c6e26f3c 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemMenuController.java @@ -19,6 +19,7 @@ import cn.odboy.base.KitPageArgs; import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemMenuTb; +import cn.odboy.system.dal.model.SystemMenuRouterVo; import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.framework.operalog.OperationLog; @@ -58,9 +59,9 @@ public class SystemMenuController { @PostMapping(value = "/buildMenus") @ApiOperation("获取前端所需菜单") - public ResponseEntity> buildMenus() { - List systemMenuVos = systemMenuService.buildFrontMenus(); - return ResponseEntity.ok(systemMenuVos); + public ResponseEntity> buildMenus() { + List systemMenuRouterVos = systemMenuService.buildFrontMenus(); + return ResponseEntity.ok(systemMenuRouterVos); } @ApiOperation("返回全部的菜单") @@ -91,8 +92,8 @@ public class SystemMenuController { @ApiOperation("查询菜单:根据ID获取同级与上级数据") @PostMapping("/queryMenuSuperior") @PreAuthorize("@el.check('menu:list')") - public ResponseEntity> queryMenuSuperior(@RequestBody List ids) { - List systemMenuTbs = systemMenuService.listMenuSuperior(ids); + public ResponseEntity> queryMenuSuperior(@RequestBody List ids) { + List systemMenuTbs = systemMenuService.listMenuSuperior(ids); return ResponseEntity.ok(systemMenuTbs); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDeptTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDeptTb.java index a61e1ed6..50231e72 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDeptTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDeptTb.java @@ -16,15 +16,11 @@ package cn.odboy.system.dal.dataobject; import cn.odboy.base.KitBaseUserTimeTb; -import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; -import java.util.List; import java.util.Objects; -import java.util.Set; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import lombok.Getter; @@ -39,13 +35,6 @@ public class SystemDeptTb extends KitBaseUserTimeTb { @TableId(value = "dept_id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) private Long id; - @TableField(exist = false) - @JSONField(serialize = false) - @ApiModelProperty(value = "角色") - private Set roles; - @TableField(exist = false) - @ApiModelProperty(value = "子部门") - private List children; @ApiModelProperty(value = "排序") private Integer deptSort; @NotBlank diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemLocalStorageTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemLocalStorageTb.java index d5af935d..2d1de93b 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemLocalStorageTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemLocalStorageTb.java @@ -18,6 +18,7 @@ package cn.odboy.system.dal.dataobject; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; import cn.odboy.base.KitBaseUserTimeTb; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -49,6 +50,6 @@ public class SystemLocalStorageTb extends KitBaseUserTimeTb { private String dateGroup; public void copy(SystemLocalStorageTb source) { - BeanUtil.copyProperties(source, this, CopyOptions.create().setIgnoreNullValue(true)); + KitBeanUtil.copyToTarget(source, this); } } \ No newline at end of file diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemMenuTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemMenuTb.java index 96e37b42..ecc5dfc8 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemMenuTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemMenuTb.java @@ -16,15 +16,12 @@ package cn.odboy.system.dal.dataobject; import cn.odboy.base.KitBaseUserTimeTb; -import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; -import java.util.List; import java.util.Objects; -import java.util.Set; import javax.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; @@ -38,12 +35,6 @@ public class SystemMenuTb extends KitBaseUserTimeTb { @TableId(value = "menu_id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) private Long id; - @TableField(exist = false) - @JSONField(serialize = false) - @ApiModelProperty(value = "菜单角色") - private Set roles; - @TableField(exist = false) - private List children; @ApiModelProperty(value = "菜单标题") private String title; @TableField(value = "name") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzJobTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzJobTb.java index 3464fab5..9c35c714 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzJobTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzJobTb.java @@ -36,9 +36,6 @@ public class SystemQuartzJobTb extends KitBaseUserTimeTb { @TableId(value = "id", type = IdType.AUTO) @NotNull(groups = {Update.class}) private Long id; - @TableField(exist = false) - @ApiModelProperty(value = "用于子任务唯一标识", hidden = true) - private String uuid; @ApiModelProperty(value = "定时器名称") private String jobName; @NotBlank diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemRoleTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemRoleTb.java index 45c98226..d7e81ce4 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemRoleTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemRoleTb.java @@ -45,8 +45,7 @@ public class SystemRoleTb extends KitBaseUserTimeTb { @ApiModelProperty(value = "名称", hidden = true) private String name; @ApiModelProperty(value = "数据权限,全部 、 本级 、 自定义") - private String dataScope = - SystemDataScopeEnum.THIS_LEVEL.getValue(); + private String dataScope = SystemDataScopeEnum.THIS_LEVEL.getValue(); @ApiModelProperty(value = "级别,数值越小,级别越大") private Integer level = 3; @ApiModelProperty(value = "描述") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemUserTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemUserTb.java index 548042dd..43925297 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemUserTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemUserTb.java @@ -41,9 +41,6 @@ public class SystemUserTb extends KitBaseUserTimeTb { @TableField(value = "dept_id") @ApiModelProperty(hidden = true) private Long deptId; - @ApiModelProperty(value = "用户部门") - @TableField(exist = false) - private SystemDeptTb dept; @NotBlank @ApiModelProperty(value = "用户名称") private String username; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDeptVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDeptVo.java new file mode 100644 index 00000000..eacacdbb --- /dev/null +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemDeptVo.java @@ -0,0 +1,19 @@ +package cn.odboy.system.dal.model; + +import cn.odboy.system.dal.dataobject.SystemDeptTb; +import cn.odboy.system.dal.dataobject.SystemRoleTb; +import io.swagger.annotations.ApiModelProperty; +import java.util.List; +import java.util.Set; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class SystemDeptVo extends SystemDeptTb { + + @ApiModelProperty(value = "角色") + private Set roles; + @ApiModelProperty(value = "子部门") + private List children; +} diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuRouterVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuRouterVo.java new file mode 100644 index 00000000..e8c5ff8d --- /dev/null +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuRouterVo.java @@ -0,0 +1,47 @@ +/* + * Copyright 2021-2025 Odboy + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cn.odboy.system.dal.model; + +import cn.odboy.base.KitObject; +import io.swagger.annotations.ApiModelProperty; +import java.util.List; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 构建前端路由时用到 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class SystemMenuRouterVo extends KitObject { + + @ApiModelProperty(value = "菜单名称") + private String name; + @ApiModelProperty(value = "路径") + private String path; + @ApiModelProperty(value = "隐藏状态") + private Boolean hidden; + @ApiModelProperty(value = "重定向") + private String redirect; + @ApiModelProperty(value = "组件") + private String component; + @ApiModelProperty(value = "总是显示") + private Boolean alwaysShow; + @ApiModelProperty(value = "元数据") + private SystemMenuMetaVo meta; + @ApiModelProperty(value = "子路由") + private List children; +} diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuVo.java index d1344996..3632c9f8 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuVo.java @@ -1,47 +1,19 @@ -/* - * Copyright 2021-2025 Odboy - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package cn.odboy.system.dal.model; - -import cn.odboy.base.KitObject; -import io.swagger.annotations.ApiModelProperty; -import java.util.List; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 构建前端路由时用到 - */ -@Data -@EqualsAndHashCode(callSuper = false) -public class SystemMenuVo extends KitObject { - - @ApiModelProperty(value = "菜单名称") - private String name; - @ApiModelProperty(value = "路径") - private String path; - @ApiModelProperty(value = "隐藏状态") - private Boolean hidden; - @ApiModelProperty(value = "重定向") - private String redirect; - @ApiModelProperty(value = "组件") - private String component; - @ApiModelProperty(value = "总是显示") - private Boolean alwaysShow; - @ApiModelProperty(value = "元数据") - private SystemMenuMetaVo meta; - @ApiModelProperty(value = "子路由") - private List children; -} +package cn.odboy.system.dal.model; + +import cn.odboy.system.dal.dataobject.SystemMenuTb; +import cn.odboy.system.dal.dataobject.SystemRoleTb; +import io.swagger.annotations.ApiModelProperty; +import java.util.List; +import java.util.Set; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class SystemMenuVo extends SystemMenuTb { + + @ApiModelProperty(value = "菜单角色") + private Set roles; + @ApiModelProperty(value = "子菜单") + private List children; +} diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzJobVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzJobVo.java new file mode 100644 index 00000000..5ef8e4ef --- /dev/null +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQuartzJobVo.java @@ -0,0 +1,14 @@ +package cn.odboy.system.dal.model; + +import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class SystemQuartzJobVo extends SystemQuartzJobTb { + + @ApiModelProperty(value = "用于子任务唯一标识", hidden = true) + private String uuid; +} diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserVo.java index b5463eea..2dc3d0e2 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserVo.java @@ -1,8 +1,10 @@ package cn.odboy.system.dal.model; +import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; import java.util.Set; import lombok.Getter; @@ -11,7 +13,8 @@ import lombok.Setter; @Getter @Setter public class SystemUserVo extends SystemUserTb { - + @ApiModelProperty(value = "用户部门") + private SystemDeptTb dept; @ApiModelProperty(value = "用户角色") private Set roles; @ApiModelProperty(value = "用户岗位") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemQuartzJobMapper.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemQuartzJobMapper.java index 64c70147..67a53c28 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemQuartzJobMapper.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/mysql/SystemQuartzJobMapper.java @@ -15,7 +15,10 @@ */ package cn.odboy.system.dal.mysql; +import cn.hutool.core.bean.BeanUtil; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; +import cn.odboy.system.dal.model.SystemQuartzJobVo; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -27,4 +30,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SystemQuartzJobMapper extends BaseMapper { + default SystemQuartzJobVo selectVoById(String id) { + return KitBeanUtil.copyToClass(selectById(id), SystemQuartzJobVo.class); + } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java index fe3347f5..5809d0e6 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java @@ -8,6 +8,7 @@ import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.model.SystemUserJwtVo; import cn.odboy.system.dal.model.SystemUserOnlineVo; import cn.odboy.system.framework.permission.core.handler.TokenProvider; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitBrowserUtil; import cn.odboy.util.KitDesEncryptUtil; import cn.odboy.util.KitFileUtil; @@ -81,28 +82,28 @@ public class SystemUserOnlineInfoDAO { redisHelper.del(loginKey); } - /** - * 导出 - * - * @param all / - * @param response / - * @throws IOException / - */ - public void downloadUserOnlineModelExcel(List all, HttpServletResponse response) - throws IOException { - List> list = new ArrayList<>(); - for (SystemUserOnlineVo user : all) { - Map map = new LinkedHashMap<>(); - map.put("用户名", user.getUserName()); - map.put("部门", user.getDept()); - map.put("登录IP", user.getIp()); - map.put("登录地点", user.getAddress()); - map.put("浏览器", user.getBrowser()); - map.put("登录日期", user.getLoginTime()); - list.add(map); - } - KitFileUtil.downloadExcel(list, response); - } +// /** +// * 导出 +// * +// * @param all / +// * @param response / +// * @throws IOException / +// */ +// public void downloadUserOnlineModelExcel(List all, HttpServletResponse response) +// throws IOException { +// List> list = new ArrayList<>(); +// for (SystemUserOnlineVo user : all) { +// Map map = new LinkedHashMap<>(); +// map.put("用户名", user.getUserName()); +// map.put("部门", user.getDept()); +// map.put("登录IP", user.getIp()); +// map.put("登录地点", user.getAddress()); +// map.put("浏览器", user.getBrowser()); +// map.put("登录日期", user.getLoginTime()); +// list.add(map); +// } +// KitFileUtil.downloadExcel(list, response); +// } /** * 根据用户名强退用户 @@ -172,8 +173,8 @@ public class SystemUserOnlineInfoDAO { public void exportOnlineUserXlsx(HttpServletResponse response, String username) { List userOnlineVos = this.queryUserOnlineModelListByUsername(username); // KitXlsxExportUtil.exportFile(response, "在线用户数据", userOnlineVos, SystemUserOnlineExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class))); - List rowVos = BeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class); +// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemUserOnlineExportRowVo.class))); + List rowVos = KitBeanUtil.copyToList(userOnlineVos, SystemUserOnlineVo.class); KitExcelExporter.exportSimple(response, "在线用户数据", SystemUserOnlineVo.class, rowVos); } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java index dc88ff28..06277748 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java @@ -26,6 +26,7 @@ import cn.odboy.framework.quartz.core.QuartzRunnable; import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; +import cn.odboy.system.dal.model.SystemQuartzJobVo; import cn.odboy.system.dal.model.SystemSendEmailArgs; import cn.odboy.system.dal.mysql.SystemQuartzLogMapper; import cn.odboy.system.service.SystemEmailService; @@ -51,7 +52,7 @@ public class ExecutionJobBean extends QuartzJobBean { @Override public void executeInternal(JobExecutionContext context) { // 获取任务 - SystemQuartzJobTb quartzJob = (SystemQuartzJobTb) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY); + SystemQuartzJobVo quartzJob = (SystemQuartzJobVo) context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY); // 获取spring bean SystemQuartzLogMapper quartzLogMapper = KitSpringBeanHolder.getBean(SystemQuartzLogMapper.class); SystemQuartzJobService systemQuartzJobService = KitSpringBeanHolder.getBean(SystemQuartzJobService.class); @@ -66,8 +67,7 @@ public class ExecutionJobBean extends QuartzJobBean { quartzLog.setCronExpression(quartzJob.getCronExpression()); try { // 执行任务 - QuartzRunnable task = - new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), quartzJob.getParams()); + QuartzRunnable task = new QuartzRunnable(quartzJob.getBeanName(), quartzJob.getMethodName(), quartzJob.getParams()); Future future = executor.submit(task); // 忽略任务执行结果 future.get(); @@ -120,8 +120,7 @@ public class ExecutionJobBean extends QuartzJobBean { Map data = new HashMap<>(16); data.put("task", quartzJob); data.put("msg", msg); - TemplateEngine engine = - TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); + TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); Template template = engine.getTemplate("SystemQuartzJobTaskAlarmTemplate.ftl"); sendEmailRequest.setContent(template.render(data)); List emails = Arrays.asList(quartzJob.getEmail().split("[,,]")); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemAuthService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemAuthService.java index a5b0a510..8b048de8 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemAuthService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemAuthService.java @@ -1,6 +1,5 @@ package cn.odboy.system.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.constant.CaptchaCodeEnum; @@ -16,6 +15,7 @@ import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.framework.permission.core.handler.TokenProvider; import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitRsaEncryptUtil; import com.wf.captcha.base.Captcha; import java.util.HashMap; @@ -47,8 +47,7 @@ public class SystemAuthService { public Map doLogin(SystemUserLoginArgs loginRequest, HttpServletRequest request) throws Exception { // 密码解密 - String password = - KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword()); + String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword()); // 查询验证码 String code = redisHelper.get(loginRequest.getUuid(), String.class); // 清除验证码 @@ -65,15 +64,14 @@ public class SystemAuthService { if (!passwordEncoder.matches(password, jwtUser.getPassword())) { throw new BadRequestException("登录密码错误"); } - Authentication authentication = - new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities()); + Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); // 生成令牌 String token = tokenProvider.createToken(jwtUser); // 返回 token 与 用户信息 Map authInfo = new HashMap<>(2) {{ put("token", String.format("%s %s", SystemConst.TOKEN_PREFIX, token)); - put("user", BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class)); + put("user", KitBeanUtil.copyToClass(jwtUser, SystemUserInfoVo.class)); }}; if (properties.getLogin().isSingle()) { // 踢掉之前已经登录的token @@ -87,7 +85,8 @@ public class SystemAuthService { public SystemUserInfoVo getCurrentUserInfoVo() { SystemUserJwtVo jwtUser = (SystemUserJwtVo) KitSecurityHelper.getCurrentUser(); - return BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class); + // 转换是为了去掉密码 + return KitBeanUtil.copyToClass(jwtUser, SystemUserInfoVo.class); } public Map getCaptchaInfo() { diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDataService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDataService.java index 20ad9dc6..d7020cd6 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDataService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDataService.java @@ -21,6 +21,7 @@ import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemRoleVo; +import cn.odboy.system.dal.model.SystemUserVo; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -49,7 +50,7 @@ public class SystemDataService { * @param user / * @return / */ - public List queryDeptIdByArgs(SystemUserTb user) { + public List queryDeptIdByArgs(SystemUserVo user) { List deptIds = new ArrayList<>(); // 查询用户角色 List roleList = systemUserRoleService.queryRoleByUsersId(user.getId()); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java index 23d0edaa..59579e68 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java @@ -27,11 +27,13 @@ import cn.odboy.system.constant.SystemZhConst; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.model.SystemCreateDeptArgs; import cn.odboy.system.dal.model.SystemDeptExportRowVo; +import cn.odboy.system.dal.model.SystemDeptVo; import cn.odboy.system.dal.model.SystemProductLineTreeVo; import cn.odboy.system.dal.model.SystemProductLineVo; import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.dal.mysql.SystemDeptMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitClassUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -68,7 +70,7 @@ public class SystemDeptService { */ @Transactional(rollbackFor = Exception.class) public void saveDept(SystemCreateDeptArgs args) { - systemDeptMapper.insert(BeanUtil.copyProperties(args, SystemDeptTb.class)); + systemDeptMapper.insert(KitBeanUtil.copyToClass(args, SystemDeptTb.class)); this.updateDeptSubCnt(args.getPid()); } @@ -272,7 +274,7 @@ public class SystemDeptService { * * @return / */ - public KitPageResult searchDeptTree(List ids, Boolean exclude) { + public KitPageResult searchDeptTree(List ids, Boolean exclude) { Set deptSet1 = new LinkedHashSet<>(); for (Long id : ids) { // 同级数据 @@ -290,18 +292,18 @@ public class SystemDeptService { } deptSet1.addAll(depts); } - ArrayList deptList = new ArrayList<>(deptSet1); + List deptList = KitBeanUtil.copyToList(new ArrayList<>(deptSet1), SystemDeptVo.class); // 构建部门树 - Set trees = new LinkedHashSet<>(); - Set deptSet = new LinkedHashSet<>(); - List deptNames = deptList.stream().map(SystemDeptTb::getName).collect(Collectors.toList()); + Set trees = new LinkedHashSet<>(); + Set deptSet = new LinkedHashSet<>(); + List deptNames = deptList.stream().map(SystemDeptVo::getName).collect(Collectors.toList()); boolean isChild; - for (SystemDeptTb dept : deptList) { + for (SystemDeptVo dept : deptList) { isChild = false; if (dept.getPid() == null) { trees.add(dept); } - for (SystemDeptTb it : deptList) { + for (SystemDeptVo it : deptList) { if (it.getPid() != null && dept.getId().equals(it.getPid())) { isChild = true; if (dept.getChildren() == null) { @@ -319,7 +321,7 @@ public class SystemDeptService { if (CollectionUtil.isEmpty(trees)) { trees = deptSet; } - KitPageResult baseResult = new KitPageResult<>(); + KitPageResult baseResult = new KitPageResult<>(); baseResult.setContent(CollectionUtil.isEmpty(trees) ? new ArrayList<>(deptSet) : new ArrayList<>(trees)); baseResult.setTotalElements(deptSet.size()); return baseResult; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java index a9266e9c..f4c142e8 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictDetailService.java @@ -26,6 +26,7 @@ import cn.odboy.system.dal.model.SystemDictDetailVo; import cn.odboy.system.dal.model.SystemQueryDictDetailArgs; import cn.odboy.system.dal.mysql.SystemDictDetailMapper; import cn.odboy.system.dal.mysql.SystemDictMapper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -55,7 +56,7 @@ public class SystemDictDetailService { */ @Transactional(rollbackFor = Exception.class) public void saveDictDetail(SystemCreateDictDetailArgs args) { - SystemDictDetailTb dictDetail = BeanUtil.copyProperties(args, SystemDictDetailTb.class); + SystemDictDetailTb dictDetail = KitBeanUtil.copyToClass(args, SystemDictDetailTb.class); dictDetail.setDictId(args.getDict().getId()); systemDictDetailMapper.insert(dictDetail); } @@ -106,7 +107,7 @@ public class SystemDictDetailService { */ public KitPageResult searchDictDetail(SystemQueryDictDetailArgs args, Page page) { - IPage iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> BeanUtil.copyProperties(i, SystemDictDetailVo.class)); + IPage iPage = systemDictDetailMapper.selectPageByArgs(page, args).convert(i -> KitBeanUtil.copyToClass(i, SystemDictDetailVo.class)); List dictIds = iPage.getRecords().stream().map(SystemDictDetailTb::getDictId).collect(Collectors.toList()); Map id2ItemMap = systemDictMapper.selectByIds(dictIds).stream().collect(Collectors.toMap(SystemDictTb::getId, i -> i)); for (SystemDictDetailVo record : iPage.getRecords()) { @@ -130,7 +131,7 @@ public class SystemDictDetailService { return new ArrayList<>(); } return this.listDictDetailByDictId(systemDictTb.getId()).stream().map(m -> { - SystemDictDetailVo detailVo = BeanUtil.copyProperties(m, SystemDictDetailVo.class); + SystemDictDetailVo detailVo = KitBeanUtil.copyToClass(m, SystemDictDetailVo.class); detailVo.setDict(systemDictTb); return detailVo; }).collect(Collectors.toList()); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java index 58d54e77..ba617068 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDictService.java @@ -25,6 +25,7 @@ import cn.odboy.system.dal.model.SystemDictDetailVo; import cn.odboy.system.dal.model.SystemDictExportRowVo; import cn.odboy.system.dal.model.SystemQueryDictArgs; import cn.odboy.system.dal.mysql.SystemDictMapper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -52,7 +53,7 @@ public class SystemDictService { */ @Transactional(rollbackFor = Exception.class) public void saveDict(SystemCreateDictArgs args) { - systemDictMapper.insert(BeanUtil.copyProperties(args, SystemDictTb.class)); + systemDictMapper.insert(KitBeanUtil.copyToClass(args, SystemDictTb.class)); } /** diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java index a57758f6..f3b90a83 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemJobService.java @@ -25,6 +25,7 @@ import cn.odboy.system.dal.model.SystemCreateJobArgs; import cn.odboy.system.dal.model.SystemJobExportRowVo; import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.dal.mysql.SystemJobMapper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -56,7 +57,7 @@ public class SystemJobService { if (job != null) { throw new BadRequestException("职位名称已存在"); } - systemJobMapper.insert(BeanUtil.copyProperties(args, SystemJobTb.class)); + systemJobMapper.insert(KitBeanUtil.copyToClass(args, SystemJobTb.class)); } /** diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java index 9944ca02..9775ecaa 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java @@ -31,6 +31,7 @@ import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; import cn.odboy.system.dal.model.SystemLocalStorageExportRowVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemLocalStorageMapper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; @@ -172,8 +173,8 @@ public class SystemLocalStorageService { public void exportLocalStorageXlsx(HttpServletResponse response, SystemQueryStorageArgs args) { List systemLocalStorageTbs = this.queryLocalStorageByArgs(args); // KitXlsxExportUtil.exportFile(response, "文件上传记录数据", systemLocalStorageTbs, SystemLocalStorageExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class))); - List rowVos = BeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class); +// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemLocalStorageExportRowVo.class))); + List rowVos = KitBeanUtil.copyToList(systemLocalStorageTbs, SystemLocalStorageExportRowVo.class); KitExcelExporter.exportSimple(response, "文件上传记录数据", SystemLocalStorageExportRowVo.class, rowVos); } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java index 2006274c..4e80e701 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java @@ -15,6 +15,7 @@ */ package cn.odboy.system.service; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; @@ -26,11 +27,13 @@ import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.model.SystemMenuExportRowVo; import cn.odboy.system.dal.model.SystemMenuMetaVo; +import cn.odboy.system.dal.model.SystemMenuRouterVo; import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitClassUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -278,14 +281,14 @@ public class SystemMenuService { * @param menus 原始数据 * @return / */ - public List buildMenuTree(List menus) { - List trees = new ArrayList<>(); + public List buildMenuTree(List menus) { + List trees = new ArrayList<>(); Set ids = new HashSet<>(); - for (SystemMenuTb menu : menus) { + for (SystemMenuVo menu : menus) { if (menu.getPid() == null) { trees.add(menu); } - for (SystemMenuTb it : menus) { + for (SystemMenuVo it : menus) { if (menu.getId().equals(it.getPid())) { if (menu.getChildren() == null) { menu.setChildren(new ArrayList<>()); @@ -307,12 +310,12 @@ public class SystemMenuService { * @param menus / * @return / */ - public List buildMenuVo(List menus) { - List list = new LinkedList<>(); - menus.forEach(menu -> { + public List buildMenuVo(List menus) { + List list = new LinkedList<>(); + for (SystemMenuVo menu : menus) { if (menu != null) { - List menuList = menu.getChildren(); - SystemMenuVo menuVo = new SystemMenuVo(); + List menuList = menu.getChildren(); + SystemMenuRouterVo menuVo = new SystemMenuRouterVo(); menuVo.setName( ObjectUtil.isNotEmpty(menu.getComponentName()) ? menu.getComponentName() : menu.getTitle()); // 一级目录需要加斜杠, 不然会报警告 @@ -336,17 +339,17 @@ public class SystemMenuService { menuVo.setChildren(buildMenuVo(menuList)); // 处理是一级菜单并且没有子菜单的情况 } else if (menu.getPid() == null) { - SystemMenuVo menuVo1 = getMenuVo(menu, menuVo); + SystemMenuRouterVo menuVo1 = getMenuVo(menu, menuVo); menuVo.setName(null); menuVo.setMeta(null); menuVo.setComponent("Layout"); - List list1 = new ArrayList<>(); + List list1 = new ArrayList<>(); list1.add(menuVo1); menuVo.setChildren(list1); } list.add(menuVo); } - }); + } return list; } @@ -357,8 +360,8 @@ public class SystemMenuService { * @param menuVo / * @return / */ - private SystemMenuVo getMenuVo(SystemMenuTb menu, SystemMenuVo menuVo) { - SystemMenuVo menuVo1 = new SystemMenuVo(); + private SystemMenuRouterVo getMenuVo(SystemMenuTb menu, SystemMenuRouterVo menuVo) { + SystemMenuRouterVo menuVo1 = new SystemMenuRouterVo(); menuVo1.setMeta(menuVo.getMeta()); // 非外链 if (!menu.getIFrame()) { @@ -418,10 +421,11 @@ public class SystemMenuService { return systemMenuMapper.selectList(wrapper); } - public List buildFrontMenus() { + public List buildFrontMenus() { List menuList = this.listMenuByUserId(KitSecurityHelper.getCurrentUserId()); - List menus = this.buildMenuTree(menuList); - return this.buildMenuVo(menus); + List originMenus = KitBeanUtil.copyToList(menuList, SystemMenuVo.class); + List targetMenus = this.buildMenuTree(originMenus); + return this.buildMenuVo(targetMenus); } public Set listChildMenuSetByMenuId(Long id) { @@ -432,9 +436,9 @@ public class SystemMenuService { return menuSet.stream().map(SystemMenuTb::getId).collect(Collectors.toSet()); } - public List listMenuSuperior(List ids) { + public List listMenuSuperior(List ids) { Set menus; - List systemMenuTbs; + List systemMenuTbs; if (CollectionUtil.isNotEmpty(ids)) { menus = new LinkedHashSet<>(this.listMenuByIds(ids)); for (SystemMenuTb menu : menus) { @@ -448,9 +452,11 @@ public class SystemMenuService { } // 编辑菜单时不显示自己以及自己下级的数据, 避免出现PID数据环形问题 menus = menus.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet()); - systemMenuTbs = this.buildMenuTree(new ArrayList<>(menus)); + List newMenuList = new ArrayList<>(menus); + systemMenuTbs = this.buildMenuTree(KitBeanUtil.copyToList(newMenuList, SystemMenuVo.class)); } else { - systemMenuTbs = this.listMenuByPid(null); + List newMenuList = this.listMenuByPid(null); + systemMenuTbs = KitBeanUtil.copyToList(newMenuList, SystemMenuVo.class); } return systemMenuTbs; } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java index ddf4921d..d46187df 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java @@ -26,12 +26,14 @@ import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; import cn.odboy.system.dal.model.SystemQuartzJobExportRowVo; +import cn.odboy.system.dal.model.SystemQuartzJobVo; import cn.odboy.system.dal.model.SystemQuartzLogExportRowVo; import cn.odboy.system.dal.model.SystemQueryQuartzJobArgs; import cn.odboy.system.dal.model.SystemUpdateQuartzJobArgs; import cn.odboy.system.dal.mysql.SystemQuartzJobMapper; import cn.odboy.system.dal.mysql.SystemQuartzLogMapper; import cn.odboy.system.framework.quartz.QuartzManage; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -108,7 +110,7 @@ public class SystemQuartzJobService { throw new BadRequestException("子任务中不能添加当前任务ID"); } } - SystemQuartzJobTb quartzJob = BeanUtil.copyProperties(args, SystemQuartzJobTb.class); + SystemQuartzJobTb quartzJob = KitBeanUtil.copyToClass(args, SystemQuartzJobTb.class); systemQuartzJobMapper.insertOrUpdate(quartzJob); quartzManage.updateJobCron(quartzJob); } @@ -167,7 +169,7 @@ public class SystemQuartzJobService { // 如果是手动清除子任务id, 会出现id为空字符串的问题 continue; } - SystemQuartzJobTb quartzJob = systemQuartzJobMapper.selectById(Long.parseLong(id)); + SystemQuartzJobVo quartzJob = systemQuartzJobMapper.selectVoById(id); if (quartzJob == null) { // 防止子任务不存在 continue; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java index e690e8c9..9ba3c75f 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java @@ -32,6 +32,7 @@ import cn.odboy.system.dal.model.SystemRoleExportRowVo; import cn.odboy.system.dal.model.SystemRoleVo; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.xlsx.KitExcelExporter; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -70,7 +71,7 @@ public class SystemRoleService { if (this.getRoleByName(args.getName()) != null) { throw new BadRequestException("角色名称已存在"); } - systemRoleMapper.insert(BeanUtil.copyProperties(args, SystemRoleTb.class)); + systemRoleMapper.insert(KitBeanUtil.copyToClass(args, SystemRoleTb.class)); // 判断是否有部门数据, 若有, 则需创建关联 if (CollectionUtil.isNotEmpty(args.getDepts())) { systemRoleDeptService.batchInsertRoleDept(args.getDepts(), args.getId()); @@ -91,7 +92,7 @@ public class SystemRoleService { @Transactional(rollbackFor = Exception.class) public void updateRoleById(SystemRoleVo args) { checkRoleLevels(args.getLevel()); - SystemRoleVo role = BeanUtil.copyProperties(systemRoleMapper.selectById(args.getId()), SystemRoleVo.class); + SystemRoleVo role = KitBeanUtil.copyToClass(systemRoleMapper.selectById(args.getId()), SystemRoleVo.class); SystemRoleTb role1 = this.getRoleByName(args.getName()); if (role1 != null && !role1.getId().equals(role.getId())) { throw new BadRequestException("角色名称已存在"); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java index 66ac0a3a..91381889 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserRoleService.java @@ -27,6 +27,7 @@ import cn.odboy.system.dal.model.SystemUserVo; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.dal.mysql.SystemUserRoleMapper; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import java.util.ArrayList; import java.util.Collections; @@ -84,7 +85,7 @@ public class SystemUserRoleService { if (role == null) { return null; } - SystemRoleVo roleVo = BeanUtil.copyProperties(role, SystemRoleVo.class); + SystemRoleVo roleVo = KitBeanUtil.copyToClass(role, SystemRoleVo.class); // 查询关联的菜单信息 Set menus = systemRoleMenuService.queryMenuByRoleIds( Collections.singleton(role.getId())); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java index fcb7a7c4..be581233 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java @@ -41,6 +41,7 @@ import cn.odboy.system.dal.mysql.SystemUserMapper; import cn.odboy.system.dal.redis.SystemUserInfoDAO; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; import cn.odboy.util.KitRsaEncryptUtil; @@ -155,7 +156,6 @@ public class SystemUserService { user.setUsername(args.getUsername()); user.setEmail(args.getEmail()); user.setEnabled(args.getEnabled()); - user.setDept(args.getDept()); user.setPhone(args.getPhone()); user.setNickName(args.getNickName()); user.setGender(args.getGender()); @@ -436,7 +436,7 @@ public class SystemUserService { if (user == null) { return null; } - SystemUserVo userVo = BeanUtil.copyProperties(user, SystemUserVo.class); + SystemUserVo userVo = KitBeanUtil.copyToClass(user, SystemUserVo.class); // 查询关联的部门信息 if (user.getDeptId() != null) { SystemDeptTb dept = systemDeptService.getDeptById(user.getDeptId()); @@ -493,8 +493,7 @@ public class SystemUserService { args.getDeptIds().addAll(systemDeptService.queryChildDeptIdByDeptIds(data)); } // 数据权限 - List dataScopes = systemDataService.queryDeptIdByArgs( - this.getUserByUsername(currentUsername)); + List dataScopes = systemDataService.queryDeptIdByArgs(this.getUserVoByUsername(currentUsername)); // args.getDeptIds() 不为空并且数据权限不为空则取交集 if (!CollectionUtils.isEmpty(args.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) { // 取交集 diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java index c28e6731..32318a25 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemMinioStorageServiceImpl.java @@ -15,7 +15,6 @@ */ package cn.odboy.system.service.impl; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.odboy.base.KitPageResult; @@ -30,6 +29,7 @@ import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemOssStorageMapper; import cn.odboy.system.framework.storage.minio.MinioRepository; import cn.odboy.system.service.SystemOssStorageService; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitDateUtil; import cn.odboy.util.KitFileUtil; import cn.odboy.util.KitPageUtil; @@ -72,7 +72,7 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl page) { IPage ossStorageTbs = this.selectOssStorageByArgs(args, page); IPage convert = ossStorageTbs.convert(c -> { - SystemOssStorageVo storageVo = BeanUtil.copyProperties(c, SystemOssStorageVo.class); + SystemOssStorageVo storageVo = KitBeanUtil.copyToClass(c, SystemOssStorageVo.class); storageVo.setFileSizeDesc(KitFileUtil.getSize(storageVo.getFileSize())); return storageVo; }); @@ -157,8 +157,8 @@ public class SystemMinioStorageServiceImpl extends ServiceImpl systemOssStorageVos = this.queryOssStorage(args); // KitXlsxExportUtil.exportFile(response, "OSS文件上传记录数据", systemOssStorageVos, SystemOssStorageExportRowVo.class, -// (dataObject) -> CollUtil.newArrayList(BeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class))); - List rowVos = BeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class); +// (dataObject) -> CollUtil.newArrayList(KitBeanUtil.copyProperties(dataObject, SystemOssStorageExportRowVo.class))); + List rowVos = KitBeanUtil.copyToList(systemOssStorageVos, SystemOssStorageExportRowVo.class); KitExcelExporter.exportSimple(response, "OSS文件上传记录数据", SystemOssStorageExportRowVo.class, rowVos); } diff --git a/cutejava/cutejava-module-task-v1/src/main/java/cn/odboy/task/core/TaskManage.java b/cutejava/cutejava-module-task-v1/src/main/java/cn/odboy/task/core/TaskManage.java index 231f2886..4a4d71db 100644 --- a/cutejava/cutejava-module-task-v1/src/main/java/cn/odboy/task/core/TaskManage.java +++ b/cutejava/cutejava-module-task-v1/src/main/java/cn/odboy/task/core/TaskManage.java @@ -31,6 +31,7 @@ import cn.odboy.task.dal.model.TaskTemplateNodeVo; import cn.odboy.task.service.TaskInstanceDetailService; import cn.odboy.task.service.TaskInstanceInfoService; import cn.odboy.task.service.TaskTemplateInfoService; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitDateUtil; import com.alibaba.fastjson2.JSON; import java.util.ArrayList; @@ -228,12 +229,11 @@ public class TaskManage { record.setTemplate(templateInfo.getTemplateInfo()); return record; } - record = BeanUtil.copyProperties(historyInstance, TaskInstanceInfoVo.class); + record = KitBeanUtil.copyToClass(historyInstance, TaskInstanceInfoVo.class); record.setHistory(buildNodeList(record)); - TaskInstanceInfoTb runningInstance = - taskInstanceInfoService.getLastRunningInstance(contextName, language, envAlias, changeType); + TaskInstanceInfoTb runningInstance = taskInstanceInfoService.getLastRunningInstance(contextName, language, envAlias, changeType); if (runningInstance != null) { - TaskInstanceInfoVo taskInstanceInfoVo = BeanUtil.copyProperties(runningInstance, TaskInstanceInfoVo.class); + TaskInstanceInfoVo taskInstanceInfoVo = KitBeanUtil.copyToClass(runningInstance, TaskInstanceInfoVo.class); record.setCurrent(buildNodeList(taskInstanceInfoVo)); } return record; diff --git a/cutejava/cutejava-module-task-v2/src/main/java/cn/odboy/task/core/TaskManage.java b/cutejava/cutejava-module-task-v2/src/main/java/cn/odboy/task/core/TaskManage.java index 31a7a163..c2c1778f 100644 --- a/cutejava/cutejava-module-task-v2/src/main/java/cn/odboy/task/core/TaskManage.java +++ b/cutejava/cutejava-module-task-v2/src/main/java/cn/odboy/task/core/TaskManage.java @@ -31,6 +31,7 @@ import cn.odboy.task.dal.model.TaskTemplateNodeVo; import cn.odboy.task.service.TaskInstanceDetailService; import cn.odboy.task.service.TaskInstanceInfoService; import cn.odboy.task.service.TaskTemplateInfoService; +import cn.odboy.util.KitBeanUtil; import cn.odboy.util.KitDateUtil; import com.alibaba.fastjson2.JSON; import java.util.ArrayList; @@ -228,12 +229,11 @@ public class TaskManage { record.setTemplate(templateInfo.getTemplateInfo()); return record; } - record = BeanUtil.copyProperties(historyInstance, TaskInstanceInfoVo.class); + record = KitBeanUtil.copyToClass(historyInstance, TaskInstanceInfoVo.class); record.setHistory(buildNodeList(record)); - TaskInstanceInfoTb runningInstance = - taskInstanceInfoService.getLastRunningInstance(contextName, language, envAlias, changeType); + TaskInstanceInfoTb runningInstance = taskInstanceInfoService.getLastRunningInstance(contextName, language, envAlias, changeType); if (runningInstance != null) { - TaskInstanceInfoVo taskInstanceInfoVo = BeanUtil.copyProperties(runningInstance, TaskInstanceInfoVo.class); + TaskInstanceInfoVo taskInstanceInfoVo = KitBeanUtil.copyToClass(runningInstance, TaskInstanceInfoVo.class); record.setCurrent(buildNodeList(taskInstanceInfoVo)); } return record;