Browse Source

删file、auth等module

master
郑根木 2 years ago
parent
commit
c5a08e2793
71 changed files with 260 additions and 2824 deletions
  1. +0
    -132
      smtweb-framework/sw-framework-auth/pom.xml
  2. +0
    -66
      smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/captcha/ImageMaker.java
  3. +0
    -21
      smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/spring/AuthAutoConfiguration.java
  4. +0
    -60
      smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/spring/cache/RealmCache.java
  5. +0
    -11
      smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/entity/LoginAckVO.java
  6. +0
    -12
      smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/entity/LoginVO.java
  7. +0
    -29
      smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/entity/MenuPO.java
  8. +0
    -28
      smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/entity/UserPO.java
  9. +0
    -89
      smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/service/AuthService.java
  10. +0
    -2
      smtweb-framework/sw-framework-auth/src/main/resources/META-INF/spring.factories
  11. BIN
      smtweb-framework/sw-framework-auth/src/main/resources/auth/courier_new_34_19.png
  12. +0
    -64
      smtweb-framework/sw-framework-auth/src/main/resources/config/application-dev.yaml
  13. +0
    -35
      smtweb-framework/sw-framework-auth/src/main/resources/config/application-prod.yaml
  14. +0
    -3
      smtweb-framework/sw-framework-auth/src/main/resources/config/application.yaml
  15. +0
    -2
      smtweb-framework/sw-framework-auth/target/classes/META-INF/spring.factories
  16. BIN
      smtweb-framework/sw-framework-auth/target/classes/auth/courier_new_34_19.png
  17. +0
    -64
      smtweb-framework/sw-framework-auth/target/classes/config/application-dev.yaml
  18. +0
    -35
      smtweb-framework/sw-framework-auth/target/classes/config/application-prod.yaml
  19. +0
    -3
      smtweb-framework/sw-framework-auth/target/classes/config/application.yaml
  20. +0
    -5
      smtweb-framework/sw-framework-auth/target/maven-archiver/pom.properties
  21. +0
    -0
      smtweb-framework/sw-framework-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  22. +0
    -9
      smtweb-framework/sw-framework-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  23. +0
    -5
      smtweb-framework/sw-framework-core/target/maven-archiver/pom.properties
  24. +0
    -1
      smtweb-framework/sw-framework-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  25. +256
    -208
      smtweb-framework/sw-framework-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  26. +0
    -0
      smtweb-framework/sw-framework-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
  27. +0
    -3
      smtweb-framework/sw-framework-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
  28. +0
    -94
      smtweb-framework/sw-framework-file/pom.xml
  29. +0
    -19
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/FileHelper.java
  30. +0
    -134
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/FilePathGenerator.java
  31. +0
    -48
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/FilePathInfo.java
  32. +0
    -15
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/FileApplication.java
  33. +0
    -21
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/FileAutoConfiguration.java
  34. +0
    -26
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/config/FileConfig.java
  35. +0
    -185
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileDownloadController.java
  36. +0
    -157
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileUploadController.java
  37. +0
    -63
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/dao/ImageAttachDao.java
  38. +0
    -114
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/dao/SysAttachDao.java
  39. +0
    -8
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/entity/FileDataVO.java
  40. +0
    -15
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/entity/UploadDataVO.java
  41. +0
    -107
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/util/FileDynPath.java
  42. +0
    -52
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/util/FileFixPath.java
  43. +0
    -79
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/util/MemMultipartFile.java
  44. +0
    -111
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/util/ThumbImage.java
  45. +0
    -13
      smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/web/entity/AttachPathPO.java
  46. +0
    -2
      smtweb-framework/sw-framework-file/src/main/resources/META-INF/spring.factories
  47. +0
    -2
      smtweb-framework/sw-framework-file/target/classes/META-INF/spring.factories
  48. +0
    -5
      smtweb-framework/sw-framework-file/target/maven-archiver/pom.properties
  49. +0
    -0
      smtweb-framework/sw-framework-file/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  50. +0
    -17
      smtweb-framework/sw-framework-file/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  51. +0
    -78
      smtweb-framework/sw-framework-web/pom.xml
  52. +0
    -14
      smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/spring/WebApplication.java
  53. +0
    -20
      smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/spring/WebAutoConfiguration.java
  54. +0
    -37
      smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/api/DemoDbService.java
  55. +0
    -58
      smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/api/DemoTimerService.java
  56. +0
    -19
      smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/dao/TimerDao.java
  57. +0
    -22
      smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/entity/DictPO.java
  58. +0
    -32
      smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/entity/UserPO.java
  59. +0
    -58
      smtweb-framework/sw-framework-web/src/main/resources/config/application-dev.yaml
  60. +0
    -52
      smtweb-framework/sw-framework-web/src/main/resources/config/application-prod.yaml
  61. +0
    -47
      smtweb-framework/sw-framework-web/src/main/resources/config/application.yaml
  62. +0
    -17
      smtweb-framework/sw-framework-web/src/main/resources/static/events.js
  63. +0
    -58
      smtweb-framework/sw-framework-web/target/classes/config/application-dev.yaml
  64. +0
    -52
      smtweb-framework/sw-framework-web/target/classes/config/application-prod.yaml
  65. +0
    -47
      smtweb-framework/sw-framework-web/target/classes/config/application.yaml
  66. +0
    -17
      smtweb-framework/sw-framework-web/target/classes/static/events.js
  67. +0
    -5
      smtweb-framework/sw-framework-web/target/maven-archiver/pom.properties
  68. +0
    -0
      smtweb-framework/sw-framework-web/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  69. +0
    -7
      smtweb-framework/sw-framework-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  70. +3
    -8
      smtweb-system/sw-system-bpm/pom.xml
  71. +1
    -2
      smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasets.java

+ 0
- 132
smtweb-framework/sw-framework-auth/pom.xml View File

@@ -1,132 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-auth</artifactId>
<version>2.2.0-SNAPSHOT</version>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<modelVersion>4.0.0</modelVersion>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-core</artifactId>
<version>2.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.6.2</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.7.RELEASE</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mockito/mockito-all -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<!-- <finalName>user</finalName>-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 用于生成jar包的plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<excludes>
<exclude>config/*.yaml</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<!-- <resources>-->
<!-- <resource>-->
<!-- <filtering>true</filtering>-->
<!-- <directory>src/main/resources</directory>-->
<!-- <excludes>-->
<!-- <exclude>config/*.yaml</exclude>-->
<!-- </excludes>-->
<!-- </resource>-->
<!-- </resources>-->
</build>

<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://47.92.149.153:7000/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://47.92.149.153:7000/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>

+ 0
- 66
smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/captcha/ImageMaker.java View File

@@ -1,66 +0,0 @@
package cc.smtweb.framework.auth.captcha;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class ImageMaker {
private static final String signChar = "()+-*/=";

// 生成png图片
public void make() throws IOException {
int fontHeight = 34;
int width = 19;
int height = fontHeight * (62 + signChar.length());
// 创建BufferedImage对象

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// ---------- 增加下面的代码使得背景透明 -----------------
Graphics2D g2d = image.createGraphics();
image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
g2d.dispose();

// 画图
g2d = image.createGraphics();
g2d.setColor(new Color(0,0,0));

// 画图
Font font = new Font("Courier New", Font.BOLD, 30);
g2d.setFont(font);

System.out.println(font.getMaxCharBounds(g2d.getFontRenderContext()));

int top = 25;
for (int i = 0; i < 10; i++) {
g2d.drawString(i + "", 0, top);
top += fontHeight;
}

for (int i = 0; i < 26; i++) {
g2d.drawString((char)(i + (int)'a') + "", 0, top);
top += fontHeight;
}

for (int i = 0; i < 26; i++) {
g2d.drawString((char)(i + (int)'A') + "", 0, top);
top += fontHeight;
}

for (int i = 0; i < signChar.length(); i++) {
g2d.drawString(signChar.charAt(i) + "", 0, top);
top += fontHeight;
}

// 释放对象
g2d.dispose();

// 保存文件
ImageIO.write(image, "png", new File("/var/tmp/test.png"));
}

public static void main(String[] args) throws IOException {
new ImageMaker().make();
}
}

+ 0
- 21
smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/spring/AuthAutoConfiguration.java View File

@@ -1,21 +0,0 @@
package cc.smtweb.framework.auth.spring;

import cc.smtweb.framework.core.mvc.config.ControllerConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
* @author kevin
*/
@Configuration
@ComponentScan
public class AuthAutoConfiguration {

/** 配置自定义service扫描路径 {module}/{service}/{method} */
@Bean
public ControllerConfig authControllerConfig() {
return new ControllerConfig("auth", "cc.smtweb.framework.auth.web");
}

}

+ 0
- 60
smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/spring/cache/RealmCache.java View File

@@ -1,60 +0,0 @@
package cc.smtweb.framework.auth.spring.cache;

import cc.smtweb.framework.core.annotation.SwCache;
import cc.smtweb.framework.core.cache.AbstractCache;
import cc.smtweb.framework.core.db.jdbc.JdbcEngine;
import cc.smtweb.framework.core.mvc.realm.service.PermChecker;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.*;

/**
* 用户权限集合缓存器,@todo 权限部分需要重写
* @author xkliu
*/
@Log4j2
@SwCache(ident = "PERM_CHECKER", title = "用户权限")
public class RealmCache extends AbstractCache<PermChecker> {
@Autowired
private JdbcEngine dbEngine;

private static final long ENTERPRISE_ADMIN_ID = 1;

@Override
protected String getId(PermChecker bean) {
return "1";//todo
}

@Override
protected List<PermChecker> loadAll() {
return null;
}


protected PermChecker load(Long key) {
// admin
if (key == ENTERPRISE_ADMIN_ID) {
return PermChecker.build(new HashSet<>(Collections.singletonList("*")));
}

// TODO: 合并相同角色,自己到缓存里面获取
Set<String> permissions = new HashSet<>();

List<String> permList = dbEngine.queryStringList("SELECT menu_api_perm FROM sys_menu WHERE menu_id in\n" +
"(SELECT rmp_menu_id from sys_role_menu_privilege WHERE rmp_role_id in\n" +
"(SELECT role_id FROM sw_user.sys_role WHERE role_id IN" +
"(SELECT ur_role_id FROM sw_user.sys_user_role WHERE ur_user_id=?)))", key);

if (permList != null) {
for (String perm: permList) {
for (String item: perm.split(",")) {
permissions.add(item.trim());
}
}
}

return PermChecker.build(permissions);
}

}

+ 0
- 11
smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/entity/LoginAckVO.java View File

@@ -1,11 +0,0 @@
package cc.smtweb.framework.auth.web.entity;

