Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/hellohao-dev'
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/main/java/cn/hellohao/service/impl/InitializationStorage.java
  • Loading branch information
hello-hao authored and hello-hao committed Mar 21, 2023
2 parents 538482a + 733ec3e commit 57b6c4a
Show file tree
Hide file tree
Showing 46 changed files with 896 additions and 940 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,8 @@ Core版:`本地`,`阿里OSS`,`又拍USS`,`七牛KODO`,`腾讯COS`,`网易NOS`,
### 反馈交流

**如果你遇到BUG欢迎反馈**

欢迎加入Hellohao开发者交流群,群聊号码:**864800972**
- 前往论坛发帖反馈、求助:[Hellohao开发者交流论坛](http://bbs.hellohao.cn)
- 也可加QQ群探讨(目前已满):864800972

### 捐赠开发者

Expand Down
17 changes: 17 additions & 0 deletions docker/Dockerfile-tbed
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM openjdk:8

MAINTAINER 923453645@qq.com

ADD hellohaotbed/ /hellohaotbed

COPY appstart.sh /appstart.sh

COPY application.properties /application.properties

COPY Tbed.jar /Tbed.jar

EXPOSE 10088

EXPOSE 10089

CMD ["/bin/bash","/appstart.sh"]
18 changes: 11 additions & 7 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,11 @@
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>commons-logging</groupId>-->
<!-- <artifactId>commons-logging</artifactId>-->
<!-- <version>1.2</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
Expand All @@ -120,7 +120,11 @@
<artifactId>pebble</artifactId>
<version>3.1.5</version>
</dependency>

<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.12.334</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
Expand All @@ -130,7 +134,7 @@
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.11.0</version>
<version>4.16.14</version>
</dependency>
<dependency>
<groupId>net.coobird</groupId>
Expand Down
43 changes: 34 additions & 9 deletions src/main/java/cn/hellohao/TbedApplication.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
package cn.hellohao;

import javax.servlet.MultipartConfigElement;
import javax.servlet.http.HttpServletRequest;

import cn.hellohao.utils.Print;
import cn.hellohao.dao.KeysMapper;
import cn.hellohao.utils.FirstRun;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.jdbc.DatabaseDriver;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.jdbc.support.DatabaseStartupValidator;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.util.unit.DataSize;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import java.net.InetAddress;
import java.util.Scanner;
import javax.servlet.MultipartConfigElement;
import javax.sql.DataSource;
import java.util.stream.Stream;

@SpringBootApplication
@Configuration
Expand All @@ -30,6 +29,32 @@ public class TbedApplication {
public static void main(String[] args) {
SpringApplication.run(TbedApplication.class, args);
}

//延缓Spring Boot启动时间直到数据库启动的方法
@Bean
public DatabaseStartupValidator databaseStartupValidator(DataSource dataSource) {
DatabaseStartupValidator databaseStartupValidator = new DatabaseStartupValidator();
databaseStartupValidator.setDataSource(dataSource);
databaseStartupValidator.setValidationQuery(DatabaseDriver.POSTGRESQL.getValidationQuery());
return databaseStartupValidator;
}
@Bean
public static BeanFactoryPostProcessor dependsOnPostProcessor() {
return bf -> {
// Let beans that need the database depend on the DatabaseStartupValidator
// like the JPA EntityManagerFactory or Flyway
String[] flyway = bf.getBeanNamesForType(FirstRun.class);
Stream.of(flyway)
.map(bf::getBeanDefinition)
.forEach(it -> it.setDependsOn("databaseStartupValidator"));

String[] jpa = bf.getBeanNamesForType(KeysMapper.class);
Stream.of(jpa)
.map(bf::getBeanDefinition)
.forEach(it -> it.setDependsOn("databaseStartupValidator"));

};
}
/**
* 文件上传配置
* @return
Expand Down
44 changes: 44 additions & 0 deletions src/main/java/cn/hellohao/config/LogSystemProxy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package cn.hellohao.config;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import java.io.PrintStream;
import java.util.function.Consumer;

@Configuration
public class LogSystemProxy {

private final static Logger log = LoggerFactory.getLogger("proxy.system.log");

@PostConstruct
public void initProxy(){
log.debug("LogSystemProxy init .....");
System.setOut(getLoggerProxy(StdType.OUT));
System.setErr(getLoggerProxy(StdType.ERR));
}


private enum StdType{
OUT(System.out, log::info),
ERR(System.err, log::error),
;
PrintStream stream;
Consumer<String> consumer;
StdType(PrintStream stream,Consumer<String> consumer){
this.stream = stream;
this.consumer = consumer;
}
}

private PrintStream getLoggerProxy(StdType stdType){
return new PrintStream(stdType.stream){
@Override
public void print(String s) {
stdType.stream.print(s);
stdType.consumer.accept(s);
}
};
}
}
52 changes: 52 additions & 0 deletions src/main/java/cn/hellohao/config/PoolConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package cn.hellohao.config;

import lombok.Data;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import java.util.concurrent.ThreadPoolExecutor;

//线程池
@Configuration
@EnableAsync
public class PoolConfig {
ThreadPoolProperties properties = new ThreadPoolProperties();
@Bean(name = "taskExecutor")
public ThreadPoolTaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(properties.getCorePoolSize());
executor.setMaxPoolSize(properties.getMaxPoolSize());
executor.setQueueCapacity(properties.getQueueCapacity());
executor.setThreadNamePrefix(properties.getThreadNamePrefix());
executor.setKeepAliveSeconds(properties.getKeepAliveTime());
executor.setWaitForTasksToCompleteOnShutdown(properties.isWaitForTasksToCompleteOnShutdown());
executor.setAwaitTerminationSeconds(properties.getAwaitTerminationSeconds());
// 设置任务拒绝策略
/**
* 4种
* ThreadPoolExecutor类有几个内部实现类来处理这类情况:
- AbortPolicy 丢弃任务,抛RejectedExecutionException
- CallerRunsPolicy 由该线程调用线程运行。直接调用Runnable的run方法运行。
- DiscardPolicy 抛弃策略,直接丢弃这个新提交的任务
- DiscardOldestPolicy 抛弃旧任务策略,从队列中踢出最先进入队列(最后一个执行)的任务
* 实现RejectedExecutionHandler接口,可自定义处理器
*/
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}

@Data
class ThreadPoolProperties {
private int corePoolSize = 5;
private int maxPoolSize = 50;
private int keepAliveTime = 15;
private int queueCapacity = 6;
private String threadNamePrefix = "Tbed-Thread";
private boolean allowCoreThreadTimeout = false;
private boolean waitForTasksToCompleteOnShutdown = false;
private int awaitTerminationSeconds;

}
}
6 changes: 3 additions & 3 deletions src/main/java/cn/hellohao/controller/AdminController.java
Original file line number Diff line number Diff line change
Expand Up @@ -472,9 +472,9 @@ public Msg deleImages(@RequestParam(value = "data", defaultValue = "") String da
msg.setInfo("为获取到图像信息");
return msg;
}
List<Integer> imgIds = new ArrayList<Integer>();
List<Long> imgIds = new ArrayList<Long>();
for (int i = 0; i < split.length; i++) {
Integer imgid = Integer.valueOf(split[i]);
Long imgid = Long.valueOf(split[i]);
Images image = imgService.selectByPrimaryKey(imgid);
if (!subject.hasRole("admin")) {
if (!image.getUserid().equals(user.getId())) {
Expand All @@ -486,7 +486,7 @@ public Msg deleImages(@RequestParam(value = "data", defaultValue = "") String da
if (imgIds.size() == 0) {
msg.setCode("110404");
} else {
deleimages.dele(uuid, imgIds.stream().toArray(Integer[]::new));
deleimages.dele(uuid, imgIds.stream().toArray(Long[]::new));
msg.setCode("200");
}
return msg;
Expand Down
50 changes: 27 additions & 23 deletions src/main/java/cn/hellohao/controller/AdminRootController.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
@RequestMapping("/admin/root")
public class AdminRootController {
@Autowired
private ConfigService configService;
private ConfdataService confdataService;
@Autowired
private KeysService keysService;
@Autowired
Expand Down Expand Up @@ -196,7 +196,7 @@ public Msg LoadInfo(@RequestParam(value = "data", defaultValue = "") String data
} else if (key.getStorageType() == 7) {
ret = FtpServiceImpl.Initialize(key);
} else if (key.getStorageType() == 8) {
ret = UFileImageupload.Initialize(key);
ret = S3Imageupload.Initialize(key);
}
Long l = imgService.getsourcememory(keyId);
jsonObject.put("isok", ret);
Expand All @@ -219,23 +219,24 @@ public Msg LoadInfo(@RequestParam(value = "data", defaultValue = "") String data
@ResponseBody
public Msg updateStorage(@RequestParam(value = "data", defaultValue = "") String data) {
JSONObject jsonObj = JSONObject.parseObject(data);
Integer id = jsonObj.getInteger("id");
String AccessKey = jsonObj.getString("AccessKey");
String AccessSecret = jsonObj.getString("AccessSecret");
String Endpoint = jsonObj.getString("Endpoint");
String Bucketname = jsonObj.getString("Bucketname");
String RequestAddress = jsonObj.getString("RequestAddress");
Integer storageType = jsonObj.getInteger("storageType");
String keyname = jsonObj.getString("keyname");
Keys keys = new Keys();
keys.setId(id);
keys.setAccessKey(AccessKey);
keys.setAccessSecret(AccessSecret);
keys.setEndpoint(Endpoint);
keys.setBucketname(Bucketname);
keys.setRequestAddress(RequestAddress);
keys.setStorageType(storageType);
keys.setKeyname(keyname);
// Integer id = jsonObj.getInteger("id");
// String AccessKey = jsonObj.getString("AccessKey");
// String AccessSecret = jsonObj.getString("AccessSecret");
// String Endpoint = jsonObj.getString("Endpoint");
// String Bucketname = jsonObj.getString("Bucketname");
// String RequestAddress = jsonObj.getString("RequestAddress");
// Integer storageType = jsonObj.getInteger("storageType");
// String keyname = jsonObj.getString("keyname");
// Keys keys = new Keys();
// keys.setId(id);
// keys.setAccessKey(AccessKey);
// keys.setAccessSecret(AccessSecret);
// keys.setEndpoint(Endpoint);
// keys.setBucketname(Bucketname);
// keys.setRequestAddress(RequestAddress);
// keys.setStorageType(storageType);
// keys.setKeyname(keyname);
Keys keys = JSON.toJavaObject(jsonObj,Keys.class);
Msg msg = keysService.updateKey(keys);
return msg;
}
Expand All @@ -260,15 +261,15 @@ public Msg getSettingConfig(@RequestParam(value = "data", defaultValue = "") Str
User u = (User) subject.getPrincipal();
try {
UploadConfig uploadConfig = uploadConfigService.getUpdateConfig();
Config config = configService.getSourceype();
final Confdata confdata = confdataService.selectConfdata("config");
SysConfig sysConfig = sysConfigService.getstate();
AppClient appClientData = appClientService.getAppClientData("app");
uploadConfig.setUsermemory(Long.toString(Long.valueOf(uploadConfig.getUsermemory()) / 1024 / 1024));
uploadConfig.setVisitormemory(Long.toString(Long.valueOf(uploadConfig.getVisitormemory()) / 1024 / 1024));
uploadConfig.setFilesizetourists(Long.toString(Long.valueOf(uploadConfig.getFilesizetourists()) / 1024 / 1024));
uploadConfig.setFilesizeuser(Long.toString(Long.valueOf(uploadConfig.getFilesizeuser()) / 1024 / 1024));
jsonObject.put("uploadConfig", uploadConfig);
jsonObject.put("config", config);
jsonObject.put("config", JSONObject.parseObject(confdata.getJsondata()));
jsonObject.put("sysConfig", sysConfig);
jsonObject.put("appClient", appClientData);
msg.setData(jsonObject);
Expand Down Expand Up @@ -296,7 +297,7 @@ public Msg updateConfig(@RequestParam(value = "data", defaultValue = "") String
msg.setCode("500");
return msg;
}
Config config = JSON.toJavaObject((JSON) jsonObject.get("config"), Config.class);
// Config config = JSON.toJavaObject((JSON) jsonObject.get("config"), Config.class);
SysConfig sysConfig = JSON.toJavaObject((JSON) jsonObject.get("sysConfig"), SysConfig.class);
AppClient appClient = JSON.toJavaObject((JSON) jsonObject.get("appClient"), AppClient.class);
if (Integer.valueOf(vm) == -1) {
Expand All @@ -308,7 +309,10 @@ public Msg updateConfig(@RequestParam(value = "data", defaultValue = "") String
uploadConfig.setUsermemory(Long.toString(Long.valueOf(uploadConfig.getUsermemory()) * 1024 * 1024));
uploadConfig.setFilesizeuser(Long.toString(Long.valueOf(uploadConfig.getFilesizeuser()) * 1024 * 1024));
uploadConfigService.setUpdateConfig(uploadConfig);
configService.setSourceype(config);
Confdata confdata = new Confdata();
confdata.setKey("config");
confdata.setJsondata(jsonObject.getJSONObject("config").toJSONString());
confdataService.updateConfdata(confdata);
sysConfigService.setstate(sysConfig);
if (!appClient.getIsuse().equals("on")) {
appClient.setIsuse("off");
Expand Down
Loading

0 comments on commit 57b6c4a

Please sign in to comment.