Browse Source

提交dev

lzm 2 years ago
parent
commit
a2decd693d
100 changed files with 1991 additions and 1414 deletions
  1. 51 49
      pom.xml
  2. 4 11
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java
  3. 1 0
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java
  4. 5 0
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
  5. 3 3
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java
  6. 4 4
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java
  7. 5 5
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
  8. 0 28
      ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java
  9. 1 1
      ruoyi-auth/src/main/java/com/ruoyi/auth/RuoYiAuthApplication.java
  10. 7 6
      ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
  11. 8 7
      ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
  12. 8 5
      ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java
  13. 2 2
      ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysRecordLogService.java
  14. 30 30
      ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
  15. 12 10
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/CaptchaConfig.java
  16. 1 1
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java
  17. 2 1
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/KaptchaTextCreator.java
  18. 1 1
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java
  19. 3 2
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SwaggerProvider.java
  20. 3 2
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/IgnoreWhiteProperties.java
  21. 3 2
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/XssProperties.java
  22. 9 9
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
  23. 5 4
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java
  24. 3 2
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/CacheRequestFilter.java
  25. 10 9
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/ValidateCodeFilter.java
  26. 7 10
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/XssFilter.java
  27. 2 2
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java
  28. 3 6
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SwaggerHandler.java
  29. 5 4
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/ValidateCodeHandler.java
  30. 2 1
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/ValidateCodeService.java
  31. 9 8
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java
  32. 59 0
      ruoyi-modules/mz-system-ext/pom.xml
  33. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/ActivitiHighLineDTO.java
  34. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/DefinitionIdDTO.java
  35. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/ProcessDefinitionDTO.java
  36. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysDjpdzbJbpz.java
  37. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysDjpdzbXzpz.java
  38. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysGgxx.java
  39. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysMenuRoleVo.java
  40. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysTsxdXmgl.java
  41. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/vo/ActReDeploymentVO.java
  42. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/ActReDeploymentMapper.java
  43. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysDeptJlMapper.java
  44. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysDjpdzbJbpzMapper.java
  45. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysDjpdzbXzpzMapper.java
  46. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysGgxxMapper.java
  47. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysJgFwzljcMapper.java
  48. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysJgZhglMapper.java
  49. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysTsxdXmglMapper.java
  50. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysZbgzMapper.java
  51. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/YljgJcxxMapper.java
  52. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/YljgsqJcxxMapper.java
  53. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/IProcessDefinitionService.java
  54. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysDeptJlService.java
  55. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysDjpdzbJbpzService.java
  56. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysDjpdzbXzpzService.java
  57. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysGgxxService.java
  58. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysJgFwzljcService.java
  59. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysJgZhglService.java
  60. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysTsxdXmglService.java
  61. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysZbgzService.java
  62. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/ProcessDefinitionServiceImpl.java
  63. 4 4
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptJlServiceImpl.java
  64. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysDjpdzbJbpzServiceImpl.java
  65. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysDjpdzbXzpzServiceImpl.java
  66. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysGgxxServiceImpl.java
  67. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysJgFwzljcServiceImpl.java
  68. 331 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysJgZhglServiceImpl.java
  69. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysTsxdXmglServiceImpl.java
  70. 0 0
      ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysZbgzServiceImpl.java
  71. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/ActReDeploymentMapper.xml
  72. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysDeptJlMapper.xml
  73. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysDjpdzbJbpzMapper.xml
  74. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysDjpdzbXzpzMapper.xml
  75. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysGgxxMapper.xml
  76. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysJgFwzljcMapper.xml
  77. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysJgZhglMapper.xml
  78. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysTsxdXmglMapper.xml
  79. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysZbgzMapper.xml
  80. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/YljgJcxxMapper.xml
  81. 0 0
      ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/YljgsqJcxxMapper.xml
  82. 1 0
      ruoyi-modules/pom.xml
  83. 8 9
      ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java
  84. 13 13
      ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java
  85. 116 111
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm
  86. 105 128
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/domain.java.vm
  87. 91 15
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/mapper.java.vm
  88. 61 54
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/service.java.vm
  89. 169 95
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl.java.vm
  90. 0 0
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/sub-domain.java.vm
  91. 44 44
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/js/api.js.vm
  92. 22 19
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/sql/sql.vm
  93. 1 1
      ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/vue/index-tree.vue.vm
  94. 598 574
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm
  95. 1 1
      ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/vue/v3/index-tree.vue.vm
  96. 24 4
      ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/vue/v3/index.vue.vm
  97. 0 0
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/readme.txt
  98. 134 12
      ruoyi-modules/ruoyi-gen/src/main/resources/vm/xml/mapper.xml.vm
  99. 0 105
      ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/java/domain.java.vm
  100. 0 0
      ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/java/mapper.java.vm

+ 51 - 49
pom.xml

@@ -42,49 +42,6 @@
         <transmittable-thread-local.version>2.13.2</transmittable-thread-local.version>
     </properties>
 
-    <profiles>
-        <profile>
-            <id>dev</id>
-            <properties>
-                <!-- 环境标识,需要与配置文件的名称相对应 -->
-                <profiles.active>dev</profiles.active>
-<!--                <nacos.server>121.36.73.159:8848</nacos.server>-->
-                <nacos.server>10.16.4.12:8848</nacos.server>
-<!--                <nacos.server>mz.tshe.cn:848</nacos.server>-->
-                <nacos.discovery.group>MZ</nacos.discovery.group>
-                <nacos.discovery.namespace></nacos.discovery.namespace>
-                <nacos.config.group>MZ</nacos.config.group>
-                <nacos.config.namespace></nacos.config.namespace>
-            </properties>
-            <activation>
-                <!-- 默认环境 -->
-                <activeByDefault>true</activeByDefault>
-            </activation>
-        </profile>
-        <profile>
-            <id>strong3</id>
-            <properties>
-                <profiles.active>strong3</profiles.active>
-                <nacos.server>10.16.4.12:8848</nacos.server>
-                <nacos.discovery.group>MZ</nacos.discovery.group>
-                <nacos.config.group>MZ</nacos.config.group>
-                <nacos.discovery.namespace>strong3</nacos.discovery.namespace>
-                <nacos.config.namespace>strong3</nacos.config.namespace>
-            </properties>
-        </profile>
-        <profile>
-            <id>hw</id>
-            <properties>
-                <profiles.active>hw</profiles.active>
-                <nacos.server>192.168.0.252:8848</nacos.server>
-                <nacos.discovery.group>MZ</nacos.discovery.group>
-                <nacos.config.group>MZ</nacos.config.group>
-                <nacos.discovery.namespace>hw</nacos.discovery.namespace>
-                <nacos.config.namespace>hw</nacos.config.namespace>
-            </properties>
-        </profile>
-    </profiles>
-
     <!-- 依赖声明 -->
     <dependencyManagement>
         <dependencies>
@@ -268,24 +225,24 @@
                 <version>${ruoyi.version}</version>
             </dependency>
 
-            <!-- activiti模块 -->
+            <!-- 缓存服务 -->
             <dependency>
                 <groupId>com.ruoyi</groupId>
-                <artifactId>ruoyi-common-activiti</artifactId>
+                <artifactId>ruoyi-common-redis</artifactId>
                 <version>${ruoyi.version}</version>
             </dependency>
 
-            <!-- 缓存服务 -->
+            <!-- 系统接口 -->
             <dependency>
                 <groupId>com.ruoyi</groupId>
-                <artifactId>ruoyi-common-redis</artifactId>
+                <artifactId>ruoyi-api-system</artifactId>
                 <version>${ruoyi.version}</version>
             </dependency>
 
-            <!-- 系统接口 -->
+            <!-- activiti模块 -->
             <dependency>
                 <groupId>com.ruoyi</groupId>
-                <artifactId>ruoyi-api-system</artifactId>
+                <artifactId>ruoyi-common-activiti</artifactId>
                 <version>${ruoyi.version}</version>
             </dependency>
 
@@ -350,4 +307,49 @@
         </pluginRepository>
     </pluginRepositories>
 
+
+    <profiles>
+        <profile>
+            <id>dev</id>
+            <properties>
+                <!-- 环境标识,需要与配置文件的名称相对应 -->
+                <profiles.active>dev</profiles.active>
+                <!--                <nacos.server>121.36.73.159:8848</nacos.server>-->
+                <nacos.server>10.16.4.12:8848</nacos.server>
+                <!--                <nacos.server>mz.tshe.cn:848</nacos.server>-->
+                <nacos.discovery.group>MZ</nacos.discovery.group>
+                <nacos.discovery.namespace></nacos.discovery.namespace>
+                <nacos.config.group>MZ</nacos.config.group>
+                <nacos.config.namespace></nacos.config.namespace>
+            </properties>
+            <activation>
+                <!-- 默认环境 -->
+                <activeByDefault>true</activeByDefault>
+            </activation>
+        </profile>
+        <profile>
+            <id>strong3</id>
+            <properties>
+                <profiles.active>strong3</profiles.active>
+                <nacos.server>10.16.4.12:8848</nacos.server>
+                <nacos.discovery.group>MZ</nacos.discovery.group>
+                <nacos.config.group>MZ</nacos.config.group>
+                <nacos.discovery.namespace>strong3</nacos.discovery.namespace>
+                <nacos.config.namespace>strong3</nacos.config.namespace>
+            </properties>
+        </profile>
+        <profile>
+            <id>hw</id>
+            <properties>
+                <profiles.active>hw</profiles.active>
+                <nacos.server>192.168.0.252:8848</nacos.server>
+                <nacos.discovery.group>MZ</nacos.discovery.group>
+                <nacos.config.group>MZ</nacos.config.group>
+                <nacos.discovery.namespace>hw</nacos.discovery.namespace>
+                <nacos.config.namespace>hw</nacos.config.namespace>
+            </properties>
+        </profile>
+    </profiles>
+
+
 </project>

+ 4 - 11
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java

@@ -1,18 +1,18 @@
 package com.ruoyi.system.api;
 
-import com.ruoyi.common.core.web.domain.AjaxResult;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.factory.RemoteUserFallbackFactory;
 import com.ruoyi.system.api.model.LoginUser;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * 用户服务
- *
+ * 
  * @author ruoyi
  */
 @FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteUserFallbackFactory.class)
@@ -38,13 +38,6 @@ public interface RemoteUserService
     @PostMapping("/user/register")
     public R<Boolean> registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
