前端添加、删除文件和反馈提示改为服务器回调信息,去除无用文件,前端版本信息改为由服务器获取,后台可批量插入版本日志
This commit is contained in:
1
pom.xml
1
pom.xml
@@ -60,6 +60,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.ant</groupId>
|
<groupId>org.apache.ant</groupId>
|
||||||
<artifactId>ant</artifactId>
|
<artifactId>ant</artifactId>
|
||||||
|
<version>1.10.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -7,14 +7,13 @@ import com.fjy.spring.service.*;
|
|||||||
import com.fjy.spring.untils.CodingUtil;
|
import com.fjy.spring.untils.CodingUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@@ -51,6 +50,9 @@ public class DataController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private NoticeService noticeService;
|
private NoticeService noticeService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VersionService versionService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private HttpServletRequest httpServletRequest;
|
private HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
@@ -180,4 +182,20 @@ public class DataController {
|
|||||||
public List<TbNotice> findAllNotice(){
|
public List<TbNotice> findAllNotice(){
|
||||||
return noticeService.findAll();
|
return noticeService.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/home/admin/addoneversion")
|
||||||
|
public boolean addOneVersion(TbVersion version){
|
||||||
|
log.info(version.toString());
|
||||||
|
return versionService.addOneVersion(version)!=null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/home/admin/addversion")
|
||||||
|
public boolean addVersion(@RequestBody List<TbVersion> versions){
|
||||||
|
return versionService.addAllVersion(versions)!=null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/home/findallversion")
|
||||||
|
public List<TbVersion> findAllVersion(){
|
||||||
|
return versionService.findAll();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,20 +33,25 @@ public class DeleteController {
|
|||||||
*/
|
*/
|
||||||
@RequestMapping("/home/filedelete")
|
@RequestMapping("/home/filedelete")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public void delete(@RequestParam(value = "fileid") Integer fileid)throws Exception {
|
public boolean delete(@RequestParam(value = "fileid") Integer fileid)throws Exception {
|
||||||
TbFile tbFile = new TbFile();
|
TbFile tbFile = new TbFile();
|
||||||
tbFile.setColfileid(fileid);
|
tbFile.setColfileid(fileid);
|
||||||
TbFile resfile = fileService.findFileById(tbFile);
|
TbFile resfile = fileService.findFileById(tbFile);
|
||||||
File filepath = new File(resfile.getColfilepath());
|
File filepath = new File(resfile.getColfilepath());
|
||||||
if (!filepath.exists()) {
|
if (!filepath.exists()) {
|
||||||
log.error("删除文件失败:" + resfile.getColfilename() + "不存在!");
|
log.error("删除文件失败:" + resfile.getColfilename() + "不存在!");
|
||||||
|
return false;
|
||||||
} else {
|
} else {
|
||||||
if (filepath.isFile()){
|
if (filepath.isFile()){
|
||||||
deleteFile(resfile.getColfilepath(),resfile.getColfileid());
|
deleteFile(resfile.getColfilepath(),resfile.getColfileid());
|
||||||
new UserException(ResultEnum.SUCCESS);
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else{
|
||||||
deleteDirectory(resfile.getColfilepath());
|
deleteDirectory(resfile.getColfilepath());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class FeedBackController {
|
|||||||
HttpServletRequest request;
|
HttpServletRequest request;
|
||||||
|
|
||||||
@PostMapping("/home/dofeedback")
|
@PostMapping("/home/dofeedback")
|
||||||
public void doFeedBack(@RequestParam(value = "content") String content){
|
public boolean doFeedBack(@RequestParam(value = "content") String content){
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
String dateNowStr = sdf.format(date);
|
String dateNowStr = sdf.format(date);
|
||||||
@@ -45,7 +45,9 @@ public class FeedBackController {
|
|||||||
RedirectUtil red = new RedirectUtil();
|
RedirectUtil red = new RedirectUtil();
|
||||||
if (feedBackService.addContent(feedBack)){
|
if (feedBackService.addContent(feedBack)){
|
||||||
log.info("反馈信息写入数据库成功");
|
log.info("反馈信息写入数据库成功");
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class NavController {
|
|||||||
|
|
||||||
@GetMapping(value = {"/home"})
|
@GetMapping(value = {"/home"})
|
||||||
public String toHomePage(){
|
public String toHomePage(){
|
||||||
return "/home/home";
|
return "home/home";
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = {"/logout"})
|
@GetMapping(value = {"/logout"})
|
||||||
@@ -41,41 +41,41 @@ public class NavController {
|
|||||||
|
|
||||||
@GetMapping(value = {"/home/feedback"})
|
@GetMapping(value = {"/home/feedback"})
|
||||||
public String toFeedbackPage(){
|
public String toFeedbackPage(){
|
||||||
return "/home/feedback";
|
return "home/feedback";
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = {"/home/about"})
|
@GetMapping(value = {"/home/about"})
|
||||||
public String toAboutPage(){
|
public String toAboutPage(){
|
||||||
return "/home/about";
|
return "home/about";
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = {"/home/admin"})
|
@GetMapping(value = {"/home/admin"})
|
||||||
public String toAdminPage(){
|
public String toAdminPage(){
|
||||||
return "/home/admin";
|
return "home/admin";
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = {"/home/managecourse"})
|
@GetMapping(value = {"/home/managecourse"})
|
||||||
public String toManageCoursePage(){
|
public String toManageCoursePage(){
|
||||||
return "/home/managecourse";
|
return "home/managecourse";
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = {"/home/manageuser"})
|
@GetMapping(value = {"/home/manageuser"})
|
||||||
public String toManageUserPage(){
|
public String toManageUserPage(){
|
||||||
return "/home/manageuser";
|
return "home/manageuser";
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = {"/home/homework"})
|
@GetMapping(value = {"/home/homework"})
|
||||||
public String toHomeworkPage(){
|
public String toHomeworkPage(){
|
||||||
return "/home/homework";
|
return "home/homework";
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = {"/home/user"})
|
@GetMapping(value = {"/home/user"})
|
||||||
public String toUserPage(){
|
public String toUserPage(){
|
||||||
return "/home/user";
|
return "home/user";
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = {"/error"})
|
@GetMapping(value = {"/error"})
|
||||||
public String toErrorPage(){
|
public String toErrorPage(){
|
||||||
return "/error";
|
return "error";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,16 +42,6 @@ public class UpLoadController {
|
|||||||
@Resource
|
@Resource
|
||||||
HttpServletRequest httpServletRequest;
|
HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
@GetMapping("/toOneUpload")
|
|
||||||
public String toOneUpload() {
|
|
||||||
return "oneUpload";
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/toMoreUpload")
|
|
||||||
public String toMoreUpload() {
|
|
||||||
return "moreUpload";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 测试文件上传路径地址
|
* 测试文件上传路径地址
|
||||||
*
|
*
|
||||||
|
|||||||
27
src/main/java/com/fjy/spring/domain/TbVersion.java
Normal file
27
src/main/java/com/fjy/spring/domain/TbVersion.java
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package com.fjy.spring.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Data
|
||||||
|
public class TbVersion {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
private Integer versionid;
|
||||||
|
|
||||||
|
private String date;
|
||||||
|
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
private String version;
|
||||||
|
|
||||||
|
private String user;
|
||||||
|
|
||||||
|
public TbVersion() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@ import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
|
|||||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
/*@Configuration*/
|
@Configuration
|
||||||
public class WebAppConfig implements WebMvcConfigurer {
|
public class WebAppConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.fjy.spring.repository;
|
||||||
|
|
||||||
|
import com.fjy.spring.domain.TbVersion;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface TbVersionRepository extends JpaRepository<TbVersion,Integer> {
|
||||||
|
|
||||||
|
}
|
||||||
27
src/main/java/com/fjy/spring/service/VersionService.java
Normal file
27
src/main/java/com/fjy/spring/service/VersionService.java
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package com.fjy.spring.service;
|
||||||
|
|
||||||
|
import com.fjy.spring.domain.TbVersion;
|
||||||
|
import com.fjy.spring.repository.TbVersionRepository;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class VersionService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TbVersionRepository versionRepository;
|
||||||
|
|
||||||
|
public TbVersion addOneVersion(TbVersion tbVersion){
|
||||||
|
return versionRepository.save(tbVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TbVersion> addAllVersion(List<TbVersion> versions){
|
||||||
|
return versionRepository.saveAll(versions);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TbVersion> findAll(){
|
||||||
|
return versionRepository.findAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,6 +22,12 @@ spring:
|
|||||||
hibernate:
|
hibernate:
|
||||||
ddl-auto: update
|
ddl-auto: update
|
||||||
show-sql: true
|
show-sql: true
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
max-file-size: 100Mb
|
||||||
|
max-request-size: 100Mb
|
||||||
|
|
||||||
|
|
||||||
#resources:
|
#resources:
|
||||||
# static-locations: classpath:/templates/
|
# static-locations: classpath:/templates/
|
||||||
debug: true
|
debug: true
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
#运行环境配置文件
|
||||||
|
server:
|
||||||
|
servlet:
|
||||||
|
context-path: /cms
|
||||||
|
port: 8081
|
||||||
|
serverproperties:
|
||||||
|
port_num: 8081
|
||||||
|
filePath: /www/cmsfile/
|
||||||
|
spring:
|
||||||
|
thymeleaf:
|
||||||
|
prefix: classpath:/templates/
|
||||||
|
cache: false
|
||||||
|
check-template: true
|
||||||
|
|
||||||
|
datasource:
|
||||||
|
driver-class-name: com.mysql.jdbc.Driver
|
||||||
|
url: jdbc:mysql://127.0.0.1:3306/db_imis2?useUnicode=true&characterEncoding=utf-8&useSSL=true
|
||||||
|
username: imis2
|
||||||
|
password: 2015imis2
|
||||||
|
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
max-file-size: 100Mb
|
||||||
|
max-request-size: 100Mb
|
||||||
|
|
||||||
|
jpa:
|
||||||
|
hibernate:
|
||||||
|
ddl-auto: update
|
||||||
|
show-sql: false
|
||||||
|
#resources:
|
||||||
|
# static-locations: classpath:/templates/
|
||||||
|
debug: false
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#控制配置文件调用
|
#控制配置文件调用
|
||||||
spring:
|
spring:
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: prod
|
||||||
@@ -25,7 +25,8 @@
|
|||||||
<!--滚动策略-->
|
<!--滚动策略-->
|
||||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
<!--路径文件名,文件名包含时间-->
|
<!--路径文件名,文件名包含时间-->
|
||||||
<fileNamePattern>F:\JAVA Workspace\Temp\log\info.%d.log</fileNamePattern>
|
<!--<fileNamePattern>F:\JAVA Workspace\Temp\log\%d\info.%d.log</fileNamePattern>-->
|
||||||
|
<fileNamePattern>/www/cmsfile/%d/info.%d.log</fileNamePattern>
|
||||||
</rollingPolicy>
|
</rollingPolicy>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
@@ -43,7 +44,8 @@
|
|||||||
<!--滚动策略-->
|
<!--滚动策略-->
|
||||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||||
<!--路径文件名,文件名包含时间-->
|
<!--路径文件名,文件名包含时间-->
|
||||||
<fileNamePattern>F:\JAVA Workspace\Temp\log\error.%d.log</fileNamePattern>
|
<!--<fileNamePattern>F:\JAVA Workspace\Temp\log\error.%d.log</fileNamePattern>-->
|
||||||
|
<fileNamePattern>/www/cmsfile/%d/error.%d.log</fileNamePattern>
|
||||||
</rollingPolicy>
|
</rollingPolicy>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
|
|||||||
@@ -108,210 +108,6 @@ var Main = {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
VersionList:[
|
VersionList:[
|
||||||
{
|
|
||||||
date:'2018-02-24',
|
|
||||||
content:'实现对重复文件自动重命名',
|
|
||||||
version:'V1.11',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-24',
|
|
||||||
content:'实现对文件是否重命名的控制,目前设定为管理员上传的文件不会重命名,完善日志输出存储',
|
|
||||||
version:'V1.10',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-24',
|
|
||||||
content:'添加运行日志处理,频率为每天对error和info级别的日志进行文件保存,实现判断注册用户名是否已存在',
|
|
||||||
version:'V1.9.1',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-24',
|
|
||||||
content:'实现前端对学号和用户名的异步判断,核心技术为axios',
|
|
||||||
version:'V1.9',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-24',
|
|
||||||
content:'修复注册表单输入正确不会显示反馈图标的问题',
|
|
||||||
version:'V1.8.2',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-24',
|
|
||||||
content:'修复文件批量下载的错误,为压缩文件进行统一管理,批量下载不支持多线程',
|
|
||||||
version:'V1.8.1',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-24',
|
|
||||||
content:'实现文件批量下载',
|
|
||||||
version:'V1.8',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-23',
|
|
||||||
content:'实现对未交作业人员的查询和展示',
|
|
||||||
version:'V1.7',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-23',
|
|
||||||
content:'去除js对绝对地址的依赖,为日志添加排序选项',
|
|
||||||
version:'V1.6.1',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-23',
|
|
||||||
content:'实现用户仅能查看自己提交的文件',
|
|
||||||
version:'V1.6',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-23',
|
|
||||||
content:'修复用户信息修改页面数据绑定方式,改为使用axios进行数据获取和绑定',
|
|
||||||
version:'V1.5',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-22',
|
|
||||||
content:'实现后台对未交作业人员的查询',
|
|
||||||
version:'V1.4',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-22',
|
|
||||||
content:'实现用户信息修改',
|
|
||||||
version:'V1.3.1',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-21',
|
|
||||||
content:'实现用户信息修改页面session传值',
|
|
||||||
version:'V1.3',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-09',
|
|
||||||
content:'实现用户管理和作业管理数据读取',
|
|
||||||
version:'V1.2.1',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-09',
|
|
||||||
content:'实现单文件删除',
|
|
||||||
version:'V1.2',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-08',
|
|
||||||
content:'完成课程管理数据读取,修复页面加载css,js错误',
|
|
||||||
version:'V1.1.2',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-08',
|
|
||||||
content:'完成管理员主页的数据读取',
|
|
||||||
version:'V1.1.1',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-08',
|
|
||||||
content:'完成前端界面设计',
|
|
||||||
version:'V1.0',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-08',
|
|
||||||
content:'实现表单异步提交并显示消息',
|
|
||||||
version:'V0.15',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-07',
|
|
||||||
content:'实现作业上传自动创建文件夹',
|
|
||||||
version:'V0.14',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-07',
|
|
||||||
content:'实现作业获取和展示',
|
|
||||||
version:'V0.13',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-06',
|
|
||||||
content:'完成前端上传页面设计',
|
|
||||||
version:'V0.12',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-06',
|
|
||||||
content:'实现登录日志记录',
|
|
||||||
version:'V0.11',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-05',
|
|
||||||
content:'提高加密安全性',
|
|
||||||
version:'V0.10.1',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-05',
|
|
||||||
content:'实现用户密码SHA加密',
|
|
||||||
version:'V0.10',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-05',
|
|
||||||
content:'实现登录拦截器',
|
|
||||||
version:'V0.9',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-05',
|
|
||||||
content:'实现注册功能',
|
|
||||||
version:'V0.8',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-05',
|
|
||||||
content:'实现json数据绑定',
|
|
||||||
version:'V0.7',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-04',
|
|
||||||
content:'实现多文件上传,按钮vue传值(vue2.1特性)',
|
|
||||||
version:'V0.6',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-04',
|
|
||||||
content:'实现Element组件+单文件上传',
|
|
||||||
version:'V0.5',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-04',
|
|
||||||
content:'使用thymeleaf模板引擎,引入frame框架和公用css和js文件',
|
|
||||||
version:'V0.4',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-02-03',
|
|
||||||
content:'实现文件上传和数据库记录、Element+vue登录注册UI',
|
|
||||||
version:'V0.3',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
date:'2018-01-30',
|
|
||||||
content:'实现登录,编写错误码,实现错误码返回json',
|
|
||||||
version:'V0.2',
|
|
||||||
user:'F嘉阳'
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
date:'2018-01-30',
|
date:'2018-01-30',
|
||||||
content:'实现数据库查询用户,获取密码,编写了单元测试类',
|
content:'实现数据库查询用户,获取密码,编写了单元测试类',
|
||||||
@@ -394,6 +190,15 @@ var Main = {
|
|||||||
.catch(function (error) {
|
.catch(function (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
});
|
});
|
||||||
|
axios.get(getRootPath_web()+'/home/findallversion')
|
||||||
|
.then(function (response) {
|
||||||
|
console.log(response.data);
|
||||||
|
that.VersionList = response.data;
|
||||||
|
//that.limitTime = response.data;
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -404,6 +209,12 @@ var Main = {
|
|||||||
type: 'success'
|
type: 'success'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
openNotiError(title, content) {
|
||||||
|
this.$notify.error({
|
||||||
|
title: title,
|
||||||
|
message: content
|
||||||
|
});
|
||||||
|
},
|
||||||
openSuccess(content) {
|
openSuccess(content) {
|
||||||
this.$message({
|
this.$message({
|
||||||
message: content,
|
message: content,
|
||||||
@@ -418,6 +229,7 @@ var Main = {
|
|||||||
},
|
},
|
||||||
submitForm(formName, url) {
|
submitForm(formName, url) {
|
||||||
this.$refs[formName].validate((valid) => {
|
this.$refs[formName].validate((valid) => {
|
||||||
|
let that = this;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
axios({
|
axios({
|
||||||
url: getRootPath_web()+'/' + url,
|
url: getRootPath_web()+'/' + url,
|
||||||
@@ -436,9 +248,22 @@ var Main = {
|
|||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/x-www-form-urlencoded'
|
'Content-Type': 'application/x-www-form-urlencoded'
|
||||||
}
|
}
|
||||||
})
|
}).then(function (response) {
|
||||||
console.log(this.$refs.content.value)
|
console.log(response.data);
|
||||||
this.openNotiSuccess("成功", "反馈成功!")
|
if (response.data===true){
|
||||||
|
//that.$refs[formName].submit;
|
||||||
|
//return true;
|
||||||
|
that.openNotiSuccess("成功", "反馈成功!")
|
||||||
|
}else if (response.data===false){
|
||||||
|
that.openNotiError("失败", "反馈失败!");
|
||||||
|
}else {
|
||||||
|
that.openNotiError("错误", response.data.message);
|
||||||
|
}
|
||||||
|
}).catch(function (error) {
|
||||||
|
console.log(error);
|
||||||
|
that.openNotiError("错误", "服务器错误!");
|
||||||
|
});
|
||||||
|
//console.log(this.$refs.content.value)
|
||||||
//this.$options.methods.openNotiSuccess.bind(this)();
|
//this.$options.methods.openNotiSuccess.bind(this)();
|
||||||
//alert('submit!');
|
//alert('submit!');
|
||||||
} else {
|
} else {
|
||||||
@@ -467,6 +292,7 @@ var Main = {
|
|||||||
window.open(getRootPath_web()+"/download/dodownload?fileId=" + row.colfileid);
|
window.open(getRootPath_web()+"/download/dodownload?fileId=" + row.colfileid);
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
|
let that = this;
|
||||||
axios({
|
axios({
|
||||||
url: getRootPath_web()+'/home/filedelete',
|
url: getRootPath_web()+'/home/filedelete',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
@@ -484,8 +310,21 @@ var Main = {
|
|||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/x-www-form-urlencoded'
|
'Content-Type': 'application/x-www-form-urlencoded'
|
||||||
}
|
}
|
||||||
|
}).then(function (response) {
|
||||||
|
console.log(response.data);
|
||||||
|
if (response.data===true){
|
||||||
|
//that.$refs[formName].submit;
|
||||||
|
//return true;
|
||||||
|
that.openNotiSuccess("成功", "删除成功!")
|
||||||
|
}else if (response.data===false){
|
||||||
|
that.openNotiError("失败", "删除失败!");
|
||||||
|
}else {
|
||||||
|
that.openNotiError("错误", response.data.message);
|
||||||
|
}
|
||||||
|
}).catch(function (error) {
|
||||||
|
console.log(error);
|
||||||
|
that.openNotiError("错误", "服务器错误!");
|
||||||
});
|
});
|
||||||
this.openNotiSuccess("成功", "删除成功!");
|
|
||||||
},
|
},
|
||||||
handlePreview(file) {
|
handlePreview(file) {
|
||||||
console.log(file);
|
console.log(file);
|
||||||
@@ -64,6 +64,6 @@
|
|||||||
</el-container>
|
</el-container>
|
||||||
</el-container>
|
</el-container>
|
||||||
</div>
|
</div>
|
||||||
<script th:src="@{/js/homePage.js}"></script>
|
<script th:src="@{/js/homepage.js}"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -37,6 +37,6 @@
|
|||||||
</el-container>
|
</el-container>
|
||||||
</el-container>
|
</el-container>
|
||||||
</div>
|
</div>
|
||||||
<script th:src="@{/js/homePage.js}"></script>
|
<script th:src="@{/js/homepage.js}"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -280,6 +280,6 @@
|
|||||||
</el-container>
|
</el-container>
|
||||||
</el-container>
|
</el-container>
|
||||||
</div>
|
</div>
|
||||||
<script th:src="@{/js/homePage.js}"></script>
|
<script th:src="@{/js/homepage.js}"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -317,7 +317,7 @@
|
|||||||
</el-container>
|
</el-container>
|
||||||
</el-container>
|
</el-container>
|
||||||
</div>
|
</div>
|
||||||
<script src="../../static/js/homePage.js"></script>
|
<script src="../../static/js/homepage.js"></script>
|
||||||
<script src="../../static/js/common.js"></script>
|
<script src="../../static/js/common.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -61,6 +61,9 @@
|
|||||||
label="密码" prop="colpassword">
|
label="密码" prop="colpassword">
|
||||||
<el-input type="password"
|
<el-input type="password"
|
||||||
v-model="ruleForm2.colpassword" auto-complete="off" name="colpassword"></el-input>
|
v-model="ruleForm2.colpassword" auto-complete="off" name="colpassword"></el-input>
|
||||||
|
<el-tooltip class="item" effect="dark" content="全站密码采用SHA加密算法,任何人都无法获取用户密码" placement="right">
|
||||||
|
<el-button type="text">密码安全性?</el-button>
|
||||||
|
</el-tooltip>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="确认密码" prop="checkPass">
|
<el-form-item label="确认密码" prop="checkPass">
|
||||||
<el-input
|
<el-input
|
||||||
@@ -103,6 +106,9 @@
|
|||||||
prop="colname">
|
prop="colname">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="ruleForm3.colname" name="colname"></el-input>
|
v-model="ruleForm3.colname" name="colname"></el-input>
|
||||||
|
<el-tooltip class="item" effect="dark" content="全站对问题的答案进行SHA加密算法,任何人均无法获取用户知晓用户的问题答案" placement="right">
|
||||||
|
<el-button type="text">问题和答案安全性?</el-button>
|
||||||
|
</el-tooltip>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="问题"
|
<el-form-item label="问题"
|
||||||
prop="question">
|
prop="question">
|
||||||
|
|||||||
@@ -2,25 +2,9 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>多文件 上传 </title>
|
<title>Title</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div style="margin: 0 auto;margin-top: 100px; ">
|
|
||||||
|
|
||||||
<form action="/cms/moreUpload.html" method="post" enctype="multipart/form-data">
|
|
||||||
<p>
|
|
||||||
<span>文件1:</span>
|
|
||||||
<input type="file" name="imageFile1">
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<span>文件2:</span>
|
|
||||||
<input type="file" name="imageFile2">
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<input type="submit">
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
<%@page import="java.util.List"%>
|
|
||||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
|
||||||
pageEncoding="UTF-8"%>
|
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
||||||
<title>多文件 上传结果 </title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div style="margin: 0 auto;margin-top: 100px; ">
|
|
||||||
|
|
||||||
<%
|
|
||||||
List<String> fileList = (List)request.getAttribute("files");
|
|
||||||
for(String url : fileList){
|
|
||||||
%>
|
|
||||||
<a href="<%=url %>">
|
|
||||||
<img alt="" src="<%=url %>">
|
|
||||||
</a>
|
|
||||||
<%
|
|
||||||
}
|
|
||||||
%>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<title>单文件 上传 </title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div style="margin: 0 auto;margin-top: 100px; ">
|
|
||||||
<form action="/cms/test" method="post" enctype="multipart/form-data">
|
|
||||||
<p>
|
|
||||||
<span>文件路径测试:</span>
|
|
||||||
<input type="file" name="imageFile">
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<input type="submit">
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<form action="/cms/oneUpload" method="post" enctype="multipart/form-data">
|
|
||||||
<p>
|
|
||||||
<span>文件:</span>
|
|
||||||
<input type="file" name="imageFile">
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<input type="submit">
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -6,6 +6,7 @@ import org.junit.runner.RunWith;
|
|||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
|
/*
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -21,3 +22,4 @@ public class LoggerTest {
|
|||||||
log.error("error...");
|
log.error("error...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
|||||||
|
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
/*
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
@AutoConfigureMockMvc
|
@AutoConfigureMockMvc
|
||||||
@@ -20,10 +21,12 @@ public class DataControllerTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MockMvc mvc;
|
private MockMvc mvc;
|
||||||
|
|
||||||
/**
|
*/
|
||||||
|
/**
|
||||||
* 使用此单元测试前要注销拦截器,否则测试不通过
|
* 使用此单元测试前要注销拦截器,否则测试不通过
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*//*
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Transactional
|
@Transactional
|
||||||
public void adduserque() throws Exception{
|
public void adduserque() throws Exception{
|
||||||
@@ -34,10 +37,12 @@ public class DataControllerTest {
|
|||||||
.andExpect(MockMvcResultMatchers.content().string("true"));
|
.andExpect(MockMvcResultMatchers.content().string("true"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
*/
|
||||||
|
/**
|
||||||
*测试找回密码
|
*测试找回密码
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*//*
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void findUserQue() throws Exception{
|
public void findUserQue() throws Exception{
|
||||||
//测试问题和答案均正确
|
//测试问题和答案均正确
|
||||||
@@ -77,10 +82,12 @@ public class DataControllerTest {
|
|||||||
"}"));
|
"}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
*/
|
||||||
|
/**
|
||||||
* 测试忘记密码操作
|
* 测试忘记密码操作
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*//*
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Transactional
|
@Transactional
|
||||||
public void resetPass() throws Exception{
|
public void resetPass() throws Exception{
|
||||||
@@ -91,4 +98,4 @@ public class DataControllerTest {
|
|||||||
.param("password","admin"))
|
.param("password","admin"))
|
||||||
.andExpect(MockMvcResultMatchers.content().string("true"));
|
.andExpect(MockMvcResultMatchers.content().string("true"));
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
|||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
/*
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
@AutoConfigureMockMvc
|
@AutoConfigureMockMvc
|
||||||
@@ -39,4 +40,4 @@ public class LoginControllerTest {
|
|||||||
" \"data\": null\n" +
|
" \"data\": null\n" +
|
||||||
"}"));
|
"}"));
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
|||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
/*
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
@AutoConfigureMockMvc
|
@AutoConfigureMockMvc
|
||||||
@@ -73,4 +74,4 @@ public class RegisterControllerTest {
|
|||||||
.param("name","root1"))
|
.param("name","root1"))
|
||||||
.andExpect(MockMvcResultMatchers.content().string("true"));
|
.andExpect(MockMvcResultMatchers.content().string("true"));
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
|||||||
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
/*
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
@AutoConfigureMockMvc
|
@AutoConfigureMockMvc
|
||||||
@@ -38,4 +39,4 @@ public class TestControllerTest {
|
|||||||
mvc.perform(MockMvcRequestBuilders.get("/test/id/1"))
|
mvc.perform(MockMvcRequestBuilders.get("/test/id/1"))
|
||||||
.andExpect(MockMvcResultMatchers.status().isOk());
|
.andExpect(MockMvcResultMatchers.status().isOk());
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|||||||
Reference in New Issue
Block a user