diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bb29585 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM openjdk:8 + +# Add the service itself +ARG JAR_FILE +#ADD target/${JAR_FILE} /usr/share/docker-springboot-demo.jar +ADD web.tar /web.tar + +#COPY web/webapps/hellohao/config.json /HellohaoData/web/config/config.json +COPY application.properties /application.properties +#COPY hellohao /hellohao +COPY Tbed.jar /Tbed.jar +#CMD ["/bin/bash","/web/start.sh"] +EXPOSE 10088 +EXPOSE 10089 +ENTRYPOINT["/start.sh"] +#ENTRYPOINT ["java","-jar", "./Tbed.jar"] \ No newline at end of file diff --git a/Dockerfile-mysql b/Dockerfile-mysql new file mode 100644 index 0000000..d34d1a1 --- /dev/null +++ b/Dockerfile-mysql @@ -0,0 +1,4 @@ +# syntax=docker/dockerfile:1 +FROM mysql:8.0.31 +#把sql文件复制到工作目录下 +COPY ./tbed_core.sql /docker-entrypoint-initdb.d \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..afae7b8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +version: "3" + +services: + hellohao-tbed: + build: + # dockerfile存放路径 + context: . + # 配置启动参数 + args: + JAR_FILE: tbed.jar + dockerfile: Dockerfile + ports: + - "10088:10088" + - "10089:10089" + volumes: + - /HellohaoData/:/HellohaoData/ + environment: + # 环境变量, 在application.yml中读取 + MYSQL_URL: jdbc:mysql://hellohaodb/tbed?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai + MYSQL_PASS: 923453645 + HELLOHAO_SERVER_HOST: http://152.32.134.33:10088 + HELLOHAO_WEB_HOST: http://152.32.134.33:10089 + hellohaodb: + image: mysql:8.0.31 +# container_name: tbed + build: + context: . + dockerfile: Dockerfile-mysql + ports: + - "3306:3306" + volumes: + - /HellohaoData/mysql:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: 923453645 + +# docker-compose中需要声明named volumes +volumes: + sb-10-docker-mysql-data: + diff --git a/src/main/java/cn/hellohao/TbedApplication.java b/src/main/java/cn/hellohao/TbedApplication.java index 682315a..81f91dd 100644 --- a/src/main/java/cn/hellohao/TbedApplication.java +++ b/src/main/java/cn/hellohao/TbedApplication.java @@ -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 @@ -30,6 +29,31 @@ 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 diff --git a/src/main/java/cn/hellohao/controller/AdminRootController.java b/src/main/java/cn/hellohao/controller/AdminRootController.java index 7c9277e..6fe6932 100644 --- a/src/main/java/cn/hellohao/controller/AdminRootController.java +++ b/src/main/java/cn/hellohao/controller/AdminRootController.java @@ -25,7 +25,7 @@ import java.util.List; @RequestMapping("/admin/root") public class AdminRootController { @Autowired - private ConfigService configService; + private ConfdataService confdataService; @Autowired private KeysService keysService; @Autowired @@ -260,7 +260,7 @@ public class AdminRootController { 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)); @@ -268,7 +268,7 @@ public class AdminRootController { 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); @@ -296,7 +296,7 @@ public class AdminRootController { 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) { @@ -308,7 +308,10 @@ public class AdminRootController { 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"); diff --git a/src/main/java/cn/hellohao/controller/IndexController.java b/src/main/java/cn/hellohao/controller/IndexController.java index 2c79546..d566861 100644 --- a/src/main/java/cn/hellohao/controller/IndexController.java +++ b/src/main/java/cn/hellohao/controller/IndexController.java @@ -3,7 +3,6 @@ package cn.hellohao.controller; import cn.hellohao.auth.token.JWTUtil; import cn.hellohao.pojo.*; import cn.hellohao.service.*; -import cn.hellohao.service.impl.AlbumServiceImpl; import cn.hellohao.service.impl.UploadServicel; import cn.hellohao.service.impl.deleImages; import cn.hellohao.utils.GetIPS; @@ -34,7 +33,7 @@ import java.util.UUID; public class IndexController { @Autowired private ImgService imgService; @Autowired private SysConfigService sysConfigService; - @Autowired private ConfigService configService; + @Autowired private ConfdataService confdataService; @Autowired private UploadConfigService uploadConfigService; @Autowired private UploadServicel uploadServicel; @Autowired private deleImages deleimages; @@ -54,21 +53,21 @@ public class IndexController { @ResponseBody public Msg webInfo() { Msg msg = new Msg(); - Config config = configService.getSourceype(); + final Confdata confdata = confdataService.selectConfdata("config"); + JSONObject cd = JSONObject.parseObject(confdata.getJsondata()); UploadConfig updateConfig = uploadConfigService.getUpdateConfig(); SysConfig sysConfig = sysConfigService.getstate(); JSONObject jsonObject = new JSONObject(); AppClient appClient = appClientService.getAppClientData("app"); - jsonObject.put("webname", config.getWebname()); - jsonObject.put("websubtitle", config.getWebsubtitle()); - jsonObject.put("keywords", config.getWebkeywords()); - jsonObject.put("description", config.getWebms()); - jsonObject.put("explain", config.getExplain()); - jsonObject.put("favicon", config.getWebfavicons()); - jsonObject.put("baidu", config.getBaidu()); - jsonObject.put("links", config.getLinks()); - jsonObject.put("aboutinfo", config.getAboutinfo()); - jsonObject.put("logo", config.getLogo()); + jsonObject.put("webname", cd.getString("webname")); + jsonObject.put("websubtitle", cd.getString("websubtitle")); + jsonObject.put("keywords", cd.getString("keywords")); + jsonObject.put("description", cd.getString("description")); + jsonObject.put("explain", cd.getString("explain")); + jsonObject.put("baidu", cd.getString("baidu")); + jsonObject.put("links", cd.getString("links")); + jsonObject.put("aboutinfo", cd.getString("aboutinfo")); + jsonObject.put("logo", cd.getString("logo")); jsonObject.put("api", updateConfig.getApi()); jsonObject.put("register", sysConfig.getRegister()); jsonObject.put("isuse", appClient.getIsuse()); diff --git a/src/main/java/cn/hellohao/controller/UserController.java b/src/main/java/cn/hellohao/controller/UserController.java index 988d8fe..3e22dc7 100644 --- a/src/main/java/cn/hellohao/controller/UserController.java +++ b/src/main/java/cn/hellohao/controller/UserController.java @@ -5,8 +5,10 @@ import cn.hellohao.auth.token.JWTUtil; import cn.hellohao.config.SysName; import cn.hellohao.pojo.*; import cn.hellohao.service.*; -import cn.hellohao.utils.*; -import cn.hutool.captcha.ShearCaptcha; +import cn.hellohao.utils.Base64Encryption; +import cn.hellohao.utils.NewSendEmail; +import cn.hellohao.utils.Print; +import cn.hellohao.utils.SetText; import cn.hutool.core.util.HexUtil; import com.alibaba.fastjson.JSONObject; import org.apache.shiro.SecurityUtils; @@ -35,7 +37,7 @@ public class UserController { @Autowired private EmailConfigService emailConfigService; @Autowired - private ConfigService configService; + private ConfdataService confdataService; @Autowired private UploadConfigService uploadConfigService; @Autowired @@ -109,14 +111,15 @@ public class UserController { user.setUsername(username); user.setPassword(password); user.setToken(UUID.randomUUID().toString().replace("-", "")); - Config config = configService.getSourceype(); + final Confdata confdata = confdataService.selectConfdata("config"); + JSONObject jsonObject = JSONObject.parseObject(confdata.getJsondata()); Integer type = 0; if(emailConfig.getUsing()==1){ user.setIsok(0); //注册完发激活链接 Thread thread = new Thread() { public void run() { - Integer a = NewSendEmail.sendEmail(emailConfig,user.getUsername(), uid, user.getEmail(),config); + Integer a = NewSendEmail.sendEmail(emailConfig,user.getUsername(), uid, user.getEmail(),jsonObject); } }; thread.start(); @@ -222,7 +225,6 @@ public class UserController { @RequestMapping(value = "/activation", method = RequestMethod.GET) public String activation(Model model, HttpServletRequest request, HttpSession session, String activation, String username) { - Config config = configService.getSourceype(); Integer ret = 0; User u2 = new User(); u2.setUid(activation); @@ -288,10 +290,11 @@ public class UserController { msg.setInfo("当前用户已被冻结,禁止操作"); return msg; } - Config config = configService.getSourceype(); + final Confdata confdata = confdataService.selectConfdata("config"); + JSONObject jsonObject = JSONObject.parseObject(confdata.getJsondata()); Thread thread = new Thread() { public void run() { - Integer a = NewSendEmail.sendEmailFindPass(emailConfig,user.getUsername(), user.getUid(), user.getEmail(),config); + Integer a = NewSendEmail.sendEmailFindPass(emailConfig,user.getUsername(), user.getUid(), user.getEmail(),jsonObject); } }; thread.start(); diff --git a/src/main/java/cn/hellohao/dao/ConfdataMapper.java b/src/main/java/cn/hellohao/dao/ConfdataMapper.java new file mode 100644 index 0000000..d976ea5 --- /dev/null +++ b/src/main/java/cn/hellohao/dao/ConfdataMapper.java @@ -0,0 +1,11 @@ +package cn.hellohao.dao; + +import cn.hellohao.pojo.Confdata; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface ConfdataMapper { + Confdata selectConfdata(@Param("key") String key); + Integer updateConfdata(Confdata confdata); +} diff --git a/src/main/java/cn/hellohao/dao/ConfigMapper.java b/src/main/java/cn/hellohao/dao/ConfigMapper.java deleted file mode 100644 index 3f266d9..0000000 --- a/src/main/java/cn/hellohao/dao/ConfigMapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package cn.hellohao.dao; - -import cn.hellohao.pojo.Config; -import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Service; - -@Mapper -public interface ConfigMapper { - Config getSourceype(); - Integer setSourceype(Config config); -} diff --git a/src/main/java/cn/hellohao/pojo/Confdata.java b/src/main/java/cn/hellohao/pojo/Confdata.java new file mode 100644 index 0000000..95c3a72 --- /dev/null +++ b/src/main/java/cn/hellohao/pojo/Confdata.java @@ -0,0 +1,16 @@ +package cn.hellohao.pojo; + +import lombok.Data; + +/** + * @author Hellohao + * @version 1.0 + * @date 2023/3/2 10:21 + */ +@Data +public class Confdata { + + private String key; + private String jsondata; + +} diff --git a/src/main/java/cn/hellohao/pojo/Config.java b/src/main/java/cn/hellohao/pojo/Config.java index 3fe1c29..1feecc9 100644 --- a/src/main/java/cn/hellohao/pojo/Config.java +++ b/src/main/java/cn/hellohao/pojo/Config.java @@ -1,5 +1,8 @@ package cn.hellohao.pojo; +import lombok.Data; + +@Data public class Config { private Integer id; private Integer sourcekey; @@ -23,201 +26,5 @@ public class Config { private String logo; private String aboutinfo; - public Config() { - } - public Config(Integer id, Integer sourcekey, Integer emails, String webname, String explain, String video, Integer backtype, - String links, String notice, String baidu, String domain, String background1, String background2, String sett, - String webms, String webkeywords, String webfavicons, Integer theme,String websubtitle,String logo,String aboutinfo) { - this.id = id; - this.sourcekey = sourcekey; - this.emails = emails; - this.webname = webname; - this.explain = explain; - this.video = video; - this.backtype = backtype; - this.links = links; - this.notice = notice; - this.baidu = baidu; - this.domain = domain; - this.background1 = background1; - this.background2 = background2; - this.sett = sett; - this.webms = webms; - this.webkeywords = webkeywords; - this.webfavicons = webfavicons; - this.theme = theme; - this.websubtitle = websubtitle; - this.logo = logo; - this.aboutinfo = aboutinfo; - - } - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getSourcekey() { - return sourcekey; - } - - public void setSourcekey(Integer sourcekey) { - this.sourcekey = sourcekey; - } - - public Integer getEmails() { - return emails; - } - - public void setEmails(Integer emails) { - this.emails = emails; - } - - public String getWebname() { - return webname; - } - - public void setWebname(String webname) { - this.webname = webname; - } - - public String getExplain() { - return explain; - } - - public void setExplain(String explain) { - this.explain = explain; - } - - public String getVideo() { - return video; - } - - public void setVideo(String video) { - this.video = video; - } - - public Integer getBacktype() { - return backtype; - } - - public void setBacktype(Integer backtype) { - this.backtype = backtype; - } - - public String getLinks() { - return links; - } - - public void setLinks(String links) { - this.links = links; - } - - public String getNotice() { - return notice; - } - - public void setNotice(String notice) { - this.notice = notice; - } - - public String getBaidu() { - return baidu; - } - - public void setBaidu(String baidu) { - this.baidu = baidu; - } - - public String getDomain() { - return domain; - } - - public void setDomain(String domain) { - this.domain = domain; - } - - public String getBackground1() { - return background1; - } - - public void setBackground1(String background1) { - this.background1 = background1; - } - - public String getBackground2() { - return background2; - } - - public void setBackground2(String background2) { - this.background2 = background2; - } - - public String getSett() { - return sett; - } - - public void setSett(String sett) { - this.sett = sett; - } - - public String getWebms() { - return webms; - } - - public void setWebms(String webms) { - this.webms = webms; - } - - public String getWebkeywords() { - return webkeywords; - } - - public void setWebkeywords(String webkeywords) { - this.webkeywords = webkeywords; - } - - public String getWebfavicons() { - return webfavicons; - } - - public void setWebfavicons(String webfavicons) { - this.webfavicons = webfavicons; - } - - public Integer getTheme() { - return theme; - } - - public void setTheme(Integer theme) { - this.theme = theme; - } - - public String getWebsubtitle() { - return websubtitle; - } - - public void setWebsubtitle(String websubtitle) { - this.websubtitle = websubtitle; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getAboutinfo() { - return aboutinfo; - } - - public void setAboutinfo(String aboutinfo) { - this.aboutinfo = aboutinfo; - } } diff --git a/src/main/java/cn/hellohao/service/ConfdataService.java b/src/main/java/cn/hellohao/service/ConfdataService.java new file mode 100644 index 0000000..f4d53f6 --- /dev/null +++ b/src/main/java/cn/hellohao/service/ConfdataService.java @@ -0,0 +1,10 @@ +package cn.hellohao.service; + +import cn.hellohao.pojo.Confdata; +import org.springframework.stereotype.Service; + +@Service +public interface ConfdataService { + Confdata selectConfdata(String key); + Integer updateConfdata(Confdata confdata); +} diff --git a/src/main/java/cn/hellohao/service/ConfigService.java b/src/main/java/cn/hellohao/service/ConfigService.java deleted file mode 100644 index ded4c1f..0000000 --- a/src/main/java/cn/hellohao/service/ConfigService.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.hellohao.service; - -import cn.hellohao.pojo.Config; -import org.springframework.stereotype.Service; - -@Service -public interface ConfigService { - Config getSourceype(); - Integer setSourceype(Config config); -} diff --git a/src/main/java/cn/hellohao/service/impl/AlbumServiceImpl.java b/src/main/java/cn/hellohao/service/impl/AlbumServiceImpl.java index 0b1965b..fb13348 100644 --- a/src/main/java/cn/hellohao/service/impl/AlbumServiceImpl.java +++ b/src/main/java/cn/hellohao/service/impl/AlbumServiceImpl.java @@ -1,7 +1,6 @@ package cn.hellohao.service.impl; import cn.hellohao.dao.AlbumMapper; -import cn.hellohao.dao.ConfigMapper; import cn.hellohao.dao.ImgAndAlbumMapper; import cn.hellohao.dao.ImgMapper; import cn.hellohao.exception.CodeException; @@ -25,7 +24,6 @@ import java.util.List; public class AlbumServiceImpl implements AlbumService { @Autowired AlbumMapper albumMapper; @Autowired ImgAndAlbumMapper andAlbumMapper; - @Autowired ConfigMapper configMapper; @Autowired ImgMapper imgMapper; @Override diff --git a/src/main/java/cn/hellohao/service/impl/ConfdataServiceImpl.java b/src/main/java/cn/hellohao/service/impl/ConfdataServiceImpl.java new file mode 100644 index 0000000..a2e3197 --- /dev/null +++ b/src/main/java/cn/hellohao/service/impl/ConfdataServiceImpl.java @@ -0,0 +1,23 @@ +package cn.hellohao.service.impl; + +import cn.hellohao.dao.ConfdataMapper; +import cn.hellohao.pojo.Confdata; +import cn.hellohao.service.ConfdataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class ConfdataServiceImpl implements ConfdataService { + @Autowired + private ConfdataMapper confdataMapper; + + @Override + public Confdata selectConfdata(String key) { + return confdataMapper.selectConfdata(key); + } + + @Override + public Integer updateConfdata(Confdata confdata) { + return confdataMapper.updateConfdata(confdata); + } +} diff --git a/src/main/java/cn/hellohao/service/impl/ConfigServiceImpl.java b/src/main/java/cn/hellohao/service/impl/ConfigServiceImpl.java deleted file mode 100644 index 915b4b0..0000000 --- a/src/main/java/cn/hellohao/service/impl/ConfigServiceImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package cn.hellohao.service.impl; - -import cn.hellohao.dao.ConfigMapper; -import cn.hellohao.pojo.Config; -import cn.hellohao.pojo.Images; -import cn.hellohao.service.ConfigService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -@Service -public class ConfigServiceImpl implements ConfigService { - @Autowired - private ConfigMapper configMapper; - - @Override - public Config getSourceype() { - return configMapper.getSourceype(); - } - - @Override - public Integer setSourceype(Config config) { - return configMapper.setSourceype(config); - } -} diff --git a/src/main/java/cn/hellohao/utils/FirstRun.java b/src/main/java/cn/hellohao/utils/FirstRun.java index 249fe4a..26fdc4f 100644 --- a/src/main/java/cn/hellohao/utils/FirstRun.java +++ b/src/main/java/cn/hellohao/utils/FirstRun.java @@ -91,6 +91,12 @@ public class FirstRun implements InitializingBean { RunSqlScript.RunInsert(instartAppclient); Print.Normal("Add table.appclient"); } + Integer isconfdata = RunSqlScript.RunSelectCount(isTableName+"'confdata'"); + if(isconfdata==0){ + Integer integer = RunSqlScript.RunInsert(createConfdata); + RunSqlScript.RunInsert(instartConfdata); + Print.Normal("Add table.confdata"); + } // Integer ret6 = RunSqlScript.RunSelectCount(judgeTable+" 'imgdata' and column_name = 'idname'"); // if(ret6==0){ // RunSqlScript.RunInsert(sql11); @@ -127,6 +133,26 @@ public class FirstRun implements InitializingBean { //创建客户端程序相关表 private String createAppclient = "CREATE TABLE `appclient` (`id` varchar(10) NOT NULL,`isuse` varchar(10) NOT NULL,`winpackurl` varchar(255) NULL DEFAULT NULL,`macpackurl` varchar(255) NULL DEFAULT NULL,`appname` varchar(20) NULL,`applogo` varchar(255) NULL,`appupdate` varchar(10) NOT NULL) "; private String instartAppclient = "INSERT INTO `appclient` VALUES ('app', 'on', NULL, NULL, 'Hellohao图像托管', 'https://hellohao.nos-eastchina1.126.net/TbedClient/app.png', '1.0.1');"; + //创建confdata表 + private String createConfdata = "CREATE TABLE tbed.confdata ( `key` varchar(100) NULL, jsondata LONGTEXT NULL )"; + private String instartConfdata = "INSERT INTO `confdata` VALUES ('config', '{" + + " \"sourcekey\":7," + + " \"emails\":1," + + " \"webname\":\"Hellohao图床\"," + + " \"explain\":\"Hellohao图像托管,是一家免费开源的图像托管,即时分享你的美好瞬间。\"," + + " \"links\":\"<p style=\\\"color:#7c7c88;\\\">© 2019 <a href=\\\"http://www.Hellohao.cn/\\\" target=\\\"_blank\\\" title=\\\"Hellohao\\\">Hellohao</a><span> - All Rights Reserved</span> </p>\",\n" + + " \"notice\":\"也许...|这将是最好用的图床|为了更好的用户体验,建议您注册本站继续免费使用Hellohao图床。本站不得上传任何形式的非法图片,一旦发现,永久删除并禁封账户。情节严重者将相关资料交于相关部门处理。\",\n" + + " \"domain\":\"http://127.0.0.1:10088\"," + + " \"background1\":\"\"," + + " \"sett\":\"1\"," + + " \"webms\":\"Hellohao图像托管,是一家免费开源的图像托管,即时分享你的美好瞬间。\"," + + " \"webkeywords\":\"hellohao图床,图床,图片上传,开源图床,hellohao,图像托管,图片分享\"," + + " \"theme\":2," + + " \"websubtitle\":\"这将是你用过最优秀的图像托管程序\"," + + " \"logo\":null," + + " \"aboutinfo\":\"<img width=\\\"300px\\\" src=\\\"http://img.wwery.com/hellohao/rPscRYwz.png\\\">\\n <br />\\n <br />\\n <p>也许,这将是你用到最优秀的图像托管程序</p>\\n <p>本程序为Hellohao图象托管程序</p>\\n <br/>\\n <p style=\\\"color: #656565;\\\">作者:hellohao独立开发</p>\\n <p style=\\\"color: #656565;\\\">www.hellohao.cn</p>\"" + + "}');"; + private String inddx_md5key = "ALTER TABLE imgdata ADD INDEX index_md5key_url ( md5key,imgurl)"; diff --git a/src/main/java/cn/hellohao/utils/NewSendEmail.java b/src/main/java/cn/hellohao/utils/NewSendEmail.java index a8721f3..fc57b86 100644 --- a/src/main/java/cn/hellohao/utils/NewSendEmail.java +++ b/src/main/java/cn/hellohao/utils/NewSendEmail.java @@ -1,14 +1,15 @@ package cn.hellohao.utils; -import cn.hellohao.pojo.Config; import cn.hellohao.pojo.EmailConfig; import cn.hellohao.pojo.Msg; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.HexUtil; +import com.alibaba.fastjson.JSONObject; import com.mitchellbosecke.pebble.PebbleEngine; import com.mitchellbosecke.pebble.template.PebbleTemplate; import io.github.biezhi.ome.OhMyEmail; import org.springframework.core.io.ClassPathResource; + import java.io.StringWriter; import java.io.Writer; import java.util.HashMap; @@ -18,7 +19,7 @@ import java.util.UUID; public class NewSendEmail { - public static Integer sendEmail(EmailConfig emailConfig, String username, String uid, String toEmail, Config config) { + public static Integer sendEmail(EmailConfig emailConfig, String username, String uid, String toEmail, JSONObject jsonObject) { Properties props = new Properties(); props.put("mail.smtp.auth", "true"); @@ -33,8 +34,8 @@ public class NewSendEmail { // OhMyEmail.config(OhMyEmail.SMTP_QQ(false), "xxxx@qq.com", "your@password"); OhMyEmail.config(props, emailConfig.getEmails(), emailConfig.getEmailkey()); - String webname=config.getWebname(); - String domain = config.getDomain(); + String webname=jsonObject.getString("webname"); + String domain = jsonObject.getString("domain"); try { //生成模板 PebbleEngine engine = new PebbleEngine.Builder().build(); @@ -90,7 +91,7 @@ public class NewSendEmail { } - public static Integer sendEmailFindPass(EmailConfig emailConfig,String username, String uid, String toEmail, Config config) { + public static Integer sendEmailFindPass(EmailConfig emailConfig,String username, String uid, String toEmail, JSONObject jsonObject) { Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.ssl.enable", "true"); @@ -103,8 +104,8 @@ public class NewSendEmail { // 配置一次即可,可以配置为静态方法 // OhMyEmail.config(OhMyEmail.SMTP_QQ(false), "xxxx@qq.com", "your@password"); OhMyEmail.config(props, emailConfig.getEmails(), emailConfig.getEmailkey()); - String webname=config.getWebname(); - String domain = config.getDomain(); + String webname=jsonObject.getString("webname"); + String domain = jsonObject.getString("domain"); String new_pass = UUID.randomUUID().toString().replace("-", "").toLowerCase().substring(0,10); try { //生成模板 diff --git a/src/main/java/cn/hellohao/utils/StringUtils.java b/src/main/java/cn/hellohao/utils/StringUtils.java index ecdc9f0..f2d10e7 100644 --- a/src/main/java/cn/hellohao/utils/StringUtils.java +++ b/src/main/java/cn/hellohao/utils/StringUtils.java @@ -1,64 +1,6 @@ package cn.hellohao.utils; -import cn.hellohao.pojo.Keys; - -import java.lang.reflect.Field; -import java.util.Collection; -import java.util.Map; - public class StringUtils { - //此方法目前未使用2020-04-06 - public static Boolean doNull(Integer sourcekey,Keys k) { - if(sourcekey==1){ - if(k.getEndpoint()!=null && k.getAccessSecret()!=null && k.getEndpoint()!=null - && k.getBucketname()!=null && k.getRequestAddress()!=null ){ - if(!k.getEndpoint().equals("") && !k.getAccessSecret().equals("") && !k.getEndpoint().equals("") - && !k.getBucketname().equals("") && !k.getRequestAddress().equals("") ){ - return true; - } - } - }else if(sourcekey==2){ - if(k.getEndpoint()!=null && k.getAccessSecret()!=null && k.getEndpoint()!=null - && k.getBucketname()!=null && k.getRequestAddress()!=null ) { - if(!k.getEndpoint().equals("") && !k.getAccessSecret().equals("") && !k.getEndpoint().equals("") - && !k.getBucketname().equals("") && !k.getRequestAddress().equals("") ) { - return true; - } - } - }else if(sourcekey==3){ - if(k.getEndpoint()!=null && k.getAccessSecret()!=null - && k.getBucketname()!=null && k.getRequestAddress()!=null ) { - if(!k.getEndpoint().equals("") && !k.getAccessSecret().equals("") - && !k.getBucketname().equals("") && !k.getRequestAddress().equals("") ) { - return true; - } - } - }else if(sourcekey==4){ - if (k.getEndpoint() != null && k.getAccessSecret() != null && k.getEndpoint() != null - && k.getBucketname() != null && k.getRequestAddress() != null) { - if (!k.getEndpoint().equals("") && !k.getAccessSecret() .equals("") && !k.getEndpoint() .equals("") - && !k.getBucketname() .equals("") && !k.getRequestAddress().equals("")) { - return true; - } - } - }else if(sourcekey==6){ - if(k.getEndpoint()!=null && k.getAccessSecret()!=null && k.getEndpoint()!=null - && k.getBucketname()!=null && k.getRequestAddress()!=null ) { - if(!k.getEndpoint().equals("") && !k.getAccessSecret().equals("") && !k.getEndpoint().equals("") - && !k.getBucketname().equals("") && !k.getRequestAddress().equals("") ) { - return true; - } - } - }else if(sourcekey==7){ - if(k.getEndpoint()!=null && k.getAccessSecret()!=null && k.getEndpoint()!=null && k.getRequestAddress()!=null ) { - if(!k.getEndpoint().equals("") && !k.getAccessSecret().equals("") && !k.getEndpoint().equals("") && !k.getRequestAddress().equals("") ) { - return true; - } - } - } - return false; - } - /** * 移除 URL 中的第一个 '/' * @return 如 path = '/folder1/file1', 返回 'folder1/file1' diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d362d52..1895caf 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,14 +1,16 @@ +#端口 +server.port=10088 +#前端域名需要带协议头http(s):// +CROS_ALLOWED_ORIGINS=${HELLOHAO_WEB_HOST:http://127.0.0.1:8080} #数据库账号 spring.datasource.username=root #数据库密码test -spring.datasource.password=root +spring.datasource.password=${MYSQL_PASS:923453645} #数据库链接地址 -spring.datasource.url=jdbc:mysql://localhost:3306/tbed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 -#端口 -server.port=8089 -#前端域名需要带协议头http(s):// -CROS_ALLOWED_ORIGINS=http://127.0.0.1:8080 - +#spring.datasource.url=jdbc:mysql://file.tdo.ink:3306/tbed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 +spring.datasource.url=${MYSQL_URL:jdbc:mysql://152.32.134.33:3306/tbed?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8} +#MySQL Driver 无需修改 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #下边的配置项不需要修改。 #logging.config=classpath:logback-spring.xml @@ -19,7 +21,6 @@ mybatis.mapper-locations=classpath:mapper/*.xml logging.level.cn.hellohao.dao=debug spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 -spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.thymeleaf.cache=false multipart.maxFileSize=10240KB diff --git a/src/main/resources/mapper/ConfdataMapper.xml b/src/main/resources/mapper/ConfdataMapper.xml new file mode 100644 index 0000000..ef2ead0 --- /dev/null +++ b/src/main/resources/mapper/ConfdataMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + UPDATE confdata + + + jsondata = #{jsondata}, + + + where `key`=#{key} + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/ConfigMapper.xml b/src/main/resources/mapper/ConfigMapper.xml deleted file mode 100644 index f98e98b..0000000 --- a/src/main/resources/mapper/ConfigMapper.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - UPDATE config - - - sourcekey = #{sourcekey}, - - - emails = #{emails}, - - - webname = #{webname}, - - - `explain` = #{explain}, - - - `video` = #{video}, - - - `backtype` = #{backtype}, - - - `links` = #{links}, - - - `notice` = #{notice}, - - - `baidu` = #{baidu}, - - - `domain` = #{domain}, - - - `background1` = #{background1}, - - - `background2` = #{background2}, - - - `sett` = #{sett}, - - - `webms` = #{webms}, - - - `webkeywords` = #{webkeywords}, - - - `webfavicons` = #{webfavicons}, - - - `theme` = #{theme}, - - - websubtitle = #{websubtitle}, - - - logo = #{logo}, - - - aboutinfo = #{aboutinfo}, - - - - - where id=1 - - - - \ No newline at end of file