import lombok.Data;

@Data
public class LoginAckVO {
private Long userId;
private String userAvatar;
private String userName;
private String token;
}

+ 0
- 12
smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/entity/LoginVO.java View File

@@ -1,12 +0,0 @@
package cc.smtweb.framework.auth.web.entity;

import lombok.Data;

import java.io.Serializable;

@Data
public class LoginVO implements Serializable {
private String username;

private String password;
}

+ 0
- 29
smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/entity/MenuPO.java View File

@@ -1,29 +0,0 @@
package cc.smtweb.framework.auth.web.entity;

import cc.smtweb.framework.core.annotation.SwColumn;
import cc.smtweb.framework.core.annotation.SwTable;
import lombok.Data;

import java.io.Serializable;

@Data
@SwTable("sw_user.sys_menu")
public class MenuPO implements Serializable {
@SwColumn(type={SwColumn.Type.ID})
private Long menuId;

@SwColumn(type={SwColumn.Type.PARENT_ID})
private Long menuParentId;

private String menuName;

private Long menuSiteId;


private String menuPermiss;

private String menuUrl;

@SwColumn(type={SwColumn.Type.ORDER})
private Integer menuSort;
}

+ 0
- 28
smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/entity/UserPO.java View File

@@ -1,28 +0,0 @@
package cc.smtweb.framework.auth.web.entity;

import cc.smtweb.framework.core.annotation.SwColumn;
import cc.smtweb.framework.core.annotation.SwTable;
import lombok.Data;

import java.io.Serializable;

@Data
@SwTable("sw_user.sys_user")
public class UserPO implements Serializable {
@SwColumn(type={SwColumn.Type.ID})
private Long userId;

private String userNickCode;

private String userNickName;

private Long userCreatePartyId;

private String userPwd;

private String userPhone;

private Integer userStatus;

private String userAvatar;
}

+ 0
- 89
smtweb-framework/sw-framework-auth/src/main/java/cc/smtweb/framework/auth/web/service/AuthService.java View File

@@ -1,89 +0,0 @@
package cc.smtweb.framework.auth.web.service;

import cc.smtweb.framework.auth.web.entity.LoginAckVO;
import cc.smtweb.framework.auth.web.entity.LoginVO;
import cc.smtweb.framework.auth.web.entity.UserPO;
import cc.smtweb.framework.core.annotation.*;
import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.session.SessionManager;
import cc.smtweb.framework.core.session.UserSession;
import cc.smtweb.framework.core.db.DbEngine;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;

@Slf4j
@SwService
public class AuthService {
@SwParam
private DbEngine dbEngine;

@SwParam
private SessionManager sessionManager;

@SwPerm(SwPerm.NONE)
public R login(@SwBody LoginVO loginPO) {
if (StringUtils.isBlank(loginPO.getUsername())) {
return R.error("账号不能为空");
}

if (StringUtils.isBlank(loginPO.getPassword())) {
return R.error("密码不能为空");
}

UserPO user = dbEngine.queryEntity("select user_id,user_nick_name,user_nick_code,user_pwd,user_create_party_id from sw_user.sys_user where user_nick_code=?", UserPO.class, loginPO.getUsername());

if (user == null) {
return R.error("账号不存在");
}

// digest:md5("goodpj" + user.userId + password)
String pass = DigestUtils.md5Hex("goodpj" + user.getUserId() + loginPO.getPassword());

if (!pass.equals(user.getUserPwd())) {
return R.error("账号或者密码出错");
}

UserSession userSession = new UserSession();
userSession.setUserId(user.getUserId());
userSession.setSiteId(user.getUserCreatePartyId());

String token = sessionManager.login(userSession);

LoginAckVO data = new LoginAckVO();

data.setUserId(user.getUserId());
data.setUserName(user.getUserNickName());
data.setUserAvatar(user.getUserAvatar());
data.setToken(token);

return R.success(data);
}

@SwPerm()
public R ping(@SwParam("msg") String msg) {
return R.success(msg);
}

@SwPerm("user:edit")
public R config(@SwParam("username") String username) {
return R.success("config: " + username);
}


/**
* 退出登录
* @return code
*/
public R logout() {
sessionManager.logout();
return R.success();
}

// defaultRun 命名的函数是默认函数
// @SwPerm(SwPerm.NONE)
// public R defaultRun(@SwPathParam String path) {
// return R.success(path).put("dao", authDao);
// }

}

+ 0
- 2
smtweb-framework/sw-framework-auth/src/main/resources/META-INF/spring.factories View File

@@ -1,2 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cc.smtweb.framework.auth.spring.AuthAutoConfiguration

BIN
smtweb-framework/sw-framework-auth/src/main/resources/auth/courier_new_34_19.png View File

Before After
Width: 19  |  Height: 2346  |  Size: 2.4 KiB

+ 0
- 64
smtweb-framework/sw-framework-auth/src/main/resources/config/application-dev.yaml View File

