Ver Fonte

fix bugs

ting.yin há 8 anos atrás
pai
commit
455744a734

+ 2 - 5
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/CourseApi.java

@@ -106,13 +106,12 @@ public class CourseApi {
     @ApiOperation(value="更新课程",notes="更新")
     @PutMapping
     public ResponseEntity updateCourse(@RequestBody Course course,HttpServletRequest request){
-    	course.setUpdateTime(new Date());
         AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
         if(accessUser != null){
             course.setOrgId(accessUser.getRootOrgId());
         }
         try {
-			return new ResponseEntity(courseService.save(course), HttpStatus.OK);
+			return new ResponseEntity(courseService.update(course.getId(),course), HttpStatus.OK);
 		} catch (Exception e) {
 			return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
 		}
@@ -152,9 +151,7 @@ public class CourseApi {
     public ResponseEntity disableSchool(@PathVariable String ids){
         List<Long> courseIds = Stream.of(ids.split(",")).map(s->Long.parseLong(s.trim()))
                 .collect(Collectors.toList());
-        for(Long courseId:courseIds){
-        	courseService.enableCourse(courseId,false);
-        }
+        courseService.enableCourse(courseIds,false);
         return new ResponseEntity(HttpStatus.OK);
     }
 }

+ 1 - 2
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/OrgApi.java

@@ -108,14 +108,13 @@ public class OrgApi {
     @ApiOperation(value="更新机构",notes="更新")
     @PutMapping
     public ResponseEntity updateSchool(@RequestBody Org org,HttpServletRequest request){
-    	org.setUpdateTime(new Date());
         AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
         if(accessUser != null){
             org.setParentId(accessUser.getOrgId());
             org.setRootId(accessUser.getRootOrgId());
         }
         try {
-			return new ResponseEntity(orgService.save(org), HttpStatus.OK);
+			return new ResponseEntity(orgService.update(org.getId(),org), HttpStatus.OK);
 		} catch (Exception e) {
 			return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
 		}

+ 1 - 6
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/UserApi.java

@@ -32,7 +32,6 @@ import cn.com.qmth.examcloud.common.uac.enums.UacPolicy;
 import cn.com.qmth.examcloud.common.util.ErrorMsg;
 import cn.com.qmth.examcloud.service.core.dto.UserInfo;
 import cn.com.qmth.examcloud.service.core.entity.User;
-import cn.com.qmth.examcloud.service.core.enums.UserScope;
 import cn.com.qmth.examcloud.service.core.enums.UserType;
 import cn.com.qmth.examcloud.service.core.repo.UserRepo;
 import cn.com.qmth.examcloud.service.core.service.UserService;
@@ -93,9 +92,6 @@ public class UserApi {
         if(accessUser != null){
             user.setRootOrgId(accessUser.getRootOrgId());
         }
-        user.setScope(UserScope.ORG);
-        user.setType(UserType.NOT_STUDENT);
-        user.setCreateTime(new Date());
         try {
 			return new ResponseEntity(userService.save(user), HttpStatus.CREATED);
 		} catch (Exception e) {
@@ -106,9 +102,8 @@ public class UserApi {
     @ApiOperation(value="更新用户",notes="更新")
     @PutMapping
     public ResponseEntity updateUser(@RequestBody User user){
-        user.setUpdateTime(new Date());
         try {
-			return new ResponseEntity(userService.save(user), HttpStatus.OK);
+			return new ResponseEntity(userService.update(user.getId(),user), HttpStatus.OK);
 		} catch (Exception e) {
 			return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
 		}

+ 25 - 6
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/CourseService.java

@@ -2,6 +2,7 @@ package cn.com.qmth.examcloud.service.core.service;
 
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -40,6 +41,7 @@ public class CourseService {
             	CourseDTO dto = (CourseDTO) obj;
             	Course course = new Course(dto.getName(),dto.getCode());
             	course.setOrgId(orgId);
+            	course.setCreateTime(new Date());
             	if("0".equalsIgnoreCase(dto.getLevel())){
             		course.setLevel(CourseLevel.ZSB);
             	}
@@ -115,18 +117,26 @@ public class CourseService {
 	}
 
 	public Course save(Course course) throws Exception{
-		Course old = courseRepo.findByOrgIdAndCode(course.getOrgId(),course.getCode());
+		checkCode(course.getOrgId(),course.getCode());
+		course.setCreateTime(new Date());
+		return courseRepo.save(course);
+	}
+
+	private void checkCode(Long orgId,String code) {
+		Course old = courseRepo.findByOrgIdAndCode(orgId,code);
 		if(old!=null){
 			throw new RuntimeException("代码已存在");
 		}
-		return courseRepo.save(course);
 	}
 
 	@Transactional
-	public Course enableCourse(Long courseId, boolean enable) {
-		Course course = courseRepo.findOne(courseId);
-		course.setEnable(enable);
-		return courseRepo.save(course);
+	public void enableCourse(List<Long> courseIds, boolean enable) {
+		for (Long courseId : courseIds) {
+			Course course = courseRepo.findOne(courseId);
+			course.setEnable(enable);
+			course.setUpdateTime(new Date());
+			courseRepo.save(course);
+		}
 	}
 	
 	@Transactional
@@ -138,4 +148,13 @@ public class CourseService {
         }
 	}
 
+	public Course update(Long id, Course course) {
+		Course old = courseRepo.findOne(id);
+		if(!old.getCode().equals(course.getCode())){
+			checkCode(course.getOrgId(),course.getCode());
+		}
+		course.setUpdateTime(new Date());
+		return courseRepo.save(course);
+	}
+
 }

+ 15 - 1
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/OrgService.java

@@ -102,10 +102,24 @@ public class OrgService {
 	}
 
 	public Org save(Org org) throws Exception{
-		Org old = orgRepo.findByParentIdAndCode(org.getParentId(),org.getCode());
+		checkCode(org.getParentId(),org.getCode());
+		org.setCreateTime(new Date());
+		return orgRepo.save(org);
+	}
+
+	private void checkCode(Long parentId,String code) {
+		Org old = orgRepo.findByParentIdAndCode(parentId,code);
 		if(old!=null){
 			throw new RuntimeException("代码已存在");
 		}
+	}
+
+	public Org update(Long id, Org org) {
+		Org old = orgRepo.findOne(id);
+		if(!old.getCode().equals(org.getCode())){
+			checkCode(org.getParentId(),org.getCode());
+		}
+		org.setUpdateTime(new Date());
 		return orgRepo.save(org);
 	}
 

+ 24 - 5
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/UserService.java

@@ -9,10 +9,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import cn.com.qmth.examcloud.common.uac.enums.RoleMeta;
-import cn.com.qmth.examcloud.service.core.entity.*;
-import cn.com.qmth.examcloud.service.core.repo.*;
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Example;
@@ -26,10 +22,17 @@ import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 import cn.com.qmth.examcloud.common.uac.enums.RoleMeta;
 import cn.com.qmth.examcloud.common.util.RedisUtil;
 import cn.com.qmth.examcloud.service.core.dto.UserInfo;
+import cn.com.qmth.examcloud.service.core.entity.Org;
+import cn.com.qmth.examcloud.service.core.entity.Student;
+import cn.com.qmth.examcloud.service.core.entity.User;
+import cn.com.qmth.examcloud.service.core.entity.UserLogin;
+import cn.com.qmth.examcloud.service.core.entity.UserRole;
+import cn.com.qmth.examcloud.service.core.enums.UserScope;
 import cn.com.qmth.examcloud.service.core.enums.UserType;
 import cn.com.qmth.examcloud.service.core.params.UserParam;
 import cn.com.qmth.examcloud.service.core.repo.OrgRepo;
 import cn.com.qmth.examcloud.service.core.repo.StudentRepo;
+import cn.com.qmth.examcloud.service.core.repo.UserLoginRepo;
 import cn.com.qmth.examcloud.service.core.repo.UserRepo;
 import cn.com.qmth.examcloud.service.core.repo.UserRoleRepo;
 
@@ -240,10 +243,26 @@ public class UserService {
 	}
 
 	public User save(User user) throws Exception{
-		User old = userRepo.findByRootOrgIdAndLoginName(user.getRootOrgId(), user.getLoginName());
+        user.setScope(UserScope.ORG);
+        user.setType(UserType.NOT_STUDENT);
+        user.setCreateTime(new Date());
+		checkLoginName(user.getRootOrgId(), user.getLoginName());
+		return userRepo.save(user);
+	}
+
+	private void checkLoginName(Long rootOrgId,String loginName) {
+		User old = userRepo.findByRootOrgIdAndLoginName(rootOrgId,loginName);
 		if(old!=null){
 			throw new RuntimeException("用户名已存在");
 		}
+	}
+
+	public User update(Long id, User user) {
+		User old =  userRepo.findOne(id);
+		if(!old.getLoginName().equals(user.getLoginName())){
+			checkLoginName(user.getRootOrgId(), user.getLoginName());
+		}
+		user.setUpdateTime(new Date());
 		return userRepo.save(user);
 	}