-    /**
-     * 新增用户信息
-     *
-     * @param sysUser 用户信息
-     * @param source 请求来源
-     * @return 结果
-     */
     @PostMapping("/user")
     public AjaxResult add(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 

+ 1 - 0
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDictData.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.annotation.Excel.ColumnType;
+import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.core.web.domain.BaseEntity;
 import com.ruoyi.ext.api.validate.group.AddGroup;
 import io.swagger.annotations.ApiModel;

+ 5 - 0
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java

@@ -16,6 +16,7 @@ import lombok.NoArgsConstructor;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Size;
+import java.util.Set;
 
 /**
  * 角色表 sys_role
@@ -91,6 +92,10 @@ public class SysRole extends BaseEntity
     @ApiModelProperty(value = "部门组(数据权限)")
     private Long[] deptIds;
 
+    /** 角色菜单权限 */
+    @ApiModelProperty(value = "角色菜单权限")
+    private Set<String> permissions;
+
     /** 拥有分配角色能力的角色id集 */
     @ApiModelProperty(value = "拥有分配角色能力的角色id集")
     private String powerRids;

+ 3 - 3
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java

@@ -1,13 +1,13 @@
 package com.ruoyi.system.api.factory;
 
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.system.api.RemoteFileService;
+import com.ruoyi.system.api.domain.SysFile;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.web.multipart.MultipartFile;
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.system.api.RemoteFileService;
-import com.ruoyi.system.api.domain.SysFile;
 
 /**
  * 文件服务降级处理

+ 4 - 4
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java

@@ -1,13 +1,13 @@
 package com.ruoyi.system.api.factory;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.cloud.openfeign.FallbackFactory;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.system.api.RemoteLogService;
 import com.ruoyi.system.api.domain.SysLogininfor;
 import com.ruoyi.system.api.domain.SysOperLog;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
 
 /**
  * 日志服务降级处理

+ 5 - 5
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java

@@ -1,18 +1,18 @@
 package com.ruoyi.system.api.factory;
 
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.system.api.RemoteUserService;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.model.LoginUser;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.system.api.RemoteUserService;
-import com.ruoyi.system.api.domain.SysUser;
-import com.ruoyi.system.api.model.LoginUser;
 
 /**
  * 用户服务降级处理
- *
+ * 
  * @author ruoyi
  */
 @Component

+ 0 - 28
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java

@@ -1,12 +1,8 @@
 package com.ruoyi.system.api.model;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.ruoyi.system.api.domain.SysUser;
 
 import java.io.Serializable;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 /**
@@ -53,11 +49,6 @@ public class LoginUser implements Serializable
      */
     private Set<String> permissions;
 
-    /**
-     * 权限列表
-     */
-    private Map<String,String> detailPerms;
-
     /**
      * 角色列表
      */
@@ -138,14 +129,6 @@ public class LoginUser implements Serializable
         this.permissions = permissions;
     }
 
-    public void setDetailPerms(Map<String, String> detailPerms) {
-        this.detailPerms = detailPerms;
-    }
-
-    public Map<String, String> getDetailPerms() {
-        return detailPerms;
-    }
-
     public Set<String> getRoles()
     {
         return roles;
@@ -165,15 +148,4 @@ public class LoginUser implements Serializable
     {
         this.sysUser = sysUser;
     }
-
-    /** 当前获取数据权限得角色id **/
-    private Long roleId;
-
-    public Long getRoleId() {
-        return roleId;
-    }
-
-    public void setRoleId(Long roleId) {
-        this.roleId = roleId;
-    }
 }

+ 1 - 1
ruoyi-auth/src/main/java/com/ruoyi/auth/RuoYiAuthApplication.java

@@ -1,9 +1,9 @@
 package com.ruoyi.auth;
 
+import com.ruoyi.common.security.annotation.EnableRyFeignClients;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import com.ruoyi.common.security.annotation.EnableRyFeignClients;
 
 /**
  * 认证授权中心

+ 7 - 6
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java

@@ -1,11 +1,5 @@
 package com.ruoyi.auth.controller;
 
-import javax.servlet.http.HttpServletRequest;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
 import com.ruoyi.auth.form.LoginBody;
 import com.ruoyi.auth.form.RegisterBody;
 import com.ruoyi.auth.service.SysLoginService;
@@ -16,6 +10,13 @@ import com.ruoyi.common.security.auth.AuthUtil;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.model.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * token 控制

+ 8 - 7
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java

@@ -1,7 +1,5 @@
 package com.ruoyi.auth.service;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.constant.UserConstants;
@@ -13,6 +11,8 @@ import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.RemoteUserService;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * 登录校验方法
@@ -59,16 +59,17 @@ public class SysLoginService
         // 查询用户信息
         R<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
 
-        if (R.FAIL == userResult.getCode())
-        {
-            throw new ServiceException(userResult.getMsg());
-        }
-
         if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData()))
         {
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
             throw new ServiceException("登录用户:" + username + " 不存在");
         }
+
+        if (R.FAIL == userResult.getCode())
+        {
+            throw new ServiceException(userResult.getMsg());
+        }
+        
         LoginUser userInfo = userResult.getData();
         SysUser user = userResult.getData().getSysUser();
         if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))

+ 8 - 5
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysPasswordService.java

@@ -1,14 +1,15 @@
 package com.ruoyi.auth.service;
 
-import java.util.concurrent.TimeUnit;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.domain.SysUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
 
 /**
  * 登录密码方法
@@ -21,9 +22,11 @@ public class SysPasswordService
     @Autowired
     private RedisService redisService;
 
-    private int maxRetryCount = CacheConstants.passwordMaxRetryCount;
+//    private int maxRetryCount = CacheConstants.PASSWORD_MAX_RETRY_COUNT;
+    private int maxRetryCount = 0;
 
-    private Long lockTime = CacheConstants.passwordLockTime;
+    private Long lockTime = 1L;
+//    private Long lockTime = CacheConstants.PASSWORD_LOCK_TIME;
 
     @Autowired
     private SysRecordLogService recordLogService;

+ 2 - 2
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysRecordLogService.java

@@ -1,7 +1,5 @@
 package com.ruoyi.auth.service;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.utils.ServletUtils;
@@ -9,6 +7,8 @@ import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.ip.IpUtils;
 import com.ruoyi.system.api.RemoteLogService;
 import com.ruoyi.system.api.domain.SysLogininfor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 /**
  * 记录日志方法

+ 30 - 30
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java

@@ -270,40 +270,40 @@ public class AuthLogic
     }
 
     public void selectRole(String... roles){
-        SysRole role = getLoginUser().getSysUser().getRoles().stream()
-                .filter(sysRole -> Arrays.asList(roles).contains(sysRole.getRoleKey()))
-                .reduce((sysRole, sysRole2) -> {
-                    int dataScope = Integer.parseInt(sysRole.getDataScope());
-                    int dataScope2 = Integer.parseInt(sysRole2.getDataScope());
-                    return dataScope > dataScope2 ? sysRole2 : sysRole;
-                }).orElse(new SysRole());
-        SecurityUtils.setPermsVariable("datascope", role.getDataScope());
+//        SysRole role = getLoginUser().getSysUser().getRoles().stream()
+//                .filter(sysRole -> Arrays.asList(roles).contains(sysRole.getRoleKey()))
+//                .reduce((sysRole, sysRole2) -> {
+//                    int dataScope = Integer.parseInt(sysRole.getDataScope());
+//                    int dataScope2 = Integer.parseInt(sysRole2.getDataScope());
+//                    return dataScope > dataScope2 ? sysRole2 : sysRole;
+//                }).orElse(new SysRole());
+//        SecurityUtils.setPermsVariable("datascope", role.getDataScope());
     }
 
     public void selectRoleByPerms(String... permissions){
 
-        Map<String, String> detailPerms = getLoginUser().getDetailPerms();
-        if (permissions.length > 1){
-            Integer[] scope = {};
-            List<Integer> scopes = new ArrayList<>();
-            // TODO 考虑问题:多权限字符在配置的时候如果需要区分同一接口不同scope暂时无法做到   多权限业务,暂时取权限最大的模块,
-            Arrays.stream(permissions).forEach(permission -> {
-                if (detailPerms!= null  && detailPerms.containsKey(permission)){
-                    Integer dataScope = Integer.parseInt(detailPerms.get(permission));
-                    scopes.add(dataScope);
-                }
-            });
-            scopes.stream().min(Integer::compareTo).ifPresent(integer -> {
-                SecurityUtils.setPermsVariable("datascope", String.valueOf(integer));
-            });
-
-        }else{
-            String permission = permissions[0];
-            if (detailPerms!= null  && detailPerms.containsKey(permission)){
-                String dataScope = detailPerms.get(permission);
-                SecurityUtils.setPermsVariable("datascope", dataScope);
-            }
-        }
+//        Map<String, String> detailPerms = getLoginUser().getDetailPerms();
+//        if (permissions.length > 1){
+//            Integer[] scope = {};
+//            List<Integer> scopes = new ArrayList<>();
+//            // TODO 考虑问题:多权限字符在配置的时候如果需要区分同一接口不同scope暂时无法做到   多权限业务,暂时取权限最大的模块,
+//            Arrays.stream(permissions).forEach(permission -> {
+//                if (detailPerms!= null  && detailPerms.containsKey(permission)){
+//                    Integer dataScope = Integer.parseInt(detailPerms.get(permission));
+//                    scopes.add(dataScope);
+//                }
+//            });
+//            scopes.stream().min(Integer::compareTo).ifPresent(integer -> {
+//                SecurityUtils.setPermsVariable("datascope", String.valueOf(integer));
+//            });
+//
+//        }else{
+//            String permission = permissions[0];
+//            if (detailPerms!= null  && detailPerms.containsKey(permission)){
+//                String dataScope = detailPerms.get(permission);
+//                SecurityUtils.setPermsVariable("datascope", dataScope);
+//            }
+//        }
 
     }
 

+ 12 - 10
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/CaptchaConfig.java

@@ -1,15 +1,17 @@
 package com.ruoyi.gateway.config;
 
-import java.util.Properties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import com.google.code.kaptcha.impl.DefaultKaptcha;
 import com.google.code.kaptcha.util.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
 import static com.google.code.kaptcha.Constants.*;
 
 /**
  * 验证码配置
- *
+ * 
  * @author ruoyi
  */
 @Configuration
@@ -29,7 +31,7 @@ public class CaptchaConfig
         // 验证码图片高度 默认为50
         properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");
         // 验证码文本字符大小 默认为40
-        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "40");
+        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");
         // KAPTCHA_SESSION_KEY
         properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode");
         // 验证码文本字符长度 默认为5
@@ -37,12 +39,12 @@ public class CaptchaConfig
         // 验证码文本字体样式 默认为new Font("Arial", 1, fontSize), new Font("Courier", 1, fontSize)
         properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_NAMES, "Arial,Courier");
         // 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpy
-        properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.WaterRipple");
+        properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
         Config config = new Config(properties);
         defaultKaptcha.setConfig(config);
         return defaultKaptcha;
     }
-
+    
     @Bean(name = "captchaProducerMath")
     public DefaultKaptcha getKaptchaBeanMath()
     {
@@ -59,7 +61,7 @@ public class CaptchaConfig
         // 验证码图片高度 默认为50
         properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");
         // 验证码文本字符大小 默认为40
-        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "40");
+        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "35");
         // KAPTCHA_SESSION_KEY
         properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCodeMath");
         // 验证码文本生成器
@@ -75,9 +77,9 @@ public class CaptchaConfig
         // 干扰实现类
         properties.setProperty(KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise");
         // 图片样式 水纹com.google.code.kaptcha.impl.WaterRipple 鱼眼com.google.code.kaptcha.impl.FishEyeGimpy 阴影com.google.code.kaptcha.impl.ShadowGimpy
-        properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.WaterRipple");
+        properties.setProperty(KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
         Config config = new Config(properties);
         defaultKaptcha.setConfig(config);
         return defaultKaptcha;
     }
-}
+}

+ 1 - 1
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java

@@ -1,10 +1,10 @@
 package com.ruoyi.gateway.config;
 
+import com.ruoyi.gateway.handler.SentinelFallbackHandler;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.Ordered;
 import org.springframework.core.annotation.Order;