@@ -1,64 +0,0 @@
smtweb:
machine-id: 1
file:
local-path: /data/files/
host: http://127.0.0.1
url: http://127.0.0.1:8888/files/
db:
default:
rule:
prefix: _smt_
replace: smt_
server:
port: 8888
servlet:
context-path: /
feign:
hystrix:
enabled: false
logging:
level:
root: INFO
cc.smtweb: DEBUG
spring:
# 设置服务名
application:
name: smtweb_user
main:
allow-bean-definition-overriding: true
banner-mode: console
mvc:
static-path-pattern: /static/**
redis:
host: 127.0.0.1
port: 6379
password:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/smt_user?useUnicode=true&characterEncoding=utf-8&useTimezone=true&serverTimezone=CTT&allowMultiQueries=true
username: root
password: 1681860
# 连接池配置
hikari:
pool-name: HikariPool
minimum-idle: 10
maximum-pool-size: 100
connection-timeout: 60000
idle-timeout: 600000
max-lifetime: 1800000
servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000
profiles:
include: role
cache:
type: caffeine
cache-names:
- core
caffeine:
spec: maximumSize=1024,expireAfterWrite=2h





+ 0
- 35
smtweb-framework/sw-framework-auth/src/main/resources/config/application-prod.yaml View File

@@ -1,35 +0,0 @@
sme:
machine-id: 1
file-local-path: /data/files/smart/
file-host: http://auth.smtweb.cc
file-url: ${sme.file-host}:${server.port}${server.servlet.context-path}/${sme.file-local-path}
server:
port: 10001
servlet:
context-path: /
logging:
level:
smtweb: DEBUG

spring:
main:
allow-bean-definition-overriding: true
mvc:
static-path-pattern: /static/**
redis:
host: 127.0.0.1
port: 6379
datasource:
user:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/smt_user?useUnicode=true&characterEncoding=utf-8&useTimezone=true&serverTimezone=CTT&allowMultiQueries=true
username: smt
password: smt_123456

servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000




+ 0
- 3
smtweb-framework/sw-framework-auth/src/main/resources/config/application.yaml View File

@@ -1,3 +0,0 @@
spring:
profiles:
active: dev

+ 0
- 2
smtweb-framework/sw-framework-auth/target/classes/META-INF/spring.factories View File

@@ -1,2 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cc.smtweb.framework.auth.spring.AuthAutoConfiguration

BIN
smtweb-framework/sw-framework-auth/target/classes/auth/courier_new_34_19.png View File

Before After
Width: 19  |  Height: 2346  |  Size: 2.4 KiB

+ 0
- 64
smtweb-framework/sw-framework-auth/target/classes/config/application-dev.yaml View File

@@ -1,64 +0,0 @@
smtweb:
machine-id: 1
file:
local-path: /data/files/
host: http://127.0.0.1
url: http://127.0.0.1:8888/files/
db:
default:
rule:
prefix: _smt_
replace: smt_
server:
port: 8888
servlet:
context-path: /
feign:
hystrix:
enabled: false
logging:
level:
root: INFO
cc.smtweb: DEBUG
spring:
# 设置服务名
application:
name: smtweb_user
main:
allow-bean-definition-overriding: true
banner-mode: console
mvc:
static-path-pattern: /static/**
redis:
host: 127.0.0.1
port: 6379
password:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/smt_user?useUnicode=true&characterEncoding=utf-8&useTimezone=true&serverTimezone=CTT&allowMultiQueries=true
username: root
password: 1681860
# 连接池配置
hikari:
pool-name: HikariPool
minimum-idle: 10
maximum-pool-size: 100
connection-timeout: 60000
idle-timeout: 600000
max-lifetime: 1800000
servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000
profiles:
include: role
cache:
type: caffeine
cache-names:
- core
caffeine:
spec: maximumSize=1024,expireAfterWrite=2h





+ 0
- 35
smtweb-framework/sw-framework-auth/target/classes/config/application-prod.yaml View File

@@ -1,35 +0,0 @@
sme:
machine-id: 1
file-local-path: /data/files/smart/
file-host: http://auth.smtweb.cc
file-url: ${sme.file-host}:${server.port}${server.servlet.context-path}/${sme.file-local-path}
server:
port: 10001
servlet:
context-path: /
logging:
level:
smtweb: DEBUG

spring:
main:
allow-bean-definition-overriding: true
mvc:
static-path-pattern: /static/**
redis:
host: 127.0.0.1
port: 6379
datasource:
user:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/smt_user?useUnicode=true&characterEncoding=utf-8&useTimezone=true&serverTimezone=CTT&allowMultiQueries=true
username: smt
password: smt_123456

servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000




+ 0
- 3
smtweb-framework/sw-framework-auth/target/classes/config/application.yaml View File

@@ -1,3 +0,0 @@
spring:
profiles:
active: dev

+ 0
- 5
smtweb-framework/sw-framework-auth/target/maven-archiver/pom.properties View File

@@ -1,5 +0,0 @@
#Generated by Apache Maven
#Tue Nov 02 19:04:59 CST 2021
version=2.1.0-SNAPSHOT
groupId=cc.smtweb
artifactId=sw-framework-auth

+ 0
- 0
smtweb-framework/sw-framework-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst View File


+ 0
- 9
smtweb-framework/sw-framework-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst View File

@@ -1,9 +0,0 @@
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\web\entity\LoginAckVO.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\web\entity\UserPO.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\spring\cache\RealmCache.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\AuthApplication.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\web\entity\MenuPO.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\web\entity\LoginVO.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\captcha\ImageMaker.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\spring\AuthAutoConfiguration.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-auth\src\main\java\cc\smtweb\framework\auth\web\service\AuthService.java

+ 0
- 5
smtweb-framework/sw-framework-core/target/maven-archiver/pom.properties View File

@@ -1,5 +0,0 @@
#Generated by Apache Maven
#Tue Nov 02 19:04:55 CST 2021
version=2.1.0-SNAPSHOT
groupId=cc.smtweb
artifactId=sw-framework-core

+ 0
- 1
smtweb-framework/sw-framework-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst View File

@@ -1 +0,0 @@
cc\smtweb\framework\core\db\cache\DbCacheList$IdName.class

+ 256
- 208
smtweb-framework/sw-framework-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst View File

@@ -1,208 +1,256 @@
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\dao\EntityColumn.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\EntityCache.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\UnknownAccountException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\session\SessionUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwColumn.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\AbstractTwoKeyCache.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\sync\SingleExecutorSingleWaiter.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\JdbcEngine.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\IEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\CoreApplication.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\UpdateSqlBuilder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\config\WebMvcConfig.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimerTrigger.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\NonConcurrentTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\cache\CachedListPart.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\dao\EntityColumnForeign.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlBuilder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\ControllerAccess.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\body\StringBodyEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwPerm.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\SimpleJob.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\FixedRateTrigger.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\DateEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\ClassParser.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\session\SessionManager.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\OneTimeTrigger.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\ISwService.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\IRealmLoader.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\MapUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\JdbcTrans.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\BizException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\IBeanContext.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\LocalJobExecutor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\systask\SysTaskManager.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\BindParamException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwBean.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\ShortEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\AuthenticationException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\redis\config\RedisConfig.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\FixedDelayTrigger.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\CacheEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\HttpServletResponseEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\NullSerializer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\CacheItem.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SelectSqlBuilder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\interceptor\AbstractPermInterceptor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\CoreAutoConfiguration.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\SwMap.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlJoinTable.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\UserSessionEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\ISchedulerWakeup.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\DeleteSqlBuilder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimerThread.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\path\PathParamEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\EntityDao.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\redis\kryo\KryoTool.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\SchedulerManager.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ModelTimeoutTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\CronTimerTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\session\UserSessionArgumentResolver.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwService.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwConstruct.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\VariableUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\TransSql.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\IntegerEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwHeaderParam.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\MethodAccess.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\redis\RedisManager.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\FieldAccess.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\EntityTree.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\MethodParamAccess.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\BindBeanException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\SchedulerTaskManager.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\TimestampDeserializer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\CacheException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\RedisJobExecutor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\session\UserSession.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\DefaultPageController.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\NamedRunnable.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\AbstractLongKeyCache.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\AbstractRequestEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\CacheEngine.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\AbstractSelectSqlBuilder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\RealTimeTimer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\CacheSysTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\SwException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\SimpleJobQueue.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\DbEngine.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\systask\TaskStartEvent.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\ExceptionMessage.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\BeanManager.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\NullEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\DbCache.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\SchedulerMethodAccess.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\TimeEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\AbstractCache.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\IpAddrUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\CommonUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\AbstractTimer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\sync\Synchronizer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\cache\DbCacheMap.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\GroupJobQueue.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\LongEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\DateUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\config\SettingsEnvironmentPostProcessor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlFieldValue.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\BooleanEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\redis\RedisConnection.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\systask\WebStartedEvent.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\ByteEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\sync\AsyncJobSink.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\JsonUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\service\PermChecker.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\redis\RedisSysTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\MethodParser.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\FixedTimerTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwColumnForeign.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\WebDataBinder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\AbstractUpdateSqlBuilder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\SimulationTimer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\CronTimerTrigger.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\SchedulerPoint.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ModelTimeoutClient.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\NumberTimeUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\CacheManager.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\MethodAccessManager.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwDestroy.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwPathParam.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\IdGenerator.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\config\CacheEntity.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\EntityTreeUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\AbstractJobQueue.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwScheduling.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\interceptor\PermInterceptor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\systask\ISysTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ScheduledNamedRunnable.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\TimeSerializer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\SwIpAddrEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\AbstractStringKeyCache.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\DateSerializer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\body\AbstractBodyEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\body\BeanBodyEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\config\CacheProperties.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\MapPropertyRowMapper.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\LongSerializer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\PackageScanner.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\config\DbEngineConfiguration.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\InsertSqlBuilder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\AbstractParameterEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\DateDeserializer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\SingletonFieldAccess.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\ForbiddenException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\TimestampEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlWhereValue.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\ISwCache.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\AuthorizationException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TaskQueue.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwParam.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\ApiController.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\NumberUtil.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\redis\RedisBroadcastEvent.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\BeanTypeEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\HttpServletRequestEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\CharEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\IBeanAccess.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\SystemTimeSource.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ScheduledRunnable.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\interceptor\AuthorizationInterceptor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\cache\CachedMap.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\AbstractContextEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\LongDeserializer.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimeoutTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\cache\ColumnField.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\BeanContext.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\redis\RedisPooledObjectFactory.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\service\PermCheckItem.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\AbstractJobExecutor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\DoubleEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwTable.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\JsonParseException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\cache\DbCacheList.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\CoreApplicationStartedListener.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\StringEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\DirectSelectSqlBuilder.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\ParamEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\AbstractNumberEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\GroupJob.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\config\GlobalExceptionHandler.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\DbException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimeSource.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlJoinField.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\AbstractJob.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\SimulationTimeSource.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\R.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\BeanEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\config\ControllerConfig.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\ApplicationScanner.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\AbstractTimerTrigger.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimerTask.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\config\RuleProperties.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\CronExpression.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\dao\AbstractEntityDao.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\UnauthenticatedException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\BindFieldAccess.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ExecutionRejectedException.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\FloatEditor.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\SwIpAddr.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwBody.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwParam.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\DirectSelectSqlBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ExecutionRejectedException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\AbstractJob.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\FixedTimerTask.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\systask\TaskStartEvent.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\variable\ICalcVar.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\AbstractContextEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\InsertSqlBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\AbstractTreeHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwAction.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\AuthorizationException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\DateDeserializer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwService.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\TimestampEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\config\YamlPropertyLoaderFactory.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\SchedulerPoint.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\session\SessionUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\common\IntEnum.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\CoreApplicationStartedListener.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\vo\ModelIndex.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\DateSerializer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\MapPropertyRowMapper.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\vo\ModelCatalog.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\MethodAccessManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\BeanManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\DefaultComboHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\BooleanEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\FloatEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\SchedulerTaskManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\redis\RedisBroadcastEvent.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\PackageScanner.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\BaseBeanPropertyRowMapper.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\IDataProvider.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\DefaultPageController.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\AbstractCompProvider.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\config\GlobalExceptionHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwPerm.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\LongDeserializer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\AbstractSaveHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\common\AbstractEnum.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\common\SwMap.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\vo\ModelTable.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\HttpServletRequestEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\DateEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\list\FooterField.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\SchedulerMethodAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\UnauthenticatedException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\redis\RedisPooledObjectFactory.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\NullEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\interceptor\PermInterceptor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimerTrigger.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\StringEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlJoinField.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\dao\EntityColumnForeign.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\ExceptionMessage.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwAttr.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\EntityDao.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\SessionCacheFactory.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\BeanTypeEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\vo\ModelLinkName.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\LongSerializer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\impl\DefaultDatabaseInfoImpl.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\AbstractEntityCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\MethodParser.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\SwException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\DbException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\AbsDbWorker.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\cache\EntityCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\SpringUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\UrlMaker.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\AbstractDelHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\IBeanAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\impl\IDatabaseInfo.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\attr\AbstractAttrEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\GroupJobQueue.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\session\SessionManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\impl\DatabaseUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\sync\Synchronizer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\session\UserSession.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\IDbWorker.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\BeanContext.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\IScanActionBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\AbstractHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\IEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\ForbiddenException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\AbstractLoadHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\ShortEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\LongEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\DefaultSaveHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\WebDataBinder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\BaseBeanSerializer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\TimeSerializer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\SqlNamedPara.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\AbstractCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\ParamEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\BeanEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\BindParamException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\DefaultListHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\ApiController.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\redis\RedisConnection.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwBody.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwHeaderParam.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\AbstractSelectSqlBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ScheduledNamedRunnable.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\EntityHelper.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwDestroy.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\config\DbEngineConfiguration.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\SwIpAddrEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\SimulationTimer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\ScanContext.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwConstruct.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\SingletonFieldAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\ClassParser.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\vo\ModelCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\config\SettingsEnvironmentPostProcessor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\sync\AsyncJobSink.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\common\StrEnum.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\ApiConfigBean.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\AbstractJobExecutor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\sync\SingleExecutorSingleWaiter.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\body\StringBodyEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\FixedDelayTrigger.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimerTask.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\common\SwIpAddr.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\ByteEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\body\SwMapBodyEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\systask\WebStartedEvent.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\SqlPara.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\AuthenticationException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\DateUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\SqlUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\vo\ModelField.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\impl\BaseBean.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\SchedulerManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimerThread.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\CacheEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\redis\RedisManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\VariableUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwColumnForeign.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\CharEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwColumn.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\interceptor\AbstractPermInterceptor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\TreeHelper.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\ISchedulerWakeup.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\CronTimerTask.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\BindFieldAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\SystemTimeSource.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\systask\ISysTask.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\service\PermChecker.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\UpdateSqlBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\session\UserSessionArgumentResolver.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwScheduling.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\AbstractTimerTrigger.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\cache\ModelDatabaseCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\bean\UserSessionEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\impl\UtilTime.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\RealTimeTimer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\IdGenerator.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlWhereValue.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\DeleteSqlBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\IBeanContext.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\service\PermCheckItem.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\JsonUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\LocalJobExecutor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\GroupJob.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\TimestampDeserializer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SelectSqlBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\vo\ModelDatabase.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\kryo\KryoTool.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\DefaultLoadHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\SessionCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\DefaultProvider.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\AbstractNumberEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\JsonParseException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\IActionManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\CommUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwTable.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\cache\ModelTableCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\AbstractRequestEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\NumberUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\dao\AbstractEntityDao.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\AbstractParameterEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\DefaultDelHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimeoutTask.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\IntegerEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\MapUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\CoreApplication.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\vo\ModelProject.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\CacheManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\AbstractCompService.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\FieldAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\body\BeanUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\common\R.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\AbstractListHandler.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\SimpleJob.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\common\SwEnum.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\DbEngine.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\redis\RedisSysTask.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\IWorker.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\jackson\NullSerializer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\FixedRateTrigger.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\AbstractUpdateSqlBuilder.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\variable\SwVariable.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\AbstractJobQueue.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\JdbcEngine.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\AbstractTimer.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\OneTimeTrigger.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\SimpleJobQueue.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\impl\DefaultEntity.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwBean.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\annotation\SwPathParam.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\NonConcurrentTask.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\ApplicationScanner.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TaskQueue.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\TimeSource.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlJoinTable.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\CronTimerTrigger.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\SwMapPropertyRowMapper.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\config\WebMvcConfig.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\exception\UnknownAccountException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ScheduledRunnable.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\common\SwConsts.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\ISwCache.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\MethodAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\scan\IScanAction.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\scheduler\job\RedisJobExecutor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\DoubleEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\variable\SwVariableFactory.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\IMethodAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\interceptor\AuthorizationInterceptor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\util\IpAddrUtil.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\CronExpression.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ModelTimeoutTask.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\ModelTimeoutClient.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\jdbc\JdbcTrans.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\config\ControllerConfig.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\param\TimeEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\SimulationTimeSource.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\BindBeanException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\CoreAutoConfiguration.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\path\PathParamEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\sqlbuilder\SqlFieldValue.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\systask\SysTaskManager.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\db\dao\EntityColumn.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\realm\IRealmLoader.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\service\SwListData.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\attr\BeanAttrEditor.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\ControllerAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\exception\BizException.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\com\serotonin\timer\NamedRunnable.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\access\MethodParamAccess.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\cache\redis\config\RedisConfig.java
E:\jujia\git\6.0\smtweb2\smtweb-framework\sw-framework-core\src\main\java\cc\smtweb\framework\core\mvc\controller\binder\body\BeanBodyEditor.java

+ 0
- 0
smtweb-framework/sw-framework-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst View File


+ 0
- 3
smtweb-framework/sw-framework-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst View File

@@ -1,3 +0,0 @@
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\test\java\cc\smtweb\framework\test\JsonTest.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\test\java\cc\smtweb\framework\test\SqlBuilderTest.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-core\src\test\java\cc\smtweb\framework\test\DaoTransTest.java

+ 0
- 94
smtweb-framework/sw-framework-file/pom.xml View File

@@ -1,94 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-file</artifactId>
<version>2.2.0-SNAPSHOT</version>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<modelVersion>4.0.0</modelVersion>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-core</artifactId>
<version>2.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>[0.4, 0.5)</version>
</dependency>
<dependency>
<groupId>org.jclarion</groupId>
<artifactId>image4j</artifactId>
<version>0.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>

<build>
<!-- <finalName>user</finalName>-->
<plugins>
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-source-plugin</artifactId>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <id>attach-sources</id>-->
<!-- <phase>verify</phase>-->
<!-- <goals>-->
<!-- <goal>jar-no-fork</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- 用于生成jar包的plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<excludes>
<exclude>config/*.yaml</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://47.92.149.153:7000/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://47.92.149.153:7000/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>

</project>

+ 0
- 19
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/FileHelper.java View File

@@ -1,19 +0,0 @@
package cc.smtweb.framework.file;

import cc.smtweb.framework.core.db.jdbc.JdbcEngine;

/**
* 文件服务帮助类
* @author admin
*/
public class FileHelper {
private FileHelper() {
}
/**
* 业务已经采用文件,文件服务需要删除文件记录,避免定时任务清除文件
* @param fileId 文件服务上传时提供的文件ID
*/
public static void commit(JdbcEngine dbEngine, long fileId) {

}
}

