diff --git a/README.MD b/README.MD index b7a91c2c..d1e24815 100644 --- a/README.MD +++ b/README.MD @@ -20,7 +20,8 @@ - API响应参数类名, 以`Vo`结尾 - 事件驱动类名, 以`Event`结尾 - 消息队列/Socket传输类名,以`Message`结尾 -- 常用的辅助类的类名, 以`Cs`开头 +- ~~常用的辅助类的类名, 以`Cs`开头~~ +- 常用的辅助类的类名, 以`Kit`开头。Kit有套件、装备等意思。 - 查询分页、查询列表的方法,一律为同一个方法名 - 查询分页:queryUser(args, page) - 查询列表:queryUser(args) diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsArgs.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitArgs.java similarity index 87% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsArgs.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitArgs.java index 649b9bed..c60e860b 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsArgs.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitArgs.java @@ -26,17 +26,17 @@ import lombok.Setter; * @author odboy * @date 2025-07-23 */ -public class CsArgs { +public class KitArgs { @Getter @Setter - public static class FindByLongId extends CsObject { + public static class FindByLongId extends KitObject { @NotNull(message = "id必填") private Long id; } @Getter @Setter - public static class DeleteById extends CsObject { + public static class DeleteById extends KitObject { @NotNull(message = "id必填") private Long id; } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseCreateTimeTb.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseCreateTimeTb.java similarity index 95% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseCreateTimeTb.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseCreateTimeTb.java index c702d62a..b37211d0 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseCreateTimeTb.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseCreateTimeTb.java @@ -28,7 +28,7 @@ import java.util.Date; @Getter @Setter @EqualsAndHashCode(callSuper = false) -public class CsBaseCreateTimeTb extends CsObject { +public class KitBaseCreateTimeTb extends KitObject { @Schema(name = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) @TableField(fill = FieldFill.INSERT) private Date createTime; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseTimeTb.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseTimeTb.java similarity index 96% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseTimeTb.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseTimeTb.java index 8bd7b24f..468ab3e2 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseTimeTb.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseTimeTb.java @@ -28,7 +28,7 @@ import java.util.Date; @Getter @Setter @EqualsAndHashCode(callSuper = false) -public class CsBaseTimeTb extends CsObject { +public class KitBaseTimeTb extends KitObject { @TableField(fill = FieldFill.INSERT) @Schema(name = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) private Date createTime; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUpdateTimeTb.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUpdateTimeTb.java similarity index 95% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUpdateTimeTb.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUpdateTimeTb.java index 2a66c5a0..38c5aa45 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUpdateTimeTb.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUpdateTimeTb.java @@ -28,7 +28,7 @@ import java.util.Date; @Getter @Setter @EqualsAndHashCode(callSuper = false) -public class CsBaseUpdateTimeTb extends CsObject { +public class KitBaseUpdateTimeTb extends KitObject { @Schema(name = "更新时间: yyyy-MM-dd HH:mm:ss", hidden = true) @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserCreateTimeTb.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserCreateTimeTb.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserCreateTimeTb.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserCreateTimeTb.java index 1e451ce9..d0cbc92f 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserCreateTimeTb.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserCreateTimeTb.java @@ -31,7 +31,7 @@ import java.util.Date; @Getter @Setter @EqualsAndHashCode(callSuper = false) -public class CsBaseUserCreateTimeTb extends CsObject { +public class KitBaseUserCreateTimeTb extends KitObject { @CreatedBy @TableField(fill = FieldFill.INSERT) diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeLogicTb.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeLogicTb.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeLogicTb.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeLogicTb.java index 58ba1c14..824e1bc9 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeLogicTb.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeLogicTb.java @@ -35,7 +35,7 @@ import java.util.Date; */ @Getter @Setter -public class CsBaseUserTimeLogicTb extends CsObject { +public class KitBaseUserTimeLogicTb extends KitObject { @CreatedBy @TableField(value = "create_by", fill = FieldFill.INSERT) @Schema(name = "创建人", hidden = true) diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeTb.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeTb.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeTb.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeTb.java index 986472c7..29d74d42 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeTb.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeTb.java @@ -32,7 +32,7 @@ import java.util.Date; @Getter @Setter @EqualsAndHashCode(callSuper = false) -public class CsBaseUserTimeTb extends CsObject { +public class KitBaseUserTimeTb extends KitObject { @CreatedBy @TableField(fill = FieldFill.INSERT) diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsObject.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitObject.java similarity index 94% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsObject.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitObject.java index aacfbaa8..f4e735bf 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsObject.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitObject.java @@ -25,7 +25,7 @@ import java.io.Serializable; * @author odboy * @date 2022-01-12 */ -public class CsObject implements Serializable { +public class KitObject implements Serializable { @Serial private static final long serialVersionUID = 1L; } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsPageArgs.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitPageArgs.java similarity index 96% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsPageArgs.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitPageArgs.java index 40f8948e..b0729525 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsPageArgs.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitPageArgs.java @@ -34,7 +34,7 @@ import java.io.Serializable; @Data @NoArgsConstructor @AllArgsConstructor -public class CsPageArgs implements Serializable { +public class KitPageArgs implements Serializable { @NotNull(message = "参数page不能为空") @Min(value = 1, message = "参数page最小值为1") @Schema(name = "页码", example = "1") diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsPageResult.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitPageResult.java similarity index 81% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsPageResult.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitPageResult.java index 7290b44b..88ee1a48 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsPageResult.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitPageResult.java @@ -32,19 +32,19 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class CsPageResult extends CsObject { +public class KitPageResult extends KitObject { private List content; private long totalElements; - public static CsPageResult emptyListData() { - CsPageResult result = new CsPageResult<>(); + public static KitPageResult emptyListData() { + KitPageResult result = new KitPageResult<>(); result.setTotalElements(0); result.setContent(new ArrayList<>()); return result; } - public static CsPageResult listData(IPage page) { - CsPageResult result = new CsPageResult<>(); + public static KitPageResult listData(IPage page) { + KitPageResult result = new KitPageResult<>(); result.setTotalElements(page.getTotal()); result.setContent(page.getRecords()); return result; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsSelectOptionVo.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitSelectOptionVo.java similarity index 94% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsSelectOptionVo.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitSelectOptionVo.java index 92d168e2..fd37e725 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/CsSelectOptionVo.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/base/KitSelectOptionVo.java @@ -31,7 +31,7 @@ import java.util.Map; @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode(callSuper = false) -public class CsSelectOptionVo extends CsObject { +public class KitSelectOptionVo extends KitObject { private String label; private String value; private Map ext; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java index 0c63ead9..ef9693d6 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java @@ -48,7 +48,7 @@ public class BootApplication { } @Bean - public CsSpringBeanHolder springBeanHolder() { - return new CsSpringBeanHolder(); + public KitSpringBeanHolder springBeanHolder() { + return new KitSpringBeanHolder(); } } \ No newline at end of file diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitRequestHolder.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitRequestHolder.java index 4a221f90..944bd124 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitRequestHolder.java @@ -26,7 +26,7 @@ import java.util.Objects; /** * 获取 HttpServletRequest */ -public class CsRequestHolder { +public class KitRequestHolder { public static HttpServletRequest getHttpServletRequest() { return ((ServletRequestAttributes)Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsScriptHelper.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitScriptHelper.java similarity index 98% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsScriptHelper.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitScriptHelper.java index 5c5fc9d6..6a7b7261 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsScriptHelper.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitScriptHelper.java @@ -31,7 +31,7 @@ import java.util.Map; */ @Slf4j @Component -public class CsScriptHelper { +public class KitScriptHelper { public Object evalObj(String script, Map args) { try (Context rhino = Context.enter()) { Scriptable scope = rhino.initStandardObjects(); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitSpringBeanHolder.java similarity index 90% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitSpringBeanHolder.java index 124d45ab..a9985df6 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/context/KitSpringBeanHolder.java @@ -30,7 +30,7 @@ import java.util.List; @Slf4j @SuppressWarnings({"unchecked", "all"}) -public class CsSpringBeanHolder implements ApplicationContextAware, DisposableBean { +public class KitSpringBeanHolder implements ApplicationContextAware, DisposableBean { private static final List CALL_BACKS = new ArrayList<>(); private static ApplicationContext applicationContext = null; @@ -43,7 +43,7 @@ public class CsSpringBeanHolder implements ApplicationContextAware, DisposableBe */ public synchronized static void addCallBacks(CallBack callBack) { if (addCallback) { - CsSpringBeanHolder.CALL_BACKS.add(callBack); + KitSpringBeanHolder.CALL_BACKS.add(callBack); } else { log.warn("CallBack:{} 已无法添加!立即执行", callBack.getCallBackName()); callBack.executor(); @@ -133,22 +133,22 @@ public class CsSpringBeanHolder implements ApplicationContextAware, DisposableBe @Override public void destroy() { - CsSpringBeanHolder.clearHolder(); + KitSpringBeanHolder.clearHolder(); } @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - if (CsSpringBeanHolder.applicationContext != null) { - log.warn("SpringContextHolder中的ApplicationContext被覆盖, 原有ApplicationContext为:" + CsSpringBeanHolder.applicationContext); + if (KitSpringBeanHolder.applicationContext != null) { + log.warn("SpringContextHolder中的ApplicationContext被覆盖, 原有ApplicationContext为:" + KitSpringBeanHolder.applicationContext); } - CsSpringBeanHolder.applicationContext = applicationContext; + KitSpringBeanHolder.applicationContext = applicationContext; if (addCallback) { - for (CallBack callBack : CsSpringBeanHolder.CALL_BACKS) { + for (CallBack callBack : KitSpringBeanHolder.CALL_BACKS) { callBack.executor(); } CALL_BACKS.clear(); } - CsSpringBeanHolder.addCallback = false; + KitSpringBeanHolder.addCallback = false; } interface CallBack { diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java index ff99e76e..c2c947b4 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java @@ -17,7 +17,7 @@ package cn.odboy.framework.monitor.controller; import cn.odboy.annotation.AnonymousGetMapping; -import cn.odboy.framework.monitor.service.CsHealthCheckPointService; +import cn.odboy.framework.monitor.service.KitHealthCheckPointService; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -32,14 +32,14 @@ import org.springframework.web.bind.annotation.RestController; @Tag(name = "系统:健康检查接口") public class HealthCheckController { @Autowired - private CsHealthCheckPointService healthCheckPointService; + private KitHealthCheckPointService kitHealthCheckPointService; /** * 就绪检查 */ @AnonymousGetMapping(value = "/readiness") public ResponseEntity doReadiness() { - return healthCheckPointService.doReadiness(); + return kitHealthCheckPointService.doReadiness(); } /** @@ -47,7 +47,7 @@ public class HealthCheckController { */ @AnonymousGetMapping(value = "/liveness") public ResponseEntity doLiveness() { - return healthCheckPointService.doLiveness(); + return kitHealthCheckPointService.doLiveness(); } // /** diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/CsHealthCheckPointService.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/KitHealthCheckPointService.java similarity index 94% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/CsHealthCheckPointService.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/KitHealthCheckPointService.java index 8e9ef84e..5bc653f2 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/CsHealthCheckPointService.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/KitHealthCheckPointService.java @@ -18,7 +18,7 @@ package cn.odboy.framework.monitor.service; import org.springframework.http.ResponseEntity; -public interface CsHealthCheckPointService { +public interface KitHealthCheckPointService { /** * 就绪检查 */ diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQTypeEnum.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQTypeEnum.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQTypeEnum.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQTypeEnum.java index 50e17eaa..ca02032a 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQTypeEnum.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQTypeEnum.java @@ -19,7 +19,7 @@ package cn.odboy.framework.mybatisplus.config; /** * 动态查询 枚举 */ -public enum CsMpQTypeEnum { +public enum KitMpQTypeEnum { /** * 相等 */ diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQuery.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQuery.java similarity index 93% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQuery.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQuery.java index b04428b6..c660a854 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQuery.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQuery.java @@ -28,7 +28,7 @@ import java.lang.annotation.Target; */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) -public @interface CsMpQuery { +public @interface KitMpQuery { /** * 基本对象的属性名 */ @@ -37,7 +37,7 @@ public @interface CsMpQuery { /** * 查询方式 */ - CsMpQTypeEnum type() default CsMpQTypeEnum.EQUAL; + KitMpQTypeEnum type() default KitMpQTypeEnum.EQUAL; /** * 多字段模糊搜索, 仅支持String类型字段, 多个用逗号隔开, 如@MpQuery(blurry = "email,username") diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpAnyQUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java similarity index 84% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpAnyQUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java index 8c39ee6e..644a89c6 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpAnyQUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java @@ -30,14 +30,14 @@ import java.util.List; * @author odboy * @date 2025-05-15 */ -public class CsMpAnyQUtil { +public class KitMpAnyQUtil { public static T selectOne(BaseMapper baseMapper, Object queryParams) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); return baseMapper.selectOne(queryWrapper); } public static M selectOne(BaseMapper baseMapper, Object queryParams, Class mapperClazz) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); T mapperTarget = baseMapper.selectOne(queryWrapper); if (mapperTarget == null) { return null; @@ -46,12 +46,12 @@ public class CsMpAnyQUtil { } public static List selectList(BaseMapper baseMapper, Object queryParams) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); return baseMapper.selectList(queryWrapper); } public static List selectList(BaseMapper baseMapper, Object queryParams, Class mapperClazz) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); List mapperTarget = baseMapper.selectList(queryWrapper); if (mapperTarget == null) { return new ArrayList<>(); @@ -60,17 +60,17 @@ public class CsMpAnyQUtil { } public static Long selectCount(BaseMapper baseMapper, Object queryParams) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); return baseMapper.selectCount(queryWrapper); } public static Page selectPage(BaseMapper baseMapper, Page page, Object queryParams) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); return baseMapper.selectPage(page, queryWrapper); } public static Page selectPage(BaseMapper baseMapper, Page page, Object queryParams, Class mapperClazz) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); Page tPage = baseMapper.selectPage(page, queryWrapper); Page mapperTarget = new Page<>(); mapperTarget.setRecords(BeanUtil.copyToList(tPage.getRecords(), mapperClazz)); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpCmdGenUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpCmdGenUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java index 3b2a8929..6ada1734 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpCmdGenUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java @@ -17,7 +17,7 @@ package cn.odboy.framework.mybatisplus.core; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import cn.odboy.framework.exception.BadRequestException; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.FastAutoGenerator; @@ -44,7 +44,7 @@ import java.util.function.Consumer; * @date 2025-01-11 */ @Data -public class CsMpCmdGenUtil { +public class KitMpCmdGenUtil { // 项目根路径。生成结果 C:\Users\Administrator\Documents\GitHub\cutejava\cutejava private static final String projectRootPath = System.getProperty("user.dir") + "/"; /** @@ -74,7 +74,7 @@ public class CsMpCmdGenUtil { private static Consumer getStrategyConfigConsumer(List tableNames) { return strategyConfigBuilder -> strategyConfigBuilder.enableCapitalMode().enableSkipView().disableSqlFilter().addInclude(tableNames) // 实体类生成策略 - .entityBuilder().superClass(CsBaseUserTimeTb.class).addIgnoreColumns("create_time", "update_time", "create_by", "update_by") + .entityBuilder().superClass(KitBaseUserTimeTb.class).addIgnoreColumns("create_time", "update_time", "create_by", "update_by") // 开启生成实体时生成字段注解。 // 会在实体类的属性前,添加[@TableField("nickname")] .enableTableFieldAnnotation().disableSerialVersionUID() diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpQUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java similarity index 94% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpQUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java index 50a65aa0..f8c509c7 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpQUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java @@ -19,9 +19,9 @@ package cn.odboy.framework.mybatisplus.core; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.mybatisplus.config.CsMpQuery; +import cn.odboy.framework.mybatisplus.config.KitMpQuery; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -38,7 +38,7 @@ import java.util.*; * 查询条件创建工具 */ @Slf4j -public class CsMpQUtil { +public class KitMpQUtil { public static QueryWrapper build(Q query) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (query == null) { @@ -50,7 +50,7 @@ public class CsMpQUtil { for (Field field : fields) { if (!field.canAccess(query)) { field.setAccessible(true); - CsMpQuery q = field.getAnnotation(CsMpQuery.class); + KitMpQuery q = field.getAnnotation(KitMpQuery.class); if (q != null) { String attributeName = getAttributeName(q, field); Object fieldVal = field.get(query); @@ -72,12 +72,12 @@ public class CsMpQUtil { return queryWrapper; } - private static String getAttributeName(CsMpQuery q, Field field) { + private static String getAttributeName(KitMpQuery q, Field field) { String attributeName = StrUtil.isBlank(q.propName()) ? field.getName() : q.propName(); return StrUtil.toUnderlineCase(attributeName); } - private static void handleWrapper(CsMpQuery q, QueryWrapper queryWrapper, String attributeName, Object fieldVal) { + 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); @@ -182,7 +182,7 @@ public class CsMpQUtil { @TableName("test_domain") private static class TestDomain { - @NotNull(groups = CsBaseUserTimeTb.Update.class) + @NotNull(groups = KitBaseUserTimeTb.Update.class) @TableId(value = "user_id", type = IdType.AUTO) private Long id; @TableField(value = "dept_id") diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpMapper.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java similarity index 88% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpMapper.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java index 18370420..fed74bed 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpMapper.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java @@ -19,8 +19,8 @@ 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.CsPageResult; -import cn.odboy.util.CsPageUtil; +import cn.odboy.base.KitPageResult; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -42,7 +42,7 @@ import java.util.concurrent.ConcurrentHashMap; * @author odboy * @date 2022-04-03 */ -public interface CsMpMapper extends BaseMapper { +public interface KitMpMapper extends BaseMapper { /** * 批量插入 * @@ -137,16 +137,16 @@ public interface CsMpMapper extends BaseMapper { * @param clazz 期望的对象类型 * @return IPage */ - default CsPageResult queryFeatureClazzPage(Pageable pageable, LambdaQueryWrapper wrapper, Class clazz) { + default KitPageResult queryFeatureClazzPage(Pageable pageable, LambdaQueryWrapper wrapper, Class clazz) { int pageNumber = pageable.getPageNumber(); int pageSize = pageable.getPageSize(); pageNumber = pageNumber <= 0 ? 1 : pageNumber; pageSize = pageSize <= 0 ? 10 : pageSize; IPage pageInfo = this.selectPage(new Page<>(pageNumber, pageSize), wrapper); if (CollUtil.isEmpty(pageInfo.getRecords())) { - return new CsPageResult<>(new ArrayList<>(), pageInfo.getTotal()); + return new KitPageResult<>(new ArrayList<>(), pageInfo.getTotal()); } - return new CsPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); + return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); } /** @@ -157,16 +157,16 @@ public interface CsMpMapper extends BaseMapper { * @param clazz 期望的对象类型 * @return IPage */ - default CsPageResult queryFeatureClazzPage(Pageable pageable, LambdaQueryChainWrapper wrapper, Class clazz) { + default KitPageResult queryFeatureClazzPage(Pageable pageable, LambdaQueryChainWrapper wrapper, Class clazz) { int pageNumber = pageable.getPageNumber(); int pageSize = pageable.getPageSize(); pageNumber = pageNumber <= 0 ? 1 : pageNumber; pageSize = pageSize <= 0 ? 10 : pageSize; IPage pageInfo = wrapper.page(new Page<>(pageNumber, pageSize)); if (CollUtil.isEmpty(pageInfo.getRecords())) { - return CsPageUtil.emptyListData(); + return KitPageUtil.emptyListData(); } - return new CsPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); + return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); } /** diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpService.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java similarity index 80% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpService.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java index bdbded42..d75208ef 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpService.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java @@ -16,7 +16,7 @@ package cn.odboy.framework.mybatisplus.core.interfaces; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; @@ -32,7 +32,7 @@ import java.util.List; * @author odboy * @date 2022-04-03 */ -public interface CsMpService extends IService { +public interface KitMpService extends IService { int saveFeatureClazz(G resources); int saveFeatureClazzList(List resources); @@ -57,13 +57,13 @@ public interface CsMpService extends IService { List queryFeatureClazzListByArgs(LambdaQueryWrapper wrapper, Class targetClazz); - CsPageResult queryClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable); + KitPageResult queryClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable); - CsPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz); + KitPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz); - CsPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz); + KitPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz); - CsPageResult queryClazzPageByArgs(Q criteria, IPage pageable); + KitPageResult queryClazzPageByArgs(Q criteria, IPage pageable); int modifyClazzByArgs(LambdaQueryWrapper wrapper, T entity); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpServiceImpl.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java similarity index 85% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpServiceImpl.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java index 6f067cae..75a881f2 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpServiceImpl.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java @@ -18,9 +18,9 @@ package cn.odboy.framework.mybatisplus.core.interfaces; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.mybatisplus.core.CsMpQUtil; +import cn.odboy.framework.mybatisplus.core.KitMpQUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.enums.SqlMethod; @@ -39,7 +39,7 @@ import java.util.List; * @author odboy * @date 2022-04-03 */ -public class CsMpServiceImpl, T> extends ServiceImpl { +public class KitMpServiceImpl, T> extends ServiceImpl { /** * 快速插入 * @@ -147,7 +147,7 @@ public class CsMpServiceImpl, T> extends ServiceImpl List queryClazzListByArgs(Q criteria) { - QueryWrapper predicate = CsMpQUtil.build(criteria); + QueryWrapper predicate = KitMpQUtil.build(criteria); return baseMapper.selectList(predicate); } @@ -170,7 +170,7 @@ public class CsMpServiceImpl, T> extends ServiceImpl List queryFeatureClazzListByArgs(Q criteria, Class targetClazz) { - QueryWrapper predicate = CsMpQUtil.build(criteria); + QueryWrapper predicate = KitMpQUtil.build(criteria); List data = baseMapper.selectList(predicate); return BeanUtil.copyToList(data, targetClazz); } @@ -194,12 +194,12 @@ public class CsMpServiceImpl, T> extends ServiceImpl queryClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable) { + public KitPageResult queryClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable) { if (wrapper == null) { wrapper = new LambdaQueryWrapper<>(); } IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new CsPageResult<>(originPageData.getRecords(), originPageData.getTotal()); + return new KitPageResult<>(originPageData.getRecords(), originPageData.getTotal()); } /** @@ -209,24 +209,24 @@ public class CsMpServiceImpl, T> extends ServiceImpl CsPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz) { + public KitPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz) { if (wrapper == null) { wrapper = new LambdaQueryWrapper<>(); } IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new CsPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); + return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); } - public CsPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz) { - QueryWrapper wrapper = CsMpQUtil.build(criteria); + public KitPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz) { + QueryWrapper wrapper = KitMpQUtil.build(criteria); IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new CsPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); + return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); } - public CsPageResult queryClazzPageByArgs(Q criteria, IPage pageable) { - QueryWrapper wrapper = CsMpQUtil.build(criteria); + public KitPageResult queryClazzPageByArgs(Q criteria, IPage pageable) { + QueryWrapper wrapper = KitMpQUtil.build(criteria); IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new CsPageResult<>(originPageData.getRecords(), originPageData.getTotal()); + return new KitPageResult<>(originPageData.getRecords(), originPageData.getTotal()); } /** diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/CaptchaModel.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/CaptchaModel.java index b4b36dc5..dd80aab4 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/CaptchaModel.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/CaptchaModel.java @@ -16,13 +16,13 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class CaptchaModel extends CsObject { +public class CaptchaModel extends KitObject { /** * 验证码有效时间, 单位: 秒 */ diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ContentRsaEncodeSettingModel.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ContentRsaEncodeSettingModel.java index 5316102f..a7c21022 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ContentRsaEncodeSettingModel.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ContentRsaEncodeSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -25,6 +25,6 @@ import lombok.Setter; */ @Getter @Setter -public class ContentRsaEncodeSettingModel extends CsObject { +public class ContentRsaEncodeSettingModel extends KitObject { private String privateKey; } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/JwtAuthSettingModel.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/JwtAuthSettingModel.java index 35b04607..45778d46 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/JwtAuthSettingModel.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/JwtAuthSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -25,7 +25,7 @@ import lombok.Setter; */ @Getter @Setter -public class JwtAuthSettingModel extends CsObject { +public class JwtAuthSettingModel extends KitObject { /** * 必须使用最少88位的Base64对该令牌进行编码 */ diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/OSSConfigModel.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/OSSConfigModel.java index d7e85f96..25f2ea27 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/OSSConfigModel.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/OSSConfigModel.java @@ -16,13 +16,13 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class OSSConfigModel extends CsObject { +public class OSSConfigModel extends KitObject { /** * 服务地址 */ diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ThreadPoolSettingModel.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ThreadPoolSettingModel.java index 10ff0ba9..8e50bfe1 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ThreadPoolSettingModel.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ThreadPoolSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -28,7 +28,7 @@ import lombok.Setter; */ @Getter @Setter -public class ThreadPoolSettingModel extends CsObject { +public class ThreadPoolSettingModel extends KitObject { /** * 核心线程池大小 */ diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java index af0dbd1f..480b25f0 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java @@ -17,7 +17,7 @@ package cn.odboy.framework.properties.model; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import cn.odboy.constant.CaptchaCodeEnum; import cn.odboy.framework.exception.BadRequestException; import com.wf.captcha.*; @@ -34,7 +34,7 @@ import java.awt.*; */ @Getter @Setter -public class UserLoginCaptchaSettingModel extends CsObject { +public class UserLoginCaptchaSettingModel extends KitObject { private CaptchaCodeEnum codeType; /** diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginSettingModel.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginSettingModel.java index 227b8cb5..e518c869 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginSettingModel.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -27,7 +27,7 @@ import lombok.Setter; */ @Getter @Setter -public class UserLoginSettingModel extends CsObject { +public class UserLoginSettingModel extends KitObject { /** * 账号单用户 登录 */ diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java index ca234503..4a8285e9 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java @@ -16,7 +16,7 @@ package cn.odboy.framework.quartz.core; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.util.ReflectionUtils; @@ -34,7 +34,7 @@ public class QuartzRunnable implements Callable { private final String params; public QuartzRunnable(String beanName, String methodName, String params) throws NoSuchMethodException, SecurityException { - this.target = CsSpringBeanHolder.getBean(beanName); + this.target = KitSpringBeanHolder.getBean(beanName); this.params = params; if (StringUtils.isNotBlank(params)) { this.method = target.getClass().getDeclaredMethod(methodName, String.class); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/redis/CsRedisHelper.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/redis/KitRedisHelper.java similarity index 99% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/redis/CsRedisHelper.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/redis/KitRedisHelper.java index 1ab56e71..404bd042 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/redis/CsRedisHelper.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/redis/KitRedisHelper.java @@ -34,12 +34,12 @@ import java.util.concurrent.TimeUnit; @Component @SuppressWarnings({"unchecked", "all"}) -public class CsRedisHelper { - private static final Logger log = LoggerFactory.getLogger(CsRedisHelper.class); +public class KitRedisHelper { + private static final Logger log = LoggerFactory.getLogger(KitRedisHelper.class); private RedisTemplate redisTemplate; - public CsRedisHelper(RedisTemplate redisTemplate) { + public KitRedisHelper(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; this.redisTemplate.setKeySerializer(new StringRedisSerializer()); this.redisTemplate.setHashKeySerializer(new StringRedisSerializer()); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/ConfigurerAdapter.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/ConfigurerAdapter.java index 552f61fe..e33307e0 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/ConfigurerAdapter.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/ConfigurerAdapter.java @@ -53,7 +53,7 @@ public class ConfigurerAdapter implements WebMvcConfigurer { @Autowired private DateStringToDateConverter dateStringToDateConverter; @Autowired - private CsFileLocalUploadHelper fileUploadPathHelper; + private KitFileLocalUploadHelper fileUploadPathHelper; @Bean public CorsFilter corsFilter() { diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/CsFileLocalUploadHelper.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/KitFileLocalUploadHelper.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/CsFileLocalUploadHelper.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/KitFileLocalUploadHelper.java index a80fd7f4..bee9707c 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/CsFileLocalUploadHelper.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/server/core/KitFileLocalUploadHelper.java @@ -26,7 +26,7 @@ import org.springframework.stereotype.Component; * @author odboy */ @Component -public class CsFileLocalUploadHelper { +public class KitFileLocalUploadHelper { /** * 单位MB */ diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsClientManager.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsClientManager.java similarity index 79% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsClientManager.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsClientManager.java index 9409a124..3123c732 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsClientManager.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsClientManager.java @@ -29,20 +29,20 @@ import java.util.concurrent.ConcurrentHashMap; * @date 2025-07-24 */ @Slf4j -public class CsWsClientManager { +public class KitWsClientManager { /** * concurrent包的线程安全Map, 用来存放每个客户端对应的MyWebSocket对象。(分布式必出问题) */ - private static final Map clientMap = new ConcurrentHashMap<>(); + private static final Map clientMap = new ConcurrentHashMap<>(); - public static void addClient(String sid, CsWsServer csWsServer) { + public static void addClient(String sid, KitWsServer wsServer) { // 如果存在就先删除一个, 防止重复推送消息 removeClient(sid); - clientMap.put(sid, csWsServer); + clientMap.put(sid, wsServer); } public static void removeClient(String sid) { - CsWsServer wsServer = clientMap.get(sid); + KitWsServer wsServer = clientMap.get(sid); if (wsServer != null) { try { log.info("关闭session, sid={}", sid); @@ -54,11 +54,11 @@ public class CsWsClientManager { } } - public static Collection getAllClient() { + public static Collection getAllClient() { return clientMap.values(); } - public static CsWsServer getClientBySid(String sid) { + public static KitWsServer getClientBySid(String sid) { return clientMap.get(sid); } } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsMessage.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsMessage.java similarity index 86% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsMessage.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsMessage.java index f9b91d6e..54f4a829 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsMessage.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsMessage.java @@ -16,17 +16,17 @@ package cn.odboy.framework.websocket.context; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class CsWsMessage extends CsObject { +public class KitWsMessage extends KitObject { private String bizCode; private String data; - public CsWsMessage(String bizCode, String data) { + public KitWsMessage(String bizCode, String data) { this.bizCode = bizCode; this.data = data; } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsServer.java similarity index 86% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsServer.java index 716fce70..c9ecaf2f 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsServer.java @@ -31,7 +31,7 @@ import java.util.Objects; @Component @ServerEndpoint("/websocket/{sid}") @Getter -public class CsWsServer { +public class KitWsServer { /** * 与某个客户端的连接会话, 需要通过它来给客户端发送数据 */ @@ -49,7 +49,7 @@ public class CsWsServer { this.session = session; // {username}#{bizCode}#{contextParams} this.sid = sid; - CsWsClientManager.addClient(sid, this); + KitWsClientManager.addClient(sid, this); } /** @@ -59,7 +59,7 @@ public class CsWsServer { */ @OnMessage public void onMessage(String message, Session session) { - CsWsMessage wsMessage = JSON.parseObject(message, CsWsMessage.class); + KitWsMessage wsMessage = JSON.parseObject(message, KitWsMessage.class); String bizCode = wsMessage.getBizCode(); Object data = wsMessage.getData(); log.info("收到来 sid={} 的信息: message={}, bizCode={}, data={}", sid, message, bizCode, JSON.toJSONString(data)); @@ -71,7 +71,7 @@ public class CsWsServer { @OnClose public void onClose() { try { - CsWsClientManager.removeClient(this.sid); + KitWsClientManager.removeClient(this.sid); } catch (Exception e) { log.error("WebSocket onClose error, sid={}", this.sid, e); } @@ -81,7 +81,7 @@ public class CsWsServer { public void onError(Session session, Throwable error) { // log.error("WebSocket sid={} 发生错误", this.sid, error); try { - CsWsClientManager.removeClient(this.sid); + KitWsClientManager.removeClient(this.sid); } catch (Exception e) { log.error("WebSocket onClose error, sid={}", this.sid, e); } @@ -97,14 +97,14 @@ public class CsWsServer { /** * 精准推送消息 */ - public void sendMessage(CsWsMessage message, @PathParam("sid") String sid) { + public void sendMessage(KitWsMessage message, @PathParam("sid") String sid) { String body = JSON.toJSONString(message); // log.info("推送消息到{}, 推送内容:{}", sid, message); try { if (sid == null) { sendToAll(body); } else { - CsWsServer wsClient = CsWsClientManager.getClientBySid(sid); + KitWsServer wsClient = KitWsClientManager.getClientBySid(sid); if (wsClient != null) { wsClient.innerSendMessage(body); } @@ -117,12 +117,12 @@ public class CsWsServer { * 群发消息 */ public void sendToAll(String message) { - for (CsWsServer item : CsWsClientManager.getAllClient()) { + for (KitWsServer item : KitWsClientManager.getAllClient()) { try { item.innerSendMessage(message); } catch (IOException e) { log.error("发送消息给 sid={} 失败", item.sid, e); - CsWsClientManager.removeClient(item.sid); + KitWsClientManager.removeClient(item.sid); } } } @@ -135,7 +135,7 @@ public class CsWsServer { if (o == null || getClass() != o.getClass()) { return false; } - CsWsServer that = (CsWsServer)o; + KitWsServer that = (KitWsServer)o; return Objects.equals(session, that.session) && Objects.equals(sid, that.sid); } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java index 8b7cd5e1..af0b055e 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java @@ -16,13 +16,13 @@ package cn.odboy.framework.websocket.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class WsSidVo extends CsObject { +public class WsSidVo extends KitObject { private String username; private String bizCode; private String param; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsAnonTagUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java similarity index 99% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsAnonTagUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java index e10f5463..d151792a 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsAnonTagUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java @@ -33,7 +33,7 @@ import java.util.*; * 匿名标记工具 */ @UtilityClass -public class CsAnonTagUtil { +public class KitAnonTagUtil { /** * 获取匿名标记的URL diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBase64SecretUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBase64SecretUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java index 2ab653f2..1c9370d4 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBase64SecretUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java @@ -29,7 +29,7 @@ import java.nio.charset.StandardCharsets; * @date 2022-11-16 */ @UtilityClass -public final class CsBase64SecretUtil { +public final class KitBase64SecretUtil { public static String build() { // 128位uuid diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBigDecimalUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java similarity index 99% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBigDecimalUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java index bce3aa56..b03d595f 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBigDecimalUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java @@ -26,7 +26,7 @@ import java.math.RoundingMode; * 计算类 */ @UtilityClass -public final class CsBigDecimalUtil { +public final class KitBigDecimalUtil { /** * 将对象转换为 BigDecimal diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBrowserUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java similarity index 98% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBrowserUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java index bb3c13c1..f30de21f 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsBrowserUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java @@ -30,7 +30,7 @@ import java.net.UnknownHostException; */ @Slf4j @UtilityClass -public final class CsBrowserUtil { +public final class KitBrowserUtil { private static final String UNKNOWN = "unknown"; /** diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsClassUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java similarity index 96% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsClassUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java index a9d9e060..9574530e 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsClassUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java @@ -27,7 +27,7 @@ import java.util.List; * 类 相关 */ @UtilityClass -public final class CsClassUtil { +public final class KitClassUtil { @SuppressWarnings({"unchecked", "all"}) public static List getAllFields(Class clazz, List fields) { if (clazz != null) { diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsCloseUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsCloseUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java index b5cd78b0..f9e22228 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsCloseUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java @@ -25,7 +25,7 @@ import java.io.Closeable; * 用于关闭各种连接, 缺啥补啥 */ @UtilityClass -public final class CsCloseUtil { +public final class KitCloseUtil { public static void close(Closeable closeable) { if (null != closeable) { diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsCollUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java similarity index 83% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsCollUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java index e52243d9..cc78a7fd 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsCollUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java @@ -16,7 +16,7 @@ package cn.odboy.util; -import cn.odboy.base.CsSelectOptionVo; +import cn.odboy.base.KitSelectOptionVo; import com.alibaba.fastjson2.JSON; import lombok.experimental.UtilityClass; @@ -35,7 +35,7 @@ import java.util.stream.Collectors; * @date 2022-11-09 */ @UtilityClass -public final class CsCollUtil extends cn.hutool.core.collection.CollUtil { +public final class KitCollUtil extends cn.hutool.core.collection.CollUtil { private static Predicate distinctPredicate(Function keyMapper) { Map map = new HashMap<>(3); return (t) -> null == map.putIfAbsent(keyMapper.apply(t), true); @@ -107,7 +107,7 @@ public final class CsCollUtil extends cn.hutool.core.collection.CollUtil { * @return / */ public static Double streamDoubleAdd(List data) { - if (CsCollUtil.isNotEmpty(data)) { + if (KitCollUtil.isNotEmpty(data)) { return data.stream().filter(Objects::nonNull).reduce(Double::sum).orElse(0.0); } return 0.0; @@ -122,7 +122,7 @@ public final class CsCollUtil extends cn.hutool.core.collection.CollUtil { * @return / */ public static BigDecimal streamBigDecimalAdd(List data) { - if (CsCollUtil.isNotEmpty(data)) { + if (KitCollUtil.isNotEmpty(data)) { return data.stream().filter(Objects::nonNull).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); } return BigDecimal.ZERO; @@ -189,25 +189,25 @@ public final class CsCollUtil extends cn.hutool.core.collection.CollUtil { } public static void main(String[] args) { - List testData = new ArrayList<>(); - CsSelectOptionVo selectOption1 = CsSelectOptionVo.builder().label("苹果").value("apple").build(); - CsSelectOptionVo selectOption2 = CsSelectOptionVo.builder().label("苹果").value("apple").build(); - CsSelectOptionVo selectOption3 = CsSelectOptionVo.builder().label("香蕉").value("banana").build(); - CsSelectOptionVo selectOption4 = CsSelectOptionVo.builder().label("猫").value("cat").build(); + List testData = new ArrayList<>(); + KitSelectOptionVo selectOption1 = KitSelectOptionVo.builder().label("苹果").value("apple").build(); + KitSelectOptionVo selectOption2 = KitSelectOptionVo.builder().label("苹果").value("apple").build(); + KitSelectOptionVo selectOption3 = KitSelectOptionVo.builder().label("香蕉").value("banana").build(); + KitSelectOptionVo selectOption4 = KitSelectOptionVo.builder().label("猫").value("cat").build(); testData.add(selectOption1); testData.add(selectOption2); testData.add(selectOption3); testData.add(selectOption4); - List selectOptions1 = CsCollUtil.streamAscSort(testData, CsSelectOptionVo::getValue); + List selectOptions1 = KitCollUtil.streamAscSort(testData, KitSelectOptionVo::getValue); System.out.println(JSON.toJSONString(selectOptions1)); - List selectOptions2 = CsCollUtil.streamDescSort(testData, CsSelectOptionVo::getValue); + List selectOptions2 = KitCollUtil.streamDescSort(testData, KitSelectOptionVo::getValue); System.out.println(JSON.toJSONString(selectOptions2)); - List selectOptions3 = CsCollUtil.streamDistinct(testData, CsSelectOptionVo::getValue); + List selectOptions3 = KitCollUtil.streamDistinct(testData, KitSelectOptionVo::getValue); System.out.println(JSON.toJSONString(selectOptions3)); - Map selectMap1 = CsCollUtil.streamToMap(testData, CsSelectOptionVo::getValue, CsSelectOptionVo::getLabel); + Map selectMap1 = KitCollUtil.streamToMap(testData, KitSelectOptionVo::getValue, KitSelectOptionVo::getLabel); System.out.println(JSON.toJSONString(selectMap1)); // 这只是一个示范 - BigDecimal total1 = CsCollUtil.streamBigDecimalAdd(testData, "value"); + BigDecimal total1 = KitCollUtil.streamBigDecimalAdd(testData, "value"); System.out.println(total1); } } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDateUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java similarity index 99% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDateUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java index ae7e444f..5384efb4 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDateUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java @@ -29,7 +29,7 @@ import java.util.Date; * @date 2025-10-01 */ @UtilityClass -public class CsDateUtil { +public class KitDateUtil { /** * 获取当前时间毫秒数 * diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDesEncryptUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java similarity index 98% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDesEncryptUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java index c0fc914e..c5af74e6 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDesEncryptUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java @@ -29,7 +29,7 @@ import java.nio.charset.StandardCharsets; * DES加密 */ @UtilityClass -public final class CsDesEncryptUtil { +public final class KitDesEncryptUtil { private static final String STR_PARAM = "Passw0rd"; private static final IvParameterSpec IV = new IvParameterSpec(STR_PARAM.getBytes(StandardCharsets.UTF_8)); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDistributedIdUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java similarity index 94% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDistributedIdUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java index 679c66ce..5287bc67 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsDistributedIdUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java @@ -26,7 +26,7 @@ import java.util.concurrent.atomic.AtomicLong; * @author odboy * @date 2025-04-05 */ -public final class CsDistributedIdUtil { +public final class KitDistributedIdUtil { /** * 起始毫秒时间戳, 2020-12-30 */ @@ -96,7 +96,7 @@ public final class CsDistributedIdUtil { * @param workerIdBits 机器 ID 所占位数 * @param sequenceBits 序列号所占位数 */ - public CsDistributedIdUtil(long dataCenterId, long workerId, long dataCenterIdBits, long workerIdBits, long sequenceBits) { + public KitDistributedIdUtil(long dataCenterId, long workerId, long dataCenterIdBits, long workerIdBits, long sequenceBits) { this.dataCenterIdBits = dataCenterIdBits; this.workerIdBits = workerIdBits; this.sequenceBits = sequenceBits; @@ -138,7 +138,7 @@ public final class CsDistributedIdUtil { new Thread(() -> { long id = Thread.currentThread().getId(); for (int j = 0; j < 20; j++) { - System.out.println(id + " - " + CsDistributedIdUtil.fastNextId()); + System.out.println(id + " - " + KitDistributedIdUtil.fastNextId()); } }).start(); } @@ -192,6 +192,6 @@ public final class CsDistributedIdUtil { * 单例实例持有者类 */ private static class InstanceHolder { - private static final CsDistributedIdUtil INSTANCE = new CsDistributedIdUtil(20, 12, 5, 5, 12); + private static final KitDistributedIdUtil INSTANCE = new KitDistributedIdUtil(20, 12, 5, 5, 12); } } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java similarity index 98% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java index 5f373831..d732b63a 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java @@ -49,7 +49,7 @@ import static cn.odboy.constant.SystemConst.*; */ @Slf4j @UtilityClass -public final class CsFileUtil extends cn.hutool.core.io.FileUtil { +public final class KitFileUtil extends cn.hutool.core.io.FileUtil { /** * 系统临时目录 @@ -140,8 +140,8 @@ public final class CsFileUtil extends cn.hutool.core.io.FileUtil { } catch (Exception e) { log.error(e.getMessage(), e); } finally { - CsCloseUtil.close(os); - CsCloseUtil.close(ins); + KitCloseUtil.close(os); + KitCloseUtil.close(ins); } return file; } @@ -285,7 +285,7 @@ public final class CsFileUtil extends cn.hutool.core.io.FileUtil { log.error(e.getMessage(), e); return null; } finally { - CsCloseUtil.close(in); + KitCloseUtil.close(in); } return b; } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsIPUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java similarity index 93% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsIPUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java index 7ec01ef0..5f318219 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsIPUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java @@ -16,7 +16,7 @@ package cn.odboy.util; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import lombok.experimental.UtilityClass; import net.dreamlu.mica.ip2region.core.Ip2regionSearcher; import net.dreamlu.mica.ip2region.core.IpInfo; @@ -29,11 +29,11 @@ import java.util.Enumeration; * IP地址 相关 */ @UtilityClass -public final class CsIPUtil { +public final class KitIPUtil { /** * 注入bean */ - private final static Ip2regionSearcher IP_SEARCHER = CsSpringBeanHolder.getBean(Ip2regionSearcher.class); + private final static Ip2regionSearcher IP_SEARCHER = KitSpringBeanHolder.getBean(Ip2regionSearcher.class); /** * 根据ip获取详细地址 diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsJsonUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java similarity index 87% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsJsonUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java index f62fdfe5..0e97fcae 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsJsonUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java @@ -30,7 +30,7 @@ import java.util.Map; * @date 2024-10-01 */ @UtilityClass -public final class CsJsonUtil { +public final class KitJsonUtil { public static Map toMap(String jsonStr, Class kClass, Class vClass) { return JSON.parseObject(jsonStr, new TypeReference<>() { }); @@ -43,8 +43,8 @@ public final class CsJsonUtil { public static void main(String[] args) { String mapStr = "{\"key1\":\"value1\", \"key2\":\"value2\"}"; - System.err.println(CsJsonUtil.toMap(mapStr, String.class, String.class)); + System.err.println(KitJsonUtil.toMap(mapStr, String.class, String.class)); String listStr = "[\"value1\", \"value2\"]"; - System.err.println(CsJsonUtil.toList(listStr, String.class)); + System.err.println(KitJsonUtil.toList(listStr, String.class)); } } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsListUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java similarity index 87% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsListUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java index bf16758a..7ca9a785 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsListUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java @@ -17,7 +17,7 @@ package cn.odboy.util; import cn.hutool.core.date.DateTime; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import lombok.experimental.UtilityClass; import java.util.ArrayList; @@ -32,7 +32,7 @@ import java.util.stream.Collectors; * @date 2024-10-01 */ @UtilityClass -public final class CsListUtil { +public final class KitListUtil { /** * 根据对象T的属性去重 * @@ -48,10 +48,10 @@ public final class CsListUtil { * User> userMap = users.stream().collect(Collectors.toMap(User::getName, user -> user, (existing, replacement) -> existing)); */ public static void main(String[] args) { - List entities = new ArrayList<>(); + List entities = new ArrayList<>(); int total = 50; for (int i = 0; i < total; i++) { - CsBaseUserTimeTb entity = new CsBaseUserTimeTb(); + KitBaseUserTimeTb entity = new KitBaseUserTimeTb(); if (i % 2 == 0) { entity.setCreateBy("odboy"); } else { @@ -62,7 +62,7 @@ public final class CsListUtil { entity.setUpdateTime(DateTime.now().toTimestamp()); entities.add(entity); } - List entities1 = CsListUtil.distinctByArgs(entities, CsBaseUserTimeTb::getCreateBy); + List entities1 = KitListUtil.distinctByArgs(entities, KitBaseUserTimeTb::getCreateBy); System.err.println(entities1); } } diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsLogFmtUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsLogFmtUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java index ba1321a4..d6402947 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsLogFmtUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java @@ -25,7 +25,7 @@ import lombok.experimental.UtilityClass; * @date 2025-01-13 */ @UtilityClass -public final class CsLogFmtUtil { +public final class KitLogFmtUtil { /** * 替换字符串中的占位符 {} 为传入的参数 * diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsPageUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java similarity index 72% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsPageUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java index 2188b8d5..40227de6 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsPageUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java @@ -16,7 +16,7 @@ package cn.odboy.util; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -32,7 +32,7 @@ import java.util.List; * @author odboy */ @UtilityClass -public final class CsPageUtil extends cn.hutool.core.util.PageUtil { +public final class KitPageUtil extends cn.hutool.core.util.PageUtil { /** * List 分页 @@ -53,36 +53,36 @@ public final class CsPageUtil extends cn.hutool.core.util.PageUtil { /** * Page 数据处理 */ - public static CsPageResult toPage(IPage page) { - return new CsPageResult<>(page.getRecords(), page.getTotal()); + public static KitPageResult toPage(IPage page) { + return new KitPageResult<>(page.getRecords(), page.getTotal()); } /** * 自定义分页 */ - public static CsPageResult toPage(List list) { - return new CsPageResult<>(list, list.size()); + public static KitPageResult toPage(List list) { + return new KitPageResult<>(list, list.size()); } /** * 返回空数据 */ - public static CsPageResult emptyListData() { - return new CsPageResult<>(new ArrayList<>(), 0); + public static KitPageResult emptyListData() { + return new KitPageResult<>(new ArrayList<>(), 0); } /** * 返回空数据 */ - public static CsPageResult emptyData() { - return new CsPageResult<>(null, 0); + public static KitPageResult emptyData() { + return new KitPageResult<>(null, 0); } /** * 自定义分页 */ - public static CsPageResult toPage(List list, long totalElements) { - return new CsPageResult<>(list, totalElements); + public static KitPageResult toPage(List list, long totalElements) { + return new KitPageResult<>(list, totalElements); } public static Page getCount(BaseMapper baseMapper) { diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsResourceTemplateUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsResourceTemplateUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java index 31244f15..d62cf1de 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsResourceTemplateUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java @@ -31,7 +31,7 @@ import lombok.experimental.UtilityClass; * @date 2025-06-22 */ @UtilityClass -public class CsResourceTemplateUtil { +public class KitResourceTemplateUtil { public static String render(String moduleName, String filename, Dict params) { String path = StrUtil.isBlank(moduleName) ? "template" : "template/" + moduleName; TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig(path, TemplateConfig.ResourceMode.CLASSPATH)); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsReturnValueHandleUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java similarity index 98% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsReturnValueHandleUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java index b755ebd9..5a44daa4 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsReturnValueHandleUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java @@ -32,7 +32,7 @@ import java.util.Set; * @author odboy * @date 2025-05-08 */ -public class CsReturnValueHandleUtil { +public class KitReturnValueHandleUtil { public static Object getDefaultValue(ProceedingJoinPoint joinPoint) { MethodSignature signature = (MethodSignature)joinPoint.getSignature(); Method method = signature.getMethod(); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsRsaEncryptUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java similarity index 96% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsRsaEncryptUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java index 773174be..920557f0 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsRsaEncryptUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java @@ -31,7 +31,7 @@ import java.security.spec.X509EncodedKeySpec; * Rsa 工具类, 公钥私钥生成, 加解密 */ @UtilityClass -public final class CsRsaEncryptUtil { +public final class KitRsaEncryptUtil { private static final String SRC = "123456"; @@ -52,12 +52,12 @@ public final class CsRsaEncryptUtil { */ private static void test1(RsaKeyPair keyPair) throws Exception { System.out.println("***************** 公钥加密私钥解密开始 *****************"); - String text1 = encryptByPublicKey(keyPair.getPublicKey(), CsRsaEncryptUtil.SRC); + String text1 = encryptByPublicKey(keyPair.getPublicKey(), KitRsaEncryptUtil.SRC); String text2 = decryptByPrivateKey(keyPair.getPrivateKey(), text1); - System.out.println("加密前:" + CsRsaEncryptUtil.SRC); + System.out.println("加密前:" + KitRsaEncryptUtil.SRC); System.out.println("加密后:" + text1); System.out.println("解密后:" + text2); - if (CsRsaEncryptUtil.SRC.equals(text2)) { + if (KitRsaEncryptUtil.SRC.equals(text2)) { System.out.println("解密字符串和原始字符串一致, 解密成功"); } else { System.out.println("解密字符串和原始字符串不一致,解密失败"); @@ -72,12 +72,12 @@ public final class CsRsaEncryptUtil { */ private static void test2(RsaKeyPair keyPair) throws Exception { System.out.println("***************** 私钥加密公钥解密开始 *****************"); - String text1 = encryptByPrivateKey(keyPair.getPrivateKey(), CsRsaEncryptUtil.SRC); + String text1 = encryptByPrivateKey(keyPair.getPrivateKey(), KitRsaEncryptUtil.SRC); String text2 = decryptByPublicKey(keyPair.getPublicKey(), text1); - System.out.println("加密前:" + CsRsaEncryptUtil.SRC); + System.out.println("加密前:" + KitRsaEncryptUtil.SRC); System.out.println("加密后:" + text1); System.out.println("解密后:" + text2); - if (CsRsaEncryptUtil.SRC.equals(text2)) { + if (KitRsaEncryptUtil.SRC.equals(text2)) { System.out.println("解密字符串和原始字符串一致,解密成功"); } else { System.out.println("解密字符串和原始字符串不一致,解密失败"); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java similarity index 99% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java index 90cf4502..f6b186e2 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java @@ -28,7 +28,7 @@ import java.util.Date; */ @Slf4j @UtilityClass -public final class CsStringUtil { +public final class KitStringUtil { private static final char SEPARATOR = '_'; diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsSystemUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsSystemUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java index 25a5af3a..8bf56b2d 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsSystemUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java @@ -26,7 +26,7 @@ import oshi.hardware.CentralProcessor; * @author odboy * @date 2025-08-11 */ -public class CsSystemUtil { +public class KitSystemUtil { public static int getCpuCount() { SystemInfo systemInfo = new SystemInfo(); CentralProcessor processor = systemInfo.getHardware().getProcessor(); diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsValidUtil.java b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java similarity index 97% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsValidUtil.java rename to cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java index 7a3aaa50..bc676827 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/CsValidUtil.java +++ b/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java @@ -34,7 +34,7 @@ import java.util.stream.Collectors; * @date 2025-01-15 */ @UtilityClass -public final class CsValidUtil { +public final class KitValidUtil { private static final Validator VALIDATOR; static { diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java index b90ac581..0b0f52b1 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java @@ -24,16 +24,16 @@ import cn.odboy.constant.CaptchaCodeEnum; import cn.odboy.constant.SystemConst; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.model.SystemUserInfoVo; import cn.odboy.system.dal.model.SystemUserJwtVo; import cn.odboy.system.dal.model.SystemUserLoginArgs; import cn.odboy.system.dal.redis.SystemCacheKey; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; +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.CsRsaEncryptUtil; +import cn.odboy.util.KitRsaEncryptUtil; import com.wf.captcha.base.Captcha; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -64,7 +64,7 @@ import java.util.concurrent.TimeUnit; @Tag(name = "系统:系统授权接口") public class SystemAuthController { @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; @Autowired private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO; @Autowired @@ -80,7 +80,7 @@ public class SystemAuthController { @AnonymousPostMapping(value = "/login") public ResponseEntity> login(@Validated @RequestBody SystemUserLoginArgs loginRequest, HttpServletRequest request) throws Exception { // 密码解密 - String password = CsRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword()); + String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword()); // 查询验证码 String code = redisHelper.get(loginRequest.getUuid(), String.class); // 清除验证码 @@ -119,7 +119,7 @@ public class SystemAuthController { @Operation(summary = "获取用户信息") @PostMapping(value = "/info") public ResponseEntity getUserInfo() { - SystemUserJwtVo jwtUser = (SystemUserJwtVo)CsSecurityHelper.getCurrentUser(); + SystemUserJwtVo jwtUser = (SystemUserJwtVo) KitSecurityHelper.getCurrentUser(); SystemUserInfoVo userInfoVo = BeanUtil.copyProperties(jwtUser, SystemUserInfoVo.class); return ResponseEntity.ok(userInfoVo); } 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 d2f45942..ac01faec 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 @@ -16,13 +16,13 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +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.SystemQueryDeptArgs; import cn.odboy.system.service.SystemDeptService; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitPageUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; @@ -54,17 +54,17 @@ public class SystemDeptController { @Operation(summary = "查询部门") @PostMapping @PreAuthorize("@el.check('user:list','dept:list')") - public ResponseEntity> queryDept(@Validated @RequestBody CsPageArgs args) throws Exception { + public ResponseEntity> queryDept(@Validated @RequestBody KitPageArgs args) throws Exception { SystemQueryDeptArgs criteria = args.getArgs(); List depts = systemDeptService.queryAllDept(criteria, true); - return ResponseEntity.ok(CsPageUtil.toPage(depts)); + return ResponseEntity.ok(KitPageUtil.toPage(depts)); } @Operation(summary = "查询部门:根据ID获取同级与上级数据") @PostMapping("/queryDeptSuperiorTree") @PreAuthorize("@el.check('user:list','dept:list')") - public ResponseEntity> queryDeptSuperiorTree(@RequestBody List ids, - @RequestParam(defaultValue = "false") Boolean exclude) { + public ResponseEntity> queryDeptSuperiorTree(@RequestBody List ids, + @RequestParam(defaultValue = "false") Boolean exclude) { Set deptSet = new LinkedHashSet<>(); for (Long id : ids) { // 同级数据 diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java index 079edaf1..d22d6a9a 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java @@ -16,8 +16,8 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictTb; import cn.odboy.system.dal.model.SystemCreateDictArgs; import cn.odboy.system.dal.model.SystemQueryDictArgs; @@ -60,7 +60,7 @@ public class SystemDictController { @Operation(summary = "查询字典") @PostMapping @PreAuthorize("@el.check('dict:list')") - public ResponseEntity> queryDictByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryDictByArgs(@Validated @RequestBody KitPageArgs args) { Page page; SystemQueryDictArgs criteria = args.getArgs(); if (args.getSize() != null) { diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java index a03de535..2ef6e26a 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java @@ -16,8 +16,8 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictDetailTb; import cn.odboy.system.dal.model.SystemCreateDictDetailArgs; import cn.odboy.system.dal.model.SystemQueryDictDetailArgs; @@ -44,13 +44,13 @@ public class SystemDictDetailController { @Operation(summary = "查询字典详情") @PostMapping - public ResponseEntity> queryDictDetailByCrud(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryDictDetailByCrud(@Validated @RequestBody KitPageArgs args) { return queryDictDetailByArgs(args); } @Operation(summary = "查询字典详情") @PostMapping(value = "/queryDictDetailByArgs") - public ResponseEntity> queryDictDetailByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryDictDetailByArgs(@Validated @RequestBody KitPageArgs args) { SystemQueryDictDetailArgs criteria = args.getArgs(); Page page = new Page<>(args.getPage(), args.getSize()); return ResponseEntity.ok(systemDictDetailService.queryDictDetailByArgs(criteria, page)); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java index 9b3994c8..5c5c4d66 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java @@ -16,8 +16,8 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.model.SystemCreateJobArgs; import cn.odboy.system.dal.model.SystemQueryJobArgs; @@ -52,7 +52,7 @@ public class SystemJobController { @Operation(summary = "查询岗位") @PostMapping(value = "/queryAllEnableJob") @PreAuthorize("@el.check('job:list','user:list')") - public ResponseEntity> queryJobByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryJobByArgs(@Validated @RequestBody KitPageArgs args) { SystemQueryJobArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(systemJobService.queryJobByArgs(criteria, page)); @@ -61,7 +61,7 @@ public class SystemJobController { @Operation(summary = "查询岗位") @PostMapping @PreAuthorize("@el.check('job:list','user:list')") - public ResponseEntity> queryJobByCrud(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryJobByCrud(@Validated @RequestBody KitPageArgs args) { return queryJobByArgs(args); } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java index 2c439078..558a4708 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java @@ -16,14 +16,14 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.constant.FileTypeEnum; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.service.SystemLocalStorageService; -import cn.odboy.util.CsFileUtil; +import cn.odboy.util.KitFileUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -47,7 +47,7 @@ public class SystemLocalStorageController { @Operation(summary = "查询文件") @PostMapping @PreAuthorize("@el.check('storage:list')") - public ResponseEntity> queryLocalStorage(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryLocalStorage(@Validated @RequestBody KitPageArgs args) { SystemQueryStorageArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(localStorageService.queryLocalStorage(criteria, page)); @@ -72,8 +72,8 @@ public class SystemLocalStorageController { @PostMapping("/uploadPicture") public ResponseEntity uploadPicture(@RequestParam MultipartFile file) { // 判断文件是否为图片 - String suffix = CsFileUtil.getSuffix(file.getOriginalFilename()); - if (!FileTypeEnum.IMAGE.getCode().equals(CsFileUtil.getFileType(suffix))) { + String suffix = KitFileUtil.getSuffix(file.getOriginalFilename()); + if (!FileTypeEnum.IMAGE.getCode().equals(KitFileUtil.getFileType(suffix))) { throw new BadRequestException("只能上传图片"); } SystemLocalStorageTb localStorage = localStorageService.uploadFile(null, file); 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 dc5ea276..8dae6aa5 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 @@ -17,16 +17,16 @@ package cn.odboy.system.controller; import cn.hutool.core.collection.CollectionUtil; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +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.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.dal.mysql.SystemMenuMapper; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.service.SystemMenuService; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitPageUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; @@ -58,7 +58,7 @@ public class SystemMenuController { @PostMapping(value = "/buildMenus") @Operation(summary = "获取前端所需菜单") public ResponseEntity> buildMenus() { - List menuList = systemMenuService.queryMenuListByUserId(CsSecurityHelper.getCurrentUserId()); + List menuList = systemMenuService.queryMenuListByUserId(KitSecurityHelper.getCurrentUserId()); List menus = systemMenuService.buildMenuTree(menuList); return ResponseEntity.ok(systemMenuService.buildMenuVo(menus)); } @@ -85,17 +85,17 @@ public class SystemMenuController { @PostMapping @Operation(summary = "查询菜单") @PreAuthorize("@el.check('menu:list')") - public ResponseEntity> queryAllMenuByCrud(@Validated @RequestBody CsPageArgs args) throws Exception { + public ResponseEntity> queryAllMenuByCrud(@Validated @RequestBody KitPageArgs args) throws Exception { return queryAllMenu(args); } @PostMapping(value = "/queryMenuByArgs") @Operation(summary = "查询菜单") @PreAuthorize("@el.check('menu:list')") - public ResponseEntity> queryAllMenu(@Validated @RequestBody CsPageArgs args) throws Exception { + public ResponseEntity> queryAllMenu(@Validated @RequestBody KitPageArgs args) throws Exception { SystemQueryMenuArgs criteria = args.getArgs(); List menuList = systemMenuService.queryAllMenu(criteria, true); - return ResponseEntity.ok(CsPageUtil.toPage(menuList)); + return ResponseEntity.ok(KitPageUtil.toPage(menuList)); } @Operation(summary = "查询菜单:根据ID获取同级与上级数据") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java index d8b4ea6d..c610cad7 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java @@ -16,11 +16,11 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.model.SystemUserOnlineVo; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; -import cn.odboy.util.CsDesEncryptUtil; +import cn.odboy.util.KitDesEncryptUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; @@ -45,7 +45,7 @@ public class SystemOnlineController { @Operation(summary = "查询在线用户") @PostMapping @PreAuthorize("@el.check()") - public ResponseEntity> queryOnlineUser(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryOnlineUser(@Validated @RequestBody KitPageArgs args) { IPage page = new Page<>(args.getPage(), args.getSize()); return ResponseEntity.ok(systemUserOnlineInfoDAO.queryUserOnlineModelPage(args.getArgs(), page)); } @@ -63,7 +63,7 @@ public class SystemOnlineController { public ResponseEntity kickOutUser(@RequestBody Set keys) throws Exception { for (String token : keys) { // 解密Key - token = CsDesEncryptUtil.desDecrypt(token); + token = KitDesEncryptUtil.desDecrypt(token); systemUserOnlineInfoDAO.logoutByToken(token); } return ResponseEntity.ok(null); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java index 4ab469fc..c4938c69 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java @@ -16,8 +16,8 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; @@ -47,7 +47,7 @@ public class SystemOssStorageController { @Operation(summary = "查询文件") @PostMapping @PreAuthorize("@el.check('storage:list')") - public ResponseEntity> queryOssStorage(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryOssStorage(@Validated @RequestBody KitPageArgs args) { SystemQueryStorageArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(systemOssStorageService.queryOssStorage(criteria, page)); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java index 8a10eb4d..b402d428 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java @@ -16,9 +16,9 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; @@ -50,7 +50,7 @@ public class SystemQuartzJobController { @Operation(summary = "查询定时任务") @PostMapping @PreAuthorize("@el.check('quartzJob:list')") - public ResponseEntity> queryQuartzJobByCrud(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryQuartzJobByCrud(@Validated @RequestBody KitPageArgs args) { SystemQueryQuartzJobArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(systemQuartzJobService.queryQuartzJobByArgs(criteria, page)); @@ -73,7 +73,7 @@ public class SystemQuartzJobController { @Operation(summary = "查询任务执行日志") @PostMapping(value = "/logs") @PreAuthorize("@el.check('quartzJob:list')") - public ResponseEntity> queryQuartzJobLog(SystemQueryQuartzJobArgs args) { + public ResponseEntity> queryQuartzJobLog(SystemQueryQuartzJobArgs args) { Page page = new Page<>(args.getPage(), args.getSize()); return ResponseEntity.ok(systemQuartzJobService.queryQuartzLogByArgs(args, page)); } @@ -133,7 +133,7 @@ public class SystemQuartzJobController { private void checkBean(String beanName) { // 避免调用攻击者可以从SpringContextHolder获得控制jdbcTemplate类 // 并使用getDeclaredMethod调用jdbcTemplate的queryForMap函数,执行任意sql命令。 - if (!CsSpringBeanHolder.getAllServiceBeanName().contains(beanName)) { + if (!KitSpringBeanHolder.getAllServiceBeanName().contains(beanName)) { throw new BadRequestException("非法的 Bean,请重新输入!"); } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java index ebdac7c5..c23b7b73 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java @@ -17,13 +17,13 @@ package cn.odboy.system.controller; import cn.hutool.core.lang.Dict; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.model.SystemCreateRoleArgs; import cn.odboy.system.dal.model.SystemQueryRoleArgs; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.service.SystemRoleService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; @@ -71,7 +71,7 @@ public class SystemRoleController { @Operation(summary = "查询角色") @PostMapping @PreAuthorize("@el.check('roles:list')") - public ResponseEntity> queryRoleByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryRoleByArgs(@Validated @RequestBody KitPageArgs args) { SystemQueryRoleArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(systemRoleService.queryRoleByArgs(criteria, page)); @@ -131,7 +131,7 @@ public class SystemRoleController { * @return / */ private int checkRoleLevels(Integer level) { - List levels = systemRoleService.queryRoleByUsersId(CsSecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).toList(); + List levels = systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).toList(); int min = Collections.min(levels); if (level != null) { if (level < min) { diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java index 7bab0067..8a223ec5 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java @@ -17,9 +17,9 @@ package cn.odboy.system.controller; import cn.hutool.core.collection.CollectionUtil; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; -import cn.odboy.base.CsSelectOptionVo; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; +import cn.odboy.base.KitSelectOptionVo; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; import cn.odboy.system.constant.SystemCaptchaBizEnum; @@ -28,10 +28,10 @@ import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; import cn.odboy.system.dal.model.SystemQueryUserArgs; import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; import cn.odboy.system.service.*; -import cn.odboy.util.CsPageUtil; -import cn.odboy.util.CsRsaEncryptUtil; +import cn.odboy.util.KitPageUtil; +import cn.odboy.util.KitRsaEncryptUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; @@ -79,7 +79,7 @@ public class SystemUserController { @Operation(summary = "查询用户") @PostMapping @PreAuthorize("@el.check('user:list')") - public ResponseEntity> queryUserByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryUserByArgs(@Validated @RequestBody KitPageArgs args) { Page page = new Page<>(args.getPage(), args.getSize()); SystemQueryUserArgs criteria = args.getArgs(); if (!ObjectUtils.isEmpty(criteria.getDeptId())) { @@ -90,7 +90,7 @@ public class SystemUserController { criteria.getDeptIds().addAll(systemDeptService.queryChildDeptIdListByDeptIds(data)); } // 数据权限 - List dataScopes = systemDataService.queryDeptIdListByArgs(systemUserService.getUserByUsername(CsSecurityHelper.getCurrentUsername())); + List dataScopes = systemDataService.queryDeptIdListByArgs(systemUserService.getUserByUsername(KitSecurityHelper.getCurrentUsername())); // criteria.getDeptIds() 不为空并且数据权限不为空则取交集 if (!CollectionUtils.isEmpty(criteria.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) { // 取交集 @@ -103,7 +103,7 @@ public class SystemUserController { criteria.getDeptIds().addAll(dataScopes); return ResponseEntity.ok(systemUserService.queryUserByArgs(criteria, page)); } - return ResponseEntity.ok(CsPageUtil.emptyData()); + return ResponseEntity.ok(KitPageUtil.emptyData()); } @Operation(summary = "新增用户") @@ -129,7 +129,7 @@ public class SystemUserController { @Operation(summary = "修改用户:个人中心") @PostMapping(value = "modifyUserCenterInfoById") public ResponseEntity modifyUserCenterInfoById(@Validated(SystemUserTb.Update.class) @RequestBody SystemUserTb args) { - if (!args.getId().equals(CsSecurityHelper.getCurrentUserId())) { + if (!args.getId().equals(KitSecurityHelper.getCurrentUserId())) { throw new BadRequestException("不能修改他人资料"); } systemUserService.modifyUserCenterInfoById(args); @@ -142,7 +142,7 @@ public class SystemUserController { public ResponseEntity removeUserByIds(@RequestBody Set ids) { for (Long id : ids) { Integer currentLevel = - Collections.min(systemRoleService.queryRoleByUsersId(CsSecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).toList()); + Collections.min(systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).toList()); Integer optLevel = Collections.min(systemRoleService.queryRoleByUsersId(id).stream().map(SystemRoleTb::getLevel).toList()); if (currentLevel > optLevel) { throw new BadRequestException("角色权限不足, 不能删除:" + systemUserService.getUserById(id).getUsername()); @@ -155,9 +155,9 @@ public class SystemUserController { @Operation(summary = "修改密码") @PostMapping(value = "/modifyUserPasswordByUsername") public ResponseEntity modifyUserPasswordByUsername(@RequestBody SystemUpdateUserPasswordArgs passVo) throws Exception { - String oldPass = CsRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getOldPass()); - String newPass = CsRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getNewPass()); - SystemUserTb user = systemUserService.getUserByUsername(CsSecurityHelper.getCurrentUsername()); + String oldPass = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getOldPass()); + String newPass = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getNewPass()); + SystemUserTb user = systemUserService.getUserByUsername(KitSecurityHelper.getCurrentUsername()); if (!passwordEncoder.matches(oldPass, user.getPassword())) { throw new BadRequestException("修改失败,旧密码错误"); } @@ -185,8 +185,8 @@ public class SystemUserController { @Operation(summary = "修改邮箱") @PostMapping(value = "/modifyUserEmailByUsername/{code}") public ResponseEntity modifyUserEmailByUsername(@PathVariable String code, @RequestBody SystemUserTb args) throws Exception { - String password = CsRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), args.getPassword()); - SystemUserTb user = systemUserService.getUserByUsername(CsSecurityHelper.getCurrentUsername()); + String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), args.getPassword()); + SystemUserTb user = systemUserService.getUserByUsername(KitSecurityHelper.getCurrentUsername()); if (!passwordEncoder.matches(password, user.getPassword())) { throw new BadRequestException("密码错误"); } @@ -202,7 +202,7 @@ public class SystemUserController { */ private void checkLevel(SystemUserTb args) { Integer currentLevel = - Collections.min(systemRoleService.queryRoleByUsersId(CsSecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).toList()); + Collections.min(systemRoleService.queryRoleByUsersId(KitSecurityHelper.getCurrentUserId()).stream().map(SystemRoleTb::getLevel).toList()); Integer optLevel = systemRoleService.getDeptLevelByRoles(args.getRoles()); if (currentLevel > optLevel) { throw new BadRequestException("角色权限不足"); @@ -212,7 +212,7 @@ public class SystemUserController { @Operation(summary = "查询用户基础数据") @PostMapping(value = "/queryUserMetadataOptions") @PreAuthorize("@el.check('user:list')") - public ResponseEntity> queryUserMetadataOptions(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryUserMetadataOptions(@Validated @RequestBody KitPageArgs args) { int maxPageSize = 50; SystemQueryUserArgs criteria = args.getArgs(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -225,14 +225,14 @@ public class SystemUserController { c.or(); c.like(SystemUserTb::getNickName, criteria.getBlurry()); }); - List collect = + List collect = systemUserService.queryUserByBlurry(wrapper, new Page<>(criteria.getPage(), maxPageSize)).getRecords().stream().map(m -> { Map ext = new HashMap<>(1); ext.put("id", m.getId()); ext.put("deptId", m.getDeptId()); ext.put("email", m.getEmail()); ext.put("phone", m.getPhone()); - return CsSelectOptionVo.builder().label(m.getNickName()).value(String.valueOf(m.getId())).ext(ext).build(); + return KitSelectOptionVo.builder().label(m.getNickName()).value(String.valueOf(m.getId())).ext(ext).build(); }).toList(); return ResponseEntity.ok(collect); } 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 e906f918..e19fb85d 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,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -35,7 +35,7 @@ import java.util.Set; @Getter @Setter @TableName("system_dept") -public class SystemDeptTb extends CsBaseUserTimeTb { +public class SystemDeptTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @TableId(value = "dept_id", type = IdType.AUTO) diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictDetailTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictDetailTb.java index 09790f7d..adfc5d01 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictDetailTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictDetailTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -29,7 +29,7 @@ import lombok.Setter; @Getter @Setter @TableName("system_dict_detail") -public class SystemDictDetailTb extends CsBaseUserTimeTb { +public class SystemDictDetailTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @Schema(name = "ID", hidden = true) diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictTb.java index 2d7ab087..b936ae3f 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.*; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; @@ -27,7 +27,7 @@ import lombok.Setter; @Getter @Setter @TableName("system_dict") -public class SystemDictTb extends CsBaseUserTimeTb { +public class SystemDictTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @Schema(name = "ID", hidden = true) diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemEmailConfigTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemEmailConfigTb.java index dc9bf60a..7c315d59 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemEmailConfigTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemEmailConfigTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; @@ -30,7 +30,7 @@ import lombok.EqualsAndHashCode; @Data @TableName("system_email_config") @EqualsAndHashCode(callSuper = false) -public class SystemEmailConfigTb extends CsObject { +public class SystemEmailConfigTb extends KitObject { @TableId("config_id") private Long id; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemJobTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemJobTb.java index d5e0552c..d89476f3 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemJobTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemJobTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -31,7 +31,7 @@ import java.util.Objects; @Getter @Setter @TableName("system_job") -public class SystemJobTb extends CsBaseUserTimeTb { +public class SystemJobTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @TableId(value = "id", type = IdType.AUTO) 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 78c6260b..9ec46617 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 @@ -18,7 +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.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -29,7 +29,7 @@ import lombok.Setter; @Getter @Setter @TableName("system_local_storage") -public class SystemLocalStorageTb extends CsBaseUserTimeTb { +public class SystemLocalStorageTb extends KitBaseUserTimeTb { @TableId(value = "id", type = IdType.AUTO) @Schema(name = "ID", hidden = true) 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 25d782f5..8696a0fb 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,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -34,7 +34,7 @@ import java.util.Set; @Getter @Setter @TableName("system_menu") -public class SystemMenuTb extends CsBaseUserTimeTb { +public class SystemMenuTb extends KitBaseUserTimeTb { @NotNull(groups = {Update.class}) @TableId(value = "menu_id", type = IdType.AUTO) diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOperationLogTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOperationLogTb.java index a8f6c6d9..d5ba97ea 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOperationLogTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOperationLogTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.baomidou.mybatisplus.annotation.*; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; @@ -38,7 +38,7 @@ import java.util.Date; @ToString @TableName("system_operation_log") @Schema(name = "SystemOperationLog对象", description = "审计日志") -public class SystemOperationLogTb extends CsObject { +public class SystemOperationLogTb extends KitObject { /** * id diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOssStorageTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOssStorageTb.java index 59d3988a..8209a3f6 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOssStorageTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOssStorageTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -37,7 +37,7 @@ import lombok.Setter; @Setter @TableName("system_oss_storage") @Schema(name = "SystemOssStorage对象", description = "OSS存储") -public class SystemOssStorageTb extends CsBaseUserTimeTb { +public class SystemOssStorageTb extends KitBaseUserTimeTb { @Schema(name = "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; 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 9dc2ebd3..468aac7e 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 @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.*; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; @@ -27,7 +27,7 @@ import lombok.Setter; @Getter @Setter @TableName("system_quartz_job") -public class SystemQuartzJobTb extends CsBaseUserTimeTb { +public class SystemQuartzJobTb extends KitBaseUserTimeTb { public static final String JOB_KEY = "JOB_KEY"; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzLogTb.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzLogTb.java index bcaa8b0d..3bd5f8f7 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzLogTb.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzLogTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.baomidou.mybatisplus.annotation.*; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -27,7 +27,7 @@ import java.util.Date; @Data @TableName("system_quartz_log") @EqualsAndHashCode(callSuper = false) -public class SystemQuartzLogTb extends CsObject { +public class SystemQuartzLogTb extends KitObject { @TableId(value = "id", type = IdType.AUTO) @Schema(name = "ID", hidden = true) 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 5beac93c..b183a0e7 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 @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import cn.odboy.system.constant.SystemDataScopeEnum; import com.baomidou.mybatisplus.annotation.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -34,7 +34,7 @@ import java.util.Set; @Getter @Setter @TableName("system_role") -public class SystemRoleTb extends CsBaseUserTimeTb { +public class SystemRoleTb extends KitBaseUserTimeTb { @NotNull(groups = {Update.class}) @TableId(value = "role_id", type = IdType.AUTO) 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 d83fd4e1..8295c920 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 @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -35,7 +35,7 @@ import java.util.Set; @Getter @Setter @TableName("system_user") -public class SystemUserTb extends CsBaseUserTimeTb { +public class SystemUserTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @TableId(value = "user_id", type = IdType.AUTO) diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCheckEmailCaptchaArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCheckEmailCaptchaArgs.java index 85993a2a..bc0045b2 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCheckEmailCaptchaArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCheckEmailCaptchaArgs.java @@ -16,14 +16,14 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class SystemCheckEmailCaptchaArgs extends CsObject { +public class SystemCheckEmailCaptchaArgs extends KitObject { @NotBlank(message = "邮箱不能为空") private String email; @NotBlank(message = "验证码不能为空") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDeptArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDeptArgs.java index 82245efe..4da4d62d 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDeptArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDeptArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -24,7 +24,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateDeptArgs extends CsObject { +public class SystemCreateDeptArgs extends KitObject { @NotBlank(message = "部门名称必填") private String name; @NotNull(message = "部门排序必填") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictArgs.java index 5b4a1d42..be2412c3 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictArgs.java @@ -16,14 +16,14 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateDictArgs extends CsObject { +public class SystemCreateDictArgs extends KitObject { @NotBlank(message = "字典名称必填") private String name; private String description; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictDetailArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictDetailArgs.java index 4dd48af0..abaa47f7 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictDetailArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictDetailArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import cn.odboy.system.dal.dataobject.SystemDictTb; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -25,7 +25,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateDictDetailArgs extends CsObject { +public class SystemCreateDictDetailArgs extends KitObject { @NotNull(message = "参数dict必填") private SystemDictTb dict; @NotBlank(message = "字典标签必填") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateJobArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateJobArgs.java index 5d970288..8ec5af38 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateJobArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateJobArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -24,7 +24,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateJobArgs extends CsObject { +public class SystemCreateJobArgs extends KitObject { @NotBlank(message = "职位名称必填") private String name; @NotNull(message = "职位排序必填") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateRoleArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateRoleArgs.java index 5dff30cb..f34c3126 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateRoleArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateRoleArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import cn.odboy.system.dal.dataobject.SystemDeptTb; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -27,7 +27,7 @@ import java.util.Set; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateRoleArgs extends CsObject { +public class SystemCreateRoleArgs extends KitObject { @NotBlank(message = "角色名称必填") private String name; @NotNull(message = "角色级别必填") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuMetaVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuMetaVo.java index d3cfadca..ad590af0 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuMetaVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuMetaVo.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; @@ -25,7 +25,7 @@ import lombok.EqualsAndHashCode; @Data @AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class SystemMenuMetaVo extends CsObject { +public class SystemMenuMetaVo extends KitObject { @Schema(name = "菜单标题") private String title; 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 3a6321bb..9f537c60 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 @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -28,7 +28,7 @@ import java.util.List; */ @Data @EqualsAndHashCode(callSuper = false) -public class SystemMenuVo extends CsObject { +public class SystemMenuVo extends KitObject { @Schema(name = "菜单名称") private String name; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineTreeVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineTreeVo.java index 1d45162a..4f61709c 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineTreeVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineTreeVo.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -24,7 +24,7 @@ import java.util.List; @Getter @Setter -public class SystemProductLineTreeVo extends CsObject { +public class SystemProductLineTreeVo extends KitObject { private String value; private String label; private List children; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineVo.java index bd1ab894..34016cd2 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineVo.java @@ -16,13 +16,13 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class SystemProductLineVo extends CsObject { +public class SystemProductLineVo extends KitObject { /** * 部门ID(select的value) */ diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryDictDetailArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryDictDetailArgs.java index 37c1f7ba..f6be4cce 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryDictDetailArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryDictDetailArgs.java @@ -16,14 +16,14 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class SystemQueryDictDetailArgs extends CsObject { +public class SystemQueryDictDetailArgs extends KitObject { @Schema(name = "标签") private String label; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryUserArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryUserArgs.java index 5463f396..b4570dfa 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryUserArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryUserArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -28,7 +28,7 @@ import java.util.Set; @Data @EqualsAndHashCode(callSuper = false) -public class SystemQueryUserArgs extends CsObject { +public class SystemQueryUserArgs extends KitObject { @Schema(name = "ID") private Long id; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSimpleUserVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSimpleUserVo.java index c4ad9a79..989de68d 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSimpleUserVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSimpleUserVo.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; @@ -29,7 +29,7 @@ import java.util.Set; @Data @EqualsAndHashCode(callSuper = false) -public class SystemSimpleUserVo extends CsObject { +public class SystemSimpleUserVo extends KitObject { @Schema(name = "ID", hidden = true) private Long id; @Schema(name = "用户角色") diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUpdateQuartzJobArgs.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUpdateQuartzJobArgs.java index 6ebdbdf3..ae52bd22 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUpdateQuartzJobArgs.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUpdateQuartzJobArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -24,7 +24,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) -public class SystemUpdateQuartzJobArgs extends CsObject { +public class SystemUpdateQuartzJobArgs extends KitObject { @NotNull private Long id; private String uuid; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserInfoVo.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserInfoVo.java index 21f16de8..a0363eb0 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserInfoVo.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserInfoVo.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,7 +26,7 @@ import java.util.stream.Collectors; @Data @EqualsAndHashCode(callSuper = false) -public class SystemUserInfoVo extends CsObject { +public class SystemUserInfoVo extends KitObject { private SystemSimpleUserVo user; private List dataScopes; private List authorities; diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java index 044eeba9..328f6774 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java @@ -2,7 +2,7 @@ package cn.odboy.system.dal.redis; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.model.SystemUserJwtVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; @@ -14,7 +14,7 @@ import org.springframework.stereotype.Component; @Component public class SystemUserInfoDAO { @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; /** * 添加缓存到Redis 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 3387eb51..e71e362e 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,9 +1,9 @@ package cn.odboy.system.dal.redis; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.redis.CsRedisHelper; +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; @@ -25,7 +25,7 @@ import java.util.concurrent.TimeUnit; public class SystemUserOnlineInfoDAO { private final AppProperties properties; private final TokenProvider tokenProvider; - private final CsRedisHelper redisHelper; + private final KitRedisHelper redisHelper; /** * 保存在线用户信息 @@ -37,10 +37,10 @@ public class SystemUserOnlineInfoDAO { public void saveUserJwtModelByToken(SystemUserJwtVo userJwtVo, String token, HttpServletRequest request) { String dept = userJwtVo.getUser().getDept().getName(); - String ip = CsBrowserUtil.getIp(request); + String ip = KitBrowserUtil.getIp(request); String id = tokenProvider.getId(token); - String version = CsBrowserUtil.getVersion(request); - String address = CsIPUtil.getCityInfo(ip); + String version = KitBrowserUtil.getVersion(request); + String address = KitIPUtil.getCityInfo(ip); SystemUserOnlineVo userOnlineVo = null; try { userOnlineVo = new SystemUserOnlineVo(); @@ -51,7 +51,7 @@ public class SystemUserOnlineInfoDAO { userOnlineVo.setBrowser(version); userOnlineVo.setIp(ip); userOnlineVo.setAddress(address); - userOnlineVo.setKey(CsDesEncryptUtil.desEncrypt(token)); + userOnlineVo.setKey(KitDesEncryptUtil.desEncrypt(token)); userOnlineVo.setLoginTime(new Date()); } catch (Exception e) { log.error(e.getMessage(), e); @@ -91,7 +91,7 @@ public class SystemUserOnlineInfoDAO { map.put("登录日期", user.getLoginTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -113,14 +113,14 @@ public class SystemUserOnlineInfoDAO { * @return / */ - public CsPageResult queryUserOnlineModelPage(SystemUserOnlineVo onlineVo, IPage pageable) { + public KitPageResult queryUserOnlineModelPage(SystemUserOnlineVo onlineVo, IPage pageable) { String username = null; if (onlineVo != null) { username = onlineVo.getUserName(); } List onlineUserList = queryUserOnlineModelListByUsername(username); - List paging = CsPageUtil.softPaging(pageable.getCurrent(), pageable.getSize(), onlineUserList); - return CsPageUtil.toPage(paging, onlineUserList.size()); + List paging = KitPageUtil.softPaging(pageable.getCurrent(), pageable.getSize(), onlineUserList); + return KitPageUtil.toPage(paging, onlineUserList.size()); } /** diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/bizlock/BizLockAspect.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/bizlock/BizLockAspect.java index 6f7a38d5..ac091709 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/bizlock/BizLockAspect.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/bizlock/BizLockAspect.java @@ -17,7 +17,7 @@ package cn.odboy.system.framework.bizlock; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -33,10 +33,10 @@ import java.lang.reflect.Method; @Aspect @Component public class BizLockAspect { - private final CsRedisHelper redisHelper; + private final KitRedisHelper redisHelper; private final ExpressionParser parser = new SpelExpressionParser(); - public BizLockAspect(CsRedisHelper redisHelper) { + public BizLockAspect(KitRedisHelper redisHelper) { this.redisHelper = redisHelper; } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/mybatisplus/MpMetaObjectHandler.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/mybatisplus/MpMetaObjectHandler.java index d4fe717c..33d37709 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/mybatisplus/MpMetaObjectHandler.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/mybatisplus/MpMetaObjectHandler.java @@ -17,7 +17,7 @@ package cn.odboy.system.framework.mybatisplus; import cn.hutool.core.date.DateTime; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; @@ -36,7 +36,7 @@ public class MpMetaObjectHandler implements MetaObjectHandler { /* 操作人 */ String username = "System"; try { - username = CsSecurityHelper.getCurrentUsername(); + username = KitSecurityHelper.getCurrentUsername(); } catch (Exception ignored) { } this.strictInsertFill(metaObject, "createBy", String.class, username); @@ -50,7 +50,7 @@ public class MpMetaObjectHandler implements MetaObjectHandler { /* 操作人 */ String username = "System"; try { - username = CsSecurityHelper.getCurrentUsername(); + username = KitSecurityHelper.getCurrentUsername(); } catch (Exception ignored) { } this.strictUpdateFill(metaObject, "updateBy", String.class, username); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/OperationLogAspect.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/OperationLogAspect.java index c7b36dec..a6a293d9 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/OperationLogAspect.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/OperationLogAspect.java @@ -19,12 +19,12 @@ package cn.odboy.system.framework.operalog; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsRequestHolder; +import cn.odboy.framework.context.KitRequestHolder; import cn.odboy.system.dal.dataobject.SystemOperationLogTb; import cn.odboy.system.dal.mysql.SystemOperationLogMapper; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; -import cn.odboy.util.CsBrowserUtil; -import cn.odboy.util.CsIPUtil; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBrowserUtil; +import cn.odboy.util.KitIPUtil; import com.alibaba.fastjson2.JSON; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletRequest; @@ -100,11 +100,11 @@ public class OperationLogAspect { String method = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; Object[] args = joinPoint.getArgs(); String params = JSON.toJSONString(args); - HttpServletRequest request = CsRequestHolder.getHttpServletRequest(); - String requestIp = CsBrowserUtil.getIp(request); - String browserInfo = CsBrowserUtil.getVersion(request); - String address = CsIPUtil.getCityInfo(requestIp); - String username = CsSecurityHelper.getCurrentUsername(); + HttpServletRequest request = KitRequestHolder.getHttpServletRequest(); + String requestIp = KitBrowserUtil.getIp(request); + String browserInfo = KitBrowserUtil.getVersion(request); + String address = KitIPUtil.getCityInfo(requestIp); + String username = KitSecurityHelper.getCurrentUsername(); SystemOperationLogTb record = new SystemOperationLogTb(); record.setBizName(bizName); record.setMethod(method); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/core/SystemOperationLogAspect.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/core/SystemOperationLogAspect.java index 06b41d43..9cbfb440 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/core/SystemOperationLogAspect.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/core/SystemOperationLogAspect.java @@ -18,13 +18,13 @@ package cn.odboy.system.framework.operalog.core; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsRequestHolder; +import cn.odboy.framework.context.KitRequestHolder; import cn.odboy.system.dal.dataobject.SystemOperationLogTb; import cn.odboy.system.dal.mysql.SystemOperationLogMapper; import cn.odboy.system.framework.operalog.annotaions.OperationLog; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; -import cn.odboy.util.CsBrowserUtil; -import cn.odboy.util.CsIPUtil; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitBrowserUtil; +import cn.odboy.util.KitIPUtil; import com.alibaba.fastjson2.JSON; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletRequest; @@ -102,11 +102,11 @@ public class SystemOperationLogAspect { String method = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; Object[] args = joinPoint.getArgs(); String params = JSON.toJSONString(args); - HttpServletRequest request = CsRequestHolder.getHttpServletRequest(); - String requestIp = CsBrowserUtil.getIp(request); - String browserInfo = CsBrowserUtil.getVersion(request); - String address = CsIPUtil.getCityInfo(requestIp); - String username = CsSecurityHelper.getCurrentUsername(); + HttpServletRequest request = KitRequestHolder.getHttpServletRequest(); + String requestIp = KitBrowserUtil.getIp(request); + String browserInfo = KitBrowserUtil.getVersion(request); + String address = KitIPUtil.getCityInfo(requestIp); + String username = KitSecurityHelper.getCurrentUsername(); SystemOperationLogTb record = new SystemOperationLogTb(); record.setBizName(bizName); record.setMethod(method); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/AuthorityConfig.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/AuthorityConfig.java index 68b92960..6947737e 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/AuthorityConfig.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/AuthorityConfig.java @@ -16,7 +16,7 @@ package cn.odboy.system.framework.permission.config; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; import org.springframework.security.core.GrantedAuthority; import org.springframework.stereotype.Service; @@ -34,7 +34,7 @@ public class AuthorityConfig { */ public Boolean check(String... permissions) { // 获取当前用户的所有权限 - List roleList = CsSecurityHelper.getCurrentUser().getAuthorities().stream().map(GrantedAuthority::getAuthority).toList(); + List roleList = KitSecurityHelper.getCurrentUser().getAuthorities().stream().map(GrantedAuthority::getAuthority).toList(); // 判断当前用户的所有权限是否包含接口上定义的权限 return roleList.contains("admin") || Arrays.stream(permissions).anyMatch(roleList::contains); } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/SpringSecurityConfig.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/SpringSecurityConfig.java index eeb3fbaf..e412aaeb 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/SpringSecurityConfig.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/SpringSecurityConfig.java @@ -22,7 +22,7 @@ import cn.odboy.system.framework.permission.core.handler.JwtAccessDeniedHandler; import cn.odboy.system.framework.permission.core.handler.JwtAuthenticationEntryPoint; import cn.odboy.system.framework.permission.core.handler.TokenFilter; import cn.odboy.system.framework.permission.core.handler.TokenProvider; -import cn.odboy.util.CsAnonTagUtil; +import cn.odboy.util.KitAnonTagUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -74,7 +74,7 @@ public class SpringSecurityConfig { @Bean protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { // 获取匿名标记 - Map> anonymousUrls = CsAnonTagUtil.getAnonymousUrl(applicationContext); + Map> anonymousUrls = KitAnonTagUtil.getAnonymousUrl(applicationContext); // 创建TokenFilter实例 TokenFilter customFilter = new TokenFilter(tokenProvider, systemUserOnlineInfoDAO); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/KitSecurityHelper.java similarity index 95% rename from cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java rename to cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/KitSecurityHelper.java index c2f79430..4aa01885 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/KitSecurityHelper.java @@ -20,7 +20,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.jwt.JWT; import cn.hutool.jwt.JWTUtil; import cn.odboy.constant.SystemConst; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.system.constant.SystemDataScopeEnum; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; @@ -41,14 +41,14 @@ import java.util.Objects; */ @Slf4j @Component -public class CsSecurityHelper { +public class KitSecurityHelper { /** * 获取当前登录的用户 * * @return UserDetails */ public static UserDetails getCurrentUser() { - UserDetailsService userDetailsService = CsSpringBeanHolder.getBean(UserDetailsService.class); + UserDetailsService userDetailsService = KitSpringBeanHolder.getBean(UserDetailsService.class); return userDetailsService.loadUserByUsername(getCurrentUsername()); } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/TokenProvider.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/TokenProvider.java index 008278d1..66dc4d12 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/TokenProvider.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/TokenProvider.java @@ -21,7 +21,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.odboy.constant.SystemConst; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.model.SystemUserJwtVo; import cn.odboy.system.dal.redis.SystemCacheKey; import io.jsonwebtoken.Claims; @@ -51,7 +51,7 @@ public class TokenProvider implements InitializingBean { public static final String AUTHORITIES_UUID_KEY = "uid"; public static final String AUTHORITIES_UID_KEY = "userId"; @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; @Autowired private AppProperties properties; // 0.11.x版本 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 2219a9a0..19028ec1 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 @@ -22,9 +22,9 @@ import cn.hutool.extra.template.Template; import cn.hutool.extra.template.TemplateConfig; import cn.hutool.extra.template.TemplateEngine; import cn.hutool.extra.template.TemplateUtil; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.quartz.core.QuartzRunnable; -import cn.odboy.framework.redis.CsRedisHelper; +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.SystemSendEmailArgs; @@ -47,16 +47,16 @@ public class ExecutionJobBean extends QuartzJobBean { /** * 此处仅供参考,可根据任务执行情况自定义线程池参数 */ - private final ThreadPoolTaskExecutor executor = CsSpringBeanHolder.getBean("taskAsync"); + private final ThreadPoolTaskExecutor executor = KitSpringBeanHolder.getBean("taskAsync"); @Override public void executeInternal(JobExecutionContext context) { // 获取任务 SystemQuartzJobTb quartzJob = (SystemQuartzJobTb)context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY); // 获取spring bean - SystemQuartzLogMapper quartzLogMapper = CsSpringBeanHolder.getBean(SystemQuartzLogMapper.class); - SystemQuartzJobService systemQuartzJobService = CsSpringBeanHolder.getBean(SystemQuartzJobService.class); - CsRedisHelper redisHelper = CsSpringBeanHolder.getBean(CsRedisHelper.class); + SystemQuartzLogMapper quartzLogMapper = KitSpringBeanHolder.getBean(SystemQuartzLogMapper.class); + SystemQuartzJobService systemQuartzJobService = KitSpringBeanHolder.getBean(SystemQuartzJobService.class); + KitRedisHelper redisHelper = KitSpringBeanHolder.getBean(KitRedisHelper.class); String uuid = quartzJob.getUuid(); @@ -104,7 +104,7 @@ public class ExecutionJobBean extends QuartzJobBean { systemQuartzJobService.switchQuartzJobStatus(quartzJob); } if (quartzJob.getEmail() != null) { - SystemEmailService emailService = CsSpringBeanHolder.getBean(SystemEmailService.class); + SystemEmailService emailService = KitSpringBeanHolder.getBean(SystemEmailService.class); // 邮箱报警 if (StrUtil.isNotBlank(quartzJob.getEmail())) { SystemSendEmailArgs sendEmailRequest = taskAlarm(quartzJob, ExceptionUtil.stacktraceToString(e)); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/storage/minio/MinioRepository.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/storage/minio/MinioRepository.java index 5e3da9f3..44f68ee7 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/storage/minio/MinioRepository.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/framework/storage/minio/MinioRepository.java @@ -28,8 +28,8 @@ import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.properties.model.OSSConfigModel; import cn.odboy.framework.properties.model.StorageOSSModel; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; -import cn.odboy.util.CsDateUtil; -import cn.odboy.util.CsFileUtil; +import cn.odboy.util.KitDateUtil; +import cn.odboy.util.KitFileUtil; import io.minio.*; import io.minio.http.Method; import io.minio.messages.Bucket; @@ -140,12 +140,12 @@ public class MinioRepository { StorageOSSModel ossConfig = properties.getOss(); OSSConfigModel ossMinioConfig = ossConfig.getMinio(); String type = FileTypeUtil.getType(tempFile); - String prefix = CsFileUtil.getPrefix(tempFile); - String suffix = CsFileUtil.getSuffix(tempFile); + String prefix = KitFileUtil.getPrefix(tempFile); + String suffix = KitFileUtil.getSuffix(tempFile); String fileCode = IdUtil.fastSimpleUUID(); String fileName = fileCode + FileUtil.getSuffix(originalFilename); - String objectName = CsDateUtil.getNowDateStr() + "/" + fileName; + String objectName = KitDateUtil.getNowDateStr() + "/" + fileName; log.info("上传文件,原文件名:{},上传后文件名:{}", originalFilename, fileName); String fileUrl = ossMinioConfig.getEndpoint() + "/" + ossMinioConfig.getBucketName() + "/" + objectName; @@ -163,7 +163,7 @@ public class MinioRepository { systemOssStorageTb.setFileCode(fileCode); systemOssStorageTb.setObjectName(objectName); - try (InputStream fileInputStream = CsFileUtil.getInputStream(tempFile)) { + try (InputStream fileInputStream = KitFileUtil.getInputStream(tempFile)) { PutObjectArgs objectArgs = PutObjectArgs.builder().bucket(ossMinioConfig.getBucketName()).object(objectName).stream(fileInputStream, fileSize, -1).contentType(contentType) .build(); @@ -174,7 +174,7 @@ public class MinioRepository { log.error("文件上传失败,文件名:{},错误信息", originalFilename, e); } finally { try { - CsFileUtil.del(tempFile); + KitFileUtil.del(tempFile); } catch (IORuntimeException e) { // 删除失败忽略 } @@ -195,11 +195,11 @@ public class MinioRepository { } long size = file.getSize(); - CsFileUtil.checkSize(properties.getOss().getMaxSize(), size); + KitFileUtil.checkSize(properties.getOss().getMaxSize(), size); String fileName = UUID.randomUUID() + FileUtil.getSuffix(originalFilename); // yyyy/MM/dd/fileName.xxx - String objectName = CsDateUtil.getNowDateTimeStr() + "/" + fileName; + String objectName = KitDateUtil.getNowDateTimeStr() + "/" + fileName; log.info("准备上传文件,原文件名:{},上传后文件名:{}", originalFilename, fileName); try (InputStream fileInputStream = file.getInputStream()) { 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 65517112..a0f34cc0 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 @@ -21,7 +21,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.constant.SystemDataScopeEnum; import cn.odboy.system.dal.dataobject.SystemDeptTb; @@ -32,9 +32,9 @@ import cn.odboy.system.dal.model.SystemQueryDeptArgs; import cn.odboy.system.dal.mysql.SystemDeptMapper; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.dal.mysql.SystemUserMapper; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; -import cn.odboy.util.CsClassUtil; -import cn.odboy.util.CsFileUtil; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitClassUtil; +import cn.odboy.util.KitFileUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -119,7 +119,7 @@ public class SystemDeptService { map.put("创建日期", dept.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -161,12 +161,12 @@ public class SystemDeptService { */ public List queryAllDept(SystemQueryDeptArgs criteria, Boolean isQuery) throws Exception { - String dataScopeType = CsSecurityHelper.getDataScopeType(); + String dataScopeType = KitSecurityHelper.getDataScopeType(); if (isQuery) { if (dataScopeType.equals(SystemDataScopeEnum.ALL.getValue())) { criteria.setPidIsNull(true); } - List fields = CsClassUtil.getAllFields(criteria.getClass(), new ArrayList<>()); + List fields = KitClassUtil.getAllFields(criteria.getClass(), new ArrayList<>()); List fieldNames = new ArrayList<>() {{ add("pidIsNull"); add("enabled"); @@ -185,7 +185,7 @@ public class SystemDeptService { } } // 数据权限 - criteria.setIds(CsSecurityHelper.getCurrentUserDataScope()); + criteria.setIds(KitSecurityHelper.getCurrentUserDataScope()); List list = systemDeptMapper.selectDeptByArgs(criteria); // 如果为空, 就代表为自定义权限或者本级权限, 就需要去重, 不理解可以注释掉,看查询结果 if (StrUtil.isBlank(dataScopeType)) { @@ -291,7 +291,7 @@ public class SystemDeptService { * @return / */ - public CsPageResult buildDeptTree(List deptList) { + public KitPageResult buildDeptTree(List deptList) { Set trees = new LinkedHashSet<>(); Set deptSet = new LinkedHashSet<>(); List deptNames = deptList.stream().map(SystemDeptTb::getName).toList(); @@ -319,7 +319,7 @@ public class SystemDeptService { if (CollectionUtil.isEmpty(trees)) { trees = deptSet; } - CsPageResult baseResult = new CsPageResult<>(); + 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 aaa1bebd..4a8d606d 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 @@ -17,12 +17,12 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictDetailTb; import cn.odboy.system.dal.model.SystemCreateDictDetailArgs; import cn.odboy.system.dal.model.SystemQueryDictDetailArgs; import cn.odboy.system.dal.mysql.SystemDictDetailMapper; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -78,8 +78,8 @@ public class SystemDictDetailService { * @return / */ - public CsPageResult queryDictDetailByArgs(SystemQueryDictDetailArgs args, Page page) { - return CsPageUtil.toPage(systemDictDetailMapper.selectDictDetailByArgs(args, page)); + public KitPageResult queryDictDetailByArgs(SystemQueryDictDetailArgs args, Page page) { + return KitPageUtil.toPage(systemDictDetailMapper.selectDictDetailByArgs(args, page)); } /** 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 010cc817..d6e66442 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 @@ -18,7 +18,7 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictDetailTb; import cn.odboy.system.dal.dataobject.SystemDictTb; import cn.odboy.system.dal.model.SystemCreateDictArgs; @@ -26,8 +26,8 @@ import cn.odboy.system.dal.model.SystemQueryDictArgs; 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.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -117,7 +117,7 @@ public class SystemDictService { list.add(map); } } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -128,8 +128,8 @@ public class SystemDictService { * @return / */ - public CsPageResult queryDictByArgs(SystemQueryDictArgs args, Page page) { - return CsPageUtil.toPage(systemDictMapper.selectDictByArgs(args, page)); + public KitPageResult queryDictByArgs(SystemQueryDictArgs args, Page page) { + return KitPageUtil.toPage(systemDictMapper.selectDictByArgs(args, page)); } /** diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemEmailService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemEmailService.java index 524b689c..201b51cd 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemEmailService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemEmailService.java @@ -22,13 +22,13 @@ import cn.hutool.extra.mail.Mail; import cn.hutool.extra.mail.MailAccount; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.constant.SystemCaptchaBizEnum; import cn.odboy.system.dal.dataobject.SystemEmailConfigTb; import cn.odboy.system.dal.model.SystemSendEmailArgs; import cn.odboy.system.dal.mysql.SystemEmailConfigMapper; -import cn.odboy.util.CsDesEncryptUtil; -import cn.odboy.util.CsResourceTemplateUtil; +import cn.odboy.util.KitDesEncryptUtil; +import cn.odboy.util.KitResourceTemplateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -43,7 +43,7 @@ public class SystemEmailService { @Autowired private SystemEmailConfigMapper systemEmailConfigMapper; @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; @Autowired private AppProperties properties; @Value("${spring.application.title}") @@ -60,7 +60,7 @@ public class SystemEmailService { SystemEmailConfigTb systemEmailConfigTb = getLastEmailConfig(); if (!emailConfig.getPassword().equals(systemEmailConfigTb.getPassword())) { // 对称加密 - systemEmailConfigTb.setPassword(CsDesEncryptUtil.desEncrypt(emailConfig.getPassword())); + systemEmailConfigTb.setPassword(KitDesEncryptUtil.desEncrypt(emailConfig.getPassword())); } systemEmailConfigTb.setId(1L); systemEmailConfigMapper.insertOrUpdate(systemEmailConfigTb); @@ -87,7 +87,7 @@ public class SystemEmailService { account.setAuth(true); try { // 对称解密 - account.setPass(CsDesEncryptUtil.desDecrypt(systemEmailConfigTb.getPassword())); + account.setPass(KitDesEncryptUtil.desDecrypt(systemEmailConfigTb.getPassword())); } catch (Exception e) { throw new BadRequestException(e.getMessage()); } @@ -144,9 +144,9 @@ public class SystemEmailService { throw new BadRequestException("服务异常, 请联系网站负责人"); } // 存在就再次发送原来的验证码 - content = CsResourceTemplateUtil.render(null, biEnum.getTemplateName(), Dict.create().set("code", code)); + content = KitResourceTemplateUtil.render(null, biEnum.getTemplateName(), Dict.create().set("code", code)); } else { - content = CsResourceTemplateUtil.render(null, biEnum.getTemplateName(), Dict.create().set("code", oldCode)); + content = KitResourceTemplateUtil.render(null, biEnum.getTemplateName(), Dict.create().set("code", oldCode)); } SystemSendEmailArgs sendEmailRequest = new SystemSendEmailArgs(Collections.singletonList(email), applicationTitle, content); sendEmail(sendEmailRequest); 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 498dbfcd..4510bec9 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 @@ -17,15 +17,15 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.model.SystemCreateJobArgs; import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.dal.mysql.SystemJobMapper; import cn.odboy.system.dal.mysql.SystemUserMapper; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -102,7 +102,7 @@ public class SystemJobService { map.put("创建日期", job.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -113,8 +113,8 @@ public class SystemJobService { * @return */ - public CsPageResult queryJobByArgs(SystemQueryJobArgs args, Page page) { - return CsPageUtil.toPage(systemJobMapper.selectJobByArgs(args, page)); + public KitPageResult queryJobByArgs(SystemQueryJobArgs args, Page page) { + return KitPageUtil.toPage(systemJobMapper.selectJobByArgs(args, page)); } /** @@ -125,7 +125,7 @@ public class SystemJobService { */ public List queryJobByArgs(SystemQueryJobArgs args) { - return systemJobMapper.selectJobByArgs(args, CsPageUtil.getCount(systemJobMapper)).getRecords(); + return systemJobMapper.selectJobByArgs(args, KitPageUtil.getCount(systemJobMapper)).getRecords(); } /** 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 9fd8cfdc..be33d9c9 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 @@ -20,15 +20,15 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.server.core.CsFileLocalUploadHelper; +import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemLocalStorageMapper; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -45,7 +45,7 @@ public class SystemLocalStorageService { @Autowired private SystemLocalStorageMapper systemLocalStorageMapper; @Autowired - private CsFileLocalUploadHelper fileUploadPathHelper; + private KitFileLocalUploadHelper fileUploadPathHelper; @Autowired private AppProperties properties; @@ -59,17 +59,17 @@ public class SystemLocalStorageService { @Transactional(rollbackFor = Exception.class) public SystemLocalStorageTb uploadFile(String name, MultipartFile multipartFile) { long size = multipartFile.getSize(); - CsFileUtil.checkSize(properties.getOss().getMaxSize(), size); - String suffix = CsFileUtil.getSuffix(multipartFile.getOriginalFilename()); - String type = CsFileUtil.getFileType(suffix); + KitFileUtil.checkSize(properties.getOss().getMaxSize(), size); + String suffix = KitFileUtil.getSuffix(multipartFile.getOriginalFilename()); + String type = KitFileUtil.getFileType(suffix); String uploadDateStr = DateUtil.format(new Date(), DatePattern.PURE_DATE_FORMAT); - File file = CsFileUtil.upload(multipartFile, fileUploadPathHelper.getPath() + uploadDateStr + File.separator); + File file = KitFileUtil.upload(multipartFile, fileUploadPathHelper.getPath() + uploadDateStr + File.separator); if (file == null) { throw new BadRequestException("上传失败"); } try { - String formatSize = CsFileUtil.getSize(size); - String prefixName = StrUtil.isBlank(name) ? CsFileUtil.getPrefix(multipartFile.getOriginalFilename()) : name; + String formatSize = KitFileUtil.getSize(size); + String prefixName = StrUtil.isBlank(name) ? KitFileUtil.getPrefix(multipartFile.getOriginalFilename()) : name; SystemLocalStorageTb localStorage = new SystemLocalStorageTb(); localStorage.setRealName(file.getName()); localStorage.setName(prefixName); @@ -81,7 +81,7 @@ public class SystemLocalStorageService { systemLocalStorageMapper.insert(localStorage); return localStorage; } catch (Exception e) { - CsFileUtil.del(file); + KitFileUtil.del(file); throw e; } } @@ -108,7 +108,7 @@ public class SystemLocalStorageService { for (Long id : ids) { SystemLocalStorageTb storage = systemLocalStorageMapper.selectById(id); try { - CsFileUtil.del(storage.getPath()); + KitFileUtil.del(storage.getPath()); systemLocalStorageMapper.deleteById(storage); } catch (IORuntimeException e) { throw new BadRequestException("删除文件 " + storage.getName() + " 失败"); @@ -135,7 +135,7 @@ public class SystemLocalStorageService { map.put("创建日期", localStorage.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -145,8 +145,8 @@ public class SystemLocalStorageService { * @param page 分页参数 * @return / */ - public CsPageResult queryLocalStorage(SystemQueryStorageArgs criteria, Page page) { - return CsPageUtil.toPage(systemLocalStorageMapper.selectLocalStorageByArgs(criteria, page)); + public KitPageResult queryLocalStorage(SystemQueryStorageArgs criteria, Page page) { + return KitPageUtil.toPage(systemLocalStorageMapper.selectLocalStorageByArgs(criteria, page)); } /** @@ -156,6 +156,6 @@ public class SystemLocalStorageService { * @return / */ public List queryLocalStorage(SystemQueryStorageArgs criteria) { - return systemLocalStorageMapper.selectLocalStorageByArgs(criteria, CsPageUtil.getCount(systemLocalStorageMapper)).getRecords(); + return systemLocalStorageMapper.selectLocalStorageByArgs(criteria, KitPageUtil.getCount(systemLocalStorageMapper)).getRecords(); } } 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 f1aabd27..2b9492dc 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 @@ -20,7 +20,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.constant.TransferProtocolConst; import cn.odboy.system.dal.dataobject.SystemMenuTb; @@ -31,8 +31,8 @@ import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.dal.mysql.SystemRoleMenuMapper; -import cn.odboy.util.CsClassUtil; -import cn.odboy.util.CsFileUtil; +import cn.odboy.util.KitClassUtil; +import cn.odboy.util.KitFileUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -158,7 +158,7 @@ public class SystemMenuService { } List menuIds = menuSet.stream().map(SystemMenuTb::getId).filter(Objects::nonNull).distinct().toList(); if (CollUtil.isNotEmpty(menuIds)) { - CsSpringBeanHolder.getBean(SystemMenuService.class).removeRoleMenuByMenuIds(menuIds); + KitSpringBeanHolder.getBean(SystemMenuService.class).removeRoleMenuByMenuIds(menuIds); systemMenuMapper.deleteByIds(menuIds); } for (SystemMenuTb menu : menuSet) { @@ -192,7 +192,7 @@ public class SystemMenuService { map.put("创建日期", menu.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } @Transactional(rollbackFor = Exception.class) @@ -215,7 +215,7 @@ public class SystemMenuService { public List queryAllMenu(SystemQueryMenuArgs criteria, Boolean isQuery) throws Exception { if (Boolean.TRUE.equals(isQuery)) { criteria.setPidIsNull(true); - List fields = CsClassUtil.getAllFields(criteria.getClass(), new ArrayList<>()); + List fields = KitClassUtil.getAllFields(criteria.getClass(), new ArrayList<>()); for (Field field : fields) { //设置对象的访问权限, 保证对private的属性的访问 field.setAccessible(true); diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMonitorService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMonitorService.java index c10b4926..d3e68438 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMonitorService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMonitorService.java @@ -19,8 +19,8 @@ package cn.odboy.system.service; import cn.hutool.core.date.BetweenFormatter.Level; import cn.hutool.core.date.DateUtil; import cn.odboy.constant.SystemConst; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsIPUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitIPUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import oshi.SystemInfo; @@ -94,9 +94,9 @@ public class SystemMonitorService { } } long used = total - available; - diskInfo.put("total", total > 0 ? CsFileUtil.getSize(total) : "?"); - diskInfo.put("available", CsFileUtil.getSize(available)); - diskInfo.put("used", CsFileUtil.getSize(used)); + diskInfo.put("total", total > 0 ? KitFileUtil.getSize(total) : "?"); + diskInfo.put("available", KitFileUtil.getSize(available)); + diskInfo.put("used", KitFileUtil.getSize(used)); if (total != 0) { diskInfo.put("usageRate", df.format(used / (double)total * 100)); } else { @@ -197,7 +197,7 @@ public class SystemMonitorService { // 系统信息 systemInfo.put("os", os.toString()); systemInfo.put("day", formatBetween); - systemInfo.put("ip", CsIPUtil.getLocalIp()); + systemInfo.put("ip", KitIPUtil.getLocalIp()); return systemInfo; } } diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java index 3f9e2329..02acce7c 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java @@ -16,7 +16,7 @@ package cn.odboy.system.service; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; @@ -37,7 +37,7 @@ import java.util.List; * @since 2025-07-15 */ public interface SystemOssStorageService extends IService { - CsPageResult queryOssStorage(SystemQueryStorageArgs criteria, Page page); + KitPageResult queryOssStorage(SystemQueryStorageArgs criteria, Page page); List queryOssStorage(SystemQueryStorageArgs criteria); 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 b664d669..25bd82ad 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 @@ -19,9 +19,9 @@ 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.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.redis.CsRedisHelper; +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.SystemQueryQuartzJobArgs; @@ -29,8 +29,8 @@ 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.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.servlet.http.HttpServletResponse; import org.quartz.CronExpression; @@ -50,7 +50,7 @@ public class SystemQuartzJobService { @Autowired private QuartzManage quartzManage; @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; /** * 创建 @@ -193,7 +193,7 @@ public class SystemQuartzJobService { map.put("创建日期", quartzJob.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -219,7 +219,7 @@ public class SystemQuartzJobService { map.put("创建日期", quartzLog.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -230,8 +230,8 @@ public class SystemQuartzJobService { * @return / */ - public CsPageResult queryQuartzJobByArgs(SystemQueryQuartzJobArgs criteria, Page page) { - return CsPageUtil.toPage(systemQuartzJobMapper.selectQuartzJobByArgs(criteria, page)); + public KitPageResult queryQuartzJobByArgs(SystemQueryQuartzJobArgs criteria, Page page) { + return KitPageUtil.toPage(systemQuartzJobMapper.selectQuartzJobByArgs(criteria, page)); } /** @@ -242,8 +242,8 @@ public class SystemQuartzJobService { * @return / */ - public CsPageResult queryQuartzLogByArgs(SystemQueryQuartzJobArgs criteria, Page page) { - return CsPageUtil.toPage(systemQuartzLogMapper.selectQuartzLogByArgs(criteria, page)); + public KitPageResult queryQuartzLogByArgs(SystemQueryQuartzJobArgs criteria, Page page) { + return KitPageUtil.toPage(systemQuartzLogMapper.selectQuartzLogByArgs(criteria, page)); } /** @@ -254,7 +254,7 @@ public class SystemQuartzJobService { */ public List queryQuartzJobByArgs(SystemQueryQuartzJobArgs criteria) { - return systemQuartzJobMapper.selectQuartzJobByArgs(criteria, CsPageUtil.getCount(systemQuartzJobMapper)).getRecords(); + return systemQuartzJobMapper.selectQuartzJobByArgs(criteria, KitPageUtil.getCount(systemQuartzJobMapper)).getRecords(); } /** @@ -265,7 +265,7 @@ public class SystemQuartzJobService { */ public List queryQuartzLogByArgs(SystemQueryQuartzJobArgs criteria) { - return systemQuartzLogMapper.selectQuartzLogByArgs(criteria, CsPageUtil.getCount(systemQuartzLogMapper)).getRecords(); + return systemQuartzLogMapper.selectQuartzLogByArgs(criteria, KitPageUtil.getCount(systemQuartzLogMapper)).getRecords(); } public SystemQuartzJobTb getQuartzJobById(Long id) { 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 c8e5e637..ad5e727e 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 @@ -20,7 +20,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; @@ -32,8 +32,8 @@ import cn.odboy.system.dal.mysql.SystemRoleDeptMapper; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.dal.mysql.SystemRoleMenuMapper; import cn.odboy.system.dal.mysql.SystemUserMapper; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -148,7 +148,7 @@ public class SystemRoleService { map.put("创建日期", role.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -180,11 +180,11 @@ public class SystemRoleService { * @return */ - public CsPageResult queryRoleByArgs(SystemQueryRoleArgs criteria, Page page) { + public KitPageResult queryRoleByArgs(SystemQueryRoleArgs criteria, Page page) { criteria.setOffset(page.offset()); List roles = systemRoleMapper.selectRoleByArgs(criteria); Long total = systemRoleMapper.countRoleByArgs(criteria); - return CsPageUtil.toPage(roles, total); + return KitPageUtil.toPage(roles, total); } /** 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 a4c5247b..91cddb35 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 @@ -17,9 +17,9 @@ package cn.odboy.system.service; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.server.core.CsFileLocalUploadHelper; +import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; @@ -29,9 +29,9 @@ import cn.odboy.system.dal.mysql.SystemUserMapper; import cn.odboy.system.dal.mysql.SystemUserRoleMapper; import cn.odboy.system.dal.redis.SystemUserInfoDAO; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; -import cn.odboy.system.framework.permission.core.CsSecurityHelper; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.system.framework.permission.core.KitSecurityHelper; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -58,7 +58,7 @@ public class SystemUserService { @Autowired private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO; @Autowired - private CsFileLocalUploadHelper fileUploadPathHelper; + private KitFileLocalUploadHelper fileUploadPathHelper; /** * 新增用户 @@ -215,26 +215,26 @@ public class SystemUserService { @Transactional(rollbackFor = Exception.class) public Map modifyUserAvatar(MultipartFile multipartFile) { - SystemUserTb user = systemUserMapper.getUserByUsername(CsSecurityHelper.getCurrentUsername()); + SystemUserTb user = systemUserMapper.getUserByUsername(KitSecurityHelper.getCurrentUsername()); String username = user.getUsername(); if (StrUtil.isBlank(username)) { throw new BadRequestException("异常用户数据, 请联系管理员处理"); } // 文件大小验证 - CsFileUtil.checkSize(fileUploadPathHelper.getAvatarMaxSize(), multipartFile.getSize()); + KitFileUtil.checkSize(fileUploadPathHelper.getAvatarMaxSize(), multipartFile.getSize()); // 验证文件上传的格式 String image = "gif jpg png jpeg"; - String fileType = CsFileUtil.getSuffix(multipartFile.getOriginalFilename()); + String fileType = KitFileUtil.getSuffix(multipartFile.getOriginalFilename()); if (fileType != null && !image.contains(fileType)) { throw new BadRequestException("文件格式错误!, 仅支持 " + image + " 格式"); } String oldPath = user.getAvatarPath(); - File file = CsFileUtil.upload(multipartFile, fileUploadPathHelper.getPath()); + File file = KitFileUtil.upload(multipartFile, fileUploadPathHelper.getPath()); user.setAvatarPath(Objects.requireNonNull(file).getPath()); user.setAvatarName(file.getName()); systemUserMapper.insertOrUpdate(user); if (StrUtil.isNotBlank(oldPath)) { - CsFileUtil.del(oldPath); + KitFileUtil.del(oldPath); } systemUserInfoDAO.deleteUserLoginInfoByUserName(username); return new HashMap<>(1) {{ @@ -279,7 +279,7 @@ public class SystemUserService { map.put("创建日期", user.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -290,9 +290,9 @@ public class SystemUserService { * @return / */ - public CsPageResult queryUserByArgs(SystemQueryUserArgs criteria, Page page) { + public KitPageResult queryUserByArgs(SystemQueryUserArgs criteria, Page page) { IPage users = systemUserMapper.selectUserByArgs(criteria, page); - return CsPageUtil.toPage(users); + return KitPageUtil.toPage(users); } /** diff --git a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemOssStorageServiceImpl.java b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemOssStorageServiceImpl.java index 7e94107b..079f02f5 100644 --- a/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemOssStorageServiceImpl.java +++ b/cutejava-springboot3/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemOssStorageServiceImpl.java @@ -18,20 +18,20 @@ package cn.odboy.system.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.properties.model.StorageOSSModel; -import cn.odboy.framework.server.core.CsFileLocalUploadHelper; +import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; import cn.odboy.system.dal.model.SystemOssStorageVo; 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.CsDateUtil; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitDateUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -63,17 +63,17 @@ public class SystemOssStorageServiceImpl extends ServiceImpl queryOssStorage(SystemQueryStorageArgs criteria, Page page) { + public KitPageResult queryOssStorage(SystemQueryStorageArgs criteria, Page page) { IPage ossStorageTbs = baseMapper.selectOssStorageByArgs(criteria, page); IPage convert = ossStorageTbs.convert(c -> { SystemOssStorageVo storageVo = BeanUtil.copyProperties(c, SystemOssStorageVo.class); - storageVo.setFileSizeDesc(CsFileUtil.getSize(storageVo.getFileSize())); + storageVo.setFileSizeDesc(KitFileUtil.getSize(storageVo.getFileSize())); return storageVo; }); - return CsPageUtil.toPage(convert); + return KitPageUtil.toPage(convert); } @Override @@ -98,7 +98,7 @@ public class SystemOssStorageServiceImpl extends ServiceImpl bizCodeList = taskInstanceDetails.stream().map(TaskInstanceDetailTb::getBizCode).distinct().toList(); List taskInstanceDetailTbs = taskInstanceDetailService.queryByInstanceIdAndBizCodeList(id, bizCodeList); List taskInstanceDetailIds = taskInstanceDetailTbs.stream().map(TaskInstanceDetailTb::getId).toList(); @@ -174,7 +174,7 @@ public class TaskJobBean extends QuartzJobBean implements InterruptableJob { for (TaskTemplateNodeVo taskTemplateNodeVo : taskTemplateNodes) { String code = taskTemplateNodeVo.getCode(); try { - TaskStepExecutor executor = CsSpringBeanHolder.getBean("taskStep" + getBeanAlias(code)); + TaskStepExecutor executor = KitSpringBeanHolder.getBean("taskStep" + getBeanAlias(code)); taskInstanceDetailService.fastStart(id, code, dataMap); executor.execute(codeIdMap.getOrDefault(code, null), dataMap, taskTemplateNodeVo); taskInstanceDetailService.fastSuccessWithInfo(id, code, null); diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskManage.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskManage.java index 93fb3558..e04ddcff 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskManage.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskManage.java @@ -17,7 +17,7 @@ package cn.odboy.task.core; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.task.constant.TaskChangeTypeEnum; import cn.odboy.task.constant.TaskJobKeys; @@ -31,7 +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.CsDateUtil; +import cn.odboy.util.KitDateUtil; import com.alibaba.fastjson2.JSON; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -101,7 +101,7 @@ public class TaskManage { throw new BadRequestException("没有查询到任务编排明细"); } // ========================== 创建任务 ========================== - TaskManage taskManage = CsSpringBeanHolder.getBean(TaskManage.class); + TaskManage taskManage = KitSpringBeanHolder.getBean(TaskManage.class); TaskInstanceInfoTb newInstance = taskManage.saveTaskInstanceInfoTb(contextName, changeTypeEnum, language, envAlias, source, reason, dataMap, templateInfo); dataMap.put(TaskJobKeys.ID, newInstance.getId()); @@ -243,9 +243,9 @@ public class TaskManage { instanceNodeVo.setStartTime(taskInstanceDetail.getStartTime()); instanceNodeVo.setFinishTime(taskInstanceDetail.getFinishTime()); if (taskInstanceDetail.getFinishTime() == null) { - instanceNodeVo.setDurationDesc(CsDateUtil.formatSecondsDuration(taskInstanceDetail.getStartTime(), new Date())); + instanceNodeVo.setDurationDesc(KitDateUtil.formatSecondsDuration(taskInstanceDetail.getStartTime(), new Date())); } else { - instanceNodeVo.setDurationDesc(CsDateUtil.formatSecondsDuration(taskInstanceDetail.getStartTime(), taskInstanceDetail.getFinishTime())); + instanceNodeVo.setDurationDesc(KitDateUtil.formatSecondsDuration(taskInstanceDetail.getStartTime(), taskInstanceDetail.getFinishTime())); } instanceNodeVo.setRunningDesc(taskInstanceDetail.getExecuteInfo()); instanceNodeVo.setStatus(taskInstanceDetail.getExecuteStatus()); diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceDetailTb.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceDetailTb.java index d30497bd..e91f55b6 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceDetailTb.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceDetailTb.java @@ -15,7 +15,7 @@ */ package cn.odboy.task.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -40,7 +40,7 @@ import java.util.Date; @ToString @TableName("task_instance_detail") @Schema(name = "TaskInstanceDetailTb对象", description = "任务实例明细") -public class TaskInstanceDetailTb extends CsObject { +public class TaskInstanceDetailTb extends KitObject { @TableField(fill = FieldFill.INSERT) @Schema(name = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) private Date createTime; diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceInfoTb.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceInfoTb.java index 6be7698f..d2446b52 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceInfoTb.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceInfoTb.java @@ -15,7 +15,7 @@ */ package cn.odboy.task.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -41,7 +41,7 @@ import java.util.Date; @ToString @TableName("task_instance_info") @Schema(name = "TaskInstanceInfoTb对象", description = "任务实例") -public class TaskInstanceInfoTb extends CsObject { +public class TaskInstanceInfoTb extends KitObject { @CreatedBy @TableField(fill = FieldFill.INSERT) @Schema(name = "创建人", hidden = true) diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceStepDetailTb.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceStepDetailTb.java index ac743d86..ce5e893a 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceStepDetailTb.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceStepDetailTb.java @@ -15,7 +15,7 @@ */ package cn.odboy.task.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -40,7 +40,7 @@ import java.util.Date; @ToString @TableName("task_instance_step_detail") @Schema(name = "TaskInstanceStepDetailTb对象") -public class TaskInstanceStepDetailTb extends CsObject { +public class TaskInstanceStepDetailTb extends KitObject { @TableField(fill = FieldFill.INSERT) @Schema(name = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) private Date createTime; diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskTemplateInfoTb.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskTemplateInfoTb.java index 2af2a5fb..5412c0dd 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskTemplateInfoTb.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskTemplateInfoTb.java @@ -15,7 +15,7 @@ */ package cn.odboy.task.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -38,7 +38,7 @@ import lombok.ToString; @ToString @TableName("task_template_info") @Schema(name = "TaskTemplateInfoTb对象", description = "任务模板") -public class TaskTemplateInfoTb extends CsBaseUserTimeTb { +public class TaskTemplateInfoTb extends KitBaseUserTimeTb { /** * id diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskInstanceNodeVo.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskInstanceNodeVo.java index 645f748d..1b268f47 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskInstanceNodeVo.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskInstanceNodeVo.java @@ -16,7 +16,7 @@ package cn.odboy.task.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -29,7 +29,7 @@ import java.util.Date; */ @Getter @Setter -public class TaskInstanceNodeVo extends CsObject { +public class TaskInstanceNodeVo extends KitObject { /** * 业务编码 */ diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateInfoVo.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateInfoVo.java index fde41eb8..3a7d0930 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateInfoVo.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateInfoVo.java @@ -15,13 +15,13 @@ */ package cn.odboy.task.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class TaskTemplateInfoVo extends CsObject { +public class TaskTemplateInfoVo extends KitObject { private String changeType; private String name; private String description; diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeOperateButtonVo.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeOperateButtonVo.java index 10c3558c..b1c52ab2 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeOperateButtonVo.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeOperateButtonVo.java @@ -16,7 +16,7 @@ package cn.odboy.task.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -30,7 +30,7 @@ import java.util.Map; */ @Getter @Setter -public class TaskTemplateNodeOperateButtonVo extends CsObject { +public class TaskTemplateNodeOperateButtonVo extends KitObject { /** * 按钮类型(service:调用某个服务并传递参数 link:带参跳转) */ diff --git a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeVo.java b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeVo.java index 167c94c0..b9602442 100644 --- a/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeVo.java +++ b/cutejava-springboot3/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeVo.java @@ -16,7 +16,7 @@ package cn.odboy.task.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -32,7 +32,7 @@ import java.util.Map; */ @Getter @Setter -public class TaskTemplateNodeVo extends CsObject { +public class TaskTemplateNodeVo extends KitObject { /** * 业务编码 */ diff --git a/cutejava-springboot3/cutejava-starter/src/main/java/cn/odboy/GenCode.java b/cutejava-springboot3/cutejava-starter/src/main/java/cn/odboy/GenCode.java index 37acd8c0..abd23ad3 100644 --- a/cutejava-springboot3/cutejava-starter/src/main/java/cn/odboy/GenCode.java +++ b/cutejava-springboot3/cutejava-starter/src/main/java/cn/odboy/GenCode.java @@ -16,7 +16,7 @@ package cn.odboy; -import cn.odboy.framework.mybatisplus.core.CsMpCmdGenUtil; +import cn.odboy.framework.mybatisplus.core.KitMpCmdGenUtil; import java.util.List; @@ -32,7 +32,7 @@ public class GenCode { private static final String URL = String.format("jdbc:mysql://%s:%s/%s", ADDR, PORT, DATABASE_NAME); public static void main(String[] args) { - CsMpCmdGenUtil generator = new CsMpCmdGenUtil(); + KitMpCmdGenUtil generator = new KitMpCmdGenUtil(); generator.setDatabaseUrl(URL); generator.setDriverClassName("com.mysql.cj.jdbc.Driver"); generator.setDatabaseUsername(DATABASE_USER); @@ -40,7 +40,7 @@ public class GenCode { genTaskCode(generator); } - private static void genTaskCode(CsMpCmdGenUtil generator) { + private static void genTaskCode(KitMpCmdGenUtil generator) { generator.gen("task", "", List.of("task_instance_info", "task_instance_detail", "task_template_info", "task_instance_step_detail")); } } diff --git a/cutejava-springboot3/cutejava-starter/src/main/java/cn/odboy/HealthCheckPointer.java b/cutejava-springboot3/cutejava-starter/src/main/java/cn/odboy/HealthCheckPointer.java index 284baad1..6e5c3ed2 100644 --- a/cutejava-springboot3/cutejava-starter/src/main/java/cn/odboy/HealthCheckPointer.java +++ b/cutejava-springboot3/cutejava-starter/src/main/java/cn/odboy/HealthCheckPointer.java @@ -16,14 +16,14 @@ package cn.odboy; -import cn.odboy.framework.monitor.service.CsHealthCheckPointService; +import cn.odboy.framework.monitor.service.KitHealthCheckPointService; import cn.odboy.system.service.SystemDictService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; @Component -public class HealthCheckPointer implements CsHealthCheckPointService { +public class HealthCheckPointer implements KitHealthCheckPointService { @Autowired private SystemDictService systemDictService; diff --git a/cutejava-springboot3/cutejava-starter/src/main/resources/application-dev.yml b/cutejava-springboot3/cutejava-starter/src/main/resources/application-dev.yml index 993f7e2a..5122c0ae 100644 --- a/cutejava-springboot3/cutejava-starter/src/main/resources/application-dev.yml +++ b/cutejava-springboot3/cutejava-starter/src/main/resources/application-dev.yml @@ -152,7 +152,7 @@ app: private-key: MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A== # 鉴权 jwt: - # 必须使用最少88位的Base64对该令牌进行编码 cn.odboy.util.CsBase64SecretUtil + # 必须使用最少88位的Base64对该令牌进行编码 cn.odboy.util.KitBase64SecretUtil base64-secret: YzE5ZWNjMjlkMGY4NDc4MDlmYzE0Y2I0MTk4YTQ4YjY5NTU0OGQxODNjNjQ0MmU1YjBmZTYwYjljYzI0M2M4MTJkZjk3Y2ZlYjg3ZTQxMjM4MjEwY2ZiYzE4YmFiYmZlZDVhM2M1YmI3M2FmNDFmNWJmM2MyMTM1ZDNhMmRmYzY= # 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html token-validity-in-seconds: 14400000 diff --git a/cutejava-springboot3/cutejava-starter/src/main/resources/application-prod.yml b/cutejava-springboot3/cutejava-starter/src/main/resources/application-prod.yml index 18db47d2..8a4d510c 100644 --- a/cutejava-springboot3/cutejava-starter/src/main/resources/application-prod.yml +++ b/cutejava-springboot3/cutejava-starter/src/main/resources/application-prod.yml @@ -161,7 +161,7 @@ app: private-key: MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9pB6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZUBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3tTbklZkD2A== # 鉴权 jwt: - # 必须使用最少88位的Base64对该令牌进行编码 cn.odboy.util.CsBase64SecretUtil + # 必须使用最少88位的Base64对该令牌进行编码 cn.odboy.util.KitBase64SecretUtil base64-secret: YzE5ZWNjMjlkMGY4NDc4MDlmYzE0Y2I0MTk4YTQ4YjY5NTU0OGQxODNjNjQ0MmU1YjBmZTYwYjljYzI0M2M4MTJkZjk3Y2ZlYjg3ZTQxMjM4MjEwY2ZiYzE4YmFiYmZlZDVhM2M1YmI3M2FmNDFmNWJmM2MyMTM1ZDNhMmRmYzY= # 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html token-validity-in-seconds: 14400000 diff --git a/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsDesEncryptUtilTest.java b/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitDesEncryptUtilTest.java similarity index 89% rename from cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsDesEncryptUtilTest.java rename to cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitDesEncryptUtilTest.java index 3110e34a..e9cb66cf 100644 --- a/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsDesEncryptUtilTest.java +++ b/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitDesEncryptUtilTest.java @@ -19,11 +19,11 @@ package cn.odboy.util; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; -import static cn.odboy.util.CsDesEncryptUtil.desDecrypt; -import static cn.odboy.util.CsDesEncryptUtil.desEncrypt; +import static cn.odboy.util.KitDesEncryptUtil.desDecrypt; +import static cn.odboy.util.KitDesEncryptUtil.desEncrypt; import static org.junit.jupiter.api.Assertions.assertEquals; -public class CsDesEncryptUtilTest { +public class KitDesEncryptUtilTest { @SneakyThrows public static void main(String[] args) { diff --git a/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsFileUtilTest.java b/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitFileUtilTest.java similarity index 95% rename from cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsFileUtilTest.java rename to cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitFileUtilTest.java index 3f600f62..b022afd0 100644 --- a/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsFileUtilTest.java +++ b/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitFileUtilTest.java @@ -19,10 +19,10 @@ package cn.odboy.util; import org.junit.jupiter.api.Test; import org.springframework.mock.web.MockMultipartFile; -import static cn.odboy.util.CsFileUtil.*; +import static cn.odboy.util.KitFileUtil.*; import static org.junit.jupiter.api.Assertions.assertEquals; -public class CsFileUtilTest { +public class KitFileUtilTest { @Test public void testToFile() { diff --git a/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java b/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitStringUtilTest.java similarity index 84% rename from cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java rename to cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitStringUtilTest.java index 35ffc998..b17b7b6a 100644 --- a/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java +++ b/cutejava-springboot3/cutejava-starter/src/test/java/cn/odboy/util/KitStringUtilTest.java @@ -23,11 +23,11 @@ import org.springframework.mock.web.MockHttpServletRequest; import java.text.SimpleDateFormat; import java.util.Date; -import static cn.odboy.util.CsStringUtil.*; +import static cn.odboy.util.KitStringUtil.*; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class CsStringUtilTest { +public class KitStringUtilTest { @Test public void testToCamelCase() { @@ -36,13 +36,13 @@ public class CsStringUtilTest { @Test public void testToCapitalizeCamelCase() { - assertNull(CsStringUtil.toCapitalizeCamelCase(null)); + assertNull(KitStringUtil.toCapitalizeCamelCase(null)); assertEquals("HelloWorld", toCapitalizeCamelCase("hello_world")); } @Test public void testToUnderScoreCase() { - assertNull(CsStringUtil.toUnderScoreCase(null)); + assertNull(KitStringUtil.toUnderScoreCase(null)); assertEquals("hello_world", toUnderScoreCase("helloWorld")); assertEquals("\u0000\u0000", toUnderScoreCase("\u0000\u0000")); assertEquals("\u0000_a", toUnderScoreCase("\u0000A")); @@ -56,6 +56,6 @@ public class CsStringUtilTest { @Test public void testGetIP() { - Assertions.assertEquals("127.0.0.1", CsBrowserUtil.getIp(new MockHttpServletRequest())); + Assertions.assertEquals("127.0.0.1", KitBrowserUtil.getIp(new MockHttpServletRequest())); } } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsArgs.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitArgs.java similarity index 84% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsArgs.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitArgs.java index 5ade5ddd..3c64bf31 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsArgs.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitArgs.java @@ -1,44 +1,44 @@ -/* - * 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.base; - -import lombok.Getter; -import lombok.Setter; - -import javax.validation.constraints.NotNull; - -/** - * 通用参数 - * - * @author odboy - * @date 2025-07-23 - */ -public class CsArgs { - @Getter - @Setter - public static class FindByLongId extends CsObject { - @NotNull(message = "id必填") - private Long id; - } - - @Getter - @Setter - public static class DeleteById extends CsObject { - @NotNull(message = "id必填") - private Long id; - } -} +/* + * 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.base; + +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotNull; + +/** + * 通用参数 + * + * @author odboy + * @date 2025-07-23 + */ +public class KitArgs { + @Getter + @Setter + public static class FindByLongId extends KitObject { + @NotNull(message = "id必填") + private Long id; + } + + @Getter + @Setter + public static class DeleteById extends KitObject { + @NotNull(message = "id必填") + private Long id; + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseCreateTimeTb.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseCreateTimeTb.java similarity index 92% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseCreateTimeTb.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseCreateTimeTb.java index 7ae782cb..5bdc24b6 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseCreateTimeTb.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseCreateTimeTb.java @@ -1,35 +1,35 @@ -/* - * 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.base; - -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; - -import java.util.Date; - -@Getter -@Setter -@EqualsAndHashCode(callSuper = false) -public class CsBaseCreateTimeTb extends CsObject { - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) - private Date createTime; -} +/* + * 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.base; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +@EqualsAndHashCode(callSuper = false) +public class KitBaseCreateTimeTb extends KitObject { + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) + private Date createTime; +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseTimeTb.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseTimeTb.java similarity index 93% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseTimeTb.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseTimeTb.java index fc21838a..111348db 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseTimeTb.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseTimeTb.java @@ -1,39 +1,39 @@ -/* - * 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.base; - -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; - -import java.util.Date; - -@Getter -@Setter -@EqualsAndHashCode(callSuper = false) -public class CsBaseTimeTb extends CsObject { - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) - private Date createTime; - - @TableField(fill = FieldFill.INSERT_UPDATE) - @ApiModelProperty(value = "更新时间: yyyy-MM-dd HH:mm:ss", hidden = true) - private Date updateTime; -} +/* + * 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.base; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +@EqualsAndHashCode(callSuper = false) +public class KitBaseTimeTb extends KitObject { + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) + private Date createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "更新时间: yyyy-MM-dd HH:mm:ss", hidden = true) + private Date updateTime; +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUpdateTimeTb.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUpdateTimeTb.java similarity index 92% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUpdateTimeTb.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUpdateTimeTb.java index 0eb541b9..97908ae3 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUpdateTimeTb.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUpdateTimeTb.java @@ -1,35 +1,35 @@ -/* - * 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.base; - -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; - -import java.util.Date; - -@Getter -@Setter -@EqualsAndHashCode(callSuper = false) -public class CsBaseUpdateTimeTb extends CsObject { - @TableField(fill = FieldFill.INSERT_UPDATE) - @ApiModelProperty(value = "更新时间: yyyy-MM-dd HH:mm:ss", hidden = true) - private Date updateTime; -} +/* + * 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.base; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +@EqualsAndHashCode(callSuper = false) +public class KitBaseUpdateTimeTb extends KitObject { + @TableField(fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "更新时间: yyyy-MM-dd HH:mm:ss", hidden = true) + private Date updateTime; +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserCreateTimeTb.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserCreateTimeTb.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserCreateTimeTb.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserCreateTimeTb.java index 59250fdb..690d6e86 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserCreateTimeTb.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserCreateTimeTb.java @@ -1,67 +1,67 @@ -/* - * 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.base; - -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.springframework.data.annotation.CreatedBy; - -import java.lang.reflect.Field; -import java.util.Date; - -@Getter -@Setter -@EqualsAndHashCode(callSuper = false) -public class CsBaseUserCreateTimeTb extends CsObject { - - @CreatedBy - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建人", hidden = true) - private String createBy; - - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) - private Date createTime; - - @Override - public String toString() { - ToStringBuilder builder = new ToStringBuilder(this); - Field[] fields = this.getClass().getDeclaredFields(); - try { - for (Field f : fields) { - f.setAccessible(true); - builder.append(f.getName(), f.get(this)).append("\n"); - } - } catch (Exception e) { - builder.append("toString builder encounter an error"); - } - return builder.toString(); - } - - /* 分组校验 */ - public @interface Create { - } - - /* 分组校验 */ - public @interface Update { - } -} +/* + * 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.base; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springframework.data.annotation.CreatedBy; + +import java.lang.reflect.Field; +import java.util.Date; + +@Getter +@Setter +@EqualsAndHashCode(callSuper = false) +public class KitBaseUserCreateTimeTb extends KitObject { + + @CreatedBy + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建人", hidden = true) + private String createBy; + + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) + private Date createTime; + + @Override + public String toString() { + ToStringBuilder builder = new ToStringBuilder(this); + Field[] fields = this.getClass().getDeclaredFields(); + try { + for (Field f : fields) { + f.setAccessible(true); + builder.append(f.getName(), f.get(this)).append("\n"); + } + } catch (Exception e) { + builder.append("toString builder encounter an error"); + } + return builder.toString(); + } + + /* 分组校验 */ + public @interface Create { + } + + /* 分组校验 */ + public @interface Update { + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeLogicTb.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeLogicTb.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeLogicTb.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeLogicTb.java index 52e81789..d3569589 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeLogicTb.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeLogicTb.java @@ -1,57 +1,57 @@ -/* - * 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.base; - -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableLogic; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; -import org.springframework.data.annotation.CreatedBy; -import org.springframework.data.annotation.LastModifiedBy; - -import java.util.Date; - -/** - * 逻辑删除通用模型 - * - * @author odboy - * @date 2025-01-12 - */ -@Getter -@Setter -public class CsBaseUserTimeLogicTb extends CsObject { - @CreatedBy - @TableField(value = "create_by", fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建人", hidden = true) - private String createBy; - @LastModifiedBy - @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE) - @ApiModelProperty(value = "更新人", hidden = true) - private String updateBy; - @TableField(value = "create_time", fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建时间", hidden = true) - private Date createTime; - @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) - @ApiModelProperty(value = "更新时间", hidden = true) - private Date updateTime; - @ApiModelProperty(value = "数据有效性", hidden = true) - @TableLogic - @TableField("available") - private Integer available; -} +/* + * 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.base; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springframework.data.annotation.CreatedBy; +import org.springframework.data.annotation.LastModifiedBy; + +import java.util.Date; + +/** + * 逻辑删除通用模型 + * + * @author odboy + * @date 2025-01-12 + */ +@Getter +@Setter +public class KitBaseUserTimeLogicTb extends KitObject { + @CreatedBy + @TableField(value = "create_by", fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建人", hidden = true) + private String createBy; + @LastModifiedBy + @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "更新人", hidden = true) + private String updateBy; + @TableField(value = "create_time", fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建时间", hidden = true) + private Date createTime; + @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "更新时间", hidden = true) + private Date updateTime; + @ApiModelProperty(value = "数据有效性", hidden = true) + @TableLogic + @TableField("available") + private Integer available; +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeTb.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeTb.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeTb.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeTb.java index ae84d3c8..0867d6b6 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsBaseUserTimeTb.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitBaseUserTimeTb.java @@ -1,77 +1,77 @@ -/* - * 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.base; - -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.annotations.ApiModelProperty; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.Setter; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.springframework.data.annotation.CreatedBy; -import org.springframework.data.annotation.LastModifiedBy; - -import java.lang.reflect.Field; -import java.util.Date; - -@Getter -@Setter -@EqualsAndHashCode(callSuper = false) -public class CsBaseUserTimeTb extends CsObject { - - @CreatedBy - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建人", hidden = true) - private String createBy; - - @LastModifiedBy - @TableField(fill = FieldFill.INSERT_UPDATE) - @ApiModelProperty(value = "更新人", hidden = true) - private String updateBy; - - @TableField(fill = FieldFill.INSERT) - @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) - private Date createTime; - - @TableField(fill = FieldFill.INSERT_UPDATE) - @ApiModelProperty(value = "更新时间: yyyy-MM-dd HH:mm:ss", hidden = true) - private Date updateTime; - - @Override - public String toString() { - ToStringBuilder builder = new ToStringBuilder(this); - Field[] fields = this.getClass().getDeclaredFields(); - try { - for (Field f : fields) { - f.setAccessible(true); - builder.append(f.getName(), f.get(this)).append("\n"); - } - } catch (Exception e) { - builder.append("toString builder encounter an error"); - } - return builder.toString(); - } - - /* 分组校验 */ - public @interface Create { - } - - /* 分组校验 */ - public @interface Update { - } -} +/* + * 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.base; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.springframework.data.annotation.CreatedBy; +import org.springframework.data.annotation.LastModifiedBy; + +import java.lang.reflect.Field; +import java.util.Date; + +@Getter +@Setter +@EqualsAndHashCode(callSuper = false) +public class KitBaseUserTimeTb extends KitObject { + + @CreatedBy + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建人", hidden = true) + private String createBy; + + @LastModifiedBy + @TableField(fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "更新人", hidden = true) + private String updateBy; + + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) + private Date createTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @ApiModelProperty(value = "更新时间: yyyy-MM-dd HH:mm:ss", hidden = true) + private Date updateTime; + + @Override + public String toString() { + ToStringBuilder builder = new ToStringBuilder(this); + Field[] fields = this.getClass().getDeclaredFields(); + try { + for (Field f : fields) { + f.setAccessible(true); + builder.append(f.getName(), f.get(this)).append("\n"); + } + } catch (Exception e) { + builder.append("toString builder encounter an error"); + } + return builder.toString(); + } + + /* 分组校验 */ + public @interface Create { + } + + /* 分组校验 */ + public @interface Update { + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsObject.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitObject.java similarity index 90% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsObject.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitObject.java index 0b528db7..5af930a1 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsObject.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitObject.java @@ -1,29 +1,29 @@ -/* - * 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.base; - -import java.io.Serializable; - -/** - * 基础对象 - * - * @author odboy - * @date 2022-01-12 - */ -public class CsObject implements Serializable { - private static final long serialVersionUID = 1L; -} +/* + * 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.base; + +import java.io.Serializable; + +/** + * 基础对象 + * + * @author odboy + * @date 2022-01-12 + */ +public class KitObject implements Serializable { + private static final long serialVersionUID = 1L; +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsPageArgs.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitPageArgs.java similarity index 93% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsPageArgs.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitPageArgs.java index 0bbac579..3f5e2da9 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsPageArgs.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitPageArgs.java @@ -1,47 +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.base; - -import io.swagger.annotations.ApiModelProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; -import java.io.Serializable; - -/** - * 数据分页参数 - * - * @author odboy - * @date 2025-01-20 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -public class CsPageArgs implements Serializable { - @NotNull(message = "参数page不能为空") - @Min(value = 1, message = "参数page最小值为1") - @ApiModelProperty(value = "页码", example = "1") - private Integer page; - @NotNull(message = "参数size不能为空") - @Min(value = 1, message = "参数size最小值为1") - @ApiModelProperty(value = "每页数据量", example = "10") - private Integer size; - private T args; -} +/* + * 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.base; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 数据分页参数 + * + * @author odboy + * @date 2025-01-20 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class KitPageArgs implements Serializable { + @NotNull(message = "参数page不能为空") + @Min(value = 1, message = "参数page最小值为1") + @ApiModelProperty(value = "页码", example = "1") + private Integer page; + @NotNull(message = "参数size不能为空") + @Min(value = 1, message = "参数size最小值为1") + @ApiModelProperty(value = "每页数据量", example = "10") + private Integer size; + private T args; +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsPageResult.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitPageResult.java similarity index 79% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsPageResult.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitPageResult.java index 6cd09399..88ee1a48 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsPageResult.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitPageResult.java @@ -1,52 +1,52 @@ -/* - * 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.base; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -import java.util.ArrayList; -import java.util.List; - -/** - * 结果封装类 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@EqualsAndHashCode(callSuper = false) -public class CsPageResult extends CsObject { - private List content; - private long totalElements; - - public static CsPageResult emptyListData() { - CsPageResult result = new CsPageResult<>(); - result.setTotalElements(0); - result.setContent(new ArrayList<>()); - return result; - } - - public static CsPageResult listData(IPage page) { - CsPageResult result = new CsPageResult<>(); - result.setTotalElements(page.getTotal()); - result.setContent(page.getRecords()); - return result; - } -} +/* + * 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.base; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * 结果封装类 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class KitPageResult extends KitObject { + private List content; + private long totalElements; + + public static KitPageResult emptyListData() { + KitPageResult result = new KitPageResult<>(); + result.setTotalElements(0); + result.setContent(new ArrayList<>()); + return result; + } + + public static KitPageResult listData(IPage page) { + KitPageResult result = new KitPageResult<>(); + result.setTotalElements(page.getTotal()); + result.setContent(page.getRecords()); + return result; + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsSelectOptionVo.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitSelectOptionVo.java similarity index 91% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsSelectOptionVo.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitSelectOptionVo.java index 4d8b09b0..fd37e725 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/base/CsSelectOptionVo.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/base/KitSelectOptionVo.java @@ -1,38 +1,38 @@ -/* - * 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.base; - -import lombok.*; - -import java.util.Map; - -/** - * 元数据选项 - * - * @author odboy - * @date 2025-01-13 - */ -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -@EqualsAndHashCode(callSuper = false) -public class CsSelectOptionVo extends CsObject { - private String label; - private String value; - private Map ext; -} +/* + * 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.base; + +import lombok.*; + +import java.util.Map; + +/** + * 元数据选项 + * + * @author odboy + * @date 2025-01-13 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class KitSelectOptionVo extends KitObject { + private String label; + private String value; + private Map ext; +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java index f0a637df..f92dac8b 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/BootApplication.java @@ -43,7 +43,7 @@ public class BootApplication { } @Bean - public CsSpringBeanHolder springBeanHolder() { - return new CsSpringBeanHolder(); + public KitSpringBeanHolder springBeanHolder() { + return new KitSpringBeanHolder(); } } \ No newline at end of file diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitRequestHolder.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitRequestHolder.java index 8cdf1738..f7e9ca85 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsRequestHolder.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitRequestHolder.java @@ -1,34 +1,34 @@ - -/* - * 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.framework.context; - -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; -import java.util.Objects; - -/** - * 获取 HttpServletRequest - */ -public class CsRequestHolder { - - public static HttpServletRequest getHttpServletRequest() { - return ((ServletRequestAttributes)Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); - } -} + +/* + * 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.framework.context; + +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Objects; + +/** + * 获取 HttpServletRequest + */ +public class KitRequestHolder { + + public static HttpServletRequest getHttpServletRequest() { + return ((ServletRequestAttributes)Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsScriptHelper.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitScriptHelper.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsScriptHelper.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitScriptHelper.java index cc0dee77..6a7b7261 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsScriptHelper.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitScriptHelper.java @@ -1,63 +1,63 @@ -/* - * 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.framework.context; - -import lombok.extern.slf4j.Slf4j; -import org.mozilla.javascript.Context; -import org.mozilla.javascript.Scriptable; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * 脚本工具 - * - * @author odboy - * @date 2025-09-23 - */ -@Slf4j -@Component -public class CsScriptHelper { - public Object evalObj(String script, Map args) { - try (Context rhino = Context.enter()) { - Scriptable scope = rhino.initStandardObjects(); - bindArgumentsToScope(scope, args); - Object result = rhino.evaluateString(scope, script, "JavaScript", 1, null); - log.info("执行结果: {}", Context.toString(result)); - return result; - } - } - - private void bindArgumentsToScope(Scriptable scope, Map args) { - if (args == null) { - return; - } - for (Map.Entry entry : args.entrySet()) { - Object jsValue = Context.javaToJS(entry.getValue(), scope); - scope.put(entry.getKey().toString(), scope, jsValue); - } - } - - private void bindArgumentsToScope(Scriptable scope, Object args) { - if (args == null) { - return; - } - // 单个对象参数 - Object jsValue = Context.javaToJS(args, scope); - scope.put("args", scope, jsValue); - } -} +/* + * 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.framework.context; + +import lombok.extern.slf4j.Slf4j; +import org.mozilla.javascript.Context; +import org.mozilla.javascript.Scriptable; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 脚本工具 + * + * @author odboy + * @date 2025-09-23 + */ +@Slf4j +@Component +public class KitScriptHelper { + public Object evalObj(String script, Map args) { + try (Context rhino = Context.enter()) { + Scriptable scope = rhino.initStandardObjects(); + bindArgumentsToScope(scope, args); + Object result = rhino.evaluateString(scope, script, "JavaScript", 1, null); + log.info("执行结果: {}", Context.toString(result)); + return result; + } + } + + private void bindArgumentsToScope(Scriptable scope, Map args) { + if (args == null) { + return; + } + for (Map.Entry entry : args.entrySet()) { + Object jsValue = Context.javaToJS(entry.getValue(), scope); + scope.put(entry.getKey().toString(), scope, jsValue); + } + } + + private void bindArgumentsToScope(Scriptable scope, Object args) { + if (args == null) { + return; + } + // 单个对象参数 + Object jsValue = Context.javaToJS(args, scope); + scope.put("args", scope, jsValue); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitSpringBeanHolder.java similarity index 87% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitSpringBeanHolder.java index 01264bef..a9985df6 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/CsSpringBeanHolder.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/context/KitSpringBeanHolder.java @@ -1,170 +1,170 @@ -/* - * 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.framework.context; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.core.env.Environment; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -@Slf4j -@SuppressWarnings({"unchecked", "all"}) -public class CsSpringBeanHolder implements ApplicationContextAware, DisposableBean { - - private static final List CALL_BACKS = new ArrayList<>(); - private static ApplicationContext applicationContext = null; - private static boolean addCallback = true; - - /** - * 针对 某些初始化方法, 在SpringContextHolder 未初始化时 提交回调方法。 在SpringContextHolder 初始化后, 进行回调使用 - * - * @param callBack 回调函数 - */ - public synchronized static void addCallBacks(CallBack callBack) { - if (addCallback) { - CsSpringBeanHolder.CALL_BACKS.add(callBack); - } else { - log.warn("CallBack:{} 已无法添加!立即执行", callBack.getCallBackName()); - callBack.executor(); - } - } - - /** - * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. - */ - public static T getBean(String name) { - assertContextInjected(); - return (T)applicationContext.getBean(name); - } - - /** - * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. - */ - public static T getBean(Class requiredType) { - assertContextInjected(); - return applicationContext.getBean(requiredType); - } - - /** - * 获取SpringBoot 配置信息 - * - * @param property 属性key - * @param defaultValue 默认值 - * @param requiredType 返回类型 - * @return / - */ - public static T getProperties(String property, T defaultValue, Class requiredType) { - T result = defaultValue; - try { - result = getBean(Environment.class).getProperty(property, requiredType); - } catch (Exception ignored) { - } - return result; - } - - /** - * 获取SpringBoot 配置信息 - * - * @param property 属性key - * @return / - */ - public static String getProperties(String property) { - return getProperties(property, null, String.class); - } - - /** - * 获取SpringBoot 配置信息 - * - * @param property 属性key - * @param requiredType 返回类型 - * @return / - */ - public static T getProperties(String property, Class requiredType) { - return getProperties(property, null, requiredType); - } - - /** - * 检查ApplicationContext不为空. - */ - private static void assertContextInjected() { - if (applicationContext == null) { - throw new IllegalStateException( - "applicaitonContext属性未注入, 请在applicationContext" + ".xml中定义SpringContextHolder或在SpringBoot启动类中注册SpringContextHolder."); - } - } - - /** - * 清除SpringContextHolder中的ApplicationContext为Null. - */ - private static void clearHolder() { - log.debug("清除SpringContextHolder中的ApplicationContext:" + applicationContext); - applicationContext = null; - } - - /** - * 获取 @Service 的所有 bean 名称 - * - * @return / - */ - public static List getAllServiceBeanName() { - return new ArrayList<>(Arrays.asList(applicationContext.getBeanNamesForAnnotation(Service.class))); - } - - @Override - public void destroy() { - CsSpringBeanHolder.clearHolder(); - } - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - if (CsSpringBeanHolder.applicationContext != null) { - log.warn("SpringContextHolder中的ApplicationContext被覆盖, 原有ApplicationContext为:" + CsSpringBeanHolder.applicationContext); - } - CsSpringBeanHolder.applicationContext = applicationContext; - if (addCallback) { - for (CallBack callBack : CsSpringBeanHolder.CALL_BACKS) { - callBack.executor(); - } - CALL_BACKS.clear(); - } - CsSpringBeanHolder.addCallback = false; - } - - interface CallBack { - - /** - * 回调执行方法 - */ - void executor(); - - /** - * 本回调任务名称 - * - * @return / - */ - default String getCallBackName() { - return Thread.currentThread().getId() + ":" + this.getClass().getName(); - } - } -} +/* + * 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.framework.context; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Slf4j +@SuppressWarnings({"unchecked", "all"}) +public class KitSpringBeanHolder implements ApplicationContextAware, DisposableBean { + + private static final List CALL_BACKS = new ArrayList<>(); + private static ApplicationContext applicationContext = null; + private static boolean addCallback = true; + + /** + * 针对 某些初始化方法, 在SpringContextHolder 未初始化时 提交回调方法。 在SpringContextHolder 初始化后, 进行回调使用 + * + * @param callBack 回调函数 + */ + public synchronized static void addCallBacks(CallBack callBack) { + if (addCallback) { + KitSpringBeanHolder.CALL_BACKS.add(callBack); + } else { + log.warn("CallBack:{} 已无法添加!立即执行", callBack.getCallBackName()); + callBack.executor(); + } + } + + /** + * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. + */ + public static T getBean(String name) { + assertContextInjected(); + return (T)applicationContext.getBean(name); + } + + /** + * 从静态变量applicationContext中取得Bean, 自动转型为所赋值对象的类型. + */ + public static T getBean(Class requiredType) { + assertContextInjected(); + return applicationContext.getBean(requiredType); + } + + /** + * 获取SpringBoot 配置信息 + * + * @param property 属性key + * @param defaultValue 默认值 + * @param requiredType 返回类型 + * @return / + */ + public static T getProperties(String property, T defaultValue, Class requiredType) { + T result = defaultValue; + try { + result = getBean(Environment.class).getProperty(property, requiredType); + } catch (Exception ignored) { + } + return result; + } + + /** + * 获取SpringBoot 配置信息 + * + * @param property 属性key + * @return / + */ + public static String getProperties(String property) { + return getProperties(property, null, String.class); + } + + /** + * 获取SpringBoot 配置信息 + * + * @param property 属性key + * @param requiredType 返回类型 + * @return / + */ + public static T getProperties(String property, Class requiredType) { + return getProperties(property, null, requiredType); + } + + /** + * 检查ApplicationContext不为空. + */ + private static void assertContextInjected() { + if (applicationContext == null) { + throw new IllegalStateException( + "applicaitonContext属性未注入, 请在applicationContext" + ".xml中定义SpringContextHolder或在SpringBoot启动类中注册SpringContextHolder."); + } + } + + /** + * 清除SpringContextHolder中的ApplicationContext为Null. + */ + private static void clearHolder() { + log.debug("清除SpringContextHolder中的ApplicationContext:" + applicationContext); + applicationContext = null; + } + + /** + * 获取 @Service 的所有 bean 名称 + * + * @return / + */ + public static List getAllServiceBeanName() { + return new ArrayList<>(Arrays.asList(applicationContext.getBeanNamesForAnnotation(Service.class))); + } + + @Override + public void destroy() { + KitSpringBeanHolder.clearHolder(); + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + if (KitSpringBeanHolder.applicationContext != null) { + log.warn("SpringContextHolder中的ApplicationContext被覆盖, 原有ApplicationContext为:" + KitSpringBeanHolder.applicationContext); + } + KitSpringBeanHolder.applicationContext = applicationContext; + if (addCallback) { + for (CallBack callBack : KitSpringBeanHolder.CALL_BACKS) { + callBack.executor(); + } + CALL_BACKS.clear(); + } + KitSpringBeanHolder.addCallback = false; + } + + interface CallBack { + + /** + * 回调执行方法 + */ + void executor(); + + /** + * 本回调任务名称 + * + * @return / + */ + default String getCallBackName() { + return Thread.currentThread().getId() + ":" + this.getClass().getName(); + } + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/doc/SwaggerConfig.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/doc/SwaggerConfig.java index 4898d280..aa1bc6f0 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/doc/SwaggerConfig.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/doc/SwaggerConfig.java @@ -18,7 +18,7 @@ package cn.odboy.framework.doc; import cn.odboy.constant.SystemConst; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.util.CsAnonTagUtil; +import cn.odboy.util.KitAnonTagUtil; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -125,7 +125,7 @@ public class SwaggerConfig { } private SecurityContext getContextByPath() { - Set urls = CsAnonTagUtil.getAllAnonymousUrl(applicationContext); + Set urls = KitAnonTagUtil.getAllAnonymousUrl(applicationContext); urls = urls.stream().filter(url -> !"/".equals(url)).collect(Collectors.toSet()); String regExp = "^(?!" + apiPath + String.join("|" + apiPath, urls) + ").*$"; return SecurityContext.builder().securityReferences(defaultAuth()).operationSelector(o -> o.requestMappingPattern() diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java index c282dfb0..4678e5e5 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/controller/HealthCheckController.java @@ -17,7 +17,7 @@ package cn.odboy.framework.monitor.controller; import cn.odboy.annotation.AnonymousGetMapping; -import cn.odboy.framework.monitor.service.CsHealthCheckPointService; +import cn.odboy.framework.monitor.service.KitHealthCheckPointService; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -32,14 +32,14 @@ import org.springframework.web.bind.annotation.RestController; @Api(tags = "系统:健康检查接口") public class HealthCheckController { @Autowired - private CsHealthCheckPointService healthCheckPointService; + private KitHealthCheckPointService kitHealthCheckPointService; /** * 就绪检查 */ @AnonymousGetMapping(value = "/readiness") public ResponseEntity doReadiness() { - return healthCheckPointService.doReadiness(); + return kitHealthCheckPointService.doReadiness(); } /** @@ -47,7 +47,7 @@ public class HealthCheckController { */ @AnonymousGetMapping(value = "/liveness") public ResponseEntity doLiveness() { - return healthCheckPointService.doLiveness(); + return kitHealthCheckPointService.doLiveness(); } // /** diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/CsHealthCheckPointService.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/KitHealthCheckPointService.java similarity index 91% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/CsHealthCheckPointService.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/KitHealthCheckPointService.java index 0061e8ac..5bc653f2 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/CsHealthCheckPointService.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/monitor/service/KitHealthCheckPointService.java @@ -1,31 +1,31 @@ -/* - * 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.framework.monitor.service; - -import org.springframework.http.ResponseEntity; - -public interface CsHealthCheckPointService { - /** - * 就绪检查 - */ - ResponseEntity doReadiness(); - - /** - * 存活检查 - */ - ResponseEntity doLiveness(); -} +/* + * 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.framework.monitor.service; + +import org.springframework.http.ResponseEntity; + +public interface KitHealthCheckPointService { + /** + * 就绪检查 + */ + ResponseEntity doReadiness(); + + /** + * 存活检查 + */ + ResponseEntity doLiveness(); +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQTypeEnum.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQTypeEnum.java similarity index 93% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQTypeEnum.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQTypeEnum.java index de214f7f..ca02032a 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQTypeEnum.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQTypeEnum.java @@ -1,75 +1,75 @@ -/* - * 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.framework.mybatisplus.config; - -/** - * 动态查询 枚举 - */ -public enum CsMpQTypeEnum { - /** - * 相等 - */ - EQUAL - /** - * 大于等于 - */ - , GREATER_THAN - /** - * 小于等于 - */ - , LESS_THAN - /** - * 中模糊查询 - */ - , INNER_LIKE - /** - * 左模糊查询 - */ - , LEFT_LIKE - /** - * 右模糊查询 - */ - , RIGHT_LIKE - /** - * 小于 - */ - , LESS_THAN_NQ - /** - * 包含 - */ - , IN - /** - * 不包含 - */ - , NOT_IN - /** - * 不等于 - */ - , NOT_EQUAL - /** - * between(注:被注解的属性一定得是数组或者集合, 长度大于等于2) - */ - , BETWEEN - /** - * 不为空 - */ - , NOT_NULL - /** - * 为空 - */ - , IS_NULL -} +/* + * 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.framework.mybatisplus.config; + +/** + * 动态查询 枚举 + */ +public enum KitMpQTypeEnum { + /** + * 相等 + */ + EQUAL + /** + * 大于等于 + */ + , GREATER_THAN + /** + * 小于等于 + */ + , LESS_THAN + /** + * 中模糊查询 + */ + , INNER_LIKE + /** + * 左模糊查询 + */ + , LEFT_LIKE + /** + * 右模糊查询 + */ + , RIGHT_LIKE + /** + * 小于 + */ + , LESS_THAN_NQ + /** + * 包含 + */ + , IN + /** + * 不包含 + */ + , NOT_IN + /** + * 不等于 + */ + , NOT_EQUAL + /** + * between(注:被注解的属性一定得是数组或者集合, 长度大于等于2) + */ + , BETWEEN + /** + * 不为空 + */ + , NOT_NULL + /** + * 为空 + */ + , IS_NULL +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQuery.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQuery.java similarity index 90% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQuery.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQuery.java index be0f2628..c660a854 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/CsMpQuery.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/config/KitMpQuery.java @@ -1,46 +1,46 @@ -/* - * 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.framework.mybatisplus.config; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * 查询描述 - * - * @date 2023-11-25 - */ -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface CsMpQuery { - /** - * 基本对象的属性名 - */ - String propName() default ""; - - /** - * 查询方式 - */ - CsMpQTypeEnum type() default CsMpQTypeEnum.EQUAL; - - /** - * 多字段模糊搜索, 仅支持String类型字段, 多个用逗号隔开, 如@MpQuery(blurry = "email,username") - */ - String blurry() default ""; -} +/* + * 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.framework.mybatisplus.config; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 查询描述 + * + * @date 2023-11-25 + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +public @interface KitMpQuery { + /** + * 基本对象的属性名 + */ + String propName() default ""; + + /** + * 查询方式 + */ + KitMpQTypeEnum type() default KitMpQTypeEnum.EQUAL; + + /** + * 多字段模糊搜索, 仅支持String类型字段, 多个用逗号隔开, 如@MpQuery(blurry = "email,username") + */ + String blurry() default ""; +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpAnyQUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java similarity index 82% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpAnyQUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java index c2b1a7f0..644a89c6 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpAnyQUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpAnyQUtil.java @@ -1,82 +1,82 @@ -/* - * 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.framework.mybatisplus.core; - -import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - -import java.util.ArrayList; -import java.util.List; - -/** - * 自定义任意对象查询工具 - * - * @author odboy - * @date 2025-05-15 - */ -public class CsMpAnyQUtil { - public static T selectOne(BaseMapper baseMapper, Object queryParams) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); - return baseMapper.selectOne(queryWrapper); - } - - public static M selectOne(BaseMapper baseMapper, Object queryParams, Class mapperClazz) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); - T mapperTarget = baseMapper.selectOne(queryWrapper); - if (mapperTarget == null) { - return null; - } - return BeanUtil.copyProperties(mapperTarget, mapperClazz); - } - - public static List selectList(BaseMapper baseMapper, Object queryParams) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); - return baseMapper.selectList(queryWrapper); - } - - public static List selectList(BaseMapper baseMapper, Object queryParams, Class mapperClazz) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); - List mapperTarget = baseMapper.selectList(queryWrapper); - if (mapperTarget == null) { - return new ArrayList<>(); - } - return BeanUtil.copyToList(mapperTarget, mapperClazz); - } - - public static Long selectCount(BaseMapper baseMapper, Object queryParams) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); - return baseMapper.selectCount(queryWrapper); - } - - public static Page selectPage(BaseMapper baseMapper, Page page, Object queryParams) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); - return baseMapper.selectPage(page, queryWrapper); - } - - public static Page selectPage(BaseMapper baseMapper, Page page, Object queryParams, Class mapperClazz) { - QueryWrapper queryWrapper = CsMpQUtil.build(queryParams); - Page tPage = baseMapper.selectPage(page, queryWrapper); - Page mapperTarget = new Page<>(); - mapperTarget.setRecords(BeanUtil.copyToList(tPage.getRecords(), mapperClazz)); - mapperTarget.setTotal(tPage.getTotal()); - mapperTarget.setSize(tPage.getSize()); - mapperTarget.setCurrent(tPage.getCurrent()); - return mapperTarget; - } -} +/* + * 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.framework.mybatisplus.core; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import java.util.ArrayList; +import java.util.List; + +/** + * 自定义任意对象查询工具 + * + * @author odboy + * @date 2025-05-15 + */ +public class KitMpAnyQUtil { + public static T selectOne(BaseMapper baseMapper, Object queryParams) { + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); + return baseMapper.selectOne(queryWrapper); + } + + public static M selectOne(BaseMapper baseMapper, Object queryParams, Class mapperClazz) { + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); + T mapperTarget = baseMapper.selectOne(queryWrapper); + if (mapperTarget == null) { + return null; + } + return BeanUtil.copyProperties(mapperTarget, mapperClazz); + } + + public static List selectList(BaseMapper baseMapper, Object queryParams) { + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); + return baseMapper.selectList(queryWrapper); + } + + public static List selectList(BaseMapper baseMapper, Object queryParams, Class mapperClazz) { + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); + List mapperTarget = baseMapper.selectList(queryWrapper); + if (mapperTarget == null) { + return new ArrayList<>(); + } + return BeanUtil.copyToList(mapperTarget, mapperClazz); + } + + public static Long selectCount(BaseMapper baseMapper, Object queryParams) { + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); + return baseMapper.selectCount(queryWrapper); + } + + public static Page selectPage(BaseMapper baseMapper, Page page, Object queryParams) { + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); + return baseMapper.selectPage(page, queryWrapper); + } + + public static Page selectPage(BaseMapper baseMapper, Page page, Object queryParams, Class mapperClazz) { + QueryWrapper queryWrapper = KitMpQUtil.build(queryParams); + Page tPage = baseMapper.selectPage(page, queryWrapper); + Page mapperTarget = new Page<>(); + mapperTarget.setRecords(BeanUtil.copyToList(tPage.getRecords(), mapperClazz)); + mapperTarget.setTotal(tPage.getTotal()); + mapperTarget.setSize(tPage.getSize()); + mapperTarget.setCurrent(tPage.getCurrent()); + return mapperTarget; + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpCmdGenUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpCmdGenUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java index a399eae5..6ada1734 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpCmdGenUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpCmdGenUtil.java @@ -1,201 +1,201 @@ -/* - * 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.framework.mybatisplus.core; - -import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsBaseUserTimeTb; -import cn.odboy.framework.exception.BadRequestException; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.generator.FastAutoGenerator; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery; -import com.baomidou.mybatisplus.generator.config.rules.DateType; -import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine; -import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; -import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler; -import lombok.Data; -import org.apache.ibatis.annotations.Mapper; - -import java.sql.Types; -import java.util.Collections; -import java.util.List; -import java.util.function.Consumer; - -/** - * 代码生成器入口 - * - * @author odboy - * @date 2025-01-11 - */ -@Data -public class CsMpCmdGenUtil { - // 项目根路径。生成结果 C:\Users\Administrator\Documents\GitHub\cutejava\cutejava - private static final String projectRootPath = System.getProperty("user.dir") + "/"; - /** - * 数据库类型 MySQL - */ - private static final IDbQuery DB_QUERY = new MySqlQuery(); - /** - * 类型转换 - */ - private static final String TYPE_TINY_INT = "tinyint"; - private static final String TYPE_DATETIME = "datetime"; - private static final String TYPE_DATE = "date"; - private String databaseUrl; - private String databaseUsername; - private String databasePassword; - private String driverClassName; - private String parentPackageName = "cn.odboy"; - private String parentModuleName; - - private static Consumer getEntityConfigConsumer() { - return strategyConfigBuilder -> strategyConfigBuilder.entityBuilder().enableLombok() - // 如果不需要生成注解, 去掉.enableTableFieldAnnotation() - .enableTableFieldAnnotation().enableFileOverride().naming(NamingStrategy.underline_to_camel).columnNaming(NamingStrategy.underline_to_camel) - .idType(IdType.AUTO); - } - - private static Consumer getStrategyConfigConsumer(List tableNames) { - return strategyConfigBuilder -> strategyConfigBuilder.enableCapitalMode().enableSkipView().disableSqlFilter().addInclude(tableNames) - // 实体类生成策略 - .entityBuilder().superClass(CsBaseUserTimeTb.class).addIgnoreColumns("create_time", "update_time", "create_by", "update_by") - // 开启生成实体时生成字段注解。 - // 会在实体类的属性前,添加[@TableField("nickname")] - .enableTableFieldAnnotation().disableSerialVersionUID() - // 阶段2:Mapper策略配置 - .mapperBuilder() - // 开启 @Mapper 注解。 - // 会在mapper接口上添加注解[@Mapper] - // .enableMapperAnnotation() - // 启用 BaseResultMap 生成。 - // 会在mapper.xml文件生成[通用查询映射结果]配置。 - // .enableBaseResultMap() - // 启用 BaseColumnList。 - // 会在mapper.xml文件生成[通用查询结果列 ]配置 - // .enableBaseColumnList() - // 阶段4:Controller策略配置 - .controllerBuilder() - // 会在控制类中加[@RestController]注解。 - .enableRestStyle() - // 开启驼峰转连字符 - .enableHyphenStyle().build(); - } - - private static Consumer getGlobalConfigConsumer() { - String outputDir = projectRootPath + "CodeGen"; - return globalConfigBuilder -> globalConfigBuilder.enableSwagger().outputDir(outputDir).author("codegen").commentDate("yyyy-MM-dd") - .dateType(DateType.TIME_PACK); - } - - private static Consumer getStrategyConfigConsumer() { - return strategyConfigBuilder -> strategyConfigBuilder.mapperBuilder().mapperAnnotation(Mapper.class).formatMapperFileName("%sMapper") - .formatXmlFileName("%sMapper").entityBuilder().formatFileName("%sTb"); - } - - private static Consumer getDataSourceConfigConsumer() { - return builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> { - int typeCode = metaInfo.getJdbcType().TYPE_CODE; - if (typeCode == Types.SMALLINT) { - return DbColumnType.INTEGER; - } - if (typeCode == Types.DATE) { - return DbColumnType.DATE; - } - if (typeCode == Types.TIME) { - return DbColumnType.DATE; - } - if (typeCode == Types.TIMESTAMP) { - return DbColumnType.DATE; - } - return typeRegistry.getColumnType(metaInfo); - }); - } - - /** - * 代码生成函数 - * - * @param moduleName 模块名称 - * @param tablePrefix 表前缀(可空) - * @param tableNames 表名称, 多个用逗号分隔 - */ - public void gen(String moduleName, String tablePrefix, List tableNames) { - this.parentModuleName = moduleName; - // 1.数据库配置 - DataSourceConfig.Builder dataSourceConfigBuilder = - new DataSourceConfig.Builder(this.databaseUrl, this.databaseUsername, this.databasePassword).driverClassName(this.driverClassName); - dataSourceConfigBuilder.dbQuery(DB_QUERY); - dataSourceConfigBuilder.keyWordsHandler(new MySqlKeyWordsHandler()); - // 1.1.快速生成器 - FastAutoGenerator fastAutoGenerator = FastAutoGenerator.create(dataSourceConfigBuilder); - // 2.全局配置 - // 自定义类型转换 - fastAutoGenerator.dataSourceConfig(getDataSourceConfigConsumer()); - // 覆盖已生成文件 - // 添加swagger注解 - // 设置注释的作者 - // 设置注释的日期格式 - // 使用java8新的时间类型 - fastAutoGenerator.globalConfig(getGlobalConfigConsumer()); - // 3.包配置 - // 设置父包名 - // 设置父包模块名 - // 设置MVC下各个模块的包名 - // 设置XML资源文件的目录 - fastAutoGenerator.packageConfig(getPackageConfigConsumer()); - // 4.模板配置 - // 使用Freemarker引擎模板, 默认的是Velocity引擎模板 - AbstractTemplateEngine templateEngine = new FreemarkerTemplateEngine(); - fastAutoGenerator.templateEngine(templateEngine); - // 5.策略配置 - // 设置需要生成的表名 - // 设置过滤表前缀 - fastAutoGenerator.strategyConfig(getStrategyConfigConsumer(tableNames)); - if (tablePrefix != null) { - // 表前缀, 可多个 - fastAutoGenerator.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.addTablePrefix(tablePrefix)); - } - // 5.1.Entity策略配置 - // 生成实体时生成字段的注解, 包括@TableId注解等 - // 数据库表和字段映射到实体的命名策略, 为下划线转驼峰 - // 全局主键类型为None - // 实体名称格式化为XXXEntity - fastAutoGenerator.strategyConfig(getEntityConfigConsumer()); - // 5.2.Controller策略配置 - // 开启生成@RestController控制器 - fastAutoGenerator.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.controllerBuilder().enableRestStyle()); - // 如果不需要生成Controller, fastAutoGenerator.templateConfig(templateConfig -> templateConfig.controller(""))。5.3.Service策略配置:格式化service接口和实现类的文件名称, 去掉默认的ServiceName前面的I - fastAutoGenerator.strategyConfig( - strategyConfigBuilder -> strategyConfigBuilder.serviceBuilder().formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl")); - // 5.4.Mapper策略配置 - // 格式化 mapper文件名,格式化xml实现类文件名称 - fastAutoGenerator.strategyConfig(getStrategyConfigConsumer()); - // 6.生成代码 - fastAutoGenerator.execute(); - } - - private Consumer getPackageConfigConsumer() { - String mapperPath = projectRootPath + "CodeGen/resources/mapper"; - if (StrUtil.isBlank(this.parentModuleName)) { - throw new BadRequestException("模块名称必填"); - } - return packageConfigBuilder -> packageConfigBuilder.parent(this.parentPackageName).moduleName(this.parentModuleName).entity("dal.dataobject") - .mapper("dal.mysql").service("service").serviceImpl("service.impl").controller("controller") - .pathInfo(Collections.singletonMap(OutputFile.xml, mapperPath)); - } +/* + * 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.framework.mybatisplus.core; + +import cn.hutool.core.util.StrUtil; +import cn.odboy.base.KitBaseUserTimeTb; +import cn.odboy.framework.exception.BadRequestException; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.generator.FastAutoGenerator; +import com.baomidou.mybatisplus.generator.config.*; +import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery; +import com.baomidou.mybatisplus.generator.config.rules.DateType; +import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; +import com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine; +import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; +import com.baomidou.mybatisplus.generator.keywords.MySqlKeyWordsHandler; +import lombok.Data; +import org.apache.ibatis.annotations.Mapper; + +import java.sql.Types; +import java.util.Collections; +import java.util.List; +import java.util.function.Consumer; + +/** + * 代码生成器入口 + * + * @author odboy + * @date 2025-01-11 + */ +@Data +public class KitMpCmdGenUtil { + // 项目根路径。生成结果 C:\Users\Administrator\Documents\GitHub\cutejava\cutejava + private static final String projectRootPath = System.getProperty("user.dir") + "/"; + /** + * 数据库类型 MySQL + */ + private static final IDbQuery DB_QUERY = new MySqlQuery(); + /** + * 类型转换 + */ + private static final String TYPE_TINY_INT = "tinyint"; + private static final String TYPE_DATETIME = "datetime"; + private static final String TYPE_DATE = "date"; + private String databaseUrl; + private String databaseUsername; + private String databasePassword; + private String driverClassName; + private String parentPackageName = "cn.odboy"; + private String parentModuleName; + + private static Consumer getEntityConfigConsumer() { + return strategyConfigBuilder -> strategyConfigBuilder.entityBuilder().enableLombok() + // 如果不需要生成注解, 去掉.enableTableFieldAnnotation() + .enableTableFieldAnnotation().enableFileOverride().naming(NamingStrategy.underline_to_camel).columnNaming(NamingStrategy.underline_to_camel) + .idType(IdType.AUTO); + } + + private static Consumer getStrategyConfigConsumer(List tableNames) { + return strategyConfigBuilder -> strategyConfigBuilder.enableCapitalMode().enableSkipView().disableSqlFilter().addInclude(tableNames) + // 实体类生成策略 + .entityBuilder().superClass(KitBaseUserTimeTb.class).addIgnoreColumns("create_time", "update_time", "create_by", "update_by") + // 开启生成实体时生成字段注解。 + // 会在实体类的属性前,添加[@TableField("nickname")] + .enableTableFieldAnnotation().disableSerialVersionUID() + // 阶段2:Mapper策略配置 + .mapperBuilder() + // 开启 @Mapper 注解。 + // 会在mapper接口上添加注解[@Mapper] + // .enableMapperAnnotation() + // 启用 BaseResultMap 生成。 + // 会在mapper.xml文件生成[通用查询映射结果]配置。 + // .enableBaseResultMap() + // 启用 BaseColumnList。 + // 会在mapper.xml文件生成[通用查询结果列 ]配置 + // .enableBaseColumnList() + // 阶段4:Controller策略配置 + .controllerBuilder() + // 会在控制类中加[@RestController]注解。 + .enableRestStyle() + // 开启驼峰转连字符 + .enableHyphenStyle().build(); + } + + private static Consumer getGlobalConfigConsumer() { + String outputDir = projectRootPath + "CodeGen"; + return globalConfigBuilder -> globalConfigBuilder.enableSwagger().outputDir(outputDir).author("codegen").commentDate("yyyy-MM-dd") + .dateType(DateType.TIME_PACK); + } + + private static Consumer getStrategyConfigConsumer() { + return strategyConfigBuilder -> strategyConfigBuilder.mapperBuilder().mapperAnnotation(Mapper.class).formatMapperFileName("%sMapper") + .formatXmlFileName("%sMapper").entityBuilder().formatFileName("%sTb"); + } + + private static Consumer getDataSourceConfigConsumer() { + return builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> { + int typeCode = metaInfo.getJdbcType().TYPE_CODE; + if (typeCode == Types.SMALLINT) { + return DbColumnType.INTEGER; + } + if (typeCode == Types.DATE) { + return DbColumnType.DATE; + } + if (typeCode == Types.TIME) { + return DbColumnType.DATE; + } + if (typeCode == Types.TIMESTAMP) { + return DbColumnType.DATE; + } + return typeRegistry.getColumnType(metaInfo); + }); + } + + /** + * 代码生成函数 + * + * @param moduleName 模块名称 + * @param tablePrefix 表前缀(可空) + * @param tableNames 表名称, 多个用逗号分隔 + */ + public void gen(String moduleName, String tablePrefix, List tableNames) { + this.parentModuleName = moduleName; + // 1.数据库配置 + DataSourceConfig.Builder dataSourceConfigBuilder = + new DataSourceConfig.Builder(this.databaseUrl, this.databaseUsername, this.databasePassword).driverClassName(this.driverClassName); + dataSourceConfigBuilder.dbQuery(DB_QUERY); + dataSourceConfigBuilder.keyWordsHandler(new MySqlKeyWordsHandler()); + // 1.1.快速生成器 + FastAutoGenerator fastAutoGenerator = FastAutoGenerator.create(dataSourceConfigBuilder); + // 2.全局配置 + // 自定义类型转换 + fastAutoGenerator.dataSourceConfig(getDataSourceConfigConsumer()); + // 覆盖已生成文件 + // 添加swagger注解 + // 设置注释的作者 + // 设置注释的日期格式 + // 使用java8新的时间类型 + fastAutoGenerator.globalConfig(getGlobalConfigConsumer()); + // 3.包配置 + // 设置父包名 + // 设置父包模块名 + // 设置MVC下各个模块的包名 + // 设置XML资源文件的目录 + fastAutoGenerator.packageConfig(getPackageConfigConsumer()); + // 4.模板配置 + // 使用Freemarker引擎模板, 默认的是Velocity引擎模板 + AbstractTemplateEngine templateEngine = new FreemarkerTemplateEngine(); + fastAutoGenerator.templateEngine(templateEngine); + // 5.策略配置 + // 设置需要生成的表名 + // 设置过滤表前缀 + fastAutoGenerator.strategyConfig(getStrategyConfigConsumer(tableNames)); + if (tablePrefix != null) { + // 表前缀, 可多个 + fastAutoGenerator.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.addTablePrefix(tablePrefix)); + } + // 5.1.Entity策略配置 + // 生成实体时生成字段的注解, 包括@TableId注解等 + // 数据库表和字段映射到实体的命名策略, 为下划线转驼峰 + // 全局主键类型为None + // 实体名称格式化为XXXEntity + fastAutoGenerator.strategyConfig(getEntityConfigConsumer()); + // 5.2.Controller策略配置 + // 开启生成@RestController控制器 + fastAutoGenerator.strategyConfig(strategyConfigBuilder -> strategyConfigBuilder.controllerBuilder().enableRestStyle()); + // 如果不需要生成Controller, fastAutoGenerator.templateConfig(templateConfig -> templateConfig.controller(""))。5.3.Service策略配置:格式化service接口和实现类的文件名称, 去掉默认的ServiceName前面的I + fastAutoGenerator.strategyConfig( + strategyConfigBuilder -> strategyConfigBuilder.serviceBuilder().formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl")); + // 5.4.Mapper策略配置 + // 格式化 mapper文件名,格式化xml实现类文件名称 + fastAutoGenerator.strategyConfig(getStrategyConfigConsumer()); + // 6.生成代码 + fastAutoGenerator.execute(); + } + + private Consumer getPackageConfigConsumer() { + String mapperPath = projectRootPath + "CodeGen/resources/mapper"; + if (StrUtil.isBlank(this.parentModuleName)) { + throw new BadRequestException("模块名称必填"); + } + return packageConfigBuilder -> packageConfigBuilder.parent(this.parentPackageName).moduleName(this.parentModuleName).entity("dal.dataobject") + .mapper("dal.mysql").service("service").serviceImpl("service.impl").controller("controller") + .pathInfo(Collections.singletonMap(OutputFile.xml, mapperPath)); + } } \ No newline at end of file diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpQUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpQUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java index 3dce0ac2..daa304ba 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/CsMpQUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/KitMpQUtil.java @@ -19,9 +19,9 @@ package cn.odboy.framework.mybatisplus.core; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.mybatisplus.config.CsMpQuery; +import cn.odboy.framework.mybatisplus.config.KitMpQuery; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -39,7 +39,7 @@ import java.util.stream.Collectors; * 查询条件创建工具 */ @Slf4j -public class CsMpQUtil { +public class KitMpQUtil { public static QueryWrapper build(Q query) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (query == null) { @@ -51,7 +51,7 @@ public class CsMpQUtil { for (Field field : fields) { if (!field.canAccess(query)) { field.setAccessible(true); - CsMpQuery q = field.getAnnotation(CsMpQuery.class); + KitMpQuery q = field.getAnnotation(KitMpQuery.class); if (q != null) { String attributeName = getAttributeName(q, field); Object fieldVal = field.get(query); @@ -73,12 +73,12 @@ public class CsMpQUtil { return queryWrapper; } - private static String getAttributeName(CsMpQuery q, Field field) { + private static String getAttributeName(KitMpQuery q, Field field) { String attributeName = StrUtil.isBlank(q.propName()) ? field.getName() : q.propName(); return StrUtil.toUnderlineCase(attributeName); } - private static void handleWrapper(CsMpQuery q, QueryWrapper queryWrapper, String attributeName, Object fieldVal) { + private static void handleWrapper(KitMpQuery q, QueryWrapper queryWrapper, String attributeName, Object fieldVal) { switch (q.type()) { case EQUAL: queryWrapper.eq(attributeName, fieldVal); @@ -209,7 +209,7 @@ public class CsMpQUtil { @TableName("test_domain") private static class TestDomain { - @NotNull(groups = CsBaseUserTimeTb.Update.class) + @NotNull(groups = KitBaseUserTimeTb.Update.class) @TableId(value = "user_id", type = IdType.AUTO) private Long id; @TableField(value = "dept_id") diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpMapper.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java similarity index 86% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpMapper.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java index 11119b35..fed74bed 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpMapper.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpMapper.java @@ -1,186 +1,186 @@ -/* - * 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.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.CsPageResult; -import cn.odboy.util.CsPageUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.apache.ibatis.annotations.Param; -import org.springframework.data.domain.Pageable; - -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * 公共抽象Mapper接口类 - * - * @author odboy - * @date 2022-04-03 - */ -public interface CsMpMapper extends BaseMapper { - /** - * 批量插入 - * - * @param entityList List - * @return 影响的行数 - */ - int insertBatchSomeColumn(List entityList); - - /** - * 根据id全量更新 - * - * @param entity E - * @return 影响的行数 - */ - int alwaysUpdateSomeColumnById(@Param("et") E entity); - - /** - * 获取字典 - * - * @param wrapper LambdaQueryWrapper - * @param keyName 键对应的列名称 - * @param valueName 值对应的列名称 - * @return Map - */ - default Map getMapWithKv(LambdaQueryWrapper wrapper, String keyName, String valueName) { - Map result = new ConcurrentHashMap<>(1); - List list = this.selectList(wrapper); - if (CollUtil.isEmpty(list)) { - return new HashMap<>(3); - } - E tempObj = list.stream().findFirst().orElse(null); - if (tempObj == null) { - return new HashMap<>(3); - } - Field[] fields = ReflectUtil.getFields(tempObj.getClass()); - for (E e : list) { - Field keyField = null; - Field valueField = null; - for (Field field : fields) { - String fieldName = field.getName(); - if (fieldName.equals(keyName)) { - keyField = field; - } else if (fieldName.equals(valueName)) { - valueField = field; - break; - } - } - String fieldKey = String.valueOf(ReflectUtil.getFieldValue(e, keyField)); - Object fieldValue = ReflectUtil.getFieldValue(e, valueField); - if (fieldKey != null) { - result.put(fieldKey, fieldValue); - } - } - return result; - } - - /** - * 条件查询列表, 并返回期望的对象 - * - * @param wrapper LambdaQueryWrapper - * @param clazz 期望的对象类型 - * @return List - */ - default List queryFeatureClazzList(LambdaQueryWrapper wrapper, Class clazz) { - List list = this.selectList(wrapper); - if (CollUtil.isEmpty(list)) { - return new ArrayList<>(); - } - return BeanUtil.copyToList(list, clazz); - } - - /** - * 条件查询列表, 并返回期望的对象 - * - * @param wrapper LambdaQueryWrapper - * @param clazz 期望的对象类型 - * @return List - */ - default List queryFeatureClazzList(LambdaQueryChainWrapper wrapper, Class clazz) { - List list = wrapper.list(); - if (CollUtil.isEmpty(list)) { - return new ArrayList<>(); - } - return BeanUtil.copyToList(list, clazz); - } - - /** - * 条件查询分页列表, 并返回期望的对象 - * - * @param pageable 分页参数 - * @param wrapper LambdaQueryWrapper wrapper - * @param clazz 期望的对象类型 - * @return IPage - */ - default CsPageResult queryFeatureClazzPage(Pageable pageable, LambdaQueryWrapper wrapper, Class clazz) { - int pageNumber = pageable.getPageNumber(); - int pageSize = pageable.getPageSize(); - pageNumber = pageNumber <= 0 ? 1 : pageNumber; - pageSize = pageSize <= 0 ? 10 : pageSize; - IPage pageInfo = this.selectPage(new Page<>(pageNumber, pageSize), wrapper); - if (CollUtil.isEmpty(pageInfo.getRecords())) { - return new CsPageResult<>(new ArrayList<>(), pageInfo.getTotal()); - } - return new CsPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); - } - - /** - * 条件查询分页列表, 并返回期望的对象 - * - * @param pageable 分页参数 - * @param wrapper LambdaQueryWrapper wrapper - * @param clazz 期望的对象类型 - * @return IPage - */ - default CsPageResult queryFeatureClazzPage(Pageable pageable, LambdaQueryChainWrapper wrapper, Class clazz) { - int pageNumber = pageable.getPageNumber(); - int pageSize = pageable.getPageSize(); - pageNumber = pageNumber <= 0 ? 1 : pageNumber; - pageSize = pageSize <= 0 ? 10 : pageSize; - IPage pageInfo = wrapper.page(new Page<>(pageNumber, pageSize)); - if (CollUtil.isEmpty(pageInfo.getRecords())) { - return CsPageUtil.emptyListData(); - } - return new CsPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); - } - - /** - * 获取目标类 - * - * @param wrapper LambdaQueryChainWrapper wrapper - * @param clazz 期望的对象类型 - * @return T - */ - default T getFeatureClazz(LambdaQueryChainWrapper wrapper, Class clazz) { - E e = this.selectOne(wrapper); - if (e == null) { - return null; - } - return BeanUtil.copyProperties(e, clazz); - } -} +/* + * 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.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.KitPageUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.Pageable; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 公共抽象Mapper接口类 + * + * @author odboy + * @date 2022-04-03 + */ +public interface KitMpMapper extends BaseMapper { + /** + * 批量插入 + * + * @param entityList List + * @return 影响的行数 + */ + int insertBatchSomeColumn(List entityList); + + /** + * 根据id全量更新 + * + * @param entity E + * @return 影响的行数 + */ + int alwaysUpdateSomeColumnById(@Param("et") E entity); + + /** + * 获取字典 + * + * @param wrapper LambdaQueryWrapper + * @param keyName 键对应的列名称 + * @param valueName 值对应的列名称 + * @return Map + */ + default Map getMapWithKv(LambdaQueryWrapper wrapper, String keyName, String valueName) { + Map result = new ConcurrentHashMap<>(1); + List list = this.selectList(wrapper); + if (CollUtil.isEmpty(list)) { + return new HashMap<>(3); + } + E tempObj = list.stream().findFirst().orElse(null); + if (tempObj == null) { + return new HashMap<>(3); + } + Field[] fields = ReflectUtil.getFields(tempObj.getClass()); + for (E e : list) { + Field keyField = null; + Field valueField = null; + for (Field field : fields) { + String fieldName = field.getName(); + if (fieldName.equals(keyName)) { + keyField = field; + } else if (fieldName.equals(valueName)) { + valueField = field; + break; + } + } + String fieldKey = String.valueOf(ReflectUtil.getFieldValue(e, keyField)); + Object fieldValue = ReflectUtil.getFieldValue(e, valueField); + if (fieldKey != null) { + result.put(fieldKey, fieldValue); + } + } + return result; + } + + /** + * 条件查询列表, 并返回期望的对象 + * + * @param wrapper LambdaQueryWrapper + * @param clazz 期望的对象类型 + * @return List + */ + default List queryFeatureClazzList(LambdaQueryWrapper wrapper, Class clazz) { + List list = this.selectList(wrapper); + if (CollUtil.isEmpty(list)) { + return new ArrayList<>(); + } + return BeanUtil.copyToList(list, clazz); + } + + /** + * 条件查询列表, 并返回期望的对象 + * + * @param wrapper LambdaQueryWrapper + * @param clazz 期望的对象类型 + * @return List + */ + default List queryFeatureClazzList(LambdaQueryChainWrapper wrapper, Class clazz) { + List list = wrapper.list(); + if (CollUtil.isEmpty(list)) { + return new ArrayList<>(); + } + return BeanUtil.copyToList(list, clazz); + } + + /** + * 条件查询分页列表, 并返回期望的对象 + * + * @param pageable 分页参数 + * @param wrapper LambdaQueryWrapper wrapper + * @param clazz 期望的对象类型 + * @return IPage + */ + default KitPageResult queryFeatureClazzPage(Pageable pageable, LambdaQueryWrapper wrapper, Class clazz) { + int pageNumber = pageable.getPageNumber(); + int pageSize = pageable.getPageSize(); + pageNumber = pageNumber <= 0 ? 1 : pageNumber; + pageSize = pageSize <= 0 ? 10 : pageSize; + IPage pageInfo = this.selectPage(new Page<>(pageNumber, pageSize), wrapper); + if (CollUtil.isEmpty(pageInfo.getRecords())) { + return new KitPageResult<>(new ArrayList<>(), pageInfo.getTotal()); + } + return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); + } + + /** + * 条件查询分页列表, 并返回期望的对象 + * + * @param pageable 分页参数 + * @param wrapper LambdaQueryWrapper wrapper + * @param clazz 期望的对象类型 + * @return IPage + */ + default KitPageResult queryFeatureClazzPage(Pageable pageable, LambdaQueryChainWrapper wrapper, Class clazz) { + int pageNumber = pageable.getPageNumber(); + int pageSize = pageable.getPageSize(); + pageNumber = pageNumber <= 0 ? 1 : pageNumber; + pageSize = pageSize <= 0 ? 10 : pageSize; + IPage pageInfo = wrapper.page(new Page<>(pageNumber, pageSize)); + if (CollUtil.isEmpty(pageInfo.getRecords())) { + return KitPageUtil.emptyListData(); + } + return new KitPageResult<>(BeanUtil.copyToList(pageInfo.getRecords(), clazz), pageInfo.getTotal()); + } + + /** + * 获取目标类 + * + * @param wrapper LambdaQueryChainWrapper wrapper + * @param clazz 期望的对象类型 + * @return T + */ + default T getFeatureClazz(LambdaQueryChainWrapper wrapper, Class clazz) { + E e = this.selectOne(wrapper); + if (e == null) { + return null; + } + return BeanUtil.copyProperties(e, clazz); + } +} diff --git a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpService.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java similarity index 80% rename from cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpService.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java index bdbded42..d75208ef 100644 --- a/cutejava-springboot3/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpService.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpService.java @@ -16,7 +16,7 @@ package cn.odboy.framework.mybatisplus.core.interfaces; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; @@ -32,7 +32,7 @@ import java.util.List; * @author odboy * @date 2022-04-03 */ -public interface CsMpService extends IService { +public interface KitMpService extends IService { int saveFeatureClazz(G resources); int saveFeatureClazzList(List resources); @@ -57,13 +57,13 @@ public interface CsMpService extends IService { List queryFeatureClazzListByArgs(LambdaQueryWrapper wrapper, Class targetClazz); - CsPageResult queryClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable); + KitPageResult queryClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable); - CsPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz); + KitPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz); - CsPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz); + KitPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz); - CsPageResult queryClazzPageByArgs(Q criteria, IPage pageable); + KitPageResult queryClazzPageByArgs(Q criteria, IPage pageable); int modifyClazzByArgs(LambdaQueryWrapper wrapper, T entity); diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpServiceImpl.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java similarity index 82% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpServiceImpl.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java index 2ed32bc7..75a881f2 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/CsMpServiceImpl.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/mybatisplus/core/interfaces/KitMpServiceImpl.java @@ -1,256 +1,256 @@ -/* - * 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.framework.mybatisplus.core.interfaces; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; -import cn.odboy.base.CsPageResult; -import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.mybatisplus.core.CsMpQUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.enums.SqlMethod; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.support.SFunction; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.apache.ibatis.binding.MapperMethod; - -import java.io.Serializable; -import java.util.Collection; -import java.util.List; - -/** - * 公共抽象Mapper接口类 - * - * @author odboy - * @date 2022-04-03 - */ -public class CsMpServiceImpl, T> extends ServiceImpl { - /** - * 快速插入 - * - * @param resources / - */ - public int saveFeatureClazz(G resources) { - return getBaseMapper().insert(BeanUtil.copyProperties(resources, this.getEntityClass())); - } - - /** - * 快速批量插入 - * - * @param resources / - */ - public int saveFeatureClazzList(List resources) { - return getBaseMapper().insertBatchSomeColumn(BeanUtil.copyToList(resources, this.getEntityClass())); - } - - /** - * 快速更新 - * - * @param resources / - */ - public int modifyFeatureClazzById(G resources) { - return getBaseMapper().updateById(BeanUtil.copyProperties(resources, this.getEntityClass())); - } - - /** - * 快速批量更新 - * - * @param resources / - * @param batchSize 每批数量 - */ - public boolean modifyFeatureClazzListById(Collection resources, int batchSize) { - String sqlStatement = this.getSqlStatement(SqlMethod.UPDATE_BY_ID); - return this.executeBatch(resources, batchSize, (sqlSession, entity) -> { - MapperMethod.ParamMap param = new MapperMethod.ParamMap<>(); - param.put("et", BeanUtil.copyProperties(entity, this.getEntityClass())); - sqlSession.update(sqlStatement, param); - }); - } - - /** - * 通过id查询 - * - * @param id / - * @param targetClazz 目标类型 - */ - public G queryFeatureClazzById(Serializable id, Class targetClazz) { - T entity = this.getById(id); - return entity == null ? null : BeanUtil.copyProperties(entity, targetClazz); - } - - /** - * 查一条数据 - * - * @param wrapper 制造条件 - */ - public T queryClazzByArgs(LambdaQueryWrapper wrapper, SFunction orderColumn) { - if (orderColumn == null) { - throw new BadRequestException("参数orderColumn(排序的列)必填"); - } - if (wrapper == null) { - wrapper = new LambdaQueryWrapper<>(); - } - wrapper.last("limit 1"); - wrapper.orderByDesc(orderColumn); - List ts = baseMapper.selectList(wrapper); - if (ts.isEmpty()) { - return null; - } - return ts.stream().findFirst().get(); - } - - public G queryFeatureClazzByArgs(LambdaQueryWrapper wrapper, SFunction orderColumn, Class clazz) { - if (orderColumn == null) { - throw new BadRequestException("参数orderColumn(排序的列)必填"); - } - if (wrapper == null) { - wrapper = new LambdaQueryWrapper<>(); - } - wrapper.last("limit 1"); - wrapper.orderByDesc(orderColumn); - List ts = baseMapper.selectList(wrapper); - if (ts.isEmpty()) { - return null; - } - return BeanUtil.copyProperties(ts.stream().findFirst().get(), clazz); - } - - /** - * 通过id集合查询 - * - * @param ids / - * @param targetClazz 目标类型 - */ - public List queryFeatureClazzListByIds(List ids, Class targetClazz) { - List entitys = this.listByIds(ids); - return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList() : BeanUtil.copyToList(entitys, targetClazz); - } - - /** - * 查有关的数据 - * - * @param criteria 动态条件 - */ - public List queryClazzListByArgs(Q criteria) { - QueryWrapper predicate = CsMpQUtil.build(criteria); - return baseMapper.selectList(predicate); - } - - /** - * 查有关的数据 - * - * @param wrapper 制造条件 - */ - public List queryClazzListByArgs(LambdaQueryWrapper wrapper) { - if (wrapper == null) { - wrapper = new LambdaQueryWrapper<>(); - } - return baseMapper.selectList(wrapper); - } - - /** - * 查有关的数据并转成目标类型的数据 - * - * @param criteria 动态条件 - * @param targetClazz 目标类型 - */ - public List queryFeatureClazzListByArgs(Q criteria, Class targetClazz) { - QueryWrapper predicate = CsMpQUtil.build(criteria); - List data = baseMapper.selectList(predicate); - return BeanUtil.copyToList(data, targetClazz); - } - - /** - * 查有关的数据并转换为目标类型 - * - * @param wrapper 制造条件 - * @param targetClazz 目标类型 - */ - public List queryFeatureClazzListByArgs(LambdaQueryWrapper wrapper, Class targetClazz) { - if (wrapper == null) { - wrapper = new LambdaQueryWrapper<>(); - } - return BeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz); - } - - /** - * 查有关的分页数据 - * - * @param wrapper 制造条件 - * @param pageable 分页参数 - */ - public CsPageResult queryClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable) { - if (wrapper == null) { - wrapper = new LambdaQueryWrapper<>(); - } - IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new CsPageResult<>(originPageData.getRecords(), originPageData.getTotal()); - } - - /** - * 查有关的分页数据 - * - * @param wrapper 制造条件 - * @param pageable 分页参数 - * @param targetClazz 目标类型 - */ - public CsPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz) { - if (wrapper == null) { - wrapper = new LambdaQueryWrapper<>(); - } - IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new CsPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); - } - - public CsPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz) { - QueryWrapper wrapper = CsMpQUtil.build(criteria); - IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new CsPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); - } - - public CsPageResult queryClazzPageByArgs(Q criteria, IPage pageable) { - QueryWrapper wrapper = CsMpQUtil.build(criteria); - IPage originPageData = baseMapper.selectPage(pageable, wrapper); - return new CsPageResult<>(originPageData.getRecords(), originPageData.getTotal()); - } - - /** - * 条件更新 - * - * @param wrapper 制造条件 - * @param entity 更新内容 - */ - public int modifyClazzByArgs(LambdaQueryWrapper wrapper, T entity) { - if (wrapper == null) { - throw new BadRequestException("参数wrapper必填"); - } - return baseMapper.update(entity, wrapper); - } - - /** - * 条件删除 - * - * @param wrapper 制造条件 - */ - public int removeClazzByArgs(LambdaQueryWrapper wrapper) { - if (wrapper == null) { - throw new BadRequestException("参数wrapper必填"); - } - return baseMapper.delete(wrapper); - } -} +/* + * 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.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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.enums.SqlMethod; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.ibatis.binding.MapperMethod; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; + +/** + * 公共抽象Mapper接口类 + * + * @author odboy + * @date 2022-04-03 + */ +public class KitMpServiceImpl, T> extends ServiceImpl { + /** + * 快速插入 + * + * @param resources / + */ + public int saveFeatureClazz(G resources) { + return getBaseMapper().insert(BeanUtil.copyProperties(resources, this.getEntityClass())); + } + + /** + * 快速批量插入 + * + * @param resources / + */ + public int saveFeatureClazzList(List resources) { + return getBaseMapper().insertBatchSomeColumn(BeanUtil.copyToList(resources, this.getEntityClass())); + } + + /** + * 快速更新 + * + * @param resources / + */ + public int modifyFeatureClazzById(G resources) { + return getBaseMapper().updateById(BeanUtil.copyProperties(resources, this.getEntityClass())); + } + + /** + * 快速批量更新 + * + * @param resources / + * @param batchSize 每批数量 + */ + public boolean modifyFeatureClazzListById(Collection resources, int batchSize) { + String sqlStatement = this.getSqlStatement(SqlMethod.UPDATE_BY_ID); + return this.executeBatch(resources, batchSize, (sqlSession, entity) -> { + MapperMethod.ParamMap param = new MapperMethod.ParamMap<>(); + param.put("et", BeanUtil.copyProperties(entity, this.getEntityClass())); + sqlSession.update(sqlStatement, param); + }); + } + + /** + * 通过id查询 + * + * @param id / + * @param targetClazz 目标类型 + */ + public G queryFeatureClazzById(Serializable id, Class targetClazz) { + T entity = this.getById(id); + return entity == null ? null : BeanUtil.copyProperties(entity, targetClazz); + } + + /** + * 查一条数据 + * + * @param wrapper 制造条件 + */ + public T queryClazzByArgs(LambdaQueryWrapper wrapper, SFunction orderColumn) { + if (orderColumn == null) { + throw new BadRequestException("参数orderColumn(排序的列)必填"); + } + if (wrapper == null) { + wrapper = new LambdaQueryWrapper<>(); + } + wrapper.last("limit 1"); + wrapper.orderByDesc(orderColumn); + List ts = baseMapper.selectList(wrapper); + if (ts.isEmpty()) { + return null; + } + return ts.stream().findFirst().get(); + } + + public G queryFeatureClazzByArgs(LambdaQueryWrapper wrapper, SFunction orderColumn, Class clazz) { + if (orderColumn == null) { + throw new BadRequestException("参数orderColumn(排序的列)必填"); + } + if (wrapper == null) { + wrapper = new LambdaQueryWrapper<>(); + } + wrapper.last("limit 1"); + wrapper.orderByDesc(orderColumn); + List ts = baseMapper.selectList(wrapper); + if (ts.isEmpty()) { + return null; + } + return BeanUtil.copyProperties(ts.stream().findFirst().get(), clazz); + } + + /** + * 通过id集合查询 + * + * @param ids / + * @param targetClazz 目标类型 + */ + public List queryFeatureClazzListByIds(List ids, Class targetClazz) { + List entitys = this.listByIds(ids); + return entitys == null || entitys.isEmpty() ? CollUtil.newArrayList() : BeanUtil.copyToList(entitys, targetClazz); + } + + /** + * 查有关的数据 + * + * @param criteria 动态条件 + */ + public List queryClazzListByArgs(Q criteria) { + QueryWrapper predicate = KitMpQUtil.build(criteria); + return baseMapper.selectList(predicate); + } + + /** + * 查有关的数据 + * + * @param wrapper 制造条件 + */ + public List queryClazzListByArgs(LambdaQueryWrapper wrapper) { + if (wrapper == null) { + wrapper = new LambdaQueryWrapper<>(); + } + return baseMapper.selectList(wrapper); + } + + /** + * 查有关的数据并转成目标类型的数据 + * + * @param criteria 动态条件 + * @param targetClazz 目标类型 + */ + public List queryFeatureClazzListByArgs(Q criteria, Class targetClazz) { + QueryWrapper predicate = KitMpQUtil.build(criteria); + List data = baseMapper.selectList(predicate); + return BeanUtil.copyToList(data, targetClazz); + } + + /** + * 查有关的数据并转换为目标类型 + * + * @param wrapper 制造条件 + * @param targetClazz 目标类型 + */ + public List queryFeatureClazzListByArgs(LambdaQueryWrapper wrapper, Class targetClazz) { + if (wrapper == null) { + wrapper = new LambdaQueryWrapper<>(); + } + return BeanUtil.copyToList(baseMapper.selectList(wrapper), targetClazz); + } + + /** + * 查有关的分页数据 + * + * @param wrapper 制造条件 + * @param pageable 分页参数 + */ + public KitPageResult queryClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable) { + if (wrapper == null) { + wrapper = new LambdaQueryWrapper<>(); + } + IPage originPageData = baseMapper.selectPage(pageable, wrapper); + return new KitPageResult<>(originPageData.getRecords(), originPageData.getTotal()); + } + + /** + * 查有关的分页数据 + * + * @param wrapper 制造条件 + * @param pageable 分页参数 + * @param targetClazz 目标类型 + */ + public KitPageResult queryFeatureClazzPageByArgs(LambdaQueryWrapper wrapper, IPage pageable, Class targetClazz) { + if (wrapper == null) { + wrapper = new LambdaQueryWrapper<>(); + } + IPage originPageData = baseMapper.selectPage(pageable, wrapper); + return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); + } + + public KitPageResult queryFeatureClazzPageByArgs(Q criteria, IPage pageable, Class targetClazz) { + QueryWrapper wrapper = KitMpQUtil.build(criteria); + IPage originPageData = baseMapper.selectPage(pageable, wrapper); + return new KitPageResult<>(BeanUtil.copyToList(originPageData.getRecords(), targetClazz), originPageData.getTotal()); + } + + public KitPageResult queryClazzPageByArgs(Q criteria, IPage pageable) { + QueryWrapper wrapper = KitMpQUtil.build(criteria); + IPage originPageData = baseMapper.selectPage(pageable, wrapper); + return new KitPageResult<>(originPageData.getRecords(), originPageData.getTotal()); + } + + /** + * 条件更新 + * + * @param wrapper 制造条件 + * @param entity 更新内容 + */ + public int modifyClazzByArgs(LambdaQueryWrapper wrapper, T entity) { + if (wrapper == null) { + throw new BadRequestException("参数wrapper必填"); + } + return baseMapper.update(entity, wrapper); + } + + /** + * 条件删除 + * + * @param wrapper 制造条件 + */ + public int removeClazzByArgs(LambdaQueryWrapper wrapper) { + if (wrapper == null) { + throw new BadRequestException("参数wrapper必填"); + } + return baseMapper.delete(wrapper); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/CaptchaModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/CaptchaModel.java index 3e925a11..e73289d3 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/CaptchaModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/CaptchaModel.java @@ -16,13 +16,13 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class CaptchaModel extends CsObject { +public class CaptchaModel extends KitObject { /** * 验证码有效时间, 单位: 秒 */ diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ContentRsaEncodeSettingModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ContentRsaEncodeSettingModel.java index d6553c0c..e8ebaca4 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ContentRsaEncodeSettingModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ContentRsaEncodeSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -25,6 +25,6 @@ import lombok.Setter; */ @Getter @Setter -public class ContentRsaEncodeSettingModel extends CsObject { +public class ContentRsaEncodeSettingModel extends KitObject { private String privateKey; } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/JwtAuthSettingModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/JwtAuthSettingModel.java index ab9c186f..af2e001f 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/JwtAuthSettingModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/JwtAuthSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -25,7 +25,7 @@ import lombok.Setter; */ @Getter @Setter -public class JwtAuthSettingModel extends CsObject { +public class JwtAuthSettingModel extends KitObject { /** * 必须使用最少88位的Base64对该令牌进行编码 */ diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/OSSConfigModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/OSSConfigModel.java index ccd36443..6826e02e 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/OSSConfigModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/OSSConfigModel.java @@ -16,13 +16,13 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class OSSConfigModel extends CsObject { +public class OSSConfigModel extends KitObject { /** * 服务地址 */ diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/SwaggerApiDocSettingModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/SwaggerApiDocSettingModel.java index 968d2671..35086c05 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/SwaggerApiDocSettingModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/SwaggerApiDocSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -26,6 +26,6 @@ import lombok.Setter; */ @Getter @Setter -public class SwaggerApiDocSettingModel extends CsObject { +public class SwaggerApiDocSettingModel extends KitObject { private Boolean enabled; } diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ThreadPoolSettingModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ThreadPoolSettingModel.java index a6fe2cfe..b281df1f 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ThreadPoolSettingModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/ThreadPoolSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -28,7 +28,7 @@ import lombok.Setter; */ @Getter @Setter -public class ThreadPoolSettingModel extends CsObject { +public class ThreadPoolSettingModel extends KitObject { /** * 核心线程池大小 */ diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java index 1eab3be3..22757c8e 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java @@ -17,7 +17,7 @@ package cn.odboy.framework.properties.model; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import cn.odboy.constant.CaptchaCodeEnum; import cn.odboy.framework.exception.BadRequestException; import com.wf.captcha.*; @@ -34,7 +34,7 @@ import java.awt.*; */ @Getter @Setter -public class UserLoginCaptchaSettingModel extends CsObject { +public class UserLoginCaptchaSettingModel extends KitObject { private CaptchaCodeEnum codeType; /** diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginSettingModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginSettingModel.java index 4c435c2a..9fe412d4 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginSettingModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginSettingModel.java @@ -16,7 +16,7 @@ package cn.odboy.framework.properties.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -27,7 +27,7 @@ import lombok.Setter; */ @Getter @Setter -public class UserLoginSettingModel extends CsObject { +public class UserLoginSettingModel extends KitObject { /** * 账号单用户 登录 */ diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java index fccee115..42d9028e 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/quartz/core/QuartzRunnable.java @@ -16,7 +16,7 @@ package cn.odboy.framework.quartz.core; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.util.ReflectionUtils; @@ -34,7 +34,7 @@ public class QuartzRunnable implements Callable { private final String params; public QuartzRunnable(String beanName, String methodName, String params) throws NoSuchMethodException, SecurityException { - this.target = CsSpringBeanHolder.getBean(beanName); + this.target = KitSpringBeanHolder.getBean(beanName); this.params = params; if (StringUtils.isNotBlank(params)) { this.method = target.getClass().getDeclaredMethod(methodName, String.class); diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/redis/CsRedisHelper.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/redis/KitRedisHelper.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/redis/CsRedisHelper.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/redis/KitRedisHelper.java index c97a448d..442dc4ff 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/redis/CsRedisHelper.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/redis/KitRedisHelper.java @@ -1,842 +1,842 @@ -/* - * 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.framework.redis; - -import cn.hutool.core.util.ObjUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson2.JSON; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.data.redis.connection.RedisConnection; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.core.*; -import org.springframework.data.redis.serializer.StringRedisSerializer; -import org.springframework.stereotype.Component; - -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -@Component -@SuppressWarnings({"unchecked", "all"}) -public class CsRedisHelper { - private static final Logger log = LoggerFactory.getLogger(CsRedisHelper.class); - - private RedisTemplate redisTemplate; - - public CsRedisHelper(RedisTemplate redisTemplate) { - this.redisTemplate = redisTemplate; - this.redisTemplate.setKeySerializer(new StringRedisSerializer()); - this.redisTemplate.setHashKeySerializer(new StringRedisSerializer()); - } - - /** - * 指定缓存失效时间 - * - * @param key 键 - * @param time 时间(秒) 注意:这里将会替换原有的时间 - */ - public boolean expire(String key, long time) { - try { - if (time > 0) { - redisTemplate.expire(key, time, TimeUnit.SECONDS); - } - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - return true; - } - - /** - * 指定缓存失效时间 - * - * @param key 键 - * @param time 时间(秒) 注意:这里将会替换原有的时间 - * @param timeUnit 单位 - */ - public boolean expire(String key, long time, TimeUnit timeUnit) { - try { - if (time > 0) { - redisTemplate.expire(key, time, timeUnit); - } - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - return true; - } - - /** - * 根据 key 获取过期时间 - * - * @param key 键 不能为null - * @return 时间(秒) 返回0代表为永久有效 - */ - public long getExpire(Object key) { - return redisTemplate.getExpire(key, TimeUnit.SECONDS); - } - - /** - * 查找匹配key - * - * @param pattern key - * @return / - */ - public List scan(String pattern) { - ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); - RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); - RedisConnection rc = Objects.requireNonNull(factory).getConnection(); - Cursor cursor = rc.scan(options); - List result = new ArrayList<>(); - while (cursor.hasNext()) { - result.add(new String(cursor.next())); - } - try { - RedisConnectionUtils.releaseConnection(rc, factory); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - return result; - } - - /** - * 分页查询 key - * - * @param patternKey key - * @param page 页码 - * @param size 每页数目 - * @return / - */ - public List findKeysForPage(String patternKey, int page, int size) { - ScanOptions options = ScanOptions.scanOptions().match(patternKey).build(); - RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); - RedisConnection rc = Objects.requireNonNull(factory).getConnection(); - Cursor cursor = rc.scan(options); - List result = new ArrayList<>(size); - int tmpIndex = 0; - int fromIndex = page * size; - int toIndex = page * size + size; - while (cursor.hasNext()) { - if (tmpIndex >= fromIndex && tmpIndex < toIndex) { - result.add(new String(cursor.next())); - tmpIndex++; - continue; - } - // 获取到满足条件的数据后,就可以退出了 - if (tmpIndex >= toIndex) { - break; - } - tmpIndex++; - cursor.next(); - } - try { - RedisConnectionUtils.releaseConnection(rc, factory); - } catch (Exception e) { - log.error(e.getMessage(), e); - } - return result; - } - - /** - * 判断key是否存在 - * - * @param key 键 - * @return true 存在 false不存在 - */ - public boolean hasKey(String key) { - try { - return redisTemplate.hasKey(key); - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 删除缓存 - * - * @param key 可以传一个值 或多个 - */ - public void del(String... keys) { - if (keys != null && keys.length > 0) { - if (keys.length == 1) { - boolean result = redisTemplate.delete(keys[0]); - log.debug("--------------------------------------------"); - log.debug(new StringBuilder("删除缓存:").append(keys[0]).append(", 结果:").append(result).toString()); - log.debug("--------------------------------------------"); - } else { - Set keySet = new HashSet<>(); - for (String key : keys) { - if (redisTemplate.hasKey(key)) { - keySet.add(key); - } - } - long count = redisTemplate.delete(keySet); - log.debug("--------------------------------------------"); - log.debug("成功删除缓存:" + keySet.toString()); - log.debug("缓存删除数量:" + count + "个"); - log.debug("--------------------------------------------"); - } - } - } - - /** - * 批量模糊删除key - * - * @param pattern - */ - public void scanDel(String pattern) { - ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); - try (Cursor cursor = redisTemplate.executeWithStickyConnection( - (RedisCallback>)connection -> (Cursor)new ConvertingCursor<>(connection.scan(options), - redisTemplate.getKeySerializer()::deserialize))) { - while (cursor.hasNext()) { - redisTemplate.delete(cursor.next()); - } - } - } - - // ============================String============================= - - /** - * 普通缓存获取 - * - * @param key 键 - * @return 值 - */ - public Object get(String key) { - return key == null ? null : redisTemplate.opsForValue().get(key); - } - - /** - * 普通缓存获取 - * - * @param key 键 - * @return 值 - */ - public T get(String key, Class clazz) { - Object value = key == null ? null : redisTemplate.opsForValue().get(key); - if (value == null) { - return null; - } - // 如果 value 不是目标类型, 则尝试将其反序列化为 clazz 类型 by - if (!clazz.isInstance(value)) { - return JSON.parseObject(value.toString(), clazz); - } else if (clazz.isInstance(value)) { - return clazz.cast(value); - } else { - return null; - } - } - - /** - * 普通缓存获取 - * - * @param key 键 - * @param clazz 列表中元素的类型 - * @return 值 - */ - public List getList(String key, Class clazz) { - Object value = key == null ? null : redisTemplate.opsForValue().get(key); - if (value == null) { - return null; - } - if (value instanceof List) { - List list = (List)value; - // 检查每个元素是否为指定类型 - if (list.stream().allMatch(clazz::isInstance)) { - return list.stream().map(clazz::cast).collect(Collectors.toList()); - } - } - return null; - } - - /** - * 普通缓存获取 - * - * @param key 键 - * @return 值 - */ - public String getStr(String key) { - if (StrUtil.isBlank(key)) { - return null; - } - Object value = redisTemplate.opsForValue().get(key); - if (value == null) { - return null; - } else { - return String.valueOf(value); - } - } - - /** - * 批量获取 - * - * @param keys - * @return - */ - public List multiGet(List keys) { - List list = redisTemplate.opsForValue().multiGet(Sets.newHashSet(keys)); - List resultList = Lists.newArrayList(); - Optional.ofNullable(list).ifPresent(e -> list.forEach(ele -> Optional.ofNullable(ele).ifPresent(resultList::add))); - return resultList; - } - - /** - * 普通缓存放入 - * - * @param key 键 - * @param value 值 - * @return true成功 false失败 - */ - public boolean set(String key, Object value) { - int attempt = 0; - while (attempt < 3) { - try { - redisTemplate.opsForValue().set(key, value); - return true; - } catch (Exception e) { - attempt++; - log.error("Attempt {} failed: {}", attempt, e.getMessage(), e); - } - } - return false; - } - - /** - * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期, 注意:这里将会替换原有的时间 - * @return true成功 false 失败 - */ - public boolean set(String key, Object value, long time) { - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); - } else { - set(key, value); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间,注意:这里将会替换原有的时间 - * @param timeUnit 类型 - * @return true成功 false 失败 - */ - public boolean set(String key, Object value, long time, TimeUnit timeUnit) { - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, timeUnit); - } else { - set(key, value); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - // ================================Map================================= - - /** - * HashGet - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return 值 - */ - public Object hget(String key, String item) { - return redisTemplate.opsForHash().get(key, item); - } - - /** - * 获取hashKey对应的所有键值 - * - * @param key 键 - * @return 对应的多个键值 - */ - public Map hmget(String key) { - return redisTemplate.opsForHash().entries(key); - } - - /** - * HashSet - * - * @param key 键 - * @param map 对应多个键值 - * @return true 成功 false 失败 - */ - public boolean hmset(String key, Map map) { - try { - redisTemplate.opsForHash().putAll(key, map); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * HashSet - * - * @param key 键 - * @param map 对应多个键值 - * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 - * @return true成功 false失败 - */ - public boolean hmset(String key, Map map, long time) { - try { - redisTemplate.opsForHash().putAll(key, map); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value) { - try { - redisTemplate.opsForHash().put(key, item, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 - * @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value, long time) { - try { - redisTemplate.opsForHash().put(key, item, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 删除hash表中的值 - * - * @param key 键 不能为null - * @param item 项 可以使多个 不能为null - */ - public void hdel(String key, Object... item) { - redisTemplate.opsForHash().delete(key, item); - } - - /** - * 判断hash表中是否有该项的值 - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return true 存在 false不存在 - */ - public boolean hHasKey(String key, String item) { - return redisTemplate.opsForHash().hasKey(key, item); - } - - /** - * hash递增 如果不存在,就会创建一个 并把新增后的值返回 - * - * @param key 键 - * @param item 项 - * @param by 要增加几(大于0) - * @return - */ - public double hincr(String key, String item, double by) { - return redisTemplate.opsForHash().increment(key, item, by); - } - - /** - * hash递减 - * - * @param key 键 - * @param item 项 - * @param by 要减少记(小于0) - * @return - */ - public double hdecr(String key, String item, double by) { - return redisTemplate.opsForHash().increment(key, item, -by); - } - - // ============================set============================= - - /** - * 根据key获取Set中的所有值 - * - * @param key 键 - * @return - */ - public Set sGet(String key) { - try { - return redisTemplate.opsForSet().members(key); - } catch (Exception e) { - log.error(e.getMessage(), e); - return null; - } - } - - /** - * 根据value从一个set中查询,是否存在 - * - * @param key 键 - * @param value 值 - * @return true 存在 false不存在 - */ - public boolean sHasKey(String key, Object value) { - try { - return redisTemplate.opsForSet().isMember(key, value); - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 将数据放入set缓存 - * - * @param key 键 - * @param values 值 可以是多个 - * @return 成功个数 - */ - public long sSet(String key, Object... values) { - try { - return redisTemplate.opsForSet().add(key, values); - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * 将set数据放入缓存 - * - * @param key 键 - * @param time 时间(秒) 注意:这里将会替换原有的时间 - * @param values 值 可以是多个 - * @return 成功个数 - */ - public long sSetAndTime(String key, long time, Object... values) { - try { - Long count = redisTemplate.opsForSet().add(key, values); - if (time > 0) { - expire(key, time); - } - return count; - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * 获取set缓存的长度 - * - * @param key 键 - * @return - */ - public long sGetSetSize(String key) { - try { - return redisTemplate.opsForSet().size(key); - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * 移除值为value的 - * - * @param key 键 - * @param values 值 可以是多个 - * @return 移除的个数 - */ - public long setRemove(String key, Object... values) { - try { - Long count = redisTemplate.opsForSet().remove(key, values); - return count; - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - // ===============================list================================= - - /** - * 获取list缓存的内容 - * - * @param key 键 - * @param start 开始 - * @param end 结束 0 到 -1代表所有值 - * @return - */ - public List lGet(String key, long start, long end) { - try { - return redisTemplate.opsForList().range(key, start, end); - } catch (Exception e) { - log.error(e.getMessage(), e); - return null; - } - } - - /** - * 获取list缓存的长度 - * - * @param key 键 - * @return - */ - public long lGetListSize(String key) { - try { - return redisTemplate.opsForList().size(key); - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * 通过索引 获取list中的值 - * - * @param key 键 - * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 - * @return - */ - public Object lGetIndex(String key, long index) { - try { - return redisTemplate.opsForList().index(key, index); - } catch (Exception e) { - log.error(e.getMessage(), e); - return null; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @return - */ - public boolean lSet(String key, Object value) { - try { - redisTemplate.opsForList().rightPush(key, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) 注意:这里将会替换原有的时间 - * @return - */ - public boolean lSet(String key, Object value, long time) { - try { - redisTemplate.opsForList().rightPush(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @return - */ - public boolean lSet(String key, List value) { - try { - redisTemplate.opsForList().rightPushAll(key, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) 注意:这里将会替换原有的时间 - * @return - */ - public boolean lSet(String key, List value, long time) { - try { - redisTemplate.opsForList().rightPushAll(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 根据索引修改list中的某条数据 - * - * @param key 键 - * @param index 索引 - * @param value 值 - * @return / - */ - public boolean lUpdateIndex(String key, long index, Object value) { - try { - redisTemplate.opsForList().set(key, index, value); - return true; - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - - /** - * 移除N个值为value - * - * @param key 键 - * @param count 移除多少个 - * @param value 值 - * @return 移除的个数 - */ - public long lRemove(String key, long count, Object value) { - try { - return redisTemplate.opsForList().remove(key, count, value); - } catch (Exception e) { - log.error(e.getMessage(), e); - return 0; - } - } - - /** - * @param prefix 前缀 - * @param ids id - */ - public void delByKeys(String prefix, Set ids) { - Set keys = new HashSet<>(); - for (Long id : ids) { - keys.addAll(redisTemplate.keys(new StringBuffer(prefix).append(id).toString())); - } - long count = redisTemplate.delete(keys); - } - - // ============================incr============================= - - /** - * 递增 - * - * @param key - * @return - */ - public Long increment(String key) { - return redisTemplate.opsForValue().increment(key); - } - - /** - * 递减 - * - * @param key - * @return - */ - public Long decrement(String key) { - return redisTemplate.opsForValue().decrement(key); - } - - // ============================校验============================= - public boolean isHealth() { - try { - redisTemplate.getConnectionFactory().getConnection().ping(); - return true; - } catch (Exception e) { - log.error("Redis health check failed: {}", e.getMessage(), e); - return false; - } - } - - /** - * 仅当键不存在时设置值(原子操作) - * - * @param key 键 - * @param value 值 - * @param timeout 过期时间 - * @param unit 时间单位 - * @return 如果设置成功返回true,否则返回false - */ - public Boolean setIfAbsent(String key, Object value, long timeout, TimeUnit unit) { - try { - String stringValue = ObjUtil.toString(value); - // 使用Redis的SETNX命令实现原子性操作 - Boolean success = redisTemplate.opsForValue().setIfAbsent(key, stringValue, timeout, unit); - return success != null && success; - } catch (Exception e) { - log.error("Redis setIfAbsent操作失败, key: {}", key, e); - return false; - } - } -} +/* + * 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.framework.redis; + +import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSON; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.*; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +@Component +@SuppressWarnings({"unchecked", "all"}) +public class KitRedisHelper { + private static final Logger log = LoggerFactory.getLogger(KitRedisHelper.class); + + private RedisTemplate redisTemplate; + + public KitRedisHelper(RedisTemplate redisTemplate) { + this.redisTemplate = redisTemplate; + this.redisTemplate.setKeySerializer(new StringRedisSerializer()); + this.redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + } + + /** + * 指定缓存失效时间 + * + * @param key 键 + * @param time 时间(秒) 注意:这里将会替换原有的时间 + */ + public boolean expire(String key, long time) { + try { + if (time > 0) { + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + return true; + } + + /** + * 指定缓存失效时间 + * + * @param key 键 + * @param time 时间(秒) 注意:这里将会替换原有的时间 + * @param timeUnit 单位 + */ + public boolean expire(String key, long time, TimeUnit timeUnit) { + try { + if (time > 0) { + redisTemplate.expire(key, time, timeUnit); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + return true; + } + + /** + * 根据 key 获取过期时间 + * + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 + */ + public long getExpire(Object key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + /** + * 查找匹配key + * + * @param pattern key + * @return / + */ + public List scan(String pattern) { + ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); + RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); + RedisConnection rc = Objects.requireNonNull(factory).getConnection(); + Cursor cursor = rc.scan(options); + List result = new ArrayList<>(); + while (cursor.hasNext()) { + result.add(new String(cursor.next())); + } + try { + RedisConnectionUtils.releaseConnection(rc, factory); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return result; + } + + /** + * 分页查询 key + * + * @param patternKey key + * @param page 页码 + * @param size 每页数目 + * @return / + */ + public List findKeysForPage(String patternKey, int page, int size) { + ScanOptions options = ScanOptions.scanOptions().match(patternKey).build(); + RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); + RedisConnection rc = Objects.requireNonNull(factory).getConnection(); + Cursor cursor = rc.scan(options); + List result = new ArrayList<>(size); + int tmpIndex = 0; + int fromIndex = page * size; + int toIndex = page * size + size; + while (cursor.hasNext()) { + if (tmpIndex >= fromIndex && tmpIndex < toIndex) { + result.add(new String(cursor.next())); + tmpIndex++; + continue; + } + // 获取到满足条件的数据后,就可以退出了 + if (tmpIndex >= toIndex) { + break; + } + tmpIndex++; + cursor.next(); + } + try { + RedisConnectionUtils.releaseConnection(rc, factory); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return result; + } + + /** + * 判断key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public boolean hasKey(String key) { + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 删除缓存 + * + * @param key 可以传一个值 或多个 + */ + public void del(String... keys) { + if (keys != null && keys.length > 0) { + if (keys.length == 1) { + boolean result = redisTemplate.delete(keys[0]); + log.debug("--------------------------------------------"); + log.debug(new StringBuilder("删除缓存:").append(keys[0]).append(", 结果:").append(result).toString()); + log.debug("--------------------------------------------"); + } else { + Set keySet = new HashSet<>(); + for (String key : keys) { + if (redisTemplate.hasKey(key)) { + keySet.add(key); + } + } + long count = redisTemplate.delete(keySet); + log.debug("--------------------------------------------"); + log.debug("成功删除缓存:" + keySet.toString()); + log.debug("缓存删除数量:" + count + "个"); + log.debug("--------------------------------------------"); + } + } + } + + /** + * 批量模糊删除key + * + * @param pattern + */ + public void scanDel(String pattern) { + ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); + try (Cursor cursor = redisTemplate.executeWithStickyConnection( + (RedisCallback>)connection -> (Cursor)new ConvertingCursor<>(connection.scan(options), + redisTemplate.getKeySerializer()::deserialize))) { + while (cursor.hasNext()) { + redisTemplate.delete(cursor.next()); + } + } + } + + // ============================String============================= + + /** + * 普通缓存获取 + * + * @param key 键 + * @return 值 + */ + public Object get(String key) { + return key == null ? null : redisTemplate.opsForValue().get(key); + } + + /** + * 普通缓存获取 + * + * @param key 键 + * @return 值 + */ + public T get(String key, Class clazz) { + Object value = key == null ? null : redisTemplate.opsForValue().get(key); + if (value == null) { + return null; + } + // 如果 value 不是目标类型, 则尝试将其反序列化为 clazz 类型 by + if (!clazz.isInstance(value)) { + return JSON.parseObject(value.toString(), clazz); + } else if (clazz.isInstance(value)) { + return clazz.cast(value); + } else { + return null; + } + } + + /** + * 普通缓存获取 + * + * @param key 键 + * @param clazz 列表中元素的类型 + * @return 值 + */ + public List getList(String key, Class clazz) { + Object value = key == null ? null : redisTemplate.opsForValue().get(key); + if (value == null) { + return null; + } + if (value instanceof List) { + List list = (List)value; + // 检查每个元素是否为指定类型 + if (list.stream().allMatch(clazz::isInstance)) { + return list.stream().map(clazz::cast).collect(Collectors.toList()); + } + } + return null; + } + + /** + * 普通缓存获取 + * + * @param key 键 + * @return 值 + */ + public String getStr(String key) { + if (StrUtil.isBlank(key)) { + return null; + } + Object value = redisTemplate.opsForValue().get(key); + if (value == null) { + return null; + } else { + return String.valueOf(value); + } + } + + /** + * 批量获取 + * + * @param keys + * @return + */ + public List multiGet(List keys) { + List list = redisTemplate.opsForValue().multiGet(Sets.newHashSet(keys)); + List resultList = Lists.newArrayList(); + Optional.ofNullable(list).ifPresent(e -> list.forEach(ele -> Optional.ofNullable(ele).ifPresent(resultList::add))); + return resultList; + } + + /** + * 普通缓存放入 + * + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + public boolean set(String key, Object value) { + int attempt = 0; + while (attempt < 3) { + try { + redisTemplate.opsForValue().set(key, value); + return true; + } catch (Exception e) { + attempt++; + log.error("Attempt {} failed: {}", attempt, e.getMessage(), e); + } + } + return false; + } + + /** + * 普通缓存放入并设置时间 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期, 注意:这里将会替换原有的时间 + * @return true成功 false 失败 + */ + public boolean set(String key, Object value, long time) { + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 普通缓存放入并设置时间 + * + * @param key 键 + * @param value 值 + * @param time 时间,注意:这里将会替换原有的时间 + * @param timeUnit 类型 + * @return true成功 false 失败 + */ + public boolean set(String key, Object value, long time, TimeUnit timeUnit) { + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, timeUnit); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + // ================================Map================================= + + /** + * HashGet + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return 值 + */ + public Object hget(String key, String item) { + return redisTemplate.opsForHash().get(key, item); + } + + /** + * 获取hashKey对应的所有键值 + * + * @param key 键 + * @return 对应的多个键值 + */ + public Map hmget(String key) { + return redisTemplate.opsForHash().entries(key); + } + + /** + * HashSet + * + * @param key 键 + * @param map 对应多个键值 + * @return true 成功 false 失败 + */ + public boolean hmset(String key, Map map) { + try { + redisTemplate.opsForHash().putAll(key, map); + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * HashSet + * + * @param key 键 + * @param map 对应多个键值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true成功 false失败 + */ + public boolean hmset(String key, Map map, long time) { + try { + redisTemplate.opsForHash().putAll(key, map); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value) { + try { + redisTemplate.opsForHash().put(key, item, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value, long time) { + try { + redisTemplate.opsForHash().put(key, item, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 删除hash表中的值 + * + * @param key 键 不能为null + * @param item 项 可以使多个 不能为null + */ + public void hdel(String key, Object... item) { + redisTemplate.opsForHash().delete(key, item); + } + + /** + * 判断hash表中是否有该项的值 + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return true 存在 false不存在 + */ + public boolean hHasKey(String key, String item) { + return redisTemplate.opsForHash().hasKey(key, item); + } + + /** + * hash递增 如果不存在,就会创建一个 并把新增后的值返回 + * + * @param key 键 + * @param item 项 + * @param by 要增加几(大于0) + * @return + */ + public double hincr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, by); + } + + /** + * hash递减 + * + * @param key 键 + * @param item 项 + * @param by 要减少记(小于0) + * @return + */ + public double hdecr(String key, String item, double by) { + return redisTemplate.opsForHash().increment(key, item, -by); + } + + // ============================set============================= + + /** + * 根据key获取Set中的所有值 + * + * @param key 键 + * @return + */ + public Set sGet(String key) { + try { + return redisTemplate.opsForSet().members(key); + } catch (Exception e) { + log.error(e.getMessage(), e); + return null; + } + } + + /** + * 根据value从一个set中查询,是否存在 + * + * @param key 键 + * @param value 值 + * @return true 存在 false不存在 + */ + public boolean sHasKey(String key, Object value) { + try { + return redisTemplate.opsForSet().isMember(key, value); + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 将数据放入set缓存 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSet(String key, Object... values) { + try { + return redisTemplate.opsForSet().add(key, values); + } catch (Exception e) { + log.error(e.getMessage(), e); + return 0; + } + } + + /** + * 将set数据放入缓存 + * + * @param key 键 + * @param time 时间(秒) 注意:这里将会替换原有的时间 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSetAndTime(String key, long time, Object... values) { + try { + Long count = redisTemplate.opsForSet().add(key, values); + if (time > 0) { + expire(key, time); + } + return count; + } catch (Exception e) { + log.error(e.getMessage(), e); + return 0; + } + } + + /** + * 获取set缓存的长度 + * + * @param key 键 + * @return + */ + public long sGetSetSize(String key) { + try { + return redisTemplate.opsForSet().size(key); + } catch (Exception e) { + log.error(e.getMessage(), e); + return 0; + } + } + + /** + * 移除值为value的 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 移除的个数 + */ + public long setRemove(String key, Object... values) { + try { + Long count = redisTemplate.opsForSet().remove(key, values); + return count; + } catch (Exception e) { + log.error(e.getMessage(), e); + return 0; + } + } + + // ===============================list================================= + + /** + * 获取list缓存的内容 + * + * @param key 键 + * @param start 开始 + * @param end 结束 0 到 -1代表所有值 + * @return + */ + public List lGet(String key, long start, long end) { + try { + return redisTemplate.opsForList().range(key, start, end); + } catch (Exception e) { + log.error(e.getMessage(), e); + return null; + } + } + + /** + * 获取list缓存的长度 + * + * @param key 键 + * @return + */ + public long lGetListSize(String key) { + try { + return redisTemplate.opsForList().size(key); + } catch (Exception e) { + log.error(e.getMessage(), e); + return 0; + } + } + + /** + * 通过索引 获取list中的值 + * + * @param key 键 + * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 + * @return + */ + public Object lGetIndex(String key, long index) { + try { + return redisTemplate.opsForList().index(key, index); + } catch (Exception e) { + log.error(e.getMessage(), e); + return null; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, Object value) { + try { + redisTemplate.opsForList().rightPush(key, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) 注意:这里将会替换原有的时间 + * @return + */ + public boolean lSet(String key, Object value, long time) { + try { + redisTemplate.opsForList().rightPush(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, List value) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) 注意:这里将会替换原有的时间 + * @return + */ + public boolean lSet(String key, List value, long time) { + try { + redisTemplate.opsForList().rightPushAll(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 根据索引修改list中的某条数据 + * + * @param key 键 + * @param index 索引 + * @param value 值 + * @return / + */ + public boolean lUpdateIndex(String key, long index, Object value) { + try { + redisTemplate.opsForList().set(key, index, value); + return true; + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + + /** + * 移除N个值为value + * + * @param key 键 + * @param count 移除多少个 + * @param value 值 + * @return 移除的个数 + */ + public long lRemove(String key, long count, Object value) { + try { + return redisTemplate.opsForList().remove(key, count, value); + } catch (Exception e) { + log.error(e.getMessage(), e); + return 0; + } + } + + /** + * @param prefix 前缀 + * @param ids id + */ + public void delByKeys(String prefix, Set ids) { + Set keys = new HashSet<>(); + for (Long id : ids) { + keys.addAll(redisTemplate.keys(new StringBuffer(prefix).append(id).toString())); + } + long count = redisTemplate.delete(keys); + } + + // ============================incr============================= + + /** + * 递增 + * + * @param key + * @return + */ + public Long increment(String key) { + return redisTemplate.opsForValue().increment(key); + } + + /** + * 递减 + * + * @param key + * @return + */ + public Long decrement(String key) { + return redisTemplate.opsForValue().decrement(key); + } + + // ============================校验============================= + public boolean isHealth() { + try { + redisTemplate.getConnectionFactory().getConnection().ping(); + return true; + } catch (Exception e) { + log.error("Redis health check failed: {}", e.getMessage(), e); + return false; + } + } + + /** + * 仅当键不存在时设置值(原子操作) + * + * @param key 键 + * @param value 值 + * @param timeout 过期时间 + * @param unit 时间单位 + * @return 如果设置成功返回true,否则返回false + */ + public Boolean setIfAbsent(String key, Object value, long timeout, TimeUnit unit) { + try { + String stringValue = ObjUtil.toString(value); + // 使用Redis的SETNX命令实现原子性操作 + Boolean success = redisTemplate.opsForValue().setIfAbsent(key, stringValue, timeout, unit); + return success != null && success; + } catch (Exception e) { + log.error("Redis setIfAbsent操作失败, key: {}", key, e); + return false; + } + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/ConfigurerAdapter.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/ConfigurerAdapter.java index 7cf31e9f..fb1ee728 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/ConfigurerAdapter.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/ConfigurerAdapter.java @@ -53,7 +53,7 @@ public class ConfigurerAdapter implements WebMvcConfigurer { @Autowired private DateStringToDateConverter dateStringToDateConverter; @Autowired - private CsFileLocalUploadHelper fileUploadPathHelper; + private KitFileLocalUploadHelper fileUploadPathHelper; @Bean public CorsFilter corsFilter() { diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/CsFileLocalUploadHelper.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/KitFileLocalUploadHelper.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/CsFileLocalUploadHelper.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/KitFileLocalUploadHelper.java index fac04ea2..bee9707c 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/CsFileLocalUploadHelper.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/server/core/KitFileLocalUploadHelper.java @@ -1,53 +1,53 @@ -/* - * 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.framework.server.core; - -import cn.odboy.constant.SystemConst; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -/** - * 简化文件上传路径配置 - * - * @author odboy - */ -@Component -public class CsFileLocalUploadHelper { - /** - * 单位MB - */ - private static final int AVATAR_MAX_SIZE = 5; - private static final String PATH_WINDOWS = "C:\\${appName}\\file\\"; - private static final String PATH_MAC = "/Users/odboy/${appName}/file/"; - private static final String PATH_LINUX = "/home/${appName}/file/"; - @Value("${spring.application.name}") - private String appName; - - public String getPath() { - String os = System.getProperty("os.name"); - if (os.toLowerCase().startsWith(SystemConst.WIN)) { - return PATH_WINDOWS.replace("${appName}", appName); - } else if (os.toLowerCase().startsWith(SystemConst.MAC)) { - return PATH_MAC.replace("${appName}", appName); - } - return PATH_LINUX.replace("${appName}", appName); - } - - public int getAvatarMaxSize() { - return AVATAR_MAX_SIZE; - } -} +/* + * 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.framework.server.core; + +import cn.odboy.constant.SystemConst; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * 简化文件上传路径配置 + * + * @author odboy + */ +@Component +public class KitFileLocalUploadHelper { + /** + * 单位MB + */ + private static final int AVATAR_MAX_SIZE = 5; + private static final String PATH_WINDOWS = "C:\\${appName}\\file\\"; + private static final String PATH_MAC = "/Users/odboy/${appName}/file/"; + private static final String PATH_LINUX = "/home/${appName}/file/"; + @Value("${spring.application.name}") + private String appName; + + public String getPath() { + String os = System.getProperty("os.name"); + if (os.toLowerCase().startsWith(SystemConst.WIN)) { + return PATH_WINDOWS.replace("${appName}", appName); + } else if (os.toLowerCase().startsWith(SystemConst.MAC)) { + return PATH_MAC.replace("${appName}", appName); + } + return PATH_LINUX.replace("${appName}", appName); + } + + public int getAvatarMaxSize() { + return AVATAR_MAX_SIZE; + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsClientManager.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsClientManager.java similarity index 77% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsClientManager.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsClientManager.java index 574dfe78..3123c732 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsClientManager.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsClientManager.java @@ -1,64 +1,64 @@ -/* - * 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.framework.websocket.context; - -import lombok.extern.slf4j.Slf4j; - -import java.util.Collection; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * WebSocket客户端管理 - * - * @author odboy - * @date 2025-07-24 - */ -@Slf4j -public class CsWsClientManager { - /** - * concurrent包的线程安全Map, 用来存放每个客户端对应的MyWebSocket对象。(分布式必出问题) - */ - private static final Map clientMap = new ConcurrentHashMap<>(); - - public static void addClient(String sid, CsWsServer csWsServer) { - // 如果存在就先删除一个, 防止重复推送消息 - removeClient(sid); - clientMap.put(sid, csWsServer); - } - - public static void removeClient(String sid) { - CsWsServer wsServer = clientMap.get(sid); - if (wsServer != null) { - try { - log.info("关闭session, sid={}", sid); - wsServer.getSession().close(); - } catch (Exception e) { - log.error("Close session failed, sid={}", sid, e); - } - clientMap.remove(sid); - } - } - - public static Collection getAllClient() { - return clientMap.values(); - } - - public static CsWsServer getClientBySid(String sid) { - return clientMap.get(sid); - } -} +/* + * 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.framework.websocket.context; + +import lombok.extern.slf4j.Slf4j; + +import java.util.Collection; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * WebSocket客户端管理 + * + * @author odboy + * @date 2025-07-24 + */ +@Slf4j +public class KitWsClientManager { + /** + * concurrent包的线程安全Map, 用来存放每个客户端对应的MyWebSocket对象。(分布式必出问题) + */ + private static final Map clientMap = new ConcurrentHashMap<>(); + + public static void addClient(String sid, KitWsServer wsServer) { + // 如果存在就先删除一个, 防止重复推送消息 + removeClient(sid); + clientMap.put(sid, wsServer); + } + + public static void removeClient(String sid) { + KitWsServer wsServer = clientMap.get(sid); + if (wsServer != null) { + try { + log.info("关闭session, sid={}", sid); + wsServer.getSession().close(); + } catch (Exception e) { + log.error("Close session failed, sid={}", sid, e); + } + clientMap.remove(sid); + } + } + + public static Collection getAllClient() { + return clientMap.values(); + } + + public static KitWsServer getClientBySid(String sid) { + return clientMap.get(sid); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsMessage.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsMessage.java similarity index 83% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsMessage.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsMessage.java index 3fbc8c91..54f4a829 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsMessage.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsMessage.java @@ -1,33 +1,33 @@ -/* - * 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.framework.websocket.context; - -import cn.odboy.base.CsObject; -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class CsWsMessage extends CsObject { - private String bizCode; - private String data; - - public CsWsMessage(String bizCode, String data) { - this.bizCode = bizCode; - this.data = data; - } -} +/* + * 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.framework.websocket.context; + +import cn.odboy.base.KitObject; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class KitWsMessage extends KitObject { + private String bizCode; + private String data; + + public KitWsMessage(String bizCode, String data) { + this.bizCode = bizCode; + this.data = data; + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsServer.java similarity index 83% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsServer.java index 7a8ca662..0ce6efb3 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/CsWsServer.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/context/KitWsServer.java @@ -1,146 +1,146 @@ -/* - * 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.framework.websocket.context; - -import com.alibaba.fastjson2.JSON; -import lombok.Getter; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.websocket.*; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import java.io.IOException; -import java.util.Objects; - -@Slf4j -@Component -@ServerEndpoint("/websocket/{sid}") -@Getter -public class CsWsServer { - /** - * 与某个客户端的连接会话, 需要通过它来给客户端发送数据 - */ - private Session session; - /** - * 接收sid - */ - private String sid = ""; - - /** - * 连接建立成功调用的方法 - */ - @OnOpen - public void onOpen(Session session, @PathParam("sid") String sid) { - this.session = session; - // {username}#{bizCode}#{contextParams} - this.sid = sid; - CsWsClientManager.addClient(sid, this); - } - - /** - * 收到客户端消息后调用的方法 - * - * @param message 客户端发送过来的消息 - */ - @OnMessage - public void onMessage(String message, Session session) { - CsWsMessage wsMessage = JSON.parseObject(message, CsWsMessage.class); - String bizCode = wsMessage.getBizCode(); - Object data = wsMessage.getData(); - log.info("收到来 sid={} 的信息: message={}, bizCode={}, data={}", sid, message, bizCode, JSON.toJSONString(data)); - } - - /** - * 连接关闭调用的方法 - */ - @OnClose - public void onClose() { - try { - CsWsClientManager.removeClient(this.sid); - } catch (Exception e) { - log.error("WebSocket onClose error, sid={}", this.sid, e); - } - } - - @OnError - public void onError(Session session, Throwable error) { - // log.error("WebSocket sid={} 发生错误", this.sid, error); - try { - CsWsClientManager.removeClient(this.sid); - } catch (Exception e) { - log.error("WebSocket onClose error, sid={}", this.sid, e); - } - } - - /** - * 实现服务器主动推送 - */ - private void innerSendMessage(String message) throws IOException { - this.session.getBasicRemote().sendText(message); - } - - /** - * 精准推送消息 - */ - public void sendMessage(CsWsMessage message, @PathParam("sid") String sid) throws IOException { - String body = JSON.toJSONString(message); - // log.info("推送消息到{}, 推送内容:{}", sid, message); - try { - if (sid == null) { - sendToAll(body); - } else { - CsWsServer wsClient = CsWsClientManager.getClientBySid(sid); - if (wsClient != null) { - wsClient.innerSendMessage(body); - } - } - } catch (Exception ignored) { - } - } - - /** - * 群发消息 - */ - public void sendToAll(String message) { - for (CsWsServer item : CsWsClientManager.getAllClient()) { - try { - item.innerSendMessage(message); - } catch (IOException e) { - log.error("发送消息给 sid={} 失败", item.sid, e); - CsWsClientManager.removeClient(item.sid); - } - } - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - CsWsServer that = (CsWsServer)o; - return Objects.equals(session, that.session) && Objects.equals(sid, that.sid); - } - - @Override - public int hashCode() { - return Objects.hash(session, sid); - } -} +/* + * 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.framework.websocket.context; + +import com.alibaba.fastjson2.JSON; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.websocket.*; +import javax.websocket.server.PathParam; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; +import java.util.Objects; + +@Slf4j +@Component +@ServerEndpoint("/websocket/{sid}") +@Getter +public class KitWsServer { + /** + * 与某个客户端的连接会话, 需要通过它来给客户端发送数据 + */ + private Session session; + /** + * 接收sid + */ + private String sid = ""; + + /** + * 连接建立成功调用的方法 + */ + @OnOpen + public void onOpen(Session session, @PathParam("sid") String sid) { + this.session = session; + // {username}#{bizCode}#{contextParams} + this.sid = sid; + KitWsClientManager.addClient(sid, this); + } + + /** + * 收到客户端消息后调用的方法 + * + * @param message 客户端发送过来的消息 + */ + @OnMessage + public void onMessage(String message, Session session) { + KitWsMessage wsMessage = JSON.parseObject(message, KitWsMessage.class); + String bizCode = wsMessage.getBizCode(); + Object data = wsMessage.getData(); + log.info("收到来 sid={} 的信息: message={}, bizCode={}, data={}", sid, message, bizCode, JSON.toJSONString(data)); + } + + /** + * 连接关闭调用的方法 + */ + @OnClose + public void onClose() { + try { + KitWsClientManager.removeClient(this.sid); + } catch (Exception e) { + log.error("WebSocket onClose error, sid={}", this.sid, e); + } + } + + @OnError + public void onError(Session session, Throwable error) { + // log.error("WebSocket sid={} 发生错误", this.sid, error); + try { + KitWsClientManager.removeClient(this.sid); + } catch (Exception e) { + log.error("WebSocket onClose error, sid={}", this.sid, e); + } + } + + /** + * 实现服务器主动推送 + */ + private void innerSendMessage(String message) throws IOException { + this.session.getBasicRemote().sendText(message); + } + + /** + * 精准推送消息 + */ + public void sendMessage(KitWsMessage message, @PathParam("sid") String sid) throws IOException { + String body = JSON.toJSONString(message); + // log.info("推送消息到{}, 推送内容:{}", sid, message); + try { + if (sid == null) { + sendToAll(body); + } else { + KitWsServer wsClient = KitWsClientManager.getClientBySid(sid); + if (wsClient != null) { + wsClient.innerSendMessage(body); + } + } + } catch (Exception ignored) { + } + } + + /** + * 群发消息 + */ + public void sendToAll(String message) { + for (KitWsServer item : KitWsClientManager.getAllClient()) { + try { + item.innerSendMessage(message); + } catch (IOException e) { + log.error("发送消息给 sid={} 失败", item.sid, e); + KitWsClientManager.removeClient(item.sid); + } + } + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + KitWsServer that = (KitWsServer)o; + return Objects.equals(session, that.session) && Objects.equals(sid, that.sid); + } + + @Override + public int hashCode() { + return Objects.hash(session, sid); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java index 9484e198..7200669a 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/websocket/model/WsSidVo.java @@ -16,13 +16,13 @@ package cn.odboy.framework.websocket.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class WsSidVo extends CsObject { +public class WsSidVo extends KitObject { private String username; private String bizCode; private String param; diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsAnonTagUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java similarity index 97% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsAnonTagUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java index 36d37110..f1f85611 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsAnonTagUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitAnonTagUtil.java @@ -1,109 +1,109 @@ - -/* - * 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.util; - -import cn.odboy.annotation.AnonymousAccess; -import cn.odboy.constant.RequestMethodEnum; -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.PatternsRequestCondition; -import org.springframework.web.servlet.mvc.method.RequestMappingInfo; -import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; - -import java.util.*; - -/** - * 匿名标记工具 - */ -@UtilityClass -public class CsAnonTagUtil { - - /** - * 获取匿名标记的URL - * - * @param applicationContext / - * @return / - */ - public static Map> getAnonymousUrl(final ApplicationContext applicationContext) { - RequestMappingHandlerMapping requestMappingHandlerMapping = (RequestMappingHandlerMapping)applicationContext.getBean("requestMappingHandlerMapping"); - Map handlerMethodMap = requestMappingHandlerMapping.getHandlerMethods(); - Map> anonymousUrls = new HashMap<>(8); - // 获取匿名标记 - Set get = new HashSet<>(); - Set post = new HashSet<>(); - Set put = new HashSet<>(); - Set patch = new HashSet<>(); - Set delete = new HashSet<>(); - Set all = new HashSet<>(); - for (Map.Entry infoEntry : handlerMethodMap.entrySet()) { - HandlerMethod handlerMethod = infoEntry.getValue(); - AnonymousAccess anonymousAccess = handlerMethod.getMethodAnnotation(AnonymousAccess.class); - if (null != anonymousAccess && infoEntry.getKey() != null) { - List requestMethods = new ArrayList<>(infoEntry.getKey().getMethodsCondition().getMethods()); - RequestMethodEnum request = RequestMethodEnum.find(requestMethods.isEmpty() ? RequestMethodEnum.ALL.getType() : requestMethods.get(0).name()); - PatternsRequestCondition patternsCondition = infoEntry.getKey().getPatternsCondition(); - if (patternsCondition != null) { - switch (Objects.requireNonNull(request)) { - 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; - } - } - } - } - anonymousUrls.put(RequestMethodEnum.GET.getType(), get); - anonymousUrls.put(RequestMethodEnum.POST.getType(), post); - anonymousUrls.put(RequestMethodEnum.PUT.getType(), put); - anonymousUrls.put(RequestMethodEnum.PATCH.getType(), patch); - anonymousUrls.put(RequestMethodEnum.DELETE.getType(), delete); - anonymousUrls.put(RequestMethodEnum.ALL.getType(), all); - return anonymousUrls; - } - - /** - * 获取所有匿名标记的URL - * - * @param applicationContext / - * @return / - */ - public static Set getAllAnonymousUrl(final ApplicationContext applicationContext) { - Set allUrl = new HashSet<>(); - Map> anonymousUrls = getAnonymousUrl(applicationContext); - for (Map.Entry> entry : anonymousUrls.entrySet()) { - allUrl.addAll(anonymousUrls.get(entry.getKey())); - } - return allUrl; - } -} + +/* + * 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.util; + +import cn.odboy.annotation.AnonymousAccess; +import cn.odboy.constant.RequestMethodEnum; +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.PatternsRequestCondition; +import org.springframework.web.servlet.mvc.method.RequestMappingInfo; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import java.util.*; + +/** + * 匿名标记工具 + */ +@UtilityClass +public class KitAnonTagUtil { + + /** + * 获取匿名标记的URL + * + * @param applicationContext / + * @return / + */ + public static Map> getAnonymousUrl(final ApplicationContext applicationContext) { + RequestMappingHandlerMapping requestMappingHandlerMapping = (RequestMappingHandlerMapping)applicationContext.getBean("requestMappingHandlerMapping"); + Map handlerMethodMap = requestMappingHandlerMapping.getHandlerMethods(); + Map> anonymousUrls = new HashMap<>(8); + // 获取匿名标记 + Set get = new HashSet<>(); + Set post = new HashSet<>(); + Set put = new HashSet<>(); + Set patch = new HashSet<>(); + Set delete = new HashSet<>(); + Set all = new HashSet<>(); + for (Map.Entry infoEntry : handlerMethodMap.entrySet()) { + HandlerMethod handlerMethod = infoEntry.getValue(); + AnonymousAccess anonymousAccess = handlerMethod.getMethodAnnotation(AnonymousAccess.class); + if (null != anonymousAccess && infoEntry.getKey() != null) { + List requestMethods = new ArrayList<>(infoEntry.getKey().getMethodsCondition().getMethods()); + RequestMethodEnum request = RequestMethodEnum.find(requestMethods.isEmpty() ? RequestMethodEnum.ALL.getType() : requestMethods.get(0).name()); + PatternsRequestCondition patternsCondition = infoEntry.getKey().getPatternsCondition(); + if (patternsCondition != null) { + switch (Objects.requireNonNull(request)) { + 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; + } + } + } + } + anonymousUrls.put(RequestMethodEnum.GET.getType(), get); + anonymousUrls.put(RequestMethodEnum.POST.getType(), post); + anonymousUrls.put(RequestMethodEnum.PUT.getType(), put); + anonymousUrls.put(RequestMethodEnum.PATCH.getType(), patch); + anonymousUrls.put(RequestMethodEnum.DELETE.getType(), delete); + anonymousUrls.put(RequestMethodEnum.ALL.getType(), all); + return anonymousUrls; + } + + /** + * 获取所有匿名标记的URL + * + * @param applicationContext / + * @return / + */ + public static Set getAllAnonymousUrl(final ApplicationContext applicationContext) { + Set allUrl = new HashSet<>(); + Map> anonymousUrls = getAnonymousUrl(applicationContext); + for (Map.Entry> entry : anonymousUrls.entrySet()) { + allUrl.addAll(anonymousUrls.get(entry.getKey())); + } + return allUrl; + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsBase64SecretUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java similarity index 93% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsBase64SecretUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java index 839d8b00..1c9370d4 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsBase64SecretUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBase64SecretUtil.java @@ -1,50 +1,50 @@ -/* - * 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.util; - -import cn.hutool.core.codec.Base64Encoder; -import cn.hutool.core.util.IdUtil; -import lombok.experimental.UtilityClass; - -import java.nio.charset.StandardCharsets; - -/** - * 加密令牌生成工具 - * - * @author odboy - * @date 2022-11-16 - */ -@UtilityClass -public final class CsBase64SecretUtil { - - public static String build() { - // 128位uuid - return Base64Encoder.encode(getLongUuid(4).getBytes(StandardCharsets.UTF_8)); - } - - public static String getLongUuid(int bit) { - StringBuilder result = new StringBuilder(); - for (int i = 0; i < bit; i++) { - result.append(IdUtil.simpleUUID()); - } - return result.toString(); - } - - public static void main(String[] args) { - System.out.println(build()); - } -} +/* + * 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.util; + +import cn.hutool.core.codec.Base64Encoder; +import cn.hutool.core.util.IdUtil; +import lombok.experimental.UtilityClass; + +import java.nio.charset.StandardCharsets; + +/** + * 加密令牌生成工具 + * + * @author odboy + * @date 2022-11-16 + */ +@UtilityClass +public final class KitBase64SecretUtil { + + public static String build() { + // 128位uuid + return Base64Encoder.encode(getLongUuid(4).getBytes(StandardCharsets.UTF_8)); + } + + public static String getLongUuid(int bit) { + StringBuilder result = new StringBuilder(); + for (int i = 0; i < bit; i++) { + result.append(IdUtil.simpleUUID()); + } + return result.toString(); + } + + public static void main(String[] args) { + System.out.println(build()); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsBigDecimalUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsBigDecimalUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java index 3efcc90f..da393275 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsBigDecimalUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBigDecimalUtil.java @@ -1,154 +1,154 @@ - -/* - * 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.util; - -import lombok.experimental.UtilityClass; - -import java.math.BigDecimal; -import java.math.RoundingMode; - -/** - * 计算类 - */ -@UtilityClass -public final class CsBigDecimalUtil { - - /** - * 将对象转换为 BigDecimal - * - * @param obj 输入对象 - * @return 转换后的 BigDecimal - */ - private static BigDecimal toBigDecimal(Object obj) { - 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"); - } - } - - /** - * 加法 - * - * @param a 加数 - * @param b 加数 - * @return 两个加数的和, 保留两位小数 - */ - public static BigDecimal add(Object a, Object b) { - BigDecimal bdA = toBigDecimal(a); - BigDecimal bdB = toBigDecimal(b); - return bdA.add(bdB).setScale(2, RoundingMode.HALF_UP); - } - - /** - * 减法 - * - * @param a 被减数 - * @param b 减数 - * @return 两数的差, 保留两位小数 - */ - public static BigDecimal subtract(Object a, Object b) { - BigDecimal bdA = toBigDecimal(a); - BigDecimal bdB = toBigDecimal(b); - return bdA.subtract(bdB).setScale(2, RoundingMode.HALF_UP); - } - - /** - * 乘法 - * - * @param a 乘数 - * @param b 乘数 - * @return 两个乘数的积, 保留两位小数 - */ - public static BigDecimal multiply(Object a, Object b) { - BigDecimal bdA = toBigDecimal(a); - BigDecimal bdB = toBigDecimal(b); - return bdA.multiply(bdB).setScale(2, RoundingMode.HALF_UP); - } - - /** - * 除法 - * - * @param a 被除数 - * @param b 除数 - * @return 两数的商,保留两位小数 - */ - public static BigDecimal divide(Object a, Object b) { - BigDecimal bdA = toBigDecimal(a); - BigDecimal bdB = toBigDecimal(b); - return bdA.divide(bdB, 2, RoundingMode.HALF_UP); - } - - /** - * 除法 - * - * @param a 被除数 - * @param b 除数 - * @param scale 保留小数位数 - * @return 两数的商,保留两位小数 - */ - public static BigDecimal divide(Object a, Object b, int scale) { - BigDecimal bdA = toBigDecimal(a); - BigDecimal bdB = toBigDecimal(b); - return bdA.divide(bdB, scale, RoundingMode.HALF_UP); - } - - /** - * 分转元 - * - * @param obj 分的金额 - * @return 转换后的元,保留两位小数 - */ - public static BigDecimal centsToYuan(Object obj) { - BigDecimal cents = toBigDecimal(obj); - return cents.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); - } - - /** - * 元转分 - * - * @param obj 元的金额 - * @return 转换后的分 - */ - public static Long yuanToCents(Object obj) { - BigDecimal yuan = toBigDecimal(obj); - return yuan.multiply(BigDecimal.valueOf(100)).setScale(0, RoundingMode.HALF_UP).longValue(); - } - - 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)); - } -} + +/* + * 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.util; + +import lombok.experimental.UtilityClass; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * 计算类 + */ +@UtilityClass +public final class KitBigDecimalUtil { + + /** + * 将对象转换为 BigDecimal + * + * @param obj 输入对象 + * @return 转换后的 BigDecimal + */ + private static BigDecimal toBigDecimal(Object obj) { + 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"); + } + } + + /** + * 加法 + * + * @param a 加数 + * @param b 加数 + * @return 两个加数的和, 保留两位小数 + */ + public static BigDecimal add(Object a, Object b) { + BigDecimal bdA = toBigDecimal(a); + BigDecimal bdB = toBigDecimal(b); + return bdA.add(bdB).setScale(2, RoundingMode.HALF_UP); + } + + /** + * 减法 + * + * @param a 被减数 + * @param b 减数 + * @return 两数的差, 保留两位小数 + */ + public static BigDecimal subtract(Object a, Object b) { + BigDecimal bdA = toBigDecimal(a); + BigDecimal bdB = toBigDecimal(b); + return bdA.subtract(bdB).setScale(2, RoundingMode.HALF_UP); + } + + /** + * 乘法 + * + * @param a 乘数 + * @param b 乘数 + * @return 两个乘数的积, 保留两位小数 + */ + public static BigDecimal multiply(Object a, Object b) { + BigDecimal bdA = toBigDecimal(a); + BigDecimal bdB = toBigDecimal(b); + return bdA.multiply(bdB).setScale(2, RoundingMode.HALF_UP); + } + + /** + * 除法 + * + * @param a 被除数 + * @param b 除数 + * @return 两数的商,保留两位小数 + */ + public static BigDecimal divide(Object a, Object b) { + BigDecimal bdA = toBigDecimal(a); + BigDecimal bdB = toBigDecimal(b); + return bdA.divide(bdB, 2, RoundingMode.HALF_UP); + } + + /** + * 除法 + * + * @param a 被除数 + * @param b 除数 + * @param scale 保留小数位数 + * @return 两数的商,保留两位小数 + */ + public static BigDecimal divide(Object a, Object b, int scale) { + BigDecimal bdA = toBigDecimal(a); + BigDecimal bdB = toBigDecimal(b); + return bdA.divide(bdB, scale, RoundingMode.HALF_UP); + } + + /** + * 分转元 + * + * @param obj 分的金额 + * @return 转换后的元,保留两位小数 + */ + public static BigDecimal centsToYuan(Object obj) { + BigDecimal cents = toBigDecimal(obj); + return cents.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); + } + + /** + * 元转分 + * + * @param obj 元的金额 + * @return 转换后的分 + */ + public static Long yuanToCents(Object obj) { + BigDecimal yuan = toBigDecimal(obj); + return yuan.multiply(BigDecimal.valueOf(100)).setScale(0, RoundingMode.HALF_UP).longValue(); + } + + 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/cutejava-framework/src/main/java/cn/odboy/util/CsBrowserUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsBrowserUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java index 0016c1c0..41c67646 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsBrowserUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitBrowserUtil.java @@ -1,74 +1,74 @@ -/* - * 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.util; - -import cn.hutool.http.useragent.UserAgent; -import cn.hutool.http.useragent.UserAgentUtil; -import lombok.experimental.UtilityClass; -import lombok.extern.slf4j.Slf4j; - -import javax.servlet.http.HttpServletRequest; -import java.net.InetAddress; -import java.net.UnknownHostException; - -/** - * 浏览器 相关 - */ -@Slf4j -@UtilityClass -public final class CsBrowserUtil { - private static final String UNKNOWN = "unknown"; - - /** - * 获取ip地址 - */ - public static String getIp(HttpServletRequest request) { - String ip = request.getHeader("x-forwarded-for"); - if (ip == null || ip.isEmpty() || UNKNOWN.equalsIgnoreCase(ip)) { - ip = request.getHeader("Proxy-Client-IP"); - } - if (ip == null || ip.isEmpty() || UNKNOWN.equalsIgnoreCase(ip)) { - ip = request.getHeader("WL-Proxy-Client-IP"); - } - if (ip == null || ip.isEmpty() || UNKNOWN.equalsIgnoreCase(ip)) { - ip = request.getRemoteAddr(); - } - String comma = ","; - String localhost = "127.0.0.1"; - if (ip.contains(comma)) { - ip = ip.split(",")[0]; - } - if (localhost.equals(ip)) { - // 获取本机真正的ip地址 - try { - ip = InetAddress.getLocalHost().getHostAddress(); - } catch (UnknownHostException e) { - log.error("获取本机地址失败", e); - } - } - return ip; - } - - /** - * 获取浏览器 - */ - public static String getVersion(HttpServletRequest request) { - UserAgent ua = UserAgentUtil.parse(request.getHeader("User-Agent")); - String browser = ua.getBrowser().toString() + " " + ua.getVersion(); - return browser.replace(".0.0.0", ""); - } -} +/* + * 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.util; + +import cn.hutool.http.useragent.UserAgent; +import cn.hutool.http.useragent.UserAgentUtil; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; + +import javax.servlet.http.HttpServletRequest; +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * 浏览器 相关 + */ +@Slf4j +@UtilityClass +public final class KitBrowserUtil { + private static final String UNKNOWN = "unknown"; + + /** + * 获取ip地址 + */ + public static String getIp(HttpServletRequest request) { + String ip = request.getHeader("x-forwarded-for"); + if (ip == null || ip.isEmpty() || UNKNOWN.equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.isEmpty() || UNKNOWN.equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.isEmpty() || UNKNOWN.equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + String comma = ","; + String localhost = "127.0.0.1"; + if (ip.contains(comma)) { + ip = ip.split(",")[0]; + } + if (localhost.equals(ip)) { + // 获取本机真正的ip地址 + try { + ip = InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { + log.error("获取本机地址失败", e); + } + } + return ip; + } + + /** + * 获取浏览器 + */ + public static String getVersion(HttpServletRequest request) { + UserAgent ua = UserAgentUtil.parse(request.getHeader("User-Agent")); + String browser = ua.getBrowser().toString() + " " + ua.getVersion(); + return browser.replace(".0.0.0", ""); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsClassUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java similarity index 93% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsClassUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java index 02258cd5..9574530e 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsClassUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitClassUtil.java @@ -1,39 +1,39 @@ - -/* - * 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.util; - -import lombok.experimental.UtilityClass; - -import java.lang.reflect.Field; -import java.util.Arrays; -import java.util.List; - -/** - * 类 相关 - */ -@UtilityClass -public final class CsClassUtil { - @SuppressWarnings({"unchecked", "all"}) - public static List getAllFields(Class clazz, List fields) { - if (clazz != null) { - fields.addAll(Arrays.asList(clazz.getDeclaredFields())); - getAllFields(clazz.getSuperclass(), fields); - } - return fields; - } -} + +/* + * 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.util; + +import lombok.experimental.UtilityClass; + +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.List; + +/** + * 类 相关 + */ +@UtilityClass +public final class KitClassUtil { + @SuppressWarnings({"unchecked", "all"}) + public static List getAllFields(Class clazz, List fields) { + if (clazz != null) { + fields.addAll(Arrays.asList(clazz.getDeclaredFields())); + getAllFields(clazz.getSuperclass(), fields); + } + return fields; + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsCloseUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java similarity index 93% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsCloseUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java index 65118999..f9e22228 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsCloseUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitCloseUtil.java @@ -1,49 +1,49 @@ - -/* - * 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.util; - -import lombok.experimental.UtilityClass; - -import java.io.Closeable; - -/** - * 用于关闭各种连接, 缺啥补啥 - */ -@UtilityClass -public final class CsCloseUtil { - - public static void close(Closeable closeable) { - if (null != closeable) { - try { - closeable.close(); - } catch (Exception e) { - // 静默关闭 - } - } - } - - public static void close(AutoCloseable closeable) { - if (null != closeable) { - try { - closeable.close(); - } catch (Exception e) { - // 静默关闭 - } - } - } -} + +/* + * 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.util; + +import lombok.experimental.UtilityClass; + +import java.io.Closeable; + +/** + * 用于关闭各种连接, 缺啥补啥 + */ +@UtilityClass +public final class KitCloseUtil { + + public static void close(Closeable closeable) { + if (null != closeable) { + try { + closeable.close(); + } catch (Exception e) { + // 静默关闭 + } + } + } + + public static void close(AutoCloseable closeable) { + if (null != closeable) { + try { + closeable.close(); + } catch (Exception e) { + // 静默关闭 + } + } + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsCollUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java similarity index 81% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsCollUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java index a5b266e1..96563fe2 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsCollUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitCollUtil.java @@ -1,213 +1,213 @@ -/* - * 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.util; - -import cn.odboy.base.CsSelectOptionVo; -import com.alibaba.fastjson2.JSON; -import lombok.experimental.UtilityClass; - -import java.lang.reflect.Field; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.*; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -/** - * 集合工具 - * - * @author odboy - * @date 2022-11-09 - */ -@UtilityClass -public final class CsCollUtil extends cn.hutool.core.collection.CollUtil { - private static Predicate distinctPredicate(Function keyMapper) { - Map map = new HashMap<>(3); - return (t) -> null == map.putIfAbsent(keyMapper.apply(t), true); - } - - /** - * 流根据对象属性去重 - *

- * 使用方式: list = CollUtil.streamDistinct(list, Object::getXXX) - */ - public static List streamDistinct(List data, Function keyMapper) { - return data.stream().filter(distinctPredicate(keyMapper)).collect(Collectors.toList()); - } - - /** - * 流根据对象属性自然排序 - *

- * 使用方式: list = CollUtil.streamAscSort(list, Object::getXXX) - * - * @param data / - * @param keyExtractor / - * @param / - * @param / - * @return / - */ - public static > List streamAscSort(List data, Function keyExtractor) { - return data.stream().sorted(Comparator.comparing(keyExtractor)).collect(Collectors.toList()); - } - - /** - * 流根据对象属性倒转排序 - *

- * 使用方式: list = CollUtil.streamDescSort(list, Object::getXXX) - * - * @param data / - * @param keyExtractor / - * @param / - * @param / - * @return / - */ - public static > List streamDescSort(List data, Function keyExtractor) { - return data.stream().sorted(Comparator.comparing(keyExtractor).reversed()).collect(Collectors.toList()); - } - - /** - * 流拆分对象为键值对 - *

- * 使用方式: map = CollUtil.streamToMap(list, Object::getXXKey, Object::getXXValue) - * - * @param data / - * @param keyMapper / - * @param valueMapper / - * @param / - * @param / - * @param / - * @return / - */ - public static Map streamToMap(List data, Function keyMapper, Function valueMapper) { - // 根据key去重再并流 - return streamDistinct(data, keyMapper).stream().collect(Collectors.toMap(keyMapper, valueMapper)); - } - - /** - * 流对List求和 - *

- * 使用方式: total = CollUtil.streamDoubleAdd(doubleList) - * - * @param data / - * @return / - */ - public static Double streamDoubleAdd(List data) { - if (CsCollUtil.isNotEmpty(data)) { - return data.stream().filter(Objects::nonNull).reduce(Double::sum).orElse(0.0); - } - return 0.0; - } - - /** - * 流对List求和 - *

- * 使用方式: total = CollUtil.streamBigDecimalAdd(doubleList) - * - * @param data / - * @return / - */ - public static BigDecimal streamBigDecimalAdd(List data) { - if (CsCollUtil.isNotEmpty(data)) { - return data.stream().filter(Objects::nonNull).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - } - return BigDecimal.ZERO; - } - - /** - * 流对List中的某一BigDecimal属性求和 - *

- * 使用方式: total = CollUtil.streamBigDecimalAdd(list, XXX) - * - * @param data / - * @return / - */ - public static BigDecimal streamBigDecimalAdd(List data, String elementName) { - return data.stream().filter(Objects::nonNull).map(m -> { - // 反射, 取集合中各元素的某属性 - BigDecimal that; - try { - Field field = m.getClass().getDeclaredField(elementName); - field.setAccessible(true); - that = (BigDecimal)field.get(m); - } catch (Exception e) { - // 忽略异常 - that = BigDecimal.ZERO; - } - return that; - }).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); - } - - /** - * 流对List取最大值 - *

- * 使用方式: max = CollUtil.streamBigDecimalMax(list) - * - * @param data / - * @return / - */ - public static BigDecimal streamBigDecimalMax(List data) { - return data.stream().filter(Objects::nonNull).reduce(BigDecimal::max).orElse(null); - } - - /** - * 流对List取最小值 - *

- * 使用方式: max = CollUtil.streamBigDecimalMin(list) - * - * @param data / - * @return / - */ - public static BigDecimal streamBigDecimalMin(List data) { - return data.stream().filter(Objects::nonNull).reduce(BigDecimal::min).orElse(null); - } - - /** - * 流对List取平均值 - *

- * 使用方式: avg = CollUtil.streamBigDecimalAvg(list) - * - * @param data / - * @return / - */ - public static BigDecimal streamBigDecimalAvg(List data) { - return data.stream().filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(data.size()), 6, RoundingMode.FLOOR); - } - - public static void main(String[] args) { - List testData = new ArrayList<>(); - CsSelectOptionVo selectOption1 = CsSelectOptionVo.builder().label("苹果").value("apple").build(); - CsSelectOptionVo selectOption2 = CsSelectOptionVo.builder().label("苹果").value("apple").build(); - CsSelectOptionVo selectOption3 = CsSelectOptionVo.builder().label("香蕉").value("banana").build(); - CsSelectOptionVo selectOption4 = CsSelectOptionVo.builder().label("猫").value("cat").build(); - testData.add(selectOption1); - testData.add(selectOption2); - testData.add(selectOption3); - testData.add(selectOption4); - List selectOptions1 = CsCollUtil.streamAscSort(testData, CsSelectOptionVo::getValue); - System.out.println(JSON.toJSONString(selectOptions1)); - List selectOptions2 = CsCollUtil.streamDescSort(testData, CsSelectOptionVo::getValue); - System.out.println(JSON.toJSONString(selectOptions2)); - List selectOptions3 = CsCollUtil.streamDistinct(testData, CsSelectOptionVo::getValue); - System.out.println(JSON.toJSONString(selectOptions3)); - Map selectMap1 = CsCollUtil.streamToMap(testData, CsSelectOptionVo::getValue, CsSelectOptionVo::getLabel); - System.out.println(JSON.toJSONString(selectMap1)); - // 这只是一个示范 - BigDecimal total1 = CsCollUtil.streamBigDecimalAdd(testData, "value"); - System.out.println(total1); - } -} +/* + * 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.util; + +import cn.odboy.base.KitSelectOptionVo; +import com.alibaba.fastjson2.JSON; +import lombok.experimental.UtilityClass; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * 集合工具 + * + * @author odboy + * @date 2022-11-09 + */ +@UtilityClass +public final class KitCollUtil extends cn.hutool.core.collection.CollUtil { + private static Predicate distinctPredicate(Function keyMapper) { + Map map = new HashMap<>(3); + return (t) -> null == map.putIfAbsent(keyMapper.apply(t), true); + } + + /** + * 流根据对象属性去重 + *

+ * 使用方式: list = CollUtil.streamDistinct(list, Object::getXXX) + */ + public static List streamDistinct(List data, Function keyMapper) { + return data.stream().filter(distinctPredicate(keyMapper)).collect(Collectors.toList()); + } + + /** + * 流根据对象属性自然排序 + *

+ * 使用方式: list = CollUtil.streamAscSort(list, Object::getXXX) + * + * @param data / + * @param keyExtractor / + * @param / + * @param / + * @return / + */ + public static > List streamAscSort(List data, Function keyExtractor) { + return data.stream().sorted(Comparator.comparing(keyExtractor)).collect(Collectors.toList()); + } + + /** + * 流根据对象属性倒转排序 + *

+ * 使用方式: list = CollUtil.streamDescSort(list, Object::getXXX) + * + * @param data / + * @param keyExtractor / + * @param / + * @param / + * @return / + */ + public static > List streamDescSort(List data, Function keyExtractor) { + return data.stream().sorted(Comparator.comparing(keyExtractor).reversed()).collect(Collectors.toList()); + } + + /** + * 流拆分对象为键值对 + *

+ * 使用方式: map = CollUtil.streamToMap(list, Object::getXXKey, Object::getXXValue) + * + * @param data / + * @param keyMapper / + * @param valueMapper / + * @param / + * @param / + * @param / + * @return / + */ + public static Map streamToMap(List data, Function keyMapper, Function valueMapper) { + // 根据key去重再并流 + return streamDistinct(data, keyMapper).stream().collect(Collectors.toMap(keyMapper, valueMapper)); + } + + /** + * 流对List求和 + *

+ * 使用方式: total = CollUtil.streamDoubleAdd(doubleList) + * + * @param data / + * @return / + */ + public static Double streamDoubleAdd(List data) { + if (KitCollUtil.isNotEmpty(data)) { + return data.stream().filter(Objects::nonNull).reduce(Double::sum).orElse(0.0); + } + return 0.0; + } + + /** + * 流对List求和 + *

+ * 使用方式: total = CollUtil.streamBigDecimalAdd(doubleList) + * + * @param data / + * @return / + */ + public static BigDecimal streamBigDecimalAdd(List data) { + if (KitCollUtil.isNotEmpty(data)) { + return data.stream().filter(Objects::nonNull).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); + } + return BigDecimal.ZERO; + } + + /** + * 流对List中的某一BigDecimal属性求和 + *

+ * 使用方式: total = CollUtil.streamBigDecimalAdd(list, XXX) + * + * @param data / + * @return / + */ + public static BigDecimal streamBigDecimalAdd(List data, String elementName) { + return data.stream().filter(Objects::nonNull).map(m -> { + // 反射, 取集合中各元素的某属性 + BigDecimal that; + try { + Field field = m.getClass().getDeclaredField(elementName); + field.setAccessible(true); + that = (BigDecimal)field.get(m); + } catch (Exception e) { + // 忽略异常 + that = BigDecimal.ZERO; + } + return that; + }).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); + } + + /** + * 流对List取最大值 + *

+ * 使用方式: max = CollUtil.streamBigDecimalMax(list) + * + * @param data / + * @return / + */ + public static BigDecimal streamBigDecimalMax(List data) { + return data.stream().filter(Objects::nonNull).reduce(BigDecimal::max).orElse(null); + } + + /** + * 流对List取最小值 + *

+ * 使用方式: max = CollUtil.streamBigDecimalMin(list) + * + * @param data / + * @return / + */ + public static BigDecimal streamBigDecimalMin(List data) { + return data.stream().filter(Objects::nonNull).reduce(BigDecimal::min).orElse(null); + } + + /** + * 流对List取平均值 + *

+ * 使用方式: avg = CollUtil.streamBigDecimalAvg(list) + * + * @param data / + * @return / + */ + public static BigDecimal streamBigDecimalAvg(List data) { + return data.stream().filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(data.size()), 6, RoundingMode.FLOOR); + } + + public static void main(String[] args) { + List testData = new ArrayList<>(); + KitSelectOptionVo selectOption1 = KitSelectOptionVo.builder().label("苹果").value("apple").build(); + KitSelectOptionVo selectOption2 = KitSelectOptionVo.builder().label("苹果").value("apple").build(); + KitSelectOptionVo selectOption3 = KitSelectOptionVo.builder().label("香蕉").value("banana").build(); + KitSelectOptionVo selectOption4 = KitSelectOptionVo.builder().label("猫").value("cat").build(); + testData.add(selectOption1); + testData.add(selectOption2); + testData.add(selectOption3); + testData.add(selectOption4); + List selectOptions1 = KitCollUtil.streamAscSort(testData, KitSelectOptionVo::getValue); + System.out.println(JSON.toJSONString(selectOptions1)); + List selectOptions2 = KitCollUtil.streamDescSort(testData, KitSelectOptionVo::getValue); + System.out.println(JSON.toJSONString(selectOptions2)); + List selectOptions3 = KitCollUtil.streamDistinct(testData, KitSelectOptionVo::getValue); + System.out.println(JSON.toJSONString(selectOptions3)); + Map selectMap1 = KitCollUtil.streamToMap(testData, KitSelectOptionVo::getValue, KitSelectOptionVo::getLabel); + System.out.println(JSON.toJSONString(selectMap1)); + // 这只是一个示范 + BigDecimal total1 = KitCollUtil.streamBigDecimalAdd(testData, "value"); + System.out.println(total1); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDateUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDateUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java index 7278e0bc..0805736d 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDateUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDateUtil.java @@ -1,150 +1,150 @@ -/* - * 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.util; - -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; -import lombok.experimental.UtilityClass; - -import java.util.Date; - -/** - * 时间相关工具 - * - * @author odboy - * @date 2025-10-01 - */ -@UtilityClass -public class CsDateUtil { - /** - * 获取当前时间毫秒数 - * - * @return / - */ - public static String getNowDateTimeMsStr() { - return DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN); - } - - /** - * 获取当前时间,但不包括毫秒数 - * - * @return / - */ - public static String getNowDateTimeStr() { - return DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN); - } - - /** - * 获取当前时间,但不包括毫秒数 - * - * @return / - */ - public static String getNowDateStr() { - return DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN); - } - - /** - * 格式化到毫秒 - * - * @param startTime 开始时间 - * @param endTime 结束时间 - * @return 格式化后的时间,X天X时X分X秒X毫秒 - */ - public static String formatMillsDuration(Date startTime, Date endTime) { - if (startTime == null || endTime == null) { - // 什么都不返回 - 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.length() == 0) { - result.append(seconds).append("秒"); - } - - return result.toString(); - } - - /** - * 格式化到秒 - * - * @param startTime 开始时间 - * @param endTime 结束时间 - * @return 格式化后的时间,X天X时X分X秒 - */ - public static String formatSecondsDuration(Date startTime, Date endTime) { - if (startTime == null || endTime == null) { - // 什么都不返回 - 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.length() == 0) { - result.append("0毫秒"); - } - - return result.toString(); - } -} +/* + * 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.util; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import lombok.experimental.UtilityClass; + +import java.util.Date; + +/** + * 时间相关工具 + * + * @author odboy + * @date 2025-10-01 + */ +@UtilityClass +public class KitDateUtil { + /** + * 获取当前时间毫秒数 + * + * @return / + */ + public static String getNowDateTimeMsStr() { + return DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN); + } + + /** + * 获取当前时间,但不包括毫秒数 + * + * @return / + */ + public static String getNowDateTimeStr() { + return DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN); + } + + /** + * 获取当前时间,但不包括毫秒数 + * + * @return / + */ + public static String getNowDateStr() { + return DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN); + } + + /** + * 格式化到毫秒 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 格式化后的时间,X天X时X分X秒X毫秒 + */ + public static String formatMillsDuration(Date startTime, Date endTime) { + if (startTime == null || endTime == null) { + // 什么都不返回 + 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.length() == 0) { + result.append(seconds).append("秒"); + } + + return result.toString(); + } + + /** + * 格式化到秒 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 格式化后的时间,X天X时X分X秒 + */ + public static String formatSecondsDuration(Date startTime, Date endTime) { + if (startTime == null || endTime == null) { + // 什么都不返回 + 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.length() == 0) { + result.append("0毫秒"); + } + + return result.toString(); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDesEncryptUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java similarity index 96% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDesEncryptUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java index 8a665ca6..c5af74e6 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDesEncryptUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDesEncryptUtil.java @@ -1,97 +1,97 @@ -/* - * 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.util; - -import lombok.experimental.UtilityClass; - -import javax.crypto.Cipher; -import javax.crypto.SecretKey; -import javax.crypto.SecretKeyFactory; -import javax.crypto.spec.DESKeySpec; -import javax.crypto.spec.IvParameterSpec; -import java.nio.charset.StandardCharsets; - -/** - * DES加密 - */ -@UtilityClass -public final class CsDesEncryptUtil { - - private static final String STR_PARAM = "Passw0rd"; - private static final IvParameterSpec IV = new IvParameterSpec(STR_PARAM.getBytes(StandardCharsets.UTF_8)); - - private static DESKeySpec getDesKeySpec(String source) throws Exception { - if (source == null || source.isEmpty()) { - return null; - } - return new DESKeySpec(STR_PARAM.getBytes(StandardCharsets.UTF_8)); - } - - /** - * 对称加密 - */ - public static String desEncrypt(String source) throws Exception { - Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); - DESKeySpec desKeySpec = getDesKeySpec(source); - SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); - SecretKey secretKey = keyFactory.generateSecret(desKeySpec); - cipher.init(Cipher.ENCRYPT_MODE, secretKey, IV); - return byte2hex(cipher.doFinal(source.getBytes(StandardCharsets.UTF_8))).toUpperCase(); - } - - /** - * 对称解密 - */ - public static String desDecrypt(String source) throws Exception { - Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); - byte[] src = hex2byte(source.getBytes(StandardCharsets.UTF_8)); - DESKeySpec desKeySpec = getDesKeySpec(source); - SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); - SecretKey secretKey = keyFactory.generateSecret(desKeySpec); - cipher.init(Cipher.DECRYPT_MODE, secretKey, IV); - byte[] retByte = cipher.doFinal(src); - return new String(retByte); - } - - private static String byte2hex(byte[] inStr) { - String stmp; - StringBuilder out = new StringBuilder(inStr.length * 2); - for (byte b : inStr) { - stmp = Integer.toHexString(b & 0xFF); - if (stmp.length() == 1) { - out.append("0").append(stmp); - } else { - out.append(stmp); - } - } - return out.toString(); - } - - private static byte[] hex2byte(byte[] b) { - int size = 2; - if ((b.length % size) != 0) { - throw new IllegalArgumentException("长度不是偶数"); - } - byte[] b2 = new byte[b.length / 2]; - for (int n = 0; n < b.length; n += size) { - String item = new String(b, n, 2); - b2[n / 2] = (byte)Integer.parseInt(item, 16); - } - return b2; - } -} - +/* + * 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.util; + +import lombok.experimental.UtilityClass; + +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.DESKeySpec; +import javax.crypto.spec.IvParameterSpec; +import java.nio.charset.StandardCharsets; + +/** + * DES加密 + */ +@UtilityClass +public final class KitDesEncryptUtil { + + private static final String STR_PARAM = "Passw0rd"; + private static final IvParameterSpec IV = new IvParameterSpec(STR_PARAM.getBytes(StandardCharsets.UTF_8)); + + private static DESKeySpec getDesKeySpec(String source) throws Exception { + if (source == null || source.isEmpty()) { + return null; + } + return new DESKeySpec(STR_PARAM.getBytes(StandardCharsets.UTF_8)); + } + + /** + * 对称加密 + */ + public static String desEncrypt(String source) throws Exception { + Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); + DESKeySpec desKeySpec = getDesKeySpec(source); + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); + SecretKey secretKey = keyFactory.generateSecret(desKeySpec); + cipher.init(Cipher.ENCRYPT_MODE, secretKey, IV); + return byte2hex(cipher.doFinal(source.getBytes(StandardCharsets.UTF_8))).toUpperCase(); + } + + /** + * 对称解密 + */ + public static String desDecrypt(String source) throws Exception { + Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); + byte[] src = hex2byte(source.getBytes(StandardCharsets.UTF_8)); + DESKeySpec desKeySpec = getDesKeySpec(source); + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); + SecretKey secretKey = keyFactory.generateSecret(desKeySpec); + cipher.init(Cipher.DECRYPT_MODE, secretKey, IV); + byte[] retByte = cipher.doFinal(src); + return new String(retByte); + } + + private static String byte2hex(byte[] inStr) { + String stmp; + StringBuilder out = new StringBuilder(inStr.length * 2); + for (byte b : inStr) { + stmp = Integer.toHexString(b & 0xFF); + if (stmp.length() == 1) { + out.append("0").append(stmp); + } else { + out.append(stmp); + } + } + return out.toString(); + } + + private static byte[] hex2byte(byte[] b) { + int size = 2; + if ((b.length % size) != 0) { + throw new IllegalArgumentException("长度不是偶数"); + } + byte[] b2 = new byte[b.length / 2]; + for (int n = 0; n < b.length; n += size) { + String item = new String(b, n, 2); + b2[n / 2] = (byte)Integer.parseInt(item, 16); + } + return b2; + } +} + diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDistributedIdUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java similarity index 91% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDistributedIdUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java index aef63fb3..5287bc67 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsDistributedIdUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitDistributedIdUtil.java @@ -1,197 +1,197 @@ -/* - * 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.util; - -import cn.odboy.framework.exception.BadRequestException; - -import java.util.concurrent.atomic.AtomicLong; - -/** - * 分布式id生成工具(不建议用,仅供参考) - * - * @author odboy - * @date 2025-04-05 - */ -public final class CsDistributedIdUtil { - /** - * 起始毫秒时间戳, 2020-12-30 - */ - private static final long START_TIMESTAMP = 1609314517000L; - /** - * 数据中心 ID 所占位数 - */ - private final long dataCenterIdBits; - /** - * 机器 ID 所占位数 - */ - private final long workerIdBits; - /** - * 序列号所占位数 - */ - private final long sequenceBits; - - /** - * 数据中心 ID 最大值 - */ - private final long maxDataCenterId; - /** - * 机器 ID 最大值 - */ - private final long maxWorkerId; - /** - * 序列号最大值 - */ - private final long sequenceMask; - - /** - * 机器 ID 向左移位数 - */ - private final long workerIdShift; - /** - * 数据中心 ID 向左移位数 - */ - private final long dataCenterIdShift; - /** - * 时间戳向左移位数 - */ - private final long timestampLeftShift; - - /** - * 数据中心 ID - */ - private final long dataCenterId; - /** - * 机器 ID - */ - private final long workerId; - /** - * 序列号 - */ - private final AtomicLong sequence = new AtomicLong(0L); - /** - * 上一次生成 ID 的时间戳 - */ - private final AtomicLong lastTimestamp = new AtomicLong(-1L); - - /** - * 构造函数, 初始化数据中心 ID 和机器 ID - * - * @param dataCenterId 数据中心 ID - * @param workerId 机器 ID - * @param dataCenterIdBits 数据中心 ID 所占位数 - * @param workerIdBits 机器 ID 所占位数 - * @param sequenceBits 序列号所占位数 - */ - public CsDistributedIdUtil(long dataCenterId, long workerId, long dataCenterIdBits, long workerIdBits, long sequenceBits) { - 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"); - } - if (workerId > maxWorkerId || workerId < 0) { - throw new IllegalArgumentException("Worker ID can't be greater than " + maxWorkerId + " or less than 0"); - } - this.dataCenterId = dataCenterId; - this.workerId = workerId; - } - - /** - * 获取单例实例的下一个分布式 ID - * - * @return 生成的分布式 ID - */ - public static long fastNextId() { - return InstanceHolder.INSTANCE.nextId(); - } - - /** - * 主方法,用于测试分布式 ID 生成 - * - * @param args 命令行参数 - */ - public static void main(String[] args) { - for (int i = 0; i < 10; i++) { - new Thread(() -> { - long id = Thread.currentThread().getId(); - for (int j = 0; j < 20; j++) { - System.out.println(id + " - " + CsDistributedIdUtil.fastNextId()); - } - }).start(); - } - } - - /** - * 生成下一个分布式 ID - * - * @return 生成的分布式 ID - */ - 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) { - // 同一毫秒内,序列号自增 - long seq = sequence.incrementAndGet() & sequenceMask; - if (seq == 0) { - // 序列号溢出,等待下一毫秒 - currentTimestamp = waitNextMillis(lastTimestampValue); - } - return ((currentTimestamp - START_TIMESTAMP) << timestampLeftShift) | (dataCenterId << dataCenterIdShift) | (workerId << workerIdShift) | seq; - } else { - // 时间戳改变,重置序列号 - sequence.set(0L); - lastTimestamp.set(currentTimestamp); - return ((currentTimestamp - START_TIMESTAMP) << timestampLeftShift) | (dataCenterId << dataCenterIdShift) | (workerId << workerIdShift); - } - } - - /** - * 等待下一毫秒 - * - * @param lastTimestamp 上一次生成 ID 的时间戳 - * @return 当前时间戳 - */ - private long waitNextMillis(long lastTimestamp) { - long timestamp = System.currentTimeMillis(); - while (timestamp <= lastTimestamp) { - timestamp = System.currentTimeMillis(); - } - return timestamp; - } - - /** - * 单例实例持有者类 - */ - private static class InstanceHolder { - private static final CsDistributedIdUtil INSTANCE = new CsDistributedIdUtil(20, 12, 5, 5, 12); - } -} +/* + * 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.util; + +import cn.odboy.framework.exception.BadRequestException; + +import java.util.concurrent.atomic.AtomicLong; + +/** + * 分布式id生成工具(不建议用,仅供参考) + * + * @author odboy + * @date 2025-04-05 + */ +public final class KitDistributedIdUtil { + /** + * 起始毫秒时间戳, 2020-12-30 + */ + private static final long START_TIMESTAMP = 1609314517000L; + /** + * 数据中心 ID 所占位数 + */ + private final long dataCenterIdBits; + /** + * 机器 ID 所占位数 + */ + private final long workerIdBits; + /** + * 序列号所占位数 + */ + private final long sequenceBits; + + /** + * 数据中心 ID 最大值 + */ + private final long maxDataCenterId; + /** + * 机器 ID 最大值 + */ + private final long maxWorkerId; + /** + * 序列号最大值 + */ + private final long sequenceMask; + + /** + * 机器 ID 向左移位数 + */ + private final long workerIdShift; + /** + * 数据中心 ID 向左移位数 + */ + private final long dataCenterIdShift; + /** + * 时间戳向左移位数 + */ + private final long timestampLeftShift; + + /** + * 数据中心 ID + */ + private final long dataCenterId; + /** + * 机器 ID + */ + private final long workerId; + /** + * 序列号 + */ + private final AtomicLong sequence = new AtomicLong(0L); + /** + * 上一次生成 ID 的时间戳 + */ + private final AtomicLong lastTimestamp = new AtomicLong(-1L); + + /** + * 构造函数, 初始化数据中心 ID 和机器 ID + * + * @param dataCenterId 数据中心 ID + * @param workerId 机器 ID + * @param dataCenterIdBits 数据中心 ID 所占位数 + * @param workerIdBits 机器 ID 所占位数 + * @param sequenceBits 序列号所占位数 + */ + public KitDistributedIdUtil(long dataCenterId, long workerId, long dataCenterIdBits, long workerIdBits, long sequenceBits) { + 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"); + } + if (workerId > maxWorkerId || workerId < 0) { + throw new IllegalArgumentException("Worker ID can't be greater than " + maxWorkerId + " or less than 0"); + } + this.dataCenterId = dataCenterId; + this.workerId = workerId; + } + + /** + * 获取单例实例的下一个分布式 ID + * + * @return 生成的分布式 ID + */ + public static long fastNextId() { + return InstanceHolder.INSTANCE.nextId(); + } + + /** + * 主方法,用于测试分布式 ID 生成 + * + * @param args 命令行参数 + */ + public static void main(String[] args) { + for (int i = 0; i < 10; i++) { + new Thread(() -> { + long id = Thread.currentThread().getId(); + for (int j = 0; j < 20; j++) { + System.out.println(id + " - " + KitDistributedIdUtil.fastNextId()); + } + }).start(); + } + } + + /** + * 生成下一个分布式 ID + * + * @return 生成的分布式 ID + */ + 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) { + // 同一毫秒内,序列号自增 + long seq = sequence.incrementAndGet() & sequenceMask; + if (seq == 0) { + // 序列号溢出,等待下一毫秒 + currentTimestamp = waitNextMillis(lastTimestampValue); + } + return ((currentTimestamp - START_TIMESTAMP) << timestampLeftShift) | (dataCenterId << dataCenterIdShift) | (workerId << workerIdShift) | seq; + } else { + // 时间戳改变,重置序列号 + sequence.set(0L); + lastTimestamp.set(currentTimestamp); + return ((currentTimestamp - START_TIMESTAMP) << timestampLeftShift) | (dataCenterId << dataCenterIdShift) | (workerId << workerIdShift); + } + } + + /** + * 等待下一毫秒 + * + * @param lastTimestamp 上一次生成 ID 的时间戳 + * @return 当前时间戳 + */ + private long waitNextMillis(long lastTimestamp) { + long timestamp = System.currentTimeMillis(); + while (timestamp <= lastTimestamp) { + timestamp = System.currentTimeMillis(); + } + return timestamp; + } + + /** + * 单例实例持有者类 + */ + private static class InstanceHolder { + private static final KitDistributedIdUtil INSTANCE = new KitDistributedIdUtil(20, 12, 5, 5, 12); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java index d4b11042..de533011 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsFileUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitFileUtil.java @@ -1,392 +1,392 @@ -/* - * 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.util; - -import cn.hutool.core.io.IoUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.poi.excel.BigExcelWriter; -import cn.hutool.poi.excel.ExcelUtil; -import cn.odboy.constant.FileTypeEnum; -import cn.odboy.constant.SystemConst; -import cn.odboy.framework.exception.BadRequestException; -import lombok.experimental.UtilityClass; -import lombok.extern.slf4j.Slf4j; -import org.apache.poi.util.IOUtils; -import org.apache.poi.xssf.streaming.SXSSFSheet; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.nio.file.Files; -import java.security.MessageDigest; -import java.text.DecimalFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static cn.odboy.constant.SystemConst.*; - -/** - * File工具类, 扩展 hutool 工具包 - */ -@Slf4j -@UtilityClass -public final class CsFileUtil extends cn.hutool.core.io.FileUtil { - - /** - * 系统临时目录 - *
- * windows 包含路径分割符, 但Linux 不包含, 在windows \\==\ 前提下, 为安全起见 同意拼装 路径分割符, - *

-     *       java.io.tmpdir
-     *       windows : C:\Users/xxx\AppData\Local\Temp\
-     *       linux: /temp
-     * 
- */ - public static final String SYS_TEM_DIR = System.getProperty("java.io.tmpdir") + File.separator; - /** - * 定义GB的计算常量 - */ - private static final int GB = 1024 * 1024 * 1024; - /** - * 定义MB的计算常量 - */ - private static final int MB = 1024 * 1024; - /** - * 定义KB的计算常量 - */ - private static final int KB = 1024; - - /** - * 格式化小数 - */ - private static final DecimalFormat DF = new DecimalFormat("0.00"); - - /** - * MultipartFile转File - */ - public static File toFile(MultipartFile multipartFile) { - // 获取文件名 - String fileName = multipartFile.getOriginalFilename(); - // 获取文件后缀 - String prefix = "." + getSuffix(fileName); - File file = null; - try { - // 用uuid作为文件名, 防止生成的临时文件重复 - file = new File(SYS_TEM_DIR + IdUtil.simpleUUID() + prefix); - // MultipartFile to File - multipartFile.transferTo(file); - } catch (IOException e) { - log.error("保存临时文件失败", e); - } - return file; - } - - /** - * 文件大小转换 - */ - public static String getSize(long size) { - String resultSize; - if (size / GB >= 1) { - //如果当前Byte的值大于等于1GB - resultSize = DF.format(size / (float)GB) + " GB"; - } else if (size / MB >= 1) { - //如果当前Byte的值大于等于1MB - resultSize = DF.format(size / (float)MB) + " MB"; - } else if (size / KB >= 1) { - //如果当前Byte的值大于等于1KB - resultSize = DF.format(size / (float)KB) + " KB"; - } else { - resultSize = size + " B"; - } - return resultSize; - } - - /** - * inputStream 转 File - */ - public static File inputStreamToFile(InputStream ins, String name) { - File file = new File(SYS_TEM_DIR + name); - if (file.exists()) { - return file; - } - OutputStream os = null; - try { - os = Files.newOutputStream(file.toPath()); - int bytesRead; - int len = 8192; - byte[] buffer = new byte[len]; - while ((bytesRead = ins.read(buffer, 0, len)) != -1) { - os.write(buffer, 0, bytesRead); - } - } catch (Exception e) { - log.error(e.getMessage(), e); - } finally { - CsCloseUtil.close(os); - CsCloseUtil.close(ins); - } - return file; - } - - /** - * 将文件名解析成文件的上传路径 - */ - public static File upload(MultipartFile file, String filePath) { - Date date = new Date(); - SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssS"); - // 过滤非法文件名 - String name = getPrefix(verifyFilename(file.getOriginalFilename())); - String suffix = getSuffix(file.getOriginalFilename()); - String nowStr = "-" + format.format(date); - try { - String fileName = name + nowStr + "." + suffix; - String path = filePath + fileName; - // getCanonicalFile 可解析正确各种路径 - File dest = new File(path).getCanonicalFile(); - // 检测是否存在目录 - if (!dest.getParentFile().exists()) { - if (!dest.getParentFile().mkdirs()) { - log.error("创建目录失败, {}", dest.getParentFile().getAbsolutePath()); - } - } - // 文件写入 - file.transferTo(dest); - return dest; - } catch (Exception e) { - log.error("文件上传失败", e); - } - return null; - } - - /** - * 导出excel - */ - public static void downloadExcel(List> list, HttpServletResponse response) throws IOException { - String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx"; - File file = new File(tempPath); - BigExcelWriter writer = ExcelUtil.getBigWriter(file); - // 处理数据以防止CSV注入 - List> sanitizedList = list.parallelStream().map(map -> { - Map sanitizedMap = new LinkedHashMap<>(); - map.forEach((key, value) -> { - if (value instanceof String) { - String strValue = (String)value; - // 检查并处理以特殊字符开头的值 - if (strValue.startsWith(SYMBOL_EQUAL) || strValue.startsWith(SYMBOL_ADD) || strValue.startsWith(SYMBOL_SUBTRACT) || strValue.startsWith( - SYMBOL_AT)) { - // 添加单引号前缀 - strValue = "'" + strValue; - } - sanitizedMap.put(key, strValue); - } else { - sanitizedMap.put(key, value); - } - }); - return sanitizedMap; - }).collect(Collectors.toList()); - // 一次性写出内容, 使用默认样式,强制输出标题 - writer.write(sanitizedList, true); - SXSSFSheet sheet = (SXSSFSheet)writer.getSheet(); - //上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法 - sheet.trackAllColumnsForAutoSizing(); - //列宽自适应 - writer.autoSizeColumnAll(); - //response为HttpServletResponse对象 - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); - //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 - response.setHeader("Content-Disposition", "attachment;filename=file.xlsx"); - ServletOutputStream out = response.getOutputStream(); - // 终止后删除临时文件 - file.deleteOnExit(); - writer.flush(out, true); - //此处记得关闭输出Servlet流 - IoUtil.close(out); - } - - /** - * 获取文件类型 - */ - public static String getFileType(String type) { - String documents = "txt doc pdf ppt pps xlsx xls docx"; - String voice = "mp3 wav wma mpa ram ra aac aif m4a"; - String video = "avi mpg mpe mpeg asf wmv mov qt rm mp4 flv m4v webm ogv ogg"; - String image = "bmp dib pcp dif wmf gif jpg tif eps psd cdr iff tga pcd mpt png jpeg"; - if (image.contains(type)) { - return FileTypeEnum.IMAGE.getCode(); - } else if (documents.contains(type)) { - return FileTypeEnum.DOC.getCode(); - } else if (voice.contains(type)) { - return FileTypeEnum.VOICE.getCode(); - } else if (video.contains(type)) { - return FileTypeEnum.VIDEO.getCode(); - } else { - return FileTypeEnum.OTHER.getCode(); - } - } - - /** - * 检查文件大小是否超出最大值 - */ - public static void checkSize(long maxSize, long size) { - // 1M - int len = 1024 * 1024; - if (size > (maxSize * len)) { - throw new BadRequestException("文件超出规定大小:" + maxSize + "MB"); - } - } - - /** - * 判断两个文件是否相同 - */ - public static boolean check(File file1, File file2) { - String img1Md5 = getMd5(file1); - String img2Md5 = getMd5(file2); - if (img1Md5 != null) { - return img1Md5.equals(img2Md5); - } - return false; - } - - /** - * 判断两个文件是否相同 - */ - public static boolean check(String file1Md5, String file2Md5) { - return file1Md5.equals(file2Md5); - } - - /** - * 获取文件字节数组 - */ - private static byte[] getByte(File file) { - byte[] b = new byte[(int)file.length()]; - InputStream in = null; - try { - in = Files.newInputStream(file.toPath()); - // 忽略read值 - int read = in.read(b); - } catch (Exception e) { - log.error(e.getMessage(), e); - return null; - } finally { - CsCloseUtil.close(in); - } - return b; - } - - /** - * 获取文件MD5值 - */ - private static String getMd5(byte[] bytes) { - // 16进制字符 - char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - try { - MessageDigest mdTemp = MessageDigest.getInstance("MD5"); - mdTemp.update(bytes); - byte[] md = mdTemp.digest(); - int j = md.length; - char[] str = new char[j * 2]; - int k = 0; - // 移位 输出字符串 - for (byte byte0 : md) { - str[k++] = hexDigits[byte0 >>> 4 & 0xf]; - str[k++] = hexDigits[byte0 & 0xf]; - } - return new String(str); - } catch (Exception e) { - log.error("获取文件MD5值失败", e); - } - return null; - } - - /** - * 下载文件 - * - * @param request / - * @param response / - * @param file / - */ - public static void downloadFile(HttpServletRequest request, HttpServletResponse response, File file, boolean deleteOnExit) { - response.setCharacterEncoding(request.getCharacterEncoding()); - response.setContentType("application/octet-stream"); - FileInputStream fis = null; - try { - fis = new FileInputStream(file); - response.setHeader("Content-Disposition", "attachment; filename=" + file.getName()); - IOUtils.copy(fis, response.getOutputStream()); - response.flushBuffer(); - } catch (Exception e) { - log.error("下载文件失败", e); - } finally { - if (fis != null) { - try { - fis.close(); - if (deleteOnExit) { - file.deleteOnExit(); - } - } catch (IOException e) { - log.error("关闭IO流失败", e); - } - } - } - } - - /** - * 验证并过滤非法的文件名 - * - * @param fileName 文件名 - * @return 文件名 - */ - public static String verifyFilename(String fileName) { - // 过滤掉特殊字符 - fileName = fileName.replaceAll("[\\\\/:*?\"<>|~\\s]", ""); - - // 去掉文件名开头和结尾的空格和点 - fileName = fileName.trim().replaceAll("^[. ]+|[. ]+$", ""); - - // 不允许文件名超过255(在Mac和Linux中)或260(在Windows中)个字符 - int maxFileNameLength = 255; - if (System.getProperty(SystemConst.PROPERTY_OS_NAME).startsWith(SystemConst.OS_NAME_WINDOWS)) { - maxFileNameLength = 260; - } - if (fileName.length() > maxFileNameLength) { - fileName = fileName.substring(0, maxFileNameLength); - } - - // 过滤掉控制字符 - fileName = fileName.replaceAll("[\\p{Cntrl}]", ""); - - // 过滤掉 ".." 路径 - fileName = fileName.replaceAll("\\.{2,}", ""); - - // 去掉文件名开头的 ".." - fileName = fileName.replaceAll("^\\.+/", ""); - - // 保留文件名中最后一个 "." 字符,过滤掉其他 "." - fileName = fileName.replaceAll("^(.*)(\\.[^.]*)$", "$1").replaceAll("\\.", "") + fileName.replaceAll("^(.*)(\\.[^.]*)$", "$2"); - - return fileName; - } - - public static String getMd5(File file) { - return getMd5(getByte(file)); - } -} +/* + * 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.util; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.poi.excel.BigExcelWriter; +import cn.hutool.poi.excel.ExcelUtil; +import cn.odboy.constant.FileTypeEnum; +import cn.odboy.constant.SystemConst; +import cn.odboy.framework.exception.BadRequestException; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.util.IOUtils; +import org.apache.poi.xssf.streaming.SXSSFSheet; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.nio.file.Files; +import java.security.MessageDigest; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static cn.odboy.constant.SystemConst.*; + +/** + * File工具类, 扩展 hutool 工具包 + */ +@Slf4j +@UtilityClass +public final class KitFileUtil extends cn.hutool.core.io.FileUtil { + + /** + * 系统临时目录 + *
+ * windows 包含路径分割符, 但Linux 不包含, 在windows \\==\ 前提下, 为安全起见 同意拼装 路径分割符, + *
+     *       java.io.tmpdir
+     *       windows : C:\Users/xxx\AppData\Local\Temp\
+     *       linux: /temp
+     * 
+ */ + public static final String SYS_TEM_DIR = System.getProperty("java.io.tmpdir") + File.separator; + /** + * 定义GB的计算常量 + */ + private static final int GB = 1024 * 1024 * 1024; + /** + * 定义MB的计算常量 + */ + private static final int MB = 1024 * 1024; + /** + * 定义KB的计算常量 + */ + private static final int KB = 1024; + + /** + * 格式化小数 + */ + private static final DecimalFormat DF = new DecimalFormat("0.00"); + + /** + * MultipartFile转File + */ + public static File toFile(MultipartFile multipartFile) { + // 获取文件名 + String fileName = multipartFile.getOriginalFilename(); + // 获取文件后缀 + String prefix = "." + getSuffix(fileName); + File file = null; + try { + // 用uuid作为文件名, 防止生成的临时文件重复 + file = new File(SYS_TEM_DIR + IdUtil.simpleUUID() + prefix); + // MultipartFile to File + multipartFile.transferTo(file); + } catch (IOException e) { + log.error("保存临时文件失败", e); + } + return file; + } + + /** + * 文件大小转换 + */ + public static String getSize(long size) { + String resultSize; + if (size / GB >= 1) { + //如果当前Byte的值大于等于1GB + resultSize = DF.format(size / (float)GB) + " GB"; + } else if (size / MB >= 1) { + //如果当前Byte的值大于等于1MB + resultSize = DF.format(size / (float)MB) + " MB"; + } else if (size / KB >= 1) { + //如果当前Byte的值大于等于1KB + resultSize = DF.format(size / (float)KB) + " KB"; + } else { + resultSize = size + " B"; + } + return resultSize; + } + + /** + * inputStream 转 File + */ + public static File inputStreamToFile(InputStream ins, String name) { + File file = new File(SYS_TEM_DIR + name); + if (file.exists()) { + return file; + } + OutputStream os = null; + try { + os = Files.newOutputStream(file.toPath()); + int bytesRead; + int len = 8192; + byte[] buffer = new byte[len]; + while ((bytesRead = ins.read(buffer, 0, len)) != -1) { + os.write(buffer, 0, bytesRead); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } finally { + KitCloseUtil.close(os); + KitCloseUtil.close(ins); + } + return file; + } + + /** + * 将文件名解析成文件的上传路径 + */ + public static File upload(MultipartFile file, String filePath) { + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssS"); + // 过滤非法文件名 + String name = getPrefix(verifyFilename(file.getOriginalFilename())); + String suffix = getSuffix(file.getOriginalFilename()); + String nowStr = "-" + format.format(date); + try { + String fileName = name + nowStr + "." + suffix; + String path = filePath + fileName; + // getCanonicalFile 可解析正确各种路径 + File dest = new File(path).getCanonicalFile(); + // 检测是否存在目录 + if (!dest.getParentFile().exists()) { + if (!dest.getParentFile().mkdirs()) { + log.error("创建目录失败, {}", dest.getParentFile().getAbsolutePath()); + } + } + // 文件写入 + file.transferTo(dest); + return dest; + } catch (Exception e) { + log.error("文件上传失败", e); + } + return null; + } + + /** + * 导出excel + */ + public static void downloadExcel(List> list, HttpServletResponse response) throws IOException { + String tempPath = SYS_TEM_DIR + IdUtil.fastSimpleUUID() + ".xlsx"; + File file = new File(tempPath); + BigExcelWriter writer = ExcelUtil.getBigWriter(file); + // 处理数据以防止CSV注入 + List> sanitizedList = list.parallelStream().map(map -> { + Map sanitizedMap = new LinkedHashMap<>(); + map.forEach((key, value) -> { + if (value instanceof String) { + String strValue = (String)value; + // 检查并处理以特殊字符开头的值 + if (strValue.startsWith(SYMBOL_EQUAL) || strValue.startsWith(SYMBOL_ADD) || strValue.startsWith(SYMBOL_SUBTRACT) || strValue.startsWith( + SYMBOL_AT)) { + // 添加单引号前缀 + strValue = "'" + strValue; + } + sanitizedMap.put(key, strValue); + } else { + sanitizedMap.put(key, value); + } + }); + return sanitizedMap; + }).collect(Collectors.toList()); + // 一次性写出内容, 使用默认样式,强制输出标题 + writer.write(sanitizedList, true); + SXSSFSheet sheet = (SXSSFSheet)writer.getSheet(); + //上面需要强转SXSSFSheet 不然没有trackAllColumnsForAutoSizing方法 + sheet.trackAllColumnsForAutoSizing(); + //列宽自适应 + writer.autoSizeColumnAll(); + //response为HttpServletResponse对象 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); + //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 + response.setHeader("Content-Disposition", "attachment;filename=file.xlsx"); + ServletOutputStream out = response.getOutputStream(); + // 终止后删除临时文件 + file.deleteOnExit(); + writer.flush(out, true); + //此处记得关闭输出Servlet流 + IoUtil.close(out); + } + + /** + * 获取文件类型 + */ + public static String getFileType(String type) { + String documents = "txt doc pdf ppt pps xlsx xls docx"; + String voice = "mp3 wav wma mpa ram ra aac aif m4a"; + String video = "avi mpg mpe mpeg asf wmv mov qt rm mp4 flv m4v webm ogv ogg"; + String image = "bmp dib pcp dif wmf gif jpg tif eps psd cdr iff tga pcd mpt png jpeg"; + if (image.contains(type)) { + return FileTypeEnum.IMAGE.getCode(); + } else if (documents.contains(type)) { + return FileTypeEnum.DOC.getCode(); + } else if (voice.contains(type)) { + return FileTypeEnum.VOICE.getCode(); + } else if (video.contains(type)) { + return FileTypeEnum.VIDEO.getCode(); + } else { + return FileTypeEnum.OTHER.getCode(); + } + } + + /** + * 检查文件大小是否超出最大值 + */ + public static void checkSize(long maxSize, long size) { + // 1M + int len = 1024 * 1024; + if (size > (maxSize * len)) { + throw new BadRequestException("文件超出规定大小:" + maxSize + "MB"); + } + } + + /** + * 判断两个文件是否相同 + */ + public static boolean check(File file1, File file2) { + String img1Md5 = getMd5(file1); + String img2Md5 = getMd5(file2); + if (img1Md5 != null) { + return img1Md5.equals(img2Md5); + } + return false; + } + + /** + * 判断两个文件是否相同 + */ + public static boolean check(String file1Md5, String file2Md5) { + return file1Md5.equals(file2Md5); + } + + /** + * 获取文件字节数组 + */ + private static byte[] getByte(File file) { + byte[] b = new byte[(int)file.length()]; + InputStream in = null; + try { + in = Files.newInputStream(file.toPath()); + // 忽略read值 + int read = in.read(b); + } catch (Exception e) { + log.error(e.getMessage(), e); + return null; + } finally { + KitCloseUtil.close(in); + } + return b; + } + + /** + * 获取文件MD5值 + */ + private static String getMd5(byte[] bytes) { + // 16进制字符 + char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + try { + MessageDigest mdTemp = MessageDigest.getInstance("MD5"); + mdTemp.update(bytes); + byte[] md = mdTemp.digest(); + int j = md.length; + char[] str = new char[j * 2]; + int k = 0; + // 移位 输出字符串 + for (byte byte0 : md) { + str[k++] = hexDigits[byte0 >>> 4 & 0xf]; + str[k++] = hexDigits[byte0 & 0xf]; + } + return new String(str); + } catch (Exception e) { + log.error("获取文件MD5值失败", e); + } + return null; + } + + /** + * 下载文件 + * + * @param request / + * @param response / + * @param file / + */ + public static void downloadFile(HttpServletRequest request, HttpServletResponse response, File file, boolean deleteOnExit) { + response.setCharacterEncoding(request.getCharacterEncoding()); + response.setContentType("application/octet-stream"); + FileInputStream fis = null; + try { + fis = new FileInputStream(file); + response.setHeader("Content-Disposition", "attachment; filename=" + file.getName()); + IOUtils.copy(fis, response.getOutputStream()); + response.flushBuffer(); + } catch (Exception e) { + log.error("下载文件失败", e); + } finally { + if (fis != null) { + try { + fis.close(); + if (deleteOnExit) { + file.deleteOnExit(); + } + } catch (IOException e) { + log.error("关闭IO流失败", e); + } + } + } + } + + /** + * 验证并过滤非法的文件名 + * + * @param fileName 文件名 + * @return 文件名 + */ + public static String verifyFilename(String fileName) { + // 过滤掉特殊字符 + fileName = fileName.replaceAll("[\\\\/:*?\"<>|~\\s]", ""); + + // 去掉文件名开头和结尾的空格和点 + fileName = fileName.trim().replaceAll("^[. ]+|[. ]+$", ""); + + // 不允许文件名超过255(在Mac和Linux中)或260(在Windows中)个字符 + int maxFileNameLength = 255; + if (System.getProperty(SystemConst.PROPERTY_OS_NAME).startsWith(SystemConst.OS_NAME_WINDOWS)) { + maxFileNameLength = 260; + } + if (fileName.length() > maxFileNameLength) { + fileName = fileName.substring(0, maxFileNameLength); + } + + // 过滤掉控制字符 + fileName = fileName.replaceAll("[\\p{Cntrl}]", ""); + + // 过滤掉 ".." 路径 + fileName = fileName.replaceAll("\\.{2,}", ""); + + // 去掉文件名开头的 ".." + fileName = fileName.replaceAll("^\\.+/", ""); + + // 保留文件名中最后一个 "." 字符,过滤掉其他 "." + fileName = fileName.replaceAll("^(.*)(\\.[^.]*)$", "$1").replaceAll("\\.", "") + fileName.replaceAll("^(.*)(\\.[^.]*)$", "$2"); + + return fileName; + } + + public static String getMd5(File file) { + return getMd5(getByte(file)); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsIPUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java similarity index 91% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsIPUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java index d15d2599..5f318219 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsIPUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitIPUtil.java @@ -1,88 +1,88 @@ -/* - * 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.util; - -import cn.odboy.framework.context.CsSpringBeanHolder; -import lombok.experimental.UtilityClass; -import net.dreamlu.mica.ip2region.core.Ip2regionSearcher; -import net.dreamlu.mica.ip2region.core.IpInfo; - -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.util.Enumeration; - -/** - * IP地址 相关 - */ -@UtilityClass -public final class CsIPUtil { - /** - * 注入bean - */ - private final static Ip2regionSearcher IP_SEARCHER = CsSpringBeanHolder.getBean(Ip2regionSearcher.class); - - /** - * 根据ip获取详细地址 - */ - public static String getCityInfo(String ip) { - IpInfo ipInfo = IP_SEARCHER.memorySearch(ip); - if (ipInfo != null) { - return ipInfo.getAddress(); - } - return null; - } - - /** - * 获取当前机器的IP - * - * @return / - */ - public static String getLocalIp() { - try { - InetAddress candidateAddress = null; - // 遍历所有的网络接口 - for (Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); interfaces.hasMoreElements(); ) { - NetworkInterface anInterface = interfaces.nextElement(); - // 在所有的接口下再遍历IP - for (Enumeration inetAddresses = anInterface.getInetAddresses(); inetAddresses.hasMoreElements(); ) { - InetAddress inetAddr = inetAddresses.nextElement(); - // 排除loopback类型地址 - if (!inetAddr.isLoopbackAddress()) { - if (inetAddr.isSiteLocalAddress()) { - // 如果是site-local地址, 就是它了 - return inetAddr.getHostAddress(); - } else if (candidateAddress == null) { - // site-local类型的地址未被发现, 先记录候选地址 - candidateAddress = inetAddr; - } - } - } - } - if (candidateAddress != null) { - return candidateAddress.getHostAddress(); - } - // 如果没有发现 non-loopback地址.只能用最次选的方案 - InetAddress jdkSuppliedAddress = InetAddress.getLocalHost(); - if (jdkSuppliedAddress == null) { - return ""; - } - return jdkSuppliedAddress.getHostAddress(); - } catch (Exception e) { - return ""; - } - } -} +/* + * 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.util; + +import cn.odboy.framework.context.KitSpringBeanHolder; +import lombok.experimental.UtilityClass; +import net.dreamlu.mica.ip2region.core.Ip2regionSearcher; +import net.dreamlu.mica.ip2region.core.IpInfo; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.util.Enumeration; + +/** + * IP地址 相关 + */ +@UtilityClass +public final class KitIPUtil { + /** + * 注入bean + */ + private final static Ip2regionSearcher IP_SEARCHER = KitSpringBeanHolder.getBean(Ip2regionSearcher.class); + + /** + * 根据ip获取详细地址 + */ + public static String getCityInfo(String ip) { + IpInfo ipInfo = IP_SEARCHER.memorySearch(ip); + if (ipInfo != null) { + return ipInfo.getAddress(); + } + return null; + } + + /** + * 获取当前机器的IP + * + * @return / + */ + public static String getLocalIp() { + try { + InetAddress candidateAddress = null; + // 遍历所有的网络接口 + for (Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); interfaces.hasMoreElements(); ) { + NetworkInterface anInterface = interfaces.nextElement(); + // 在所有的接口下再遍历IP + for (Enumeration inetAddresses = anInterface.getInetAddresses(); inetAddresses.hasMoreElements(); ) { + InetAddress inetAddr = inetAddresses.nextElement(); + // 排除loopback类型地址 + if (!inetAddr.isLoopbackAddress()) { + if (inetAddr.isSiteLocalAddress()) { + // 如果是site-local地址, 就是它了 + return inetAddr.getHostAddress(); + } else if (candidateAddress == null) { + // site-local类型的地址未被发现, 先记录候选地址 + candidateAddress = inetAddr; + } + } + } + } + if (candidateAddress != null) { + return candidateAddress.getHostAddress(); + } + // 如果没有发现 non-loopback地址.只能用最次选的方案 + InetAddress jdkSuppliedAddress = InetAddress.getLocalHost(); + if (jdkSuppliedAddress == null) { + return ""; + } + return jdkSuppliedAddress.getHostAddress(); + } catch (Exception e) { + return ""; + } + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsJsonUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java similarity index 85% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsJsonUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java index 6615fa85..bba25a2e 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsJsonUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitJsonUtil.java @@ -1,50 +1,50 @@ -/* - * 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.util; - -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.TypeReference; -import lombok.experimental.UtilityClass; - -import java.util.List; -import java.util.Map; - -/** - * Json工具 - * - * @author odboy - * @date 2024-10-01 - */ -@UtilityClass -public final class CsJsonUtil { - public static Map toMap(String jsonStr, Class kClass, Class vClass) { - return JSON.parseObject(jsonStr, new TypeReference>() { - }); - } - - public static List toList(String jsonStr, Class vClass) { - return JSON.parseObject(jsonStr, new TypeReference>() { - }); - } - - public static void main(String[] args) { - String mapStr = "{\"key1\":\"value1\", \"key2\":\"value2\"}"; - System.err.println(CsJsonUtil.toMap(mapStr, String.class, String.class)); - String listStr = "[\"value1\", \"value2\"]"; - System.err.println(CsJsonUtil.toList(listStr, String.class)); - } -} +/* + * 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.util; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.TypeReference; +import lombok.experimental.UtilityClass; + +import java.util.List; +import java.util.Map; + +/** + * Json工具 + * + * @author odboy + * @date 2024-10-01 + */ +@UtilityClass +public final class KitJsonUtil { + public static Map toMap(String jsonStr, Class kClass, Class vClass) { + return JSON.parseObject(jsonStr, new TypeReference>() { + }); + } + + public static List toList(String jsonStr, Class vClass) { + return JSON.parseObject(jsonStr, new TypeReference>() { + }); + } + + public static void main(String[] args) { + String mapStr = "{\"key1\":\"value1\", \"key2\":\"value2\"}"; + System.err.println(KitJsonUtil.toMap(mapStr, String.class, String.class)); + String listStr = "[\"value1\", \"value2\"]"; + System.err.println(KitJsonUtil.toList(listStr, String.class)); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsListUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java similarity index 85% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsListUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java index 98a300f7..6a0f1de9 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsListUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitListUtil.java @@ -1,69 +1,69 @@ -/* - * 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.util; - -import cn.hutool.core.date.DateTime; -import cn.odboy.base.CsBaseUserTimeTb; -import lombok.experimental.UtilityClass; - -import java.util.ArrayList; -import java.util.List; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * List 工具 - * - * @author odboy - * @date 2024-10-01 - */ -@UtilityClass -public final class CsListUtil { - /** - * 根据对象T的属性去重 - * - * @param items 对象T集合 - * @param classifier 对象T属性表达式, 比如: User::getName - */ - public static List distinctByArgs(List items, Function classifier) { - return items.stream().collect(Collectors.groupingBy(classifier)).values().stream().map(monitorItem -> monitorItem.iterator().next()) - .collect(Collectors.toList()); - } - - /** - * list转map, 保留新值 -> Map userMap = items.stream().collect(Collectors.toMap(User::getName, user -> user))
list转map, 保留旧值 -> Map userMap = users.stream().collect(Collectors.toMap(User::getName, user -> user, (existing, replacement) -> existing)); - */ - public static void main(String[] args) { - List entities = new ArrayList<>(); - int total = 50; - for (int i = 0; i < total; i++) { - CsBaseUserTimeTb entity = new CsBaseUserTimeTb(); - if (i % 2 == 0) { - entity.setCreateBy("odboy"); - } else { - entity.setCreateBy("admin"); - } - entity.setUpdateBy("admin"); - entity.setCreateTime(DateTime.now().toTimestamp()); - entity.setUpdateTime(DateTime.now().toTimestamp()); - entities.add(entity); - } - List entities1 = CsListUtil.distinctByArgs(entities, CsBaseUserTimeTb::getCreateBy); - System.err.println(entities1); - } -} +/* + * 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.util; + +import cn.hutool.core.date.DateTime; +import cn.odboy.base.KitBaseUserTimeTb; +import lombok.experimental.UtilityClass; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * List 工具 + * + * @author odboy + * @date 2024-10-01 + */ +@UtilityClass +public final class KitListUtil { + /** + * 根据对象T的属性去重 + * + * @param items 对象T集合 + * @param classifier 对象T属性表达式, 比如: User::getName + */ + public static List distinctByArgs(List items, Function classifier) { + return items.stream().collect(Collectors.groupingBy(classifier)).values().stream().map(monitorItem -> monitorItem.iterator().next()) + .collect(Collectors.toList()); + } + + /** + * list转map, 保留新值 -> Map userMap = items.stream().collect(Collectors.toMap(User::getName, user -> user))
list转map, 保留旧值 -> Map userMap = users.stream().collect(Collectors.toMap(User::getName, user -> user, (existing, replacement) -> existing)); + */ + public static void main(String[] args) { + List entities = new ArrayList<>(); + int total = 50; + for (int i = 0; i < total; i++) { + KitBaseUserTimeTb entity = new KitBaseUserTimeTb(); + if (i % 2 == 0) { + entity.setCreateBy("odboy"); + } else { + entity.setCreateBy("admin"); + } + entity.setUpdateBy("admin"); + entity.setCreateTime(DateTime.now().toTimestamp()); + entity.setUpdateTime(DateTime.now().toTimestamp()); + entities.add(entity); + } + List entities1 = KitListUtil.distinctByArgs(entities, KitBaseUserTimeTb::getCreateBy); + System.err.println(entities1); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsLogFmtUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsLogFmtUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java index 05768c68..d6402947 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsLogFmtUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitLogFmtUtil.java @@ -1,51 +1,51 @@ -/* - * 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.util; - -import lombok.experimental.UtilityClass; - -/** - * 适配 logger 占位符 - * - * @author odboy - * @date 2025-01-13 - */ -@UtilityClass -public final class CsLogFmtUtil { - /** - * 替换字符串中的占位符 {} 为传入的参数 - * - * @param message 消息模板 - * @param args 替换占位符的参数 - * @return 替换后的消息 - */ - public static String format(String message, Object... args) { - if (message == null || args == null || args.length == 0) { - return message; - } - // 使用 String.format 替换占位符 - return String.format(message.replace("{}", "%s"), args); - } - - public static void main(String[] args) { - // 示例用法 - String messageTemplate = "获取dingtalk accessToken失败, code={}, message={}"; - String formattedMessage = format(messageTemplate, 400, "Bad Request"); - // 输出: 获取dingtalk accessToken失败, code=400, message=Bad Request - System.out.println(formattedMessage); - } -} +/* + * 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.util; + +import lombok.experimental.UtilityClass; + +/** + * 适配 logger 占位符 + * + * @author odboy + * @date 2025-01-13 + */ +@UtilityClass +public final class KitLogFmtUtil { + /** + * 替换字符串中的占位符 {} 为传入的参数 + * + * @param message 消息模板 + * @param args 替换占位符的参数 + * @return 替换后的消息 + */ + public static String format(String message, Object... args) { + if (message == null || args == null || args.length == 0) { + return message; + } + // 使用 String.format 替换占位符 + return String.format(message.replace("{}", "%s"), args); + } + + public static void main(String[] args) { + // 示例用法 + String messageTemplate = "获取dingtalk accessToken失败, code={}, message={}"; + String formattedMessage = format(messageTemplate, 400, "Bad Request"); + // 输出: 获取dingtalk accessToken失败, code=400, message=Bad Request + System.out.println(formattedMessage); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsPageUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java similarity index 70% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsPageUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java index dd6cf281..40227de6 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsPageUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitPageUtil.java @@ -1,91 +1,91 @@ -/* - * 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.util; - -import cn.odboy.base.CsPageResult; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.experimental.UtilityClass; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * 分页工具 - * - * @author odboy - */ -@UtilityClass -public final class CsPageUtil extends cn.hutool.core.util.PageUtil { - - /** - * List 分页 - */ - public static List softPaging(long page, long size, List list) { - int pageIndex = Math.toIntExact(page - 1); - int fromIndex = Math.toIntExact(pageIndex * size); - int toIndex = Math.toIntExact(pageIndex * size + size); - if (fromIndex > list.size()) { - return Collections.emptyList(); - } else if (toIndex >= list.size()) { - return list.subList(fromIndex, list.size()); - } else { - return list.subList(fromIndex, toIndex); - } - } - - /** - * Page 数据处理 - */ - public static CsPageResult toPage(IPage page) { - return new CsPageResult<>(page.getRecords(), page.getTotal()); - } - - /** - * 自定义分页 - */ - public static CsPageResult toPage(List list) { - return new CsPageResult<>(list, list.size()); - } - - /** - * 返回空数据 - */ - public static CsPageResult emptyListData() { - return new CsPageResult<>(new ArrayList<>(), 0); - } - - /** - * 返回空数据 - */ - public static CsPageResult emptyData() { - return new CsPageResult<>(null, 0); - } - - /** - * 自定义分页 - */ - public static CsPageResult toPage(List list, long totalElements) { - return new CsPageResult<>(list, totalElements); - } - - public static Page getCount(BaseMapper baseMapper) { - return new Page<>(1, baseMapper.selectCount(null)); - } -} +/* + * 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.util; + +import cn.odboy.base.KitPageResult; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.experimental.UtilityClass; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * 分页工具 + * + * @author odboy + */ +@UtilityClass +public final class KitPageUtil extends cn.hutool.core.util.PageUtil { + + /** + * List 分页 + */ + public static List softPaging(long page, long size, List list) { + int pageIndex = Math.toIntExact(page - 1); + int fromIndex = Math.toIntExact(pageIndex * size); + int toIndex = Math.toIntExact(pageIndex * size + size); + if (fromIndex > list.size()) { + return Collections.emptyList(); + } else if (toIndex >= list.size()) { + return list.subList(fromIndex, list.size()); + } else { + return list.subList(fromIndex, toIndex); + } + } + + /** + * Page 数据处理 + */ + public static KitPageResult toPage(IPage page) { + return new KitPageResult<>(page.getRecords(), page.getTotal()); + } + + /** + * 自定义分页 + */ + public static KitPageResult toPage(List list) { + return new KitPageResult<>(list, list.size()); + } + + /** + * 返回空数据 + */ + public static KitPageResult emptyListData() { + return new KitPageResult<>(new ArrayList<>(), 0); + } + + /** + * 返回空数据 + */ + public static KitPageResult emptyData() { + return new KitPageResult<>(null, 0); + } + + /** + * 自定义分页 + */ + public static KitPageResult toPage(List list, long totalElements) { + return new KitPageResult<>(list, totalElements); + } + + public static Page getCount(BaseMapper baseMapper) { + return new Page<>(1, baseMapper.selectCount(null)); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsResourceTemplateUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsResourceTemplateUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java index 4d50a150..d62cf1de 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsResourceTemplateUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitResourceTemplateUtil.java @@ -1,41 +1,41 @@ -/* - * 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.util; - -import cn.hutool.core.lang.Dict; -import cn.hutool.core.util.StrUtil; -import cn.hutool.extra.template.Template; -import cn.hutool.extra.template.TemplateConfig; -import cn.hutool.extra.template.TemplateEngine; -import cn.hutool.extra.template.TemplateUtil; -import lombok.experimental.UtilityClass; - -/** - * Resources模版工具 - * - * @author odboy - * @date 2025-06-22 - */ -@UtilityClass -public class CsResourceTemplateUtil { - public static String render(String moduleName, String filename, Dict params) { - String path = StrUtil.isBlank(moduleName) ? "template" : "template/" + moduleName; - TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig(path, TemplateConfig.ResourceMode.CLASSPATH)); - Template template = engine.getTemplate(filename); - return template.render(params); - } -} +/* + * 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.util; + +import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.StrUtil; +import cn.hutool.extra.template.Template; +import cn.hutool.extra.template.TemplateConfig; +import cn.hutool.extra.template.TemplateEngine; +import cn.hutool.extra.template.TemplateUtil; +import lombok.experimental.UtilityClass; + +/** + * Resources模版工具 + * + * @author odboy + * @date 2025-06-22 + */ +@UtilityClass +public class KitResourceTemplateUtil { + public static String render(String moduleName, String filename, Dict params) { + String path = StrUtil.isBlank(moduleName) ? "template" : "template/" + moduleName; + TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig(path, TemplateConfig.ResourceMode.CLASSPATH)); + Template template = engine.getTemplate(filename); + return template.render(params); + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsReturnValueHandleUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsReturnValueHandleUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java index 80520a12..5a44daa4 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsReturnValueHandleUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitReturnValueHandleUtil.java @@ -1,73 +1,73 @@ - -/* - * 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.util; - -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.reflect.MethodSignature; - -import java.lang.reflect.Method; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -/** - * 返回值处理 工具 - * - * @author odboy - * @date 2025-05-08 - */ -public class CsReturnValueHandleUtil { - public static Object getDefaultValue(ProceedingJoinPoint joinPoint) { - MethodSignature signature = (MethodSignature)joinPoint.getSignature(); - Method method = signature.getMethod(); - // 获取目标方法的返回值类型 - Class returnType = method.getReturnType(); - if (returnType.isArray()) { - return getEmptyArray(returnType); - } else if (List.class.isAssignableFrom(returnType)) { - return Collections.emptyList(); - } else if (Set.class.isAssignableFrom(returnType)) { - return Collections.emptySet(); - } else if (Collection.class.isAssignableFrom(returnType)) { - // 默认返回空 List - return Collections.emptyList(); - } else { - // 普通对象返回 null - return null; - } - } - - /** - * 根据数组类型返回空数组 - */ - private static Object getEmptyArray(Class arrayType) { - if (arrayType == int[].class) { - return new int[0]; - } else if (arrayType == long[].class) { - return new long[0]; - } else if (arrayType == double[].class) { - return new double[0]; - } else if (arrayType == String[].class) { - return new String[0]; - } else { - // 其他引用类型数组 - return java.lang.reflect.Array.newInstance(arrayType.getComponentType(), 0); - } - } -} + +/* + * 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.util; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.reflect.MethodSignature; + +import java.lang.reflect.Method; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +/** + * 返回值处理 工具 + * + * @author odboy + * @date 2025-05-08 + */ +public class KitReturnValueHandleUtil { + public static Object getDefaultValue(ProceedingJoinPoint joinPoint) { + MethodSignature signature = (MethodSignature)joinPoint.getSignature(); + Method method = signature.getMethod(); + // 获取目标方法的返回值类型 + Class returnType = method.getReturnType(); + if (returnType.isArray()) { + return getEmptyArray(returnType); + } else if (List.class.isAssignableFrom(returnType)) { + return Collections.emptyList(); + } else if (Set.class.isAssignableFrom(returnType)) { + return Collections.emptySet(); + } else if (Collection.class.isAssignableFrom(returnType)) { + // 默认返回空 List + return Collections.emptyList(); + } else { + // 普通对象返回 null + return null; + } + } + + /** + * 根据数组类型返回空数组 + */ + private static Object getEmptyArray(Class arrayType) { + if (arrayType == int[].class) { + return new int[0]; + } else if (arrayType == long[].class) { + return new long[0]; + } else if (arrayType == double[].class) { + return new double[0]; + } else if (arrayType == String[].class) { + return new String[0]; + } else { + // 其他引用类型数组 + return java.lang.reflect.Array.newInstance(arrayType.getComponentType(), 0); + } + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsRsaEncryptUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java similarity index 93% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsRsaEncryptUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java index d49d8931..920557f0 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsRsaEncryptUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitRsaEncryptUtil.java @@ -1,214 +1,214 @@ -/* - * 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.util; - -import lombok.experimental.UtilityClass; -import org.apache.commons.codec.binary.Base64; - -import javax.crypto.Cipher; -import java.io.ByteArrayOutputStream; -import java.security.*; -import java.security.interfaces.RSAPrivateKey; -import java.security.interfaces.RSAPublicKey; -import java.security.spec.PKCS8EncodedKeySpec; -import java.security.spec.X509EncodedKeySpec; - -/** - * Rsa 工具类, 公钥私钥生成, 加解密 - */ -@UtilityClass -public final class CsRsaEncryptUtil { - - private static final String SRC = "123456"; - - public static void main(String[] args) throws Exception { - System.out.println("\n"); - RsaKeyPair keyPair = generateKeyPair(); - System.out.println("公钥:" + keyPair.getPublicKey()); - System.out.println("私钥:" + keyPair.getPrivateKey()); - System.out.println("\n"); - test1(keyPair); - System.out.println("\n"); - test2(keyPair); - System.out.println("\n"); - } - - /** - * 公钥加密私钥解密 - */ - private static void test1(RsaKeyPair keyPair) throws Exception { - System.out.println("***************** 公钥加密私钥解密开始 *****************"); - String text1 = encryptByPublicKey(keyPair.getPublicKey(), CsRsaEncryptUtil.SRC); - String text2 = decryptByPrivateKey(keyPair.getPrivateKey(), text1); - System.out.println("加密前:" + CsRsaEncryptUtil.SRC); - System.out.println("加密后:" + text1); - System.out.println("解密后:" + text2); - if (CsRsaEncryptUtil.SRC.equals(text2)) { - System.out.println("解密字符串和原始字符串一致, 解密成功"); - } else { - System.out.println("解密字符串和原始字符串不一致,解密失败"); - } - System.out.println("***************** 公钥加密私钥解密结束 *****************"); - } - - /** - * 私钥加密公钥解密 - * - * @throws Exception / - */ - private static void test2(RsaKeyPair keyPair) throws Exception { - System.out.println("***************** 私钥加密公钥解密开始 *****************"); - String text1 = encryptByPrivateKey(keyPair.getPrivateKey(), CsRsaEncryptUtil.SRC); - String text2 = decryptByPublicKey(keyPair.getPublicKey(), text1); - System.out.println("加密前:" + CsRsaEncryptUtil.SRC); - System.out.println("加密后:" + text1); - System.out.println("解密后:" + text2); - if (CsRsaEncryptUtil.SRC.equals(text2)) { - System.out.println("解密字符串和原始字符串一致,解密成功"); - } else { - System.out.println("解密字符串和原始字符串不一致,解密失败"); - } - System.out.println("***************** 私钥加密公钥解密结束 *****************"); - } - - /** - * 公钥解密 - * - * @param publicKeyText 公钥 - * @param text 待解密的信息 - * @return / - * @throws Exception / - */ - public static String decryptByPublicKey(String publicKeyText, String text) throws Exception { - X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(Base64.decodeBase64(publicKeyText)); - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.DECRYPT_MODE, publicKey); - byte[] result = doLongerCipherFinal(Cipher.DECRYPT_MODE, cipher, Base64.decodeBase64(text)); - return new String(result); - } - - /** - * 私钥加密 - * - * @param privateKeyText 私钥 - * @param text 待加密的信息 - * @return / - * @throws Exception / - */ - public static String encryptByPrivateKey(String privateKeyText, String text) throws Exception { - PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyText)); - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.ENCRYPT_MODE, privateKey); - byte[] result = doLongerCipherFinal(Cipher.ENCRYPT_MODE, cipher, text.getBytes()); - return Base64.encodeBase64String(result); - } - - /** - * 私钥解密 - * - * @param privateKeyText 私钥 - * @param text 待解密的文本 - * @return / - * @throws Exception / - */ - public static String decryptByPrivateKey(String privateKeyText, String text) throws Exception { - PKCS8EncodedKeySpec pkcs8EncodedKeySpec5 = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyText)); - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec5); - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.DECRYPT_MODE, privateKey); - byte[] result = doLongerCipherFinal(Cipher.DECRYPT_MODE, cipher, Base64.decodeBase64(text)); - return new String(result); - } - - /** - * 公钥加密 - * - * @param publicKeyText 公钥 - * @param text 待加密的文本 - * @return / - */ - public static String encryptByPublicKey(String publicKeyText, String text) throws Exception { - X509EncodedKeySpec x509EncodedKeySpec2 = new X509EncodedKeySpec(Base64.decodeBase64(publicKeyText)); - KeyFactory keyFactory = KeyFactory.getInstance("RSA"); - PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec2); - Cipher cipher = Cipher.getInstance("RSA"); - cipher.init(Cipher.ENCRYPT_MODE, publicKey); - byte[] result = doLongerCipherFinal(Cipher.ENCRYPT_MODE, cipher, text.getBytes()); - return Base64.encodeBase64String(result); - } - - private static byte[] doLongerCipherFinal(int opMode, Cipher cipher, byte[] source) throws Exception { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - if (opMode == Cipher.DECRYPT_MODE) { - out.write(cipher.doFinal(source)); - } else { - int offset = 0; - int totalSize = source.length; - while (totalSize - offset > 0) { - int size = Math.min(cipher.getOutputSize(0) - 11, totalSize - offset); - out.write(cipher.doFinal(source, offset, size)); - offset += size; - } - } - out.close(); - return out.toByteArray(); - } - - /** - * 构建RSA密钥对 - * - * @return / - * @throws NoSuchAlgorithmException / - */ - public static RsaKeyPair generateKeyPair() throws NoSuchAlgorithmException { - KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); - keyPairGenerator.initialize(1024); - KeyPair keyPair = keyPairGenerator.generateKeyPair(); - RSAPublicKey rsaPublicKey = (RSAPublicKey)keyPair.getPublic(); - RSAPrivateKey rsaPrivateKey = (RSAPrivateKey)keyPair.getPrivate(); - String publicKeyString = Base64.encodeBase64String(rsaPublicKey.getEncoded()); - String privateKeyString = Base64.encodeBase64String(rsaPrivateKey.getEncoded()); - return new RsaKeyPair(publicKeyString, privateKeyString); - } - - /** - * RSA密钥对对象 - */ - public static class RsaKeyPair { - - private final String publicKey; - private final String privateKey; - - public RsaKeyPair(String publicKey, String privateKey) { - this.publicKey = publicKey; - this.privateKey = privateKey; - } - - public String getPublicKey() { - return publicKey; - } - - public String getPrivateKey() { - return privateKey; - } - } -} +/* + * 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.util; + +import lombok.experimental.UtilityClass; +import org.apache.commons.codec.binary.Base64; + +import javax.crypto.Cipher; +import java.io.ByteArrayOutputStream; +import java.security.*; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; +import java.security.spec.PKCS8EncodedKeySpec; +import java.security.spec.X509EncodedKeySpec; + +/** + * Rsa 工具类, 公钥私钥生成, 加解密 + */ +@UtilityClass +public final class KitRsaEncryptUtil { + + private static final String SRC = "123456"; + + public static void main(String[] args) throws Exception { + System.out.println("\n"); + RsaKeyPair keyPair = generateKeyPair(); + System.out.println("公钥:" + keyPair.getPublicKey()); + System.out.println("私钥:" + keyPair.getPrivateKey()); + System.out.println("\n"); + test1(keyPair); + System.out.println("\n"); + test2(keyPair); + System.out.println("\n"); + } + + /** + * 公钥加密私钥解密 + */ + private static void test1(RsaKeyPair keyPair) throws Exception { + System.out.println("***************** 公钥加密私钥解密开始 *****************"); + String text1 = encryptByPublicKey(keyPair.getPublicKey(), KitRsaEncryptUtil.SRC); + String text2 = decryptByPrivateKey(keyPair.getPrivateKey(), text1); + System.out.println("加密前:" + KitRsaEncryptUtil.SRC); + System.out.println("加密后:" + text1); + System.out.println("解密后:" + text2); + if (KitRsaEncryptUtil.SRC.equals(text2)) { + System.out.println("解密字符串和原始字符串一致, 解密成功"); + } else { + System.out.println("解密字符串和原始字符串不一致,解密失败"); + } + System.out.println("***************** 公钥加密私钥解密结束 *****************"); + } + + /** + * 私钥加密公钥解密 + * + * @throws Exception / + */ + private static void test2(RsaKeyPair keyPair) throws Exception { + System.out.println("***************** 私钥加密公钥解密开始 *****************"); + String text1 = encryptByPrivateKey(keyPair.getPrivateKey(), KitRsaEncryptUtil.SRC); + String text2 = decryptByPublicKey(keyPair.getPublicKey(), text1); + System.out.println("加密前:" + KitRsaEncryptUtil.SRC); + System.out.println("加密后:" + text1); + System.out.println("解密后:" + text2); + if (KitRsaEncryptUtil.SRC.equals(text2)) { + System.out.println("解密字符串和原始字符串一致,解密成功"); + } else { + System.out.println("解密字符串和原始字符串不一致,解密失败"); + } + System.out.println("***************** 私钥加密公钥解密结束 *****************"); + } + + /** + * 公钥解密 + * + * @param publicKeyText 公钥 + * @param text 待解密的信息 + * @return / + * @throws Exception / + */ + public static String decryptByPublicKey(String publicKeyText, String text) throws Exception { + X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(Base64.decodeBase64(publicKeyText)); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec); + Cipher cipher = Cipher.getInstance("RSA"); + cipher.init(Cipher.DECRYPT_MODE, publicKey); + byte[] result = doLongerCipherFinal(Cipher.DECRYPT_MODE, cipher, Base64.decodeBase64(text)); + return new String(result); + } + + /** + * 私钥加密 + * + * @param privateKeyText 私钥 + * @param text 待加密的信息 + * @return / + * @throws Exception / + */ + public static String encryptByPrivateKey(String privateKeyText, String text) throws Exception { + PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyText)); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec); + Cipher cipher = Cipher.getInstance("RSA"); + cipher.init(Cipher.ENCRYPT_MODE, privateKey); + byte[] result = doLongerCipherFinal(Cipher.ENCRYPT_MODE, cipher, text.getBytes()); + return Base64.encodeBase64String(result); + } + + /** + * 私钥解密 + * + * @param privateKeyText 私钥 + * @param text 待解密的文本 + * @return / + * @throws Exception / + */ + public static String decryptByPrivateKey(String privateKeyText, String text) throws Exception { + PKCS8EncodedKeySpec pkcs8EncodedKeySpec5 = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyText)); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + PrivateKey privateKey = keyFactory.generatePrivate(pkcs8EncodedKeySpec5); + Cipher cipher = Cipher.getInstance("RSA"); + cipher.init(Cipher.DECRYPT_MODE, privateKey); + byte[] result = doLongerCipherFinal(Cipher.DECRYPT_MODE, cipher, Base64.decodeBase64(text)); + return new String(result); + } + + /** + * 公钥加密 + * + * @param publicKeyText 公钥 + * @param text 待加密的文本 + * @return / + */ + public static String encryptByPublicKey(String publicKeyText, String text) throws Exception { + X509EncodedKeySpec x509EncodedKeySpec2 = new X509EncodedKeySpec(Base64.decodeBase64(publicKeyText)); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec2); + Cipher cipher = Cipher.getInstance("RSA"); + cipher.init(Cipher.ENCRYPT_MODE, publicKey); + byte[] result = doLongerCipherFinal(Cipher.ENCRYPT_MODE, cipher, text.getBytes()); + return Base64.encodeBase64String(result); + } + + private static byte[] doLongerCipherFinal(int opMode, Cipher cipher, byte[] source) throws Exception { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + if (opMode == Cipher.DECRYPT_MODE) { + out.write(cipher.doFinal(source)); + } else { + int offset = 0; + int totalSize = source.length; + while (totalSize - offset > 0) { + int size = Math.min(cipher.getOutputSize(0) - 11, totalSize - offset); + out.write(cipher.doFinal(source, offset, size)); + offset += size; + } + } + out.close(); + return out.toByteArray(); + } + + /** + * 构建RSA密钥对 + * + * @return / + * @throws NoSuchAlgorithmException / + */ + public static RsaKeyPair generateKeyPair() throws NoSuchAlgorithmException { + KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); + keyPairGenerator.initialize(1024); + KeyPair keyPair = keyPairGenerator.generateKeyPair(); + RSAPublicKey rsaPublicKey = (RSAPublicKey)keyPair.getPublic(); + RSAPrivateKey rsaPrivateKey = (RSAPrivateKey)keyPair.getPrivate(); + String publicKeyString = Base64.encodeBase64String(rsaPublicKey.getEncoded()); + String privateKeyString = Base64.encodeBase64String(rsaPrivateKey.getEncoded()); + return new RsaKeyPair(publicKeyString, privateKeyString); + } + + /** + * RSA密钥对对象 + */ + public static class RsaKeyPair { + + private final String publicKey; + private final String privateKey; + + public RsaKeyPair(String publicKey, String privateKey) { + this.publicKey = publicKey; + this.privateKey = privateKey; + } + + public String getPublicKey() { + return publicKey; + } + + public String getPrivateKey() { + return privateKey; + } + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java similarity index 95% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java index e92fe192..f6b186e2 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitStringUtil.java @@ -1,128 +1,128 @@ - -/* - * 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.util; - -import lombok.experimental.UtilityClass; -import lombok.extern.slf4j.Slf4j; - -import java.util.Calendar; -import java.util.Date; - -/** - * 字符串工具类, 继承org.apache.commons.lang3.StringUtils类 - */ -@Slf4j -@UtilityClass -public final class CsStringUtil { - - private static final char SEPARATOR = '_'; - - /** - * 驼峰命名法工具 - * - * @return toCamelCase(" hello_world ") == "helloWorld" toCapitalizeCamelCase("hello_world") == "HelloWorld" toUnderScoreCase("helloWorld") = "hello_world" - */ - public static String toCamelCase(String s) { - 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) { - sb.append(Character.toUpperCase(c)); - upperCase = false; - } else { - sb.append(c); - } - } - - return sb.toString(); - } - - /** - * 驼峰命名法工具 - * - * @return toCamelCase(" hello_world ") == "helloWorld" toCapitalizeCamelCase("hello_world") == "HelloWorld" toUnderScoreCase("helloWorld") = "hello_world" - */ - public static String toCapitalizeCamelCase(String s) { - if (s == null) { - return null; - } - s = toCamelCase(s); - return s.substring(0, 1).toUpperCase() + s.substring(1); - } - - /** - * 驼峰命名法工具 - * - * @return toCamelCase(" hello_world ") == "helloWorld" toCapitalizeCamelCase("hello_world") == "HelloWorld" toUnderScoreCase("helloWorld") = "hello_world" - */ - public static String toUnderScoreCase(String s) { - 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); - } - upperCase = true; - } else { - upperCase = false; - } - - sb.append(Character.toLowerCase(c)); - } - - return sb.toString(); - } - - /** - * 获得当天是周几 - */ - public static String getWeekDay() { - // String[] weekDays = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; - String[] weekDays = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"}; - Calendar cal = Calendar.getInstance(); - cal.setTime(new Date()); - int w = cal.get(Calendar.DAY_OF_WEEK) - 1; - if (w < 0) { - w = 0; - } - return weekDays[w]; - } -} + +/* + * 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.util; + +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; + +import java.util.Calendar; +import java.util.Date; + +/** + * 字符串工具类, 继承org.apache.commons.lang3.StringUtils类 + */ +@Slf4j +@UtilityClass +public final class KitStringUtil { + + private static final char SEPARATOR = '_'; + + /** + * 驼峰命名法工具 + * + * @return toCamelCase(" hello_world ") == "helloWorld" toCapitalizeCamelCase("hello_world") == "HelloWorld" toUnderScoreCase("helloWorld") = "hello_world" + */ + public static String toCamelCase(String s) { + 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) { + sb.append(Character.toUpperCase(c)); + upperCase = false; + } else { + sb.append(c); + } + } + + return sb.toString(); + } + + /** + * 驼峰命名法工具 + * + * @return toCamelCase(" hello_world ") == "helloWorld" toCapitalizeCamelCase("hello_world") == "HelloWorld" toUnderScoreCase("helloWorld") = "hello_world" + */ + public static String toCapitalizeCamelCase(String s) { + if (s == null) { + return null; + } + s = toCamelCase(s); + return s.substring(0, 1).toUpperCase() + s.substring(1); + } + + /** + * 驼峰命名法工具 + * + * @return toCamelCase(" hello_world ") == "helloWorld" toCapitalizeCamelCase("hello_world") == "HelloWorld" toUnderScoreCase("helloWorld") = "hello_world" + */ + public static String toUnderScoreCase(String s) { + 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); + } + upperCase = true; + } else { + upperCase = false; + } + + sb.append(Character.toLowerCase(c)); + } + + return sb.toString(); + } + + /** + * 获得当天是周几 + */ + public static String getWeekDay() { + // String[] weekDays = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; + String[] weekDays = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"}; + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date()); + int w = cal.get(Calendar.DAY_OF_WEEK) - 1; + if (w < 0) { + w = 0; + } + return weekDays[w]; + } +} diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsSystemUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java similarity index 97% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsSystemUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java index 25a5af3a..8bf56b2d 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsSystemUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitSystemUtil.java @@ -26,7 +26,7 @@ import oshi.hardware.CentralProcessor; * @author odboy * @date 2025-08-11 */ -public class CsSystemUtil { +public class KitSystemUtil { public static int getCpuCount() { SystemInfo systemInfo = new SystemInfo(); CentralProcessor processor = systemInfo.getHardware().getProcessor(); diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsValidUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java similarity index 94% rename from cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsValidUtil.java rename to cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java index 94cad2c2..39f2d9ad 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsValidUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/KitValidUtil.java @@ -1,52 +1,52 @@ -/* - * 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.util; - -import cn.odboy.framework.exception.BadRequestException; -import lombok.experimental.UtilityClass; - -import javax.validation.ConstraintViolation; -import javax.validation.Validation; -import javax.validation.Validator; -import javax.validation.ValidatorFactory; -import javax.validation.groups.Default; -import java.util.Set; -import java.util.stream.Collectors; - -/** - * Bean验证工具 - * - * @author odboy - * @date 2025-01-15 - */ -@UtilityClass -public final class CsValidUtil { - private static final Validator VALIDATOR; - - static { - try (ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) { - VALIDATOR = factory.getValidator(); - } - } - - public static void validate(T object) { - Set> violations = VALIDATOR.validate(object, Default.class); - if (!violations.isEmpty()) { - throw new BadRequestException(violations.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining(","))); - } - } +/* + * 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.util; + +import cn.odboy.framework.exception.BadRequestException; +import lombok.experimental.UtilityClass; + +import javax.validation.ConstraintViolation; +import javax.validation.Validation; +import javax.validation.Validator; +import javax.validation.ValidatorFactory; +import javax.validation.groups.Default; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Bean验证工具 + * + * @author odboy + * @date 2025-01-15 + */ +@UtilityClass +public final class KitValidUtil { + private static final Validator VALIDATOR; + + static { + try (ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) { + VALIDATOR = factory.getValidator(); + } + } + + public static void validate(T object) { + Set> violations = VALIDATOR.validate(object, Default.class); + if (!violations.isEmpty()) { + throw new BadRequestException(violations.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining(","))); + } + } } \ No newline at end of file diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java index 72fb32f1..53af0711 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java @@ -24,7 +24,7 @@ import cn.odboy.constant.CaptchaCodeEnum; import cn.odboy.constant.SystemConst; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.model.SystemUserInfoVo; import cn.odboy.system.dal.model.SystemUserJwtVo; import cn.odboy.system.dal.model.SystemUserLoginArgs; @@ -33,7 +33,7 @@ import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.framework.permission.core.CsSecurityHelper; import cn.odboy.system.framework.permission.core.handler.TokenProvider; import cn.odboy.system.framework.permission.core.handler.UserDetailsHandler; -import cn.odboy.util.CsRsaEncryptUtil; +import cn.odboy.util.KitRsaEncryptUtil; import com.wf.captcha.base.Captcha; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -64,7 +64,7 @@ import java.util.concurrent.TimeUnit; @Api(tags = "系统:系统授权接口") public class SystemAuthController { @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; @Autowired private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO; @Autowired @@ -80,7 +80,7 @@ public class SystemAuthController { @AnonymousPostMapping(value = "/login") public ResponseEntity> login(@Validated @RequestBody SystemUserLoginArgs loginRequest, HttpServletRequest request) throws Exception { // 密码解密 - String password = CsRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword()); + String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), loginRequest.getPassword()); // 查询验证码 String code = redisHelper.get(loginRequest.getUuid(), String.class); // 清除验证码 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 a8f28c76..11c17286 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 @@ -16,13 +16,13 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +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.SystemQueryDeptArgs; import cn.odboy.system.service.SystemDeptService; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitPageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -55,17 +55,17 @@ public class SystemDeptController { @ApiOperation("查询部门") @PostMapping @PreAuthorize("@el.check('user:list','dept:list')") - public ResponseEntity> queryDept(@Validated @RequestBody CsPageArgs args) throws Exception { + public ResponseEntity> queryDept(@Validated @RequestBody KitPageArgs args) throws Exception { SystemQueryDeptArgs criteria = args.getArgs(); List depts = systemDeptService.queryAllDept(criteria, true); - return ResponseEntity.ok(CsPageUtil.toPage(depts)); + return ResponseEntity.ok(KitPageUtil.toPage(depts)); } @ApiOperation("查询部门:根据ID获取同级与上级数据") @PostMapping("/queryDeptSuperiorTree") @PreAuthorize("@el.check('user:list','dept:list')") - public ResponseEntity> queryDeptSuperiorTree(@RequestBody List ids, - @RequestParam(defaultValue = "false") Boolean exclude) { + public ResponseEntity> queryDeptSuperiorTree(@RequestBody List ids, + @RequestParam(defaultValue = "false") Boolean exclude) { Set deptSet = new LinkedHashSet<>(); for (Long id : ids) { // 同级数据 diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java index 46cc0122..22eb66ad 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictController.java @@ -16,8 +16,8 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictTb; import cn.odboy.system.dal.model.SystemCreateDictArgs; import cn.odboy.system.dal.model.SystemQueryDictArgs; @@ -60,7 +60,7 @@ public class SystemDictController { @ApiOperation("查询字典") @PostMapping @PreAuthorize("@el.check('dict:list')") - public ResponseEntity> queryDictByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryDictByArgs(@Validated @RequestBody KitPageArgs args) { Page page; SystemQueryDictArgs criteria = args.getArgs(); if (args.getSize() != null) { diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java index fdfeda17..a32ee741 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemDictDetailController.java @@ -16,8 +16,8 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictDetailTb; import cn.odboy.system.dal.model.SystemCreateDictDetailArgs; import cn.odboy.system.dal.model.SystemQueryDictDetailArgs; @@ -44,13 +44,13 @@ public class SystemDictDetailController { @ApiOperation("查询字典详情") @PostMapping - public ResponseEntity> queryDictDetailByCrud(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryDictDetailByCrud(@Validated @RequestBody KitPageArgs args) { return queryDictDetailByArgs(args); } @ApiOperation("查询字典详情") @PostMapping(value = "/queryDictDetailByArgs") - public ResponseEntity> queryDictDetailByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryDictDetailByArgs(@Validated @RequestBody KitPageArgs args) { SystemQueryDictDetailArgs criteria = args.getArgs(); Page page = new Page<>(args.getPage(), args.getSize()); return ResponseEntity.ok(systemDictDetailService.queryDictDetailByArgs(criteria, page)); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java index a6405283..5363c1b2 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemJobController.java @@ -16,8 +16,8 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.model.SystemCreateJobArgs; import cn.odboy.system.dal.model.SystemQueryJobArgs; @@ -52,7 +52,7 @@ public class SystemJobController { @ApiOperation("查询岗位") @PostMapping(value = "/queryAllEnableJob") @PreAuthorize("@el.check('job:list','user:list')") - public ResponseEntity> queryJobByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryJobByArgs(@Validated @RequestBody KitPageArgs args) { SystemQueryJobArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(systemJobService.queryJobByArgs(criteria, page)); @@ -61,7 +61,7 @@ public class SystemJobController { @ApiOperation("查询岗位") @PostMapping @PreAuthorize("@el.check('job:list','user:list')") - public ResponseEntity> queryJobByCrud(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryJobByCrud(@Validated @RequestBody KitPageArgs args) { return queryJobByArgs(args); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java index bbb8a828..a50be464 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemLocalStorageController.java @@ -16,14 +16,14 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.constant.FileTypeEnum; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.service.SystemLocalStorageService; -import cn.odboy.util.CsFileUtil; +import cn.odboy.util.KitFileUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -47,7 +47,7 @@ public class SystemLocalStorageController { @ApiOperation("查询文件") @PostMapping @PreAuthorize("@el.check('storage:list')") - public ResponseEntity> queryLocalStorage(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryLocalStorage(@Validated @RequestBody KitPageArgs args) { SystemQueryStorageArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(localStorageService.queryLocalStorage(criteria, page)); @@ -72,8 +72,8 @@ public class SystemLocalStorageController { @PostMapping("/uploadPicture") public ResponseEntity uploadPicture(@RequestParam MultipartFile file) { // 判断文件是否为图片 - String suffix = CsFileUtil.getSuffix(file.getOriginalFilename()); - if (!FileTypeEnum.IMAGE.getCode().equals(CsFileUtil.getFileType(suffix))) { + String suffix = KitFileUtil.getSuffix(file.getOriginalFilename()); + if (!FileTypeEnum.IMAGE.getCode().equals(KitFileUtil.getFileType(suffix))) { throw new BadRequestException("只能上传图片"); } SystemLocalStorageTb localStorage = localStorageService.uploadFile(null, file); 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 4e3f0deb..0255075b 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 @@ -17,8 +17,8 @@ package cn.odboy.system.controller; import cn.hutool.core.collection.CollectionUtil; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +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.SystemMenuVo; @@ -26,7 +26,7 @@ import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.framework.permission.core.CsSecurityHelper; import cn.odboy.system.service.SystemMenuService; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitPageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -85,17 +85,17 @@ public class SystemMenuController { @PostMapping @ApiOperation("查询菜单") @PreAuthorize("@el.check('menu:list')") - public ResponseEntity> queryAllMenuByCrud(@Validated @RequestBody CsPageArgs args) throws Exception { + public ResponseEntity> queryAllMenuByCrud(@Validated @RequestBody KitPageArgs args) throws Exception { return queryAllMenu(args); } @PostMapping(value = "/queryMenuByArgs") @ApiOperation("查询菜单") @PreAuthorize("@el.check('menu:list')") - public ResponseEntity> queryAllMenu(@Validated @RequestBody CsPageArgs args) throws Exception { + public ResponseEntity> queryAllMenu(@Validated @RequestBody KitPageArgs args) throws Exception { SystemQueryMenuArgs criteria = args.getArgs(); List menuList = systemMenuService.queryAllMenu(criteria, true); - return ResponseEntity.ok(CsPageUtil.toPage(menuList)); + return ResponseEntity.ok(KitPageUtil.toPage(menuList)); } @ApiOperation("查询菜单:根据ID获取同级与上级数据") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java index fc321c2f..61fd91ec 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOnlineController.java @@ -16,11 +16,11 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.model.SystemUserOnlineVo; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; -import cn.odboy.util.CsDesEncryptUtil; +import cn.odboy.util.KitDesEncryptUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; @@ -45,7 +45,7 @@ public class SystemOnlineController { @ApiOperation("查询在线用户") @PostMapping @PreAuthorize("@el.check()") - public ResponseEntity> queryOnlineUser(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryOnlineUser(@Validated @RequestBody KitPageArgs args) { IPage page = new Page<>(args.getPage(), args.getSize()); return ResponseEntity.ok(systemUserOnlineInfoDAO.queryUserOnlineModelPage(args.getArgs(), page)); } @@ -63,7 +63,7 @@ public class SystemOnlineController { public ResponseEntity kickOutUser(@RequestBody Set keys) throws Exception { for (String token : keys) { // 解密Key - token = CsDesEncryptUtil.desDecrypt(token); + token = KitDesEncryptUtil.desDecrypt(token); systemUserOnlineInfoDAO.logoutByToken(token); } return ResponseEntity.ok(null); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java index ad4af42c..ce5fdd4f 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemOssStorageController.java @@ -16,8 +16,8 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; @@ -47,7 +47,7 @@ public class SystemOssStorageController { @ApiOperation("查询文件") @PostMapping @PreAuthorize("@el.check('storage:list')") - public ResponseEntity> queryOssStorage(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryOssStorage(@Validated @RequestBody KitPageArgs args) { SystemQueryStorageArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(systemOssStorageService.queryOssStorage(criteria, page)); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java index df279acd..4edc2bb4 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemQuartzJobController.java @@ -16,9 +16,9 @@ package cn.odboy.system.controller; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemQuartzJobTb; import cn.odboy.system.dal.dataobject.SystemQuartzLogTb; @@ -50,7 +50,7 @@ public class SystemQuartzJobController { @ApiOperation("查询定时任务") @PostMapping @PreAuthorize("@el.check('quartzJob:list')") - public ResponseEntity> queryQuartzJobByCrud(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryQuartzJobByCrud(@Validated @RequestBody KitPageArgs args) { SystemQueryQuartzJobArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(systemQuartzJobService.queryQuartzJobByArgs(criteria, page)); @@ -73,7 +73,7 @@ public class SystemQuartzJobController { @ApiOperation("查询任务执行日志") @PostMapping(value = "/logs") @PreAuthorize("@el.check('quartzJob:list')") - public ResponseEntity> queryQuartzJobLog(SystemQueryQuartzJobArgs args) { + public ResponseEntity> queryQuartzJobLog(SystemQueryQuartzJobArgs args) { Page page = new Page<>(args.getPage(), args.getSize()); return ResponseEntity.ok(systemQuartzJobService.queryQuartzLogByArgs(args, page)); } @@ -133,7 +133,7 @@ public class SystemQuartzJobController { private void checkBean(String beanName) { // 避免调用攻击者可以从SpringContextHolder获得控制jdbcTemplate类 // 并使用getDeclaredMethod调用jdbcTemplate的queryForMap函数,执行任意sql命令。 - if (!CsSpringBeanHolder.getAllServiceBeanName().contains(beanName)) { + if (!KitSpringBeanHolder.getAllServiceBeanName().contains(beanName)) { throw new BadRequestException("非法的 Bean,请重新输入!"); } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java index 25da776b..29290cbc 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemRoleController.java @@ -17,8 +17,8 @@ package cn.odboy.system.controller; import cn.hutool.core.lang.Dict; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.model.SystemCreateRoleArgs; @@ -72,7 +72,7 @@ public class SystemRoleController { @ApiOperation("查询角色") @PostMapping @PreAuthorize("@el.check('roles:list')") - public ResponseEntity> queryRoleByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryRoleByArgs(@Validated @RequestBody KitPageArgs args) { SystemQueryRoleArgs criteria = args.getArgs(); Page page = new Page<>(criteria.getPage(), criteria.getSize()); return ResponseEntity.ok(systemRoleService.queryRoleByArgs(criteria, page)); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java index ce3cc51f..63fe9a57 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemUserController.java @@ -17,9 +17,9 @@ package cn.odboy.system.controller; import cn.hutool.core.collection.CollectionUtil; -import cn.odboy.base.CsPageArgs; -import cn.odboy.base.CsPageResult; -import cn.odboy.base.CsSelectOptionVo; +import cn.odboy.base.KitPageArgs; +import cn.odboy.base.KitPageResult; +import cn.odboy.base.KitSelectOptionVo; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; import cn.odboy.system.constant.SystemCaptchaBizEnum; @@ -30,8 +30,8 @@ import cn.odboy.system.dal.model.SystemQueryUserArgs; import cn.odboy.system.dal.model.SystemUpdateUserPasswordArgs; import cn.odboy.system.framework.permission.core.CsSecurityHelper; import cn.odboy.system.service.*; -import cn.odboy.util.CsPageUtil; -import cn.odboy.util.CsRsaEncryptUtil; +import cn.odboy.util.KitPageUtil; +import cn.odboy.util.KitRsaEncryptUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; @@ -80,7 +80,7 @@ public class SystemUserController { @ApiOperation("查询用户") @PostMapping @PreAuthorize("@el.check('user:list')") - public ResponseEntity> queryUserByArgs(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryUserByArgs(@Validated @RequestBody KitPageArgs args) { Page page = new Page<>(args.getPage(), args.getSize()); SystemQueryUserArgs criteria = args.getArgs(); if (!ObjectUtils.isEmpty(criteria.getDeptId())) { @@ -104,7 +104,7 @@ public class SystemUserController { criteria.getDeptIds().addAll(dataScopes); return ResponseEntity.ok(systemUserService.queryUserByArgs(criteria, page)); } - return ResponseEntity.ok(CsPageUtil.emptyData()); + return ResponseEntity.ok(KitPageUtil.emptyData()); } @ApiOperation("新增用户") @@ -156,8 +156,8 @@ public class SystemUserController { @ApiOperation("修改密码") @PostMapping(value = "/modifyUserPasswordByUsername") public ResponseEntity modifyUserPasswordByUsername(@RequestBody SystemUpdateUserPasswordArgs passVo) throws Exception { - String oldPass = CsRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getOldPass()); - String newPass = CsRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getNewPass()); + String oldPass = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getOldPass()); + String newPass = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), passVo.getNewPass()); SystemUserTb user = systemUserService.getUserByUsername(CsSecurityHelper.getCurrentUsername()); if (!passwordEncoder.matches(oldPass, user.getPassword())) { throw new BadRequestException("修改失败,旧密码错误"); @@ -186,7 +186,7 @@ public class SystemUserController { @ApiOperation("修改邮箱") @PostMapping(value = "/modifyUserEmailByUsername/{code}") public ResponseEntity modifyUserEmailByUsername(@PathVariable String code, @RequestBody SystemUserTb args) throws Exception { - String password = CsRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), args.getPassword()); + String password = KitRsaEncryptUtil.decryptByPrivateKey(properties.getRsa().getPrivateKey(), args.getPassword()); SystemUserTb user = systemUserService.getUserByUsername(CsSecurityHelper.getCurrentUsername()); if (!passwordEncoder.matches(password, user.getPassword())) { throw new BadRequestException("密码错误"); @@ -213,7 +213,7 @@ public class SystemUserController { @ApiOperation("查询用户基础数据") @PostMapping(value = "/queryUserMetadataOptions") @PreAuthorize("@el.check('user:list')") - public ResponseEntity> queryUserMetadataOptions(@Validated @RequestBody CsPageArgs args) { + public ResponseEntity> queryUserMetadataOptions(@Validated @RequestBody KitPageArgs args) { int maxPageSize = 50; SystemQueryUserArgs criteria = args.getArgs(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -226,14 +226,14 @@ public class SystemUserController { c.or(); c.like(SystemUserTb::getNickName, criteria.getBlurry()); }); - List collect = + List collect = systemUserService.queryUserByBlurry(wrapper, new Page<>(criteria.getPage(), maxPageSize)).getRecords().stream().map(m -> { Map ext = new HashMap<>(1); ext.put("id", m.getId()); ext.put("deptId", m.getDeptId()); ext.put("email", m.getEmail()); ext.put("phone", m.getPhone()); - return CsSelectOptionVo.builder().label(m.getNickName()).value(String.valueOf(m.getId())).ext(ext).build(); + return KitSelectOptionVo.builder().label(m.getNickName()).value(String.valueOf(m.getId())).ext(ext).build(); }).collect(Collectors.toList()); return ResponseEntity.ok(collect); } 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 c927e23d..0e9894a2 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,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -35,7 +35,7 @@ import java.util.Set; @Getter @Setter @TableName("system_dept") -public class SystemDeptTb extends CsBaseUserTimeTb { +public class SystemDeptTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @TableId(value = "dept_id", type = IdType.AUTO) diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictDetailTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictDetailTb.java index ad239f8b..efa08c29 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictDetailTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictDetailTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -30,7 +30,7 @@ import javax.validation.constraints.NotNull; @Getter @Setter @TableName("system_dict_detail") -public class SystemDictDetailTb extends CsBaseUserTimeTb { +public class SystemDictDetailTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @ApiModelProperty(value = "ID", hidden = true) diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictTb.java index d9fc956a..aed6b1e5 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemDictTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -28,7 +28,7 @@ import javax.validation.constraints.NotNull; @Getter @Setter @TableName("system_dict") -public class SystemDictTb extends CsBaseUserTimeTb { +public class SystemDictTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @ApiModelProperty(value = "ID", hidden = true) diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemEmailConfigTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemEmailConfigTb.java index bed29f03..36f748c3 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemEmailConfigTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemEmailConfigTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; @@ -31,7 +31,7 @@ import javax.validation.constraints.NotBlank; @Data @TableName("system_email_config") @EqualsAndHashCode(callSuper = false) -public class SystemEmailConfigTb extends CsObject { +public class SystemEmailConfigTb extends KitObject { @TableId("config_id") private Long id; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemJobTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemJobTb.java index ba458f5b..27eeb374 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemJobTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemJobTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -31,7 +31,7 @@ import java.util.Objects; @Getter @Setter @TableName("system_job") -public class SystemJobTb extends CsBaseUserTimeTb { +public class SystemJobTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @TableId(value = "id", type = IdType.AUTO) 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 f67e220d..723d79dd 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,7 +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.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -29,7 +29,7 @@ import lombok.Setter; @Getter @Setter @TableName("system_local_storage") -public class SystemLocalStorageTb extends CsBaseUserTimeTb { +public class SystemLocalStorageTb extends KitBaseUserTimeTb { @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) 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 54c54b90..9ad5f662 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,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; @@ -34,7 +34,7 @@ import java.util.Set; @Getter @Setter @TableName("system_menu") -public class SystemMenuTb extends CsBaseUserTimeTb { +public class SystemMenuTb extends KitBaseUserTimeTb { @NotNull(groups = {Update.class}) @TableId(value = "menu_id", type = IdType.AUTO) diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOperationLogTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOperationLogTb.java index f7f11385..1d5ba991 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOperationLogTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOperationLogTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -39,7 +39,7 @@ import java.util.Date; @ToString @TableName("system_operation_log") @ApiModel(value = "SystemOperationLog对象", description = "审计日志") -public class SystemOperationLogTb extends CsObject { +public class SystemOperationLogTb extends KitObject { /** * id diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOssStorageTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOssStorageTb.java index 3bdc26c0..966adb43 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOssStorageTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemOssStorageTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -38,7 +38,7 @@ import lombok.Setter; @Setter @TableName("system_oss_storage") @ApiModel(value = "SystemOssStorage对象", description = "OSS存储") -public class SystemOssStorageTb extends CsBaseUserTimeTb { +public class SystemOssStorageTb extends KitBaseUserTimeTb { @ApiModelProperty("ID") @TableId(value = "id", type = IdType.AUTO) private Long id; 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 158ec0bb..c914f719 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 @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -28,7 +28,7 @@ import javax.validation.constraints.NotNull; @Getter @Setter @TableName("system_quartz_job") -public class SystemQuartzJobTb extends CsBaseUserTimeTb { +public class SystemQuartzJobTb extends KitBaseUserTimeTb { public static final String JOB_KEY = "JOB_KEY"; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzLogTb.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzLogTb.java index 52ef6c6d..825bcda3 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzLogTb.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/dataobject/SystemQuartzLogTb.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -27,7 +27,7 @@ import java.util.Date; @Data @TableName("system_quartz_log") @EqualsAndHashCode(callSuper = false) -public class SystemQuartzLogTb extends CsObject { +public class SystemQuartzLogTb extends KitObject { @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value = "ID", hidden = true) 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 24ac72bb..e393285c 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 @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import cn.odboy.system.constant.SystemDataScopeEnum; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModelProperty; @@ -34,7 +34,7 @@ import java.util.Set; @Getter @Setter @TableName("system_role") -public class SystemRoleTb extends CsBaseUserTimeTb { +public class SystemRoleTb extends KitBaseUserTimeTb { @NotNull(groups = {Update.class}) @TableId(value = "role_id", type = IdType.AUTO) 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 a5d22b41..ec2c06c2 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 @@ -16,7 +16,7 @@ package cn.odboy.system.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -35,7 +35,7 @@ import java.util.Set; @Getter @Setter @TableName("system_user") -public class SystemUserTb extends CsBaseUserTimeTb { +public class SystemUserTb extends KitBaseUserTimeTb { @NotNull(groups = Update.class) @TableId(value = "user_id", type = IdType.AUTO) diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCheckEmailCaptchaArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCheckEmailCaptchaArgs.java index 79d88974..090f77bb 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCheckEmailCaptchaArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCheckEmailCaptchaArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -24,7 +24,7 @@ import javax.validation.constraints.NotBlank; @Getter @Setter -public class SystemCheckEmailCaptchaArgs extends CsObject { +public class SystemCheckEmailCaptchaArgs extends KitObject { @NotBlank(message = "邮箱不能为空") private String email; @NotBlank(message = "验证码不能为空") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDeptArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDeptArgs.java index 183ea617..a7660f48 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDeptArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDeptArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,7 +25,7 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateDeptArgs extends CsObject { +public class SystemCreateDeptArgs extends KitObject { @NotBlank(message = "部门名称必填") private String name; @NotNull(message = "部门排序必填") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictArgs.java index e08ad3ce..30c72787 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Data; import lombok.EqualsAndHashCode; @@ -24,7 +24,7 @@ import javax.validation.constraints.NotBlank; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateDictArgs extends CsObject { +public class SystemCreateDictArgs extends KitObject { @NotBlank(message = "字典名称必填") private String name; private String description; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictDetailArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictDetailArgs.java index e6ee6e57..722b6ae2 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictDetailArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateDictDetailArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import cn.odboy.system.dal.dataobject.SystemDictTb; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,7 +26,7 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateDictDetailArgs extends CsObject { +public class SystemCreateDictDetailArgs extends KitObject { @NotNull(message = "参数dict必填") private SystemDictTb dict; @NotBlank(message = "字典标签必填") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateJobArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateJobArgs.java index 7e1aa039..b5c5ea6a 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateJobArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateJobArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,7 +25,7 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateJobArgs extends CsObject { +public class SystemCreateJobArgs extends KitObject { @NotBlank(message = "职位名称必填") private String name; @NotNull(message = "职位排序必填") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateRoleArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateRoleArgs.java index 14ee34b9..8f36b28a 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateRoleArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemCreateRoleArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import cn.odboy.system.dal.dataobject.SystemDeptTb; import lombok.Data; import lombok.EqualsAndHashCode; @@ -27,7 +27,7 @@ import java.util.Set; @Data @EqualsAndHashCode(callSuper = false) -public class SystemCreateRoleArgs extends CsObject { +public class SystemCreateRoleArgs extends KitObject { @NotBlank(message = "角色名称必填") private String name; @NotNull(message = "角色级别必填") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuMetaVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuMetaVo.java index 7b6d1c6c..0a50b03b 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuMetaVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemMenuMetaVo.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; @@ -25,7 +25,7 @@ import lombok.EqualsAndHashCode; @Data @AllArgsConstructor @EqualsAndHashCode(callSuper = false) -public class SystemMenuMetaVo extends CsObject { +public class SystemMenuMetaVo extends KitObject { @ApiModelProperty(value = "菜单标题") private String title; 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 f91a54cf..e12020e9 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 @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -28,7 +28,7 @@ import java.util.List; */ @Data @EqualsAndHashCode(callSuper = false) -public class SystemMenuVo extends CsObject { +public class SystemMenuVo extends KitObject { @ApiModelProperty(value = "菜单名称") private String name; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineTreeVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineTreeVo.java index 667b6aa4..a623253f 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineTreeVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineTreeVo.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -24,7 +24,7 @@ import java.util.List; @Getter @Setter -public class SystemProductLineTreeVo extends CsObject { +public class SystemProductLineTreeVo extends KitObject { private String value; private String label; private List children; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineVo.java index f06c0892..24934e75 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemProductLineVo.java @@ -16,13 +16,13 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class SystemProductLineVo extends CsObject { +public class SystemProductLineVo extends KitObject { /** * 部门ID(select的value) */ diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryDictDetailArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryDictDetailArgs.java index e45fd8a4..48391961 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryDictDetailArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryDictDetailArgs.java @@ -16,14 +16,14 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class SystemQueryDictDetailArgs extends CsObject { +public class SystemQueryDictDetailArgs extends KitObject { @ApiModelProperty(value = "标签") private String label; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryUserArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryUserArgs.java index 57053855..171a1ccb 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryUserArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemQueryUserArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -28,7 +28,7 @@ import java.util.Set; @Data @EqualsAndHashCode(callSuper = false) -public class SystemQueryUserArgs extends CsObject { +public class SystemQueryUserArgs extends KitObject { @ApiModelProperty(value = "ID") private Long id; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSimpleUserVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSimpleUserVo.java index b319de22..de6868a4 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSimpleUserVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemSimpleUserVo.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import cn.odboy.system.dal.dataobject.SystemDeptTb; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; @@ -29,7 +29,7 @@ import java.util.Set; @Data @EqualsAndHashCode(callSuper = false) -public class SystemSimpleUserVo extends CsObject { +public class SystemSimpleUserVo extends KitObject { @ApiModelProperty(value = "ID", hidden = true) private Long id; @ApiModelProperty(value = "用户角色") diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUpdateQuartzJobArgs.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUpdateQuartzJobArgs.java index 649d03bf..18b75f94 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUpdateQuartzJobArgs.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUpdateQuartzJobArgs.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,7 +25,7 @@ import javax.validation.constraints.NotNull; @Data @EqualsAndHashCode(callSuper = false) -public class SystemUpdateQuartzJobArgs extends CsObject { +public class SystemUpdateQuartzJobArgs extends KitObject { @NotNull private Long id; private String uuid; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserInfoVo.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserInfoVo.java index 27db8e15..fd80c326 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserInfoVo.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/model/SystemUserInfoVo.java @@ -16,7 +16,7 @@ package cn.odboy.system.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,7 +26,7 @@ import java.util.stream.Collectors; @Data @EqualsAndHashCode(callSuper = false) -public class SystemUserInfoVo extends CsObject { +public class SystemUserInfoVo extends KitObject { private SystemSimpleUserVo user; private List dataScopes; private List authorities; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java index 044eeba9..328f6774 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java @@ -2,7 +2,7 @@ package cn.odboy.system.dal.redis; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.model.SystemUserJwtVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; @@ -14,7 +14,7 @@ import org.springframework.stereotype.Component; @Component public class SystemUserInfoDAO { @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; /** * 添加缓存到Redis 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 2bf743ac..fd182c3d 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 @@ -1,9 +1,9 @@ package cn.odboy.system.dal.redis; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.redis.CsRedisHelper; +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; @@ -25,7 +25,7 @@ import java.util.concurrent.TimeUnit; public class SystemUserOnlineInfoDAO { private final AppProperties properties; private final TokenProvider tokenProvider; - private final CsRedisHelper redisHelper; + private final KitRedisHelper redisHelper; /** * 保存在线用户信息 @@ -37,10 +37,10 @@ public class SystemUserOnlineInfoDAO { public void saveUserJwtModelByToken(SystemUserJwtVo userJwtVo, String token, HttpServletRequest request) { String dept = userJwtVo.getUser().getDept().getName(); - String ip = CsBrowserUtil.getIp(request); + String ip = KitBrowserUtil.getIp(request); String id = tokenProvider.getId(token); - String version = CsBrowserUtil.getVersion(request); - String address = CsIPUtil.getCityInfo(ip); + String version = KitBrowserUtil.getVersion(request); + String address = KitIPUtil.getCityInfo(ip); SystemUserOnlineVo userOnlineVo = null; try { userOnlineVo = new SystemUserOnlineVo(); @@ -51,7 +51,7 @@ public class SystemUserOnlineInfoDAO { userOnlineVo.setBrowser(version); userOnlineVo.setIp(ip); userOnlineVo.setAddress(address); - userOnlineVo.setKey(CsDesEncryptUtil.desEncrypt(token)); + userOnlineVo.setKey(KitDesEncryptUtil.desEncrypt(token)); userOnlineVo.setLoginTime(new Date()); } catch (Exception e) { log.error(e.getMessage(), e); @@ -91,7 +91,7 @@ public class SystemUserOnlineInfoDAO { map.put("登录日期", user.getLoginTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -113,14 +113,14 @@ public class SystemUserOnlineInfoDAO { * @return / */ - public CsPageResult queryUserOnlineModelPage(SystemUserOnlineVo onlineVo, IPage pageable) { + public KitPageResult queryUserOnlineModelPage(SystemUserOnlineVo onlineVo, IPage pageable) { String username = null; if (onlineVo != null) { username = onlineVo.getUserName(); } List onlineUserList = queryUserOnlineModelListByUsername(username); - List paging = CsPageUtil.softPaging(pageable.getCurrent(), pageable.getSize(), onlineUserList); - return CsPageUtil.toPage(paging, onlineUserList.size()); + List paging = KitPageUtil.softPaging(pageable.getCurrent(), pageable.getSize(), onlineUserList); + return KitPageUtil.toPage(paging, onlineUserList.size()); } /** diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/bizlock/BizLockAspect.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/bizlock/BizLockAspect.java index fc6739c6..9bc76c99 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/bizlock/BizLockAspect.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/bizlock/BizLockAspect.java @@ -17,7 +17,7 @@ package cn.odboy.system.framework.bizlock; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -33,10 +33,10 @@ import java.lang.reflect.Method; @Aspect @Component public class BizLockAspect { - private final CsRedisHelper redisHelper; + private final KitRedisHelper redisHelper; private final ExpressionParser parser = new SpelExpressionParser(); - public BizLockAspect(CsRedisHelper redisHelper) { + public BizLockAspect(KitRedisHelper redisHelper) { this.redisHelper = redisHelper; } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/OperationLogAspect.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/OperationLogAspect.java index b33c6741..408b4d1f 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/OperationLogAspect.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/OperationLogAspect.java @@ -20,12 +20,12 @@ import cn.hutool.core.date.TimeInterval; import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsRequestHolder; +import cn.odboy.framework.context.KitRequestHolder; import cn.odboy.system.dal.dataobject.SystemOperationLogTb; import cn.odboy.system.dal.mysql.SystemOperationLogMapper; import cn.odboy.system.framework.permission.core.CsSecurityHelper; -import cn.odboy.util.CsBrowserUtil; -import cn.odboy.util.CsIPUtil; +import cn.odboy.util.KitBrowserUtil; +import cn.odboy.util.KitIPUtil; import com.alibaba.fastjson2.JSON; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -101,10 +101,10 @@ public class OperationLogAspect { String method = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; Object[] args = joinPoint.getArgs(); String params = JSON.toJSONString(args); - HttpServletRequest request = CsRequestHolder.getHttpServletRequest(); - String requestIp = CsBrowserUtil.getIp(request); - String browserInfo = CsBrowserUtil.getVersion(request); - String address = CsIPUtil.getCityInfo(requestIp); + HttpServletRequest request = KitRequestHolder.getHttpServletRequest(); + String requestIp = KitBrowserUtil.getIp(request); + String browserInfo = KitBrowserUtil.getVersion(request); + String address = KitIPUtil.getCityInfo(requestIp); String username = CsSecurityHelper.getCurrentUsername(); SystemOperationLogTb record = new SystemOperationLogTb(); record.setBizName(bizName); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/core/SystemOperationLogAspect.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/core/SystemOperationLogAspect.java index 1f82c23c..53c810a8 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/core/SystemOperationLogAspect.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/operalog/core/SystemOperationLogAspect.java @@ -19,13 +19,13 @@ import cn.hutool.core.date.TimeInterval; import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsRequestHolder; +import cn.odboy.framework.context.KitRequestHolder; import cn.odboy.system.dal.dataobject.SystemOperationLogTb; import cn.odboy.system.dal.mysql.SystemOperationLogMapper; import cn.odboy.system.framework.operalog.annotaions.OperationLog; import cn.odboy.system.framework.permission.core.CsSecurityHelper; -import cn.odboy.util.CsBrowserUtil; -import cn.odboy.util.CsIPUtil; +import cn.odboy.util.KitBrowserUtil; +import cn.odboy.util.KitIPUtil; import com.alibaba.fastjson2.JSON; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -103,10 +103,10 @@ public class SystemOperationLogAspect { String method = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; Object[] args = joinPoint.getArgs(); String params = JSON.toJSONString(args); - HttpServletRequest request = CsRequestHolder.getHttpServletRequest(); - String requestIp = CsBrowserUtil.getIp(request); - String browserInfo = CsBrowserUtil.getVersion(request); - String address = CsIPUtil.getCityInfo(requestIp); + HttpServletRequest request = KitRequestHolder.getHttpServletRequest(); + String requestIp = KitBrowserUtil.getIp(request); + String browserInfo = KitBrowserUtil.getVersion(request); + String address = KitIPUtil.getCityInfo(requestIp); String username = CsSecurityHelper.getCurrentUsername(); SystemOperationLogTb record = new SystemOperationLogTb(); record.setBizName(bizName); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/SpringSecurityConfig.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/SpringSecurityConfig.java index b31a83c3..c0b68843 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/SpringSecurityConfig.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/config/SpringSecurityConfig.java @@ -21,7 +21,7 @@ import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.framework.permission.core.handler.JwtAccessDeniedHandler; import cn.odboy.system.framework.permission.core.handler.JwtAuthenticationEntryPoint; import cn.odboy.system.framework.permission.core.handler.TokenProvider; -import cn.odboy.util.CsAnonTagUtil; +import cn.odboy.util.KitAnonTagUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -70,7 +70,7 @@ public class SpringSecurityConfig { @Bean protected SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { // 获取匿名标记 - Map> anonymousUrls = CsAnonTagUtil.getAnonymousUrl(applicationContext); + Map> anonymousUrls = KitAnonTagUtil.getAnonymousUrl(applicationContext); return httpSecurity // 禁用 CSRF .csrf().disable().addFilter(corsFilter) diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java index 1bcae816..d627b5ce 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/CsSecurityHelper.java @@ -20,7 +20,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.jwt.JWT; import cn.hutool.jwt.JWTUtil; import cn.odboy.constant.SystemConst; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.system.constant.SystemDataScopeEnum; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; @@ -48,7 +48,7 @@ public class CsSecurityHelper { * @return UserDetails */ public static UserDetails getCurrentUser() { - UserDetailsService userDetailsService = CsSpringBeanHolder.getBean(UserDetailsService.class); + UserDetailsService userDetailsService = KitSpringBeanHolder.getBean(UserDetailsService.class); return userDetailsService.loadUserByUsername(getCurrentUsername()); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/TokenProvider.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/TokenProvider.java index fb6c4311..a4807779 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/TokenProvider.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/permission/core/handler/TokenProvider.java @@ -21,7 +21,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.odboy.constant.SystemConst; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.dal.model.SystemUserJwtVo; import cn.odboy.system.dal.redis.SystemCacheKey; import io.jsonwebtoken.Claims; @@ -51,7 +51,7 @@ public class TokenProvider implements InitializingBean { public static final String AUTHORITIES_UUID_KEY = "uid"; public static final String AUTHORITIES_UID_KEY = "userId"; @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; @Autowired private AppProperties properties; // 0.11.x版本 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 62b9450a..71c96aff 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 @@ -22,9 +22,9 @@ import cn.hutool.extra.template.Template; import cn.hutool.extra.template.TemplateConfig; import cn.hutool.extra.template.TemplateEngine; import cn.hutool.extra.template.TemplateUtil; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.quartz.core.QuartzRunnable; -import cn.odboy.framework.redis.CsRedisHelper; +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.SystemSendEmailArgs; @@ -47,16 +47,16 @@ public class ExecutionJobBean extends QuartzJobBean { /** * 此处仅供参考,可根据任务执行情况自定义线程池参数 */ - private final ThreadPoolTaskExecutor executor = CsSpringBeanHolder.getBean("taskAsync"); + private final ThreadPoolTaskExecutor executor = KitSpringBeanHolder.getBean("taskAsync"); @Override public void executeInternal(JobExecutionContext context) { // 获取任务 SystemQuartzJobTb quartzJob = (SystemQuartzJobTb)context.getMergedJobDataMap().get(SystemQuartzJobTb.JOB_KEY); // 获取spring bean - SystemQuartzLogMapper quartzLogMapper = CsSpringBeanHolder.getBean(SystemQuartzLogMapper.class); - SystemQuartzJobService systemQuartzJobService = CsSpringBeanHolder.getBean(SystemQuartzJobService.class); - CsRedisHelper redisHelper = CsSpringBeanHolder.getBean(CsRedisHelper.class); + SystemQuartzLogMapper quartzLogMapper = KitSpringBeanHolder.getBean(SystemQuartzLogMapper.class); + SystemQuartzJobService systemQuartzJobService = KitSpringBeanHolder.getBean(SystemQuartzJobService.class); + KitRedisHelper redisHelper = KitSpringBeanHolder.getBean(KitRedisHelper.class); String uuid = quartzJob.getUuid(); @@ -104,7 +104,7 @@ public class ExecutionJobBean extends QuartzJobBean { systemQuartzJobService.switchQuartzJobStatus(quartzJob); } if (quartzJob.getEmail() != null) { - SystemEmailService emailService = CsSpringBeanHolder.getBean(SystemEmailService.class); + SystemEmailService emailService = KitSpringBeanHolder.getBean(SystemEmailService.class); // 邮箱报警 if (StrUtil.isNotBlank(quartzJob.getEmail())) { SystemSendEmailArgs sendEmailRequest = taskAlarm(quartzJob, ExceptionUtil.stacktraceToString(e)); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/storage/minio/MinioRepository.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/storage/minio/MinioRepository.java index 5b2f8514..01ba9a1a 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/storage/minio/MinioRepository.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/storage/minio/MinioRepository.java @@ -28,8 +28,8 @@ import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.properties.model.OSSConfigModel; import cn.odboy.framework.properties.model.StorageOSSModel; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; -import cn.odboy.util.CsDateUtil; -import cn.odboy.util.CsFileUtil; +import cn.odboy.util.KitDateUtil; +import cn.odboy.util.KitFileUtil; import io.minio.*; import io.minio.http.Method; import io.minio.messages.Bucket; @@ -140,12 +140,12 @@ public class MinioRepository { StorageOSSModel ossConfig = properties.getOss(); OSSConfigModel ossMinioConfig = ossConfig.getMinio(); String type = FileTypeUtil.getType(tempFile); - String prefix = CsFileUtil.getPrefix(tempFile); - String suffix = CsFileUtil.getSuffix(tempFile); + String prefix = KitFileUtil.getPrefix(tempFile); + String suffix = KitFileUtil.getSuffix(tempFile); String fileCode = IdUtil.fastSimpleUUID(); String fileName = fileCode + FileUtil.getSuffix(originalFilename); - String objectName = CsDateUtil.getNowDateStr() + "/" + fileName; + String objectName = KitDateUtil.getNowDateStr() + "/" + fileName; log.info("上传文件,原文件名:{},上传后文件名:{}", originalFilename, fileName); String fileUrl = ossMinioConfig.getEndpoint() + "/" + ossMinioConfig.getBucketName() + "/" + objectName; @@ -163,7 +163,7 @@ public class MinioRepository { systemOssStorageTb.setFileCode(fileCode); systemOssStorageTb.setObjectName(objectName); - try (InputStream fileInputStream = CsFileUtil.getInputStream(tempFile)) { + try (InputStream fileInputStream = KitFileUtil.getInputStream(tempFile)) { PutObjectArgs objectArgs = PutObjectArgs.builder().bucket(ossMinioConfig.getBucketName()).object(objectName).stream(fileInputStream, fileSize, -1).contentType(contentType) .build(); @@ -174,7 +174,7 @@ public class MinioRepository { log.error("文件上传失败,文件名:{},错误信息", originalFilename, e); } finally { try { - CsFileUtil.del(tempFile); + KitFileUtil.del(tempFile); } catch (IORuntimeException e) { // 删除失败忽略 } @@ -195,11 +195,11 @@ public class MinioRepository { } long size = file.getSize(); - CsFileUtil.checkSize(properties.getOss().getMaxSize(), size); + KitFileUtil.checkSize(properties.getOss().getMaxSize(), size); String fileName = UUID.randomUUID() + FileUtil.getSuffix(originalFilename); // yyyy/MM/dd/fileName.xxx - String objectName = CsDateUtil.getNowDateTimeStr() + "/" + fileName; + String objectName = KitDateUtil.getNowDateTimeStr() + "/" + fileName; log.info("准备上传文件,原文件名:{},上传后文件名:{}", originalFilename, fileName); try (InputStream fileInputStream = file.getInputStream()) { 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 ac8f5d1e..e0879cf9 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 @@ -21,7 +21,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.constant.SystemDataScopeEnum; import cn.odboy.system.dal.dataobject.SystemDeptTb; @@ -33,8 +33,8 @@ import cn.odboy.system.dal.mysql.SystemDeptMapper; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.dal.mysql.SystemUserMapper; import cn.odboy.system.framework.permission.core.CsSecurityHelper; -import cn.odboy.util.CsClassUtil; -import cn.odboy.util.CsFileUtil; +import cn.odboy.util.KitClassUtil; +import cn.odboy.util.KitFileUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -119,7 +119,7 @@ public class SystemDeptService { map.put("创建日期", dept.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -166,7 +166,7 @@ public class SystemDeptService { if (dataScopeType.equals(SystemDataScopeEnum.ALL.getValue())) { criteria.setPidIsNull(true); } - List fields = CsClassUtil.getAllFields(criteria.getClass(), new ArrayList<>()); + List fields = KitClassUtil.getAllFields(criteria.getClass(), new ArrayList<>()); List fieldNames = new ArrayList<>() {{ add("pidIsNull"); add("enabled"); @@ -291,7 +291,7 @@ public class SystemDeptService { * @return / */ - public CsPageResult buildDeptTree(List deptList) { + public KitPageResult buildDeptTree(List deptList) { Set trees = new LinkedHashSet<>(); Set deptSet = new LinkedHashSet<>(); List deptNames = deptList.stream().map(SystemDeptTb::getName).collect(Collectors.toList()); @@ -319,7 +319,7 @@ public class SystemDeptService { if (CollectionUtil.isEmpty(trees)) { trees = deptSet; } - CsPageResult baseResult = new CsPageResult<>(); + 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 48b41b6d..c67b78db 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 @@ -17,12 +17,12 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictDetailTb; import cn.odboy.system.dal.model.SystemCreateDictDetailArgs; import cn.odboy.system.dal.model.SystemQueryDictDetailArgs; import cn.odboy.system.dal.mysql.SystemDictDetailMapper; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -78,8 +78,8 @@ public class SystemDictDetailService { * @return / */ - public CsPageResult queryDictDetailByArgs(SystemQueryDictDetailArgs args, Page page) { - return CsPageUtil.toPage(systemDictDetailMapper.selectDictDetailByArgs(args, page)); + public KitPageResult queryDictDetailByArgs(SystemQueryDictDetailArgs args, Page page) { + return KitPageUtil.toPage(systemDictDetailMapper.selectDictDetailByArgs(args, page)); } /** 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 7883e896..14aae197 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 @@ -18,7 +18,7 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemDictDetailTb; import cn.odboy.system.dal.dataobject.SystemDictTb; import cn.odboy.system.dal.model.SystemCreateDictArgs; @@ -26,8 +26,8 @@ import cn.odboy.system.dal.model.SystemQueryDictArgs; 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.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -117,7 +117,7 @@ public class SystemDictService { list.add(map); } } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -128,8 +128,8 @@ public class SystemDictService { * @return / */ - public CsPageResult queryDictByArgs(SystemQueryDictArgs args, Page page) { - return CsPageUtil.toPage(systemDictMapper.selectDictByArgs(args, page)); + public KitPageResult queryDictByArgs(SystemQueryDictArgs args, Page page) { + return KitPageUtil.toPage(systemDictMapper.selectDictByArgs(args, page)); } /** diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemEmailService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemEmailService.java index 462f50e2..26235357 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemEmailService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemEmailService.java @@ -22,13 +22,13 @@ import cn.hutool.extra.mail.Mail; import cn.hutool.extra.mail.MailAccount; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.redis.CsRedisHelper; +import cn.odboy.framework.redis.KitRedisHelper; import cn.odboy.system.constant.SystemCaptchaBizEnum; import cn.odboy.system.dal.dataobject.SystemEmailConfigTb; import cn.odboy.system.dal.model.SystemSendEmailArgs; import cn.odboy.system.dal.mysql.SystemEmailConfigMapper; -import cn.odboy.util.CsDesEncryptUtil; -import cn.odboy.util.CsResourceTemplateUtil; +import cn.odboy.util.KitDesEncryptUtil; +import cn.odboy.util.KitResourceTemplateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -43,7 +43,7 @@ public class SystemEmailService { @Autowired private SystemEmailConfigMapper systemEmailConfigMapper; @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; @Autowired private AppProperties properties; @Value("${spring.application.title}") @@ -60,7 +60,7 @@ public class SystemEmailService { SystemEmailConfigTb systemEmailConfigTb = getLastEmailConfig(); if (!emailConfig.getPassword().equals(systemEmailConfigTb.getPassword())) { // 对称加密 - systemEmailConfigTb.setPassword(CsDesEncryptUtil.desEncrypt(emailConfig.getPassword())); + systemEmailConfigTb.setPassword(KitDesEncryptUtil.desEncrypt(emailConfig.getPassword())); } systemEmailConfigTb.setId(1L); systemEmailConfigMapper.insertOrUpdate(systemEmailConfigTb); @@ -87,7 +87,7 @@ public class SystemEmailService { account.setAuth(true); try { // 对称解密 - account.setPass(CsDesEncryptUtil.desDecrypt(systemEmailConfigTb.getPassword())); + account.setPass(KitDesEncryptUtil.desDecrypt(systemEmailConfigTb.getPassword())); } catch (Exception e) { throw new BadRequestException(e.getMessage()); } @@ -144,9 +144,9 @@ public class SystemEmailService { throw new BadRequestException("服务异常, 请联系网站负责人"); } // 存在就再次发送原来的验证码 - content = CsResourceTemplateUtil.render(null, biEnum.getTemplateName(), Dict.create().set("code", code)); + content = KitResourceTemplateUtil.render(null, biEnum.getTemplateName(), Dict.create().set("code", code)); } else { - content = CsResourceTemplateUtil.render(null, biEnum.getTemplateName(), Dict.create().set("code", oldCode)); + content = KitResourceTemplateUtil.render(null, biEnum.getTemplateName(), Dict.create().set("code", oldCode)); } SystemSendEmailArgs sendEmailRequest = new SystemSendEmailArgs(Collections.singletonList(email), applicationTitle, content); sendEmail(sendEmailRequest); 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 c9a0de24..4fda7dde 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 @@ -17,15 +17,15 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.model.SystemCreateJobArgs; import cn.odboy.system.dal.model.SystemQueryJobArgs; import cn.odboy.system.dal.mysql.SystemJobMapper; import cn.odboy.system.dal.mysql.SystemUserMapper; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -102,7 +102,7 @@ public class SystemJobService { map.put("创建日期", job.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -113,8 +113,8 @@ public class SystemJobService { * @return */ - public CsPageResult queryJobByArgs(SystemQueryJobArgs args, Page page) { - return CsPageUtil.toPage(systemJobMapper.selectJobByArgs(args, page)); + public KitPageResult queryJobByArgs(SystemQueryJobArgs args, Page page) { + return KitPageUtil.toPage(systemJobMapper.selectJobByArgs(args, page)); } /** @@ -125,7 +125,7 @@ public class SystemJobService { */ public List queryJobByArgs(SystemQueryJobArgs args) { - return systemJobMapper.selectJobByArgs(args, CsPageUtil.getCount(systemJobMapper)).getRecords(); + return systemJobMapper.selectJobByArgs(args, KitPageUtil.getCount(systemJobMapper)).getRecords(); } /** 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 c9ade772..cb004a0d 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 @@ -20,15 +20,15 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; -import cn.odboy.framework.server.core.CsFileLocalUploadHelper; +import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemLocalStorageTb; import cn.odboy.system.dal.model.SystemQueryStorageArgs; import cn.odboy.system.dal.mysql.SystemLocalStorageMapper; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -45,7 +45,7 @@ public class SystemLocalStorageService { @Autowired private SystemLocalStorageMapper systemLocalStorageMapper; @Autowired - private CsFileLocalUploadHelper fileUploadPathHelper; + private KitFileLocalUploadHelper fileUploadPathHelper; @Autowired private AppProperties properties; @@ -59,17 +59,17 @@ public class SystemLocalStorageService { @Transactional(rollbackFor = Exception.class) public SystemLocalStorageTb uploadFile(String name, MultipartFile multipartFile) { long size = multipartFile.getSize(); - CsFileUtil.checkSize(properties.getOss().getMaxSize(), size); - String suffix = CsFileUtil.getSuffix(multipartFile.getOriginalFilename()); - String type = CsFileUtil.getFileType(suffix); + KitFileUtil.checkSize(properties.getOss().getMaxSize(), size); + String suffix = KitFileUtil.getSuffix(multipartFile.getOriginalFilename()); + String type = KitFileUtil.getFileType(suffix); String uploadDateStr = DateUtil.format(new Date(), DatePattern.PURE_DATE_FORMAT); - File file = CsFileUtil.upload(multipartFile, fileUploadPathHelper.getPath() + uploadDateStr + File.separator); + File file = KitFileUtil.upload(multipartFile, fileUploadPathHelper.getPath() + uploadDateStr + File.separator); if (file == null) { throw new BadRequestException("上传失败"); } try { - String formatSize = CsFileUtil.getSize(size); - String prefixName = StrUtil.isBlank(name) ? CsFileUtil.getPrefix(multipartFile.getOriginalFilename()) : name; + String formatSize = KitFileUtil.getSize(size); + String prefixName = StrUtil.isBlank(name) ? KitFileUtil.getPrefix(multipartFile.getOriginalFilename()) : name; SystemLocalStorageTb localStorage = new SystemLocalStorageTb(); localStorage.setRealName(file.getName()); localStorage.setName(prefixName); @@ -81,7 +81,7 @@ public class SystemLocalStorageService { systemLocalStorageMapper.insert(localStorage); return localStorage; } catch (Exception e) { - CsFileUtil.del(file); + KitFileUtil.del(file); throw e; } } @@ -108,7 +108,7 @@ public class SystemLocalStorageService { for (Long id : ids) { SystemLocalStorageTb storage = systemLocalStorageMapper.selectById(id); try { - CsFileUtil.del(storage.getPath()); + KitFileUtil.del(storage.getPath()); systemLocalStorageMapper.deleteById(storage); } catch (IORuntimeException e) { throw new BadRequestException("删除文件 " + storage.getName() + " 失败"); @@ -135,7 +135,7 @@ public class SystemLocalStorageService { map.put("创建日期", localStorage.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -145,8 +145,8 @@ public class SystemLocalStorageService { * @param page 分页参数 * @return / */ - public CsPageResult queryLocalStorage(SystemQueryStorageArgs criteria, Page page) { - return CsPageUtil.toPage(systemLocalStorageMapper.selectLocalStorageByArgs(criteria, page)); + public KitPageResult queryLocalStorage(SystemQueryStorageArgs criteria, Page page) { + return KitPageUtil.toPage(systemLocalStorageMapper.selectLocalStorageByArgs(criteria, page)); } /** @@ -156,6 +156,6 @@ public class SystemLocalStorageService { * @return / */ public List queryLocalStorage(SystemQueryStorageArgs criteria) { - return systemLocalStorageMapper.selectLocalStorageByArgs(criteria, CsPageUtil.getCount(systemLocalStorageMapper)).getRecords(); + return systemLocalStorageMapper.selectLocalStorageByArgs(criteria, KitPageUtil.getCount(systemLocalStorageMapper)).getRecords(); } } 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 0f27e864..4b1a4b99 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 @@ -20,7 +20,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.constant.TransferProtocolConst; import cn.odboy.system.dal.dataobject.SystemMenuTb; @@ -31,8 +31,8 @@ import cn.odboy.system.dal.model.SystemMenuVo; import cn.odboy.system.dal.model.SystemQueryMenuArgs; import cn.odboy.system.dal.mysql.SystemMenuMapper; import cn.odboy.system.dal.mysql.SystemRoleMenuMapper; -import cn.odboy.util.CsClassUtil; -import cn.odboy.util.CsFileUtil; +import cn.odboy.util.KitClassUtil; +import cn.odboy.util.KitFileUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -158,7 +158,7 @@ public class SystemMenuService { } List menuIds = menuSet.stream().map(SystemMenuTb::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); if (CollUtil.isNotEmpty(menuIds)) { - CsSpringBeanHolder.getBean(SystemMenuService.class).removeRoleMenuByMenuIds(menuIds); + KitSpringBeanHolder.getBean(SystemMenuService.class).removeRoleMenuByMenuIds(menuIds); systemMenuMapper.deleteByIds(menuIds); } for (SystemMenuTb menu : menuSet) { @@ -192,7 +192,7 @@ public class SystemMenuService { map.put("创建日期", menu.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } @Transactional(rollbackFor = Exception.class) @@ -215,7 +215,7 @@ public class SystemMenuService { public List queryAllMenu(SystemQueryMenuArgs criteria, Boolean isQuery) throws Exception { if (Boolean.TRUE.equals(isQuery)) { criteria.setPidIsNull(true); - List fields = CsClassUtil.getAllFields(criteria.getClass(), new ArrayList<>()); + List fields = KitClassUtil.getAllFields(criteria.getClass(), new ArrayList<>()); for (Field field : fields) { //设置对象的访问权限, 保证对private的属性的访问 field.setAccessible(true); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMonitorService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMonitorService.java index fe093de3..d0b39071 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMonitorService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMonitorService.java @@ -19,8 +19,8 @@ package cn.odboy.system.service; import cn.hutool.core.date.BetweenFormatter.Level; import cn.hutool.core.date.DateUtil; import cn.odboy.constant.SystemConst; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsIPUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitIPUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import oshi.SystemInfo; @@ -94,9 +94,9 @@ public class SystemMonitorService { } } long used = total - available; - diskInfo.put("total", total > 0 ? CsFileUtil.getSize(total) : "?"); - diskInfo.put("available", CsFileUtil.getSize(available)); - diskInfo.put("used", CsFileUtil.getSize(used)); + diskInfo.put("total", total > 0 ? KitFileUtil.getSize(total) : "?"); + diskInfo.put("available", KitFileUtil.getSize(available)); + diskInfo.put("used", KitFileUtil.getSize(used)); if (total != 0) { diskInfo.put("usageRate", df.format(used / (double)total * 100)); } else { @@ -197,7 +197,7 @@ public class SystemMonitorService { // 系统信息 systemInfo.put("os", os.toString()); systemInfo.put("day", formatBetween); - systemInfo.put("ip", CsIPUtil.getLocalIp()); + systemInfo.put("ip", KitIPUtil.getLocalIp()); return systemInfo; } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java index 24e849c5..03bdc859 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemOssStorageService.java @@ -16,7 +16,7 @@ package cn.odboy.system.service; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; import cn.odboy.system.dal.model.SystemOssStorageVo; import cn.odboy.system.dal.model.SystemQueryStorageArgs; @@ -37,7 +37,7 @@ import java.util.List; * @since 2025-07-15 */ public interface SystemOssStorageService extends IService { - CsPageResult queryOssStorage(SystemQueryStorageArgs criteria, Page page); + KitPageResult queryOssStorage(SystemQueryStorageArgs criteria, Page page); List queryOssStorage(SystemQueryStorageArgs criteria); 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 79497cb8..d3034866 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 @@ -19,9 +19,9 @@ 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.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.redis.CsRedisHelper; +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.SystemQueryQuartzJobArgs; @@ -29,8 +29,8 @@ 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.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.quartz.CronExpression; import org.springframework.beans.factory.annotation.Autowired; @@ -50,7 +50,7 @@ public class SystemQuartzJobService { @Autowired private QuartzManage quartzManage; @Autowired - private CsRedisHelper redisHelper; + private KitRedisHelper redisHelper; /** * 创建 @@ -193,7 +193,7 @@ public class SystemQuartzJobService { map.put("创建日期", quartzJob.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -219,7 +219,7 @@ public class SystemQuartzJobService { map.put("创建日期", quartzLog.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -230,8 +230,8 @@ public class SystemQuartzJobService { * @return / */ - public CsPageResult queryQuartzJobByArgs(SystemQueryQuartzJobArgs criteria, Page page) { - return CsPageUtil.toPage(systemQuartzJobMapper.selectQuartzJobByArgs(criteria, page)); + public KitPageResult queryQuartzJobByArgs(SystemQueryQuartzJobArgs criteria, Page page) { + return KitPageUtil.toPage(systemQuartzJobMapper.selectQuartzJobByArgs(criteria, page)); } /** @@ -242,8 +242,8 @@ public class SystemQuartzJobService { * @return / */ - public CsPageResult queryQuartzLogByArgs(SystemQueryQuartzJobArgs criteria, Page page) { - return CsPageUtil.toPage(systemQuartzLogMapper.selectQuartzLogByArgs(criteria, page)); + public KitPageResult queryQuartzLogByArgs(SystemQueryQuartzJobArgs criteria, Page page) { + return KitPageUtil.toPage(systemQuartzLogMapper.selectQuartzLogByArgs(criteria, page)); } /** @@ -254,7 +254,7 @@ public class SystemQuartzJobService { */ public List queryQuartzJobByArgs(SystemQueryQuartzJobArgs criteria) { - return systemQuartzJobMapper.selectQuartzJobByArgs(criteria, CsPageUtil.getCount(systemQuartzJobMapper)).getRecords(); + return systemQuartzJobMapper.selectQuartzJobByArgs(criteria, KitPageUtil.getCount(systemQuartzJobMapper)).getRecords(); } /** @@ -265,7 +265,7 @@ public class SystemQuartzJobService { */ public List queryQuartzLogByArgs(SystemQueryQuartzJobArgs criteria) { - return systemQuartzLogMapper.selectQuartzLogByArgs(criteria, CsPageUtil.getCount(systemQuartzLogMapper)).getRecords(); + return systemQuartzLogMapper.selectQuartzLogByArgs(criteria, KitPageUtil.getCount(systemQuartzLogMapper)).getRecords(); } public SystemQuartzJobTb getQuartzJobById(Long id) { 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 b58accff..450c933f 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 @@ -20,7 +20,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemMenuTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; @@ -32,8 +32,8 @@ import cn.odboy.system.dal.mysql.SystemRoleDeptMapper; import cn.odboy.system.dal.mysql.SystemRoleMapper; import cn.odboy.system.dal.mysql.SystemRoleMenuMapper; import cn.odboy.system.dal.mysql.SystemUserMapper; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -148,7 +148,7 @@ public class SystemRoleService { map.put("创建日期", role.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -180,11 +180,11 @@ public class SystemRoleService { * @return */ - public CsPageResult queryRoleByArgs(SystemQueryRoleArgs criteria, Page page) { + public KitPageResult queryRoleByArgs(SystemQueryRoleArgs criteria, Page page) { criteria.setOffset(page.offset()); List roles = systemRoleMapper.selectRoleByArgs(criteria); Long total = systemRoleMapper.countRoleByArgs(criteria); - return CsPageUtil.toPage(roles, total); + return KitPageUtil.toPage(roles, total); } /** 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 6a9b43f3..1a002bcc 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 @@ -17,9 +17,9 @@ package cn.odboy.system.service; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; -import cn.odboy.framework.server.core.CsFileLocalUploadHelper; +import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemJobTb; import cn.odboy.system.dal.dataobject.SystemRoleTb; import cn.odboy.system.dal.dataobject.SystemUserTb; @@ -30,8 +30,8 @@ import cn.odboy.system.dal.mysql.SystemUserRoleMapper; import cn.odboy.system.dal.redis.SystemUserInfoDAO; import cn.odboy.system.dal.redis.SystemUserOnlineInfoDAO; import cn.odboy.system.framework.permission.core.CsSecurityHelper; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -59,7 +59,7 @@ public class SystemUserService { @Autowired private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO; @Autowired - private CsFileLocalUploadHelper fileUploadPathHelper; + private KitFileLocalUploadHelper fileUploadPathHelper; /** * 新增用户 @@ -222,20 +222,20 @@ public class SystemUserService { throw new BadRequestException("异常用户数据, 请联系管理员处理"); } // 文件大小验证 - CsFileUtil.checkSize(fileUploadPathHelper.getAvatarMaxSize(), multipartFile.getSize()); + KitFileUtil.checkSize(fileUploadPathHelper.getAvatarMaxSize(), multipartFile.getSize()); // 验证文件上传的格式 String image = "gif jpg png jpeg"; - String fileType = CsFileUtil.getSuffix(multipartFile.getOriginalFilename()); + String fileType = KitFileUtil.getSuffix(multipartFile.getOriginalFilename()); if (fileType != null && !image.contains(fileType)) { throw new BadRequestException("文件格式错误!, 仅支持 " + image + " 格式"); } String oldPath = user.getAvatarPath(); - File file = CsFileUtil.upload(multipartFile, fileUploadPathHelper.getPath()); + File file = KitFileUtil.upload(multipartFile, fileUploadPathHelper.getPath()); user.setAvatarPath(Objects.requireNonNull(file).getPath()); user.setAvatarName(file.getName()); systemUserMapper.insertOrUpdate(user); if (StrUtil.isNotBlank(oldPath)) { - CsFileUtil.del(oldPath); + KitFileUtil.del(oldPath); } systemUserInfoDAO.deleteUserLoginInfoByUserName(username); return new HashMap<>(1) {{ @@ -280,7 +280,7 @@ public class SystemUserService { map.put("创建日期", user.getCreateTime()); list.add(map); } - CsFileUtil.downloadExcel(list, response); + KitFileUtil.downloadExcel(list, response); } /** @@ -291,9 +291,9 @@ public class SystemUserService { * @return / */ - public CsPageResult queryUserByArgs(SystemQueryUserArgs criteria, Page page) { + public KitPageResult queryUserByArgs(SystemQueryUserArgs criteria, Page page) { IPage users = systemUserMapper.selectUserByArgs(criteria, page); - return CsPageUtil.toPage(users); + return KitPageUtil.toPage(users); } /** diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemOssStorageServiceImpl.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemOssStorageServiceImpl.java index ea0f34fe..2b449310 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemOssStorageServiceImpl.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/impl/SystemOssStorageServiceImpl.java @@ -18,20 +18,20 @@ package cn.odboy.system.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.base.CsPageResult; +import cn.odboy.base.KitPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.properties.model.StorageOSSModel; -import cn.odboy.framework.server.core.CsFileLocalUploadHelper; +import cn.odboy.framework.server.core.KitFileLocalUploadHelper; import cn.odboy.system.dal.dataobject.SystemOssStorageTb; import cn.odboy.system.dal.model.SystemOssStorageVo; 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.CsDateUtil; -import cn.odboy.util.CsFileUtil; -import cn.odboy.util.CsPageUtil; +import cn.odboy.util.KitDateUtil; +import cn.odboy.util.KitFileUtil; +import cn.odboy.util.KitPageUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -63,17 +63,17 @@ public class SystemOssStorageServiceImpl extends ServiceImpl queryOssStorage(SystemQueryStorageArgs criteria, Page page) { + public KitPageResult queryOssStorage(SystemQueryStorageArgs criteria, Page page) { IPage ossStorageTbs = baseMapper.selectOssStorageByArgs(criteria, page); IPage convert = ossStorageTbs.convert(c -> { SystemOssStorageVo storageVo = BeanUtil.copyProperties(c, SystemOssStorageVo.class); - storageVo.setFileSizeDesc(CsFileUtil.getSize(storageVo.getFileSize())); + storageVo.setFileSizeDesc(KitFileUtil.getSize(storageVo.getFileSize())); return storageVo; }); - return CsPageUtil.toPage(convert); + return KitPageUtil.toPage(convert); } @Override @@ -98,7 +98,7 @@ public class SystemOssStorageServiceImpl extends ServiceImpl sqlList) { - Statement st = null; - try { - st = connection.createStatement(); - for (String sql : sqlList) { - if (sql.endsWith(";")) { - sql = sql.substring(0, sql.length() - 1); - } - st.addBatch(sql); - } - st.executeBatch(); - } catch (SQLException throwables) { - throwables.printStackTrace(); - } finally { - CsCloseUtil.close(st); - } - } - - /** - * 将文件中的sql语句以;为单位读取到列表中 - * - * @param sqlFile / - * @return / - * @throws Exception e - */ - private static List readSqlList(File sqlFile) throws Exception { - List sqlList = Lists.newArrayList(); - StringBuilder sb = new StringBuilder(); - try (BufferedReader reader = new BufferedReader(new InputStreamReader(Files.newInputStream(sqlFile.toPath()), StandardCharsets.UTF_8))) { - String tmp; - while ((tmp = reader.readLine()) != null) { - log.info("line:{}", tmp); - if (tmp.endsWith(";")) { - sb.append(tmp); - sqlList.add(sb.toString()); - sb.delete(0, sb.length()); - } else { - sb.append(tmp); - } - } - if (!"".endsWith(sb.toString().trim())) { - sqlList.add(sb.toString()); - } - } - return sqlList; - } -} +/* + * 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.util; + +import cn.odboy.framework.exception.BadRequestException; +import cn.odboy.framework.mybatisplus.config.DataTypeEnum; +import cn.odboy.util.KitCloseUtil; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.google.common.collect.Lists; +import com.zaxxer.hikari.HikariDataSource; +import lombok.extern.slf4j.Slf4j; + +import javax.sql.DataSource; +import java.io.BufferedReader; +import java.io.File; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.List; + +@Slf4j +public final class KitSqlUtil { + /** + * 获取数据源 + * + * @param jdbcUrl / + * @param userName / + * @param password / + * @return DataSource + */ + private static DataSource getDataSource(String jdbcUrl, String userName, String password) { + HikariDataSource druidDataSource = new HikariDataSource(); + String className; + try { + className = DriverManager.getDriver(jdbcUrl.trim()).getClass().getName(); + } catch (SQLException e) { + throw new BadRequestException("Get class name error: =" + jdbcUrl); + } + if (StringUtils.isEmpty(className)) { + DataTypeEnum dataTypeEnum = DataTypeEnum.urlOf(jdbcUrl); + if (null == dataTypeEnum) { + throw new BadRequestException("Not supported data type: jdbcUrl=" + jdbcUrl); + } + druidDataSource.setDriverClassName(dataTypeEnum.getDriver()); + } else { + druidDataSource.setDriverClassName(className); + } + druidDataSource.setJdbcUrl(jdbcUrl); + druidDataSource.setUsername(userName); + druidDataSource.setPassword(password); + druidDataSource.setConnectionTimeout(3000); + return druidDataSource; + } + + private static Connection getConnection(String jdbcUrl, String userName, String password) { + DataSource dataSource = getDataSource(jdbcUrl, userName, password); + Connection connection = null; + try { + connection = dataSource.getConnection(); + } catch (Exception ignored) { + } + try { + int timeOut = 5; + if (null == connection || connection.isClosed() || !connection.isValid(timeOut)) { + log.info("connection is closed or invalid, retry get connection!"); + connection = dataSource.getConnection(); + } + } catch (Exception e) { + log.error("create connection error, jdbcUrl: {}", jdbcUrl); + throw new BadRequestException("create connection error, jdbcUrl: " + jdbcUrl); + } finally { + KitCloseUtil.close(connection); + } + return connection; + } + + private static void releaseConnection(Connection connection) { + if (null != connection) { + try { + connection.close(); + } catch (Exception e) { + log.error(e.getMessage(), e); + log.error("connection close error:" + e.getMessage()); + } + } + } + + public static boolean testConnection(String jdbcUrl, String userName, String password) { + Connection connection = null; + try { + connection = getConnection(jdbcUrl, userName, password); + if (null != connection) { + return true; + } + } catch (Exception e) { + log.info("Get connection failed:" + e.getMessage()); + } finally { + releaseConnection(connection); + } + return false; + } + + public static String executeFile(String jdbcUrl, String username, String password, File sqlFile) { + Connection connection = getConnection(jdbcUrl, username, password); + try { + batchExecute(connection, readSqlList(sqlFile)); + } catch (Exception e) { + log.error("sql脚本执行发生异常:{}", e.getMessage()); + return e.getMessage(); + } finally { + releaseConnection(connection); + } + return "success"; + } + + /** + * 批量执行sql + * + * @param connection / + * @param sqlList / + */ + public static void batchExecute(Connection connection, List sqlList) { + Statement st = null; + try { + st = connection.createStatement(); + for (String sql : sqlList) { + if (sql.endsWith(";")) { + sql = sql.substring(0, sql.length() - 1); + } + st.addBatch(sql); + } + st.executeBatch(); + } catch (SQLException throwables) { + throwables.printStackTrace(); + } finally { + KitCloseUtil.close(st); + } + } + + /** + * 将文件中的sql语句以;为单位读取到列表中 + * + * @param sqlFile / + * @return / + * @throws Exception e + */ + private static List readSqlList(File sqlFile) throws Exception { + List sqlList = Lists.newArrayList(); + StringBuilder sb = new StringBuilder(); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(Files.newInputStream(sqlFile.toPath()), StandardCharsets.UTF_8))) { + String tmp; + while ((tmp = reader.readLine()) != null) { + log.info("line:{}", tmp); + if (tmp.endsWith(";")) { + sb.append(tmp); + sqlList.add(sb.toString()); + sb.delete(0, sb.length()); + } else { + sb.append(tmp); + } + } + if (!"".endsWith(sb.toString().trim())) { + sqlList.add(sb.toString()); + } + } + return sqlList; + } +} diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskJobBean.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskJobBean.java index 7194aedc..e11542ce 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskJobBean.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskJobBean.java @@ -17,7 +17,7 @@ package cn.odboy.task.core; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.exception.ServerException; import cn.odboy.task.constant.TaskJobKeys; @@ -57,8 +57,8 @@ public class TaskJobBean extends QuartzJobBean implements InterruptableJob { public void executeInternal(JobExecutionContext context) { this.workThread = Thread.currentThread(); // ========================== 获取代理类 ========================== - TaskInstanceInfoService taskInstanceInfoService = CsSpringBeanHolder.getBean(TaskInstanceInfoService.class); - TaskInstanceDetailService taskInstanceDetailService = CsSpringBeanHolder.getBean(TaskInstanceDetailService.class); + TaskInstanceInfoService taskInstanceInfoService = KitSpringBeanHolder.getBean(TaskInstanceInfoService.class); + TaskInstanceDetailService taskInstanceDetailService = KitSpringBeanHolder.getBean(TaskInstanceDetailService.class); // ========================== 获取参数 ========================== JobDataMap dataMap = context.getMergedJobDataMap(); long id = dataMap.getLong(TaskJobKeys.ID); @@ -126,7 +126,7 @@ public class TaskJobBean extends QuartzJobBean implements InterruptableJob { isFound = true; } } - TaskInstanceStepDetailService taskInstanceStepDetailService = CsSpringBeanHolder.getBean(TaskInstanceStepDetailService.class); + TaskInstanceStepDetailService taskInstanceStepDetailService = KitSpringBeanHolder.getBean(TaskInstanceStepDetailService.class); List bizCodeList = taskInstanceDetails.stream().map(TaskInstanceDetailTb::getBizCode).distinct().collect(Collectors.toList()); List taskInstanceDetailTbs = taskInstanceDetailService.queryByInstanceIdAndBizCodeList(id, bizCodeList); List taskInstanceDetailIds = taskInstanceDetailTbs.stream().map(TaskInstanceDetailTb::getId).collect(Collectors.toList()); @@ -174,7 +174,7 @@ public class TaskJobBean extends QuartzJobBean implements InterruptableJob { for (TaskTemplateNodeVo taskTemplateNodeVo : taskTemplateNodes) { String code = taskTemplateNodeVo.getCode(); try { - TaskStepExecutor executor = CsSpringBeanHolder.getBean("taskStep" + getBeanAlias(code)); + TaskStepExecutor executor = KitSpringBeanHolder.getBean("taskStep" + getBeanAlias(code)); taskInstanceDetailService.fastStart(id, code, dataMap); executor.execute(codeIdMap.getOrDefault(code, null), dataMap, taskTemplateNodeVo); taskInstanceDetailService.fastSuccessWithInfo(id, code, null); diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskManage.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskManage.java index 93fb3558..e04ddcff 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskManage.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/core/TaskManage.java @@ -17,7 +17,7 @@ package cn.odboy.task.core; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; -import cn.odboy.framework.context.CsSpringBeanHolder; +import cn.odboy.framework.context.KitSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.task.constant.TaskChangeTypeEnum; import cn.odboy.task.constant.TaskJobKeys; @@ -31,7 +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.CsDateUtil; +import cn.odboy.util.KitDateUtil; import com.alibaba.fastjson2.JSON; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -101,7 +101,7 @@ public class TaskManage { throw new BadRequestException("没有查询到任务编排明细"); } // ========================== 创建任务 ========================== - TaskManage taskManage = CsSpringBeanHolder.getBean(TaskManage.class); + TaskManage taskManage = KitSpringBeanHolder.getBean(TaskManage.class); TaskInstanceInfoTb newInstance = taskManage.saveTaskInstanceInfoTb(contextName, changeTypeEnum, language, envAlias, source, reason, dataMap, templateInfo); dataMap.put(TaskJobKeys.ID, newInstance.getId()); @@ -243,9 +243,9 @@ public class TaskManage { instanceNodeVo.setStartTime(taskInstanceDetail.getStartTime()); instanceNodeVo.setFinishTime(taskInstanceDetail.getFinishTime()); if (taskInstanceDetail.getFinishTime() == null) { - instanceNodeVo.setDurationDesc(CsDateUtil.formatSecondsDuration(taskInstanceDetail.getStartTime(), new Date())); + instanceNodeVo.setDurationDesc(KitDateUtil.formatSecondsDuration(taskInstanceDetail.getStartTime(), new Date())); } else { - instanceNodeVo.setDurationDesc(CsDateUtil.formatSecondsDuration(taskInstanceDetail.getStartTime(), taskInstanceDetail.getFinishTime())); + instanceNodeVo.setDurationDesc(KitDateUtil.formatSecondsDuration(taskInstanceDetail.getStartTime(), taskInstanceDetail.getFinishTime())); } instanceNodeVo.setRunningDesc(taskInstanceDetail.getExecuteInfo()); instanceNodeVo.setStatus(taskInstanceDetail.getExecuteStatus()); diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceDetailTb.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceDetailTb.java index 62f83011..6bad1066 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceDetailTb.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceDetailTb.java @@ -15,7 +15,7 @@ */ package cn.odboy.task.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -41,7 +41,7 @@ import java.util.Date; @ToString @TableName("task_instance_detail") @ApiModel(value = "TaskInstanceDetailTb对象", description = "任务实例明细") -public class TaskInstanceDetailTb extends CsObject { +public class TaskInstanceDetailTb extends KitObject { @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) private Date createTime; diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceInfoTb.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceInfoTb.java index 737026c7..70a3a63d 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceInfoTb.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceInfoTb.java @@ -15,7 +15,7 @@ */ package cn.odboy.task.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -42,7 +42,7 @@ import java.util.Date; @ToString @TableName("task_instance_info") @ApiModel(value = "TaskInstanceInfoTb对象", description = "任务实例") -public class TaskInstanceInfoTb extends CsObject { +public class TaskInstanceInfoTb extends KitObject { @CreatedBy @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "创建人", hidden = true) diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceStepDetailTb.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceStepDetailTb.java index 6e3f73e8..79541349 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceStepDetailTb.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskInstanceStepDetailTb.java @@ -15,7 +15,7 @@ */ package cn.odboy.task.dal.dataobject; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import com.alibaba.fastjson2.annotation.JSONField; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -41,7 +41,7 @@ import java.util.Date; @ToString @TableName("task_instance_step_detail") @ApiModel(value = "TaskInstanceStepDetailTb对象", description = "") -public class TaskInstanceStepDetailTb extends CsObject { +public class TaskInstanceStepDetailTb extends KitObject { @TableField(fill = FieldFill.INSERT) @ApiModelProperty(value = "创建时间: yyyy-MM-dd HH:mm:ss", hidden = true) private Date createTime; diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskTemplateInfoTb.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskTemplateInfoTb.java index f8aab85d..d7b4ca85 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskTemplateInfoTb.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/dataobject/TaskTemplateInfoTb.java @@ -15,7 +15,7 @@ */ package cn.odboy.task.dal.dataobject; -import cn.odboy.base.CsBaseUserTimeTb; +import cn.odboy.base.KitBaseUserTimeTb; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -39,7 +39,7 @@ import lombok.ToString; @ToString @TableName("task_template_info") @ApiModel(value = "TaskTemplateInfoTb对象", description = "任务模板") -public class TaskTemplateInfoTb extends CsBaseUserTimeTb { +public class TaskTemplateInfoTb extends KitBaseUserTimeTb { /** * id diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskInstanceNodeVo.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskInstanceNodeVo.java index 645f748d..1b268f47 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskInstanceNodeVo.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskInstanceNodeVo.java @@ -16,7 +16,7 @@ package cn.odboy.task.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -29,7 +29,7 @@ import java.util.Date; */ @Getter @Setter -public class TaskInstanceNodeVo extends CsObject { +public class TaskInstanceNodeVo extends KitObject { /** * 业务编码 */ diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateInfoVo.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateInfoVo.java index fde41eb8..3a7d0930 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateInfoVo.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateInfoVo.java @@ -15,13 +15,13 @@ */ package cn.odboy.task.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @Getter @Setter -public class TaskTemplateInfoVo extends CsObject { +public class TaskTemplateInfoVo extends KitObject { private String changeType; private String name; private String description; diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeOperateButtonVo.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeOperateButtonVo.java index 10c3558c..b1c52ab2 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeOperateButtonVo.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeOperateButtonVo.java @@ -16,7 +16,7 @@ package cn.odboy.task.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -30,7 +30,7 @@ import java.util.Map; */ @Getter @Setter -public class TaskTemplateNodeOperateButtonVo extends CsObject { +public class TaskTemplateNodeOperateButtonVo extends KitObject { /** * 按钮类型(service:调用某个服务并传递参数 link:带参跳转) */ diff --git a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeVo.java b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeVo.java index 167c94c0..b9602442 100644 --- a/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeVo.java +++ b/cutejava/cutejava-module-task/src/main/java/cn/odboy/task/dal/model/TaskTemplateNodeVo.java @@ -16,7 +16,7 @@ package cn.odboy.task.dal.model; -import cn.odboy.base.CsObject; +import cn.odboy.base.KitObject; import lombok.Getter; import lombok.Setter; @@ -32,7 +32,7 @@ import java.util.Map; */ @Getter @Setter -public class TaskTemplateNodeVo extends CsObject { +public class TaskTemplateNodeVo extends KitObject { /** * 业务编码 */ diff --git a/cutejava/cutejava-starter/src/main/java/cn/odboy/GenCode.java b/cutejava/cutejava-starter/src/main/java/cn/odboy/GenCode.java index 7987d441..a6e3cd3f 100644 --- a/cutejava/cutejava-starter/src/main/java/cn/odboy/GenCode.java +++ b/cutejava/cutejava-starter/src/main/java/cn/odboy/GenCode.java @@ -16,7 +16,7 @@ package cn.odboy; -import cn.odboy.framework.mybatisplus.core.CsMpCmdGenUtil; +import cn.odboy.framework.mybatisplus.core.KitMpCmdGenUtil; import java.util.List; @@ -32,7 +32,7 @@ public class GenCode { private static final String URL = String.format("jdbc:mysql://%s:%s/%s", ADDR, PORT, DATABASE_NAME); public static void main(String[] args) { - CsMpCmdGenUtil generator = new CsMpCmdGenUtil(); + KitMpCmdGenUtil generator = new KitMpCmdGenUtil(); generator.setDatabaseUrl(URL); generator.setDriverClassName("com.mysql.cj.jdbc.Driver"); generator.setDatabaseUsername(DATABASE_USER); @@ -40,7 +40,7 @@ public class GenCode { genTaskCode(generator); } - private static void genTaskCode(CsMpCmdGenUtil generator) { + private static void genTaskCode(KitMpCmdGenUtil generator) { generator.gen("task", "", List.of("task_instance_info", "task_instance_detail", "task_template_info", "task_instance_step_detail")); } } diff --git a/cutejava/cutejava-starter/src/main/java/cn/odboy/HealthCheckPointer.java b/cutejava/cutejava-starter/src/main/java/cn/odboy/HealthCheckPointer.java index 5a97ca35..6e5c3ed2 100644 --- a/cutejava/cutejava-starter/src/main/java/cn/odboy/HealthCheckPointer.java +++ b/cutejava/cutejava-starter/src/main/java/cn/odboy/HealthCheckPointer.java @@ -1,45 +1,45 @@ -/* - * 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; - -import cn.odboy.framework.monitor.service.CsHealthCheckPointService; -import cn.odboy.system.service.SystemDictService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Component; - -@Component -public class HealthCheckPointer implements CsHealthCheckPointService { - @Autowired - private SystemDictService systemDictService; - - /** - * 系统准备就绪 - */ - @Override - public ResponseEntity doReadiness() { - return ResponseEntity.ok(null); - } - - /** - * 系统是否正常 - */ - @Override - public ResponseEntity doLiveness() { - return ResponseEntity.ok(systemDictService.getById(1)); - } -} +/* + * 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; + +import cn.odboy.framework.monitor.service.KitHealthCheckPointService; +import cn.odboy.system.service.SystemDictService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; + +@Component +public class HealthCheckPointer implements KitHealthCheckPointService { + @Autowired + private SystemDictService systemDictService; + + /** + * 系统准备就绪 + */ + @Override + public ResponseEntity doReadiness() { + return ResponseEntity.ok(null); + } + + /** + * 系统是否正常 + */ + @Override + public ResponseEntity doLiveness() { + return ResponseEntity.ok(systemDictService.getById(1)); + } +} diff --git a/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsDesEncryptUtilTest.java b/cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitDesEncryptUtilTest.java similarity index 86% rename from cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsDesEncryptUtilTest.java rename to cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitDesEncryptUtilTest.java index ac2958cd..e9cb66cf 100644 --- a/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsDesEncryptUtilTest.java +++ b/cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitDesEncryptUtilTest.java @@ -1,56 +1,56 @@ -/* - * 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.util; - -import lombok.SneakyThrows; -import org.junit.jupiter.api.Test; - -import static cn.odboy.util.CsDesEncryptUtil.desDecrypt; -import static cn.odboy.util.CsDesEncryptUtil.desEncrypt; -import static org.junit.jupiter.api.Assertions.assertEquals; - -public class CsDesEncryptUtilTest { - - @SneakyThrows - public static void main(String[] args) { - System.err.println(desEncrypt("abc12345678")); - } - - /** - * 对称加密 - */ - @Test - public void testDesEncrypt() { - try { - assertEquals("7772841DC6099402", desEncrypt("abc12345678")); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * 对称解密 - */ - @Test - public void testDesDecrypt() { - try { - assertEquals("abc12345678", desDecrypt("7772841DC6099402")); - } catch (Exception e) { - e.printStackTrace(); - } - } -} +/* + * 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.util; + +import lombok.SneakyThrows; +import org.junit.jupiter.api.Test; + +import static cn.odboy.util.KitDesEncryptUtil.desDecrypt; +import static cn.odboy.util.KitDesEncryptUtil.desEncrypt; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class KitDesEncryptUtilTest { + + @SneakyThrows + public static void main(String[] args) { + System.err.println(desEncrypt("abc12345678")); + } + + /** + * 对称加密 + */ + @Test + public void testDesEncrypt() { + try { + assertEquals("7772841DC6099402", desEncrypt("abc12345678")); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 对称解密 + */ + @Test + public void testDesDecrypt() { + try { + assertEquals("abc12345678", desDecrypt("7772841DC6099402")); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsFileUtilTest.java b/cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitFileUtilTest.java similarity index 92% rename from cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsFileUtilTest.java rename to cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitFileUtilTest.java index 61fb8a0c..b022afd0 100644 --- a/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsFileUtilTest.java +++ b/cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitFileUtilTest.java @@ -1,52 +1,52 @@ -/* - * 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.util; - -import org.junit.jupiter.api.Test; -import org.springframework.mock.web.MockMultipartFile; - -import static cn.odboy.util.CsFileUtil.*; -import static org.junit.jupiter.api.Assertions.assertEquals; - -public class CsFileUtilTest { - - @Test - public void testToFile() { - long retval = toFile(new MockMultipartFile("foo", (byte[])null)).getTotalSpace(); - assertEquals(500695072768L, retval); - } - - @Test - public void testGetExtensionName() { - assertEquals("foo", getSuffix("foo")); - assertEquals("exe", getSuffix("bar.exe")); - } - - @Test - public void testGetFileNameNoEx() { - assertEquals("foo", getPrefix("foo")); - assertEquals("bar", getPrefix("bar.txt")); - } - - @Test - public void testGetSize() { - assertEquals("1000B ", getSize(1000)); - assertEquals("1.00KB ", getSize(1024)); - assertEquals("1.00MB ", getSize(1048576)); - assertEquals("1.00GB ", getSize(1073741824)); - } -} +/* + * 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.util; + +import org.junit.jupiter.api.Test; +import org.springframework.mock.web.MockMultipartFile; + +import static cn.odboy.util.KitFileUtil.*; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class KitFileUtilTest { + + @Test + public void testToFile() { + long retval = toFile(new MockMultipartFile("foo", (byte[])null)).getTotalSpace(); + assertEquals(500695072768L, retval); + } + + @Test + public void testGetExtensionName() { + assertEquals("foo", getSuffix("foo")); + assertEquals("exe", getSuffix("bar.exe")); + } + + @Test + public void testGetFileNameNoEx() { + assertEquals("foo", getPrefix("foo")); + assertEquals("bar", getPrefix("bar.txt")); + } + + @Test + public void testGetSize() { + assertEquals("1000B ", getSize(1000)); + assertEquals("1.00KB ", getSize(1024)); + assertEquals("1.00MB ", getSize(1048576)); + assertEquals("1.00GB ", getSize(1073741824)); + } +} diff --git a/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java b/cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitStringUtilTest.java similarity index 62% rename from cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java rename to cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitStringUtilTest.java index fb758688..b3aca1ff 100644 --- a/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java +++ b/cutejava/cutejava-starter/src/test/java/cn/odboy/util/KitStringUtilTest.java @@ -1,60 +1,60 @@ -/* - * 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.util; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.mock.web.MockHttpServletRequest; - -import java.text.SimpleDateFormat; -import java.util.Date; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; - -public class CsStringUtilTest { - - @Test - public void testToCamelCase() { - assertNull(CsStringUtil.toCamelCase(null)); - } - - @Test - public void testToCapitalizeCamelCase() { - assertNull(CsStringUtil.toCapitalizeCamelCase(null)); - assertEquals("HelloWorld", CsStringUtil.toCapitalizeCamelCase("hello_world")); - } - - @Test - public void testToUnderScoreCase() { - assertNull(CsStringUtil.toUnderScoreCase(null)); - assertEquals("hello_world", CsStringUtil.toUnderScoreCase("helloWorld")); - assertEquals("\u0000\u0000", CsStringUtil.toUnderScoreCase("\u0000\u0000")); - assertEquals("\u0000_a", CsStringUtil.toUnderScoreCase("\u0000A")); - } - - @Test - public void testGetWeekDay() { - SimpleDateFormat simpleDateformat = new SimpleDateFormat("E"); - assertEquals(simpleDateformat.format(new Date()), CsStringUtil.getWeekDay()); - } - - @Test - public void testGetIP() { - Assertions.assertEquals("127.0.0.1", CsBrowserUtil.getIp(new MockHttpServletRequest())); - } -} +/* + * 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.util; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.mock.web.MockHttpServletRequest; + +import java.text.SimpleDateFormat; +import java.util.Date; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; + +public class KitStringUtilTest { + + @Test + public void testToCamelCase() { + assertNull(KitStringUtil.toCamelCase(null)); + } + + @Test + public void testToCapitalizeCamelCase() { + assertNull(KitStringUtil.toCapitalizeCamelCase(null)); + assertEquals("HelloWorld", KitStringUtil.toCapitalizeCamelCase("hello_world")); + } + + @Test + public void testToUnderScoreCase() { + assertNull(KitStringUtil.toUnderScoreCase(null)); + assertEquals("hello_world", KitStringUtil.toUnderScoreCase("helloWorld")); + assertEquals("\u0000\u0000", KitStringUtil.toUnderScoreCase("\u0000\u0000")); + assertEquals("\u0000_a", KitStringUtil.toUnderScoreCase("\u0000A")); + } + + @Test + public void testGetWeekDay() { + SimpleDateFormat simpleDateformat = new SimpleDateFormat("E"); + assertEquals(simpleDateformat.format(new Date()), KitStringUtil.getWeekDay()); + } + + @Test + public void testGetIP() { + Assertions.assertEquals("127.0.0.1", KitBrowserUtil.getIp(new MockHttpServletRequest())); + } +}