-import com.ruoyi.gateway.handler.SentinelFallbackHandler;
 
 /**
  * 网关限流配置

+ 2 - 1
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/KaptchaTextCreator.java

@@ -1,8 +1,9 @@
 package com.ruoyi.gateway.config;
 
-import java.util.Random;
 import com.google.code.kaptcha.text.impl.DefaultTextCreator;
 
+import java.util.Random;
+
 /**
  * 验证码文本生成器
  * 

+ 1 - 1
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/RouterFunctionConfiguration.java

@@ -1,5 +1,6 @@
 package com.ruoyi.gateway.config;
 
+import com.ruoyi.gateway.handler.ValidateCodeHandler;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -7,7 +8,6 @@ import org.springframework.http.MediaType;
 import org.springframework.web.reactive.function.server.RequestPredicates;
 import org.springframework.web.reactive.function.server.RouterFunction;
 import org.springframework.web.reactive.function.server.RouterFunctions;
-import com.ruoyi.gateway.handler.ValidateCodeHandler;
 
 /**
  * 路由配置信息

+ 3 - 2
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/SwaggerProvider.java

@@ -1,7 +1,5 @@
 package com.ruoyi.gateway.config;
 
-import java.util.ArrayList;
-import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.gateway.config.GatewayProperties;
 import org.springframework.cloud.gateway.route.RouteLocator;
@@ -13,6 +11,9 @@ import org.springframework.web.reactive.config.WebFluxConfigurer;
 import springfox.documentation.swagger.web.SwaggerResource;
 import springfox.documentation.swagger.web.SwaggerResourcesProvider;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 聚合系统接口
  * 

+ 3 - 2
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/IgnoreWhiteProperties.java

@@ -1,11 +1,12 @@
 package com.ruoyi.gateway.config.properties;
 
-import java.util.ArrayList;
-import java.util.List;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.context.annotation.Configuration;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 放行白名单配置
  * 

+ 3 - 2
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/properties/XssProperties.java

@@ -1,11 +1,12 @@
 package com.ruoyi.gateway.config.properties;
 
-import java.util.ArrayList;
-import java.util.List;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.context.annotation.Configuration;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * XSS跨站脚本配置
  * 

+ 9 - 9
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java

@@ -1,14 +1,5 @@
 package com.ruoyi.gateway.filter;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cloud.gateway.filter.GatewayFilterChain;
-import org.springframework.cloud.gateway.filter.GlobalFilter;
-import org.springframework.core.Ordered;
-import org.springframework.http.server.reactive.ServerHttpRequest;
-import org.springframework.stereotype.Component;
-import org.springframework.web.server.ServerWebExchange;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.HttpStatus;
 import com.ruoyi.common.core.constant.SecurityConstants;
@@ -19,6 +10,15 @@ import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties;
 import io.jsonwebtoken.Claims;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.core.Ordered;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.stereotype.Component;
+import org.springframework.web.server.ServerWebExchange;
 import reactor.core.publisher.Mono;
 
 /**

+ 5 - 4
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java

@@ -1,12 +1,13 @@
 package com.ruoyi.gateway.filter;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Pattern;
+import com.ruoyi.common.core.utils.ServletUtils;
 import org.springframework.cloud.gateway.filter.GatewayFilter;
 import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
 import org.springframework.stereotype.Component;
-import com.ruoyi.common.core.utils.ServletUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
 
 /**
  * 黑名单过滤器

+ 3 - 2
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/CacheRequestFilter.java

@@ -1,7 +1,5 @@
 package com.ruoyi.gateway.filter;
 
-import java.util.Collections;
-import java.util.List;
 import org.springframework.cloud.gateway.filter.GatewayFilter;
 import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.OrderedGatewayFilter;
@@ -12,6 +10,9 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.server.ServerWebExchange;
 import reactor.core.publisher.Mono;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * 获取body请求数据(解决流不能重复读取问题)
  * 

+ 10 - 9
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/ValidateCodeFilter.java

@@ -1,8 +1,11 @@
 package com.ruoyi.gateway.filter;
 
-import java.nio.CharBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.concurrent.atomic.AtomicReference;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.ruoyi.common.core.utils.ServletUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.gateway.config.properties.CaptchaProperties;
+import com.ruoyi.gateway.service.ValidateCodeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.gateway.filter.GatewayFilter;
 import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
@@ -10,14 +13,12 @@ import org.springframework.core.io.buffer.DataBuffer;
 import org.springframework.core.io.buffer.DataBufferUtils;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.stereotype.Component;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
-import com.ruoyi.common.core.utils.ServletUtils;
-import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.gateway.config.properties.CaptchaProperties;
-import com.ruoyi.gateway.service.ValidateCodeService;
 import reactor.core.publisher.Flux;
 
+import java.nio.CharBuffer;
+import java.nio.charset.StandardCharsets;
+import java.util.concurrent.atomic.AtomicReference;
+
 /**
  * 验证码过滤器
  *

+ 7 - 10
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/XssFilter.java

@@ -1,16 +1,15 @@
 package com.ruoyi.gateway.filter;
 
-import java.nio.charset.StandardCharsets;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.html.EscapeUtil;
+import com.ruoyi.gateway.config.properties.XssProperties;
+import io.netty.buffer.ByteBufAllocator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.GlobalFilter;
 import org.springframework.core.Ordered;
-import org.springframework.core.io.buffer.DataBuffer;
-import org.springframework.core.io.buffer.DataBufferFactory;
-import org.springframework.core.io.buffer.DataBufferUtils;
-import org.springframework.core.io.buffer.DefaultDataBufferFactory;
-import org.springframework.core.io.buffer.NettyDataBufferFactory;
+import org.springframework.core.io.buffer.*;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.MediaType;
@@ -18,13 +17,11 @@ import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
 import org.springframework.stereotype.Component;
 import org.springframework.web.server.ServerWebExchange;
-import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.common.core.utils.html.EscapeUtil;
-import com.ruoyi.gateway.config.properties.XssProperties;
-import io.netty.buffer.ByteBufAllocator;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+import java.nio.charset.StandardCharsets;
+
 /**
  * 跨站脚本过滤器
  *

+ 2 - 2
ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java

@@ -1,15 +1,15 @@
 package com.ruoyi.gateway.handler;
 
-import org.springframework.cloud.gateway.support.NotFoundException;
+import com.ruoyi.common.core.utils.ServletUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler;
+import org.springframework.cloud.gateway.support.NotFoundException;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.annotation.Order;
 import org.springframework.http.server.reactive.ServerHttpResponse;
 import org.springframework.web.server.ResponseStatusException;
 import org.springframework.web.server.ServerWebExchange;
-import com.ruoyi.common.core.utils.ServletUtils;
 import reactor.core.publisher.Mono;
 
 /**

+ 3 - 6
ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SwaggerHandler.java

@@ -1,6 +1,5 @@
 package com.ruoyi.gateway.handler;
 
-import java.util.Optional;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -8,11 +7,9 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import reactor.core.publisher.Mono;
-import springfox.documentation.swagger.web.SecurityConfiguration;
-import springfox.documentation.swagger.web.SecurityConfigurationBuilder;
-import springfox.documentation.swagger.web.SwaggerResourcesProvider;
-import springfox.documentation.swagger.web.UiConfiguration;
-import springfox.documentation.swagger.web.UiConfigurationBuilder;
+import springfox.documentation.swagger.web.*;
+
+import java.util.Optional;
 
 @RestController
 @RequestMapping("/swagger-resources")

+ 5 - 4
ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/ValidateCodeHandler.java

@@ -1,6 +1,8 @@
 package com.ruoyi.gateway.handler;
 
-import java.io.IOException;
+import com.ruoyi.common.core.exception.CaptchaException;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.gateway.service.ValidateCodeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Component;
@@ -8,11 +10,10 @@ import org.springframework.web.reactive.function.BodyInserters;
 import org.springframework.web.reactive.function.server.HandlerFunction;
 import org.springframework.web.reactive.function.server.ServerRequest;
 import org.springframework.web.reactive.function.server.ServerResponse;
-import com.ruoyi.common.core.exception.CaptchaException;
-import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.gateway.service.ValidateCodeService;
 import reactor.core.publisher.Mono;
 
+import java.io.IOException;
+
 /**
  * 验证码获取
  *

+ 2 - 1
ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/ValidateCodeService.java

@@ -1,9 +1,10 @@
 package com.ruoyi.gateway.service;
 
-import java.io.IOException;
 import com.ruoyi.common.core.exception.CaptchaException;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 
+import java.io.IOException;
+
 /**
  * 验证码处理
  *

+ 9 - 8
ruoyi-gateway/src/main/java/com/ruoyi/gateway/service/impl/ValidateCodeServiceImpl.java

@@ -1,13 +1,5 @@
 package com.ruoyi.gateway.service.impl;
 
-import java.awt.image.BufferedImage;
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-import javax.annotation.Resource;
-import javax.imageio.ImageIO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.FastByteArrayOutputStream;
 import com.google.code.kaptcha.Producer;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.Constants;
@@ -19,6 +11,15 @@ import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.gateway.config.properties.CaptchaProperties;
 import com.ruoyi.gateway.service.ValidateCodeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.FastByteArrayOutputStream;
+
+import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 验证码实现处理

+ 59 - 0
ruoyi-modules/mz-system-ext/pom.xml

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xmlns="http://maven.apache.org/POM/4.0.0"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>com.ruoyi</groupId>
+        <artifactId>ruoyi-modules</artifactId>
+        <version>3.6.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>ruoyi-modules-system-ext</artifactId>
+
+    <description>
+        ruoyi-modules-system-ext系统扩展模块
+    </description>
+
+    <dependencies>
+
+        <!-- Mysql Connector -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common DataSource -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-datasource</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common DataScope -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-datascope</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Log -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-log</artifactId>
+        </dependency>
+
+        <!-- RuoYi Common Swagger -->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-swagger</artifactId>
+        </dependency>
+
+        <!-- activiti模块-->
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common-activiti</artifactId>
+        </dependency>
+
+    </dependencies>
+
+
+</project>

ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/ActivitiHighLineDTO.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/ActivitiHighLineDTO.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/DefinitionIdDTO.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/DefinitionIdDTO.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/ProcessDefinitionDTO.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/ProcessDefinitionDTO.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDjpdzbJbpz.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysDjpdzbJbpz.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDjpdzbXzpz.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysDjpdzbXzpz.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysGgxx.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysGgxx.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenuRoleVo.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysMenuRoleVo.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTsxdXmgl.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/SysTsxdXmgl.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ActReDeploymentVO.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/domain/vo/ActReDeploymentVO.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ActReDeploymentMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/ActReDeploymentMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptJlMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysDeptJlMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDjpdzbJbpzMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysDjpdzbJbpzMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDjpdzbXzpzMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysDjpdzbXzpzMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysGgxxMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysGgxxMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysJgFwzljcMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysJgFwzljcMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysJgZhglMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysJgZhglMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTsxdXmglMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysTsxdXmglMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysZbgzMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/SysZbgzMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/YljgJcxxMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/YljgJcxxMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/YljgsqJcxxMapper.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/mapper/YljgsqJcxxMapper.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IProcessDefinitionService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/IProcessDefinitionService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptJlService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysDeptJlService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDjpdzbJbpzService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysDjpdzbJbpzService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDjpdzbXzpzService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysDjpdzbXzpzService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysGgxxService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysGgxxService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysJgFwzljcService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysJgFwzljcService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysJgZhglService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysJgZhglService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTsxdXmglService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysTsxdXmglService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysZbgzService.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/ISysZbgzService.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProcessDefinitionServiceImpl.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/ProcessDefinitionServiceImpl.java


+ 4 - 4
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptJlServiceImpl.java

@@ -11,7 +11,7 @@ import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.domain.SysDeptJl;
 import com.ruoyi.system.mapper.SysDeptJlMapper;
 import com.ruoyi.system.service.ISysDeptJlService;
-import com.ruoyi.system.service.ISysDeptService;
+//import com.ruoyi.system.service.ISysDeptService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -33,8 +33,8 @@ public class SysDeptJlServiceImpl implements ISysDeptJlService {
     @Autowired
     private SysDeptJlMapper sysDeptJlMapper;
 
-    @Autowired
-    private ISysDeptService sysDeptService;
+//    @Autowired
+//    private ISysDeptService sysDeptService;
 
     @Autowired
     private RedisService redisService;
@@ -207,7 +207,7 @@ public class SysDeptJlServiceImpl implements ISysDeptJlService {
             sysDept.setStatus("0");
             sysDept.setParentId(parentId);
             sysDept.setLocationCode(item.getCode());
-            sysDeptService.insertDept(sysDept);
+//            sysDeptService.insertDept(sysDept);
             return sysDept;
         } catch (Exception e) {
             LogUtils.logger("sql同步异常:" + e.getMessage());

ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDjpdzbJbpzServiceImpl.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysDjpdzbJbpzServiceImpl.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDjpdzbXzpzServiceImpl.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysDjpdzbXzpzServiceImpl.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysGgxxServiceImpl.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysGgxxServiceImpl.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysJgFwzljcServiceImpl.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysJgFwzljcServiceImpl.java


+ 331 - 0
ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysJgZhglServiceImpl.java

@@ -0,0 +1,331 @@
+package com.ruoyi.system.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+import com.ruoyi.common.core.constant.UserConstants;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.organization.domain.YljgJcxx;
+import com.ruoyi.organization.domain.YljgsqJcxx;
+import com.ruoyi.ext.api.RemoteOrgYljgJcxxService;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.domain.SysJgZhgl;
+import com.ruoyi.system.service.ISysJgZhglService;
+import org.springframework.stereotype.Service;
+
+
+import java.text.DecimalFormat;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 机构账号管理Service业务层处理
+ *
+ * @author CH
+ * @date 2022-05-31
+ */
+@Service
+public class SysJgZhglServiceImpl implements ISysJgZhglService
+{
+    @Override
+    public SysJgZhgl selectSysJgZhglById(String id) {
+        return null;
+    }
+
+    @Override
+    public List<SysJgZhgl> selectSysJgZhglList(SysJgZhgl sysJgZhgl) {
+        return null;
+    }
+
+    @Override
+    public int insertSysJgZhgl(SysJgZhgl sysJgZhgl) {
+        return 0;
+    }
+
+    @Override
+    public int updateSysJgZhgl(SysJgZhgl sysJgZhgl) {
+        return 0;
+    }
+
+    @Override
+    public int deleteSysJgZhglByIds(String[] ids) {
+        return 0;
+    }
+//    @Autowired
+//    private SysJgZhglMapper sysJgZhglMapper;
+//
+//    @Autowired
+//    private SysUserMapper sysUserMapper;
+//
+//    @Autowired
+//    private YljgJcxxMapper yljgJcxxMapper;
+//
+//    @Autowired
+//    private YljgsqJcxxMapper yljgsqJcxxMapper;
+//
+//    @Autowired
+//    private SysDeptMapper sysDeptMapper;
+//
+//    @Autowired
+//    private ISysUserService userService;
+//
+//    @Autowired
+//    private ISysConfigService configService;
+//
+//    @Autowired
+//    private RemoteOrgYljgJcxxService remoteOrgYljgJcxxService;
+//
+//
+//
+//    /**
+//     * 查询机构账号管理
+//     *
+//     * @param id 机构账号管理主键
+//     * @return 机构账号管理
+//     */
+//    @Override
+//    public SysJgZhgl selectSysJgZhglById(String id)
+//    {
+////        return sysJgZhglMapper.selectById(id);
+//        SysJgZhgl sysJgZhgl =  sysJgZhglMapper.selectSysJgZhglById(id);
+//
+//        String deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId().toString();
+//        Map<String,Object> map  = sysDeptMapper.selectDeptNamesByCode(deptId);
+//        sysJgZhgl.setDeptNames(map.get("deptNames").toString());
+//        return sysJgZhgl;
+//    }
+//
+//    /**
+//     * 查询机构账号管理列表
+//     *
+//     * @param sysJgZhgl 机构账号管理
+//     * @return 机构账号管理
+//     */
+//    @Override
+//    public List<SysJgZhgl> selectSysJgZhglList(SysJgZhgl sysJgZhgl)
+//    {
+////        return sysJgZhglMapper.selectList(new LambdaQueryWrapper<>(sysJgZhgl));
+//        return sysJgZhglMapper.selectSysJgZhglList(sysJgZhgl);
+//    }
+//
+//    /**
+//     * 新增机构账号管理
+//     *
+//     * @param sysJgZhgl 机构账号管理
+//     * @return 结果
+//     */
+//    @Transactional
+//    @Override
+//    public int insertSysJgZhgl(SysJgZhgl sysJgZhgl)
+//    {
+//        Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
+//        String code = deptId.toString().substring(0,6);
+//        sysJgZhgl.setSsxzqh(deptId.toString());
+//        String password = configService.selectConfigByKey("sys.user.initPassword");
+//        sysJgZhgl.setPassword(SecurityUtils.encryptPassword(password));
+//
+//        String userName;
+//        // 添加系统用户
+//        SysUser user = new SysUser();
+//
+//
+//
+//        if(sysJgZhgl.getIsZhType().equals("1")){ // 是养老机构
+//            Long[] tt = new Long[1];
+//            tt[0]=2L;
+//            user.setRoleIds(tt);
+//            user.setUserType("01");
+//
+//            String str = code+"0000";
+//            Long i = (long) (Integer.parseInt(sysJgZhglMapper.selectuserCount(code,"01")) + 1);
+//            Long result = Long.parseLong(str) + i;
+//            DecimalFormat decimalFormat = new DecimalFormat("0000000000");
+//            userName = "yljg"+decimalFormat.format(result);
+//        }else{
+//            Long[] tt = new Long[1];
+//            tt[0]=4L;
+//            user.setRoleIds(tt);
+//            user.setUserType("02");
+//
+//            String str = code+"000000";
+//            Long i = (long) (Integer.parseInt(sysJgZhglMapper.selectuserCount(code,"02")) + 1);
+//            Long result = Long.parseLong(str) + i;
+//            DecimalFormat decimalFormat = new DecimalFormat("000000000000");
+//            userName = "sqjg"+decimalFormat.format(result);
+//        }
+//        user.setDeptId(deptId);
+//        user.setNickName(sysJgZhgl.getJgmc());
+//        user.setPassword(password);
+//        user.setUserName(userName);
+//        user.setPhonenumber(sysJgZhgl.getFrlxfs());
+//        user.setStatus("1"); // 默认创建账号为待开通状态, 且sys_user表该账号为禁用 0:启用 1:禁用
+//
+//        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
+//        {
+//            throw new ServiceException("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+//        }
+//        else if (StringUtils.isNotEmpty(user.getPhonenumber())
+//                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+//        {
+//            throw new ServiceException("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
+//        }
+//
+//        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+//        userService.insertUser(user);
+//        sysJgZhgl.setUserName(userName);
+//        sysJgZhgl.setSysUserId(user.getUserId());
+//        return sysJgZhglMapper.insert(sysJgZhgl);
+//    }
+//
+//    /**
+//     * 修改机构账号管理
+//     *
+//     * @param sysJgZhgl 机构账号管理
+//     * @return 结果
+//     */
+//    @Transactional
+//    @Override
+//    public int updateSysJgZhgl(SysJgZhgl sysJgZhgl)
+//    {
+//        int rows = 0;
+//        // 启用 禁用 删除
+//        // 修改机构状态 、 修改系统账号状态 、 修改当前表 、 如果删除则另走
+//        SysJgZhgl orginJgZhgl;
+//        if (StringUtils.isBlank(sysJgZhgl.getId())){
+//            orginJgZhgl = sysJgZhgl;
+//        }else{
+//            orginJgZhgl = sysJgZhglMapper.selectById(sysJgZhgl.getId());
+//            BeanUtil.copyProperties(sysJgZhgl,orginJgZhgl,new CopyOptions().ignoreNullValue());
+//        }
+//
+//        SysUser user = new SysUser();
+//        user.setUserId(orginJgZhgl.getSysUserId());
+//        SysUser user1 = sysUserMapper.selectUserById(orginJgZhgl.getSysUserId());
+//        if(StringUtils.isNotNull(sysJgZhgl.getStatus())){
+//
+//            userService.checkUserAllowed(user);
+//            userService.checkUserDataScope(user.getUserId());
+//
+//            // 修改系统账号状态
+//                if(sysJgZhgl.getStatus().equals("01")){ //账号启用
+//                    user.setStatus("0");
+//                    userService.updateUserStatus(user); // 修改系统用户的状态
+//                    if(StringUtils.isNotNull(user1)){ // 修改机构运营状态
+//                        if(orginJgZhgl.getIsZhType().equals("1")){
+//                            YljgJcxx yljgJcxx = new YljgJcxx();
+//                            yljgJcxx.setId(user1.getJgId());
+//                            yljgJcxx.setSczt("01");
+//                            remoteOrgYljgJcxxService.editSczt(yljgJcxx);
+////                            yljgJcxxMapper.updateYljgJcxx(yljgJcxx);
+//                        }else{
+//                            YljgsqJcxx yljgsqJcxx = new YljgsqJcxx();
+//                            yljgsqJcxx.setId(user1.getJgId());
+//                            yljgsqJcxx.setSczt("01");
+//                            remoteOrgYljgJcxxService.editSczt(yljgsqJcxx);
+////                            yljgsqJcxxMapper.updateYljgsqJcxx(yljgsqJcxx);
+//                        }
+//                    }
+//
+//                } else if(sysJgZhgl.getStatus().equals("02")){ // 未开通 - 修改信息
+//                    user.setPhonenumber(sysJgZhgl.getFrlxfs());
+//                    if(userService.checkPhoneUnique(user).equals("0")){ // 校验手机号码是否唯一 :校验通过
+//                        user.setNickName(sysJgZhgl.getJgmc());
+//                        userService.updateUserByZhxx(user);
+//                    }else{
+//                        throw new ServiceException("修改信息失败,手机号码已存在");
+//                    }
+//                    userService.updateUserStatus(user); // 修改系统用户的状态
+//
+//                }
+//                else if(sysJgZhgl.getStatus().equals("03")){ //账号禁用
+//                    user.setStatus("1");
+//                    userService.updateUserStatus(user); // 修改系统用户的状态
+//                    if(StringUtils.isNotNull(user1)){
+//                        if(orginJgZhgl.getIsZhType().equals("1")){
+//                            YljgJcxx yljgJcxx = new YljgJcxx();
+//                            yljgJcxx.setId(user1.getJgId());
+//                            yljgJcxx.setSczt("07");
+//                            insertYljgJcxxUpdateHi(yljgJcxx);
+//                            yljgJcxxMapper.updateYljgJcxx(yljgJcxx);
+//                        }else{
+//                            YljgsqJcxx yljgsqJcxx = new YljgsqJcxx();
+//                            yljgsqJcxx.setId(user1.getJgId());
+//                            yljgsqJcxx.setSczt("07");
+//                            yljgsqJcxxMapper.updateYljgsqJcxx(yljgsqJcxx);
+//                        }
+//                    }
+//                }
+//                else {
+//                    throw new ServiceException("状态值错误,请检查其信息");
+//                }
+//
+//            if(orginJgZhgl.getIsZhType().equals("1")){
+//                rows++;
+//                sysJgZhglMapper.updateSysHgZhglByyljg(sysJgZhgl);
+//            }else{
+//                rows++;
+//                sysJgZhglMapper.updateSysHgZhglBysqjg(sysJgZhgl);
+//            }
+//        }
+//
+//        if(StringUtils.isNotNull(sysJgZhgl.getIsSc())){ // 删除操作
+//            if(sysJgZhgl.getIsSc().equals("1")){
+//                Long[] userId = new Long[1];
+//                userId[0] = orginJgZhgl.getSysUserId();
+//
+//                if (ArrayUtils.contains(userId, SecurityUtils.getUserId()))
+//                {
+//                    throw new ServiceException("当前用户不能删除");
+//                }
+//                userService.deleteUserByIds(userId);
+//                if(StringUtils.isNotNull(user1)){
+//                    if(orginJgZhgl.getIsZhType().equals("1")){
+//                        YljgJcxx yljgJcxx = new YljgJcxx();
+//                        yljgJcxx.setId(user1.getJgId());
+//                        yljgJcxx.setSczt("02");
+//                        insertYljgJcxxUpdateHi(yljgJcxx);
+//                        yljgJcxxMapper.updateYljgJcxx(yljgJcxx);
+//                    }else{
+//                        YljgsqJcxx yljgsqJcxx = new YljgsqJcxx();
+//                        yljgsqJcxx.setId(user1.getJgId());
+//                        yljgsqJcxx.setSczt("02");
+//                        yljgsqJcxxMapper.updateYljgsqJcxx(yljgsqJcxx);
+//                    }
+//                }
+//                sysJgZhglMapper.updateSysHgZhglByyljg(sysJgZhgl);
+//            }
+//            rows++;
+//        }
+//        return rows;
+//    }
+//
+//    /**
+//     * 批量删除机构账号管理
+//     *
+//     * @param ids 需要删除的机构账号管理主键
+//     * @return 结果
+//     */
+//    @Override
+//    public int deleteSysJgZhglByIds(String[] ids)
+//    {
+//        return sysJgZhglMapper.deleteBatchIds(Arrays.asList(ids));
+//    }
+//
+//    private void insertYljgJcxxUpdateHi(YljgJcxx xx) {
+//        YljgJcxx jcxx = new YljgJcxx();
+//        BeanUtil.copyProperties(xx, jcxx, new CopyOptions().ignoreNullValue());
+//        YljgJcxx old = yljgJcxxMapper.selectById(jcxx.getId());
+//        if (!StringUtils.equals(old.getSczt(), jcxx.getSczt())
+//                && StringUtils.isNotEmpty(jcxx.getSczt())) {
+//            YljgJcxx sczt = new YljgJcxx();
+//            BeanUtil.copyProperties(old, sczt, new CopyOptions().ignoreNullValue());
+//            sczt.setSczt(jcxx.getSczt());
+//            sczt.setOldSczt(old.getSczt());
+//            sczt.setScztXgsj(jcxx.getScztXgsj());
+//            yljgJcxxMapper.insertYljgJcxxSczt(sczt);
+//        }
+//        yljgJcxxMapper.insertYljgJcxxUpdateHi(old);
+//    }
+}

ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTsxdXmglServiceImpl.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysTsxdXmglServiceImpl.java


ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysZbgzServiceImpl.java → ruoyi-modules/mz-system-ext/src/main/java/com/ruoyi/system/service/impl/SysZbgzServiceImpl.java


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/ActReDeploymentMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/ActReDeploymentMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptJlMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysDeptJlMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDjpdzbJbpzMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysDjpdzbJbpzMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDjpdzbXzpzMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysDjpdzbXzpzMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysGgxxMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysGgxxMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysJgFwzljcMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysJgFwzljcMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysJgZhglMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysJgZhglMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysTsxdXmglMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysTsxdXmglMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysZbgzMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/SysZbgzMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/YljgJcxxMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/YljgJcxxMapper.xml


ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/YljgsqJcxxMapper.xml → ruoyi-modules/mz-system-ext/src/main/resources/mapper/system/YljgsqJcxxMapper.xml