+ 0
- 134
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/FilePathGenerator.java View File

@@ -1,134 +0,0 @@
package cc.smtweb.framework.file;

import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;

import cc.smtweb.framework.file.util.FileDynPath;
import cc.smtweb.framework.file.util.FileFixPath;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.apache.tika.mime.MimeType;
import org.apache.tika.mime.MimeTypeException;
import org.apache.tika.mime.MimeTypes;
import org.springframework.web.multipart.MultipartFile;
import cc.smtweb.framework.core.db.jdbc.IdGenerator;

/**
* 文件名生成规则 subDir/[yyyymm]/[d]/[hex(fileid)]_[hex(rand)].[fileExt] 如果文件是图片格式,会生成缩略图,文件名会直接添加.thumb.jpg后缀 规则参数 yyyymm:
* 时间的年月,固定6位字符。如200505 d: 时间的日期,值范围1~31。如5 fileid: 上传文件的ID,hex(int64) rand: 防盗链随机数,hex(int32)。 fileExt: 文件扩展名。
*/
@Slf4j
public class FilePathGenerator {

public static final String THUMB_FILE_EXT = ".thumb.jpg";
// 文件时间是否作为PK
private SimpleDateFormat sdf;
@Getter
private String rootPath;
private Map<String, FileFixPath> fileFxPathMap = new HashMap<>();
private Map<String, FileDynPath> fileDynPathMap = new HashMap<>();
private String fileUrl;
private IdGenerator idGenerator;

public FilePathGenerator(String rootPath, String fileUrl, IdGenerator idGenerator) {
this.fileUrl = fixEnd(fileUrl);
this.idGenerator = idGenerator;
this.rootPath = fixEnd(rootPath);

sdf = new SimpleDateFormat("yyyyMM/dd/");
}

private static String fixEnd(String path) {
if (path.endsWith("/") || path.endsWith("\\")) {
return path;
} else {
return path + "/";
}
}

/**
* 生成文件路径,根据日期分目录存储
*
* @param subPath 子目录,区分不同应用的文件
* @param originalFileName 原始的文件名,用于提取扩展名用
* @return 文件路径信息类
*/
public FilePathInfo make(String subPath, String originalFileName) {
return make(subPath, originalFileName, null, false);
}

public FilePathInfo make(String subPath, String originalFileName, boolean keepName) {
return make(subPath, originalFileName, null, keepName);
}
/**
* 生成文件路径,根据日期分目录存储
*
* @param subPath 子目录,区分不同应用的文件
* @param multipartFile 上传文件流,用于提取扩展名用
* @return 文件路径信息类
*/
public FilePathInfo make(String subPath, MultipartFile multipartFile) {
return make(subPath, multipartFile.getOriginalFilename(), multipartFile.getContentType(), false);
}

private synchronized FilePathInfo make(String subPath, String originFileName, String contentType, boolean keepName) {
if (keepName) {
FileFixPath filePathSub = fileFxPathMap.get(subPath);
if (filePathSub == null) {
filePathSub = new FileFixPath(this.rootPath, subPath);
fileFxPathMap.put(subPath, filePathSub);
}

return filePathSub.makeDatePath(this.idGenerator.nextId(), originFileName);
} else {
FileDynPath filePathSub = fileDynPathMap.get(subPath);
if (filePathSub == null) {
filePathSub = new FileDynPath(this.rootPath, subPath, sdf);
fileDynPathMap.put(subPath, filePathSub);
}

return filePathSub.makeDatePath(this.idGenerator.nextId(), ext(originFileName, contentType));
}
}

private static String ext(String filename, String contentType) {
int index = filename.lastIndexOf(".");

if (index == -1) {
if (contentType != null) {
MimeTypes allTypes = MimeTypes.getDefaultMimeTypes();
try {
MimeType jpeg = allTypes.forName(contentType);
return jpeg.getExtension();
} catch (MimeTypeException e) {
log.error(contentType, e);
}
}

return "";
}

return filename.substring(index);
}

// 根据数据库存储文件路径获取URL
public String getFileUrl(FilePathInfo filePathInfo) {
return this.fileUrl + filePathInfo.getMysqlFilePath();
}

// 根据数据库存储文件路径获取URL
public String getFileUrl(String mysqlFilePath) {
return this.fileUrl + mysqlFilePath;
}

// 根据数据库存储文件路径获取磁盘存储路径
public String getFileDiskPath(String mysqlFilePath) {
return this.rootPath + mysqlFilePath;
}

// 获取下载路径前缀
public String getDownloadUrl() {
return this.fileUrl;
}
}

+ 0
- 48
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/FilePathInfo.java View File

@@ -1,48 +0,0 @@
package cc.smtweb.framework.file;

import lombok.Getter;


/**
* 数据库需要存储
* fileId, fileTime, subPath + fileName
*/
@Getter
public class FilePathInfo {
// 文件ID
private long fileId;
// 文件创建时间,数据库需要存储
private long fileTime;
// 文件子路径
private String subPath;
// 文件名
private String fileName;
// 本地根路径
private String rootPath;

public FilePathInfo(String rootPath, String subPath, long fileTime, String fileName, long fileId) {
this.rootPath = rootPath;
this.subPath = subPath;
this.fileTime = fileTime;
this.fileName = fileName;
this.fileId = fileId;
}

/**
* 获取本地需要存储的文件全路径
*/
public String getFullFileName() {
return getDiskFilePath();
}

public String getDiskFilePath() {
return this.rootPath + subPath + fileName;
}

/**
* 获取数据库存储需要的文件全路径
*/
public String getMysqlFilePath() {
return subPath + fileName;
}
}

+ 0
- 15
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/FileApplication.java View File

@@ -1,15 +0,0 @@
package cc.smtweb.framework.file.spring;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
* @author kevin
*/
@SpringBootApplication
public class
FileApplication {
public static void main(String[] args) {
SpringApplication.run(FileApplication.class, args);
}
}

+ 0
- 21
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/FileAutoConfiguration.java View File

@@ -1,21 +0,0 @@
package cc.smtweb.framework.file.spring;

import cc.smtweb.framework.core.mvc.config.ControllerConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
* @author kevin
*/
@Configuration
@ComponentScan
public class FileAutoConfiguration {

/** 配置自定义service扫描路径 {module}/{service}/{method} */
@Bean
public ControllerConfig fileControllerConfig() {
return new ControllerConfig("file", "cc.smtweb.framework.file.web");
}

}

+ 0
- 26
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/config/FileConfig.java View File

@@ -1,26 +0,0 @@
package cc.smtweb.framework.file.spring.config;

import cc.smtweb.framework.file.FilePathGenerator;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import cc.smtweb.framework.core.db.jdbc.IdGenerator;

/**
* 微服务框架封装自动配置类
*/
@Configuration
public class FileConfig {
// 文件本地存储配置
@Value("${smtweb.file.local-path}")
private String fileLocalPath;

// 文件请求URL路径配置 http://127.0.0.1:${server.port}/${server.servlet.context-path}/files/
@Value("${smtweb.file.url}")
private String fileUrl;

@Bean
public FilePathGenerator filePathGenerator(IdGenerator idGenerator) {
return new FilePathGenerator(fileLocalPath, fileUrl, idGenerator);
}
}

+ 0
- 185
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileDownloadController.java View File

@@ -1,185 +0,0 @@
package cc.smtweb.framework.file.spring.controller;

import cc.smtweb.framework.core.cache.redis.RedisManager;
import cc.smtweb.framework.core.session.SessionUtil;
import cc.smtweb.framework.file.FilePathGenerator;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.util.concurrent.TimeUnit;

