Pārlūkot izejas kodu

修复课程和机构增加更新验证

ting.yin 8 gadi atpakaļ
vecāks
revīzija
af9d7c9848

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

@@ -6,6 +6,8 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -27,6 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+import cn.com.qmth.examcloud.common.util.ErrorMsg;
 import cn.com.qmth.examcloud.common.util.excel.ExcelError;
 import cn.com.qmth.examcloud.service.core.assemble.CourseAssembler;
 import cn.com.qmth.examcloud.service.core.dto.CourseDTO;
@@ -93,7 +96,11 @@ public class CourseApi {
         if(accessUser != null){
             course.setOrgId(accessUser.getRootOrgId());
         }
-        return new ResponseEntity(courseRepo.save(course),HttpStatus.CREATED);
+        try {
+			return new ResponseEntity(courseService.save(course),HttpStatus.CREATED);
+		} catch (Exception e) {
+			return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
+		}
     }
 
     @ApiOperation(value="更新课程",notes="更新")
@@ -104,13 +111,17 @@ public class CourseApi {
         if(accessUser != null){
             course.setOrgId(accessUser.getRootOrgId());
         }
-        return new ResponseEntity(courseRepo.save(course),HttpStatus.OK);
+        try {
+			return new ResponseEntity(courseService.save(course), HttpStatus.OK);
+		} catch (Exception e) {
+			return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
+		}
     }
 
     @ApiOperation(value="按ID删除课程",notes="删除")
-    @DeleteMapping("/{id}")
-    public ResponseEntity deleteCourse(@PathVariable Long id){
-        courseRepo.delete(id);
+    @DeleteMapping("/{ids}")
+    public ResponseEntity deleteCourse(@PathVariable String ids){
+    	courseService.delete(ids);
         return new ResponseEntity(HttpStatus.OK);
     }
     
@@ -135,4 +146,15 @@ public class CourseApi {
         });
     	ExportUtils.exportEXCEL("课程列表", CourseDTO.class, list, response);
     }
+    
+    @ApiOperation(value="禁用课程",notes="禁用")
+    @PutMapping("/disable/{ids}")
+    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);
+        }
+        return new ResponseEntity(HttpStatus.OK);
+    }
 }

+ 12 - 3
core-api/src/main/java/cn/com/qmth/examcloud/service/core/api/OrgApi.java

@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
+import cn.com.qmth.examcloud.common.util.ErrorMsg;
 import cn.com.qmth.examcloud.common.util.excel.ExcelError;
 import cn.com.qmth.examcloud.service.core.entity.Org;
 import cn.com.qmth.examcloud.service.core.repo.OrgRepo;
@@ -81,7 +82,7 @@ public class OrgApi {
         orgCriteria.setParentId(parentId);
         return new ResponseEntity(orgService.findAll(orgCriteria,new PageRequest(curPage - 1,pageSize)), HttpStatus.OK);
     }
-//
+
 //    @ApiOperation(value="按rootId查询下属机构不带分页",notes="下属机构查询不带分页")
 //    @GetMapping("/allSub/{rootId}")
 //    public ResponseEntity<Org> getOrgByRootId(@PathVariable Long rootId){
@@ -97,7 +98,11 @@ public class OrgApi {
             org.setParentId(accessUser.getOrgId());
             org.setRootId(accessUser.getRootOrgId());
         }
-        return new ResponseEntity(orgRepo.save(org),HttpStatus.CREATED);
+        try {
+			return new ResponseEntity(orgService.save(org), HttpStatus.CREATED);
+		} catch (Exception e) {
+			return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
+		}
     }
 
     @ApiOperation(value="更新机构",notes="更新")
@@ -109,7 +114,11 @@ public class OrgApi {
             org.setParentId(accessUser.getOrgId());
             org.setRootId(accessUser.getRootOrgId());
         }
-        return new ResponseEntity(orgRepo.save(org),HttpStatus.OK);
+        try {
+			return new ResponseEntity(orgService.save(org), HttpStatus.OK);
+		} catch (Exception e) {
+			return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
+		}
     }
 
     @ApiOperation(value="按ID删除机构",notes="删除")

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

@@ -1,11 +1,8 @@
 package cn.com.qmth.examcloud.service.core.api;
 
-import cn.com.qmth.examcloud.common.util.error.CommonError;
-import cn.com.qmth.examcloud.service.core.dto.UserInfo;
 import io.swagger.annotations.ApiOperation;
 
 import java.io.File;
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -25,8 +22,8 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 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.Student;
-import cn.com.qmth.examcloud.service.core.entity.UserRole;
 import cn.com.qmth.examcloud.service.core.enums.LoginType;
 import cn.com.qmth.examcloud.service.core.repo.StudentRepo;
 import cn.com.qmth.examcloud.service.core.service.StudentService;
@@ -106,7 +103,7 @@ public class StudentApi {
             UserInfo userInfo = studentService.login(orgCode,loginName,password,loginType);
             return new ResponseEntity(userInfo,HttpStatus.OK);
         }catch (Exception e){
-            return new ResponseEntity(new CommonError(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
 }

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

@@ -1,7 +1,5 @@
 package cn.com.qmth.examcloud.service.core.api;
 
-import cn.com.qmth.examcloud.common.util.error.CommonError;
-import cn.com.qmth.examcloud.service.core.dto.UserInfo;
 import io.swagger.annotations.ApiOperation;
 
 import java.util.Date;
@@ -30,6 +28,8 @@ import cn.com.qmth.examcloud.common.uac.annotation.Uac;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 import cn.com.qmth.examcloud.common.uac.enums.RoleMeta;
 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;
@@ -171,7 +171,7 @@ public class UserApi {
             UserInfo userInfo = userService.login(loginName,password);
             return new ResponseEntity(userInfo,HttpStatus.OK);
         }catch (Exception e){
-            return new ResponseEntity(new CommonError(e.getMessage()),HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity(new ErrorMsg(e.getMessage()),HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
 
@@ -184,7 +184,7 @@ public class UserApi {
             UserInfo userInfo = userService.login(orgId,loginName,password);
             return new ResponseEntity(userInfo,HttpStatus.OK);
         }catch (Exception e){
-            return new ResponseEntity(new CommonError(e.getMessage()),HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity(new ErrorMsg(e.getMessage()),HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
     

+ 26 - 0
core-api/src/main/java/cn/com/qmth/examcloud/service/core/service/CourseService.java

@@ -5,6 +5,8 @@ import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatc
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import javax.transaction.Transactional;
 
@@ -85,4 +87,28 @@ public class CourseService {
         return courseList;
 	}
 
+	public Course save(Course course) throws Exception{
+		Course old = courseRepo.findByOrgIdAndCode(course.getOrgId(),course.getCode());
+		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);
+	}
+	
+	@Transactional
+	public void delete(String ids) {
+		List<Long> courseIds = Stream.of(ids.split(",")).map(s->Long.parseLong(s.trim()))
+                .collect(Collectors.toList());
+        for(Long courseId:courseIds){
+        	courseRepo.delete(courseId);
+        }
+	}
+
 }

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

@@ -1,6 +1,5 @@
 package cn.com.qmth.examcloud.service.core.service;
 import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.contains;
-import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
 
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -102,4 +101,12 @@ public class OrgService {
         return orgRepo.findAll(examExample);
 	}
 
+	public Org save(Org org) throws Exception{
+		Org old = orgRepo.findByParentIdAndCode(org.getParentId(),org.getCode());
+		if(old!=null){
+			throw new RuntimeException("代码已存在");
+		}
+		return orgRepo.save(org);
+	}
+
 }