+ 1 - 0
ruoyi-modules/pom.xml

@@ -10,6 +10,7 @@
 
     <modules>
         <module>ruoyi-system</module>
+        <module>mz-system-ext</module>
         <module>ruoyi-gen</module>
         <module>ruoyi-job</module>
         <module>ruoyi-file</module>

+ 8 - 9
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java

@@ -1,5 +1,11 @@
 package com.ruoyi.file.utils;
 
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Paths;
+import java.util.Objects;
+import org.apache.commons.io.FilenameUtils;
+import org.springframework.web.multipart.MultipartFile;
 import com.ruoyi.common.core.exception.file.FileNameLengthLimitExceededException;
 import com.ruoyi.common.core.exception.file.FileSizeLimitExceededException;
 import com.ruoyi.common.core.exception.file.InvalidExtensionException;
@@ -8,13 +14,6 @@ import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.file.FileTypeUtils;
 import com.ruoyi.common.core.utils.file.MimeTypeUtils;
 import com.ruoyi.common.core.utils.uuid.Seq;
-import org.apache.commons.io.FilenameUtils;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Paths;
-import java.util.Objects;
 
 /**
  * 文件上传工具类
@@ -24,9 +23,9 @@ import java.util.Objects;
 public class FileUploadUtils
 {
     /**
-     * 默认大小 15M
+     * 默认大小 50M
      */