@RestController
public class FileDownloadController {
private static final MediaType APPLICATION_JAVASCRIPT = new MediaType("application", "javascript");
@Value("${smtweb.static.local-path:}")
private String staticLocalPath;

@Autowired
private FilePathGenerator filePathGenerator;

@Autowired
private RedisManager redisManager;

/** path方式下载文件 */
@GetMapping("/fs/files/**")
public ResponseEntity<InputStreamResource> files(@RequestParam(value="name", required=false) String name,
@RequestParam(value="noCache", required=false) Boolean noCache,
HttpServletRequest request
) throws FileNotFoundException {
String filePath = request.getRequestURI().substring(10);
return download(filePath, name, noCache, request);
}

/** 参数方式下载文件 */
@GetMapping("/fs/download")
public ResponseEntity<InputStreamResource> download(@RequestParam(value="path") String path,
@RequestParam(value="name", required=false) String name,
@RequestParam(value="noCache", required=false) Boolean noCache,
HttpServletRequest request
) throws FileNotFoundException {
SessionUtil.checkSession(request, redisManager);

File file = new File(filePathGenerator.getFileDiskPath(path));

if (!file.exists()) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
}

if (StringUtils.isBlank(name)) {
name = file.getName();
}

HttpHeaders headers = new HttpHeaders();
if (Boolean.TRUE.equals(noCache)) {
headers.setCacheControl("no-cache, no-store, must-revalidate");
headers.setPragma("no-cache");
headers.setExpires(0);
}

headers.setLastModified(file.lastModified());
headers.add("Content-Disposition",
String.format("attachment; filename=\"%s\"", new String(name.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1)));

return ResponseEntity.ok()
.headers(headers)
.contentLength(file.length())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(new InputStreamResource(new FileInputStream(file)));
}

/** path方式读取静态目录文件 */
@GetMapping("/fs/static/**")
public ResponseEntity<InputStreamResource> resource(@RequestParam(value="default", required=false) String defaultPath,
@RequestParam(value="noCache", required=false) Boolean noCache,
@RequestHeader(value="If-Modified-Since", required = false) String ifModifiedSince,
HttpServletRequest request) throws FileNotFoundException {
String filePath = request.getRequestURI().substring(11);

HttpHeaders headers = new HttpHeaders();

if (Boolean.TRUE.equals(noCache)) {
headers.setCacheControl("no-cache, no-store, must-revalidate");
headers.setPragma("no-cache");
headers.setExpires(0);
} else {
// 暂时缓存1天
headers.setCacheControl(CacheControl.maxAge(1, TimeUnit.DAYS));
headers.setExpires(Instant.ofEpochMilli(System.currentTimeMillis() + DateUtils.MILLIS_PER_DAY));
}

String name = getFileName(filePath);
headers.add("Content-Disposition",
String.format("attachment; filename=\"%s\"", new String(name.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1)));

MediaType contentType = getContentType(filePath);
// 先找文件
if (StringUtils.isNotBlank(staticLocalPath)) {
File file = new File(staticLocalPath + filePath);

if (file.exists()) {
headers.setLastModified(file.lastModified());

return ResponseEntity.ok()
.headers(headers)
.contentLength(file.length())
.contentType(contentType)
.body(new InputStreamResource(new FileInputStream(file)));
}
}

// 再找资源目录
InputStream inputStream = getClass().getResourceAsStream("/static/" + filePath);
if (inputStream != null) {
return buildResource(inputStream, contentType, headers);
} else if (StringUtils.isNotBlank(defaultPath)) {
inputStream = getClass().getResourceAsStream("/static/" + defaultPath);
if (inputStream != null) {
return buildResource(inputStream, contentType, headers);
}
}

return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
}

private String getFileName(String filePath) {
int pos = filePath.lastIndexOf("/");
if (pos >= 0) {
return filePath.substring(pos + 1);
}

return filePath;
}

private ResponseEntity<InputStreamResource> buildResource(InputStream inputStream, MediaType contentType, HttpHeaders headers) {
return ResponseEntity.ok()
.headers(headers)
// .contentLength(file.length())
.contentType(contentType)
.body(new InputStreamResource(inputStream));
}

private static MediaType getContentType(String filePath) {
int pos = filePath.lastIndexOf(".");

if (pos >= 0) {
String fileExt = filePath.substring(pos + 1).toLowerCase();
switch (fileExt) {
case "htm":
case "html":
case "css":
return MediaType.TEXT_HTML;
case "js":
return APPLICATION_JAVASCRIPT;
case "txt":
return MediaType.TEXT_PLAIN;
case "pdf":
return MediaType.APPLICATION_PDF;
case "xml":
return MediaType.TEXT_XML;
case "gif":
return MediaType.IMAGE_GIF;
case "jpeg":
case "jpg":
return MediaType.IMAGE_JPEG;
case "png":
return MediaType.IMAGE_PNG;
default:
return MediaType.APPLICATION_OCTET_STREAM;
}
}

return MediaType.APPLICATION_OCTET_STREAM;
}
}

+ 0
- 157
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/controller/FileUploadController.java View File

@@ -1,157 +0,0 @@
package cc.smtweb.framework.file.spring.controller;

import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.db.DbEngine;
import cc.smtweb.framework.core.cache.redis.RedisManager;
import cc.smtweb.framework.core.session.SessionUtil;
import cc.smtweb.framework.file.FilePathGenerator;
import cc.smtweb.framework.file.FilePathInfo;
import cc.smtweb.framework.file.spring.dao.ImageAttachDao;
import cc.smtweb.framework.file.spring.entity.FileDataVO;
import cc.smtweb.framework.file.spring.entity.UploadDataVO;
import cc.smtweb.framework.file.util.MemMultipartFile;
import cc.smtweb.framework.file.util.ThumbImage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;

@RestController
public class FileUploadController {
@Autowired
private FilePathGenerator filePathGenerator;

@Autowired
private DbEngine dbEngine;

@Autowired
private RedisManager redisManager;

@Autowired
private ImageAttachDao imageAttachDao;

// TODO: 权限处理,临时文件处理
@PostMapping("/fs/upload/{path}")
public R upload(@RequestParam("file") MultipartFile file, @PathVariable("path") String path,
@RequestParam(value="thumb", required=false) String thumb,
@RequestParam(value="thumbHeight", required=false) Integer thumbHeight,
@RequestParam(value="commit", required=false) Boolean insert,
@RequestParam(value="keepName", required=false) Boolean keepName,
HttpServletRequest request
) {
SessionUtil.checkSession(request, redisManager);
return uploadFile(path, file, ThumbImage.type(thumb), thumbHeight, insert, keepName);
}

@PostMapping("/fs/uploadImage/{path}")
public R upload(@RequestBody FileDataVO data, @PathVariable("path") String path,
@RequestParam(value="thumb", required=false) String thumb,
@RequestParam(value="thumbHeight", required=false) Integer thumbHeight,
@RequestParam(value="commit", required=false) Boolean insert,
HttpServletRequest request) {
SessionUtil.checkSession(request, redisManager);

MultipartFile file = MemMultipartFile.build(data.getData());
if (file == null) {
return R.error("数据内容格式有错");
}

return uploadFile(path, file, ThumbImage.type(thumb), thumbHeight, insert, false);
}

@PostMapping("/fs/uploadAvatar/{path}")
public R uploadAvatar(@RequestParam("file") MultipartFile file, @PathVariable("path") String path,
@RequestParam(value="size", required=false) Integer size,
@RequestParam(value="commit", required=false) Boolean insert,
@RequestParam(value="keepName", required=false) Boolean keepName,
HttpServletRequest request) {
SessionUtil.checkSession(request, redisManager);
return uploadFile(path, file, ThumbImage.TYPE_AVATAR, size, insert, keepName);
}

// 保存文件和插入数据库数据
@PostMapping("/fs/commit/{path}")
public R commit(@RequestParam("file") MultipartFile file, @PathVariable("path") String path,
@RequestParam(value="thumb", required=false) String thumb,
@RequestParam(value="thumbHeight", required=false) Integer thumbHeight,
@RequestParam(value="keepName", required=false) Boolean keepName,
HttpServletRequest request) {
SessionUtil.checkSession(request, redisManager);
return uploadFile(path, file, ThumbImage.type(thumb), thumbHeight, true, keepName);
}

private R uploadFile(String path, MultipartFile file, int type, Integer size, Boolean insert, Boolean keepName) {
//获取上传时的文件名
String fileName = file.getOriginalFilename();

//判断文件是否为空
if(file.isEmpty() && fileName != null){
return R.error("文件为空");
}

// 判断保持文件名不变
FilePathInfo fileInfo = filePathGenerator.make(path, fileName, Boolean.TRUE.equals(keepName));

// 注意是路径+文件名
File targetFile = new File(fileInfo.getFullFileName());

try(InputStream inputStream = file.getInputStream(); OutputStream outputStream = new FileOutputStream(targetFile)) {
// 最后使用资源访问器FileCopyUtils的copy方法拷贝文件
FileCopyUtils.copy(inputStream, outputStream);
} catch (IOException e) {
//出现异常,则告诉页面失败
return R.error("上传失败", e);
}

// 生成缩略图
// String contentType = file.getContentType();
UploadDataVO data = new UploadDataVO();

data.setPath(fileInfo.getMysqlFilePath());
data.setName(fileName);
data.setSize(file.getSize());
data.setContentType(file.getContentType());
data.setUrl(filePathGenerator.getFileUrl(fileInfo.getMysqlFilePath()));

if (type == ThumbImage.TYPE_THUMB || type == ThumbImage.TYPE_AVATAR) {
try {
imageAttachDao.makeThumb(data, type == ThumbImage.TYPE_THUMB, targetFile, size);
} catch (IOException e) {
return R.error("生成缩略图失败", e);
}
}

if (Boolean.TRUE.equals(insert)) {
Long id = dbEngine.nextId();
Timestamp now = new Timestamp(System.currentTimeMillis());
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");

dbEngine.update("insert into sw_user.sys_attach(attach_id, attach_name, attach_path, attach_content_type, attach_size, attach_create_time) values(?, ?, ?, ?, ?, ?)",
id, data.getName(), data.getPath(), data.getContentType(), data.getSize(), sdf.format(now));

data.setId(id);
}

return R.success(data);
}

// TODO: 修改为安全的后台删除方式
@PostMapping("/fs/remove")
public R remove(@RequestParam(value="filePath") String filePath, HttpServletRequest request) {
SessionUtil.checkSession(request, redisManager);

File file = new File(filePathGenerator.getFileDiskPath(filePath));
if (file.exists() && file.isFile()) {
if (file.delete()) {
R.success(filePath);
}
}

return R.success();
}
}

+ 0
- 63
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/dao/ImageAttachDao.java View File

@@ -1,63 +0,0 @@
package cc.smtweb.framework.file.spring.dao;

