Browse Source

Merge branch 'dev'

Feick 3 years ago
parent
commit
e45c1c5a7b
58 changed files with 192 additions and 253 deletions
  1. 3 4
      Dockerfile
  2. 1 1
      src/main/java/com/yaoxiang/diagnosis/authority/AuthCheck.java
  3. 2 10
      src/main/java/com/yaoxiang/diagnosis/authority/AuthCheckAspect.java
  4. 1 1
      src/main/java/com/yaoxiang/diagnosis/authority/AuthCheckException.java
  5. 1 1
      src/main/java/com/yaoxiang/diagnosis/authority/AuthService.java
  6. 0 1
      src/main/java/com/yaoxiang/diagnosis/authority/AuthServiceImpl.java
  7. 3 5
      src/main/java/com/yaoxiang/diagnosis/config/DiagnosisConfig.java
  8. 1 2
      src/main/java/com/yaoxiang/diagnosis/config/LoginSuccessHandler.java
  9. 7 4
      src/main/java/com/yaoxiang/diagnosis/config/MinioConfig.java
  10. 1 1
      src/main/java/com/yaoxiang/diagnosis/config/MinioProperties.java
  11. 0 1
      src/main/java/com/yaoxiang/diagnosis/config/MvcConfig.java
  12. 0 1
      src/main/java/com/yaoxiang/diagnosis/config/Swagger2Config.java
  13. 3 6
      src/main/java/com/yaoxiang/diagnosis/config/UploadProperties.java
  14. 6 4
      src/main/java/com/yaoxiang/diagnosis/config/WebSecurityConfig.java
  15. 1 3
      src/main/java/com/yaoxiang/diagnosis/controller/FileController.java
  16. 0 1
      src/main/java/com/yaoxiang/diagnosis/controller/LearnRecordController.java
  17. 1 1
      src/main/java/com/yaoxiang/diagnosis/controller/OpenController.java
  18. 1 1
      src/main/java/com/yaoxiang/diagnosis/controller/PaperCommitController.java
  19. 3 4
      src/main/java/com/yaoxiang/diagnosis/controller/PaperController.java
  20. 2 3
      src/main/java/com/yaoxiang/diagnosis/controller/PaperResultController.java
  21. 1 3
      src/main/java/com/yaoxiang/diagnosis/controller/QuestionController.java
  22. 2 2
      src/main/java/com/yaoxiang/diagnosis/controller/RemarkTemplateController.java
  23. 1 2
      src/main/java/com/yaoxiang/diagnosis/controller/ReportController.java
  24. 1 1
      src/main/java/com/yaoxiang/diagnosis/controller/RoleController.java
  25. 6 3
      src/main/java/com/yaoxiang/diagnosis/controller/SpecialDiagnosisController.java
  26. 5 5
      src/main/java/com/yaoxiang/diagnosis/controller/SpecialExportController.java
  27. 2 3
      src/main/java/com/yaoxiang/diagnosis/controller/SpecialReportController.java
  28. 0 1
      src/main/java/com/yaoxiang/diagnosis/controller/UserInfoController.java
  29. 30 13
      src/main/java/com/yaoxiang/diagnosis/controller/UserManagerController.java
  30. 10 2
      src/main/java/com/yaoxiang/diagnosis/dao/UserRepo.java
  31. 5 5
      src/main/java/com/yaoxiang/diagnosis/entity/LearnDeskMapper.java
  32. 2 2
      src/main/java/com/yaoxiang/diagnosis/service/ChapterService.java
  33. 5 13
      src/main/java/com/yaoxiang/diagnosis/service/CommitService.java
  34. 0 1
      src/main/java/com/yaoxiang/diagnosis/service/LearnRecordService.java
  35. 2 6
      src/main/java/com/yaoxiang/diagnosis/service/LearnTagService.java
  36. 2 2
      src/main/java/com/yaoxiang/diagnosis/service/MatterService.java
  37. 4 4
      src/main/java/com/yaoxiang/diagnosis/service/PaperCountService.java
  38. 4 6
      src/main/java/com/yaoxiang/diagnosis/service/PaperResultService.java
  39. 4 8
      src/main/java/com/yaoxiang/diagnosis/service/PaperService.java
  40. 2 2
      src/main/java/com/yaoxiang/diagnosis/service/PaperTemplateService.java
  41. 3 3
      src/main/java/com/yaoxiang/diagnosis/service/QuestionService.java
  42. 2 6
      src/main/java/com/yaoxiang/diagnosis/service/RoleService.java
  43. 2 3
      src/main/java/com/yaoxiang/diagnosis/service/ScoreSegmentService.java
  44. 7 7
      src/main/java/com/yaoxiang/diagnosis/service/SpecialKnowledgeService.java
  45. 1 1
      src/main/java/com/yaoxiang/diagnosis/service/SpecialMindService.java
  46. 1 6
      src/main/java/com/yaoxiang/diagnosis/service/SpecialReportService.java
  47. 3 3
      src/main/java/com/yaoxiang/diagnosis/service/SubjectAbilityService.java
  48. 3 3
      src/main/java/com/yaoxiang/diagnosis/service/SubjectService.java
  49. 19 16
      src/main/java/com/yaoxiang/diagnosis/service/UserService.java
  50. 4 3
      src/main/java/com/yaoxiang/diagnosis/util/ExportUtil.java
  51. 0 1
      src/main/java/com/yaoxiang/diagnosis/util/MD5Util.java
  52. 14 13
      src/main/java/com/yaoxiang/diagnosis/util/OSSUtil.java
  53. 2 2
      src/main/java/com/yaoxiang/diagnosis/util/ObjectUtil.java
  54. 2 1
      src/main/resources/application-cloud.properties
  55. 1 1
      src/main/resources/application-dev.properties
  56. 0 21
      src/main/resources/application-docker.properties
  57. 0 22
      src/main/resources/application-prod.properties
  58. 3 2
      src/main/resources/application.properties

+ 3 - 4
Dockerfile

@@ -1,7 +1,6 @@
-FROM frolvlad/alpine-java
-VOLUME /tmp
-WORKDIR /tmp
+FROM feick/alpine-java
+VOLUME /app
+WORKDIR /app
 COPY target/*.jar app.jar
-RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone && apk del tzdata
 ENTRYPOINT ["sh", "-c", "java -Dserver.port=8080 -Dspring.profiles.active=cloud -Duser.timezone=GMT+8 ${JAVA_OPTS} -jar app.jar ${0} ${@}"]
 EXPOSE 8080

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/authority/AuthCheck.java

@@ -7,7 +7,7 @@ import java.lang.annotation.*;
  */
 @Documented
 @Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.METHOD,ElementType.TYPE})
