From ccec7045ed3305ccf0f7af486789f2ebabee6cc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=E5=98=89=E9=98=B3?= Date: Sun, 25 Feb 2018 16:08:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=AF=B9=E5=AF=86=E4=BF=9D?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E7=9A=84=E8=AE=BE=E7=BD=AE=E5=92=8C=E5=8A=A0?= =?UTF-8?q?=E5=AF=86=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fjy/spring/controller/DataController.java | 41 +++++++----- .../java/com/fjy/spring/domain/TbUserque.java | 23 +++++++ .../repository/TbUserqueRepository.java | 9 +++ .../com/fjy/spring/service/UserService.java | 12 ++++ src/main/resources/static/js/homePage.js | 60 +++++++++++++++++ src/main/resources/static/js/user.js | 64 +++++++++++++++++-- src/main/resources/templates/home/user.html | 38 +++++++++++ .../spring/controller/DataControllerTest.java | 36 +++++++++++ 8 files changed, 263 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/fjy/spring/domain/TbUserque.java create mode 100644 src/main/java/com/fjy/spring/repository/TbUserqueRepository.java create mode 100644 src/test/java/com/fjy/spring/controller/DataControllerTest.java diff --git a/src/main/java/com/fjy/spring/controller/DataController.java b/src/main/java/com/fjy/spring/controller/DataController.java index 982c6d8..d5b27ac 100644 --- a/src/main/java/com/fjy/spring/controller/DataController.java +++ b/src/main/java/com/fjy/spring/controller/DataController.java @@ -4,18 +4,23 @@ import com.fjy.spring.domain.*; import com.fjy.spring.enums.ResultEnum; import com.fjy.spring.exception.UserException; import com.fjy.spring.service.*; +import com.fjy.spring.untils.CodingUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +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.servlet.http.HttpServletRequest; +import java.math.BigInteger; import java.util.List; import static com.fjy.spring.constant.GlobalConstant.USER_SESSION_KEY; @RestController +@Slf4j public class DataController { @Autowired @@ -43,7 +48,7 @@ public class DataController { private VUserfileService vUserfileService; @Resource - HttpServletRequest httpServletRequest; + private HttpServletRequest httpServletRequest; @GetMapping("/home/findAllHomework") public List findAllHomework(){ @@ -51,8 +56,7 @@ public class DataController { if (homeworks!=null){ return homeworks; } - new UserException(ResultEnum.EMPTY_DATA); - return null; + throw new UserException(ResultEnum.EMPTY_DATA); } @GetMapping("/home/findvlog") @@ -61,8 +65,7 @@ public class DataController { if (vlogs!=null){ return vlogs; } - new UserException(ResultEnum.EMPTY_DATA); - return null; + throw new UserException(ResultEnum.EMPTY_DATA); } @GetMapping("/home/findvfeedback") @@ -71,8 +74,7 @@ public class DataController { if (feedBacks!=null){ return feedBacks; } - new UserException(ResultEnum.EMPTY_DATA); - return null; + throw new UserException(ResultEnum.EMPTY_DATA); } @GetMapping("/home/findvcourse") @@ -81,8 +83,7 @@ public class DataController { if (vCourses!=null){ return vCourses; } - new UserException(ResultEnum.EMPTY_DATA); - return null; + throw new UserException(ResultEnum.EMPTY_DATA); } @GetMapping("/home/findalluser") @@ -91,8 +92,7 @@ public class DataController { if (users!=null){ return users; } - new UserException(ResultEnum.EMPTY_DATA); - return null; + throw new UserException(ResultEnum.EMPTY_DATA); } @GetMapping("/home/findallvhomework") @@ -101,8 +101,7 @@ public class DataController { if (vHomeworks!=null){ return vHomeworks; } - new UserException(ResultEnum.EMPTY_DATA); - return null; + throw new UserException(ResultEnum.EMPTY_DATA); } @GetMapping("/home/findStudentInCourseFile") @@ -112,8 +111,7 @@ public class DataController { if (files!=null){ return files; } - new UserException(ResultEnum.EMPTY_DATA); - return null; + throw new UserException(ResultEnum.EMPTY_DATA); } @GetMapping("/home/userinfo") @@ -121,4 +119,17 @@ public class DataController { TbUser user= (TbUser)httpServletRequest.getSession().getAttribute(USER_SESSION_KEY); return userService.findUserInfo(user.getColuserid()); } + + /** + * 存储密保问题 + * @param userque + * @return + */ + @PostMapping("/home/adduserque") + public boolean adduserque(TbUserque userque)throws Exception{ + log.info(userque.toString()); + //对密保问题加密存储 + userque.setAnswer(new BigInteger(CodingUtil.encryptSHA(userque.getAnswer().getBytes())).toString(32)); + return userService.addUserQue(userque); + } } diff --git a/src/main/java/com/fjy/spring/domain/TbUserque.java b/src/main/java/com/fjy/spring/domain/TbUserque.java new file mode 100644 index 0000000..9470f4c --- /dev/null +++ b/src/main/java/com/fjy/spring/domain/TbUserque.java @@ -0,0 +1,23 @@ +package com.fjy.spring.domain; + +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +@Data +public class TbUserque { + + @Id + @Column(name = "coluserid") + private Integer userid; + + @Column(name = "colquestion") + private String question; + + @Column(name = "colanswer") + private String answer; + +} diff --git a/src/main/java/com/fjy/spring/repository/TbUserqueRepository.java b/src/main/java/com/fjy/spring/repository/TbUserqueRepository.java new file mode 100644 index 0000000..482f4d4 --- /dev/null +++ b/src/main/java/com/fjy/spring/repository/TbUserqueRepository.java @@ -0,0 +1,9 @@ +package com.fjy.spring.repository; + +import com.fjy.spring.domain.TbUserque; +import org.springframework.data.jpa.repository.JpaRepository; + + +public interface TbUserqueRepository extends JpaRepository { + +} diff --git a/src/main/java/com/fjy/spring/service/UserService.java b/src/main/java/com/fjy/spring/service/UserService.java index b3c17e2..d83de3c 100644 --- a/src/main/java/com/fjy/spring/service/UserService.java +++ b/src/main/java/com/fjy/spring/service/UserService.java @@ -1,10 +1,12 @@ package com.fjy.spring.service; import com.fjy.spring.domain.TbUser; +import com.fjy.spring.domain.TbUserque; import com.fjy.spring.domain.VUserinfo; import com.fjy.spring.enums.ResultEnum; import com.fjy.spring.exception.UserException; import com.fjy.spring.repository.TbUserRepository; +import com.fjy.spring.repository.TbUserqueRepository; import com.fjy.spring.repository.VUserinfoRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,6 +21,9 @@ public class UserService { @Autowired private TbUserRepository tbUserRepository; + @Autowired + private TbUserqueRepository userqueRepository; + @Autowired private VUserinfoRepository vUserinfoRepository; @@ -66,4 +71,11 @@ public class UserService { return tbUserRepository.findByColname(name); } + public boolean addUserQue(TbUserque userque){ + TbUserque tbUserque = userqueRepository.save(userque); + if (tbUserque!=null) + return true; + return false; + } + } diff --git a/src/main/resources/static/js/homePage.js b/src/main/resources/static/js/homePage.js index 8c391d0..a4ff00c 100644 --- a/src/main/resources/static/js/homePage.js +++ b/src/main/resources/static/js/homePage.js @@ -94,6 +94,66 @@ var Main = { fileList: [], DownloadList: [], 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进行数据获取和绑定', diff --git a/src/main/resources/static/js/user.js b/src/main/resources/static/js/user.js index 3ba75ab..d7880eb 100644 --- a/src/main/resources/static/js/user.js +++ b/src/main/resources/static/js/user.js @@ -1,4 +1,5 @@ var dt = new Date(); +let th = this; var month = dt.getMonth()+1; var day = dt.getDate(); var year = dt.getFullYear(); @@ -14,6 +15,20 @@ function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2002-12-18格式 } var Main = { data() { + var checkQuestion = (rule, value, callback) => { + if (!value) { + return callback(new Error('问题不能为空')); + }else { + callback() + } + }; + var checkAnswer = (rule, value, callback) => { + if (!value) { + return callback(new Error('答案不能为空')); + }else { + callback() + } + }; var checkName = (rule, value, callback) => { if (!value) { return callback(new Error('用户名不能为空')); @@ -65,6 +80,19 @@ var Main = { colpassword: '', checkPass: '', }, + ruleForm3: { + coluserid:'', + question: '', + answer: '' + }, + rules3: { + question: [ + {required: true,validator: checkQuestion, trigger: 'blur'} + ], + answer: [ + {required: true,validator: checkAnswer, trigger: 'blur'} + ] + }, rules2: { colpassword: [ {required: true,validator: validatePass, trigger: 'blur'} @@ -122,17 +150,30 @@ var Main = { type: 'success' }); }, + openNotiError(title, content) { + this.$notify.error({ + title: title, + message: content + }); + }, limitTime(row){ return DateDiff(row.worktime.replace(/([^\s]+)\s.*/, "$1"), cur); }, submitForm(formName, url) { this.$refs[formName].validate((valid) => { - if (true) {//此处暂时去除校验 + var that = this; + var params = new URLSearchParams(); + params.append('userid', '55'); //你要传给后台的参数值 key/value + params.append('question', th.ruleForm3.question.value); + params.append('answer', th.ruleForm3.answer.value); + if (valid) {//此处暂时去除校验 axios({ url: getRootPath_web()+'/' + url, method: 'post', data: { - content: this.$refs.content.value + userid:th.ruleForm3.userid.value, + question:th.ruleForm3.question.value, + answer:th.ruleForm3.answer.value }, transformRequest: [function (data) { // Do whatever you want to transform the data @@ -145,13 +186,26 @@ var Main = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } - }) - console.log(this.$refs.content.value) - this.openNotiSuccess("成功", "修改成功!") + }).then(function (response) { + console.log(response.data); + if (response.data===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.openNotiSuccess("成功", "修改成功!") //this.$options.methods.openNotiSuccess.bind(this)(); //alert('submit!'); } else { console.log('error submit!!'); + that.openNotiError("错误", "表单填写错误!"); return false; } }); diff --git a/src/main/resources/templates/home/user.html b/src/main/resources/templates/home/user.html index 82fc4ae..4fedad0 100644 --- a/src/main/resources/templates/home/user.html +++ b/src/main/resources/templates/home/user.html @@ -66,6 +66,44 @@ + +

设置密保问题

+ + + + + + + + + + + + + + + + + + + + + 提交 + + 重置 + + +
diff --git a/src/test/java/com/fjy/spring/controller/DataControllerTest.java b/src/test/java/com/fjy/spring/controller/DataControllerTest.java new file mode 100644 index 0000000..4fc64e3 --- /dev/null +++ b/src/test/java/com/fjy/spring/controller/DataControllerTest.java @@ -0,0 +1,36 @@ +package com.fjy.spring.controller; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; + +import javax.transaction.Transactional; + +@RunWith(SpringRunner.class) +@SpringBootTest +@AutoConfigureMockMvc +public class DataControllerTest { + + @Autowired + private MockMvc mvc; + + /** + * 使用此单元测试前要注销拦截器,否则测试不通过 + * @throws Exception + */ + @Test + @Transactional + public void adduserque() throws Exception{ + mvc.perform(MockMvcRequestBuilders.post("/home/adduserque") + .param("coluserid","53") + .param("question","您母亲的姓名是?") + .param("answer","YHM")) + .andExpect(MockMvcResultMatchers.content().string("true")); + } +} \ No newline at end of file