import cc.smtweb.framework.file.spring.entity.UploadDataVO;
import cc.smtweb.framework.file.util.ThumbImage;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import java.io.File;
import java.io.IOException;

@Service
public class ImageAttachDao {
public static final String APPLICATION_OCTET_STREAM = "application/octet-stream";

public void makeThumb(UploadDataVO data, boolean isThumb, File targetFile, Integer size) throws IOException {
boolean imageType = false;
String fileName = data.getName();
String contentType = data.getContentType();

if (contentType.startsWith("image/")) {
imageType = true;
} else if (contentType.equals(APPLICATION_OCTET_STREAM)) {
String fileExt = fileName.substring(fileName.lastIndexOf("."));

if (StringUtils.isNotEmpty(fileExt)) {
switch (fileExt.toLowerCase()) {
case ".jpg":
case ".jpeg":
contentType = "image/jpg";
imageType = true;
break;
case ".gif":
contentType = "image/gif";
imageType = true;
break;
case ".png":
contentType = "image/png";
imageType = true;
break;
default:
break;
}

if (imageType) {
data.setContentType(contentType);
}
}
}

if (imageType) {
int thumbHeight = 80;
if (size != null) {
thumbHeight = (size > 500) ? 500 : size;
}

ThumbImage thumbImage = new ThumbImage();

thumbImage.makeThumb(isThumb, targetFile, thumbHeight);
data.setWidth(thumbImage.getImageWidth());
data.setHeight(thumbImage.getImageHeight());
}
}
}

+ 0
- 114
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/dao/SysAttachDao.java View File

@@ -1,114 +0,0 @@
package cc.smtweb.framework.file.spring.dao;

import cc.smtweb.framework.core.db.DbEngine;
import cc.smtweb.framework.file.FilePathGenerator;
import cc.smtweb.framework.file.web.entity.AttachPathPO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.yaml.snakeyaml.util.UriEncoder;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class SysAttachDao {
@Autowired
private FilePathGenerator filePathGenerator;

@Autowired
private DbEngine dbEngine;

/**
* 获取文件本地文件路径
*
* @param filePath 相对路径
* @return 本地文件全路径
*/
public String getDiskPath(String filePath) {
return filePathGenerator.getFileDiskPath(filePath);
}

/**
* 获取访问文件的URL地址
*
* @param filePath 文件相对路径
* @return 文件URL地址
*/
public String getFileUrl(String filePath) {
return filePathGenerator.getFileUrl(filePath);
}

/**
* 获取访问文件的URL地址
*
* @param filePath 文件相对路径
* @param filePath 文件名
* @return 文件URL地址
*/
public String getFileUrl(String filePath, String fileName) {
return "/fs/download?path=" + UriEncoder.encode(filePath) + "&name=" + UriEncoder.encode(fileName);
}

public AttachPathPO get(Long id) {
if (id != null) {
return dbEngine.queryEntity("select attach_id, attach_name, attach_path, attach_content_type, attach_size, attach_create_time from sw_user.sys_attach where attach_id=?",
AttachPathPO.class, id);
}

return null;
}

// 删除文件记录和文件
public void remove(Long fileId) {
// if (id != null) {
// return dbEngine.queryEntity("select attach_id, attach_name, attach_path, attach_content_type, attach_size, attach_create_time from sw_user.sys_attach where attach_id=?",
// AttachPathPO.class, id);
// }
//
// return null;
}

// 删除文件
public void remove(String filePath) {
// if (id != null) {
// return dbEngine.queryEntity("select attach_id, attach_name, attach_path, attach_content_type, attach_size, attach_create_time from sw_user.sys_attach where attach_id=?",
// AttachPathPO.class, id);
// }
//
// return null;
}

public List<AttachPathPO> list(Long[] ids) {
if (ids != null && ids.length > 0) {
return dbEngine.query("select attach_id, attach_name, attach_path, attach_content_type, attach_size, attach_create_time from sw_user.sys_attach where attach_id in( "
+ StringUtils.join(ids, ",") + ")",
AttachPathPO.class);
}

return null;
}

public Map<Long, AttachPathPO> map(Long[] ids) {
List<AttachPathPO> list = list(ids);
if (list != null && !list.isEmpty()) {
Map<Long, AttachPathPO> map = new HashMap<>(list.size());
list.forEach((item) -> map.put(item.getAttachId(), item));

return map;
}

return null;
}

// 保持文件,删除临时文件记录,避免被定时删除
public void retain(String filePath) {

}

// 保持文件,删除临时文件记录,避免被定时删除
public void retain(Long fileId) {

}
}

+ 0
- 8
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/entity/FileDataVO.java View File

@@ -1,8 +0,0 @@
package cc.smtweb.framework.file.spring.entity;

import lombok.Data;

@Data
public class FileDataVO {
private String data;
}

+ 0
- 15
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/spring/entity/UploadDataVO.java View File

@@ -1,15 +0,0 @@
package cc.smtweb.framework.file.spring.entity;

import lombok.Data;

@Data
public class UploadDataVO {
private Long id;
private Integer height;
private Integer width;
private long size;
private String path;
private String name;
private String contentType;
private String url;
}

+ 0
- 107
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/util/FileDynPath.java View File

@@ -1,107 +0,0 @@
package cc.smtweb.framework.file.util;

import cc.smtweb.framework.core.util.DateUtil;
import cc.smtweb.framework.file.FilePathInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateUtils;

import java.io.File;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Random;

/**
* 动态文件〈文件路径〉
*
* @author kevin
* @since 1.0.0
*/
@Slf4j
public class FileDynPath extends FileFixPath {
// 目录允许的最大文件数量,避免批量导入文件时文件太多
private static final int MAX_FILE_COUNT = 2000;
private static final int MAX_DIR_COUNT = 100000;
private long startTime;
private long endTime;
private final SimpleDateFormat sdf;
// 文件数量
private int fileCount;
// 目录子索引
private int pathIndex;

public FileDynPath(String rootPath, String typeDir, SimpleDateFormat sdf) {
super(rootPath, typeDir);
this.sdf = sdf;
}

/**
* 返回日期路径字符串
*/
@Override
public FilePathInfo makeDatePath(long fileId, String fileExt) {
long now = System.currentTimeMillis();
String fileName;

// 如果不在就需要重新创建子目录
if (now < startTime || now >= endTime) {
startTime = DateUtil.getTimesmorning(now);
endTime = startTime + DateUtils.MILLIS_PER_DAY;

this.path = this.typeDir + "/" + sdf.format(new Timestamp(now));
createFolder(rootPath + this.path);
}

// 如果文件数量太大就需要创建新子目录
while (this.fileCount >= MAX_FILE_COUNT) {
this.pathIndex++;
if(this.pathIndex > MAX_DIR_COUNT) {
throw new RuntimeException("dir is two many");
}

createFolder(rootPath + getSubPath());
}

Random random = new Random();
int randomId = random.nextInt(Integer.MAX_VALUE);

fileName = Long.toHexString(fileId) + "_" + Integer.toHexString(randomId) + fileExt;

return new FilePathInfo(rootPath, getSubPath(), now, fileName, fileId);
}

private String getSubPath() {
if (this.pathIndex > 0) {
return String.format("%s%02d/%04d", this.path, MAX_DIR_COUNT / 1000, this.pathIndex % 1000);
}

return this.path;
}

private boolean createFolder(String path) {
File file = new File(path);
if (file.exists()) {
if (!file.isDirectory()) {
return false;
}

File[] list = file.listFiles();
if (list != null) {
this.fileCount = list.length;
} else {
this.fileCount = 0;
}

return true;
}

if (!file.mkdirs()) {
log.error("unable to create folders {}.", rootPath + this.path);
return false;
}

log.debug("create folders {}.", file);
this.fileCount = 0;

return true;
}
}

+ 0
- 52
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/util/FileFixPath.java View File

@@ -1,52 +0,0 @@
package cc.smtweb.framework.file.util;

import cc.smtweb.framework.file.FilePathInfo;
import lombok.extern.slf4j.Slf4j;

import java.io.File;

/**
* 〈文件路径〉
*
* @author kevin
* @since 1.0.0
*/
@Slf4j
public class FileFixPath {
protected String path;
protected String rootPath;
protected String typeDir;

public FileFixPath(String rootPath, String typeDir) {
this.rootPath = rootPath;
this.typeDir = typeDir;
}

public FilePathInfo makeDatePath(long fileId, String fileName) {
long now = System.currentTimeMillis();
this.path = this.typeDir + "/";
createFolder(rootPath + this.path);

return new FilePathInfo(rootPath, this.path, now, fileName, fileId);
}

private boolean createFolder(String path) {
File file = new File(path);
if (file.exists()) {
if (!file.isDirectory()) {
return false;
}

return true;
}

if (!file.mkdirs()) {
log.error("unable to create folders {}.", rootPath + this.path);
return false;
}

log.debug("create folders {}.", file);

return true;
}
}

+ 0
- 79
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/util/MemMultipartFile.java View File

@@ -1,79 +0,0 @@
package cc.smtweb.framework.file.util;

import org.apache.commons.codec.binary.Base64;
import org.springframework.web.multipart.MultipartFile;

import java.io.*;

public class MemMultipartFile implements MultipartFile {
private static final String DATA_IMAGE = "data:image/";
private byte[] data;
private String contentType;
private String filename;

public static MemMultipartFile build(String dataUrl) {
if (dataUrl != null && dataUrl.startsWith(DATA_IMAGE)) {
// data:image/png;base64,
int pos1 = dataUrl.indexOf(';', DATA_IMAGE.length());
int pos2 = dataUrl.indexOf(',', DATA_IMAGE.length());
if (pos1 > 0 && pos2 > pos1) {
byte[] data = Base64.decodeBase64(dataUrl.substring(pos2));

if (data != null) {
String contentType = dataUrl.substring(5, pos1);
return new MemMultipartFile(contentType.replace('/', '.'), contentType, data);
}
}
}

return null;
}

private MemMultipartFile(String filename, String contentType, byte[] data) {
this.data = data;
this.contentType = contentType;
this.filename = filename;
}

@Override
public String getName() {
return "data";
}

@Override
public String getOriginalFilename() {
return filename;
}

@Override
public String getContentType() {
return contentType;
}

@Override
public boolean isEmpty() {
return data.length == 0;
}

@Override
public long getSize() {
return data.length;
}

@Override
public byte[] getBytes() throws IOException {
return data;
}

@Override
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(data);
}

@Override
public void transferTo(File file) throws IOException, IllegalStateException {
try(FileOutputStream os = new FileOutputStream(file)) {
os.write(data);
}
}
}

+ 0
- 111
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/util/ThumbImage.java View File