-    public static final long DEFAULT_MAX_SIZE = 15 * 1024 * 1024;
+    public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
 
     /**
      * 默认的文件名最大长度 100

+ 13 - 13
ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/util/VelocityUtils.java

@@ -130,27 +130,27 @@ public class VelocityUtils
     public static List<String> getTemplateList(String tplCategory)
     {
         List<String> templates = new ArrayList<String>();
-        templates.add("vm/java/domain.java.vm");
-        templates.add("vm/java/mapper.java.vm");
-        templates.add("vm/java/service.java.vm");
-        templates.add("vm/java/serviceImpl.java.vm");
-        templates.add("vm/java/controller.java.vm");
-        templates.add("vm/xml/mapper.xml.vm");
-        templates.add("vm/sql/sql.vm");
-        templates.add("vm/sql/mapper2.xml.vm");
-        templates.add("vm/js/api.js.vm");
+        templates.add("vm_mz/java/domain.java.vm");
+        templates.add("vm_mz/java/mapper.java.vm");
+        templates.add("vm_mz/java/service.java.vm");
+        templates.add("vm_mz/java/serviceImpl.java.vm");
+        templates.add("vm_mz/java/controller.java.vm");
+        templates.add("vm_mz/xml/mapper.xml.vm");
+        templates.add("vm_mz/sql/sql.vm");
+        templates.add("vm_mz/sql/mapper2.xml.vm");
+        templates.add("vm_mz/js/api.js.vm");
         if (GenConstants.TPL_CRUD.equals(tplCategory))
         {
-            templates.add("vm/vue/index.vue.vm");
+            templates.add("vm_mz/vue/index.vue.vm");
         }
 //        else if (GenConstants.TPL_TREE.equals(tplCategory))
 //        {
-//            templates.add("vm/vue/index-tree.vue.vm");
+//            templates.add("vm_mz/vue/index-tree.vue.vm");
 //        }
         else if (GenConstants.TPL_SUB.equals(tplCategory))
         {
-            templates.add("vm/vue/index.vue.vm");
-            templates.add("vm/java/sub-domain.java.vm");
+            templates.add("vm_mz/vue/index.vue.vm");
+            templates.add("vm_mz/java/sub-domain.java.vm");
         }
         return templates;
     }

+ 116 - 111
ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm

@@ -1,111 +1,116 @@
-package ${packageName}.controller;
-
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.log.annotation.Log;
-import com.ruoyi.common.log.enums.BusinessType;
-import com.ruoyi.common.security.annotation.RequiresPermissions;
-import com.ruoyi.ext.api.validate.group.AddGroup;
-import ${packageName}.domain.${ClassName};
-import ${packageName}.service.I${ClassName}Service;
-import com.ruoyi.common.core.web.controller.BaseController;
-import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.common.core.utils.poi.ExcelUtil;
-#if($table.crud)
-import com.ruoyi.common.core.web.page.TableDataInfo;
-#end
-
-/**
- * ${functionName}Controller
- * 
- * @author ${author}
- * @date ${datetime}
- */
-@RestController
-@RequestMapping("/${businessName}")
-public class ${ClassName}Controller extends BaseController
-{
-    @Autowired
-    private I${ClassName}Service ${className}Service;
-
-    /**
-     * 查询${functionName}列表
-     */
-    @RequiresPermissions("${permissionPrefix}:list")
-    @GetMapping("/list")
-#if($table.crud)
-    public TableDataInfo list(${ClassName} ${className})
-    {
-        startPage();
-        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
-        return getDataTable(list);
-    }
-#end
-
-    /**
-     * 导出${functionName}列表
-     */
-    @RequiresPermissions("${permissionPrefix}:export")
-    @Log(title = "${functionName}", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, ${ClassName} ${className})
-    {
-        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
-        ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class);
-        util.exportExcel(response, list, "${functionName}数据");
-    }
-
-    /**
-     * 获取${functionName}详细信息
-     */
-    @RequiresPermissions("${permissionPrefix}:query")
-    @GetMapping(value = "/{${pkColumn.javaField}}")
-    public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField})
-    {
-        return AjaxResult.success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}));
-    }
-
-    /**
-     * 新增${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:add")
-    @Log(title = "${functionName}", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@Validated({AddGroup.class}) @RequestBody ${ClassName} ${className})
-    {
-        return toAjax(${className}Service.insert${ClassName}(${className}),${className}.getId());
-    }
-
-    /**
-     * 修改${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:edit")
-    @Log(title = "${functionName}", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@Validated @RequestBody ${ClassName} ${className})
-    {
-        return toAjax(${className}Service.update${ClassName}(${className}));
-    }
-
-    /**
-     * 删除${functionName}
-     */
-    @RequiresPermissions("${permissionPrefix}:remove")
-    @Log(title = "${functionName}", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{${pkColumn.javaField}s}")
-    public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s)
-    {
-        return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s));
-    }
-}
+package ${packageName}.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import ${packageName}.domain.${ClassName};
+import ${packageName}.service.I${ClassName}Service;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+#if($table.crud || $table.sub)
+import com.ruoyi.common.core.web.page.TableDataInfo;
+#elseif($table.tree)
+#end
+
+/**
+ * ${functionName}Controller
+ * 
+ * @author ${author}
+ * @date ${datetime}
+ */
+@RestController
+@RequestMapping("/${businessName}")
+public class ${ClassName}Controller extends BaseController
+{
+    @Autowired
+    private I${ClassName}Service ${className}Service;
+
+    /**
+     * 查询${functionName}列表
+     */
+    @RequiresPermissions("${permissionPrefix}:list")
+    @GetMapping("/list")
+#if($table.crud || $table.sub)
+    public TableDataInfo list(${ClassName} ${className})
+    {
+        startPage();
+        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
+        return getDataTable(list);
+    }
+#elseif($table.tree)
+    public AjaxResult list(${ClassName} ${className})
+    {
+        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
+        return AjaxResult.success(list);
+    }
+#end
+
+    /**
+     * 导出${functionName}列表
+     */
+    @RequiresPermissions("${permissionPrefix}:export")
+    @Log(title = "${functionName}", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ${ClassName} ${className})
+    {
+        List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});
+        ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class);
+        util.exportExcel(response, list, "${functionName}数据");
+    }
+
+    /**
+     * 获取${functionName}详细信息
+     */
+    @RequiresPermissions("${permissionPrefix}:query")
+    @GetMapping(value = "/{${pkColumn.javaField}}")
+    public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField})
+    {
+        return AjaxResult.success(${className}Service.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField}));
+    }
+
+    /**
+     * 新增${functionName}
+     */
+    @RequiresPermissions("${permissionPrefix}:add")
+    @Log(title = "${functionName}", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ${ClassName} ${className})
+    {
+        return toAjax(${className}Service.insert${ClassName}(${className}));
+    }
+
+    /**
+     * 修改${functionName}
+     */
+    @RequiresPermissions("${permissionPrefix}:edit")
+    @Log(title = "${functionName}", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ${ClassName} ${className})
+    {
+        return toAjax(${className}Service.update${ClassName}(${className}));
+    }
+
+    /**
+     * 删除${functionName}
+     */
+    @RequiresPermissions("${permissionPrefix}:remove")
+    @Log(title = "${functionName}", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{${pkColumn.javaField}s}")
+    public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s)
+    {
+        return toAjax(${className}Service.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s));
+    }
+}

