Showing
267 changed files
with
794 additions
and
920 deletions
@@ -292,12 +292,12 @@ | @@ -292,12 +292,12 @@ | ||
292 | </dependency> | 292 | </dependency> |
293 | 293 | ||
294 | <!-- 核心模块--> | 294 | <!-- 核心模块--> |
295 | - <dependency> | 295 | + <!-- <dependency> |
296 | <groupId>com.scm</groupId> | 296 | <groupId>com.scm</groupId> |
297 | <artifactId>scm-framework</artifactId> | 297 | <artifactId>scm-framework</artifactId> |
298 | <version>${fp-scm.version}</version> | 298 | <version>${fp-scm.version}</version> |
299 | </dependency> | 299 | </dependency> |
300 | - | 300 | +--> |
301 | <!-- 系统模块--> | 301 | <!-- 系统模块--> |
302 | <dependency> | 302 | <dependency> |
303 | <groupId>com.scm</groupId> | 303 | <groupId>com.scm</groupId> |
@@ -325,6 +325,13 @@ | @@ -325,6 +325,13 @@ | ||
325 | <artifactId>scm-sms</artifactId> | 325 | <artifactId>scm-sms</artifactId> |
326 | <version>${fp-scm.version}</version> | 326 | <version>${fp-scm.version}</version> |
327 | </dependency> | 327 | </dependency> |
328 | + | ||
329 | + <!-- SMS短信模块 --> | ||
330 | + <dependency> | ||
331 | + <groupId>com.scm</groupId> | ||
332 | + <artifactId>scm-core</artifactId> | ||
333 | + <version>${fp-scm.version}</version> | ||
334 | + </dependency> | ||
328 | </dependencies> | 335 | </dependencies> |
329 | </dependencyManagement> | 336 | </dependencyManagement> |
330 | 337 | ||
@@ -332,12 +339,7 @@ | @@ -332,12 +339,7 @@ | ||
332 | <module>scm-admin</module> | 339 | <module>scm-admin</module> |
333 | <module>scm-framework</module> | 340 | <module>scm-framework</module> |
334 | <module>scm-system</module> | 341 | <module>scm-system</module> |
335 | - <module>scm-job</module> | ||
336 | - <module>scm-generator</module> | ||
337 | - <module>scm-common</module> | ||
338 | <module>scm-extend</module> | 342 | <module>scm-extend</module> |
339 | - <module>scm-oss</module> | ||
340 | - <module>scm-sms</module> | ||
341 | </modules> | 343 | </modules> |
342 | <packaging>pom</packaging> | 344 | <packaging>pom</packaging> |
343 | 345 |
@@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
48 | <!-- 核心模块--> | 48 | <!-- 核心模块--> |
49 | <dependency> | 49 | <dependency> |
50 | <groupId>com.scm</groupId> | 50 | <groupId>com.scm</groupId> |
51 | - <artifactId>scm-framework</artifactId> | 51 | + <artifactId>scm-core</artifactId> |
52 | </dependency> | 52 | </dependency> |
53 | 53 | ||
54 | <dependency> | 54 | <dependency> |
@@ -49,7 +49,7 @@ spring: | @@ -49,7 +49,7 @@ spring: | ||
49 | driverClassName: com.mysql.cj.jdbc.Driver | 49 | driverClassName: com.mysql.cj.jdbc.Driver |
50 | # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 | 50 | # jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562 |
51 | # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) | 51 | # rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题) |
52 | - url: jdbc:mysql://192.168.1.18:3306/ruoyi-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true | 52 | + url: jdbc:mysql://192.168.1.21:3306/ruoyi-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true |
53 | username: root | 53 | username: root |
54 | password: root | 54 | password: root |
55 | # 从库数据源 | 55 | # 从库数据源 |
@@ -57,7 +57,7 @@ spring: | @@ -57,7 +57,7 @@ spring: | ||
57 | lazy: true | 57 | lazy: true |
58 | type: ${spring.datasource.type} | 58 | type: ${spring.datasource.type} |
59 | driverClassName: com.mysql.cj.jdbc.Driver | 59 | driverClassName: com.mysql.cj.jdbc.Driver |
60 | - url: jdbc:mysql://192.168.1.18:3306/ruoyi-vue2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true | 60 | + url: jdbc:mysql://192.168.1.21:3306/ruoyi-vue2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true |
61 | username: root | 61 | username: root |
62 | password: root | 62 | password: root |
63 | hikari: | 63 | hikari: |
@@ -81,13 +81,13 @@ spring: | @@ -81,13 +81,13 @@ spring: | ||
81 | ds0: | 81 | ds0: |
82 | type: com.zaxxer.hikari.HikariDataSource | 82 | type: com.zaxxer.hikari.HikariDataSource |
83 | driver-class-name: com.mysql.cj.jdbc.Driver | 83 | driver-class-name: com.mysql.cj.jdbc.Driver |
84 | - url: jdbc:mysql://192.168.1.18:3306/ruoyi-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true | 84 | + url: jdbc:mysql://192.168.1.21:3306/ruoyi-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true |
85 | username: root | 85 | username: root |
86 | password: root | 86 | password: root |
87 | ds1: | 87 | ds1: |
88 | type: com.zaxxer.hikari.HikariDataSource | 88 | type: com.zaxxer.hikari.HikariDataSource |
89 | driver-class-name: com.mysql.cj.jdbc.Driver | 89 | driver-class-name: com.mysql.cj.jdbc.Driver |
90 | - url: jdbc:mysql://192.168.1.18:3306/ruoyi-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true | 90 | + url: jdbc:mysql://192.168.1.21:3306/ruoyi-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true |
91 | username: root | 91 | username: root |
92 | password: root | 92 | password: root |
93 | rules: # 配置表规则 | 93 | rules: # 配置表规则 |
@@ -125,7 +125,7 @@ spring: | @@ -125,7 +125,7 @@ spring: | ||
125 | spring: | 125 | spring: |
126 | redis: | 126 | redis: |
127 | # 地址 | 127 | # 地址 |
128 | - host: 192.168.1.18 | 128 | + host: 192.168.1.21 |
129 | # 端口,默认为6379 | 129 | # 端口,默认为6379 |
130 | port: 6379 | 130 | port: 6379 |
131 | # 数据库索引 | 131 | # 数据库索引 |
@@ -8,65 +8,18 @@ | @@ -8,65 +8,18 @@ | ||
8 | <version>4.8.2</version> | 8 | <version>4.8.2</version> |
9 | </parent> | 9 | </parent> |
10 | <modelVersion>4.0.0</modelVersion> | 10 | <modelVersion>4.0.0</modelVersion> |
11 | - | ||
12 | <artifactId>scm-framework</artifactId> | 11 | <artifactId>scm-framework</artifactId> |
12 | + <packaging>pom</packaging> | ||
13 | + | ||
14 | + <modules> | ||
15 | + <module>scm-common</module> | ||
16 | + <module>scm-generator</module> | ||
17 | + <module>scm-job</module> | ||
18 | + <module>scm-mybatis</module> | ||
19 | + <module>scm-oss</module> | ||
20 | + <module>scm-sms</module> | ||
21 | + <module>scm-core</module> | ||
22 | + </modules> | ||
13 | 23 | ||
14 | - <description> | ||
15 | - framework框架核心 | ||
16 | - </description> | ||
17 | - | ||
18 | - <dependencies> | ||
19 | - | ||
20 | - <!-- SpringBoot Web容器 --> | ||
21 | - <dependency> | ||
22 | - <groupId>org.springframework.boot</groupId> | ||
23 | - <artifactId>spring-boot-starter-web</artifactId> | ||
24 | - <exclusions> | ||
25 | - <exclusion> | ||
26 | - <artifactId>spring-boot-starter-tomcat</artifactId> | ||
27 | - <groupId>org.springframework.boot</groupId> | ||
28 | - </exclusion> | ||
29 | - </exclusions> | ||
30 | - </dependency> | ||
31 | - <!-- web 容器使用 undertow 性能更强 --> | ||
32 | - <dependency> | ||
33 | - <groupId>org.springframework.boot</groupId> | ||
34 | - <artifactId>spring-boot-starter-undertow</artifactId> | ||
35 | - </dependency> | ||
36 | - | ||
37 | - <!-- SpringBoot 拦截器 --> | ||
38 | - <dependency> | ||
39 | - <groupId>org.springframework.boot</groupId> | ||
40 | - <artifactId>spring-boot-starter-aop</artifactId> | ||
41 | - </dependency> | ||
42 | - | ||
43 | - <!-- sql性能分析插件 --> | ||
44 | - <dependency> | ||
45 | - <groupId>p6spy</groupId> | ||
46 | - <artifactId>p6spy</artifactId> | ||
47 | - </dependency> | ||
48 | - | ||
49 | - <dependency> | ||
50 | - <groupId>org.springframework.boot</groupId> | ||
51 | - <artifactId>spring-boot-starter-actuator</artifactId> | ||
52 | - </dependency> | ||
53 | - | ||
54 | - <dependency> | ||
55 | - <groupId>de.codecentric</groupId> | ||
56 | - <artifactId>spring-boot-admin-starter-client</artifactId> | ||
57 | - </dependency> | ||
58 | - | ||
59 | - <dependency> | ||
60 | - <groupId>com.alibaba</groupId> | ||
61 | - <artifactId>transmittable-thread-local</artifactId> | ||
62 | - </dependency> | ||
63 | - | ||
64 | - <!-- 系统模块--> | ||
65 | - <dependency> | ||
66 | - <groupId>com.scm</groupId> | ||
67 | - <artifactId>scm-common</artifactId> | ||
68 | - </dependency> | ||
69 | - | ||
70 | - </dependencies> | ||
71 | 24 | ||
72 | </project> | 25 | </project> |
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
4 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 4 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
5 | <parent> | 5 | <parent> |
6 | - <artifactId>fp_scm</artifactId> | 6 | + <artifactId>scm-framework</artifactId> |
7 | <groupId>com.scm</groupId> | 7 | <groupId>com.scm</groupId> |
8 | <version>4.8.2</version> | 8 | <version>4.8.2</version> |
9 | </parent> | 9 | </parent> |
scm-framework/scm-core/pom.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
5 | + <parent> | ||
6 | + <groupId>com.scm</groupId> | ||
7 | + <artifactId>scm-framework</artifactId> | ||
8 | + <version>4.8.2</version> | ||
9 | + </parent> | ||
10 | + <modelVersion>4.0.0</modelVersion> | ||
11 | + | ||
12 | + <artifactId>scm-core</artifactId> | ||
13 | + | ||
14 | + <dependencies> | ||
15 | + | ||
16 | + <!-- SpringBoot Web容器 --> | ||
17 | + <dependency> | ||
18 | + <groupId>org.springframework.boot</groupId> | ||
19 | + <artifactId>spring-boot-starter-web</artifactId> | ||
20 | + <exclusions> | ||
21 | + <exclusion> | ||
22 | + <artifactId>spring-boot-starter-tomcat</artifactId> | ||
23 | + <groupId>org.springframework.boot</groupId> | ||
24 | + </exclusion> | ||
25 | + </exclusions> | ||
26 | + </dependency> | ||
27 | + <!-- web 容器使用 undertow 性能更强 --> | ||
28 | + <dependency> | ||
29 | + <groupId>org.springframework.boot</groupId> | ||
30 | + <artifactId>spring-boot-starter-undertow</artifactId> | ||
31 | + </dependency> | ||
32 | + | ||
33 | + <!-- SpringBoot 拦截器 --> | ||
34 | + <dependency> | ||
35 | + <groupId>org.springframework.boot</groupId> | ||
36 | + <artifactId>spring-boot-starter-aop</artifactId> | ||
37 | + </dependency> | ||
38 | + | ||
39 | + <!-- sql性能分析插件 --> | ||
40 | + <dependency> | ||
41 | + <groupId>p6spy</groupId> | ||
42 | + <artifactId>p6spy</artifactId> | ||
43 | + </dependency> | ||
44 | + | ||
45 | + <dependency> | ||
46 | + <groupId>org.springframework.boot</groupId> | ||
47 | + <artifactId>spring-boot-starter-actuator</artifactId> | ||
48 | + </dependency> | ||
49 | + | ||
50 | + <dependency> | ||
51 | + <groupId>de.codecentric</groupId> | ||
52 | + <artifactId>spring-boot-admin-starter-client</artifactId> | ||
53 | + </dependency> | ||
54 | + | ||
55 | + <dependency> | ||
56 | + <groupId>com.alibaba</groupId> | ||
57 | + <artifactId>transmittable-thread-local</artifactId> | ||
58 | + </dependency> | ||
59 | + | ||
60 | + <!-- 系统模块--> | ||
61 | + <dependency> | ||
62 | + <groupId>com.scm</groupId> | ||
63 | + <artifactId>scm-common</artifactId> | ||
64 | + </dependency> | ||
65 | + | ||
66 | + </dependencies> | ||
67 | + | ||
68 | +</project> |
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
4 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 4 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
5 | <parent> | 5 | <parent> |
6 | - <artifactId>fp_scm</artifactId> | 6 | + <artifactId>scm-framework</artifactId> |
7 | <groupId>com.scm</groupId> | 7 | <groupId>com.scm</groupId> |
8 | <version>4.8.2</version> | 8 | <version>4.8.2</version> |
9 | </parent> | 9 | </parent> |
1 | +package ${packageName}.domain.bo; | ||
2 | + | ||
3 | +import com.ruoyi.common.core.validate.AddGroup; | ||
4 | +import com.ruoyi.common.core.validate.EditGroup; | ||
5 | +import lombok.Data; | ||
6 | +import lombok.EqualsAndHashCode; | ||
7 | +import javax.validation.constraints.*; | ||
8 | + | ||
9 | +import java.util.Date; | ||
10 | + | ||
11 | +#foreach ($import in $importList) | ||
12 | +import ${import}; | ||
13 | +#end | ||
14 | +#if($table.crud || $table.sub) | ||
15 | +import com.ruoyi.common.core.domain.BaseEntity; | ||
16 | +#elseif($table.tree) | ||
17 | +import com.ruoyi.common.core.domain.TreeEntity; | ||
18 | +#end | ||
19 | + | ||
20 | +/** | ||
21 | + * ${functionName}业务对象 ${tableName} | ||
22 | + * | ||
23 | + * @author ${author} | ||
24 | + * @date ${datetime} | ||
25 | + */ | ||
26 | +#if($table.crud || $table.sub) | ||
27 | +#set($Entity="BaseEntity") | ||
28 | +#elseif($table.tree) | ||
29 | +#set($Entity="TreeEntity<${ClassName}Bo>") | ||
30 | +#end | ||
31 | + | ||
32 | +@Data | ||
33 | +@EqualsAndHashCode(callSuper = true) | ||
34 | +public class ${ClassName}Bo extends ${Entity} { | ||
35 | + | ||
36 | +#foreach ($column in $columns) | ||
37 | +#if(!$table.isSuperColumn($column.javaField) && ($column.query || $column.insert || $column.edit)) | ||
38 | + /** | ||
39 | + * $column.columnComment | ||
40 | + */ | ||
41 | +#if($column.insert && $column.edit) | ||
42 | +#set($Group="AddGroup.class, EditGroup.class") | ||
43 | +#elseif($column.insert) | ||
44 | +#set($Group="AddGroup.class") | ||
45 | +#elseif($column.edit) | ||
46 | +#set($Group="EditGroup.class") | ||
47 | +#end | ||
48 | +#if($column.required) | ||
49 | +#if($column.javaType == 'String') | ||
50 | + @NotBlank(message = "$column.columnComment不能为空", groups = { $Group }) | ||
51 | +#else | ||
52 | + @NotNull(message = "$column.columnComment不能为空", groups = { $Group }) | ||
53 | +#end | ||
54 | +#end | ||
55 | + private $column.javaType $column.javaField; | ||
56 | + | ||
57 | +#end | ||
58 | +#end | ||
59 | + | ||
60 | +} |
1 | +package ${packageName}.service; | ||
2 | + | ||
3 | +import ${packageName}.domain.${ClassName}; | ||
4 | +import ${packageName}.domain.vo.${ClassName}Vo; | ||
5 | +import ${packageName}.domain.bo.${ClassName}Bo; | ||
6 | +#if($table.crud || $table.sub) | ||
7 | +import com.ruoyi.common.core.page.TableDataInfo; | ||
8 | +import com.ruoyi.common.core.domain.PageQuery; | ||
9 | +#end | ||
10 | + | ||
11 | +import java.util.Collection; | ||
12 | +import java.util.List; | ||
13 | + | ||
14 | +/** | ||
15 | + * ${functionName}Service接口 | ||
16 | + * | ||
17 | + * @author ${author} | ||
18 | + * @date ${datetime} | ||
19 | + */ | ||
20 | +public interface I${ClassName}Service { | ||
21 | + | ||
22 | + /** | ||
23 | + * 查询${functionName} | ||
24 | + */ | ||
25 | + ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}); | ||
26 | + | ||
27 | +#if($table.crud || $table.sub) | ||
28 | + /** | ||
29 | + * 查询${functionName}列表 | ||
30 | + */ | ||
31 | + TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery); | ||
32 | +#end | ||
33 | + | ||
34 | + /** | ||
35 | + * 查询${functionName}列表 | ||
36 | + */ | ||
37 | + List<${ClassName}Vo> queryList(${ClassName}Bo bo); | ||
38 | + | ||
39 | + /** | ||
40 | + * 新增${functionName} | ||
41 | + */ | ||
42 | + Boolean insertByBo(${ClassName}Bo bo); | ||
43 | + | ||
44 | + /** | ||
45 | + * 修改${functionName} | ||
46 | + */ | ||
47 | + Boolean updateByBo(${ClassName}Bo bo); | ||
48 | + | ||
49 | + /** | ||
50 | + * 校验并批量删除${functionName}信息 | ||
51 | + */ | ||
52 | + Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid); | ||
53 | +} |
1 | +package ${packageName}.domain; | ||
2 | + | ||
3 | +#foreach ($import in $subImportList) | ||
4 | +import ${import}; | ||
5 | +#end | ||
6 | +import org.apache.commons.lang3.builder.ToStringBuilder; | ||
7 | +import org.apache.commons.lang3.builder.ToStringStyle; | ||
8 | +import com.ruoyi.common.annotation.Excel; | ||
9 | +import com.ruoyi.common.core.domain.BaseEntity; | ||
10 | + | ||
11 | +/** | ||
12 | + * ${subTable.functionName}对象 ${subTableName} | ||
13 | + * | ||
14 | + * @author ${author} | ||
15 | + * @date ${datetime} | ||
16 | + */ | ||
17 | +public class ${subClassName} extends BaseEntity | ||
18 | +{ | ||
19 | + private static final long serialVersionUID = 1L; | ||
20 | + | ||
21 | +#foreach ($column in $subTable.columns) | ||
22 | +#if(!$table.isSuperColumn($column.javaField)) | ||
23 | + /** $column.columnComment */ | ||
24 | +#if($column.list) | ||
25 | +#set($parentheseIndex=$column.columnComment.indexOf("(")) | ||
26 | +#if($parentheseIndex != -1) | ||
27 | +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||
28 | +#else | ||
29 | +#set($comment=$column.columnComment) | ||
30 | +#end | ||
31 | +#if($parentheseIndex != -1) | ||
32 | + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") | ||
33 | +#elseif($column.javaType == 'Date') | ||
34 | + @JsonFormat(pattern = "yyyy-MM-dd") | ||
35 | + @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") | ||
36 | +#else | ||
37 | + @Excel(name = "${comment}") | ||
38 | +#end | ||
39 | +#end | ||
40 | + private $column.javaType $column.javaField; | ||
41 | + | ||
42 | +#end | ||
43 | +#end | ||
44 | +#foreach ($column in $subTable.columns) | ||
45 | +#if(!$table.isSuperColumn($column.javaField)) | ||
46 | +#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) | ||
47 | +#set($AttrName=$column.javaField) | ||
48 | +#else | ||
49 | +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||
50 | +#end | ||
51 | + public void set${AttrName}($column.javaType $column.javaField) | ||
52 | + { | ||
53 | + this.$column.javaField = $column.javaField; | ||
54 | + } | ||
55 | + | ||
56 | + public $column.javaType get${AttrName}() | ||
57 | + { | ||
58 | + return $column.javaField; | ||
59 | + } | ||
60 | +#end | ||
61 | +#end | ||
62 | + | ||
63 | + @Override | ||
64 | + public String toString() { | ||
65 | + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) | ||
66 | +#foreach ($column in $subTable.columns) | ||
67 | +#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) | ||
68 | +#set($AttrName=$column.javaField) | ||
69 | +#else | ||
70 | +#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||
71 | +#end | ||
72 | + .append("${column.javaField}", get${AttrName}()) | ||
73 | +#end | ||
74 | + .toString(); | ||
75 | + } | ||
76 | +} |
1 | +package ${packageName}.domain.vo; | ||
2 | + | ||
3 | +#foreach ($import in $importList) | ||
4 | +import ${import}; | ||
5 | +#end | ||
6 | +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||
7 | +import com.alibaba.excel.annotation.ExcelProperty; | ||
8 | +import com.ruoyi.common.annotation.ExcelDictFormat; | ||
9 | +import com.ruoyi.common.convert.ExcelDictConvert; | ||
10 | +import lombok.Data; | ||
11 | +import java.util.Date; | ||
12 | + | ||
13 | +import java.io.Serializable; | ||
14 | + | ||
15 | +/** | ||
16 | + * ${functionName}视图对象 ${tableName} | ||
17 | + * | ||
18 | + * @author ${author} | ||
19 | + * @date ${datetime} | ||
20 | + */ | ||
21 | +@Data | ||
22 | +@ExcelIgnoreUnannotated | ||
23 | +public class ${ClassName}Vo implements Serializable { | ||
24 | + | ||
25 | + private static final long serialVersionUID = 1L; | ||
26 | + | ||
27 | +#foreach ($column in $columns) | ||
28 | +#if($column.list) | ||
29 | + /** | ||
30 | + * $column.columnComment | ||
31 | + */ | ||
32 | +#set($parentheseIndex=$column.columnComment.indexOf("(")) | ||
33 | +#if($parentheseIndex != -1) | ||
34 | +#set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||
35 | +#else | ||
36 | +#set($comment=$column.columnComment) | ||
37 | +#end | ||
38 | +#if(${column.dictType} && ${column.dictType} != '') | ||
39 | + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) | ||
40 | + @ExcelDictFormat(dictType = "${column.dictType}") | ||
41 | +#elseif($parentheseIndex != -1) | ||
42 | + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) | ||
43 | + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") | ||
44 | +#else | ||
45 | + @ExcelProperty(value = "${comment}") | ||
46 | +#end | ||
47 | + private $column.javaType $column.javaField; | ||
48 | + | ||
49 | +#end | ||
50 | +#end | ||
51 | + | ||
52 | +} |
1 | +import request from '@/utils/request' | ||
2 | + | ||
3 | +// 查询${functionName}列表 | ||
4 | +export function list${BusinessName}(query) { | ||
5 | + return request({ | ||
6 | + url: '/${moduleName}/${businessName}/list', | ||
7 | + method: 'get', | ||
8 | + params: query | ||
9 | + }) | ||
10 | +} | ||
11 | + | ||
12 | +// 查询${functionName}详细 | ||
13 | +export function get${BusinessName}(${pkColumn.javaField}) { | ||
14 | + return request({ | ||
15 | + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | ||
16 | + method: 'get' | ||
17 | + }) | ||
18 | +} | ||
19 | + | ||
20 | +// 新增${functionName} | ||
21 | +export function add${BusinessName}(data) { | ||
22 | + return request({ | ||
23 | + url: '/${moduleName}/${businessName}', | ||
24 | + method: 'post', | ||
25 | + data: data | ||
26 | + }) | ||
27 | +} | ||
28 | + | ||
29 | +// 修改${functionName} | ||
30 | +export function update${BusinessName}(data) { | ||
31 | + return request({ | ||
32 | + url: '/${moduleName}/${businessName}', | ||
33 | + method: 'put', | ||
34 | + data: data | ||
35 | + }) | ||
36 | +} | ||
37 | + | ||
38 | +// 删除${functionName} | ||
39 | +export function del${BusinessName}(${pkColumn.javaField}) { | ||
40 | + return request({ | ||
41 | + url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | ||
42 | + method: 'delete' | ||
43 | + }) | ||
44 | +} |
1 | +-- 菜单 SQL | ||
2 | +insert into sys_menu (menu_id, 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) | ||
3 | +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', sysdate, '', null, '${functionName}菜单'); | ||
4 | + | ||
5 | +-- 按钮 SQL | ||
6 | +insert into sys_menu (menu_id, 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) | ||
7 | +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', sysdate, '', null, ''); | ||
8 | + | ||
9 | +insert into sys_menu (menu_id, 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) | ||
10 | +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', sysdate, '', null, ''); | ||
11 | + | ||
12 | +insert into sys_menu (menu_id, 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) | ||
13 | +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', sysdate, '', null, ''); | ||
14 | + | ||
15 | +insert into sys_menu (menu_id, 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) | ||
16 | +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', sysdate, '', null, ''); | ||
17 | + | ||
18 | +insert into sys_menu (menu_id, 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) | ||
19 | +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', sysdate, '', null, ''); |
1 | +-- 菜单 SQL | ||
2 | +insert into sys_menu (menu_id, 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) | ||
3 | +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', now(), '', null, '${functionName}菜单'); | ||
4 | + | ||
5 | +-- 按钮 SQL | ||
6 | +insert into sys_menu (menu_id, 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) | ||
7 | +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', now(), '', null, ''); | ||
8 | + | ||
9 | +insert into sys_menu (menu_id, 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) | ||
10 | +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', now(), '', null, ''); | ||
11 | + | ||
12 | +insert into sys_menu (menu_id, 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) | ||
13 | +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', now(), '', null, ''); | ||
14 | + | ||
15 | +insert into sys_menu (menu_id, 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) | ||
16 | +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', now(), '', null, ''); | ||
17 | + | ||
18 | +insert into sys_menu (menu_id, 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) | ||
19 | +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', now(), '', null, ''); | ||
20 | + |
1 | +-- 菜单 SQL | ||
2 | +insert into sys_menu (menu_id, 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) | ||
3 | +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', sysdate(), '', null, '${functionName}菜单'); | ||
4 | + | ||
5 | +-- 按钮 SQL | ||
6 | +insert into sys_menu (menu_id, 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) | ||
7 | +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', sysdate(), '', null, ''); | ||
8 | + | ||
9 | +insert into sys_menu (menu_id, 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) | ||
10 | +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', sysdate(), '', null, ''); | ||
11 | + | ||
12 | +insert into sys_menu (menu_id, 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) | ||
13 | +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', sysdate(), '', null, ''); | ||
14 | + | ||
15 | +insert into sys_menu (menu_id, 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) | ||
16 | +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', sysdate(), '', null, ''); | ||
17 | + | ||
18 | +insert into sys_menu (menu_id, 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) | ||
19 | +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', sysdate(), '', null, ''); |
1 | +-- 菜单 SQL | ||
2 | +insert into sys_menu (menu_id, 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) | ||
3 | +values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', getdate(), '', null, '${functionName}菜单'); | ||
4 | + | ||
5 | +-- 按钮 SQL | ||
6 | +insert into sys_menu (menu_id, 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) | ||
7 | +values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', getdate(), '', null, ''); | ||
8 | + | ||
9 | +insert into sys_menu (menu_id, 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) | ||
10 | +values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', getdate(), '', null, ''); | ||
11 | + | ||
12 | +insert into sys_menu (menu_id, 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) | ||
13 | +values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', getdate(), '', null, ''); | ||
14 | + | ||
15 | +insert into sys_menu (menu_id, 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) | ||
16 | +values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', getdate(), '', null, ''); | ||
17 | + | ||
18 | +insert into sys_menu (menu_id, 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) | ||
19 | +values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', getdate(), '', null, ''); |
scm-framework/scm-job/pom.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
5 | + <parent> | ||
6 | + <artifactId>scm-framework</artifactId> | ||
7 | + <groupId>com.scm</groupId> | ||
8 | + <version>4.8.2</version> | ||
9 | + </parent> | ||
10 | + <modelVersion>4.0.0</modelVersion> | ||
11 | + <packaging>jar</packaging> | ||
12 | + <artifactId>scm-job</artifactId> | ||
13 | + | ||
14 | + <description> | ||
15 | + 任务调度 | ||
16 | + </description> | ||
17 | + | ||
18 | + <dependencies> | ||
19 | + | ||
20 | + <!-- 通用工具--> | ||
21 | + <dependency> | ||
22 | + <groupId>com.scm</groupId> | ||
23 | + <artifactId>scm-common</artifactId> | ||
24 | + </dependency> | ||
25 | + | ||
26 | + <!-- xxl-job-core --> | ||
27 | + <dependency> | ||
28 | + <groupId>com.xuxueli</groupId> | ||
29 | + <artifactId>xxl-job-core</artifactId> | ||
30 | + </dependency> | ||
31 | + | ||
32 | + </dependencies> | ||
33 | + | ||
34 | +</project> | ||
35 | + |
1 | +package com.ruoyi.job.config; | ||
2 | + | ||
3 | +import com.ruoyi.job.config.properties.XxlJobProperties; | ||
4 | +import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; | ||
5 | +import lombok.AllArgsConstructor; | ||
6 | +import lombok.extern.slf4j.Slf4j; | ||
7 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
8 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | ||
9 | +import org.springframework.context.annotation.Bean; | ||
10 | +import org.springframework.context.annotation.Configuration; | ||
11 | + | ||
12 | +/** | ||
13 | + * xxl-job config | ||
14 | + * | ||
15 | + * @author Lion Li | ||
16 | + */ | ||
17 | +@Slf4j | ||
18 | +@Configuration | ||
19 | +@EnableConfigurationProperties(XxlJobProperties.class) | ||
20 | +@AllArgsConstructor | ||
21 | +@ConditionalOnProperty(prefix = "xxl.job", name = "enabled", havingValue = "true") | ||
22 | +public class XxlJobConfig { | ||
23 | + | ||
24 | + private final XxlJobProperties xxlJobProperties; | ||
25 | + | ||
26 | + @Bean | ||
27 | + public XxlJobSpringExecutor xxlJobExecutor() { | ||
28 | + log.info(">>>>>>>>>>> xxl-job config init."); | ||
29 | + XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); | ||
30 | + xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdminAddresses()); | ||
31 | + xxlJobSpringExecutor.setAccessToken(xxlJobProperties.getAccessToken()); | ||
32 | + XxlJobProperties.Executor executor = xxlJobProperties.getExecutor(); | ||
33 | + xxlJobSpringExecutor.setAppname(executor.getAppname()); | ||
34 | + xxlJobSpringExecutor.setAddress(executor.getAddress()); | ||
35 | + xxlJobSpringExecutor.setIp(executor.getIp()); | ||
36 | + xxlJobSpringExecutor.setPort(executor.getPort()); | ||
37 | + xxlJobSpringExecutor.setLogPath(executor.getLogPath()); | ||
38 | + xxlJobSpringExecutor.setLogRetentionDays(executor.getLogRetentionDays()); | ||
39 | + return xxlJobSpringExecutor; | ||
40 | + } | ||
41 | + | ||
42 | +} |
@@ -3,31 +3,15 @@ | @@ -3,31 +3,15 @@ | ||
3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 3 | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
4 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | 4 | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
5 | <parent> | 5 | <parent> |
6 | - <artifactId>fp_scm</artifactId> | 6 | + <artifactId>scm-framework</artifactId> |
7 | <groupId>com.scm</groupId> | 7 | <groupId>com.scm</groupId> |
8 | <version>4.8.2</version> | 8 | <version>4.8.2</version> |
9 | </parent> | 9 | </parent> |
10 | <modelVersion>4.0.0</modelVersion> | 10 | <modelVersion>4.0.0</modelVersion> |
11 | 11 | ||
12 | - <artifactId>scm-oss</artifactId> | ||
13 | - | ||
14 | - <description> | ||
15 | - OSS对象存储模块 | ||
16 | - </description> | 12 | + <artifactId>scm-mybatis</artifactId> |
17 | 13 | ||
18 | <dependencies> | 14 | <dependencies> |
19 | 15 | ||
20 | - <!-- 通用工具--> | ||
21 | - <dependency> | ||
22 | - <groupId>com.scm</groupId> | ||
23 | - <artifactId>scm-common</artifactId> | ||
24 | - </dependency> | ||
25 | - | ||
26 | - <dependency> | ||
27 | - <groupId>com.amazonaws</groupId> | ||
28 | - <artifactId>aws-java-sdk-s3</artifactId> | ||
29 | - </dependency> | ||
30 | - | ||
31 | </dependencies> | 16 | </dependencies> |
32 | - | ||
33 | </project> | 17 | </project> |
scm-framework/scm-oss/pom.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
5 | + <parent> | ||
6 | + <artifactId>scm-framework</artifactId> | ||
7 | + <groupId>com.scm</groupId> | ||
8 | + <version>4.8.2</version> | ||
9 | + </parent> | ||
10 | + <modelVersion>4.0.0</modelVersion> | ||
11 | + | ||
12 | + <artifactId>scm-oss</artifactId> | ||
13 | + | ||
14 | + <description> | ||
15 | + OSS对象存储模块 | ||
16 | + </description> | ||
17 | + | ||
18 | + <dependencies> | ||
19 | + | ||
20 | + <!-- 通用工具--> | ||
21 | + <dependency> | ||
22 | + <groupId>com.scm</groupId> | ||
23 | + <artifactId>scm-common</artifactId> | ||
24 | + </dependency> | ||
25 | + | ||
26 | + <dependency> | ||
27 | + <groupId>com.amazonaws</groupId> | ||
28 | + <artifactId>aws-java-sdk-s3</artifactId> | ||
29 | + </dependency> | ||
30 | + | ||
31 | + </dependencies> | ||
32 | + | ||
33 | +</project> |
1 | +package com.ruoyi.oss.enumd; | ||
2 | + | ||
3 | +import com.amazonaws.services.s3.model.CannedAccessControlList; | ||
4 | +import lombok.AllArgsConstructor; | ||
5 | +import lombok.Getter; | ||
6 | + | ||
7 | +/** | ||
8 | + * 桶访问策略配置 | ||
9 | + * | ||
10 | + * @author 陈賝 | ||
11 | + */ | ||
12 | +@Getter | ||
13 | +@AllArgsConstructor | ||
14 | +public enum AccessPolicyType { | ||
15 | + | ||
16 | + /** | ||
17 | + * private | ||
18 | + */ | ||
19 | + PRIVATE("0", CannedAccessControlList.Private, PolicyType.WRITE), | ||
20 | + | ||
21 | + /** | ||
22 | + * public | ||
23 | + */ | ||
24 | + PUBLIC("1", CannedAccessControlList.PublicRead, PolicyType.READ), | ||
25 | + | ||
26 | + /** | ||
27 | + * custom | ||
28 | + */ | ||
29 | + CUSTOM("2",CannedAccessControlList.PublicRead, PolicyType.READ); | ||
30 | + | ||
31 | + /** | ||
32 | + * 桶 权限类型 | ||
33 | + */ | ||
34 | + private final String type; | ||
35 | + | ||
36 | + /** | ||
37 | + * 文件对象 权限类型 | ||
38 | + */ | ||
39 | + private final CannedAccessControlList acl; | ||
40 | + | ||
41 | + /** | ||
42 | + * 桶策略类型 | ||
43 | + */ | ||
44 | + private final PolicyType policyType; | ||
45 | + | ||
46 | + public static AccessPolicyType getByType(String type) { | ||
47 | + for (AccessPolicyType value : values()) { | ||
48 | + if (value.getType().equals(type)) { | ||
49 | + return value; | ||
50 | + } | ||
51 | + } | ||
52 | + throw new RuntimeException("'type' not found By " + type); | ||
53 | + } | ||
54 | + | ||
55 | +} |
1 | +package com.ruoyi.oss.factory; | ||
2 | + | ||
3 | +import com.ruoyi.common.constant.CacheNames; | ||
4 | +import com.ruoyi.common.utils.JsonUtils; | ||
5 | +import com.ruoyi.common.utils.StringUtils; | ||
6 | +import com.ruoyi.common.utils.redis.CacheUtils; | ||
7 | +import com.ruoyi.common.utils.redis.RedisUtils; | ||
8 | +import com.ruoyi.oss.constant.OssConstant; | ||
9 | +import com.ruoyi.oss.core.OssClient; | ||
10 | +import com.ruoyi.oss.exception.OssException; | ||
11 | +import com.ruoyi.oss.properties.OssProperties; | ||
12 | +import lombok.extern.slf4j.Slf4j; | ||
13 | + | ||
14 | +import java.util.Map; | ||
15 | +import java.util.concurrent.ConcurrentHashMap; | ||
16 | + | ||
17 | +/** | ||
18 | + * 文件上传Factory | ||
19 | + * | ||
20 | + * @author Lion Li | ||
21 | + */ | ||
22 | +@Slf4j | ||
23 | +public class OssFactory { | ||
24 | + | ||
25 | + private static final Map<String, OssClient> CLIENT_CACHE = new ConcurrentHashMap<>(); | ||
26 | + | ||
27 | + /** | ||
28 | + * 获取默认实例 | ||
29 | + */ | ||
30 | + public static OssClient instance() { | ||
31 | + // 获取redis 默认类型 | ||
32 | + String configKey = RedisUtils.getCacheObject(OssConstant.DEFAULT_CONFIG_KEY); | ||
33 | + if (StringUtils.isEmpty(configKey)) { | ||
34 | + throw new OssException("文件存储服务类型无法找到!"); | ||
35 | + } | ||
36 | + return instance(configKey); | ||
37 | + } | ||
38 | + | ||
39 | + /** | ||
40 | + * 根据类型获取实例 | ||
41 | + */ | ||
42 | + public static synchronized OssClient instance(String configKey) { | ||
43 | + String json = CacheUtils.get(CacheNames.SYS_OSS_CONFIG, configKey); | ||
44 | + if (json == null) { | ||
45 | + throw new OssException("系统异常, '" + configKey + "'配置信息不存在!"); | ||
46 | + } | ||
47 | + OssProperties properties = JsonUtils.parseObject(json, OssProperties.class); | ||
48 | + OssClient client = CLIENT_CACHE.get(configKey); | ||
49 | + if (client == null) { | ||
50 | + CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); | ||
51 | + log.info("创建OSS实例 key => {}", configKey); | ||
52 | + return CLIENT_CACHE.get(configKey); | ||
53 | + } | ||
54 | + // 配置不相同则重新构建 | ||
55 | + if (!client.checkPropertiesSame(properties)) { | ||
56 | + CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); | ||
57 | + log.info("重载OSS实例 key => {}", configKey); | ||
58 | + return CLIENT_CACHE.get(configKey); | ||
59 | + } | ||
60 | + return client; | ||
61 | + } | ||
62 | + | ||
63 | +} |
1 | +package com.ruoyi.oss.properties; | ||
2 | + | ||
3 | +import lombok.Data; | ||
4 | + | ||
5 | +/** | ||
6 | + * OSS对象存储 配置属性 | ||
7 | + * | ||
8 | + * @author Lion Li | ||
9 | + */ | ||
10 | +@Data | ||
11 | +public class OssProperties { | ||
12 | + | ||
13 | + /** | ||
14 | + * 访问站点 | ||
15 | + */ | ||
16 | + private String endpoint; | ||
17 | + | ||
18 | + /** | ||
19 | + * 自定义域名 | ||
20 | + */ | ||
21 | + private String domain; | ||
22 | + | ||
23 | + /** | ||
24 | + * 前缀 | ||
25 | + */ | ||
26 | + private String prefix; | ||
27 | + | ||
28 | + /** | ||
29 | + * ACCESS_KEY | ||
30 | + */ | ||
31 | + private String accessKey; | ||
32 | + | ||
33 | + /** | ||
34 | + * SECRET_KEY | ||
35 | + */ | ||
36 | + private String secretKey; | ||
37 | + | ||
38 | + /** | ||
39 | + * 存储空间名 | ||
40 | + */ | ||
41 | + private String bucketName; | ||
42 | + | ||
43 | + /** | ||
44 | + * 存储区域 | ||
45 | + */ | ||
46 | + private String region; | ||
47 | + | ||
48 | + /** | ||
49 | + * 是否https(Y=是,N=否) | ||
50 | + */ | ||
51 | + private String isHttps; | ||
52 | + | ||
53 | + /** | ||
54 | + * 桶权限类型(0private 1public 2custom) | ||
55 | + */ | ||
56 | + private String accessPolicy; | ||
57 | + | ||
58 | +} |
scm-framework/scm-sms/pom.xml
0 → 100644
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
3 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
4 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
5 | + <parent> | ||
6 | + <artifactId>scm-framework</artifactId> | ||
7 | + <groupId>com.scm</groupId> | ||
8 | + <version>4.8.2</version> | ||
9 | + </parent> | ||
10 | + <modelVersion>4.0.0</modelVersion> | ||
11 | + | ||
12 | + <artifactId>scm-sms</artifactId> | ||
13 | + | ||
14 | + <description> | ||
15 | + SMS短信模块 | ||
16 | + </description> | ||
17 | + | ||
18 | + <dependencies> | ||
19 | + | ||
20 | + <!-- 通用工具--> | ||
21 | + <dependency> | ||
22 | + <groupId>com.scm</groupId> | ||
23 | + <artifactId>scm-common</artifactId> | ||
24 | + </dependency> | ||
25 | + | ||
26 | + <dependency> | ||
27 | + <groupId>org.dromara.sms4j</groupId> | ||
28 | + <artifactId>sms4j-spring-boot-starter</artifactId> | ||
29 | + <exclusions> | ||
30 | + <!-- 排除京东短信内存在的fastjson等待作者后续修复 --> | ||
31 | + <exclusion> | ||
32 | + <groupId>com.alibaba</groupId> | ||
33 | + <artifactId>fastjson</artifactId> | ||
34 | + </exclusion> | ||
35 | + </exclusions> | ||
36 | + </dependency> | ||
37 | + | ||
38 | + </dependencies> | ||
39 | + | ||
40 | +</project> |
1 | -package ${packageName}.domain.bo; | ||
2 | - | ||
3 | -import com.ruoyi.common.core.validate.AddGroup; | ||
4 | -import com.ruoyi.common.core.validate.EditGroup; | ||
5 | -import lombok.Data; | ||
6 | -import lombok.EqualsAndHashCode; | ||
7 | -import javax.validation.constraints.*; | ||
8 | - | ||
9 | -import java.util.Date; | ||
10 | - | ||
11 | -#foreach ($import in $importList) | ||
12 | -import ${import}; | ||
13 | -#end | ||
14 | -#if($table.crud || $table.sub) | ||
15 | -import com.ruoyi.common.core.domain.BaseEntity; | ||
16 | -#elseif($table.tree) | ||
17 | -import com.ruoyi.common.core.domain.TreeEntity; | ||
18 | -#end | ||
19 | - | ||
20 | -/** | ||
21 | - * ${functionName}业务对象 ${tableName} | ||
22 | - * | ||
23 | - * @author ${author} | ||
24 | - * @date ${datetime} | ||
25 | - */ | ||
26 | -#if($table.crud || $table.sub) | ||
27 | -#set($Entity="BaseEntity") | ||
28 | -#elseif($table.tree) | ||
29 | -#set($Entity="TreeEntity<${ClassName}Bo>") | ||
30 | -#end | ||
31 | - | ||
32 | -@Data | ||
33 | -@EqualsAndHashCode(callSuper = true) | ||
34 | -public class ${ClassName}Bo extends ${Entity} { | ||
35 | - | ||
36 | -#foreach ($column in $columns) | ||
37 | -#if(!$table.isSuperColumn($column.javaField) && ($column.query || $column.insert || $column.edit)) | ||
38 | - /** | ||
39 | - * $column.columnComment | ||
40 | - */ | ||
41 | -#if($column.insert && $column.edit) | ||
42 | -#set($Group="AddGroup.class, EditGroup.class") | ||
43 | -#elseif($column.insert) | ||
44 | -#set($Group="AddGroup.class") | ||
45 | -#elseif($column.edit) | ||
46 | -#set($Group="EditGroup.class") | ||
47 | -#end | ||
48 | -#if($column.required) | ||
49 | -#if($column.javaType == 'String') | ||
50 | - @NotBlank(message = "$column.columnComment不能为空", groups = { $Group }) | ||
51 | -#else | ||
52 | - @NotNull(message = "$column.columnComment不能为空", groups = { $Group }) | ||
53 | -#end | ||
54 | -#end | ||
55 | - private $column.javaType $column.javaField; | ||
56 | - | ||
57 | -#end | ||
58 | -#end | ||
59 | - | ||
60 | -} |
1 | -package ${packageName}.service; | ||
2 | - | ||
3 | -import ${packageName}.domain.${ClassName}; | ||
4 | -import ${packageName}.domain.vo.${ClassName}Vo; | ||
5 | -import ${packageName}.domain.bo.${ClassName}Bo; | ||
6 | -#if($table.crud || $table.sub) | ||
7 | -import com.ruoyi.common.core.page.TableDataInfo; | ||
8 | -import com.ruoyi.common.core.domain.PageQuery; | ||
9 | -#end | ||
10 | - | ||
11 | -import java.util.Collection; | ||
12 | -import java.util.List; | ||
13 | - | ||
14 | -/** | ||
15 | - * ${functionName}Service接口 | ||
16 | - * | ||
17 | - * @author ${author} | ||
18 | - * @date ${datetime} | ||
19 | - */ | ||
20 | -public interface I${ClassName}Service { | ||
21 | - | ||
22 | - /** | ||
23 | - * 查询${functionName} | ||
24 | - */ | ||
25 | - ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}); | ||
26 | - | ||
27 | -#if($table.crud || $table.sub) | ||
28 | - /** | ||
29 | - * 查询${functionName}列表 | ||
30 | - */ | ||
31 | - TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery); | ||
32 | -#end | ||
33 | - | ||
34 | - /** | ||
35 | - * 查询${functionName}列表 | ||
36 | - */ | ||
37 | - List<${ClassName}Vo> queryList(${ClassName}Bo bo); | ||
38 | - | ||
39 | - /** | ||
40 | - * 新增${functionName} | ||
41 | - */ | ||
42 | - Boolean insertByBo(${ClassName}Bo bo); | ||
43 | - | ||
44 | - /** | ||
45 | - * 修改${functionName} | ||
46 | - */ | ||
47 | - Boolean updateByBo(${ClassName}Bo bo); | ||
48 | - | ||
49 | - /** | ||
50 | - * 校验并批量删除${functionName}信息 | ||
51 | - */ | ||
52 | - Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid); | ||
53 | -} |
1 | -package ${packageName}.domain; | ||
2 | - | ||
3 | -#foreach ($import in $subImportList) | ||
4 | -import ${import}; | ||
5 | -#end | ||
6 | -import org.apache.commons.lang3.builder.ToStringBuilder; | ||
7 | -import org.apache.commons.lang3.builder.ToStringStyle; | ||
8 | -import com.ruoyi.common.annotation.Excel; | ||
9 | -import com.ruoyi.common.core.domain.BaseEntity; | ||
10 | - | ||
11 | -/** | ||
12 | - * ${subTable.functionName}对象 ${subTableName} | ||
13 | - * | ||
14 | - * @author ${author} | ||
15 | - * @date ${datetime} | ||
16 | - */ | ||
17 | -public class ${subClassName} extends BaseEntity | ||
18 | -{ | ||
19 | - private static final long serialVersionUID = 1L; | ||
20 | - | ||
21 | -#foreach ($column in $subTable.columns) | ||
22 | -#if(!$table.isSuperColumn($column.javaField)) | ||
23 | - /** $column.columnComment */ | ||
24 | -#if($column.list) | ||
25 | -#set($parentheseIndex=$column.columnComment.indexOf("(")) | ||
26 | -#if($parentheseIndex != -1) | ||
27 | -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||
28 | -#else | ||
29 | -#set($comment=$column.columnComment) | ||
30 | -#end | ||
31 | -#if($parentheseIndex != -1) | ||
32 | - @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") | ||
33 | -#elseif($column.javaType == 'Date') | ||
34 | - @JsonFormat(pattern = "yyyy-MM-dd") | ||
35 | - @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") | ||
36 | -#else | ||
37 | - @Excel(name = "${comment}") | ||
38 | -#end | ||
39 | -#end | ||
40 | - private $column.javaType $column.javaField; | ||
41 | - | ||
42 | -#end | ||
43 | -#end | ||
44 | -#foreach ($column in $subTable.columns) | ||
45 | -#if(!$table.isSuperColumn($column.javaField)) | ||
46 | -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) | ||
47 | -#set($AttrName=$column.javaField) | ||
48 | -#else | ||
49 | -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||
50 | -#end | ||
51 | - public void set${AttrName}($column.javaType $column.javaField) | ||
52 | - { | ||
53 | - this.$column.javaField = $column.javaField; | ||
54 | - } | ||
55 | - | ||
56 | - public $column.javaType get${AttrName}() | ||
57 | - { | ||
58 | - return $column.javaField; | ||
59 | - } | ||
60 | -#end | ||
61 | -#end | ||
62 | - | ||
63 | - @Override | ||
64 | - public String toString() { | ||
65 | - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) | ||
66 | -#foreach ($column in $subTable.columns) | ||
67 | -#if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) | ||
68 | -#set($AttrName=$column.javaField) | ||
69 | -#else | ||
70 | -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||
71 | -#end | ||
72 | - .append("${column.javaField}", get${AttrName}()) | ||
73 | -#end | ||
74 | - .toString(); | ||
75 | - } | ||
76 | -} |
1 | -package ${packageName}.domain.vo; | ||
2 | - | ||
3 | -#foreach ($import in $importList) | ||
4 | -import ${import}; | ||
5 | -#end | ||
6 | -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||
7 | -import com.alibaba.excel.annotation.ExcelProperty; | ||
8 | -import com.ruoyi.common.annotation.ExcelDictFormat; | ||
9 | -import com.ruoyi.common.convert.ExcelDictConvert; | ||
10 | -import lombok.Data; | ||
11 | -import java.util.Date; | ||
12 | - | ||
13 | -import java.io.Serializable; | ||
14 | - | ||
15 | -/** | ||
16 | - * ${functionName}视图对象 ${tableName} | ||
17 | - * | ||
18 | - * @author ${author} | ||
19 | - * @date ${datetime} | ||
20 | - */ | ||
21 | -@Data | ||
22 | -@ExcelIgnoreUnannotated | ||
23 | -public class ${ClassName}Vo implements Serializable { | ||
24 | - | ||
25 | - private static final long serialVersionUID = 1L; | ||
26 | - | ||
27 | -#foreach ($column in $columns) | ||
28 | -#if($column.list) | ||
29 | - /** | ||
30 | - * $column.columnComment | ||
31 | - */ | ||
32 | -#set($parentheseIndex=$column.columnComment.indexOf("(")) | ||
33 | -#if($parentheseIndex != -1) | ||
34 | -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||
35 | -#else | ||
36 | -#set($comment=$column.columnComment) | ||
37 | -#end | ||
38 | -#if(${column.dictType} && ${column.dictType} != '') | ||
39 | - @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) | ||
40 | - @ExcelDictFormat(dictType = "${column.dictType}") | ||
41 | -#elseif($parentheseIndex != -1) | ||
42 | - @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) | ||
43 | - @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") | ||
44 | -#else | ||
45 | - @ExcelProperty(value = "${comment}") | ||
46 | -#end | ||
47 | - private $column.javaType $column.javaField; | ||
48 | - | ||
49 | -#end | ||
50 | -#end | ||
51 | - | ||
52 | -} |
1 | -import request from '@/utils/request' | ||
2 | - | ||
3 | -// 查询${functionName}列表 | ||
4 | -export function list${BusinessName}(query) { | ||
5 | - return request({ | ||
6 | - url: '/${moduleName}/${businessName}/list', | ||
7 | - method: 'get', | ||
8 | - params: query | ||
9 | - }) | ||
10 | -} | ||
11 | - | ||
12 | -// 查询${functionName}详细 | ||
13 | -export function get${BusinessName}(${pkColumn.javaField}) { | ||
14 | - return request({ | ||
15 | - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | ||
16 | - method: 'get' | ||
17 | - }) | ||
18 | -} | ||
19 | - | ||
20 | -// 新增${functionName} | ||
21 | -export function add${BusinessName}(data) { | ||
22 | - return request({ | ||
23 | - url: '/${moduleName}/${businessName}', | ||
24 | - method: 'post', | ||
25 | - data: data | ||
26 | - }) | ||
27 | -} | ||
28 | - | ||
29 | -// 修改${functionName} | ||
30 | -export function update${BusinessName}(data) { | ||
31 | - return request({ | ||
32 | - url: '/${moduleName}/${businessName}', | ||
33 | - method: 'put', | ||
34 | - data: data | ||
35 | - }) | ||
36 | -} | ||
37 | - | ||
38 | -// 删除${functionName} | ||
39 | -export function del${BusinessName}(${pkColumn.javaField}) { | ||
40 | - return request({ | ||
41 | - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | ||
42 | - method: 'delete' | ||
43 | - }) | ||
44 | -} |
1 | --- 菜单 SQL | ||
2 | -insert into sys_menu (menu_id, 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) | ||
3 | -values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', sysdate, '', null, '${functionName}菜单'); | ||
4 | - | ||
5 | --- 按钮 SQL | ||
6 | -insert into sys_menu (menu_id, 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) | ||
7 | -values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', sysdate, '', null, ''); | ||
8 | - | ||
9 | -insert into sys_menu (menu_id, 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) | ||
10 | -values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', sysdate, '', null, ''); | ||
11 | - | ||
12 | -insert into sys_menu (menu_id, 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) | ||
13 | -values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', sysdate, '', null, ''); | ||
14 | - | ||
15 | -insert into sys_menu (menu_id, 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) | ||
16 | -values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', sysdate, '', null, ''); | ||
17 | - | ||
18 | -insert into sys_menu (menu_id, 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) | ||
19 | -values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', sysdate, '', null, ''); |
1 | --- 菜单 SQL | ||
2 | -insert into sys_menu (menu_id, 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) | ||
3 | -values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', now(), '', null, '${functionName}菜单'); | ||
4 | - | ||
5 | --- 按钮 SQL | ||
6 | -insert into sys_menu (menu_id, 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) | ||
7 | -values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', now(), '', null, ''); | ||
8 | - | ||
9 | -insert into sys_menu (menu_id, 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) | ||
10 | -values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', now(), '', null, ''); | ||
11 | - | ||
12 | -insert into sys_menu (menu_id, 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) | ||
13 | -values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', now(), '', null, ''); | ||
14 | - | ||
15 | -insert into sys_menu (menu_id, 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) | ||
16 | -values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', now(), '', null, ''); | ||
17 | - | ||
18 | -insert into sys_menu (menu_id, 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) | ||
19 | -values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', now(), '', null, ''); | ||
20 | - |
1 | --- 菜单 SQL | ||
2 | -insert into sys_menu (menu_id, 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) | ||
3 | -values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', sysdate(), '', null, '${functionName}菜单'); | ||
4 | - | ||
5 | --- 按钮 SQL | ||
6 | -insert into sys_menu (menu_id, 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) | ||
7 | -values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', sysdate(), '', null, ''); | ||
8 | - | ||
9 | -insert into sys_menu (menu_id, 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) | ||
10 | -values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', sysdate(), '', null, ''); | ||
11 | - | ||
12 | -insert into sys_menu (menu_id, 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) | ||
13 | -values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', sysdate(), '', null, ''); | ||
14 | - | ||
15 | -insert into sys_menu (menu_id, 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) | ||
16 | -values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', sysdate(), '', null, ''); | ||
17 | - | ||
18 | -insert into sys_menu (menu_id, 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) | ||
19 | -values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', sysdate(), '', null, ''); |
1 | --- 菜单 SQL | ||
2 | -insert into sys_menu (menu_id, 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) | ||
3 | -values(${table.menuIds[0]}, '${functionName}', '${parentMenuId}', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 0, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', getdate(), '', null, '${functionName}菜单'); | ||
4 | - | ||
5 | --- 按钮 SQL | ||
6 | -insert into sys_menu (menu_id, 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) | ||
7 | -values(${table.menuIds[1]}, '${functionName}查询', ${table.menuIds[0]}, '1', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:query', '#', 'admin', getdate(), '', null, ''); | ||
8 | - | ||
9 | -insert into sys_menu (menu_id, 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) | ||
10 | -values(${table.menuIds[2]}, '${functionName}新增', ${table.menuIds[0]}, '2', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:add', '#', 'admin', getdate(), '', null, ''); | ||
11 | - | ||
12 | -insert into sys_menu (menu_id, 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) | ||
13 | -values(${table.menuIds[3]}, '${functionName}修改', ${table.menuIds[0]}, '3', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:edit', '#', 'admin', getdate(), '', null, ''); | ||
14 | - | ||
15 | -insert into sys_menu (menu_id, 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) | ||
16 | -values(${table.menuIds[4]}, '${functionName}删除', ${table.menuIds[0]}, '4', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:remove', '#', 'admin', getdate(), '', null, ''); | ||
17 | - | ||
18 | -insert into sys_menu (menu_id, 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) | ||
19 | -values(${table.menuIds[5]}, '${functionName}导出', ${table.menuIds[0]}, '5', '#', '', 1, 0, 'F', '0', '0', '${permissionPrefix}:export', '#', 'admin', getdate(), '', null, ''); |
scm-job/pom.xml
deleted
100644 → 0
1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
2 | -<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
3 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
4 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
5 | - <parent> | ||
6 | - <artifactId>fp_scm</artifactId> | ||
7 | - <groupId>com.scm</groupId> | ||
8 | - <version>4.8.2</version> | ||
9 | - </parent> | ||
10 | - <modelVersion>4.0.0</modelVersion> | ||
11 | - <packaging>jar</packaging> | ||
12 | - <artifactId>scm-job</artifactId> | ||
13 | - | ||
14 | - <description> | ||
15 | - 任务调度 | ||
16 | - </description> | ||
17 | - | ||
18 | - <dependencies> | ||
19 | - | ||
20 | - <!-- 通用工具--> | ||
21 | - <dependency> | ||
22 | - <groupId>com.scm</groupId> | ||
23 | - <artifactId>scm-common</artifactId> | ||
24 | - </dependency> | ||
25 | - | ||
26 | - <!-- xxl-job-core --> | ||
27 | - <dependency> | ||
28 | - <groupId>com.xuxueli</groupId> | ||
29 | - <artifactId>xxl-job-core</artifactId> | ||
30 | - </dependency> | ||
31 | - | ||
32 | - </dependencies> | ||
33 | - | ||
34 | -</project> | ||
35 | - |
1 | -package com.ruoyi.job.config; | ||
2 | - | ||
3 | -import com.ruoyi.job.config.properties.XxlJobProperties; | ||
4 | -import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; | ||
5 | -import lombok.AllArgsConstructor; | ||
6 | -import lombok.extern.slf4j.Slf4j; | ||
7 | -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; | ||
8 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | ||
9 | -import org.springframework.context.annotation.Bean; | ||
10 | -import org.springframework.context.annotation.Configuration; | ||
11 | - | ||
12 | -/** | ||
13 | - * xxl-job config | ||
14 | - * | ||
15 | - * @author Lion Li | ||
16 | - */ | ||
17 | -@Slf4j | ||
18 | -@Configuration | ||
19 | -@EnableConfigurationProperties(XxlJobProperties.class) | ||
20 | -@AllArgsConstructor | ||
21 | -@ConditionalOnProperty(prefix = "xxl.job", name = "enabled", havingValue = "true") | ||
22 | -public class XxlJobConfig { | ||
23 | - | ||
24 | - private final XxlJobProperties xxlJobProperties; | ||
25 | - | ||
26 | - @Bean | ||
27 | - public XxlJobSpringExecutor xxlJobExecutor() { | ||
28 | - log.info(">>>>>>>>>>> xxl-job config init."); | ||
29 | - XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); | ||
30 | - xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdminAddresses()); | ||
31 | - xxlJobSpringExecutor.setAccessToken(xxlJobProperties.getAccessToken()); | ||
32 | - XxlJobProperties.Executor executor = xxlJobProperties.getExecutor(); | ||
33 | - xxlJobSpringExecutor.setAppname(executor.getAppname()); | ||
34 | - xxlJobSpringExecutor.setAddress(executor.getAddress()); | ||
35 | - xxlJobSpringExecutor.setIp(executor.getIp()); | ||
36 | - xxlJobSpringExecutor.setPort(executor.getPort()); | ||
37 | - xxlJobSpringExecutor.setLogPath(executor.getLogPath()); | ||
38 | - xxlJobSpringExecutor.setLogRetentionDays(executor.getLogRetentionDays()); | ||
39 | - return xxlJobSpringExecutor; | ||
40 | - } | ||
41 | - | ||
42 | -} |
1 | -package com.ruoyi.oss.enumd; | ||
2 | - | ||
3 | -import com.amazonaws.services.s3.model.CannedAccessControlList; | ||
4 | -import lombok.AllArgsConstructor; | ||
5 | -import lombok.Getter; | ||
6 | - | ||
7 | -/** | ||
8 | - * 桶访问策略配置 | ||
9 | - * | ||
10 | - * @author 陈賝 | ||
11 | - */ | ||
12 | -@Getter | ||
13 | -@AllArgsConstructor | ||
14 | -public enum AccessPolicyType { | ||
15 | - | ||
16 | - /** | ||
17 | - * private | ||
18 | - */ | ||
19 | - PRIVATE("0", CannedAccessControlList.Private, PolicyType.WRITE), | ||
20 | - | ||
21 | - /** | ||
22 | - * public | ||
23 | - */ | ||
24 | - PUBLIC("1", CannedAccessControlList.PublicRead, PolicyType.READ), | ||
25 | - | ||
26 | - /** | ||
27 | - * custom | ||
28 | - */ | ||
29 | - CUSTOM("2",CannedAccessControlList.PublicRead, PolicyType.READ); | ||
30 | - | ||
31 | - /** | ||
32 | - * 桶 权限类型 | ||
33 | - */ | ||
34 | - private final String type; | ||
35 | - | ||
36 | - /** | ||
37 | - * 文件对象 权限类型 | ||
38 | - */ | ||
39 | - private final CannedAccessControlList acl; | ||
40 | - | ||
41 | - /** | ||
42 | - * 桶策略类型 | ||
43 | - */ | ||
44 | - private final PolicyType policyType; | ||
45 | - | ||
46 | - public static AccessPolicyType getByType(String type) { | ||
47 | - for (AccessPolicyType value : values()) { | ||
48 | - if (value.getType().equals(type)) { | ||
49 | - return value; | ||
50 | - } | ||
51 | - } | ||
52 | - throw new RuntimeException("'type' not found By " + type); | ||
53 | - } | ||
54 | - | ||
55 | -} |
1 | -package com.ruoyi.oss.factory; | ||
2 | - | ||
3 | -import com.ruoyi.common.constant.CacheNames; | ||
4 | -import com.ruoyi.common.utils.JsonUtils; | ||
5 | -import com.ruoyi.common.utils.StringUtils; | ||
6 | -import com.ruoyi.common.utils.redis.CacheUtils; | ||
7 | -import com.ruoyi.common.utils.redis.RedisUtils; | ||
8 | -import com.ruoyi.oss.constant.OssConstant; | ||
9 | -import com.ruoyi.oss.core.OssClient; | ||
10 | -import com.ruoyi.oss.exception.OssException; | ||
11 | -import com.ruoyi.oss.properties.OssProperties; | ||
12 | -import lombok.extern.slf4j.Slf4j; | ||
13 | - | ||
14 | -import java.util.Map; | ||
15 | -import java.util.concurrent.ConcurrentHashMap; | ||
16 | - | ||
17 | -/** | ||
18 | - * 文件上传Factory | ||
19 | - * | ||
20 | - * @author Lion Li | ||
21 | - */ | ||
22 | -@Slf4j | ||
23 | -public class OssFactory { | ||
24 | - | ||
25 | - private static final Map<String, OssClient> CLIENT_CACHE = new ConcurrentHashMap<>(); | ||
26 | - | ||
27 | - /** | ||
28 | - * 获取默认实例 | ||
29 | - */ | ||
30 | - public static OssClient instance() { | ||
31 | - // 获取redis 默认类型 | ||
32 | - String configKey = RedisUtils.getCacheObject(OssConstant.DEFAULT_CONFIG_KEY); | ||
33 | - if (StringUtils.isEmpty(configKey)) { | ||
34 | - throw new OssException("文件存储服务类型无法找到!"); | ||
35 | - } | ||
36 | - return instance(configKey); | ||
37 | - } | ||
38 | - | ||
39 | - /** | ||
40 | - * 根据类型获取实例 | ||
41 | - */ | ||
42 | - public static synchronized OssClient instance(String configKey) { | ||
43 | - String json = CacheUtils.get(CacheNames.SYS_OSS_CONFIG, configKey); | ||
44 | - if (json == null) { | ||
45 | - throw new OssException("系统异常, '" + configKey + "'配置信息不存在!"); | ||
46 | - } | ||
47 | - OssProperties properties = JsonUtils.parseObject(json, OssProperties.class); | ||
48 | - OssClient client = CLIENT_CACHE.get(configKey); | ||
49 | - if (client == null) { | ||
50 | - CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); | ||
51 | - log.info("创建OSS实例 key => {}", configKey); | ||
52 | - return CLIENT_CACHE.get(configKey); | ||
53 | - } | ||
54 | - // 配置不相同则重新构建 | ||
55 | - if (!client.checkPropertiesSame(properties)) { | ||
56 | - CLIENT_CACHE.put(configKey, new OssClient(configKey, properties)); | ||
57 | - log.info("重载OSS实例 key => {}", configKey); | ||
58 | - return CLIENT_CACHE.get(configKey); | ||
59 | - } | ||
60 | - return client; | ||
61 | - } | ||
62 | - | ||
63 | -} |
1 | -package com.ruoyi.oss.properties; | ||
2 | - | ||
3 | -import lombok.Data; | ||
4 | - | ||
5 | -/** | ||
6 | - * OSS对象存储 配置属性 | ||
7 | - * | ||
8 | - * @author Lion Li | ||
9 | - */ | ||
10 | -@Data | ||
11 | -public class OssProperties { | ||
12 | - | ||
13 | - /** | ||
14 | - * 访问站点 | ||
15 | - */ | ||
16 | - private String endpoint; | ||
17 | - | ||
18 | - /** | ||
19 | - * 自定义域名 | ||
20 | - */ | ||
21 | - private String domain; | ||
22 | - | ||
23 | - /** | ||
24 | - * 前缀 | ||
25 | - */ | ||
26 | - private String prefix; | ||
27 | - | ||
28 | - /** | ||
29 | - * ACCESS_KEY | ||
30 | - */ | ||
31 | - private String accessKey; | ||
32 | - | ||
33 | - /** | ||
34 | - * SECRET_KEY | ||
35 | - */ | ||
36 | - private String secretKey; | ||
37 | - | ||
38 | - /** | ||
39 | - * 存储空间名 | ||
40 | - */ | ||
41 | - private String bucketName; | ||
42 | - | ||
43 | - /** | ||
44 | - * 存储区域 | ||
45 | - */ | ||
46 | - private String region; | ||
47 | - | ||
48 | - /** | ||
49 | - * 是否https(Y=是,N=否) | ||
50 | - */ | ||
51 | - private String isHttps; | ||
52 | - | ||
53 | - /** | ||
54 | - * 桶权限类型(0private 1public 2custom) | ||
55 | - */ | ||
56 | - private String accessPolicy; | ||
57 | - | ||
58 | -} |
scm-sms/pom.xml
deleted
100644 → 0
1 | -<?xml version="1.0" encoding="UTF-8"?> | ||
2 | -<project xmlns="http://maven.apache.org/POM/4.0.0" | ||
3 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
4 | - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
5 | - <parent> | ||
6 | - <artifactId>fp_scm</artifactId> | ||
7 | - <groupId>com.scm</groupId> | ||
8 | - <version>4.8.2</version> | ||
9 | - </parent> | ||
10 | - <modelVersion>4.0.0</modelVersion> | ||
11 | - | ||
12 | - <artifactId>scm-sms</artifactId> | ||
13 | - | ||
14 | - <description> | ||
15 | - SMS短信模块 | ||
16 | - </description> | ||
17 | - | ||
18 | - <dependencies> | ||
19 | - | ||
20 | - <!-- 通用工具--> | ||
21 | - <dependency> | ||
22 | - <groupId>com.scm</groupId> | ||
23 | - <artifactId>scm-common</artifactId> | ||
24 | - </dependency> | ||
25 | - | ||
26 | - <dependency> | ||
27 | - <groupId>org.dromara.sms4j</groupId> | ||
28 | - <artifactId>sms4j-spring-boot-starter</artifactId> | ||
29 | - <exclusions> | ||
30 | - <!-- 排除京东短信内存在的fastjson等待作者后续修复 --> | ||
31 | - <exclusion> | ||
32 | - <groupId>com.alibaba</groupId> | ||
33 | - <artifactId>fastjson</artifactId> | ||
34 | - </exclusion> | ||
35 | - </exclusions> | ||
36 | - </dependency> | ||
37 | - | ||
38 | - </dependencies> | ||
39 | - | ||
40 | -</project> |
@@ -8,13 +8,13 @@ | @@ -8,13 +8,13 @@ | ||
8 | <template v-if="appStore.device !== 'mobile'"> | 8 | <template v-if="appStore.device !== 'mobile'"> |
9 | <header-search id="header-search" class="right-menu-item" /> | 9 | <header-search id="header-search" class="right-menu-item" /> |
10 | 10 | ||
11 | - <el-tooltip content="源码地址" effect="dark" placement="bottom"> | 11 | +<!-- <el-tooltip content="源码地址" effect="dark" placement="bottom"> |
12 | <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> | 12 | <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> |
13 | </el-tooltip> | 13 | </el-tooltip> |
14 | 14 | ||
15 | <el-tooltip content="文档地址" effect="dark" placement="bottom"> | 15 | <el-tooltip content="文档地址" effect="dark" placement="bottom"> |
16 | <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> | 16 | <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> |
17 | - </el-tooltip> | 17 | + </el-tooltip>--> |
18 | 18 | ||
19 | <screenfull id="screenfull" class="right-menu-item hover-effect" /> | 19 | <screenfull id="screenfull" class="right-menu-item hover-effect" /> |
20 | 20 |
@@ -25,7 +25,7 @@ defineProps({ | @@ -25,7 +25,7 @@ defineProps({ | ||
25 | } | 25 | } |
26 | }) | 26 | }) |
27 | 27 | ||
28 | -const title = ref('RuoYi-Vue-Plus'); | 28 | +const title = ref('凡配供应链'); |
29 | const settingsStore = useSettingsStore(); | 29 | const settingsStore = useSettingsStore(); |
30 | const sideTheme = computed(() => settingsStore.sideTheme); | 30 | const sideTheme = computed(() => settingsStore.sideTheme); |
31 | </script> | 31 | </script> |
@@ -78,4 +78,4 @@ const sideTheme = computed(() => settingsStore.sideTheme); | @@ -78,4 +78,4 @@ const sideTheme = computed(() => settingsStore.sideTheme); | ||
78 | } | 78 | } |
79 | } | 79 | } |
80 | } | 80 | } |
81 | -</style> | ||
81 | +</style> |
@@ -66,7 +66,7 @@ export const constantRoutes = [ | @@ -66,7 +66,7 @@ export const constantRoutes = [ | ||
66 | path: '/index', | 66 | path: '/index', |
67 | component: () => import('@/views/index'), | 67 | component: () => import('@/views/index'), |
68 | name: 'Index', | 68 | name: 'Index', |
69 | - meta: { title: '首页', icon: 'dashboard', affix: true } | 69 | + meta: { title: '工作台', icon: 'dashboard', affix: true } |
70 | } | 70 | } |
71 | ] | 71 | ] |
72 | }, | 72 | }, |
1 | <template> | 1 | <template> |
2 | <div class="app-container home"> | 2 | <div class="app-container home"> |
3 | - <el-row :gutter="20"> | ||
4 | - <el-col :sm="24" :lg="12" style="padding-left: 20px"> | ||
5 | - <h2>RuoYi-Vue-Plus后台管理系统</h2> | ||
6 | - <p> | ||
7 | - RuoYi-Vue-Plus 是基于 RuoYi-Vue 针对 分布式集群 场景升级(不兼容原框架) | ||
8 | - <br/> | ||
9 | - * 前端开发框架 Vue、Element UI<br/> | ||
10 | - * 后端开发框架 Spring Boot<br/> | ||
11 | - * 容器框架 Undertow 基于 Netty 的高性能容器<br/> | ||
12 | - * 权限认证框架 Sa-Token 支持多终端认证系统<br/> | ||
13 | - * 关系数据库 MySQL 适配 8.X 最低 5.7<br/> | ||
14 | - * 缓存数据库 Redis 适配 6.X 最低 4.X<br/> | ||
15 | - * 数据库框架 Mybatis-Plus 快速 CRUD 增加开发效率<br/> | ||
16 | - * 数据库框架 p6spy 更强劲的 SQL 分析<br/> | ||
17 | - * 多数据源框架 dynamic-datasource 支持主从与多种类数据库异构<br/> | ||
18 | - * 序列化框架 Jackson 统一使用 jackson 高效可靠<br/> | ||
19 | - * Redis客户端 Redisson 性能强劲、API丰富<br/> | ||
20 | - * 分布式限流 Redisson 全局、请求IP、集群ID 多种限流<br/> | ||
21 | - * 分布式锁 Lock4j 注解锁、工具锁 多种多样<br/> | ||
22 | - * 分布式幂等 Lock4j 基于分布式锁实现<br/> | ||
23 | - * 分布式链路追踪 SkyWalking 支持链路追踪、网格分析、度量聚合、可视化<br/> | ||
24 | - * 分布式任务调度 Xxl-Job 高性能 高可靠 易扩展<br/> | ||
25 | - * 文件存储 Minio 本地存储<br/> | ||
26 | - * 文件存储 七牛、阿里、腾讯 云存储<br/> | ||
27 | - * 监控框架 SpringBoot-Admin 全方位服务监控<br/> | ||
28 | - * 校验框架 Validation 增强接口安全性 严谨性<br/> | ||
29 | - * Excel框架 Alibaba EasyExcel 性能优异 扩展性强<br/> | ||
30 | - * 文档框架 SpringDoc、javadoc 无注解零入侵基于java注释<br/> | ||
31 | - * 工具类框架 Hutool、Lombok 减少代码冗余 增加安全性<br/> | ||
32 | - * 代码生成器 适配MP、SpringDoc规范化代码 一键生成前后端代码<br/> | ||
33 | - * 部署方式 Docker 容器编排 一键部署业务集群<br/> | ||
34 | - * 国际化 SpringMessage Spring标准国际化方案<br/> | ||
35 | - </p> | ||
36 | - <p> | ||
37 | - <b>当前版本:</b> <span>v{{ version }}</span> | ||
38 | - </p> | ||
39 | - <p> | ||
40 | - <el-tag type="danger">¥免费开源</el-tag> | ||
41 | - </p> | ||
42 | - <p> | ||
43 | - <el-button | ||
44 | - type="primary" | ||
45 | - icon="Cloudy" | ||
46 | - plain | ||
47 | - @click="goTarget('https://gitee.com/JavaLionLi/RuoYi-Vue-Plus')" | ||
48 | - >访问码云</el-button | ||
49 | - > | ||
50 | - <el-button | ||
51 | - type="primary" | ||
52 | - icon="Cloudy" | ||
53 | - plain | ||
54 | - @click="goTarget('https://github.com/JavaLionLi/RuoYi-Vue-Plus')" | ||
55 | - >访问GitHub</el-button | ||
56 | - > | ||
57 | - <el-button | ||
58 | - type="primary" | ||
59 | - icon="Cloudy" | ||
60 | - plain | ||
61 | - @click="goTarget('https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages?sort_id=4106467&doc_id=1469725')" | ||
62 | - >更新日志</el-button | ||
63 | - > | ||
64 | - </p> | ||
65 | - </el-col> | ||
66 | - | ||
67 | - <el-col :sm="24" :lg="12" style="padding-left: 50px"> | ||
68 | - <el-row> | ||
69 | - <el-col :span="12"> | ||
70 | - <h2>技术选型</h2> | ||
71 | - </el-col> | ||
72 | - </el-row> | ||
73 | - <el-row> | ||
74 | - <el-col :span="6"> | ||
75 | - <h4>后端技术</h4> | ||
76 | - <ul> | ||
77 | - <li>SpringBoot</li> | ||
78 | - <li>Sa-Token</li> | ||
79 | - <li>JWT</li> | ||
80 | - <li>MyBatis</li> | ||
81 | - <li>Druid</li> | ||
82 | - <li>Jackson</li> | ||
83 | - <li>...</li> | ||
84 | - </ul> | ||
85 | - </el-col> | ||
86 | - <el-col :span="6"> | ||
87 | - <h4>前端技术</h4> | ||
88 | - <ul> | ||
89 | - <li>Vue</li> | ||
90 | - <li>Vuex</li> | ||
91 | - <li>Element-ui</li> | ||
92 | - <li>Axios</li> | ||
93 | - <li>Sass</li> | ||
94 | - <li>Quill</li> | ||
95 | - <li>...</li> | ||
96 | - </ul> | ||
97 | - </el-col> | ||
98 | - </el-row> | ||
99 | - </el-col> | ||
100 | - </el-row> | ||
101 | - <el-divider /> | ||
102 | </div> | 3 | </div> |
103 | </template> | 4 | </template> |
104 | 5 | ||
105 | <script setup name="Index"> | 6 | <script setup name="Index"> |
106 | -const version = ref('4.8.2') | ||
107 | - | ||
108 | -function goTarget(url) { | ||
109 | - window.open(url, '__blank') | ||
110 | -} | ||
111 | </script> | 7 | </script> |
112 | - | ||
113 | <style scoped lang="scss"> | 8 | <style scoped lang="scss"> |
114 | -.home { | ||
115 | - blockquote { | ||
116 | - padding: 10px 20px; | ||
117 | - margin: 0 0 20px; | ||
118 | - font-size: 17.5px; | ||
119 | - border-left: 5px solid #eee; | ||
120 | - } | ||
121 | - hr { | ||
122 | - margin-top: 20px; | ||
123 | - margin-bottom: 20px; | ||
124 | - border: 0; | ||
125 | - border-top: 1px solid #eee; | ||
126 | - } | ||
127 | - .col-item { | ||
128 | - margin-bottom: 20px; | ||
129 | - } | ||
130 | - | ||
131 | - ul { | ||
132 | - padding: 0; | ||
133 | - margin: 0; | ||
134 | - } | ||
135 | - | ||
136 | - font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif; | ||
137 | - font-size: 13px; | ||
138 | - color: #676a6c; | ||
139 | - overflow-x: hidden; | ||
140 | - | ||
141 | - ul { | ||
142 | - list-style-type: none; | ||
143 | - } | ||
144 | - | ||
145 | - h4 { | ||
146 | - margin-top: 0px; | ||
147 | - } | ||
148 | - | ||
149 | - h2 { | ||
150 | - margin-top: 10px; | ||
151 | - font-size: 26px; | ||
152 | - font-weight: 100; | ||
153 | - } | ||
154 | - | ||
155 | - p { | ||
156 | - margin-top: 10px; | ||
157 | - | ||
158 | - b { | ||
159 | - font-weight: 700; | ||
160 | - } | ||
161 | - } | ||
162 | - | ||
163 | - .update-log { | ||
164 | - ol { | ||
165 | - display: block; | ||
166 | - list-style-type: decimal; | ||
167 | - margin-block-start: 1em; | ||
168 | - margin-block-end: 1em; | ||
169 | - margin-inline-start: 0; | ||
170 | - margin-inline-end: 0; | ||
171 | - padding-inline-start: 40px; | ||
172 | - } | ||
173 | - } | ||
174 | -} | ||
175 | </style> | 9 | </style> |
176 | 10 |
-
Please register or login to post a comment