+@Target({ElementType.METHOD, ElementType.TYPE})
 public @interface AuthCheck {
 
     String role() default "";

+ 2 - 10
src/main/java/com/yaoxiang/diagnosis/authority/AuthCheckAspect.java

@@ -1,24 +1,16 @@
 package com.yaoxiang.diagnosis.authority;
 
-import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.util.SecurityUtil;
-import org.apache.commons.lang3.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.Signature;
 import org.aspectj.lang.annotation.Around;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Pointcut;
 import org.aspectj.lang.reflect.MethodSignature;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Component;
 import org.springframework.util.Assert;
 
@@ -53,10 +45,10 @@ public class AuthCheckAspect {
         String authority = authCheck.authority();
         boolean access = authService.check(principal, role, authority);
         logger.info("checking authority,class={},method={}, principal={},role={},authority={},access={},args={}",
-                joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName(), principal, role, authority, access,joinPoint.getArgs());
+                joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName(), principal, role, authority, access, joinPoint.getArgs());
         Object result;
         try {
-            Assert.isTrue(access,"Auth check fail");
+            Assert.isTrue(access, "Auth check fail");
             result = joinPoint.proceed();
         } catch (Exception e) {
             logger.error("internal server error", e);

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/authority/AuthCheckException.java

@@ -1,6 +1,6 @@
 package com.yaoxiang.diagnosis.authority;
 
-public class AuthCheckException extends RuntimeException{
+public class AuthCheckException extends RuntimeException {
     public AuthCheckException() {
     }
 

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/authority/AuthService.java

@@ -2,6 +2,6 @@ package com.yaoxiang.diagnosis.authority;
 
 public interface AuthService {
 
-    boolean check(String principal,String role, String authority);
+    boolean check(String principal, String role, String authority);
 
 }

+ 0 - 1
src/main/java/com/yaoxiang/diagnosis/authority/AuthServiceImpl.java

@@ -6,7 +6,6 @@ import com.yaoxiang.diagnosis.service.RoleService;
 import com.yaoxiang.diagnosis.service.UserService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
-import org.springframework.util.Assert;
 
 import javax.annotation.Resource;
 import java.util.List;

+ 3 - 5
src/main/java/com/yaoxiang/diagnosis/config/DiagnosisConfig.java

@@ -10,7 +10,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
 
 import javax.sql.DataSource;
 import java.io.File;
@@ -21,6 +20,7 @@ import java.util.concurrent.Executors;
 @Configuration
 public class DiagnosisConfig {
 
+    private static final Logger logger = LoggerFactory.getLogger(DiagnosisConfig.class);
     @Value("${spring.servlet.multipart.location:d:/tomcat/uploadTemp/}")
     private String tempLocation;
     @Value("${uploadLocation:d:/tomcat/upload/}")
@@ -28,9 +28,7 @@ public class DiagnosisConfig {
     @Value("${uploadPattern:/upload/**}")
     private String uploadPattern;
 
-    private static final Logger logger = LoggerFactory.getLogger(DiagnosisConfig.class);
-
-//    @Bean
+    //    @Bean
     public UploadProperties uploadProperties() {
         String[] dirs = {tempLocation, uploadLocation + UploadProperties.DOC_PATH, uploadLocation + UploadProperties.OTHER_PATH,
                 uploadLocation + UploadProperties.IMAGE_PATH, uploadLocation + UploadProperties.EXCEL_PATH};
@@ -69,7 +67,7 @@ public class DiagnosisConfig {
     @Bean
 //    @Profile("dev")
     @ConfigurationProperties("spring.datasource")
-    DataSource dataSource(){
+    DataSource dataSource() {
         return new DruidDataSource();
     }
 }

+ 1 - 2
src/main/java/com/yaoxiang/diagnosis/config/LoginSuccessHandler.java

@@ -20,11 +20,10 @@ import java.util.Collection;
  */
 public class LoginSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler {
 
+    private static final Logger logger = LoggerFactory.getLogger(LoginSuccessHandler.class);
     @Value("${web.loginFrom:admin}")
     private String loginFrom;
 
-    private static final Logger logger = LoggerFactory.getLogger(LoginSuccessHandler.class);
-
     @Override
     public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
 

+ 7 - 4
src/main/java/com/yaoxiang/diagnosis/config/MinioConfig.java

@@ -10,7 +10,10 @@ import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
-import javax.net.ssl.*;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.X509TrustManager;
 import java.security.GeneralSecurityException;
 import java.security.SecureRandom;
 import java.util.*;
@@ -68,9 +71,9 @@ public class MinioConfig {
         logger.info("init MinioClient,url is {} , accessKey is {} , secretKey is ***", properties.getUrl(), properties.getAccessKey());
         MinioClient client = null;
         if (properties.isSecure()) {
-             client = new MinioClient(properties.getUrl(), properties.getSecurePort(), properties.getAccessKey(), properties.getSecretKey(), null, true, okHttpClient());
-        }else {
-            client = new MinioClient(properties.getUrl(),properties.getAccessKey(),properties.getSecretKey());
+            client = new MinioClient(properties.getUrl(), properties.getSecurePort(), properties.getAccessKey(), properties.getSecretKey(), null, true, okHttpClient());
+        } else {
+            client = new MinioClient(properties.getUrl(), properties.getAccessKey(), properties.getSecretKey());
         }
         Set<String> buckets = new HashSet<>(Arrays.asList(properties.getBuckets()));
         buckets.add(properties.getDefaultBucket());

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/config/MinioProperties.java

@@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 public class MinioProperties {
 
     public static final String DEFAULT_BUCKET = "bucket";
-    private String prefix = "/file/download/";
+    private String prefix = "/rest/diagnosis/file/download/";
 
     private String url;
     private String[] buckets = {};

+ 0 - 1
src/main/java/com/yaoxiang/diagnosis/config/MvcConfig.java

@@ -3,7 +3,6 @@ package com.yaoxiang.diagnosis.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 

+ 0 - 1
src/main/java/com/yaoxiang/diagnosis/config/Swagger2Config.java

@@ -3,7 +3,6 @@ package com.yaoxiang.diagnosis.config;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
 import springfox.documentation.builders.ApiInfoBuilder;
 import springfox.documentation.builders.PathSelectors;
 import springfox.documentation.builders.RequestHandlerSelectors;

+ 3 - 6
src/main/java/com/yaoxiang/diagnosis/config/UploadProperties.java

@@ -2,16 +2,13 @@ package com.yaoxiang.diagnosis.config;
 
 public class UploadProperties {
 
-    private String uploadPattern;
-    private String tempLocation;
-    private String uploadLocation;
     public static final String IMAGE_PATH = "image/";
-
     public static final String DOC_PATH = "doc/";
-
     public static final String EXCEL_PATH = "excel/";
-
     public static final String OTHER_PATH = "other/";
+    private String uploadPattern;
+    private String tempLocation;
+    private String uploadLocation;
 
     public String getUploadPattern() {
         return uploadPattern;

+ 6 - 4
src/main/java/com/yaoxiang/diagnosis/config/WebSecurityConfig.java

@@ -1,9 +1,9 @@
 package com.yaoxiang.diagnosis.config;
 
 import com.yaoxiang.diagnosis.entity.UserInfo;
-import com.yaoxiang.diagnosis.service.UserService;
-import com.yaoxiang.diagnosis.util.MD5Util;
 import com.yaoxiang.diagnosis.model.AuthUser;
+import com.yaoxiang.diagnosis.service.UserService;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -95,12 +95,14 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         return new PasswordEncoder() {
             @Override
             public String encode(CharSequence rawPassword) {
-                return MD5Util.INSTANCE.md5((String) rawPassword);
+                return DigestUtils.md5Hex((String) rawPassword);
+                //                return MD5Util.INSTANCE.md5((String) rawPassword);
             }
 
             @Override
             public boolean matches(CharSequence rawPassword, String encodedPassword) {
-                return encodedPassword.equals(MD5Util.INSTANCE.md5((String) rawPassword));
+                return encodedPassword.equalsIgnoreCase(encode(rawPassword));
+//                return encodedPassword.equals(MD5Util.INSTANCE.md5((String) rawPassword));
             }
         };
     }

+ 1 - 3
src/main/java/com/yaoxiang/diagnosis/controller/FileController.java

@@ -1,19 +1,17 @@
 package com.yaoxiang.diagnosis.controller;
 
 import com.yaoxiang.diagnosis.file.FileService;
+import com.yaoxiang.diagnosis.model.Reply;
 import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.util.OSSUtil;
-import com.yaoxiang.diagnosis.model.Reply;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.UUID;
 
 /**
  * @AUTHOR: DaiFengWen

+ 0 - 1
src/main/java/com/yaoxiang/diagnosis/controller/LearnRecordController.java

@@ -1,6 +1,5 @@
 package com.yaoxiang.diagnosis.controller;
 
-import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.entity.LearnRecord;
 import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.service.LearnRecordService;

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/controller/OpenController.java

@@ -1,7 +1,7 @@
 package com.yaoxiang.diagnosis.controller;
 
-import com.yaoxiang.diagnosis.entity.UserInfo;
 import com.yaoxiang.diagnosis.config.Constants;
+import com.yaoxiang.diagnosis.entity.UserInfo;
 import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.service.UserService;
 import io.swagger.annotations.Api;

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/controller/PaperCommitController.java

@@ -1,7 +1,7 @@
 package com.yaoxiang.diagnosis.controller;
 
-import com.yaoxiang.diagnosis.entity.PaperCommit;
 import com.yaoxiang.diagnosis.config.Constants;
+import com.yaoxiang.diagnosis.entity.PaperCommit;
 import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.service.CommitService;
 import io.swagger.annotations.Api;

+ 3 - 4
src/main/java/com/yaoxiang/diagnosis/controller/PaperController.java

@@ -1,19 +1,18 @@
 package com.yaoxiang.diagnosis.controller;
 
-import com.yaoxiang.diagnosis.file.FileService;
-import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.entity.Paper;
+import com.yaoxiang.diagnosis.file.FileService;
 import com.yaoxiang.diagnosis.model.PaperVo;
 import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.service.PaperService;
+import com.yaoxiang.diagnosis.util.CommonUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.FileCopyUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
@@ -102,7 +101,7 @@ public class PaperController {
         String suffix = file.getOriginalFilename().substring(suffixIndex);
         String saveName = CommonUtil.randomUUID() + suffix;
         byte[] data = baos.toByteArray();
-        logger.info("正在上传试卷,subjectId={},grade={}",paperVo.getSubjectId(),paperVo.getGrade());
+        logger.info("正在上传试卷,subjectId={},grade={}", paperVo.getSubjectId(), paperVo.getGrade());
         String url = fileService.upload(data, saveName);
         if (StringUtils.isEmpty(url)) {
             return Result.fail("文件上传失败,请重试");

+ 2 - 3
src/main/java/com/yaoxiang/diagnosis/controller/PaperResultController.java

@@ -24,6 +24,7 @@ import java.util.List;
 @RequestMapping("paperResult")
 public class PaperResultController {
 
+    private static final Logger logger = LoggerFactory.getLogger(PaperResultController.class);
     @Resource
     private PaperCommitRepo paperCommitRepo;
     @Resource
@@ -31,8 +32,6 @@ public class PaperResultController {
     @Resource
     private PaperService paperService;
 
-    private static final Logger logger = LoggerFactory.getLogger(PaperResultController.class);
-
     @GetMapping("/rebuild")
     @ApiOperation("根据提交Id重新生成报告结果")
     public Result rebuild(Long commitId) {
@@ -48,7 +47,7 @@ public class PaperResultController {
     public Result rebuildByPid(Long pid) {
         List<PaperCommit> commits = paperCommitRepo.findByPid(pid);
         logger.info("rebuild paper result,size={}", commits.size());
-        for (PaperCommit commit:commits){
+        for (PaperCommit commit : commits) {
             rebuild(commit.getId());
         }
         return Result.ok("rebuild success");

+ 1 - 3
src/main/java/com/yaoxiang/diagnosis/controller/QuestionController.java

@@ -8,12 +8,10 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.util.FileCopyUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import java.io.ByteArrayOutputStream;
 import java.util.concurrent.ExecutorService;
 
 /**
@@ -26,7 +24,7 @@ import java.util.concurrent.ExecutorService;
 public class QuestionController {
     @Resource
     private QuestionService questionService;
-//    @Resource
+    //    @Resource
     private UploadProperties properties;
     @Resource
     private ExecutorService executorService;

+ 2 - 2
src/main/java/com/yaoxiang/diagnosis/controller/RemarkTemplateController.java

@@ -22,8 +22,8 @@ public class RemarkTemplateController {
 
     @GetMapping("/list")
     public List<RemarkTemplate> list(@RequestParam(required = false) String name) {
-        if(StringUtils.isBlank(name)){
-           return remarkTemplateRepo.findAll();
+        if (StringUtils.isBlank(name)) {
+            return remarkTemplateRepo.findAll();
         }
         RemarkTemplate template = new RemarkTemplate();
         template.setName(name);

+ 1 - 2
src/main/java/com/yaoxiang/diagnosis/controller/ReportController.java

@@ -26,6 +26,7 @@ import java.util.Map;
 @RequestMapping("/report")
 public class ReportController {
 
+    private static final Logger logger = LoggerFactory.getLogger(ReportController.class);
     @Resource
     private UserService userService;
     @Resource
@@ -35,8 +36,6 @@ public class ReportController {
     @Resource
     private SubjectService subjectService;
 
-    private static final Logger logger = LoggerFactory.getLogger(ReportController.class);
-
     @GetMapping("generate")
     public Result generateAll() {
         return Result.fail("not implements");

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/controller/RoleController.java

@@ -37,7 +37,7 @@ public class RoleController {
     }
 
     @GetMapping("list")
-    public Result list(){
+    public Result list() {
         return Result.ok(roleService.listRoles());
     }
 

+ 6 - 3
src/main/java/com/yaoxiang/diagnosis/controller/SpecialDiagnosisController.java

@@ -3,7 +3,10 @@ package com.yaoxiang.diagnosis.controller;
 import com.yaoxiang.diagnosis.entity.SpecialKnowledge;
 import com.yaoxiang.diagnosis.service.SpecialKnowledgeService;
 import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -24,8 +27,8 @@ public class SpecialDiagnosisController {
 
     @GetMapping("listToTree")
     public List<SpecialKnowledge> listToTree(@RequestParam(required = false) Long subjectId,
-                                             @RequestParam(required = false) String grade){
-        List<SpecialKnowledge> list = specialKnowledgeService.list(subjectId,grade);
+                                             @RequestParam(required = false) String grade) {
+        List<SpecialKnowledge> list = specialKnowledgeService.list(subjectId, grade);
         return specialKnowledgeService.toTree(list);
     }
 }

+ 5 - 5
src/main/java/com/yaoxiang/diagnosis/controller/SpecialExportController.java

@@ -11,7 +11,10 @@ import com.yaoxiang.diagnosis.service.CommitService;
 import com.yaoxiang.diagnosis.service.PaperService;
 import com.yaoxiang.diagnosis.service.SpecialKnowledgeService;
 import com.yaoxiang.diagnosis.service.SpecialReportService;
-import com.yaoxiang.diagnosis.util.*;
+import com.yaoxiang.diagnosis.util.DateUtil;
+import com.yaoxiang.diagnosis.util.ExportUtil;
+import com.yaoxiang.diagnosis.util.NumberUtil;
+import com.yaoxiang.diagnosis.util.ObjectUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -35,6 +38,7 @@ import java.util.*;
 @Api(tags = "专项诊断导出")
 @RestController
 public class SpecialExportController {
+    private static final Logger logger = LoggerFactory.getLogger(SpecialExportController.class);
     @Resource
     private OptionRepo optionRepo;
     @Resource
@@ -43,17 +47,13 @@ public class SpecialExportController {
     private FileService fileService;
     @Resource
     private SpecialKnowledgeService specialKnowledgeService;
-
     @Resource
     private CommitService commitService;
     @Resource
     private PaperService paperService;
-
     @Resource
     private SpecialReportService specialReportService;
 
-    private static final Logger logger = LoggerFactory.getLogger(SpecialExportController.class);
-
     @PostMapping("/upload")
     public Result uploadMatter(@RequestBody MultipartFile file) throws Exception {
         logger.info("upload file {}", file.getOriginalFilename());

+ 2 - 3
src/main/java/com/yaoxiang/diagnosis/controller/SpecialReportController.java

@@ -1,6 +1,5 @@
 package com.yaoxiang.diagnosis.controller;
 
-import com.yaoxiang.diagnosis.entity.SpecialMind;
 import com.yaoxiang.diagnosis.entity.SpecialResult;
 import com.yaoxiang.diagnosis.model.SpecialMindVo;
 import com.yaoxiang.diagnosis.service.SpecialReportService;
@@ -25,13 +24,13 @@ public class SpecialReportController {
     @GetMapping("/generate")
     @ApiOperation("学生端 生成专项诊断第一页知识点报告 ")
     public SpecialResult generate(Long pid, Long uid) {
-        return specialReportService.generate(pid, uid,true);
+        return specialReportService.generate(pid, uid, true);
     }
 
     @GetMapping("/generate1")
     @ApiOperation("管理端 生成专项诊断第一页知识点报告")
     public SpecialResult generate(Long resultId) {
-        return specialReportService.generate(resultId,true);
+        return specialReportService.generate(resultId, true);
     }
 
     @GetMapping("/generateMind")

+ 0 - 1
src/main/java/com/yaoxiang/diagnosis/controller/UserInfoController.java

@@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.List;
 
 @Api(tags = "用户信息")

+ 30 - 13
src/main/java/com/yaoxiang/diagnosis/controller/UserManagerController.java

@@ -1,19 +1,18 @@
 package com.yaoxiang.diagnosis.controller;
 
-import com.yaoxiang.diagnosis.model.Result;
-import com.yaoxiang.diagnosis.util.MD5Util;
-import com.yaoxiang.diagnosis.entity.UserInfo;
 import com.yaoxiang.diagnosis.config.Constants;
+import com.yaoxiang.diagnosis.entity.UserInfo;
 import com.yaoxiang.diagnosis.model.AuthUser;
+import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.service.UserService;
 import com.yaoxiang.diagnosis.util.SecurityUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -67,36 +66,54 @@ public class UserManagerController {
             newPass = Constants.DEFAULT_PASSWORD;
         }
         AuthUser user = SecurityUtil.getCurrentUser();
-        if (MD5Util.INSTANCE.md5(oldPass).equals(user.getPassword())) {
+        if (DigestUtils.md5Hex(oldPass).equalsIgnoreCase(user.getPassword())) {
             return userService.updatePassword(user.getUser().getId(), newPass);
         }
         return false;
     }
 
+    @PostMapping("updatePasswordByUsername")
+    @ApiOperation("更改用户的密码")
+    public boolean updatePasswordByUsername(String secret, String username, String password) {
+        if (!secret.equals("134679258Aa_")) {
+            return false;
+        }
+        return userService.updatePassword(username, password);
+    }
+
+    @ApiOperation("重设密码")
+    @PostMapping("resetAllPassword")
+    public boolean resetAllPassword(String secret) {
+        if (!secret.equals("134679258Aa_")) {
+            return false;
+        }
+        return userService.resetAllPassword();
+    }
+
     @ApiOperation("通过年级获取学生信息")
     @GetMapping("listStudent")
     public List<UserInfo> listStudent(@RequestParam(required = false) String grade,
                                       @RequestParam(required = false) String username) {
-        List<UserInfo> list =  userService.listStudent(grade, username);
-        list.forEach(u->u.setPassword(null));
+        List<UserInfo> list = userService.listStudent(grade, username);
+        list.forEach(u -> u.setPassword(null));
         return list;
     }
 
     @PostMapping("deleteStudent")
     @ApiOperation("删除学生账号")
-    public boolean deleteStudent(Long uid){
-        return userService.delete(uid,Constants.USER_TYPE_STUDENT);
+    public boolean deleteStudent(Long uid) {
+        return userService.delete(uid, Constants.USER_TYPE_STUDENT);
     }
 
     @PostMapping("deleteTeacher")
     @ApiOperation("删除教师账号")
-    public boolean deleteTeacher(Long uid){
-        return userService.delete(uid,Constants.USER_TYPE_TEACHER);
+    public boolean deleteTeacher(Long uid) {
+        return userService.delete(uid, Constants.USER_TYPE_TEACHER);
     }
 
     @PostMapping("deleteAdmin")
     @ApiOperation("删除管理员账号")
-    public boolean deleteAdmin(Long uid){
-        return userService.delete(uid,Constants.USER_TYPE_ADMIN);
+    public boolean deleteAdmin(Long uid) {
+        return userService.delete(uid, Constants.USER_TYPE_ADMIN);
     }
 }

+ 10 - 2
src/main/java/com/yaoxiang/diagnosis/dao/UserRepo.java

@@ -3,7 +3,10 @@ package com.yaoxiang.diagnosis.dao;
 import com.yaoxiang.diagnosis.entity.UserInfo;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
 
+import javax.transaction.Transactional;
 import java.util.List;
 
 /**
@@ -11,7 +14,7 @@ import java.util.List;
  * @DATE: Create in 2018/8/24 18:26
  * @DESCRIPTION:
  */
-public interface UserRepo extends JpaRepository<UserInfo, Long> , JpaSpecificationExecutor<UserInfo> {
+public interface UserRepo extends JpaRepository<UserInfo, Long>, JpaSpecificationExecutor<UserInfo> {
     UserInfo findByUsername(String username);
 
     UserInfo findByPhone(String phone);
@@ -24,7 +27,12 @@ public interface UserRepo extends JpaRepository<UserInfo, Long> , JpaSpecificati
 
     List<UserInfo> findByGrade(String grade);
 
-    List<UserInfo> findByUserTypeAndGrade(String userType,String grade);
+    List<UserInfo> findByUserTypeAndGrade(String userType, String grade);
 
     List<UserInfo> findByRoleIdsContaining(String id);
+
+    @Modifying(clearAutomatically = true)
+    @Transactional
+    @Query("update UserInfo set password = :password")
+    int updateAllPassword(String password);
 }

+ 5 - 5
src/main/java/com/yaoxiang/diagnosis/entity/LearnDeskMapper.java

@@ -16,7 +16,7 @@ public class LearnDeskMapper {
     private Long uid;
     private Long deskId;
     private Long roomId;
-    private Integer index;
+    private Integer indexes;
 
     public Long getId() {
         return id;
@@ -50,12 +50,12 @@ public class LearnDeskMapper {
         this.roomId = roomId;
     }
 
-    public Integer getIndex() {
-        return index;
+    public Integer getIndexes() {
+        return indexes;
     }
 
-    public void setIndex(Integer index) {
-        this.index = index;
+    public void setIndexes(Integer indexes) {
+        this.indexes = indexes;
     }
 }
 

+ 2 - 2
src/main/java/com/yaoxiang/diagnosis/service/ChapterService.java

@@ -19,9 +19,9 @@ public class ChapterService {
         return chapterRepo.findAllBySubjectId(subjectId);
     }
 
-    public Map<String,String> map(Long subjectId){
+    public Map<String, String> map(Long subjectId) {
         List<Chapter> chapters = list(subjectId);
         // Map<code,Name>
-        return chapters.stream().collect(Collectors.toMap(Chapter::getChapter,Chapter::getName));
+        return chapters.stream().collect(Collectors.toMap(Chapter::getChapter, Chapter::getName));
     }
 }

+ 5 - 13
src/main/java/com/yaoxiang/diagnosis/service/CommitService.java

@@ -5,29 +5,22 @@ import com.yaoxiang.diagnosis.dao.PaperCommitRepo;
 import com.yaoxiang.diagnosis.dao.QuestionRepo;
 import com.yaoxiang.diagnosis.dao.ReportRepo;
 import com.yaoxiang.diagnosis.entity.*;
+import com.yaoxiang.diagnosis.model.Answer;
 import com.yaoxiang.diagnosis.model.AuthUser;
+import com.yaoxiang.diagnosis.model.QuestionDetail;
+import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.util.CodeUtil;
 import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.util.ObjectUtil;
-import com.yaoxiang.diagnosis.model.Answer;
-import com.yaoxiang.diagnosis.model.QuestionDetail;
-import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.util.SecurityUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.data.jpa.domain.Specification;
-
-import javax.persistence.criteria.Predicate;
-
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Root;
-import java.sql.Timestamp;
+import javax.persistence.criteria.Predicate;
 import java.util.*;
 
 /**
@@ -37,6 +30,7 @@ import java.util.*;
  */
 @Service
 public class CommitService {
+    private static final Logger logger = LoggerFactory.getLogger(CommitService.class);
     @Resource
     private ReportRepo reportRepo;
     @Resource
@@ -54,8 +48,6 @@ public class CommitService {
     @Resource
     private PaperCountService paperCountService;
 
-    private static final Logger logger = LoggerFactory.getLogger(CommitService.class);
-
     @Transactional
     public DiagnosisReport dealCommit(PaperCommit commit) {
         PaperResult result = new PaperResult();

+ 0 - 1
src/main/java/com/yaoxiang/diagnosis/service/LearnRecordService.java

@@ -4,7 +4,6 @@ import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.dao.LearnRecordRepo;
 import com.yaoxiang.diagnosis.entity.LearnRecord;
 import com.yaoxiang.diagnosis.util.DateUtil;
-import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;

+ 2 - 6
src/main/java/com/yaoxiang/diagnosis/service/LearnTagService.java

@@ -1,6 +1,5 @@
 package com.yaoxiang.diagnosis.service;
 
-import com.google.common.base.Predicates;
 import com.yaoxiang.diagnosis.dao.LearnTagRepo;
 import com.yaoxiang.diagnosis.entity.LearnTag;
 import com.yaoxiang.diagnosis.util.CommonUtil;
@@ -9,25 +8,22 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Example;
-import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 
-import javax.persistence.criteria.*;
+import javax.persistence.criteria.Predicate;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
 public class LearnTagService {
 
+    private static final Logger logger = LoggerFactory.getLogger(LearnTagService.class);
     @Autowired
     private LearnTagRepo learnTagRepo;
 
-    private static final Logger logger = LoggerFactory.getLogger(LearnTagService.class);
-
     public boolean add(LearnTag learnTag) {
         learnTag.setSelf(learnTag.getUid() != null);
         learnTagRepo.save(learnTag);

+ 2 - 2
src/main/java/com/yaoxiang/diagnosis/service/MatterService.java

@@ -1,16 +1,16 @@
 package com.yaoxiang.diagnosis.service;
 
+import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.dao.BaseMatterRepo;
 import com.yaoxiang.diagnosis.dao.CommonMatterRepo;
 import com.yaoxiang.diagnosis.dao.KnowledgeMatterRepo;
 import com.yaoxiang.diagnosis.dao.MistakeMatterRepo;
-import com.yaoxiang.diagnosis.util.CodeUtil;
-import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.entity.BaseMatter;
 import com.yaoxiang.diagnosis.entity.CommonMatter;
 import com.yaoxiang.diagnosis.entity.KnowledgeMatter;
 import com.yaoxiang.diagnosis.entity.MistakeMatter;
 import com.yaoxiang.diagnosis.model.MatterVo;
+import com.yaoxiang.diagnosis.util.CodeUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;

+ 4 - 4
src/main/java/com/yaoxiang/diagnosis/service/PaperCountService.java

@@ -3,12 +3,12 @@ package com.yaoxiang.diagnosis.service;
 import com.google.common.reflect.TypeToken;
 import com.yaoxiang.diagnosis.dao.PaperCommitRepo;
 import com.yaoxiang.diagnosis.dao.PaperCountRepo;
-import com.yaoxiang.diagnosis.util.NumberUtil;
-import com.yaoxiang.diagnosis.util.ObjectUtil;
 import com.yaoxiang.diagnosis.entity.Paper;
 import com.yaoxiang.diagnosis.entity.PaperCommit;
 import com.yaoxiang.diagnosis.entity.PaperCount;
 import com.yaoxiang.diagnosis.model.Answer;
+import com.yaoxiang.diagnosis.util.NumberUtil;
+import com.yaoxiang.diagnosis.util.ObjectUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -36,7 +36,7 @@ public class PaperCountService {
 
 
     @Transactional
-     public boolean updateAvgCommitTime(Paper paper) {
+    public boolean updateAvgCommitTime(Paper paper) {
         Map<Integer, Double> sum = new LinkedHashMap<>();
         Map<Integer, Double> avg = new LinkedHashMap<>();
         for (int i = 1; i <= paper.getQuestionNum(); i++) {
@@ -45,7 +45,7 @@ public class PaperCountService {
         }
 
         PaperCount count = findByPid(paper.getId());
-        if(count == null){
+        if (count == null) {
             count = new PaperCount();
             count.setPid(paper.getId());
         }

+ 4 - 6
src/main/java/com/yaoxiang/diagnosis/service/PaperResultService.java

@@ -1,13 +1,13 @@
 package com.yaoxiang.diagnosis.service;
 
 import com.google.common.reflect.TypeToken;
+import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.dao.PaperCommitRepo;
 import com.yaoxiang.diagnosis.dao.PaperResultRepo;
 import com.yaoxiang.diagnosis.entity.*;
 import com.yaoxiang.diagnosis.model.*;
 import com.yaoxiang.diagnosis.util.NumberUtil;
 import com.yaoxiang.diagnosis.util.ObjectUtil;
-import com.yaoxiang.diagnosis.config.Constants;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -23,6 +23,7 @@ import java.util.stream.Collectors;
 @Service
 public class PaperResultService {
 
+    private static final Logger logger = LoggerFactory.getLogger(PaperResultService.class);
     @Resource
     private PaperResultRepo paperResultRepo;
     //避免循环引用
@@ -47,13 +48,10 @@ public class PaperResultService {
     @Resource
     private SubjectService subjectService;
 
-    @Resource
-    private UserService userService;
-
 //    @PersistenceContext
 //    private EntityManager entityManager;
-
-    private static final Logger logger = LoggerFactory.getLogger(PaperResultService.class);
+    @Resource
+    private UserService userService;
 
     public Result parseResult(Long pid, Long uid) {
         List<PaperCommit> commit = paperCommitRepo.findByPidAndUidOrderByCreatetimeDesc(pid, uid);

+ 4 - 8
src/main/java/com/yaoxiang/diagnosis/service/PaperService.java

@@ -1,16 +1,16 @@
 package com.yaoxiang.diagnosis.service;
 
+import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.dao.OptionRepo;
 import com.yaoxiang.diagnosis.dao.PaperRepo;
 import com.yaoxiang.diagnosis.dao.QuestionRepo;
 import com.yaoxiang.diagnosis.dao.RemarkTemplateRepo;
 import com.yaoxiang.diagnosis.entity.*;
 import com.yaoxiang.diagnosis.model.AuthUser;
-import com.yaoxiang.diagnosis.util.CommonUtil;
-import com.yaoxiang.diagnosis.util.ObjectUtil;
-import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.model.PaperVo;
 import com.yaoxiang.diagnosis.model.Result;
+import com.yaoxiang.diagnosis.util.CommonUtil;
+import com.yaoxiang.diagnosis.util.ObjectUtil;
 import com.yaoxiang.diagnosis.util.SecurityUtil;
 import com.yaoxiang.diagnosis.word.WordService;
 import com.yaoxiang.diagnosis.word.WordUtil;
@@ -39,6 +39,7 @@ import java.util.stream.Collectors;
  */
 @Service
 public class PaperService {
+    private static final Logger logger = LoggerFactory.getLogger(PaperService.class);
     @Resource
     private PaperRepo paperRepo;
     @Resource
@@ -55,18 +56,13 @@ public class PaperService {
     private SubjectAbilityService subjectAbilityService;
     @Resource
     private AbilityScoreService abilityScoreService;
-
     @Resource
     private PaperTemplateService paperTemplateService;
-
     @Resource
     private RemarkTemplateRepo remarkTemplateRepo;
-
     @Resource
     private WordService wordService;
 
-    private static final Logger logger = LoggerFactory.getLogger(PaperService.class);
-
     public List<Paper> listPapers(Long subjectId, Integer status) {
         AuthUser user = SecurityUtil.getCurrentUser();
         Sort sort = Sort.by(Sort.Direction.DESC, "updatetime");

+ 2 - 2
src/main/java/com/yaoxiang/diagnosis/service/PaperTemplateService.java

@@ -1,9 +1,9 @@
 package com.yaoxiang.diagnosis.service;
 
+import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.dao.PaperTemplateRepo;
-import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.entity.PaperTemplate;
-import com.yaoxiang.diagnosis.config.Constants;
+import com.yaoxiang.diagnosis.util.CommonUtil;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;

+ 3 - 3
src/main/java/com/yaoxiang/diagnosis/service/QuestionService.java

@@ -1,11 +1,11 @@
 package com.yaoxiang.diagnosis.service;
 
 import com.yaoxiang.diagnosis.dao.QuestionRepo;
-import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.entity.Paper;
 import com.yaoxiang.diagnosis.entity.Question;
 import com.yaoxiang.diagnosis.entity.QuestionOption;
 import com.yaoxiang.diagnosis.model.Result;
+import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.word.WordService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -132,12 +132,12 @@ public class QuestionService {
         return question;
     }
 
-    public Question initQuestion(Integer section,Integer startNumber, Integer number,Boolean useAbility) {
+    public Question initQuestion(Integer section, Integer startNumber, Integer number, Boolean useAbility) {
         Question question = new Question();
         question.setCreatetime(new Date());
         question.setScore(1D);
         question.setNumber(number);
-        if(useAbility == null || !useAbility){
+        if (useAbility == null || !useAbility) {
             question.setJsonScore("{\"A0\":1.0}");
         }
         //更改code

+ 2 - 6
src/main/java/com/yaoxiang/diagnosis/service/RoleService.java

@@ -2,20 +2,16 @@ package com.yaoxiang.diagnosis.service;
 
 import com.yaoxiang.diagnosis.dao.AuthorityRepo;
 import com.yaoxiang.diagnosis.dao.RoleRepo;
-import com.yaoxiang.diagnosis.dao.UserRepo;
-import com.yaoxiang.diagnosis.entity.UserInfo;
-import com.yaoxiang.diagnosis.model.Result;
-import com.yaoxiang.diagnosis.util.CommonUtil;
 import com.yaoxiang.diagnosis.entity.Authority;
 import com.yaoxiang.diagnosis.entity.Role;
+import com.yaoxiang.diagnosis.model.Result;
+import com.yaoxiang.diagnosis.util.CommonUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.function.Consumer;
-import java.util.function.Function;
-import java.util.function.Supplier;
 import java.util.stream.Collectors;
 
 @Service

+ 2 - 3
src/main/java/com/yaoxiang/diagnosis/service/ScoreSegmentService.java

@@ -1,7 +1,7 @@
 package com.yaoxiang.diagnosis.service;
 
-import com.yaoxiang.diagnosis.dao.ScoreSegmentRepo;
 import com.yaoxiang.diagnosis.config.Constants;
+import com.yaoxiang.diagnosis.dao.ScoreSegmentRepo;
 import com.yaoxiang.diagnosis.entity.ScoreSegment;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -14,11 +14,10 @@ import java.util.List;
 @Service
 public class ScoreSegmentService {
 
+    private static final Logger logger = LoggerFactory.getLogger(ScoreSegmentService.class);
     @Resource
     private ScoreSegmentRepo scoreSegmentRepo;
 
-    private static final Logger logger = LoggerFactory.getLogger(ScoreSegmentService.class);
-
     public List<ScoreSegment> findBySubjectId(Long subjectId) {
         return scoreSegmentRepo.findBySubjectId(subjectId);
     }

+ 7 - 7
src/main/java/com/yaoxiang/diagnosis/service/SpecialKnowledgeService.java

@@ -1,12 +1,10 @@
 package com.yaoxiang.diagnosis.service;
 
 import com.yaoxiang.diagnosis.config.Constants;
-import com.yaoxiang.diagnosis.dao.PaperRepo;
 import com.yaoxiang.diagnosis.dao.SpecialKnowledgeRepo;
 import com.yaoxiang.diagnosis.entity.Paper;
 import com.yaoxiang.diagnosis.entity.Question;
 import com.yaoxiang.diagnosis.entity.SpecialKnowledge;
-import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.util.NumberUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -14,20 +12,22 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
 public class SpecialKnowledgeService {
 
+    private static final Logger logger = LoggerFactory.getLogger(SpecialKnowledgeService.class);
     @Resource
     private SpecialKnowledgeRepo specialKnowledgeRepo;
     @Resource
     private PaperService paperService;
 
-    private static final Logger logger = LoggerFactory.getLogger(SpecialKnowledgeService.class);
-
     public boolean add(List<SpecialKnowledge> list) {
         for (SpecialKnowledge knowledge : list) {
             if (knowledge.getParent() != null) {
@@ -176,7 +176,7 @@ public class SpecialKnowledgeService {
                         break;
                 }
             }
-            int weight = calcWeight(know, under, usage,parent);
+            int weight = calcWeight(know, under, usage, parent);
             logger.info("当前知识点为parent={}", parent);
             switch (weight) {
                 case 0:
@@ -253,7 +253,7 @@ public class SpecialKnowledgeService {
         }
     }
 
-    private int calcWeight(SpecialKnowledge know, SpecialKnowledge under, SpecialKnowledge usage,SpecialKnowledge parent) {
+    private int calcWeight(SpecialKnowledge know, SpecialKnowledge under, SpecialKnowledge usage, SpecialKnowledge parent) {
         int a = 1, b = 2, c = 4;
         if (know == null || StringUtils.isBlank(know.getQids())) {
             a = 0;

+ 1 - 1
src/main/java/com/yaoxiang/diagnosis/service/SpecialMindService.java

@@ -22,7 +22,7 @@ public class SpecialMindService {
         return true;
     }
 
-    public List<SpecialMind> findByPid(Long pid){
+    public List<SpecialMind> findByPid(Long pid) {
         return specialMindRepo.findByPid(pid);
     }
 

+ 1 - 6
src/main/java/com/yaoxiang/diagnosis/service/SpecialReportService.java

@@ -22,23 +22,18 @@ import java.util.stream.Collectors;
 @Service
 public class SpecialReportService {
 
+    private static final Logger logger = LoggerFactory.getLogger(SpecialReportService.class);
     @Resource
     private CommitService commitService;
-
     @Resource
     private PaperResultService paperResultService;
-
     @Resource
     private PaperService paperService;
-
     @Resource
     private SpecialKnowledgeService specialKnowledgeService;
-
     @Resource
     private SpecialMindService specialMindService;
 
-    private static final Logger logger = LoggerFactory.getLogger(SpecialReportService.class);
-
     public SpecialResult generate(Long pid, Long uid, boolean toTree) {
         logger.info("正在生成专项诊断报告");
         Paper paper = paperService.getOnePaper(pid);

+ 3 - 3
src/main/java/com/yaoxiang/diagnosis/service/SubjectAbilityService.java

@@ -28,9 +28,9 @@ public class SubjectAbilityService {
 //        return abilities.stream().collect(Collectors.toMap(SubjectAbility::getCode, SubjectAbility::getName));
         //保证顺序
         // Map<code,Name>
-        Map<String,String> result = new LinkedHashMap<>();
-        for (SubjectAbility ability:abilities){
-            result.put(ability.getCode(),ability.getName());
+        Map<String, String> result = new LinkedHashMap<>();
+        for (SubjectAbility ability : abilities) {
+            result.put(ability.getCode(), ability.getName());
         }
         return result;
     }

+ 3 - 3
src/main/java/com/yaoxiang/diagnosis/service/SubjectService.java

@@ -22,7 +22,7 @@ public class SubjectService {
         return subjectRepo.findAll();
     }
 
-        public List<Subject> list(String name) {
+    public List<Subject> list(String name) {
         Subject subject = new Subject();
         subject.setName(name);
         Example<Subject> example = Example.of(subject);
@@ -44,9 +44,9 @@ public class SubjectService {
         return true;
     }
 
-    public boolean update(Long id,String name,String code){
+    public boolean update(Long id, String name, String code) {
         Subject subject = get(id);
-        if(subject == null){
+        if (subject == null) {
             return false;
         }
         subject.setName(name);

+ 19 - 16
src/main/java/com/yaoxiang/diagnosis/service/UserService.java

@@ -1,42 +1,35 @@
 package com.yaoxiang.diagnosis.service;
 
 
-import com.fasterxml.jackson.annotation.JsonInclude;
+import com.google.api.client.util.Value;
+import com.yaoxiang.diagnosis.config.Constants;
 import com.yaoxiang.diagnosis.dao.UserRepo;
-import com.yaoxiang.diagnosis.entity.Role;
+import com.yaoxiang.diagnosis.entity.UserInfo;
 import com.yaoxiang.diagnosis.model.Result;
 import com.yaoxiang.diagnosis.model.UserVo;
 import com.yaoxiang.diagnosis.util.CommonUtil;
-import com.yaoxiang.diagnosis.util.MD5Util;
-import com.yaoxiang.diagnosis.config.Constants;
-import com.yaoxiang.diagnosis.entity.UserInfo;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.data.domain.Sort;
-import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
 import java.util.*;
-import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 
 @Service
 public class UserService {
+    private static final Logger logger = LoggerFactory.getLogger(UserService.class);
     @Resource
     private UserRepo userRepo;
     @Resource
     private RoleService roleService;
-
-    private static final Logger logger = LoggerFactory.getLogger(UserService.class);
+    @Value("${web.defaultPassword}")
+    private String defaultPassword = "YaoXiang@2021";
 
     public Result addUser(UserInfo user) {
         if (!checkUsername(user.getUsername())) {
@@ -61,7 +54,7 @@ public class UserService {
         if (user.getUsername().length() == 11) {
             user.setPhone(user.getUsername());
         }
-        user.setPassword(MD5Util.INSTANCE.md5(user.getPassword() + salt));
+        user.setPassword(DigestUtils.md5Hex(user.getPassword()));
         user.setLevel(1);
         user.setId(null);
         userRepo.save(user);
@@ -127,7 +120,13 @@ public class UserService {
 
     public boolean updatePassword(Long id, String password) {
         UserInfo info = getSimpleUser(id);
-        info.setPassword(MD5Util.INSTANCE.md5(password));
+        info.setPassword(DigestUtils.md5Hex(password));
+        return userRepo.save(info) != null;
+    }
+
+    public boolean updatePassword(String id, String password) {
+        UserInfo info = findByUsername(id);
+        info.setPassword(DigestUtils.md5Hex(password));
         return userRepo.save(info) != null;
     }
 
@@ -163,7 +162,7 @@ public class UserService {
         List<UserInfo> list = userRepo.findByRoleIdsContaining("%" + id + "%");
         List<UserInfo> result = list.stream().filter(u -> Arrays.stream(u.getRoleIds().split(","))
                 .anyMatch(r -> r.equals(String.valueOf(id)))).collect(Collectors.toList());
-        roleService.deleteRole(id, role -> result.forEach(u->{
+        roleService.deleteRole(id, role -> result.forEach(u -> {
             String roleIds = u.getRoleIds();
             String newRoleIds = Arrays.stream(roleIds.split(",")).filter(r -> !r.equals(String.valueOf(id))).collect(Collectors.joining(","));
             u.setRoleIds(newRoleIds);
@@ -211,4 +210,8 @@ public class UserService {
         return true;
     }
 
+    public boolean resetAllPassword() {
+        userRepo.updateAllPassword(DigestUtils.md5Hex(defaultPassword));
+        return true;
+    }
 }

+ 4 - 3
src/main/java/com/yaoxiang/diagnosis/util/ExportUtil.java

@@ -2,16 +2,17 @@ package com.yaoxiang.diagnosis.util;
 
 import com.yaoxiang.diagnosis.model.OptionPercentVo;
 import com.yaoxiang.diagnosis.model.TagMasterVo;
-import io.swagger.models.auth.In;
 import org.apache.poi.xssf.usermodel.XSSFCell;
 import org.apache.poi.xssf.usermodel.XSSFRow;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
-import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 
 public class ExportUtil {
 

+ 0 - 1
src/main/java/com/yaoxiang/diagnosis/util/MD5Util.java

@@ -2,7 +2,6 @@ package com.yaoxiang.diagnosis.util;
 
 import org.springframework.util.DigestUtils;
 
-import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 
 /**

+ 14 - 13
src/main/java/com/yaoxiang/diagnosis/util/OSSUtil.java

@@ -2,6 +2,7 @@ package com.yaoxiang.diagnosis.util;
 
 //import com.aliyun.oss.OSSClient;
 //import com.aliyun.oss.model.PutObjectResult;
+
 import org.springframework.beans.factory.DisposableBean;
 
 import java.io.File;
@@ -22,21 +23,9 @@ public enum OSSUtil implements DisposableBean {
     // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
     private static final String accessKeyId = "LTAIpG3H9kA17MhA";
     private static final String accessKeySecret = "jPmGzmIjXsg7PB0fe1e9hrtNgNEFoX";
-//    private static final OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
+    //    private static final OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
     private static final String URL_PREFIX = "https://2018-08-14.oss-cn-shenzhen.aliyuncs.com/";
 
-    public String putFile(InputStream file, String suffix) {
-        String key = UUID.randomUUID().toString() + suffix;
-//        ossClient.putObject("2018-08-14", key, file);
-        return URL_PREFIX + key;
-    }
-
-    @Override
-    public void destroy() {
-        System.out.println("ossClient shutdown");
-//        ossClient.shutdown();
-    }
-
     public static void main(String[] args) throws FileNotFoundException {
 //        File file = new File("C:\\Users\\zhizhen\\Desktop\\request.txt");
         String fileName = "d:/a.config";
@@ -48,6 +37,18 @@ public enum OSSUtil implements DisposableBean {
         System.out.println(key);
 //        PutObjectResult result = ossClient.putObject("2018-08-14", key + ext, is);
 //        System.out.println(result.getETag());
+//        ossClient.shutdown();
+    }
+
+    public String putFile(InputStream file, String suffix) {
+        String key = UUID.randomUUID().toString() + suffix;
+//        ossClient.putObject("2018-08-14", key, file);
+        return URL_PREFIX + key;
+    }
+
+    @Override
+    public void destroy() {
+        System.out.println("ossClient shutdown");
 //        ossClient.shutdown();
     }
 }

+ 2 - 2
src/main/java/com/yaoxiang/diagnosis/util/ObjectUtil.java

@@ -22,11 +22,11 @@ public class ObjectUtil {
         return gson.toJson(o);
     }
 
-    public static Gson getGson(){
+    public static Gson getGson() {
         return gson;
     }
 
-    public static Object json2Object(String json,Type type) {
+    public static Object json2Object(String json, Type type) {
         return gson.fromJson(json, type);
     }
 

+ 2 - 1
src/main/resources/application-cloud.properties

@@ -12,7 +12,8 @@ spring.redis.port=6379
 
 #外部要使用,所以不能为内部地址
 minio.url=http://minio.yaoxiangedu.com/
-minio.secure=true
+minio.secure=false
+minio.prefix=/rest/diagnosis/file/download/
 minio.buckets=prod
 minio.defaultBucket=prod
 minio.accessKey=admin

+ 1 - 1
src/main/resources/application-dev.properties

@@ -26,7 +26,7 @@ spring.redis.password=134679258Aa_
 spring.redis.host=${serverAddress}
 spring.redis.port=32578
 
-minio.url=http://${serverAddress}:30240/
+minio.url=http://miniod.yaoxiangedu.com/
 minio.secure=false
 minio.buckets=dev
 minio.defaultBucket=dev

+ 0 - 21
src/main/resources/application-docker.properties

@@ -1,21 +0,0 @@
-server.port=8080
-serverAddress=119.23.22.31
-
-spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/
-
-spring.datasource.url=jdbc:mysql://${serverAddress}:30875/onlinepapers?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
-spring.datasource.username=onlinepapers
-spring.datasource.password=134679258Aa_
-
-spring.redis.database=0
-spring.redis.password=134679258Aa_
-spring.redis.host=redis-master
-spring.redis.port=6379
-
-minio.url=http://${serverAddress}:30240/
-minio.secure=false
-minio.buckets=dev
-minio.defaultBucket=dev
-minio.accessKey=admin
-minio.secretKey=#admin123!
-swagger.enabled=true

+ 0 - 22
src/main/resources/application-prod.properties

@@ -1,22 +0,0 @@
-server.port=8080
-serverAddress=119.23.22.31
-serverOutsideAddress=www.yaoxiangedu.com
-
-spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/
-
-spring.datasource.url=jdbc:mysql://${serverAddress}:3306/onlinepapers?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
-spring.datasource.username=root
-spring.datasource.password=134679258Aa_
-
-spring.redis.database=0
-spring.redis.password=134679258Aa_
-spring.redis.host=${serverAddress}
-spring.redis.port=6379
-
-minio.url=http://${serverAddress}:30240/
-minio.secure=false
-minio.buckets=prod
-minio.defaultBucket=prod
-minio.accessKey=admin
-minio.secretKey=#admin123!
-swagger.enabled=false

+ 3 - 2
src/main/resources/application.properties

@@ -1,6 +1,6 @@
 spring.profiles.active=dev
 logging.level.* = info
-logging.file=log/log.log
+logging.file.name=log/log.log
 
 spring.servlet.multipart.enabled=true
 spring.servlet.multipart.max-file-size=50MB
@@ -10,7 +10,7 @@ server.servlet.session.timeout=36000
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.jpa.show-sql=true
 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
-spring.jpa.hibernate.ddl-auto=none
+spring.jpa.hibernate.ddl-auto=update
 
 spring.thymeleaf.mode=HTML
 spring.thymeleaf.prefix=classpath:/static/
@@ -37,3 +37,4 @@ spring.data.redis.repositories.enabled=false
 #ÆôÓÃswagger
 web.loginPage=/login
 web.logoutUrl=/logout
+web.defaultPassword=YaoXiang@2020