+ 105 - 128
ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/domain.java.vm

@@ -1,128 +1,105 @@
-package ${packageName}.domain;
-
-import com.baomidou.mybatisplus.annotation.*;
-import com.ruoyi.ext.api.validate.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-#foreach ($import in $importList)
-import ${import};
-#end
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.ruoyi.common.core.annotation.Excel;
-#if($table.crud)
-import com.ruoyi.ext.api.validate.group.AddGroup;
-import com.ruoyi.common.core.web.domain.BaseEntity;
-import org.hibernate.validator.constraints.Range;
-import com.ruoyi.ext.api.validate.DictV;
-import com.ruoyi.ext.api.validate.DateV;
-import com.ruoyi.ext.api.validate.MobileV;
-import com.ruoyi.ext.api.validate.PhoneV;
-import com.ruoyi.ext.api.validate.IdCardV;
-import com.ruoyi.ext.api.validate.NumberV;
-
-import javax.validation.constraints.Digits;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
-#end
-
-/**
- * ${functionName}对象 ${tableName}
- *
- * @author ${author}
- * @date ${datetime}
- */
-#if($table.crud)
-#set($Entity="BaseEntity")
-#end
-@Data
-@EqualsAndHashCode(callSuper = true)
-@NoArgsConstructor
-@TableName("${tableName}")
-@ApiModel("${functionName}")
-public class ${ClassName} extends ${Entity}
-{
-    private static final long serialVersionUID = 1L;
-
-#foreach ($column in $columns)
-#set($columnTypeStartIndex=$column.columnType.indexOf("(")+1)
-#set($columnTypeEndIndex=$column.columnType.indexOf(")"))
-#if($columnTypeStartIndex != 0 && $columnTypeEndIndex != -1)
-    #set($columnIndex=$column.columnType.substring($columnTypeStartIndex,$columnTypeEndIndex))
-#else
-    #set($columnIndex=-1)
-#end
-#if(!$table.isSuperColumn($column.javaField))
-    /** $column.columnComment */
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-    #set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-    #set($comment=$column.columnComment)
-#end
-#if($parentheseIndex != -1)
-#if($column.readDict().indexOf(" ")==-1)
-    @Excel(name = "${comment}", dictType = "$column.readDict()")
-#else
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
-#end
-#elseif($column.javaType == 'Date')
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
-#else
-    @Excel(name = "${comment}")
-#end
-#if($column.isPk==1)
-    @TableId(value = "$column.columnName",type = IdType.ASSIGN_UUID)
-#end
-#if($column.isRequired == 1 && $column.javaField!='jgId')
-    @ApiModelProperty(value = "$column.columnComment", required = true)
-    @NotBlank(message = "{$comment}",groups = AddGroup.class)
-#else
-    @ApiModelProperty(value = "$column.columnComment")
-#end
-#if($column.dictType && $column.dictType != '')
-    @DictV(type = "$column.dictType",message = "{$comment}")
-#else
-#if($column.isPk!=1 && $column.columnName.indexOf('id')==-1)
-#if($column.javaType == 'String')
-#if($columnIndex == '8' && $comment.indexOf("日期")!=-1)
-    @DateV(pattern = "yyyyMMdd", message = "{$comment}")
-#elseif($columnIndex == '14' && $comment.indexOf("时间")!=-1)
-    @DateV(message = "{$comment}")
-#elseif($columnIndex == '11' && $comment.indexOf("手机")!=-1 )
-    @MobileV(message = "{$comment}")
-#elseif($comment.indexOf("固定电话")!=-1 )
-    @PhoneV(message = "{$comment}")
-#elseif($columnIndex == '18' && ($comment.indexOf("身份号码")!=-1 || $comment.indexOf("证件号码")!=-1 || $comment.indexOf("身份证")!=-1))
-    @IdCardV(message = "{$comment}")
-#else
-#if($column.isRequired == 1 && $column.javaField!='jgId')
-    @Size(min = 1, max = $columnIndex, message = "{$comment}")
-#else
-    @Size(max = $columnIndex, message = "{$comment}")
-#end
-
-#end
-#elseif($column.javaType == 'Long' || $column.javaType == 'Integer')
-    @Range(min=0,max=100,message = "{$comment}")
-    @NumberV(message = "{$comment}")
-#elseif($column.javaType == 'BigDecimal' || $column.javaType == 'Double')
-    @Range(min=0,max=10000000000L,message = "{$comment}")
-    @Digits(integer = 10,fraction = 2,message = "{$comment}")
-#end
-#if($comment.indexOf("姓名")!=-1)
-    @ChineseV(message = "{$comment}")
-#end
-#end
-#end
-    private String $column.javaField;
-
-#end
-#end
-}
+package ${packageName}.domain;
+
+#foreach ($import in $importList)
+import ${import};
+#end
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+#if($table.crud || $table.sub)
+import com.ruoyi.common.core.web.domain.BaseEntity;
+#elseif($table.tree)
+import com.ruoyi.common.core.web.domain.TreeEntity;
+#end
+
+/**
+ * ${functionName}对象 ${tableName}
+ * 
+ * @author ${author}
+ * @date ${datetime}
+ */
+#if($table.crud || $table.sub)
+#set($Entity="BaseEntity")
+#elseif($table.tree)
+#set($Entity="TreeEntity")
+#end
+public class ${ClassName} extends ${Entity}
+{
+    private static final long serialVersionUID = 1L;
+
+#foreach ($column in $columns)
+#if(!$table.isSuperColumn($column.javaField))
+    /** $column.columnComment */
+#if($column.list)
+#set($parentheseIndex=$column.columnComment.indexOf("("))
+#if($parentheseIndex != -1)
+#set($comment=$column.columnComment.substring(0, $parentheseIndex))
+#else
+#set($comment=$column.columnComment)
+#end
+#if($parentheseIndex != -1)
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+#elseif($column.javaType == 'Date')
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
+#else
+    @Excel(name = "${comment}")
+#end
+#end
+    private $column.javaType $column.javaField;
+
+#end
+#end
+#if($table.sub)
+    /** $table.subTable.functionName信息 */
+    private List<${subClassName}> ${subclassName}List;
+
+#end
+#foreach ($column in $columns)
+#if(!$table.isSuperColumn($column.javaField))
+#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
+#set($AttrName=$column.javaField)
+#else
+#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+#end
+    public void set${AttrName}($column.javaType $column.javaField) 
+    {
+        this.$column.javaField = $column.javaField;
+    }
+
+    public $column.javaType get${AttrName}() 
+    {
+        return $column.javaField;
+    }
+#end
+#end
+
+#if($table.sub)
+    public List<${subClassName}> get${subClassName}List()
+    {
+        return ${subclassName}List;
+    }
+
+    public void set${subClassName}List(List<${subClassName}> ${subclassName}List)
+    {
+        this.${subclassName}List = ${subclassName}List;
+    }
+
+#end
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+#foreach ($column in $columns)
+#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
+#set($AttrName=$column.javaField)
+#else
+#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+#end
+            .append("${column.javaField}", get${AttrName}())
+#end
+#if($table.sub)
+            .append("${subclassName}List", get${subClassName}List())
+#end
+            .toString();
+    }
+}

+ 91 - 15
ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/mapper.java.vm

@@ -1,15 +1,91 @@
-package ${packageName}.mapper;
-
-import java.util.List;
-import ${packageName}.domain.${ClassName};
-import com.ruoyi.common.datascope.utils.BaseMapperPlus;
-
-/**
- * ${functionName}Mapper接口
- * 
- * @author ${author}
- * @date ${datetime}
- */
-public interface ${ClassName}Mapper extends BaseMapperPlus<${ClassName}> {
-
-}
+package ${packageName}.mapper;
+
+import java.util.List;
+import ${packageName}.domain.${ClassName};
+#if($table.sub)
+import ${packageName}.domain.${subClassName};
+#end
+
+/**
+ * ${functionName}Mapper接口
+ * 
+ * @author ${author}
+ * @date ${datetime}
+ */
+public interface ${ClassName}Mapper 
+{
+    /**
+     * 查询${functionName}
+     * 
+     * @param ${pkColumn.javaField} ${functionName}主键
+     * @return ${functionName}
+     */
+    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
+
+    /**
+     * 查询${functionName}列表
+     * 
+     * @param ${className} ${functionName}
+     * @return ${functionName}集合
+     */
+    public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
+
+    /**
+     * 新增${functionName}
+     * 
+     * @param ${className} ${functionName}
+     * @return 结果
+     */
+    public int insert${ClassName}(${ClassName} ${className});
+
+    /**
+     * 修改${functionName}
+     * 
+     * @param ${className} ${functionName}
+     * @return 结果
+     */
+    public int update${ClassName}(${ClassName} ${className});
+
+    /**
+     * 删除${functionName}
+     * 
+     * @param ${pkColumn.javaField} ${functionName}主键
+     * @return 结果
+     */
+    public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
+
+    /**
+     * 批量删除${functionName}
+     * 
+     * @param ${pkColumn.javaField}s 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
+#if($table.sub)
+
+    /**
+     * 批量删除${subTable.functionName}
+     * 
+     * @param ${pkColumn.javaField}s 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
+    
+    /**
+     * 批量新增${subTable.functionName}
+     * 
+     * @param ${subclassName}List ${subTable.functionName}列表
+     * @return 结果
+     */
+    public int batch${subClassName}(List<${subClassName}> ${subclassName}List);
+    
+
+    /**
+     * 通过${functionName}主键删除${subTable.functionName}信息
+     * 
+     * @param ${pkColumn.javaField} ${functionName}ID
+     * @return 结果
+     */
+    public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField});
+#end
+}

+ 61 - 54
ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/service.java.vm