@@ -1,111 +0,0 @@
package cc.smtweb.framework.file.util;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.imageio.ImageIO;

import cc.smtweb.framework.file.FilePathGenerator;
import lombok.Getter;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.Thumbnails.Builder;
import net.coobird.thumbnailator.geometry.Positions;
import net.coobird.thumbnailator.resizers.configurations.Antialiasing;
import net.sf.image4j.codec.ico.ICODecoder;
import org.apache.commons.lang3.StringUtils;

/**
* 缩略图生成工具
* @author xkliu
*/
@Getter
public class ThumbImage {
// 图片处理方式
public static final int TYPE_DEFAULT = 1;
public static final int TYPE_THUMB = 2;
public static final int TYPE_AVATAR = 3;

private int imageWidth;
private int imageHeight;

public static int type(String thumb) {
// 解决历史遗留boolean类型
if (StringUtils.isBlank(thumb) || "false".equalsIgnoreCase(thumb)) {
return TYPE_DEFAULT;
}

if ("true".equalsIgnoreCase(thumb)) {
return TYPE_THUMB;
}

return Integer.parseInt(thumb);
}

public void makeThumb(boolean isThumb, File file, int size) throws IOException {
makeThumb(file, size, size, isThumb);
}
// 后台等比压缩后大小最好控制在20k以内
public void makeThumb(File file, int w, int h, boolean keepAspectRatio) throws IOException {
String fileName = file.getName().toLowerCase();

BufferedImage image;

if (fileName.endsWith(".ico")) {
List<BufferedImage> images = ICODecoder.read(file);
image = images.get(images.size() - 1);
} else {
image = ImageIO.read(file);
}

imageWidth = image.getWidth();
imageHeight = image.getHeight();

if (fileName.endsWith(".png") || fileName.endsWith(".gif")) {
// 把透明的图填充白色背景
BufferedImage newBufferedImage = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(image, 0, 0, Color.WHITE, null);
image = newBufferedImage;
}

Builder<BufferedImage> builder = Thumbnails.of(image);

if (keepAspectRatio) {
if (h > 0) {
// 高度为基准调整宽度到达原图缩放比例
int imageR = imageWidth * 1000 / imageHeight;
w = h * imageR / 1000;
} else {
// 宽度为基准调整宽度到达原图缩放比例
int imageR = imageHeight * 1000 / imageWidth;
h = w * imageR / 1000;
}

// int r = w * 1000 / h;
// int imageR = imageWidth * 1000 / imageHeight;
// if (r != imageR) {
// w = imageHeight * r / 1000;
// }
} else {
int r = w * 1000 / h;
int imageR = imageWidth * 1000 / imageHeight;

if (r != imageR) {
int width = imageWidth;
int height = imageHeight;
if (r > imageR) {
width = imageHeight * r / 1000;
} else {
height = imageWidth * 1000 / r;
}

builder.sourceRegion(Positions.CENTER, width, height);
}
}

builder.size(w, h).antialiasing(Antialiasing.ON).outputFormat("jpg").outputQuality(0.9)
.toFile(file.getAbsolutePath() + FilePathGenerator.THUMB_FILE_EXT);
}
}

+ 0
- 13
smtweb-framework/sw-framework-file/src/main/java/cc/smtweb/framework/file/web/entity/AttachPathPO.java View File

@@ -1,13 +0,0 @@
package cc.smtweb.framework.file.web.entity;

import lombok.Data;

@Data
public class AttachPathPO {
private Long attachId;
private String attachName;
private String attachPath;
private String attachContentType;
private Long attachSize;
private Long attachCreate;
}

+ 0
- 2
smtweb-framework/sw-framework-file/src/main/resources/META-INF/spring.factories View File

@@ -1,2 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cc.smtweb.framework.file.spring.FileAutoConfiguration

+ 0
- 2
smtweb-framework/sw-framework-file/target/classes/META-INF/spring.factories View File

@@ -1,2 +0,0 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cc.smtweb.framework.file.spring.FileAutoConfiguration

+ 0
- 5
smtweb-framework/sw-framework-file/target/maven-archiver/pom.properties View File

@@ -1,5 +0,0 @@
#Generated by Apache Maven
#Tue Nov 02 19:05:00 CST 2021
version=2.1.0-SNAPSHOT
groupId=cc.smtweb
artifactId=sw-framework-file

+ 0
- 0
smtweb-framework/sw-framework-file/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst View File


+ 0
- 17
smtweb-framework/sw-framework-file/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst View File

@@ -1,17 +0,0 @@
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\controller\FileUploadController.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\util\FileDynPath.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\FilePathInfo.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\FileHelper.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\FileAutoConfiguration.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\util\MemMultipartFile.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\dao\SysAttachDao.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\FileApplication.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\FilePathGenerator.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\dao\ImageAttachDao.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\util\FileFixPath.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\config\FileConfig.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\entity\FileDataVO.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\util\ThumbImage.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\controller\FileDownloadController.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\spring\entity\UploadDataVO.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-file\src\main\java\cc\smtweb\framework\file\web\entity\AttachPathPO.java

+ 0
- 78
smtweb-framework/sw-framework-web/pom.xml View File

@@ -1,78 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-web</artifactId>
<version>2.2.0-SNAPSHOT</version>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<modelVersion>4.0.0</modelVersion>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-auth</artifactId>
<version>2.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-file</artifactId>
<version>2.2.0-SNAPSHOT</version>
</dependency>
</dependencies>

<build>
<!-- <finalName>user</finalName>-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 用于生成jar包的plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<excludes>
<exclude>config/*.yaml</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://47.92.149.153:7000/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://47.92.149.153:7000/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>

</project>

+ 0
- 14
smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/spring/WebApplication.java View File

@@ -1,14 +0,0 @@
package cc.smtweb.framework.web.spring;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
* @author kevin
*/
@SpringBootApplication
public class WebApplication {
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
}

+ 0
- 20
smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/spring/WebAutoConfiguration.java View File

@@ -1,20 +0,0 @@
package cc.smtweb.framework.web.spring;

import cc.smtweb.framework.core.mvc.config.ControllerConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
* @author kevin
*/
@Configuration
@ComponentScan
public class WebAutoConfiguration {

/** 配置自定义service扫描路径 {module}/{service}/{method} */
@Bean
public ControllerConfig webControllerConfig() {
return new ControllerConfig("web", "cc.smtweb.framework.web.web");
}
}

+ 0
- 37
smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/api/DemoDbService.java View File

@@ -1,37 +0,0 @@
package cc.smtweb.framework.web.web.api;

import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.annotation.SwParam;
import cc.smtweb.framework.core.annotation.SwPerm;
import cc.smtweb.framework.core.annotation.SwService;
import cc.smtweb.framework.core.db.DbEngine;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@SwService
@SwPerm(SwPerm.NONE)
public class DemoDbService {
// @SwParam
// protected DbCache dbCache;

@SwParam
protected DbEngine dbEngine;

public R get(@SwParam("code") String code) {
// DictPO dictPo = dbCache.entityByCode(DictPO.class, code);
return null;//R.success(dictPo);
}

public R trans(@SwParam("code") String code) {
// dbEngine.doTrans(() -> {
// dbEngine.update("insert into sw_im.im_site(site_id, site_name, site_secret_part) values(?,?,?)", 10, "test", "test");
//
// dbEngine.update("insert into sw_im_log.im_web_socket_log(wsl_id, wsl_user_id, wsl_client_type) values(?,?,?)", 10, 1000, 0);
// return true;
// });

dbEngine.queryInt("select 1");

return R.success();
}
}

+ 0
- 58
smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/api/DemoTimerService.java View File

@@ -1,58 +0,0 @@
package cc.smtweb.framework.web.web.api;

import cc.smtweb.framework.core.common.R;
import cc.smtweb.framework.core.annotation.*;
import cc.smtweb.framework.core.mvc.SchedulerManager;
import cc.smtweb.framework.core.mvc.scheduler.SchedulerPoint;
import cc.smtweb.framework.core.cache.redis.RedisManager;
import cc.smtweb.framework.core.util.DateUtil;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@SwService
@SwPerm(SwPerm.NONE)
public class DemoTimerService {
@SwParam
private RedisManager redisManager;

@SwParam
private SchedulerManager schedulerManager;

// defaultRun 命名的函数是默认函数
public R defaultRun(@SwPathParam String path) {
return R.success(path);
}

public R redis(@SwParam("time") int time) {
boolean value = schedulerManager.wakeup(DemoTimerService.class, "timer3");

return R.success(value);
}

// @SwScheduling(value = "*/10 * * * * ?", group = "web-timer")
public void timer1(SchedulerPoint schedulerPoint) throws InterruptedException {
String now = DateUtil.nowDateTime();
System.out.printf("timer 1: %s start\n", now);

Thread.sleep(30 * 1000);

now = DateUtil.nowDateTime();
System.out.printf("timer 1: %s end\n", now);

schedulerPoint.put("id", now);
}

// @SwScheduling(value = "*/10 * * * * ?", group = "web-timer")
public void timer2(SchedulerPoint schedulerPoint) {
String now = DateUtil.nowDateTime();

System.out.printf("timer 2: %s\n", now);

schedulerPoint.put("time", now);
}

// @SwScheduling(value = "*/10 * * * * ?")
public void timer3() {
System.out.printf("timer 3: %s\n", DateUtil.nowDateTime());
}
}

+ 0
- 19
smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/dao/TimerDao.java View File

@@ -1,19 +0,0 @@
package cc.smtweb.framework.web.web.dao;

import cc.smtweb.framework.core.annotation.*;
import cc.smtweb.framework.core.mvc.scheduler.SchedulerPoint;
import cc.smtweb.framework.core.util.DateUtil;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@SwBean
public class TimerDao {
// @SwScheduling(value = "*/10 * * * * ?")
public void timer(SchedulerPoint schedulerPoint) {
String now = DateUtil.nowDateTime();

System.out.printf("dao timer: %s\n", now);

schedulerPoint.put("time", now);
}
}

+ 0
- 22
smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/entity/DictPO.java View File

@@ -1,22 +0,0 @@
package cc.smtweb.framework.web.web.entity;

import cc.smtweb.framework.core.annotation.SwColumn;
import cc.smtweb.framework.core.annotation.SwColumnForeign;
import cc.smtweb.framework.core.annotation.SwTable;
import lombok.Data;

@Data
@SwTable("sw_user.sys_dict")
public class DictPO {
@SwColumn(type = SwColumn.Type.ID)
private Long dictId;

// @SwColumn(type = SwColumn.Type.MASTER_ID)
// @SwColumnForeign(table="sw_user.sys_dict_type", id="dt_id", code="dt_name")
// private Long dictDtId;

@SwColumn(type = {SwColumn.Type.CODE, SwColumn.Type.ORDER})
private String dictCode;

private String dictLabel;
}

