From e6c24be3e18f3efa6824603e2d34ec52a9aef8db Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Thu, 25 Jul 2024 16:43:01 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BF=AE=E6=94=B9):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=BB=A5=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/bunny/common/generator/NewCodeGet.java | 30 ++-- .../common/service/config/Knife4jConfig.java | 6 +- .../entity/system/quartz/BlobTriggers.java | 40 +++++ service/pom.xml | 12 ++ .../service/aop/aspect/AutoLogAspect.java | 161 ++++++++---------- .../quartz/BlobTriggersController.java | 18 ++ .../controller/{ => web}/IndexController.java | 2 +- .../service/controller/web/JobController.java | 11 ++ .../controller/{ => web}/LoginController.java | 4 +- .../mapper/quartz/BlobTriggersMapper.java | 18 ++ .../mapper/{ => web}/AdminPowerMapper.java | 2 +- .../mapper/{ => web}/AdminRoleMapper.java | 2 +- .../mapper/{ => web}/EmailUsersMapper.java | 2 +- .../mapper/{ => web}/SystemLogMapper.java | 2 +- .../service/mapper/{ => web}/UserMapper.java | 2 +- ...CustomAuthorizationManagerServiceImpl.java | 2 +- .../security/CustomUserDetailsService.java | 6 +- .../service/quartz/BlobTriggersService.java | 16 ++ .../service/service/quartz/JobService.java | 4 + .../quartz/impl/BlobTriggersServiceImpl.java | 22 +++ .../service/{ => web}/UserService.java | 2 +- .../service/web/impl/JobServiceImpl.java | 8 + .../{ => web}/impl/UserServiceImpl.java | 12 +- .../src/main/resources/application-dev.yml | 20 ++- .../src/main/resources/application-prod.yml | 20 ++- service/src/main/resources/application.yml | 25 ++- .../mapper/quartz/BlobTriggersMapper.xml | 18 ++ .../mapper/{ => web}/AdminPowerMapper.xml | 2 +- .../mapper/{ => web}/AdminRoleMapper.xml | 2 +- .../mapper/{ => web}/EmailUsersMapper.xml | 2 +- .../mapper/{ => web}/SystemLogMapper.xml | 2 +- .../resources/mapper/{ => web}/UserMapper.xml | 2 +- service/src/main/resources/quartz.properties | 26 ++- .../main/resources/{ => static}/favicon.ico | Bin 34 files changed, 332 insertions(+), 171 deletions(-) create mode 100644 dao/src/main/java/cn/bunny/entity/system/quartz/BlobTriggers.java create mode 100644 service/src/main/java/cn/bunny/service/controller/quartz/BlobTriggersController.java rename service/src/main/java/cn/bunny/service/controller/{ => web}/IndexController.java (93%) create mode 100644 service/src/main/java/cn/bunny/service/controller/web/JobController.java rename service/src/main/java/cn/bunny/service/controller/{ => web}/LoginController.java (93%) create mode 100644 service/src/main/java/cn/bunny/service/mapper/quartz/BlobTriggersMapper.java rename service/src/main/java/cn/bunny/service/mapper/{ => web}/AdminPowerMapper.java (95%) rename service/src/main/java/cn/bunny/service/mapper/{ => web}/AdminRoleMapper.java (93%) rename service/src/main/java/cn/bunny/service/mapper/{ => web}/EmailUsersMapper.java (92%) rename service/src/main/java/cn/bunny/service/mapper/{ => web}/SystemLogMapper.java (89%) rename service/src/main/java/cn/bunny/service/mapper/{ => web}/UserMapper.java (93%) create mode 100644 service/src/main/java/cn/bunny/service/service/quartz/BlobTriggersService.java create mode 100644 service/src/main/java/cn/bunny/service/service/quartz/JobService.java create mode 100644 service/src/main/java/cn/bunny/service/service/quartz/impl/BlobTriggersServiceImpl.java rename service/src/main/java/cn/bunny/service/service/{ => web}/UserService.java (94%) create mode 100644 service/src/main/java/cn/bunny/service/service/web/impl/JobServiceImpl.java rename service/src/main/java/cn/bunny/service/service/{ => web}/impl/UserServiceImpl.java (94%) create mode 100644 service/src/main/resources/mapper/quartz/BlobTriggersMapper.xml rename service/src/main/resources/mapper/{ => web}/AdminPowerMapper.xml (96%) rename service/src/main/resources/mapper/{ => web}/AdminRoleMapper.xml (95%) rename service/src/main/resources/mapper/{ => web}/EmailUsersMapper.xml (94%) rename service/src/main/resources/mapper/{ => web}/SystemLogMapper.xml (95%) rename service/src/main/resources/mapper/{ => web}/UserMapper.xml (97%) rename service/src/main/resources/{ => static}/favicon.ico (100%) diff --git a/common/common-generator/src/main/java/cn/bunny/common/generator/NewCodeGet.java b/common/common-generator/src/main/java/cn/bunny/common/generator/NewCodeGet.java index 27d0fe9..d159135 100644 --- a/common/common-generator/src/main/java/cn/bunny/common/generator/NewCodeGet.java +++ b/common/common-generator/src/main/java/cn/bunny/common/generator/NewCodeGet.java @@ -10,16 +10,17 @@ import java.util.Collections; public class NewCodeGet { // 数据连接 - public static final String sqlHost = "jdbc:mysql://106.15.251.123:3305/bunny_docs?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true"; + // public static final String sqlHost = "jdbc:mysql://106.15.251.123:3305/bunny_docs?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true"; + public static final String sqlHost = "jdbc:mysql://106.15.251.123:3305/myDS?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true"; // 作者名称 public static final String author = "Bunny"; // 公共路径 - public static final String outputDir = "F:\\web项目\\PC\\BunnyNote\\BunnyBBS-server\\service\\service-web"; + public static final String outputDir = "D:\\MyFolder\\Quartz-Demo\\service"; // 实体类名称 public static final String entity = "Bunny"; public static void main(String[] args) { - Generation("article"); + Generation("QRTZ_BLOB_TRIGGERS"); } /** @@ -28,7 +29,6 @@ public class NewCodeGet { * @param tableName 表名 */ public static void Generation(String... tableName) { - // TODO 修改数据库路径、账户、密码 FastAutoGenerator.create(sqlHost, "root", "02120212") .globalConfig(builder -> { // 添加作者名称 @@ -41,24 +41,24 @@ public class NewCodeGet { .packageConfig(builder -> { builder.entity(entity)// 实体类包名 // TODO 父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名 - .parent("cn.bunny.service.web") - .controller("controller")// 控制层包名 - .mapper("mapper")// mapper层包名 - .service("service")// service层包名 - .serviceImpl("service.impl")// service实现类包名 + .parent("cn.bunny.service") + .controller("controller.quartz")// 控制层包名 + .mapper("mapper.quartz")// mapper层包名 + .service("service.quartz")// service层包名 + .serviceImpl("service.quartz.impl")// service实现类包名 // 自定义mapper.xml文件输出目录 - .pathInfo(Collections.singletonMap(OutputFile.xml, outputDir + "/src/main/resources/mapper")); + .pathInfo(Collections.singletonMap(OutputFile.xml, outputDir + "/src/main/resources/mapper/quartz")); }) .strategyConfig(builder -> { // 设置要生成的表名 builder.addInclude(tableName) - //.addTablePrefix("sys_")// TODO 设置表前缀过滤 + .addTablePrefix("QRTZ_")// 设置表前缀过滤 .entityBuilder() .enableLombok() .enableChainModel() .naming(NamingStrategy.underline_to_camel)// 数据表映射实体命名策略:默认下划线转驼峰underline_to_camel .columnNaming(NamingStrategy.underline_to_camel)// 表字段映射实体属性命名规则:默认null,不指定按照naming执行 - .idType(IdType.AUTO)// TODO 添加全局主键类型 + .idType(IdType.AUTO)// 添加全局主键类型 .formatFileName("%s")// 格式化实体名称,%s取消首字母I, .mapperBuilder() .mapperAnnotation(Mapper.class)// 开启mapper注解 @@ -72,12 +72,6 @@ public class NewCodeGet { .controllerBuilder() .enableRestStyle(); }) - // .injectionConfig(consumer -> { - // Map customFile = new HashMap<>(); - // // 配置DTO(需要的话)但是需要有能配置Dto的模板引擎,比如freemarker,但是这里我们用的VelocityEngine,因此不多作介绍 - // customFile.put(outputDir, "/src/main/resources/templates/entityDTO.java.ftl"); - // consumer.customFile(customFile); - // }) .execute(); } } diff --git a/common/service-utils/src/main/java/cn/bunny/common/service/config/Knife4jConfig.java b/common/service-utils/src/main/java/cn/bunny/common/service/config/Knife4jConfig.java index 5abefce..ba1cc39 100644 --- a/common/service-utils/src/main/java/cn/bunny/common/service/config/Knife4jConfig.java +++ b/common/service-utils/src/main/java/cn/bunny/common/service/config/Knife4jConfig.java @@ -29,18 +29,18 @@ public class Knife4jConfig { // 前台相关分类接口 @Bean public GroupedOpenApi groupedOpenApi() { - return GroupedOpenApi.builder().group("前台接口管理").pathsToMatch("/api/**").build(); + return GroupedOpenApi.builder().group("Web前台接口管理").pathsToMatch("/api/**").build(); } // 管理员相关分类接口 @Bean public GroupedOpenApi groupedOpenAdminApi() { - return GroupedOpenApi.builder().group("管理员接口请求").pathsToMatch("/admin/**").build(); + return GroupedOpenApi.builder().group("Admin管理员接口请求").pathsToMatch("/admin/**").build(); } // 测试相关分类接口 @Bean public GroupedOpenApi testGroupedOpenApi() { - return GroupedOpenApi.builder().group("测试相关分类接口").pathsToMatch("/test/**").build(); + return GroupedOpenApi.builder().group("Test测试相关分类接口").pathsToMatch("/test/**").build(); } } diff --git a/dao/src/main/java/cn/bunny/entity/system/quartz/BlobTriggers.java b/dao/src/main/java/cn/bunny/entity/system/quartz/BlobTriggers.java new file mode 100644 index 0000000..12d0901 --- /dev/null +++ b/dao/src/main/java/cn/bunny/entity/system/quartz/BlobTriggers.java @@ -0,0 +1,40 @@ +package cn.bunny.entity.system.quartz; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.Setter; +import lombok.experimental.Accessors; + +import java.io.Serial; +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author Bunny + * @since 2024-07-25 + */ +@Getter +@Setter +@Accessors(chain = true) +@TableName("QRTZ_BLOB_TRIGGERS") +@ApiModel(value = "BlobTriggers对象", description = "") +public class BlobTriggers implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @TableId(value = "SCHED_NAME", type = IdType.AUTO) + private String schedName; + + private String triggerName; + + private String triggerGroup; + + private byte[] blobData; +} diff --git a/service/pom.xml b/service/pom.xml index 61a1a62..17b9d27 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -66,6 +66,18 @@ quartz 2.3.2 + + + com.mchange + c3p0 + 0.9.5.5 + + + + com.baomidou + dynamic-datasource-spring-boot3-starter + 4.3.1 + diff --git a/service/src/main/java/cn/bunny/service/aop/aspect/AutoLogAspect.java b/service/src/main/java/cn/bunny/service/aop/aspect/AutoLogAspect.java index 5a8e4c5..1061f57 100644 --- a/service/src/main/java/cn/bunny/service/aop/aspect/AutoLogAspect.java +++ b/service/src/main/java/cn/bunny/service/aop/aspect/AutoLogAspect.java @@ -1,100 +1,83 @@ package cn.bunny.service.aop.aspect; -import cn.bunny.common.service.utils.JwtHelper; -import cn.bunny.entity.system.log.SystemLog; -import cn.bunny.service.aop.annotation.SkipLog; -import cn.bunny.service.mapper.SystemLogMapper; -import cn.bunny.vo.system.login.LoginVo; -import com.alibaba.fastjson2.JSONObject; -import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import java.util.Arrays; -import java.util.Map; @Aspect @Component @Slf4j public class AutoLogAspect { - @Autowired - private SystemLogMapper systemLogMapper; - - @Pointcut("execution(* cn.bunny.service.web.controller..*(..))") - public void point() { - } - - @Around(value = "point()") - public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable { - Object result; - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - // 是否有跳过注解,如果有跳过注解就不执行当前操作!!! - SkipLog annotation = signature.getMethod().getAnnotation(SkipLog.class); - // 目标方法所在类名路径 - String classPath = joinPoint.getSignature().getDeclaringTypeName(); - // 当前执行的方法名 - String methodName = signature.getName(); - // 入参内容 - String args = Arrays.toString(joinPoint.getArgs()); - // 获取用户token - ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request = requestAttributes.getRequest(); - String token = request.getHeader("token"); - // 初始化系统日志对象 - SystemLog systemLog = new SystemLog(); - // token转为实体对象 - Map mapByToken = JwtHelper.getMapByToken(token); - LoginVo loginVo = JSONObject.parseObject(JSONObject.toJSONString(mapByToken), LoginVo.class); - - // 插入Ip地址 - systemLog.setIpAddress(request.getRemoteHost()); - - try { - // 当为null时跳过执行 - if (annotation != null) return joinPoint.proceed(); - if (args.equals("[null]")) { - systemLog.setArgs(null); - } else { - systemLog.setArgs(args); - } - // 登录返回Vo不为空即插入 - if (loginVo != null) { - systemLog.setNickname(loginVo.getNickName()); - systemLog.setEmail(loginVo.getEmail()); - systemLog.setUpdateUser(loginVo.getId()); - } - - systemLog.setClassPath(classPath); - systemLog.setMethodName(methodName); - systemLog.setToken(token); - - // 目标对象(连接点)方法的执行 - result = joinPoint.proceed(); - systemLog.setResult(JSONObject.toJSONString(result)); - } catch (Exception exception) { - String message = exception.getMessage(); - StackTraceElement[] stackTrace = exception.getStackTrace(); - - // 如果报错,设置报错的堆栈和消息,放到数据库中 - systemLog.setErrorStack(Arrays.toString(stackTrace)); - systemLog.setErrorMessage(message); - - // 插入日志数据到数据库 - systemLogMapper.insert(systemLog); - - throw exception; - } - - // 插入日志数据到数据库 - systemLogMapper.insert(systemLog); - return result; - } + // @Autowired + // private SystemLogMapper systemLogMapper; + // + // @Pointcut("execution(* cn.bunny.service.controller..*(..))") + // public void point() { + // } + // + // @Around(value = "point()") + // public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable { + // Object result; + // MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + // // 是否有跳过注解,如果有跳过注解就不执行当前操作!!! + // SkipLog annotation = signature.getMethod().getAnnotation(SkipLog.class); + // // 目标方法所在类名路径 + // String classPath = joinPoint.getSignature().getDeclaringTypeName(); + // // 当前执行的方法名 + // String methodName = signature.getName(); + // // 入参内容 + // String args = Arrays.toString(joinPoint.getArgs()); + // // 获取用户token + // ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + // HttpServletRequest request = requestAttributes.getRequest(); + // String token = request.getHeader("token"); + // // 初始化系统日志对象 + // SystemLog systemLog = new SystemLog(); + // // token转为实体对象 + // Map mapByToken = JwtHelper.getMapByToken(token); + // LoginVo loginVo = JSONObject.parseObject(JSONObject.toJSONString(mapByToken), LoginVo.class); + // + // // 插入Ip地址 + // systemLog.setIpAddress(request.getRemoteHost()); + // + // try { + // // 当为null时跳过执行 + // if (annotation != null) return joinPoint.proceed(); + // if (args.equals("[null]")) { + // systemLog.setArgs(null); + // } else { + // systemLog.setArgs(args); + // } + // // 登录返回Vo不为空即插入 + // if (loginVo != null) { + // systemLog.setNickname(loginVo.getNickName()); + // systemLog.setEmail(loginVo.getEmail()); + // systemLog.setUpdateUser(loginVo.getId()); + // } + // + // systemLog.setClassPath(classPath); + // systemLog.setMethodName(methodName); + // systemLog.setToken(token); + // + // // 目标对象(连接点)方法的执行 + // result = joinPoint.proceed(); + // systemLog.setResult(JSONObject.toJSONString(result)); + // } catch (Exception exception) { + // String message = exception.getMessage(); + // StackTraceElement[] stackTrace = exception.getStackTrace(); + // + // // 如果报错,设置报错的堆栈和消息,放到数据库中 + // systemLog.setErrorStack(Arrays.toString(stackTrace)); + // systemLog.setErrorMessage(message); + // + // // 插入日志数据到数据库 + // systemLogMapper.insert(systemLog); + // + // throw exception; + // } + // + // // 插入日志数据到数据库 + // systemLogMapper.insert(systemLog); + // return result; + // } } diff --git a/service/src/main/java/cn/bunny/service/controller/quartz/BlobTriggersController.java b/service/src/main/java/cn/bunny/service/controller/quartz/BlobTriggersController.java new file mode 100644 index 0000000..cbf0cd5 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/controller/quartz/BlobTriggersController.java @@ -0,0 +1,18 @@ +package cn.bunny.service.controller.quartz; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 前端控制器 + *

+ * + * @author Bunny + * @since 2024-07-25 + */ +@RestController +@RequestMapping("/blobTriggers") +public class BlobTriggersController { + +} diff --git a/service/src/main/java/cn/bunny/service/controller/IndexController.java b/service/src/main/java/cn/bunny/service/controller/web/IndexController.java similarity index 93% rename from service/src/main/java/cn/bunny/service/controller/IndexController.java rename to service/src/main/java/cn/bunny/service/controller/web/IndexController.java index d645557..35962f8 100644 --- a/service/src/main/java/cn/bunny/service/controller/IndexController.java +++ b/service/src/main/java/cn/bunny/service/controller/web/IndexController.java @@ -1,4 +1,4 @@ -package cn.bunny.service.controller; +package cn.bunny.service.controller.web; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/service/src/main/java/cn/bunny/service/controller/web/JobController.java b/service/src/main/java/cn/bunny/service/controller/web/JobController.java new file mode 100644 index 0000000..5f2afd5 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/controller/web/JobController.java @@ -0,0 +1,11 @@ +package cn.bunny.service.controller.web; + +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "Quartz定时任务") +@RestController +@RequestMapping("/api/job") +public class JobController { +} \ No newline at end of file diff --git a/service/src/main/java/cn/bunny/service/controller/LoginController.java b/service/src/main/java/cn/bunny/service/controller/web/LoginController.java similarity index 93% rename from service/src/main/java/cn/bunny/service/controller/LoginController.java rename to service/src/main/java/cn/bunny/service/controller/web/LoginController.java index 6d4aa81..a966272 100644 --- a/service/src/main/java/cn/bunny/service/controller/LoginController.java +++ b/service/src/main/java/cn/bunny/service/controller/web/LoginController.java @@ -1,9 +1,9 @@ -package cn.bunny.service.controller; +package cn.bunny.service.controller.web; import cn.bunny.dto.user.LoginDto; import cn.bunny.pojo.result.Result; -import cn.bunny.service.service.UserService; +import cn.bunny.service.service.web.UserService; import cn.bunny.vo.system.login.LoginVo; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/service/src/main/java/cn/bunny/service/mapper/quartz/BlobTriggersMapper.java b/service/src/main/java/cn/bunny/service/mapper/quartz/BlobTriggersMapper.java new file mode 100644 index 0000000..7f61d35 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/mapper/quartz/BlobTriggersMapper.java @@ -0,0 +1,18 @@ +package cn.bunny.service.mapper.quartz; + +import cn.bunny.entity.system.quartz.BlobTriggers; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Bunny + * @since 2024-07-25 + */ +@Mapper +public interface BlobTriggersMapper extends BaseMapper { + +} diff --git a/service/src/main/java/cn/bunny/service/mapper/AdminPowerMapper.java b/service/src/main/java/cn/bunny/service/mapper/web/AdminPowerMapper.java similarity index 95% rename from service/src/main/java/cn/bunny/service/mapper/AdminPowerMapper.java rename to service/src/main/java/cn/bunny/service/mapper/web/AdminPowerMapper.java index 0fc1686..2e6c3d2 100644 --- a/service/src/main/java/cn/bunny/service/mapper/AdminPowerMapper.java +++ b/service/src/main/java/cn/bunny/service/mapper/web/AdminPowerMapper.java @@ -1,4 +1,4 @@ -package cn.bunny.service.mapper; +package cn.bunny.service.mapper.web; import cn.bunny.entity.system.admin.AdminPower; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/service/src/main/java/cn/bunny/service/mapper/AdminRoleMapper.java b/service/src/main/java/cn/bunny/service/mapper/web/AdminRoleMapper.java similarity index 93% rename from service/src/main/java/cn/bunny/service/mapper/AdminRoleMapper.java rename to service/src/main/java/cn/bunny/service/mapper/web/AdminRoleMapper.java index 6616caf..ddd153d 100644 --- a/service/src/main/java/cn/bunny/service/mapper/AdminRoleMapper.java +++ b/service/src/main/java/cn/bunny/service/mapper/web/AdminRoleMapper.java @@ -1,4 +1,4 @@ -package cn.bunny.service.mapper; +package cn.bunny.service.mapper.web; import cn.bunny.entity.system.admin.AdminRole; import cn.bunny.entity.system.admin.auth.AuthUserRole; diff --git a/service/src/main/java/cn/bunny/service/mapper/EmailUsersMapper.java b/service/src/main/java/cn/bunny/service/mapper/web/EmailUsersMapper.java similarity index 92% rename from service/src/main/java/cn/bunny/service/mapper/EmailUsersMapper.java rename to service/src/main/java/cn/bunny/service/mapper/web/EmailUsersMapper.java index ab8b865..15a4692 100644 --- a/service/src/main/java/cn/bunny/service/mapper/EmailUsersMapper.java +++ b/service/src/main/java/cn/bunny/service/mapper/web/EmailUsersMapper.java @@ -1,4 +1,4 @@ -package cn.bunny.service.mapper; +package cn.bunny.service.mapper.web; import cn.bunny.entity.system.email.EmailUsers; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/service/src/main/java/cn/bunny/service/mapper/SystemLogMapper.java b/service/src/main/java/cn/bunny/service/mapper/web/SystemLogMapper.java similarity index 89% rename from service/src/main/java/cn/bunny/service/mapper/SystemLogMapper.java rename to service/src/main/java/cn/bunny/service/mapper/web/SystemLogMapper.java index 2741252..f6f5ccb 100644 --- a/service/src/main/java/cn/bunny/service/mapper/SystemLogMapper.java +++ b/service/src/main/java/cn/bunny/service/mapper/web/SystemLogMapper.java @@ -1,4 +1,4 @@ -package cn.bunny.service.mapper; +package cn.bunny.service.mapper.web; import cn.bunny.entity.system.log.SystemLog; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/service/src/main/java/cn/bunny/service/mapper/UserMapper.java b/service/src/main/java/cn/bunny/service/mapper/web/UserMapper.java similarity index 93% rename from service/src/main/java/cn/bunny/service/mapper/UserMapper.java rename to service/src/main/java/cn/bunny/service/mapper/web/UserMapper.java index 83ac911..4286500 100644 --- a/service/src/main/java/cn/bunny/service/mapper/UserMapper.java +++ b/service/src/main/java/cn/bunny/service/mapper/web/UserMapper.java @@ -1,4 +1,4 @@ -package cn.bunny.service.mapper; +package cn.bunny.service.mapper.web; import cn.bunny.entity.system.user.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; diff --git a/service/src/main/java/cn/bunny/service/security/CustomAuthorizationManagerServiceImpl.java b/service/src/main/java/cn/bunny/service/security/CustomAuthorizationManagerServiceImpl.java index c26adbd..09b3543 100644 --- a/service/src/main/java/cn/bunny/service/security/CustomAuthorizationManagerServiceImpl.java +++ b/service/src/main/java/cn/bunny/service/security/CustomAuthorizationManagerServiceImpl.java @@ -3,7 +3,7 @@ package cn.bunny.service.security; import cn.bunny.common.service.utils.JwtHelper; import cn.bunny.entity.system.admin.AdminPower; import cn.bunny.security.service.CustomAuthorizationManagerService; -import cn.bunny.service.mapper.AdminPowerMapper; +import cn.bunny.service.mapper.web.AdminPowerMapper; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; diff --git a/service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java b/service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java index ebc6310..6b795d8 100644 --- a/service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java +++ b/service/src/main/java/cn/bunny/service/security/CustomUserDetailsService.java @@ -4,9 +4,9 @@ import cn.bunny.dto.user.LoginDto; import cn.bunny.entity.system.admin.AdminRole; import cn.bunny.entity.system.user.User; import cn.bunny.security.custom.CustomUser; -import cn.bunny.service.mapper.AdminRoleMapper; -import cn.bunny.service.mapper.UserMapper; -import cn.bunny.service.service.UserService; +import cn.bunny.service.mapper.web.AdminRoleMapper; +import cn.bunny.service.mapper.web.UserMapper; +import cn.bunny.service.service.web.UserService; import cn.bunny.vo.system.login.LoginVo; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.beans.factory.annotation.Autowired; diff --git a/service/src/main/java/cn/bunny/service/service/quartz/BlobTriggersService.java b/service/src/main/java/cn/bunny/service/service/quartz/BlobTriggersService.java new file mode 100644 index 0000000..7c68e29 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/service/quartz/BlobTriggersService.java @@ -0,0 +1,16 @@ +package cn.bunny.service.service.quartz; + +import cn.bunny.entity.system.quartz.BlobTriggers; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author Bunny + * @since 2024-07-25 + */ +public interface BlobTriggersService extends IService { + +} diff --git a/service/src/main/java/cn/bunny/service/service/quartz/JobService.java b/service/src/main/java/cn/bunny/service/service/quartz/JobService.java new file mode 100644 index 0000000..f12d61b --- /dev/null +++ b/service/src/main/java/cn/bunny/service/service/quartz/JobService.java @@ -0,0 +1,4 @@ +package cn.bunny.service.service.quartz; + +public interface JobService { +} diff --git a/service/src/main/java/cn/bunny/service/service/quartz/impl/BlobTriggersServiceImpl.java b/service/src/main/java/cn/bunny/service/service/quartz/impl/BlobTriggersServiceImpl.java new file mode 100644 index 0000000..4a6d372 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/service/quartz/impl/BlobTriggersServiceImpl.java @@ -0,0 +1,22 @@ +package cn.bunny.service.service.quartz.impl; + +import cn.bunny.entity.system.quartz.BlobTriggers; +import cn.bunny.service.mapper.quartz.BlobTriggersMapper; +import cn.bunny.service.service.quartz.BlobTriggersService; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author Bunny + * @since 2024-07-25 + */ +@Service +@DS("myDS") +public class BlobTriggersServiceImpl extends ServiceImpl implements BlobTriggersService { + +} diff --git a/service/src/main/java/cn/bunny/service/service/UserService.java b/service/src/main/java/cn/bunny/service/service/web/UserService.java similarity index 94% rename from service/src/main/java/cn/bunny/service/service/UserService.java rename to service/src/main/java/cn/bunny/service/service/web/UserService.java index aad4b8e..a04c447 100644 --- a/service/src/main/java/cn/bunny/service/service/UserService.java +++ b/service/src/main/java/cn/bunny/service/service/web/UserService.java @@ -1,4 +1,4 @@ -package cn.bunny.service.service; +package cn.bunny.service.service.web; import cn.bunny.dto.user.LoginDto; import cn.bunny.entity.system.user.User; diff --git a/service/src/main/java/cn/bunny/service/service/web/impl/JobServiceImpl.java b/service/src/main/java/cn/bunny/service/service/web/impl/JobServiceImpl.java new file mode 100644 index 0000000..54f5203 --- /dev/null +++ b/service/src/main/java/cn/bunny/service/service/web/impl/JobServiceImpl.java @@ -0,0 +1,8 @@ +package cn.bunny.service.service.web.impl; + +import cn.bunny.service.service.quartz.JobService; +import org.springframework.stereotype.Service; + +@Service +public class JobServiceImpl implements JobService { +} diff --git a/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java b/service/src/main/java/cn/bunny/service/service/web/impl/UserServiceImpl.java similarity index 94% rename from service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java rename to service/src/main/java/cn/bunny/service/service/web/impl/UserServiceImpl.java index 84d347d..8104db7 100644 --- a/service/src/main/java/cn/bunny/service/service/impl/UserServiceImpl.java +++ b/service/src/main/java/cn/bunny/service/service/web/impl/UserServiceImpl.java @@ -1,4 +1,4 @@ -package cn.bunny.service.service.impl; +package cn.bunny.service.service.web.impl; import cn.bunny.common.service.utils.EmptyUtil; import cn.bunny.common.service.utils.JwtHelper; @@ -13,11 +13,11 @@ import cn.bunny.pojo.email.EmailSendInit; import cn.bunny.pojo.result.constant.ExceptionConstant; import cn.bunny.pojo.result.constant.MailMessageConstant; import cn.bunny.pojo.result.constant.RedisUserConstant; -import cn.bunny.service.mapper.AdminPowerMapper; -import cn.bunny.service.mapper.AdminRoleMapper; -import cn.bunny.service.mapper.EmailUsersMapper; -import cn.bunny.service.mapper.UserMapper; -import cn.bunny.service.service.UserService; +import cn.bunny.service.mapper.web.AdminPowerMapper; +import cn.bunny.service.mapper.web.AdminRoleMapper; +import cn.bunny.service.mapper.web.EmailUsersMapper; +import cn.bunny.service.mapper.web.UserMapper; +import cn.bunny.service.service.web.UserService; import cn.bunny.vo.system.login.LoginVo; import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.CircleCaptcha; diff --git a/service/src/main/resources/application-dev.yml b/service/src/main/resources/application-dev.yml index 0eae702..ebc2f3d 100644 --- a/service/src/main/resources/application-dev.yml +++ b/service/src/main/resources/application-dev.yml @@ -1,19 +1,25 @@ bunny: datasource: - host: 192.168.1.4 + host: 106.15.251.123 port: 3305 sqlData: bunny_docs username: root password: "02120212" + datasource2: + host: 106.15.251.123 + port: 3305 + sqlData: myDS + username: root + password: "02120212" redis: - host: 192.168.1.4 + host: 47.120.65.66 port: 6379 - database: 3 - password: "123456" + database: 0 + password: "02120212" minio: - endpointUrl: "http://192.168.1.4:9000" - bucket-name: test + endpointUrl: "http://116.196.101.14:9000" accessKey: bunny - secretKey: "02120212" \ No newline at end of file + secretKey: "02120212" + bucket-name: bunny-bbs \ No newline at end of file diff --git a/service/src/main/resources/application-prod.yml b/service/src/main/resources/application-prod.yml index de30295..c838e7f 100644 --- a/service/src/main/resources/application-prod.yml +++ b/service/src/main/resources/application-prod.yml @@ -1,19 +1,25 @@ bunny: datasource: - host: 192.168.1.4 + host: 106.15.251.123 port: 3306 sqlData: bunny_docs username: root password: "02120212" + datasource2: + host: 106.15.251.123 + port: 3305 + sqlData: myDS + username: root + password: "02120212" redis: - host: 192.168.1.4 + host: 47.120.65.66 port: 6379 - database: 3 - password: "123456" + database: 0 + password: "02120212" minio: - endpointUrl: "http://192.168.1.4:9000" - bucket-name: test + endpointUrl: "http://116.196.101.14:9000" accessKey: bunny - secretKey: "02120212" \ No newline at end of file + secretKey: "02120212" + bucket-name: bunny-bbs \ No newline at end of file diff --git a/service/src/main/resources/application.yml b/service/src/main/resources/application.yml index a521534..d4e0442 100644 --- a/service/src/main/resources/application.yml +++ b/service/src/main/resources/application.yml @@ -8,11 +8,23 @@ spring: name: bunny-service datasource: - type: com.zaxxer.hikari.HikariDataSource - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true - username: ${bunny.datasource.username} - password: ${bunny.datasource.password} + dynamic: + primary: master #设置默认的数据源或者数据源组,默认值即为master + strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源 + grace-destroy: false #是否优雅关闭数据源,默认为false,设置为true时,关闭数据源时如果数据源中还存在活跃连接,至多等待10s后强制关闭 + datasource: + master: + driver-class-name: com.zaxxer.hikari.HikariDataSource + url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + username: ${bunny.datasource.username} + password: ${bunny.datasource.password} + quartz: + url: jdbc:mysql://${bunny.datasource2.host}:${bunny.datasource2.port}/${bunny.datasource2.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true + username: ${bunny.datasource2.username} + password: ${bunny.datasource2.password} + driver-class-name: com.zaxxer.hikari.HikariDataSource + aop: + enabled: true data: redis: @@ -32,13 +44,12 @@ spring: time-zone: GMT+8 mybatis-plus: - mapper-locations: classpath:mapper/*.xml + mapper-locations: classpath:mapper/*/*.xml global-config: db-config: logic-delete-field: isDelete configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志 - logging: level: cn.bunny.service.mapper: error diff --git a/service/src/main/resources/mapper/quartz/BlobTriggersMapper.xml b/service/src/main/resources/mapper/quartz/BlobTriggersMapper.xml new file mode 100644 index 0000000..d7c43ba --- /dev/null +++ b/service/src/main/resources/mapper/quartz/BlobTriggersMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, BLOB_DATA + + + diff --git a/service/src/main/resources/mapper/AdminPowerMapper.xml b/service/src/main/resources/mapper/web/AdminPowerMapper.xml similarity index 96% rename from service/src/main/resources/mapper/AdminPowerMapper.xml rename to service/src/main/resources/mapper/web/AdminPowerMapper.xml index 842029f..8fbbbee 100644 --- a/service/src/main/resources/mapper/AdminPowerMapper.xml +++ b/service/src/main/resources/mapper/web/AdminPowerMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/service/src/main/resources/mapper/AdminRoleMapper.xml b/service/src/main/resources/mapper/web/AdminRoleMapper.xml similarity index 95% rename from service/src/main/resources/mapper/AdminRoleMapper.xml rename to service/src/main/resources/mapper/web/AdminRoleMapper.xml index 8e11472..5ae4003 100644 --- a/service/src/main/resources/mapper/AdminRoleMapper.xml +++ b/service/src/main/resources/mapper/web/AdminRoleMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/service/src/main/resources/mapper/EmailUsersMapper.xml b/service/src/main/resources/mapper/web/EmailUsersMapper.xml similarity index 94% rename from service/src/main/resources/mapper/EmailUsersMapper.xml rename to service/src/main/resources/mapper/web/EmailUsersMapper.xml index 29b04db..2c3a514 100644 --- a/service/src/main/resources/mapper/EmailUsersMapper.xml +++ b/service/src/main/resources/mapper/web/EmailUsersMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/service/src/main/resources/mapper/SystemLogMapper.xml b/service/src/main/resources/mapper/web/SystemLogMapper.xml similarity index 95% rename from service/src/main/resources/mapper/SystemLogMapper.xml rename to service/src/main/resources/mapper/web/SystemLogMapper.xml index c7c0feb..682cb68 100644 --- a/service/src/main/resources/mapper/SystemLogMapper.xml +++ b/service/src/main/resources/mapper/web/SystemLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/service/src/main/resources/mapper/UserMapper.xml b/service/src/main/resources/mapper/web/UserMapper.xml similarity index 97% rename from service/src/main/resources/mapper/UserMapper.xml rename to service/src/main/resources/mapper/web/UserMapper.xml index 6ee63e7..ce3c71f 100644 --- a/service/src/main/resources/mapper/UserMapper.xml +++ b/service/src/main/resources/mapper/web/UserMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/service/src/main/resources/quartz.properties b/service/src/main/resources/quartz.properties index 3c00dbf..475fac6 100644 --- a/service/src/main/resources/quartz.properties +++ b/service/src/main/resources/quartz.properties @@ -1,18 +1,12 @@ -# ???????5 +org.quartz.scheduler.instanceName=MyScheduler org.quartz.threadPool.threadCount=5 -# ??? -org.quartz.threadPool.threadPriority=5 -org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true -org.quartz.jobStore.misfireThreshold=5000 -# ???????? -#org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore -#??? -org.quartz.jobStore.class=org.springframework.scheduling.quartz.LocalDataSourceJobStore +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore.tablePrefix=QRTZ_ -org.quartz.quartz.dataSource=quartz -org.quartz.dataSource.qzDS.driver=com.mysql.cj.jdbc.Driver -org.quartz.dataSource.qzDS.provider=hikaricp -org.quartz.dataSource.qzDS.URL=jdbc:mysql://localhost:3306/quartz?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true -org.quartz.dataSource.qzDS.user=root -org.quartz.dataSource.qzDS.password=123456 -org.quartz.dataSource.qzDS.maxConnections=10 \ No newline at end of file +org.quartz.jobStore.dataSource=myDS +org.quartz.dataSource.myDS.driver=com.mysql.cj.jdbc.Driver +org.quartz.dataSource.myDS.URL=jdbc:mysql://106.15.251.123:3305/myDS?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true +#org.quartz.dataSource.quartz.URL=jdbc:mysql://192.168.3.98:3306/quartz?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true +org.quartz.dataSource.myDS.user=root +org.quartz.dataSource.myDS.password=02120212 +org.quartz.dataSource.myDS.maxConnections=5 \ No newline at end of file diff --git a/service/src/main/resources/favicon.ico b/service/src/main/resources/static/favicon.ico similarity index 100% rename from service/src/main/resources/favicon.ico rename to service/src/main/resources/static/favicon.ico