@@ -1,54 +1,61 @@
-package ${packageName}.service;
-
-import java.util.List;
-import ${packageName}.domain.${ClassName};
-
-/**
- * ${functionName}Service接口
- * 
- * @author ${author}
- * @date ${datetime}
- */
-public interface I${ClassName}Service 
-{
-    /**
-     * 查询${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}主键
-     * @return ${functionName}
-     */
-    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
-
-    /**
-     * 查询${functionName}列表
-     * 
-     * @param ${className} ${functionName}
-     * @return ${functionName}集合
-     */
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
-
-    /**
-     * 新增${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 结果
-     */
-    public int insert${ClassName}(${ClassName} ${className});
-
-    /**
-     * 修改${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 结果
-     */
-    public int update${ClassName}(${ClassName} ${className});
-
-    /**
-     * 批量删除${functionName}
-     * 
-     * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合
-     * @return 结果
-     */
-    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
-
-}
+package ${packageName}.service;
+
+import java.util.List;
+import ${packageName}.domain.${ClassName};
+
+/**
+ * ${functionName}Service接口
+ * 
+ * @author ${author}
+ * @date ${datetime}
+ */
+public interface I${ClassName}Service 
+{
+    /**
+     * 查询${functionName}
+     * 
+     * @param ${pkColumn.javaField} ${functionName}主键
+     * @return ${functionName}
+     */
+    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
+
+    /**
+     * 查询${functionName}列表
+     * 
+     * @param ${className} ${functionName}
+     * @return ${functionName}集合
+     */
+    public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
+
+    /**
+     * 新增${functionName}
+     * 
+     * @param ${className} ${functionName}
+     * @return 结果
+     */
+    public int insert${ClassName}(${ClassName} ${className});
+
+    /**
+     * 修改${functionName}
+     * 
+     * @param ${className} ${functionName}
+     * @return 结果
+     */
+    public int update${ClassName}(${ClassName} ${className});
+
+    /**
+     * 批量删除${functionName}
+     * 
+     * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合
+     * @return 结果
+     */
+    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
+
+    /**
+     * 删除${functionName}信息
+     * 
+     * @param ${pkColumn.javaField} ${functionName}主键
+     * @return 结果
+     */
+    public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
+}

+ 169 - 95
ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl.java.vm

@@ -1,95 +1,169 @@
-package ${packageName}.service.impl;
-
-import java.util.List;
-#foreach ($column in $columns)
-#if($column.javaField == 'createUserId' || $column.javaField == 'updateUserId')
-import com.ruoyi.common.security.utils.SecurityUtils;
-#end
-#break
-#end
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import java.util.Arrays;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import ${packageName}.mapper.${ClassName}Mapper;
-import ${packageName}.domain.${ClassName};
-import ${packageName}.service.I${ClassName}Service;
-
-/**
- * ${functionName}Service业务层处理
- * 
- * @author ${author}
- * @date ${datetime}
- */
-@Service
-public class ${ClassName}ServiceImpl implements I${ClassName}Service 
-{
-    @Autowired
-    private ${ClassName}Mapper ${className}Mapper;
-
-    /**
-     * 查询${functionName}
-     * 
-     * @param ${pkColumn.javaField} ${functionName}主键
-     * @return ${functionName}
-     */
-    @Override
-    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
-    {
-        return ${className}Mapper.selectById(${pkColumn.javaField});
-    }
-
-    /**
-     * 查询${functionName}列表
-     * 
-     * @param ${className} ${functionName}
-     * @return ${functionName}
-     */
-    @Override
-    public List<${ClassName}> select${ClassName}List(${ClassName} ${className})
-    {
-        return ${className}Mapper.selectList(new LambdaQueryWrapper<>(${className}));
-    }
-
-    /**
-     * 新增${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 结果
-     */
-    @Override
-    public int insert${ClassName}(${ClassName} ${className})
-    {
-#foreach ($column in $columns)
-#if($column.javaField == 'jgId')
-        ${className}.setJgId(SecurityUtils.getJgId());
-#end
-#end
-        return ${className}Mapper.insert(${className});
-    }
-
-    /**
-     * 修改${functionName}
-     * 
-     * @param ${className} ${functionName}
-     * @return 结果
-     */
-    @Override
-    public int update${ClassName}(${ClassName} ${className})
-    {
-        return ${className}Mapper.updateById(${className});
-    }
-
-    /**
-     * 批量删除${functionName}
-     * 
-     * @param ${pkColumn.javaField}s 需要删除的${functionName}主键
-     * @return 结果
-     */
-    @Override
-    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s)
-    {
-        return ${className}Mapper.deleteBatchIds(Arrays.asList(${pkColumn.javaField}s));
-    }
-
-}
+package ${packageName}.service.impl;
+
+import java.util.List;
+#foreach ($column in $columns)
+#if($column.javaField == 'createTime' || $column.javaField == 'updateTime')
+import com.ruoyi.common.core.utils.DateUtils;
+#break
+#end
+#end
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+#if($table.sub)
+import java.util.ArrayList;
+import com.ruoyi.common.core.utils.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+import ${packageName}.domain.${subClassName};
+#end
+import ${packageName}.mapper.${ClassName}Mapper;
+import ${packageName}.domain.${ClassName};
+import ${packageName}.service.I${ClassName}Service;
+
+/**
+ * ${functionName}Service业务层处理
+ * 
+ * @author ${author}
+ * @date ${datetime}
+ */
+@Service
+public class ${ClassName}ServiceImpl implements I${ClassName}Service 
+{
+    @Autowired
+    private ${ClassName}Mapper ${className}Mapper;
+
+    /**
+     * 查询${functionName}
+     * 
+     * @param ${pkColumn.javaField} ${functionName}主键
+     * @return ${functionName}
+     */
+    @Override
+    public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
+    {
+        return ${className}Mapper.select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});
+    }
+
+    /**
+     * 查询${functionName}列表
+     * 
+     * @param ${className} ${functionName}
+     * @return ${functionName}
+     */
+    @Override
+    public List<${ClassName}> select${ClassName}List(${ClassName} ${className})
+    {
+        return ${className}Mapper.select${ClassName}List(${className});
+    }
+
+    /**
+     * 新增${functionName}
+     * 
+     * @param ${className} ${functionName}
+     * @return 结果
+     */
+#if($table.sub)
+    @Transactional
+#end
+    @Override
+    public int insert${ClassName}(${ClassName} ${className})
+    {
+#foreach ($column in $columns)
+#if($column.javaField == 'createTime')
+        ${className}.setCreateTime(DateUtils.getNowDate());
+#end
+#end
+#if($table.sub)
+        int rows = ${className}Mapper.insert${ClassName}(${className});
+        insert${subClassName}(${className});
+        return rows;
+#else
+        return ${className}Mapper.insert${ClassName}(${className});
+#end
+    }
+
+    /**
+     * 修改${functionName}
+     * 
+     * @param ${className} ${functionName}
+     * @return 结果
+     */
+#if($table.sub)
+    @Transactional
+#end
+    @Override
+    public int update${ClassName}(${ClassName} ${className})
+    {
+#foreach ($column in $columns)
+#if($column.javaField == 'updateTime')
+        ${className}.setUpdateTime(DateUtils.getNowDate());
+#end
+#end
+#if($table.sub)
+        ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${className}.get${pkColumn.capJavaField}());
+        insert${subClassName}(${className});
+#end
+        return ${className}Mapper.update${ClassName}(${className});
+    }
+
+    /**
+     * 批量删除${functionName}
+     * 
+     * @param ${pkColumn.javaField}s 需要删除的${functionName}主键
+     * @return 结果
+     */
+#if($table.sub)
+    @Transactional
+#end
+    @Override
+    public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s)
+    {
+#if($table.sub)
+        ${className}Mapper.delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaField}s);
+#end
+        return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaField}s);
+    }
+
+    /**
+     * 删除${functionName}信息
+     * 
+     * @param ${pkColumn.javaField} ${functionName}主键
+     * @return 结果
+     */
+#if($table.sub)
+    @Transactional
+#end
+    @Override
+    public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField})
+    {
+#if($table.sub)
+        ${className}Mapper.delete${subClassName}By${subTableFkClassName}(${pkColumn.javaField});
+#end
+        return ${className}Mapper.delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaField});
+    }
+#if($table.sub)
+
+    /**
+     * 新增${subTable.functionName}信息
+     * 
+     * @param ${className} ${functionName}对象
+     */
+    public void insert${subClassName}(${ClassName} ${className})
+    {
+        List<${subClassName}> ${subclassName}List = ${className}.get${subClassName}List();
+        ${pkColumn.javaType} ${pkColumn.javaField} = ${className}.get${pkColumn.capJavaField}();
+        if (StringUtils.isNotNull(${subclassName}List))
+        {
+            List<${subClassName}> list = new ArrayList<${subClassName}>();
+            for (${subClassName} ${subclassName} : ${subclassName}List)
+            {
+                ${subclassName}.set${subTableFkClassName}(${pkColumn.javaField});
+                list.add(${subclassName});
+            }
+            if (list.size() > 0)
+            {
+                ${className}Mapper.batch${subClassName}(list);
+            }
+        }
+    }
+#end
+}

ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/java/sub-domain.java.vm → ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/sub-domain.java.vm


+ 44 - 44
ruoyi-modules/ruoyi-gen/src/main/resources/vm/js/api.js.vm