+ 0
- 32
smtweb-framework/sw-framework-web/src/main/java/cc/smtweb/framework/web/web/entity/UserPO.java View File

@@ -1,32 +0,0 @@
package cc.smtweb.framework.web.web.entity;

import cc.smtweb.framework.core.annotation.SwColumn;
import cc.smtweb.framework.core.annotation.SwTable;
import lombok.Data;

import java.io.Serializable;

@Data
@SwTable("sw_user.sys_user")
public class UserPO implements Serializable {
@SwColumn(type={SwColumn.Type.ID})
private Long userId;

private String userName;

private Long userSiteId;

// @SwColumn(type={SwColumn.Type.CREATE_TIME})
// private Long userCreateAt;

@SwColumn(type={SwColumn.Type.LAST_TIME})
private Long userDeptId;

private String userPassword;

private String userPhone;

private Integer userStatus;

private String userAvatar;
}

+ 0
- 58
smtweb-framework/sw-framework-web/src/main/resources/config/application-dev.yaml View File

@@ -1,58 +0,0 @@
smtweb:
machine-id: 1
static:
local-path: /data/sw/static/
file:
local-path: /data/sw/files/
url: http://127.0.0.1:8888/files
db:
default:
rule:
prefix: _smt_
replace: smt_
server:
port: 8888
servlet:
context-path: /
logging:
level:
root: INFO
cc.smtweb: DEBUG
spring:
# 设置服务名
application:
name: smtweb_core
main:
allow-bean-definition-overriding: true
redis:
host: 127.0.0.1
port: 6379
password:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/smt_user?useUnicode=true&characterEncoding=utf-8&useTimezone=true&serverTimezone=CTT&allowMultiQueries=true
username: root
password: 1681860
servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000
profiles:
include: role
cache:
type: caffeine
cache-names:
- core
caffeine:
spec: maximumSize=1024,expireAfterWrite=2h
park:
secret:
key: null
# key: cmVmb3JtZXJyZWZvcm1lcg==
swagger:
name: smtweb-core
version: 2.0
enabled: true




+ 0
- 52
smtweb-framework/sw-framework-web/src/main/resources/config/application-prod.yaml View File

@@ -1,52 +0,0 @@
sme:
machine-id: 1
file-local-path: /data/files/smart/
file-host: http://member.sumi168.cn
file-url: ${sme.file-host}:${server.port}${server.servlet.context-path}/${sme.file-local-path}

server:
port: 10001
servlet:
context-path: /user

feign:
hystrix:
enabled: false
logging:
level:
smtweb: DEBUG

spring:
# 设置服务名
application:
name: smtweb-user
main:
allow-bean-definition-overriding: true
mvc:
static-path-pattern: /static/**
redis:
host: 127.0.0.1
port: 6379
datasource:
user:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/smt_user?useUnicode=true&characterEncoding=utf-8&useTimezone=true&serverTimezone=CTT&allowMultiQueries=true
username: smt
password: smt_123456

servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000

swagger:
name: smart
version: 1.0.1
enabled: false

weixin:
url: http://devpk.smart.smefdd.com
appId: wx8d11474c01b92378
appSecret: e1fa7bcdf27b46e7d69edad68ea8724b



+ 0
- 47
smtweb-framework/sw-framework-web/src/main/resources/config/application.yaml View File

@@ -1,47 +0,0 @@
smtweb:
machine-id: 1
static:
local-path: /data/sw/static/
file:
local-path: /data/sw/files/
url: http://127.0.0.1:8888/files
db:
default:
rule:
prefix: _smt_
replace: smt_
server:
port: 8888
servlet:
context-path: /
logging:
level:
root: INFO
cc.smtweb: DEBUG
spring:
# 设置服务名
application:
name: smtweb_core
main:
allow-bean-definition-overriding: true
redis:
host: 127.0.0.1
port: 6379
password:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/sw_user?serverTimezone=UTC&allowMultiQueries=true&useSSL=false
username: root
password: 1681860
servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000
profiles:
include: role
cache:
type: caffeine
cache-names:
- core
caffeine:
spec: maximumSize=1024,expireAfterWrite=2h

+ 0
- 17
smtweb-framework/sw-framework-web/src/main/resources/static/events.js View File

@@ -1,17 +0,0 @@
// 注册事件类
window.$swEvent.setup("defaultEvent", {
init(options) {
},

page$onInit(e) {
console.log("onInit", e);
},

sysUser$onLoad(e) {
console.log("onLoad", e);
},

userNickCode$onChange(e) {
console.log("onChange", e);
},
});

+ 0
- 58
smtweb-framework/sw-framework-web/target/classes/config/application-dev.yaml View File

@@ -1,58 +0,0 @@
smtweb:
machine-id: 1
static:
local-path: /data/sw/static/
file:
local-path: /data/sw/files/
url: http://127.0.0.1:8888/files
db:
default:
rule:
prefix: _smt_
replace: smt_
server:
port: 8888
servlet:
context-path: /
logging:
level:
root: INFO
cc.smtweb: DEBUG
spring:
# 设置服务名
application:
name: smtweb_core
main:
allow-bean-definition-overriding: true
redis:
host: 127.0.0.1
port: 6379
password:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/smt_user?useUnicode=true&characterEncoding=utf-8&useTimezone=true&serverTimezone=CTT&allowMultiQueries=true
username: root
password: 1681860
servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000
profiles:
include: role
cache:
type: caffeine
cache-names:
- core
caffeine:
spec: maximumSize=1024,expireAfterWrite=2h
park:
secret:
key: null
# key: cmVmb3JtZXJyZWZvcm1lcg==
swagger:
name: smtweb-core
version: 2.0
enabled: true




+ 0
- 52
smtweb-framework/sw-framework-web/target/classes/config/application-prod.yaml View File

@@ -1,52 +0,0 @@
sme:
machine-id: 1
file-local-path: /data/files/smart/
file-host: http://member.sumi168.cn
file-url: ${sme.file-host}:${server.port}${server.servlet.context-path}/${sme.file-local-path}

server:
port: 10001
servlet:
context-path: /user

feign:
hystrix:
enabled: false
logging:
level:
smtweb: DEBUG

spring:
# 设置服务名
application:
name: smtweb-user
main:
allow-bean-definition-overriding: true
mvc:
static-path-pattern: /static/**
redis:
host: 127.0.0.1
port: 6379
datasource:
user:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/smt_user?useUnicode=true&characterEncoding=utf-8&useTimezone=true&serverTimezone=CTT&allowMultiQueries=true
username: smt
password: smt_123456

servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000

swagger:
name: smart
version: 1.0.1
enabled: false

weixin:
url: http://devpk.smart.smefdd.com
appId: wx8d11474c01b92378
appSecret: e1fa7bcdf27b46e7d69edad68ea8724b



+ 0
- 47
smtweb-framework/sw-framework-web/target/classes/config/application.yaml View File

@@ -1,47 +0,0 @@
smtweb:
machine-id: 1
static:
local-path: /data/sw/static/
file:
local-path: /data/sw/files/
url: http://127.0.0.1:8888/files
db:
default:
rule:
prefix: _smt_
replace: smt_
server:
port: 8888
servlet:
context-path: /
logging:
level:
root: INFO
cc.smtweb: DEBUG
spring:
# 设置服务名
application:
name: smtweb_core
main:
allow-bean-definition-overriding: true
redis:
host: 127.0.0.1
port: 6379
password:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/sw_user?serverTimezone=UTC&allowMultiQueries=true&useSSL=false
username: root
password: 1681860
servlet:
multipart:
max-file-size: 104857600000
max-request-size: 10485760000000
profiles:
include: role
cache:
type: caffeine
cache-names:
- core
caffeine:
spec: maximumSize=1024,expireAfterWrite=2h

+ 0
- 17
smtweb-framework/sw-framework-web/target/classes/static/events.js View File

@@ -1,17 +0,0 @@
// 注册事件类
window.$swEvent.setup("defaultEvent", {
init(options) {
},

page$onInit(e) {
console.log("onInit", e);
},

sysUser$onLoad(e) {
console.log("onLoad", e);
},

userNickCode$onChange(e) {
console.log("onChange", e);
},
});

+ 0
- 5
smtweb-framework/sw-framework-web/target/maven-archiver/pom.properties View File

@@ -1,5 +0,0 @@
#Generated by Apache Maven
#Tue Nov 02 19:05:00 CST 2021
version=2.1.0-SNAPSHOT
groupId=cc.smtweb
artifactId=sw-framework-web

+ 0
- 0
smtweb-framework/sw-framework-web/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst View File


+ 0
- 7
smtweb-framework/sw-framework-web/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst View File

@@ -1,7 +0,0 @@
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-web\src\main\java\cc\smtweb\framework\web\web\api\DemoTimerService.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-web\src\main\java\cc\smtweb\framework\web\web\api\DemoDbService.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-web\src\main\java\cc\smtweb\framework\web\spring\WebApplication.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-web\src\main\java\cc\smtweb\framework\web\web\entity\DictPO.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-web\src\main\java\cc\smtweb\framework\web\web\dao\TimerDao.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-web\src\main\java\cc\smtweb\framework\web\spring\WebAutoConfiguration.java
E:\jujia\git\6.0\sw\smtweb-framework\sw-framework-web\src\main\java\cc\smtweb\framework\web\web\entity\UserPO.java

+ 3
- 8
smtweb-system/sw-system-bpm/pom.xml View File

@@ -26,18 +26,13 @@
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-auth</artifactId>
<artifactId>sw-framework-core</artifactId>
<version>2.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cc.smtweb</groupId>
<artifactId>sw-framework-file</artifactId>
<version>2.2.0-SNAPSHOT</version>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>


+ 1
- 2
smtweb-system/sw-system-bpm/src/main/java/cc/smtweb/system/bpm/web/design/form/define/PageDatasets.java View File

@@ -2,7 +2,6 @@ package cc.smtweb.system.bpm.web.design.form.define;

import cc.smtweb.framework.core.db.cache.ModelTableCache;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sun.istack.internal.NotNull;

import java.util.ArrayList;
import java.util.HashMap;
@@ -21,7 +20,7 @@ public class PageDatasets {
@JsonIgnore
private Map<String, PageDataset> mapName = null;

public PageDatasets(@NotNull PageDataset[] datasets) {
public PageDatasets(PageDataset[] datasets) {
this.list = new ArrayList<>(datasets.length);
this.mapId = new HashMap<>(datasets.length);
this.mapName = new HashMap<>(datasets.length);


Loading…
Cancel
Save