xiatian 17 時間 前
コミット
95e8d0ce5d

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/dao/UserDao.java

@@ -5,6 +5,7 @@ import java.util.List;
 import cn.com.qmth.stmms.biz.user.model.User;
 
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.PagingAndSortingRepository;
 
@@ -19,6 +20,15 @@ public interface UserDao extends PagingAndSortingRepository<User, Integer>, JpaS
 
     @Query(value = "select u from User u where u.loginName like ?1" + "%")
     List<User> findStartWithLoginName(String loginName);
+
     @Query(value = "select u from User u where u.id in ?1")
     List<User> findByIdIn(List<Integer> ids);
+
+    @Modifying
+    @Query("update User u set u.studentExportCols=?2 where u.id=?1 ")
+    void updateStudentCols(Integer id, String jsonString);
+
+    @Modifying
+    @Query("update User u set u.scoreExportCols=?2 where u.id=?1 ")
+    void updateScoreCols(Integer id, String jsonString);
 }

+ 7 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/service/UserService.java

@@ -31,12 +31,17 @@ public interface UserService {
 
     User findByAccount(Integer schoolId, String account);
 
-    int batchSaveMarker(int examId, Set<String> subjectCodes, Integer number, String password, boolean random,String cusPrefix);
+    int batchSaveMarker(int examId, Set<String> subjectCodes, Integer number, String password, boolean random,
+            String cusPrefix);
 
     int batchSaveSubjectUser(int examId, Role role, Set<String> subjectCodes, Integer number, String password,
-            boolean random,String cusPrefix);
+            boolean random, String cusPrefix);
 
     public int findMaxNumberByLoginNameStart(String prefix);
 
     List<User> findByIdIn(List<Integer> userIds);
+
+    void updateStudentCols(Integer id, Set<String> cols);
+
+    void updateScoreCols(Integer id, Set<String> cols);
 }

+ 46 - 9
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/service/impl/UserServiceImpl.java

@@ -1,6 +1,11 @@
 package cn.com.qmth.stmms.biz.user.service.impl;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
@@ -15,8 +20,18 @@ import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import cn.com.qmth.stmms.biz.exam.model.*;
-import cn.com.qmth.stmms.biz.exam.service.*;
+import com.google.gson.Gson;
+
+import cn.com.qmth.stmms.biz.exam.model.Exam;
+import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
+import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
+import cn.com.qmth.stmms.biz.exam.model.Marker;
+import cn.com.qmth.stmms.biz.exam.model.SubjectUser;
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
+import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
+import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
+import cn.com.qmth.stmms.biz.exam.service.MarkerService;
+import cn.com.qmth.stmms.biz.exam.service.SubjectUserService;
 import cn.com.qmth.stmms.biz.user.dao.UserDao;
 import cn.com.qmth.stmms.biz.user.model.User;
 import cn.com.qmth.stmms.biz.user.service.UserService;
@@ -419,17 +434,17 @@ public class UserServiceImpl implements UserService {
 
     @Override
     public int findMaxNumberByLoginNameStart(String prefix) {
-    	int splitCount=prefix.split("-").length;
+        int splitCount = prefix.split("-").length;
         List<User> list = userDao.findStartWithLoginName(prefix);
         int number = 0;
         for (User user : list) {
             try {
                 String[] str = user.getLoginName().split("-");
-                if(str.length==splitCount+1) {
-                	int no = Integer.parseInt(str[str.length - 1]);
-                	if (number < no) {
-                		number = no;
-                	}
+                if (str.length == splitCount + 1) {
+                    int no = Integer.parseInt(str[str.length - 1]);
+                    if (number < no) {
+                        number = no;
+                    }
                 }
             } catch (Exception e) {
                 e.printStackTrace();
@@ -443,4 +458,26 @@ public class UserServiceImpl implements UserService {
         return this.userDao.findByIdIn(ids);
     }
 
+    @Transactional
+    @Override
+    public void updateStudentCols(Integer id, Set<String> cols) {
+        if (cols == null) {
+            cols = new HashSet<>();
+        }
+        Gson gson = new Gson();
+        String jsonString = gson.toJson(cols);
+        userDao.updateStudentCols(id, jsonString);
+    }
+
+    @Transactional
+    @Override
+    public void updateScoreCols(Integer id, Set<String> cols) {
+        if (cols == null) {
+            cols = new HashSet<>();
+        }
+        Gson gson = new Gson();
+        String jsonString = gson.toJson(cols);
+        userDao.updateScoreCols(id, jsonString);
+    }
+
 }

+ 5 - 5
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/UserController.java

@@ -154,8 +154,9 @@ public class UserController extends BaseApiController {
     public ResultMessage exportColsSave(@RequestParam ExportColsType type, @RequestParam Set<String> cols) {
         ApiUser user = getApiUser();
         if (ExportColsType.STUDENT.equals(type)) {
-            // userService.updateStudentCols(user.getId(), cols);
+            userService.updateStudentCols(user.getId(), cols);
         } else if (ExportColsType.SCORE.equals(type)) {
+            userService.updateScoreCols(user.getId(), cols);
         }
         return resultOk();
     }
@@ -293,7 +294,6 @@ public class UserController extends BaseApiController {
     public ResultMessage update(User user, @RequestParam(required = false) String subjectCodeString,
             @RequestParam(required = false) String examIdString, @RequestParam(required = false) String colleges,
             @RequestParam(required = false) MultipartFile studentFile) {
-        User current = getApiUser().getUser();
         int examId = getSessionExamId();
         User previous = userService.findById(user.getId());
         previous.setLoginName(user.getLoginName());
@@ -328,7 +328,7 @@ public class UserController extends BaseApiController {
         previous.setUpdatedTime(new Date());
         userService.save(previous);
         if (previous.getRole() == Role.SCHOOL_VIEWER && !studentFile.isEmpty()) {
-           addStudent(studentFile, previous.getSchoolId(), previous.getId());
+            addStudent(studentFile, previous.getSchoolId(), previous.getId());
         }
         return resultOk();
     }
@@ -343,9 +343,9 @@ public class UserController extends BaseApiController {
             message = "名称不能为空";
         } else if (StringUtils.isBlank(user.getPassword())) {
             message = "密码不能为空";
-        }  else if (user.getRole() ==null){
+        } else if (user.getRole() == null) {
             message = "角色不能为空";
-        }  else if (user.getRole() == Role.SUBJECT_HEADER && StringUtils.isBlank(subjectCodeString)) {
+        } else if (user.getRole() == Role.SUBJECT_HEADER && StringUtils.isBlank(subjectCodeString)) {
             message = "科组长必须绑定科目代码";
         } else if (user.getRole() == Role.INSPECTOR && StringUtils.isBlank(subjectCodeString)) {
             message = "复核员必须绑定科目代码";