@@ -1,44 +1,44 @@
-import request from '@/utils/request'
-
-// 查询${functionName}列表
-export function list${BusinessName}(query) {
-  return request({
-    url: '/${moduleName}/${businessName}/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询${functionName}详细
-export function get${BusinessName}(${pkColumn.javaField}) {
-  return request({
-    url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField},
-    method: 'get'
-  })
-}
-
-// 新增${functionName}
-export function add${BusinessName}(data) {
-  return request({
-    url: '/${moduleName}/${businessName}',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改${functionName}
-export function update${BusinessName}(data) {
-  return request({
-    url: '/${moduleName}/${businessName}',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除${functionName}
-export function del${BusinessName}(${pkColumn.javaField}) {
-  return request({
-    url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField},
-    method: 'delete'
-  })
-}
+import request from '@/utils/request'
+
+// 查询${functionName}列表
+export function list${BusinessName}(query) {
+  return request({
+    url: '/${moduleName}/${businessName}/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询${functionName}详细
+export function get${BusinessName}(${pkColumn.javaField}) {
+  return request({
+    url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField},
+    method: 'get'
+  })
+}
+
+// 新增${functionName}
+export function add${BusinessName}(data) {
+  return request({
+    url: '/${moduleName}/${businessName}',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改${functionName}
+export function update${BusinessName}(data) {
+  return request({
+    url: '/${moduleName}/${businessName}',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除${functionName}
+export function del${BusinessName}(${pkColumn.javaField}) {
+  return request({
+    url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField},
+    method: 'delete'
+  })
+}

+ 22 - 19
ruoyi-modules/ruoyi-gen/src/main/resources/vm/sql/sql.vm

@@ -1,22 +1,22 @@
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time_str,create_user_id,create_unit,create_unit_name, update_by, update_time_str,update_user_id,update_unit,update_unit_name, remark)
-values('${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 1, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', sysdate() + 0,1,'220000000000','吉林省民政厅', '', '','','','', '${functionName}菜单');
-
-SELECT @parentId := LAST_INSERT_ID();
-
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time_str,create_user_id,create_unit,create_unit_name, update_by, update_time_str,update_user_id,update_unit,update_unit_name,  remark)
-values('${functionName}查询', @parentId, '1',  '#', '', 1, 1, 'F', '0', '0', '${permissionPrefix}:query',        '#', 'admin', sysdate() + 0,1,'220000000000','吉林省民政厅', '', '','','','', '');
-
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time_str,create_user_id,create_unit,create_unit_name, update_by, update_time_str,update_user_id,update_unit,update_unit_name,  remark)
-values('${functionName}新增', @parentId, '2',  '#', '', 1, 1, 'F', '0', '0', '${permissionPrefix}:add',          '#', 'admin', sysdate() + 0,1,'220000000000','吉林省民政厅', '', '','','','', '');
-
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time_str,create_user_id,create_unit,create_unit_name, update_by, update_time_str,update_user_id,update_unit,update_unit_name,  remark)
-values('${functionName}修改', @parentId, '3',  '#', '', 1, 1, 'F', '0', '0', '${permissionPrefix}:edit',         '#', 'admin', sysdate() + 0,1,'220000000000','吉林省民政厅', '', '','','','', '');
-
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time_str,create_user_id,create_unit,create_unit_name, update_by, update_time_str,update_user_id,update_unit,update_unit_name,  remark)
-values('${functionName}删除', @parentId, '4',  '#', '', 1, 1, 'F', '0', '0', '${permissionPrefix}:remove',       '#', 'admin', sysdate() + 0,1,'220000000000','吉林省民政厅', '', '','','','', '');
-
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time_str,create_user_id,create_unit,create_unit_name, update_by, update_time_str,update_user_id,update_unit,update_unit_name, remark)
-values('${functionName}导出', @parentId, '5',  '#', '', 1, 1, 'F', '0', '0', '${permissionPrefix}:export',       '#', 'admin', sysdate() + 0,1,'220000000000','吉林省民政厅', '', '','','','', '');
+-- 菜单 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', sysdate(), '', null, '${functionName}菜单');
+
+-- 按钮父菜单ID
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 按钮 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('${functionName}查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query',        '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('${functionName}新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add',          '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('${functionName}修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit',         '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('${functionName}删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove',       '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('${functionName}导出', @parentId, '5',  '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export',       '#', 'admin', sysdate(), '', null, '');

+ 1 - 1
ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/vue/index-tree.vue.vm

@@ -165,7 +165,7 @@
     </el-table>
 
     <!-- 添加或修改${functionName}对话框 -->
-    <el-dialog v-dialog-drag :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
 #foreach($column in $columns)
 #set($field=$column.javaField)

File diff suppressed because it is too large
+ 598 - 574
ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm


+ 1 - 1
ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/vue/v3/index-tree.vue.vm

@@ -159,7 +159,7 @@
     </el-table>
 
     <!-- 添加或修改${functionName}对话框 -->
-    <el-dialog v-dialog-drag :title="title" v-model="open" width="500px" append-to-body>
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
       <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
 #foreach($column in $columns)
 #set($field=$column.javaField)

+ 24 - 4
ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/vue/v3/index.vue.vm

@@ -76,6 +76,26 @@
           v-hasPermi="['${moduleName}:${businessName}:add']"
         >新增</el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="Edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['${moduleName}:${businessName}:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="Delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['${moduleName}:${businessName}:remove']"
+        >删除</el-button>
+      </el-col>
       <el-col :span="1.5">
         <el-button
           type="warning"
@@ -88,8 +108,8 @@
       <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="${businessName}List" >
-      <el-table-column type="selection" width="55" align="center"  />
+    <el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
 #foreach($column in $columns)
 #set($javaField=$column.javaField)
 #set($parentheseIndex=$column.columnComment.indexOf("("))
@@ -153,7 +173,7 @@
     />
 
     <!-- 添加或修改${functionName}对话框 -->
-    <el-dialog v-dialog-drag :title="title" v-model="open" width="500px" append-to-body>
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
       <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
 #foreach($column in $columns)
 #set($field=$column.javaField)
@@ -262,7 +282,7 @@
           </el-col>
         </el-row>
         <el-table :data="${subclassName}List" :row-class-name="row${subClassName}Index" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
-
+          <el-table-column type="selection" width="50" align="center" />
           <el-table-column label="序号" align="center" prop="index" width="50"/>
 #foreach($column in $subTable.columns)
 #set($javaField=$column.javaField)

ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/vue/v3/readme.txt → ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/v3/readme.txt


+ 134 - 12
ruoyi-modules/ruoyi-gen/src/main/resources/vm/xml/mapper.xml.vm

@@ -1,13 +1,135 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="${packageName}.mapper.${ClassName}Mapper">
-    
-    <resultMap type="${ClassName}" id="${ClassName}Result">
-#foreach ($column in $columns)
-        <result property="${column.javaField}"    column="${column.columnName}"    />
-#end
-    </resultMap>
-
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="${packageName}.mapper.${ClassName}Mapper">
+    
+    <resultMap type="${ClassName}" id="${ClassName}Result">
+#foreach ($column in $columns)
+        <result property="${column.javaField}"    column="${column.columnName}"    />
+#end
+    </resultMap>
+#if($table.sub)
+
+    <resultMap id="${ClassName}${subClassName}Result" type="${ClassName}" extends="${ClassName}Result">
+        <collection property="${subclassName}List" notNullColumn="sub_${subTable.pkColumn.columnName}" javaType="java.util.List" resultMap="${subClassName}Result" />
+    </resultMap>
+
+    <resultMap type="${subClassName}" id="${subClassName}Result">
+#foreach ($column in $subTable.columns)
+        <result property="${column.javaField}"    column="sub_${column.columnName}"    />
+#end
+    </resultMap>
+#end
+
+    <sql id="select${ClassName}Vo">
+        select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end from ${tableName}
+    </sql>
+
+    <select id="select${ClassName}List" parameterType="${ClassName}" resultMap="${ClassName}Result">
+        <include refid="select${ClassName}Vo"/>
+        <where>  
+#foreach($column in $columns)
+#set($queryType=$column.queryType)
+#set($javaField=$column.javaField)
+#set($javaType=$column.javaType)
+#set($columnName=$column.columnName)
+#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+#if($column.query)
+#if($column.queryType == "EQ")
+            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName = #{$javaField}</if>
+#elseif($queryType == "NE")
+            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName != #{$javaField}</if>
+#elseif($queryType == "GT")
+            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt; #{$javaField}</if>
+#elseif($queryType == "GTE")
+            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &gt;= #{$javaField}</if>
+#elseif($queryType == "LT")
+            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt; #{$javaField}</if>
+#elseif($queryType == "LTE")
+            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName &lt;= #{$javaField}</if>
+#elseif($queryType == "LIKE")
+            <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName like concat('%', #{$javaField}, '%')</if>
+#elseif($queryType == "BETWEEN")
+            <if test="params.begin$AttrName != null and params.begin$AttrName != '' and params.end$AttrName != null and params.end$AttrName != ''"> and $columnName between #{params.begin$AttrName} and #{params.end$AttrName}</if>
+#end
+#end
+#end
+        </where>
+    </select>
+    
+    <select id="select${ClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}" resultMap="#if($table.sub)${ClassName}${subClassName}Result#else${ClassName}Result#end">
+#if($table.crud || $table.tree)
+        <include refid="select${ClassName}Vo"/>
+        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
+#elseif($table.sub)
+        select#foreach($column in $columns) a.$column.columnName#if($foreach.count != $columns.size()),#end#end,
+           #foreach($column in $subTable.columns) b.$column.columnName as sub_$column.columnName#if($foreach.count != $subTable.columns.size()),#end#end
+
+        from ${tableName} a
+        left join ${subTableName} b on b.${subTableFkName} = a.${pkColumn.columnName}
+        where a.${pkColumn.columnName} = #{${pkColumn.javaField}}
+#end
+    </select>
+        
+    <insert id="insert${ClassName}" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end>
+        insert into ${tableName}
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+#foreach($column in $columns)
+#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment)
+            <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName,</if>
+#end
+#end
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+#foreach($column in $columns)
+#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment)
+            <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">#{$column.javaField},</if>
+#end
+#end
+         </trim>
+    </insert>
+
+    <update id="update${ClassName}" parameterType="${ClassName}">
+        update ${tableName}
+        <trim prefix="SET" suffixOverrides=",">
+#foreach($column in $columns)
+#if($column.columnName != $pkColumn.columnName)
+            <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName = #{$column.javaField},</if>
+#end
+#end
+        </trim>
+        where ${pkColumn.columnName} = #{${pkColumn.javaField}}
+    </update>
+
+    <delete id="delete${ClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}">
+        delete from ${tableName} where ${pkColumn.columnName} = #{${pkColumn.javaField}}
+    </delete>
+
+    <delete id="delete${ClassName}By${pkColumn.capJavaField}s" parameterType="String">
+        delete from ${tableName} where ${pkColumn.columnName} in 
+        <foreach item="${pkColumn.javaField}" collection="array" open="(" separator="," close=")">
+            #{${pkColumn.javaField}}
+        </foreach>
+    </delete>
+#if($table.sub)
+    
+    <delete id="delete${subClassName}By${subTableFkClassName}s" parameterType="String">
+        delete from ${subTableName} where ${subTableFkName} in 
+        <foreach item="${subTableFkclassName}" collection="array" open="(" separator="," close=")">
+            #{${subTableFkclassName}}
+        </foreach>
+    </delete>
+
+    <delete id="delete${subClassName}By${subTableFkClassName}" parameterType="${pkColumn.javaType}">
+        delete from ${subTableName} where ${subTableFkName} = #{${subTableFkclassName}}
+    </delete>
+
+    <insert id="batch${subClassName}">
+        insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end) values
+		<foreach item="item" index="index" collection="list" separator=",">
+            (#foreach($column in $subTable.columns) #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end#end)
+        </foreach>
+    </insert>
+#end
 </mapper>

+ 0 - 105
ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/java/domain.java.vm

@@ -1,105 +0,0 @@
-package ${packageName}.domain;
-
-#foreach ($import in $importList)
-import ${import};
-#end
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.ruoyi.common.core.annotation.Excel;
-#if($table.crud || $table.sub)
-import com.ruoyi.common.core.web.domain.BaseEntity;
-#elseif($table.tree)
-import com.ruoyi.common.core.web.domain.TreeEntity;
-#end
-
-/**
- * ${functionName}对象 ${tableName}
- * 
- * @author ${author}
- * @date ${datetime}
- */
-#if($table.crud || $table.sub)
-#set($Entity="BaseEntity")
-#elseif($table.tree)
-#set($Entity="TreeEntity")
-#end
-public class ${ClassName} extends ${Entity}
-{
-    private static final long serialVersionUID = 1L;
-
-#foreach ($column in $columns)
-#if(!$table.isSuperColumn($column.javaField))
-    /** $column.columnComment */
-#if($column.list)
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($parentheseIndex != -1)
-    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
-#elseif($column.javaType == 'Date')
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
-#else
-    @Excel(name = "${comment}")
-#end
-#end
-    private $column.javaType $column.javaField;
-
-#end
-#end
-#if($table.sub)
-    /** $table.subTable.functionName信息 */
-    private List<${subClassName}> ${subclassName}List;
-
-#end
-#foreach ($column in $columns)
-#if(!$table.isSuperColumn($column.javaField))
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
-    public void set${AttrName}($column.javaType $column.javaField) 
-    {
-        this.$column.javaField = $column.javaField;
-    }
-
-    public $column.javaType get${AttrName}() 
-    {
-        return $column.javaField;
-    }
-#end
-#end
-
-#if($table.sub)
-    public List<${subClassName}> get${subClassName}List()
-    {
-        return ${subclassName}List;
-    }
-
-    public void set${subClassName}List(List<${subClassName}> ${subclassName}List)
-    {
-        this.${subclassName}List = ${subclassName}List;
-    }
-
-#end
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-#foreach ($column in $columns)
-#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
-#set($AttrName=$column.javaField)
-#else
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#end
-            .append("${column.javaField}", get${AttrName}())
-#end
-#if($table.sub)
-            .append("${subclassName}List", get${subClassName}List())
-#end
-            .toString();
-    }
-}

+ 0 - 0
ruoyi-modules/ruoyi-gen/src/main/resources/vm_bat/java/mapper.java.vm


Some files were not shown because too many files changed in this diff