weiwenhai пре 7 година
родитељ
комит
8524dda585
33 измењених фајлова са 452 додато и 221 уклоњено
  1. 7 5
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/AudioTimeConfigController.java
  2. 32 23
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/CoursePropertyController.java
  3. 9 5
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/ExportStructureController.java
  4. 7 5
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/ExtractConfigController.java
  5. 12 8
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/GenPaperController.java
  6. 7 5
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/ImportPaperController.java
  7. 41 22
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PaperController.java
  8. 5 3
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PaperDetailController.java
  9. 9 5
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PaperDetailUnitController.java
  10. 18 11
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PaperStructController.java
  11. 40 30
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PropertyController.java
  12. 8 4
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/QuesController.java
  13. 2 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/AudioTimeConfigService.java
  14. 2 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ExportStructureService.java
  15. 3 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ExtractConfigFileService.java
  16. 4 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ExtractConfigService.java
  17. 14 13
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ImportPaperService.java
  18. 2 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperDetailService.java
  19. 3 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperDetailUnitService.java
  20. 10 11
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperService.java
  21. 3 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperStructService.java
  22. 6 6
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PropertyService.java
  23. 2 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/QuestionAudioService.java
  24. 4 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/AudioTimeConfigServiceImpl.java
  25. 5 5
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExportStructureServiceImpl.java
  26. 5 5
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigFileServiceImpl.java
  27. 2 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigServiceImpl.java
  28. 3 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailServiceImpl.java
  29. 3 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailUnitServiceImpl.java
  30. 18 16
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperServiceImpl.java
  31. 6 6
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PropertyServiceImpl.java
  32. 3 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/QuestionAudioServiceImpl.java
  33. 157 0
      examcloud-core-questions-starter/src/main/java/cn/com/qmth/examcloud/core/questions/starter/config/DefaultWebMvcConfigurerAdapter.java

+ 7 - 5
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/AudioTimeConfigController.java

@@ -17,8 +17,9 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.questions.dao.entity.AudioTimeConfig;
 import cn.com.qmth.examcloud.core.questions.service.AudioTimeConfigService;
 
@@ -30,7 +31,7 @@ import cn.com.qmth.examcloud.core.questions.service.AudioTimeConfigService;
  */
 @Controller
 @RequestMapping("${api_cqb}/")
-public class AudioTimeConfigController {
+public class AudioTimeConfigController extends ControllerSupport{
 	
 	@Autowired
 	private AudioTimeConfigService audioTimeConfigService;
@@ -52,9 +53,10 @@ public class AudioTimeConfigController {
 	@ApiOperation(value="新增音频播放次数",notes="新增音频播放次数")
 	@PostMapping("/addAudioTimeConfig")
 	public ResponseEntity addAudioTimeConfig(@RequestBody List<AudioTimeConfig> audioTimeConfigList,HttpServletRequest request){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
-			audioTimeConfigService.saveAudioTimeConfig(audioTimeConfigList, accessUser);
+		User user = getAccessUser();
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
+			audioTimeConfigService.saveAudioTimeConfig(audioTimeConfigList, user);
 			return new ResponseEntity(HttpStatus.OK);
 		}
 		return new ResponseEntity(HttpStatus.NOT_FOUND);

+ 32 - 23
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/CoursePropertyController.java

@@ -24,8 +24,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.CoursePropertyDto;
 import cn.com.qmth.examcloud.core.questions.dao.entity.CourseProperty;
 import cn.com.qmth.examcloud.core.questions.service.CoursePropertyService;
@@ -37,7 +38,7 @@ import cn.com.qmth.examcloud.core.questions.service.CoursePropertyService;
  */
 @Controller
 @RequestMapping("${api_cqb}/")
-public class CoursePropertyController {
+public class CoursePropertyController extends ControllerSupport{
 
 	@Autowired
 	private CoursePropertyService coursePropertyService;
@@ -45,9 +46,10 @@ public class CoursePropertyController {
 	@ApiOperation(value="根据orgId查询所有课程属性", notes="不带分页")
 	@GetMapping(value="/courseProperty/all")
 	public ResponseEntity<Object> findAllByOrg(HttpServletRequest request){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
-			List<CourseProperty> courseProperties = coursePropertyService.findAllByOrgId(accessUser.getRootOrgId());
+		User user = getAccessUser();
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
+			List<CourseProperty> courseProperties = coursePropertyService.findAllByOrgId(user.getRootOrgId());
 			return new ResponseEntity<Object>(courseProperties,HttpStatus.OK);
 		}
 		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
@@ -59,11 +61,12 @@ public class CoursePropertyController {
 												 @PathVariable Integer curPage,
 												 @PathVariable Integer pageSize,
 												 HttpServletRequest request){
-		 AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-		 if(accessUser == null){
+		 //AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+		 User user = getAccessUser();
+		 if(user == null){
 			 return new ResponseEntity(HttpStatus.NOT_FOUND);
 		 }
-		 coursePropertyDto.setOrgId(accessUser.getRootOrgId());
+		 coursePropertyDto.setOrgId(user.getRootOrgId());
 		 Page<CourseProperty> coursePropertiesPage = coursePropertyService.findAllByOrg(coursePropertyDto, new PageRequest(curPage - 1,pageSize,new Sort(Direction.DESC, "id")));
 		 return new ResponseEntity<Object>(coursePropertiesPage,HttpStatus.OK);
 	}
@@ -71,10 +74,11 @@ public class CoursePropertyController {
 	@ApiOperation(value="新增课程属性" ,notes="新增课程属性")
 	@PostMapping(value="/courseProperty/save")
 	public ResponseEntity<Object> saveCourseProperty(HttpServletRequest request,@RequestBody CoursePropertyDto coursePropertyDto){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		User user = getAccessUser();
+		if(user != null){
 			try {
-				coursePropertyDto.setOrgId(accessUser.getRootOrgId());
+				coursePropertyDto.setOrgId(user.getRootOrgId());
 				coursePropertyService.saveCourseProperty(coursePropertyDto);
 			} catch (Exception e) {
 				return new ResponseEntity<Object>(HttpStatus.INTERNAL_SERVER_ERROR);
@@ -87,9 +91,10 @@ public class CoursePropertyController {
 	@ApiOperation(value="启用", notes="启用")
 	@PutMapping(value="/courseProperty/open/{id}")
 	public ResponseEntity<Object> openCourseProperty(HttpServletRequest request, @PathVariable Long id){
-		AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-		if(accessUser != null){
-			coursePropertyService.openCourseProperty(id, accessUser.getRootOrgId());
+		//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+		User user = getAccessUser();
+		if(user != null){
+			coursePropertyService.openCourseProperty(id, user.getRootOrgId());
 			return new ResponseEntity<Object>(HttpStatus.OK);
 		}
 		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
@@ -98,9 +103,10 @@ public class CoursePropertyController {
 	@ApiOperation(value="禁用", notes="禁用")
 	@PutMapping(value="/courseProperty/close/{id}")
 	public ResponseEntity<Object> closeCourseProperty(HttpServletRequest request, @PathVariable Long id){
-		AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-		if(accessUser != null){
-			coursePropertyService.closeCourseProperty(id, accessUser.getRootOrgId());
+		//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+		User user = getAccessUser();
+		if(user != null){
+			coursePropertyService.closeCourseProperty(id, user.getRootOrgId());
 			return new ResponseEntity<Object>(HttpStatus.OK);
 		}
 		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
@@ -109,8 +115,9 @@ public class CoursePropertyController {
 	@ApiOperation(value="根据courseId查询所有课程属性", notes="不带分页")
 	@GetMapping(value="/courseProperty/all/{courseId}")
 	public ResponseEntity<Object> findAllByCourseId(HttpServletRequest request,@PathVariable Long courseId){
-		AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-		if(accessUser != null){
+		//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+		User user = getAccessUser();
+		if(user != null){
 			List<CourseProperty> courseProperties = coursePropertyService.findAllByCourseId(courseId);
 			return new ResponseEntity<Object>(courseProperties,HttpStatus.OK);
 		}
@@ -120,8 +127,9 @@ public class CoursePropertyController {
 	@ApiOperation(value="根据courseCode查询所有课程属性", notes="不带分页")
 	@GetMapping(value="/courseProperty/code/{courseCode}")
 	public ResponseEntity<Object> findAllByCourseCode(HttpServletRequest request,@PathVariable String courseCode){
-		AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-		if(accessUser != null){
+		User user = getAccessUser();
+		//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+		if(user != null){
 			List<CourseProperty> courseProperties = coursePropertyService.findAllByCourseCode(courseCode);
 			return new ResponseEntity<Object>(courseProperties,HttpStatus.OK);
 		}
@@ -131,8 +139,9 @@ public class CoursePropertyController {
 	@ApiOperation(value="根据courseCode查询所有开启的课程属性", notes="不带分页")
 	@GetMapping(value="/courseProperty/enable/{courseCode}")
 	public ResponseEntity<Object> findAllEnable(HttpServletRequest request,@PathVariable String courseCode){
-		AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-		if(accessUser != null){
+		User user = getAccessUser();
+		//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+		if(user != null){
 			List<CourseProperty> courseProperties = coursePropertyService.findAllEnable(courseCode,true);
 			return new ResponseEntity<Object>(courseProperties,HttpStatus.OK);
 		}

+ 9 - 5
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/ExportStructureController.java

@@ -18,8 +18,9 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.service.ExportStructureService;
 
@@ -31,7 +32,7 @@ import cn.com.qmth.examcloud.core.questions.service.ExportStructureService;
  */
 @Controller
 @RequestMapping("${api_cqb}/")
-public class ExportStructureController {
+public class ExportStructureController extends ControllerSupport{
 	
 	@Autowired
 	private ExportStructureService exportStructureService;
@@ -40,7 +41,8 @@ public class ExportStructureController {
     @PostMapping(value = "/saveExportStructure")
 	public ResponseEntity saveExportStructure(HttpServletRequest request,@RequestBody ExportStructure exportStructure){
 		try{
-			AccessUser user = (AccessUser) request.getAttribute("accessUser");
+			User user = getAccessUser();
+			//AccessUser user = (AccessUser) request.getAttribute("accessUser");
 			exportStructureService.saveExportStructure(exportStructure,user);
 			return new ResponseEntity(HttpStatus.OK);
 		}catch(Exception e){
@@ -55,7 +57,8 @@ public class ExportStructureController {
 													@PathVariable int pageSize,
 													@RequestBody ExportStructure exportStructure){
 		try{
-			AccessUser user = (AccessUser) request.getAttribute("accessUser");
+			User user = getAccessUser();
+			//AccessUser user = (AccessUser) request.getAttribute("accessUser");
 			exportStructure.setOrgId(user.getRootOrgId()+"");
 			Page<ExportStructure> pageExportStructure = exportStructureService.findPageByExportStructure(exportStructure, curPage, pageSize);
 			return new ResponseEntity(pageExportStructure,HttpStatus.OK);
@@ -67,7 +70,8 @@ public class ExportStructureController {
 	@ApiOperation(value="根据考试ID查询导出结构",notes="根据考试ID查询导出结构")
 	@GetMapping(value="/findExportStructure/{examId}")
 	public ResponseEntity findExportStructure(HttpServletRequest request,@PathVariable String examId){
-		AccessUser user = (AccessUser) request.getAttribute("accessUser");
+		User user = getAccessUser();
+		//AccessUser user = (AccessUser) request.getAttribute("accessUser");
 		ExportStructure  condition = new ExportStructure();
 		condition.setOrgId(user.getRootOrgId()+"");
 		condition.setExamId(examId);

+ 7 - 5
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/ExtractConfigController.java

@@ -28,9 +28,10 @@ import org.springframework.web.bind.annotation.RequestParam;
 
 import cn.com.qmth.examcloud.common.dto.question.PaperDto;
 import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.commons.base.util.ErrorMsg;
-
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.ExportPaperInfoModel;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.service.ExtractConfigFileService;
@@ -47,7 +48,7 @@ import cn.com.qmth.examcloud.core.questions.base.enums.ExportWay;
  */
 @Controller
 @RequestMapping("${api_cqb}/")
-public class ExtractConfigController {
+public class ExtractConfigController extends ControllerSupport {
 	private static final Logger logger = LoggerFactory.getLogger(ExtractConfigController.class);
 	
 	@Autowired
@@ -93,9 +94,10 @@ public class ExtractConfigController {
     @PutMapping(value = "/extractConfig/{isbuildFile}")
 	public ResponseEntity<Object> saveExtractConfig(HttpServletRequest request,@PathVariable Integer isbuildFile,@RequestBody ExtractConfig extractConfig){
 		try{
-			AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-			extractConfig.setOrgId(accessUser.getRootOrgId()+"");
-			extractConfig.setOrgName(accessUser.getRootOrgName());
+			User user = getAccessUser();
+			//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+			extractConfig.setOrgId(user.getRootOrgId()+"");
+			extractConfig.setOrgName(user.getRootOrgName());
 			extractConfigFileService.saveExtractConfigAndBuildPaperFile(extractConfig,isbuildFile,accessUser);
 			return new ResponseEntity<Object>(HttpStatus.OK);
 		}catch(Exception e){

+ 12 - 8
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/GenPaperController.java

@@ -17,11 +17,12 @@ import cn.com.qmth.examcloud.core.questions.service.bean.dto.GenPaperDto;
 import cn.com.qmth.examcloud.core.questions.service.impl.GenPaperService;
 import cn.com.qmth.examcloud.core.questions.service.PaperService;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
-
 import cn.com.qmth.examcloud.commons.web.security.annotation.Uac;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.security.enums.UacPolicy;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -31,7 +32,7 @@ import io.swagger.annotations.ApiOperation;
  */
 @RestController
 @RequestMapping("${api_cqb}/")
-public class GenPaperController {
+public class GenPaperController extends ControllerSupport {
 
     @Autowired
     GenPaperService genPaperService;
@@ -43,9 +44,10 @@ public class GenPaperController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PostMapping("/genPaper/simple")
     public ResponseEntity<Object> genPaperSimple(HttpServletRequest request, @RequestBody GenPaperDto genPaperDto) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         genPaperDto.setOrgId(user.getRootOrgId().toString());
-        genPaperDto.setCreator(user.getName());
+        genPaperDto.setCreator(user.getDisplayName());
         Map<String, Object> paperMap = new HashMap<String, Object>();
         try {
         	//判断试卷名称是否一样
@@ -87,9 +89,10 @@ public class GenPaperController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PostMapping("/genPaper/normal")
     public ResponseEntity<Object> genPaperNormal(HttpServletRequest request, @RequestBody GenPaperDto genPaperDto) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         genPaperDto.setOrgId(user.getRootOrgId().toString());
-        genPaperDto.setCreator(user.getName());
+        genPaperDto.setCreator(user.getDisplayName());
         Map<String, Object> paperMap = new HashMap<String, Object>();
         String paperName = genPaperDto.getPaperName();
         //判断试卷名称是否一样
@@ -126,9 +129,10 @@ public class GenPaperController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PostMapping("/genPaper/blue")
     public ResponseEntity<Object> genPaperBlue(HttpServletRequest request, @RequestBody GenPaperDto genPaperDto) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         genPaperDto.setOrgId(user.getRootOrgId().toString());
-        genPaperDto.setCreator(user.getName());
+        genPaperDto.setCreator(user.getDisplayName());
         Map<String, Object> paperMap = new HashMap<String, Object>();
         String paperName = genPaperDto.getPaperName();
         //判断试卷名称是否一样

+ 7 - 5
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/ImportPaperController.java

@@ -7,7 +7,6 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 
 import cn.com.qmth.examcloud.commons.base.util.ErrorMsg;
-
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
 
 import org.slf4j.Logger;
@@ -27,11 +26,12 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
 import cn.com.qmth.examcloud.core.questions.service.ImportPaperService;
 import cn.com.qmth.examcloud.core.questions.service.PaperService;
-
 import cn.com.qmth.examcloud.commons.web.security.annotation.Uac;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.security.enums.UacPolicy;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -39,7 +39,7 @@ import io.swagger.annotations.ApiOperation;
  */
 @RestController
 @RequestMapping("${api_cqb}/")
-public class ImportPaperController {
+public class ImportPaperController extends ControllerSupport {
 
     protected static final Logger log = LoggerFactory.getLogger(ImportPaperController.class);
 
@@ -66,7 +66,8 @@ public class ImportPaperController {
     public ResponseEntity importPaper(HttpServletRequest request, 
                                         @ModelAttribute  Paper paper,
                                         @RequestParam("file") CommonsMultipartFile file) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         log.info("导入开始");
         File tempFile = null;
         try {
@@ -96,7 +97,8 @@ public class ImportPaperController {
                                         @PathVariable String courseNo,
                                         @PathVariable String courseName, 
                                         @PathVariable String paperName) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         Map<String, Object> returnMap = importPaperService.saveBlankPaper(courseNo, courseName, paperName, user);
         if (returnMap.get("msg").equals("success")) {
             return new ResponseEntity(returnMap, HttpStatus.OK);

+ 41 - 22
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PaperController.java

@@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import com.google.gson.Gson;
+
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
@@ -46,12 +47,13 @@ import cn.com.qmth.examcloud.core.questions.service.QuesService;
 import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
 import cn.com.qmth.examcloud.core.questions.base.StringSimilarityUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
-
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.commons.web.security.annotation.Uac;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.security.enums.UacPolicy;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.commons.base.util.ErrorMsg;
 import io.swagger.annotations.ApiOperation;
 
@@ -60,7 +62,7 @@ import io.swagger.annotations.ApiOperation;
  */
 @RestController
 @RequestMapping("${api_cqb}/")
-public class PaperController {
+public class PaperController extends ControllerSupport{
 
     @Autowired
     PaperService paperService;
@@ -100,7 +102,8 @@ public class PaperController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PutMapping(value = "/paper")
     public ResponseEntity savePaperById(HttpServletRequest request, @RequestBody PaperExp paper) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
+        User user = getAccessUser();
         Map<String, Object> msgMap = paperService.savePaper(paper, user);
         if ("success".equals(msgMap.get("msg"))) {
             return new ResponseEntity(msgMap, HttpStatus.OK);
@@ -125,7 +128,8 @@ public class PaperController {
                                           @ModelAttribute PaperSearchInfo paperSearchInfo,
                                           @PathVariable int curPage,
                                           @PathVariable int pageSize) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         return new ResponseEntity(paperService.getImportPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
     }
@@ -135,7 +139,8 @@ public class PaperController {
     @GetMapping(value = "/importPaperNotSuccess/{curPage}/{pageSize}")
     public ResponseEntity getImportPapersNotSuccess(HttpServletRequest request,
             @ModelAttribute PaperSearchInfo paperSearchInfo, @PathVariable int curPage, @PathVariable int pageSize) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         return new ResponseEntity(paperService.getImportPapersNotSuccess(paperSearchInfo, curPage, pageSize),
                 HttpStatus.OK);
@@ -146,7 +151,8 @@ public class PaperController {
     @GetMapping(value = "/getImportPaper")
     public ResponseEntity<List<Paper>> getImportPapersBySearch(HttpServletRequest request,
                                                                @ModelAttribute PaperSearchInfo paperSearchInfo) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         return new ResponseEntity<List<Paper>>(paperService.getImportPapersBySearch(paperSearchInfo), HttpStatus.OK);
     }
@@ -156,7 +162,8 @@ public class PaperController {
     @GetMapping(value = "/getGenPaper")
     public ResponseEntity<List<Paper>> getGenPapersBySearch(HttpServletRequest request,
                                                             @ModelAttribute PaperSearchInfo paperSearchInfo) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         return new ResponseEntity<List<Paper>>(paperService.getGenPapersBySearch(paperSearchInfo), HttpStatus.OK);
     }
@@ -174,7 +181,8 @@ public class PaperController {
     @GetMapping(value = "/genPaper/{curPage}/{pageSize}")
     public ResponseEntity getGenPapers(HttpServletRequest request, @ModelAttribute PaperSearchInfo paperSearchInfo,
             @PathVariable int curPage, @PathVariable int pageSize) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         return new ResponseEntity(paperService.getGenPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
     }
@@ -193,7 +201,8 @@ public class PaperController {
     @GetMapping(value = "/genPaper/{ids}/{curPage}/{pageSize}")
     public ResponseEntity<Object> getGenPapersNotInIds(HttpServletRequest request, @ModelAttribute PaperSearchInfo paperSearchInfo, 
     		@PathVariable String[] ids, @PathVariable int curPage, @PathVariable int pageSize) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         if (ids != null && ids.length > 0) {
             return new ResponseEntity<Object>(paperService.getPapersNotInIds(paperSearchInfo, ids, curPage, pageSize,PaperType.GENERATE),
@@ -359,7 +368,8 @@ public class PaperController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @DeleteMapping(value = "/paper/deleteQuestion/{questionId}")
     public ResponseEntity deleteImportPaperQuestion(HttpServletRequest request, @PathVariable String questionId) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         List<String> paperNames = paperService.deleteImportQuestionById(questionId, user);
         return new ResponseEntity(paperNames, HttpStatus.OK);
     }
@@ -377,7 +387,8 @@ public class PaperController {
     @PostMapping(value = "/paper/addQuestion/{paperId}/{paperDetailId}")
     public ResponseEntity<Object> insertQuestionToPaper(HttpServletRequest request, @PathVariable String paperId,
             @PathVariable String paperDetailId, @RequestBody Question question) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         return new ResponseEntity<Object>(paperService.insertQuestionToPaper(paperId, paperDetailId, question, user),
                 HttpStatus.OK);
 
@@ -482,15 +493,16 @@ public class PaperController {
                                                 @PathVariable int pageSize,
                                                 @RequestParam(name = "quesType") String quesType,
                                                 @RequestParam(name = "quesBody") String quesBody) {
-        AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-        if(accessUser == null){
+    	User user = getAccessUser();
+        //AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+        if(user == null){
             return new ResponseEntity<Object>(new PageImpl<Question>(new ArrayList<Question>()),HttpStatus.OK);
         }
         QuesStructType quesStructType = null;
         if (StringUtils.isNotEmpty(quesType)) {
         	quesStructType = QuesStructType.valueOf(quesType);
         }
-        Page<Question> questionPageList = paperService.listQuestionforSelect(paperId,curPage,pageSize,quesStructType,accessUser,quesBody);
+        Page<Question> questionPageList = paperService.listQuestionforSelect(paperId,curPage,pageSize,quesStructType,user,quesBody);
         return new ResponseEntity<Object>(questionPageList,HttpStatus.OK);
     }
 
@@ -507,7 +519,8 @@ public class PaperController {
     @PostMapping(value = "/paper/selectQuestions/{paperId}/{paperDetailId}")
     public ResponseEntity selectQuestionsToPaper(HttpServletRequest request, @PathVariable String paperId,
             @PathVariable String paperDetailId, @RequestBody List<Question> questions) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         return new ResponseEntity(paperService.selectQuestionsToPaper(paperId, paperDetailId, questions, user),
                 HttpStatus.OK);
 
@@ -528,7 +541,8 @@ public class PaperController {
     public ResponseEntity getImportPapersNotInIds(HttpServletRequest request,
             @ModelAttribute PaperSearchInfo paperSearchInfo, @PathVariable String[] ids, @PathVariable int curPage,
             @PathVariable int pageSize) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         if (ids != null && ids.length > 0) {
             return new ResponseEntity(paperService.getPapersNotInIds(paperSearchInfo, ids, curPage, pageSize,PaperType.IMPORT),
@@ -549,7 +563,8 @@ public class PaperController {
     @GetMapping(value = "/importPaper/course")
     public ResponseEntity getImportPapersByCourseNo(HttpServletRequest request,
             @ModelAttribute PaperSearchInfo paperSearchInfo) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         paperService.formatPaperSearchInfo(paperSearchInfo);
         Paper importPaper = BeanCopierUtil.copyProperties(paperSearchInfo, Paper.class);
@@ -567,7 +582,8 @@ public class PaperController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PutMapping(value = "/useBasePaper/{paperIds}")
     public ResponseEntity useBasePaper(HttpServletRequest request,@PathVariable String paperIds){
-    	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
     	try{
     		String[] paperIdArray = paperIds.split(",");
         	for(int i = 0;i<paperIdArray.length;i++){
@@ -577,7 +593,7 @@ public class PaperController {
         			return new ResponseEntity(new ErrorMsg("考试试卷:"+oldpaper.getName()+"已经存在"),HttpStatus.OK);
         		}
         	}
-    		paperService.useBasePaper(paperIds, user.getName());
+    		paperService.useBasePaper(paperIds, user.getDisplayName());
     		return new ResponseEntity(HttpStatus.OK);
     	}catch(Exception e){
     		return new ResponseEntity(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
@@ -600,7 +616,8 @@ public class PaperController {
     @ApiOperation(value="上传音频文件", notes="上传音频文件")
     @PostMapping(value="/uploadRadio/{paperId}")
     public ResponseEntity uploadRadio(List<MultipartFile> files,@PathVariable String paperId,HttpServletRequest request){
-    	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
     	try {
 			paperService.uploadRadio(files, paperId, user);
 			return new ResponseEntity(HttpStatus.OK);
@@ -633,7 +650,8 @@ public class PaperController {
     										@PathVariable String paperId,
     										@PathVariable String paperHtmlUrl,
     										@PathVariable String examId){
-    	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
     	if(user == null){
     		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
     	}
@@ -644,7 +662,8 @@ public class PaperController {
     @ApiOperation(value="根据试卷id查询主观题与客观题数量", notes="根据试卷id查询主观题与客观题数量")
     @GetMapping(value="/questionStructure")
     public QuestionAllTypeDto findQuestionStructure(HttpServletRequest request,@RequestParam("paperId") String paperId, @RequestHeader("user_token") String user_token) throws Exception{
-    	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
 		return paperService.findQuestionStructure(paperId,user);
     }
 }

+ 5 - 3
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PaperDetailController.java

@@ -20,11 +20,12 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.service.PaperDetailService;
 import cn.com.qmth.examcloud.core.questions.service.PaperService;
-
 import cn.com.qmth.examcloud.commons.web.security.annotation.Uac;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.security.enums.UacPolicy;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -32,7 +33,7 @@ import io.swagger.annotations.ApiOperation;
  */
 @RestController
 @RequestMapping("${api_cqb}/")
-public class PaperDetailController {
+public class PaperDetailController extends ControllerSupport {
 
     @Autowired
     PaperDetailService paperDetailService;
@@ -81,7 +82,8 @@ public class PaperDetailController {
     public ResponseEntity updatePaperDetail( HttpServletRequest request,
                                              @PathVariable String paperId, 
                                              @RequestBody PaperDetail pd) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+        User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         PaperDetail paperDetail = paperDetailService.savePaperDetail(pd,paperId,user);
         return new ResponseEntity(paperDetail, HttpStatus.OK);
 

+ 9 - 5
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PaperDetailUnitController.java

@@ -18,11 +18,12 @@ import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
-
 import cn.com.qmth.examcloud.commons.web.security.annotation.Uac;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.security.enums.UacPolicy;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -30,7 +31,7 @@ import io.swagger.annotations.ApiOperation;
  */
 @RestController
 @RequestMapping("${api_cqb}/")
-public class PaperDetailUnitController {
+public class PaperDetailUnitController extends ControllerSupport {
 
     @Autowired
     PaperDetailUnitService unitService;
@@ -71,7 +72,8 @@ public class PaperDetailUnitController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PutMapping(value = "/paperDetailUnit")
     public ResponseEntity updatePaperDetailUnit(HttpServletRequest request, @RequestBody PaperDetailUnitExp pdu) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+        User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu, user);
         return new ResponseEntity(HttpStatus.OK);
 
@@ -87,7 +89,8 @@ public class PaperDetailUnitController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PostMapping(value = "/paperDetailUnit")
     public ResponseEntity addPaperDetailUnit(HttpServletRequest request, @RequestBody PaperDetailUnitExp pdu) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu, user);
         return new ResponseEntity(pdUnit, HttpStatus.OK);
     }
@@ -102,7 +105,8 @@ public class PaperDetailUnitController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @DeleteMapping(value = "/paperDetailUnit/{unitId}")
     public ResponseEntity removePaperDetailUnit(HttpServletRequest request, @PathVariable String unitId) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         unitService.deletePaperDetailUnit(unitId, user);
         return new ResponseEntity(HttpStatus.OK);
     }

+ 18 - 11
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PaperStructController.java

@@ -9,6 +9,7 @@ import javax.servlet.http.HttpServletRequest;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.QuesNameDto;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.http.HttpStatus;
@@ -19,11 +20,12 @@ import cn.com.qmth.examcloud.core.questions.dao.PaperStructRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperStruct;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperStructSearchInfo;
 import cn.com.qmth.examcloud.core.questions.service.PaperStructService;
-
 import cn.com.qmth.examcloud.commons.web.security.annotation.Uac;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.security.enums.UacPolicy;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -31,7 +33,7 @@ import io.swagger.annotations.ApiOperation;
  */
 @RestController
 @RequestMapping("${api_cqb}/")
-public class PaperStructController {
+public class PaperStructController extends ControllerSupport {
 
     @Autowired
     PaperStructService paperStructService;
@@ -51,9 +53,10 @@ public class PaperStructController {
                                           @ModelAttribute PaperStructSearchInfo searchInfo,
                                           @PathVariable int curPage,
                                           @PathVariable int pageSize) {
-        AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-        if(accessUser != null){
-            searchInfo.setOrgId(accessUser.getRootOrgId().toString());
+        User user = getAccessUser();
+    	//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+        if(user != null){
+            searchInfo.setOrgId(user.getRootOrgId().toString());
         }
         Page<PaperStruct> paperStructs= paperStructService.getPaperStructs(searchInfo, curPage, pageSize);
         return new ResponseEntity(paperStructs, HttpStatus.OK);
@@ -68,9 +71,10 @@ public class PaperStructController {
     @GetMapping(value = "/paperStruct")
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     public ResponseEntity getPaperStructs(HttpServletRequest request,@ModelAttribute PaperStructSearchInfo searchInfo) {
-        AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-        if(accessUser != null){
-            searchInfo.setOrgId(accessUser.getRootOrgId().toString());
+    	User user = getAccessUser();
+    	//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+        if(user != null){
+            searchInfo.setOrgId(user.getRootOrgId().toString());
         }
         List<PaperStruct> paperStructs = paperStructService.getPaperStructs(searchInfo);
         return new ResponseEntity(paperStructs, HttpStatus.OK);
@@ -99,7 +103,8 @@ public class PaperStructController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PutMapping(value = "/paperStruct")
     public ResponseEntity updatePaperStruct(HttpServletRequest request, @RequestBody PaperStruct ps) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         PaperStruct paperStruct = paperStructService.save(ps, user);
         if (paperStruct == null) {
             return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
@@ -119,7 +124,8 @@ public class PaperStructController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @PostMapping(value = "/paperStruct")
     public ResponseEntity addPaperStruct(HttpServletRequest request, @RequestBody PaperStruct ps) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         PaperStruct paperStructTemp = paperStructService.checkNameUnique(ps.getName(), user.getRootOrgId().toString(),ps.getType());
         if (paperStructTemp != null) {
             return new ResponseEntity("试卷结构名称重复,请重新命名!", HttpStatus.INTERNAL_SERVER_ERROR);
@@ -157,7 +163,8 @@ public class PaperStructController {
                                              @RequestParam(required = false) String courseNo,
                                              @RequestParam QuesStructType quesType) {
         List<QuesNameDto> quesNameDtos = new ArrayList<>();
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+        User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         if(user != null){
             quesNameDtos = paperStructService.getQuesNameList(user.getOrgId().toString(),courseNo,quesType);
         }

+ 40 - 30
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/PropertyController.java

@@ -20,8 +20,9 @@ import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PropertyDto;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Property;
 import cn.com.qmth.examcloud.core.questions.service.PropertyService;
@@ -33,7 +34,7 @@ import cn.com.qmth.examcloud.core.questions.service.PropertyService;
  */
 @Controller
 @RequestMapping("${api_cqb}/")
-public class PropertyController {
+public class PropertyController extends ControllerSupport {
 
 	@Autowired
 	private PropertyService propertyService;
@@ -41,10 +42,11 @@ public class PropertyController {
 	@ApiOperation(value="新增属性", notes="新增属性")
 	@PostMapping(value="/property/save")
 	public ResponseEntity<Object> saveProperty(HttpServletRequest request, @RequestBody Property property){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
+		User user = getAccessUser();
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
 			try {
-				propertyService.saveProperty(property, accessUser);
+				propertyService.saveProperty(property, user);
 				return new ResponseEntity<Object>(HttpStatus.OK);
 			} catch (Exception e) {
 				e.printStackTrace();
@@ -57,21 +59,23 @@ public class PropertyController {
 	@ApiOperation(value="查询所有属性dto", notes="树形结构")
 	@GetMapping(value="/property/all/{coursePropertyId}")
 	public ResponseEntity<Object> findAllProperty(HttpServletRequest request, @PathVariable String coursePropertyId){
-		AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
-		 if(accessUser == null){
-			 return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
-		 }
-		 List<PropertyDto> propertyDtos = propertyService.propertyDtos(Long.parseLong(coursePropertyId), accessUser);
+		User user = getAccessUser(); 
+		//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+		if(user == null){
+			return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
+		}
+		List<PropertyDto> propertyDtos = propertyService.propertyDtos(Long.parseLong(coursePropertyId), user);
 		return new ResponseEntity<Object>(propertyDtos,HttpStatus.OK);
 	}
 	
 	@ApiOperation(value="更新属性", notes="更新属性")
 	@PutMapping(value="/property/save")
 	public ResponseEntity<Object> updateProperty(HttpServletRequest request, @RequestBody Property property){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
+		User user = getAccessUser(); 
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
 			try {
-				propertyService.saveProperty(property, accessUser);
+				propertyService.saveProperty(property, user);
 				return new ResponseEntity<Object>(HttpStatus.OK);
 			} catch (Exception e) {
 				e.printStackTrace();
@@ -84,9 +88,10 @@ public class PropertyController {
 	@ApiOperation(value="删除属性", notes="删除属性")
 	@DeleteMapping(value="/property/delete/{propertyId}/{coursePropertyId}")
 	public ResponseEntity<Object> deleteProperty(HttpServletRequest request, @PathVariable Long propertyId, @PathVariable Long coursePropertyId){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
-			propertyService.deleteProperty(propertyId, coursePropertyId, accessUser);
+		User user = getAccessUser(); 
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
+			propertyService.deleteProperty(propertyId, coursePropertyId, user);
 			return new ResponseEntity<Object>(HttpStatus.OK);
 		}
 		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
@@ -95,9 +100,10 @@ public class PropertyController {
 	@ApiOperation(value="查询所有属性", notes="查询所有属性")
 	@GetMapping(value="/property/{coursePropertyId}")
 	public ResponseEntity<Object> findAll(HttpServletRequest request, @PathVariable String coursePropertyId){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
-			List<Property> properties = propertyService.findAll(Long.parseLong(coursePropertyId), accessUser);
+		User user = getAccessUser(); 
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
+			List<Property> properties = propertyService.findAll(Long.parseLong(coursePropertyId), user);
 			return new ResponseEntity<Object>(properties,HttpStatus.OK);
 		}
 		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
@@ -106,8 +112,9 @@ public class PropertyController {
 	@ApiOperation(value="根据一级查询二级所有属性", notes="查询所有属性")
 	@GetMapping(value="/property/second/{propertyId}")
 	public ResponseEntity<Object> findSons(HttpServletRequest request, @PathVariable Long propertyId){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
+		User user = getAccessUser(); 
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
 			List<Property> properties = propertyService.findPropertySons(propertyId);
 			return new ResponseEntity<Object>(properties,HttpStatus.OK);
 		}
@@ -117,9 +124,10 @@ public class PropertyController {
 	@ApiOperation(value="根据课程属性id所有一级属性", notes="查询所有属性")
 	@GetMapping(value="/property/first/{coursePropertyId}")
 	public ResponseEntity<Object> findParents(HttpServletRequest request, @PathVariable Long coursePropertyId){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
-			List<Property> properties = propertyService.findPropertyParents(coursePropertyId, accessUser.getRootOrgId());
+		User user = getAccessUser(); 
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
+			List<Property> properties = propertyService.findPropertyParents(coursePropertyId, user.getRootOrgId());
 			return new ResponseEntity<Object>(properties,HttpStatus.OK);
 		}
 		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
@@ -128,10 +136,11 @@ public class PropertyController {
 	@ApiOperation(value="上移",notes="上移")
 	@PutMapping(value="/property/moveUp")
 	public ResponseEntity<Object> moveUp(HttpServletRequest request, @RequestBody Property property){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
+		User user = getAccessUser(); 
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
 			try {
-				property.setOrgId(accessUser.getRootOrgId());
+				property.setOrgId(user.getRootOrgId());
 				propertyService.moveUp(property);
 				return new ResponseEntity<Object>(HttpStatus.OK);
 			} catch (Exception e) {
@@ -145,10 +154,11 @@ public class PropertyController {
 	@ApiOperation(value="下移",notes="下移")
 	@PutMapping(value="/property/moveDown")
 	public ResponseEntity<Object> moveDown(HttpServletRequest request, @RequestBody Property property){
-		AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
-		if(accessUser != null){
+		User user = getAccessUser(); 
+		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
+		if(user != null){
 			try {
-				property.setOrgId(accessUser.getRootOrgId());
+				property.setOrgId(user.getRootOrgId());
 				propertyService.moveDown(property);
 				return new ResponseEntity<Object>(HttpStatus.OK);
 			} catch (Exception e) {

+ 8 - 4
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/service/core/api/QuesController.java

@@ -18,15 +18,17 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.google.gson.Gson;
+
 import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionSearchCondition;
 import cn.com.qmth.examcloud.core.questions.service.QuesService;
-
 import cn.com.qmth.examcloud.commons.web.security.annotation.Uac;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.security.enums.UacPolicy;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
 /**
@@ -34,7 +36,7 @@ import io.swagger.annotations.ApiOperation;
  */
 @RestController
 @RequestMapping("${api_cqb}/")
-public class QuesController {
+public class QuesController extends ControllerSupport {
 
     @Autowired
     QuesService quesService;
@@ -72,7 +74,8 @@ public class QuesController {
                                         @ModelAttribute QuestionSearchCondition searchCondition,
                                         @PathVariable int curPage, 
                                         @PathVariable int pageSize) {
-        AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         searchCondition.setOrgId(user.getRootOrgId().toString());
         return new ResponseEntity(quesService.findAll(searchCondition, curPage, pageSize), HttpStatus.OK);
     }
@@ -139,7 +142,8 @@ public class QuesController {
     @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
     @GetMapping(value = "/question/count")
     public ResponseEntity<Object> getQuesCount(HttpServletRequest request,@ModelAttribute QuestionSearchCondition searchCondition){
-    	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	User user = getAccessUser();
+    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         searchCondition.setOrgId(user.getRootOrgId().toString());
         long count = quesService.findQuesCount(searchCondition);
         return new ResponseEntity<Object>(count, HttpStatus.OK);

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/AudioTimeConfigService.java

@@ -3,8 +3,8 @@ package cn.com.qmth.examcloud.core.questions.service;
 import java.util.List;
 import java.util.Map;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.entity.AudioTimeConfig;
 
 /**
@@ -19,7 +19,7 @@ public interface AudioTimeConfigService {
 	 * 保存
 	 * @param audioTimeConfig
 	 */
-	public void saveAudioTimeConfig(List<AudioTimeConfig> audioTimeConfigs,AccessUser user);
+	public void saveAudioTimeConfig(List<AudioTimeConfig> audioTimeConfigs,User user);
 	/**
 	 * 查询
 	 * @param audioTimeConfig

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ExportStructureService.java

@@ -4,8 +4,8 @@ import java.util.List;
 
 import org.springframework.data.domain.Page;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 
 /**
@@ -20,7 +20,7 @@ public interface ExportStructureService {
 	 * 保存导出结构
 	 * @param exportStructure
 	 */
-	public void saveExportStructure(ExportStructure exportStructure,AccessUser user);
+	public void saveExportStructure(ExportStructure exportStructure,User user);
 	/**
 	 * 查询导出结构
 	 * @param exportStructure

+ 3 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ExtractConfigFileService.java

@@ -2,8 +2,8 @@ package cn.com.qmth.examcloud.core.questions.service;
 
 import javax.servlet.http.HttpServletResponse;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.ExportPaperInfoModel;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 
@@ -22,7 +22,7 @@ public interface ExtractConfigFileService {
 	 * @param accessUser
 	 * @throws Exception
 	 */
-	public void saveExtractConfigAndBuildPaperFile(ExtractConfig extractConfig,Integer isbuildFile,AccessUser accessUser)  throws Exception;
+	public void saveExtractConfigAndBuildPaperFile(ExtractConfig extractConfig,Integer isbuildFile,User user) throws Exception;
 	
 	/**
 	 * 导出考试下的试卷信息  校验
@@ -30,7 +30,7 @@ public interface ExtractConfigFileService {
 	 * @param response
 	 * @throws Exception
 	 */
-	public void exportExamPaperInfoCheck(ExportPaperInfoModel exportModel,HttpServletResponse response)  throws Exception ;
+	public void exportExamPaperInfoCheck(ExportPaperInfoModel exportModel,HttpServletResponse response) throws Exception ;
 	/**
 	 * 导出考试下的试卷信息
 	 * @param exportModel

+ 4 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ExtractConfigService.java

@@ -4,12 +4,14 @@ import java.util.List;
 import java.util.Map;
 
 
+
 import cn.com.qmth.examcloud.common.dto.question.PaperDto;
+
 import org.springframework.data.domain.Page;
 
 import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
@@ -41,7 +43,7 @@ public interface ExtractConfigService {
 	 * @param orgName		机构名称
 	 * @throws Exception
 	 */
-	public Map<String, String> saveExtractConfig(ExtractConfig extractConfig,AccessUser accessUser) throws Exception;
+	public Map<String, String> saveExtractConfig(ExtractConfig extractConfig,User user) throws Exception;
 	/**
 	 * 按照设定调卷规则生成一套试卷
 	 * 1.根据ExamPaper集合得出每个类型下应该抽取的试卷,并返回 试卷类型--->试卷的map

+ 14 - 13
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ImportPaperService.java

@@ -37,6 +37,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import com.google.gson.Gson;
+
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
@@ -59,8 +60,8 @@ import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 import cn.com.qmth.examcloud.core.questions.base.enums.QuesUnit;
 import cn.com.qmth.examcloud.core.questions.base.exception.PaperException;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
-
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
 
@@ -132,7 +133,7 @@ public class ImportPaperService {
      * @throws Exception
      */
 
-    public Paper importPaper(Paper paper, AccessUser user,File file) throws Exception {
+    public Paper importPaper(Paper paper, User user,File file) throws Exception {
         paperService.checkPaperNameNew(paper.getName(), user.getRootOrgId().toString());
         return processImportPaper(paper,user,file);
     }
@@ -235,7 +236,7 @@ public class ImportPaperService {
      * @throws Exception
      */
 
-    public Paper processImportPaper(Paper paper,AccessUser user,File file) throws Exception {
+    public Paper processImportPaper(Paper paper,User user,File file) throws Exception {
     	//得到前台的课程代码
     	String courseNo = paper.getCourseNo();
         WordprocessingMLPackage wordMLPackage;
@@ -422,13 +423,13 @@ public class ImportPaperService {
      * @param paperName
      * @param user
      */
-    public void initPaper(Paper paper, String paperName, AccessUser user) {
+    public void initPaper(Paper paper, String paperName, User user) {
         paper.setName(paperName);
         paper.setTitle(paperName);
         paper.setPaperType(PaperType.IMPORT);
         paper.setPaperStatus(PaperStatus.DRAFT);
         paper.setOrgId(user.getRootOrgId().toString());
-        paper.setCreator(user.getName());
+        paper.setCreator(user.getDisplayName());
         Course course = courseRepo.findFirstByCodeAndOrgId(paper.getCourseNo(),user.getRootOrgId().toString());
         paper.setCourse(course);
         paper.setCreateTime(CommonUtils.getCurDateTime());
@@ -1409,7 +1410,7 @@ public class ImportPaperService {
      * @param paperName
      * @return
      */
-    public Map<String, Object> saveBlankPaper(String courseNo, String courseName, String paperName, AccessUser user) {
+    public Map<String, Object> saveBlankPaper(String courseNo, String courseName, String paperName, User user) {
         Map<String, Object> returnMap = new HashMap<String, Object>();
         Paper paper = new Paper();
         String msg = paperService.checkPaperName(paperName, user.getRootOrgId().toString());
@@ -1422,7 +1423,7 @@ public class ImportPaperService {
         pd.setId(UUID.randomUUID().toString());
         pd.setNumber(1);
         pd.setPaper(paper);
-        pd.setCreator(user.getName());
+        pd.setCreator(user.getDisplayName());
         pd.setCreateTime(CommonUtils.getCurDateTime());
         paper = paperRepo.save(paper);
         paperDetailRepo.save(pd);
@@ -1661,7 +1662,7 @@ public class ImportPaperService {
      * @param user
      * @return
      */
-    public Map<String, Object> clonePaper(String paperId, String paperName, String courseNo, AccessUser user){
+    public Map<String, Object> clonePaper(String paperId, String paperName, String courseNo, User user){
     	Map<String, Object> map = new HashMap<String, Object>();
     	String msg = paperService.checkPaperName(paperName, user.getRootOrgId().toString());
     	if (msg != null) {
@@ -1686,7 +1687,7 @@ public class ImportPaperService {
     }
      
 	//克隆所有大题和小题
-    private void clonePaperDetails(Paper newPaper, Paper oldPaper,String paperName,AccessUser user,Course course) {
+    private void clonePaperDetails(Paper newPaper, Paper oldPaper,String paperName,User user,Course course) {
     	List<PaperDetail> oldPaperDetails = paperDetailRepo.findByPaperOrderByNumber(oldPaper);
     	if(oldPaperDetails != null && oldPaperDetails.size() >0){
     		for(PaperDetail oldPaperDetail:oldPaperDetails){
@@ -1698,7 +1699,7 @@ public class ImportPaperService {
     			paperDetail.setTitle(oldPaperDetail.getTitle());
     			paperDetail.setScore(oldPaperDetail.getScore());
     			paperDetail.setUnitCount(oldPaperDetail.getUnitCount());
-    			paperDetail.setCreator(user.getName());
+    			paperDetail.setCreator(user.getDisplayName());
     			paperDetail.setCreateTime(CommonUtils.getCurDateTime());
     			paperDetail = paperDetailRepo.save(paperDetail);
     			//查询大题下面所有小题
@@ -1714,7 +1715,7 @@ public class ImportPaperService {
         				paperDetailUnit.setQuestionType(oldPaperDetailUnit.getQuestionType());
         				copyQuestion(paperDetailUnit,oldPaperDetailUnit,course);
         				paperDetailUnit.setOptionOrder(oldPaperDetailUnit.getOptionOrder());
-        				paperDetailUnit.setCreator(user.getName());
+        				paperDetailUnit.setCreator(user.getDisplayName());
         				paperDetailUnit.setCreateTime(CommonUtils.getCurDateTime());
         				paperDetailUnit.setPaperType(oldPaperDetailUnit.getPaperType());
         				paperDetailUnitRepo.save(paperDetailUnit);
@@ -1742,11 +1743,11 @@ public class ImportPaperService {
 	}
 
 	//克隆原试卷所有属性
-    private Paper cloneOldPaper(Paper oldPaper,String paperName,Course course, AccessUser user) {
+    private Paper cloneOldPaper(Paper oldPaper,String paperName,Course course, User user) {
     	Paper newPaper = BeanCopierUtil.copyProperties(oldPaper, Paper.class);
     	newPaper.setName(paperName);
     	newPaper.setCreateTime(CommonUtils.getCurDateTime());
-    	newPaper.setLastModifyName(user.getName());
+    	newPaper.setLastModifyName(user.getDisplayName());
     	newPaper.setOrgId(user.getRootOrgId().toString());
     	newPaper.setCourse(course);
     	newPaper.setCourseNo(course.getCode());

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperDetailService.java

@@ -5,7 +5,7 @@ import java.util.List;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
-
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 
 public interface PaperDetailService {
@@ -31,7 +31,7 @@ public interface PaperDetailService {
      * @param pd
      * @return
      */
-    public PaperDetail savePaperDetail(PaperDetail pd, String paperId, AccessUser user);
+    public PaperDetail savePaperDetail(PaperDetail pd, String paperId, User user);
 
     /**
      * 删除大题

+ 3 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperDetailUnitService.java

@@ -8,7 +8,7 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
-
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 
 /**
@@ -42,7 +42,7 @@ public interface PaperDetailUnitService {
      * @param pduExp
      * @return
      */
-    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnitExp pduExp, AccessUser user);
+    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnitExp pduExp, User user);
 
     /**
      * 删除小题
@@ -50,7 +50,7 @@ public interface PaperDetailUnitService {
      * @param id
      * @return
      */
-    public void deletePaperDetailUnit(String id, AccessUser user);
+    public void deletePaperDetailUnit(String id, User user);
 
     /**
      * 根据大题查小题

+ 10 - 11
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperService.java

@@ -9,8 +9,8 @@ import org.springframework.data.domain.Page;
 import org.springframework.web.multipart.MultipartFile;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.QuestionAllTypeDto;
@@ -71,7 +71,7 @@ public interface PaperService {
      * @param paperExp
      * @return
      */
-    public Map<String, Object> savePaper(PaperExp paperExp, AccessUser user);
+    public Map<String, Object> savePaper(PaperExp paperExp, User user);
 
     /**
      * 查询所有已组试卷
@@ -175,21 +175,21 @@ public interface PaperService {
      *3.重新保存试卷大题数量、小题数量、试卷总分等信息
      * @param paper
      */
-    public void formatPaper(Paper paper, AccessUser user);
+    public void formatPaper(Paper paper, User user);
 	/**
      * 先备份准备删掉的试题,然后再删掉
      *
      * @param questionId
      * @return
      */
-    public List<String> deleteImportQuestionById(String questionId, AccessUser user);
+    public List<String> deleteImportQuestionById(String questionId, User user);
     /**
      * 向试卷中插入一个试题
      * @param paperId
      * @param paperDetailId
      * @return
      */
-    public Paper insertQuestionToPaper(String paperId, String paperDetailId, Question question, AccessUser user);
+    public Paper insertQuestionToPaper(String paperId, String paperDetailId, Question question, User user);
     /**
      * 获取试题所在的试卷名称
      *
@@ -198,10 +198,9 @@ public interface PaperService {
      */
     public List<String> getPaperNamesByQuestionId(String questionId);
     
-    public Page<Question> listQuestionforSelect(String paperId,int curPage,int pageSize,QuesStructType quesType,AccessUser accessUser,String quesBody);
+    public Page<Question> listQuestionforSelect(String paperId,int curPage,int pageSize,QuesStructType quesType,User user,String quesBody);
 
-    public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions,
-            AccessUser user);
+    public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions, User user);
 
     public String checkPaperName(String paperName, String orgId);
 
@@ -240,7 +239,7 @@ public interface PaperService {
      * @param accessUser
      * @throws IOException
      */
-    public void uploadRadio(List<MultipartFile> files,String paperId,AccessUser accessUser) throws IOException;
+    public void uploadRadio(List<MultipartFile> files,String paperId,User user) throws IOException;
     
     /**
      * 音频文件插入到标签
@@ -269,11 +268,11 @@ public interface PaperService {
 	 * @param paperId
 	 * @param paperHtmlUrl
 	 */
-	public String sendPrint(String paperId, String paperHtmlUrl, String examId, AccessUser user);
+	public String sendPrint(String paperId, String paperHtmlUrl, String examId, User user);
 
 	/**
 	 * 根据试卷id查询主观题与客观题的数量
 	 * @param paperId
 	 */
-	public QuestionAllTypeDto findQuestionStructure(String paperId,AccessUser user) throws Exception;
+	public QuestionAllTypeDto findQuestionStructure(String paperId,User user) throws Exception;
 }

+ 3 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperStructService.java

@@ -10,7 +10,6 @@ import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.core.questions.dao.QuesTypeNameRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.CoursePropertyNumberDto;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.QuesNameDto;
-
 import cn.com.qmth.examcloud.core.questions.dao.entity.*;
 
 import org.apache.commons.lang3.StringUtils;
@@ -28,6 +27,7 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PaperDetailUnitStruct
 import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperStructType;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.contains;
 import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.exact;
@@ -137,7 +137,7 @@ public class PaperStructService {
      * @param paperStruct
      * @return
      */
-    public PaperStruct save(PaperStruct paperStruct, AccessUser user) {
+    public PaperStruct save(PaperStruct paperStruct, User user) {
         if (StringUtils.isNotBlank(paperStruct.getId())) {
             PaperStruct oldPaperStruct = paperStructRepo.findOne(paperStruct.getId());
             PaperStruct rps = null;
@@ -249,7 +249,7 @@ public class PaperStructService {
 			paperStruct.setDifficulty(difficulty);
 		}
         paperStruct.setOrgId(user.getRootOrgId().toString());
-        paperStruct.setCreator(user.getName());
+        paperStruct.setCreator(user.getDisplayName());
         paperStruct.setCreateTime(CommonUtils.getCurDateTime());
         paperStruct.setDetailCount(paperDetailStructs.size());
         return paperStructRepo.save(paperStruct);

+ 6 - 6
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PropertyService.java

@@ -2,8 +2,8 @@ package cn.com.qmth.examcloud.core.questions.service;
 
 import java.util.List;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PropertyDto;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Property;
 
@@ -18,7 +18,7 @@ public interface PropertyService {
 	 * 保存属性
 	 * @param propertyDtos
 	 */
-	public void saveProperty(List<PropertyDto> propertyDtos, AccessUser user);
+	public void saveProperty(List<PropertyDto> propertyDtos, User user);
 	
 	/**
 	 * 查询属性
@@ -26,20 +26,20 @@ public interface PropertyService {
 	 * @param user
 	 * @return
 	 */
-	public List<PropertyDto> propertyDtos(Long coursePropertyId, AccessUser user);
+	public List<PropertyDto> propertyDtos(Long coursePropertyId, User user);
 	
 	/**
 	 * 新增属性
 	 * @param property
 	 * @param user
 	 */
-	public void saveProperty(Property property, AccessUser user) throws Exception;
+	public void saveProperty(Property property, User user) throws Exception;
 	
 	/**
 	 * 删除属性
 	 * @param propertyId
 	 */
-	public void deleteProperty(Long propertyId, Long coursePropertyId, AccessUser user);
+	public void deleteProperty(Long propertyId, Long coursePropertyId, User user);
 	
 	/**
 	 * 查询所有属性
@@ -47,7 +47,7 @@ public interface PropertyService {
 	 * @param user
 	 * @return
 	 */
-	public List<Property> findAll(Long coursePropertyId, AccessUser user);
+	public List<Property> findAll(Long coursePropertyId, User user);
 	
 	/**
 	 * 查询某个树下的子节点

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/QuestionAudioService.java

@@ -2,8 +2,8 @@ package cn.com.qmth.examcloud.core.questions.service;
 
 import java.util.List;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionAudio;
 
@@ -25,7 +25,7 @@ public interface QuestionAudioService {
 	 * 保存试题音频文件记录
 	 * @param questionRadio
 	 */
-	public void saveQuestionAudio(QuestionAudio questionAudio,AccessUser accessUser);
+	public void saveQuestionAudio(QuestionAudio questionAudio,User user);
 	 /**
 	  * 根据试题ID获取音频文件
 	  * @return

+ 4 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/AudioTimeConfigServiceImpl.java

@@ -14,8 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Example;
 import org.springframework.stereotype.Service;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.AudioTimeConfigRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
@@ -53,12 +53,13 @@ public class AudioTimeConfigServiceImpl implements AudioTimeConfigService{
 	private ExtractConfigService extractConfigService;
 	
 	@Override
-	public void saveAudioTimeConfig(List<AudioTimeConfig> audioTimeConfigs,AccessUser user) {
+	public void saveAudioTimeConfig(List<AudioTimeConfig> audioTimeConfigs,User user) {
 		if(audioTimeConfigs!=null&&audioTimeConfigs.size()>0){
 			this.deleteByExamIdAndCourseCode(audioTimeConfigs.get(0).getExamId(),audioTimeConfigs.get(0).getCourseCode());
 			for(AudioTimeConfig audioTimeConfig:audioTimeConfigs){
 				audioTimeConfig.setCreateDate(new Date());
-				audioTimeConfig.setCreateUser(user.getName());
+				//audioTimeConfig.setCreateUser(user.getName());
+				audioTimeConfig.setCreateUser(user.getDisplayName());
 			}
 			audioTimeConfigRepo.save(audioTimeConfigs);
 		}

+ 5 - 5
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExportStructureServiceImpl.java

@@ -17,8 +17,8 @@ import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.common.dto.em.enums.ExamType;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.ExamFileRepo;
 import cn.com.qmth.examcloud.core.questions.dao.ExportStructureRepo;
 import cn.com.qmth.examcloud.core.questions.dao.ExtractConfigRepo;
@@ -64,16 +64,16 @@ public class ExportStructureServiceImpl implements ExportStructureService {
 	protected String password;
 	
 	@Override
-	public void saveExportStructure(ExportStructure exportStructure,AccessUser user) {
+	public void saveExportStructure(ExportStructure exportStructure,User user) {
 		if(StringUtils.isBlank(exportStructure.getId())){
-			exportStructure.setCreateUser(user.getName());
+			exportStructure.setCreateUser(user.getDisplayName());
 			exportStructure.setCreateTime(new Date());
 		}else{
-			exportStructure.setUpdateUser(user.getName());
+			exportStructure.setUpdateUser(user.getDisplayName());
 			exportStructure.setUpdateTime(new Date());
 		}
 		exportStructure.setOrgId(user.getRootOrgId()+"");
-		exportStructure.setOrgName(user.getRootOrgName());
+		exportStructure.setOrgName(user.getDisplayName());
 		exportStructureRepo.save(exportStructure);
 	}
 

+ 5 - 5
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigFileServiceImpl.java

@@ -26,9 +26,9 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.common.dto.core.ExamCourseDto;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.base.util.excel.ExcelWriter;
-
 import cn.com.qmth.examcloud.core.questions.dao.ExportServiceManageRepo;
 import cn.com.qmth.examcloud.core.questions.dao.ExtractConfigRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
@@ -129,7 +129,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
 	protected String password;
 	
 	@Override
-	public void saveExtractConfigAndBuildPaperFile(ExtractConfig extractConfig,Integer isbuildFile,AccessUser accessUser) throws Exception {
+	public void saveExtractConfigAndBuildPaperFile(ExtractConfig extractConfig,Integer isbuildFile,User user) throws Exception {
 		//查询试卷导出设置
 		/* 调卷规则保存,不需要查询试卷结构
 		ExportStructure exportStructure = null;
@@ -137,7 +137,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
 			exportStructure = exportStructureService.findStructureByExamId(extractConfig.getExamId()+"");
 		}*/
 		//生成试卷
-		Map<String, String> finishedPaperIdMap = extractConfigService.saveExtractConfig(extractConfig,accessUser);
+		Map<String, String> finishedPaperIdMap = extractConfigService.saveExtractConfig(extractConfig,user);
     	if(isbuildFile==1){
     		//删除原有试卷文件
         	ExamFile examFile = new ExamFile();
@@ -151,7 +151,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
     		while(iterator.hasNext()){
     			Entry<String,String> entry = iterator.next();
     			String paperId = entry.getValue();
-    			uploadPaperFile(extractConfig,paperId,accessUser);
+    			uploadPaperFile(extractConfig,paperId,user);
     		}
     	}
 	}
@@ -164,7 +164,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
 	 * @param accessUser
 	 * @throws Exception
 	 */
-	private void uploadPaperFile(ExtractConfig extractConfig,String paperId,AccessUser accessUser) throws Exception {
+	private void uploadPaperFile(ExtractConfig extractConfig,String paperId,User user) throws Exception {
 		ExportServiceManage esm = exportServiceManageRepo.findByOrgName(accessUser.getRootOrgName());
 		if(esm == null){
 			esm = exportServiceManageRepo.findByOrgName("陕西师范大学");

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigServiceImpl.java

@@ -39,9 +39,9 @@ import cn.com.qmth.examcloud.common.dto.question.QuesOptionDto;
 import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
 import cn.com.qmth.examcloud.common.dto.question.SubQuestionDto;
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.base.util.GsonUtil;
-
 import cn.com.qmth.examcloud.core.questions.dao.CourseRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
 import cn.com.qmth.examcloud.core.questions.dao.AudioTimeConfigRepo;
@@ -164,7 +164,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	}
 
 	@Override
-	public Map<String, String> saveExtractConfig(ExtractConfig extractConfig,AccessUser accessUser) throws Exception {
+	public Map<String, String> saveExtractConfig(ExtractConfig extractConfig,User user) throws Exception {
 		List<ExamPaper> examPapers = extractConfig.getExamPaperList();
 		for(int i=0;i<examPapers.size();i++){
 			ExamPaper examPaper = examPapers.get(i);

+ 3 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailServiceImpl.java

@@ -6,8 +6,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
@@ -72,9 +72,9 @@ public class PaperDetailServiceImpl implements PaperDetailService{
      * @param pd
      * @return
      */
-    public PaperDetail savePaperDetail(PaperDetail pd, String paperId, AccessUser user) {
+    public PaperDetail savePaperDetail(PaperDetail pd, String paperId, User user) {
         Paper paper = paperRepo.findOne(paperId);
-        paper.setLastModifyName(user.getName());
+        paper.setLastModifyName(user.getDisplayName());
         paper = paperRepo.save(paper);
         pd.setPaper(paper);
         PaperDetail paperDetail = paperDetailRepo.save(pd);

+ 3 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailUnitServiceImpl.java

@@ -14,8 +14,8 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
@@ -74,7 +74,7 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
      * @param pduExp
      * @return
      */
-    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnitExp pduExp, AccessUser user) {
+    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnitExp pduExp, User user) {
         PaperDetailUnit oldPdu = paperDetailUnitRepo.findOne(pduExp.getId());
         if (oldPdu.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
             if (pduExp.getQuestion().getId().equals(oldPdu.getQuestion().getId())) {
@@ -140,7 +140,7 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
      * @param id
      * @return
      */
-    public void deletePaperDetailUnit(String id, AccessUser user) {
+    public void deletePaperDetailUnit(String id, User user) {
         Paper paper = paperDetailUnitRepo.findOne(id).getPaper();
         paperDetailUnitRepo.delete(id);
         paperService.formatPaper(paper, user);

+ 18 - 16
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperServiceImpl.java

@@ -42,10 +42,12 @@ import org.springframework.web.multipart.MultipartFile;
 
 import cn.com.qmth.examcloud.common.dto.print.CoursePaperDto;
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 
 import com.google.gson.Gson;
 import com.mysql.fabric.xmlrpc.base.Array;
+
 import cn.com.qmth.examcloud.core.questions.dao.ExamPaperRepo;
 import cn.com.qmth.examcloud.core.questions.dao.ExportServiceManageRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
@@ -271,14 +273,14 @@ public class PaperServiceImpl implements PaperService{
      * @param paperExp
      * @return
      */
-    public Map<String, Object> savePaper(PaperExp paperExp, AccessUser user) {
+    public Map<String, Object> savePaper(PaperExp paperExp, User user) {
         Map<String, Object> msgMap = new HashMap<String, Object>();
         Paper oldPaper = paperRepo.findOne(paperExp.getId());
         if (oldPaper != null) {
             String oldName = oldPaper.getName().trim();
             oldPaper.setTitle(paperExp.getTitle());
             oldPaper.setName(paperExp.getName().trim());
-            oldPaper.setLastModifyName(user.getName());
+            oldPaper.setLastModifyName(user.getDisplayName());
             oldPaper.setExamRemark(paperExp.getExamRemark());
             if (!oldName.equals(paperExp.getName().trim())) {// 假如改变了试卷名称
                                                              // 则要效验试卷名称唯一性
@@ -653,7 +655,7 @@ public class PaperServiceImpl implements PaperService{
      *3.重新保存试卷大题数量、小题数量、试卷总分等信息
      * @param paper
      */
-    public void formatPaper(Paper paper, AccessUser user) {
+    public void formatPaper(Paper paper, User user) {
         double paperTotalScore = reSetPaperDetailUnit(paper);
         paper.setDifficultyDegree(reSetDifficulty(paper,paperTotalScore));
         Map<String,Object> paperInfoMap = reSetPaperDetail(paper);
@@ -791,13 +793,13 @@ public class PaperServiceImpl implements PaperService{
      * @param paperTotalScore
      */
     @SuppressWarnings("unchecked")
-	private void reSetPaper(Paper paper, AccessUser user,Map<String, Object> paperInfoMap,double paperTotalScore) {
+	private void reSetPaper(Paper paper, User user,Map<String, Object> paperInfoMap,double paperTotalScore) {
     	List<PaperDetail> paperDetails = (List<PaperDetail>) paperInfoMap.get("paperDetails");
         paper.setPaperDetailCount(paperDetails.size());//设置大题数量
         paper.setUnitCount(Integer.parseInt(paperInfoMap.get("allQuesCount")+""));//设置小题数量
         paper.setTotalScore(paperTotalScore);//设置试卷总分
         if (user != null) {
-            paper.setLastModifyName(user.getName());
+            paper.setLastModifyName(user.getDisplayName());
         }
         paperRepo.save(paper);
         redisTemplate.delete(paper.getId());
@@ -809,7 +811,7 @@ public class PaperServiceImpl implements PaperService{
      * @param questionId
      * @return
      */
-    public List<String> deleteImportQuestionById(String questionId, AccessUser user) {
+    public List<String> deleteImportQuestionById(String questionId, User user) {
         Question ques = quesRepo.findOne(questionId);
         List<PaperDetailUnit> pdus = CommonUtils.toList(paperDetailUnitRepo.findByQuestion(ques));
         List<String> paperNames = new ArrayList<String>();
@@ -845,7 +847,7 @@ public class PaperServiceImpl implements PaperService{
      * @param paperDetailId
      * @return
      */
-    public Paper insertQuestionToPaper(String paperId, String paperDetailId, Question question, AccessUser user) {
+    public Paper insertQuestionToPaper(String paperId, String paperDetailId, Question question, User user) {
     	Paper paper = paperRepo.findOne(paperId);
         question.setOrgId(user.getRootOrgId().toString());
         question.setCourse(paper.getCourse());
@@ -877,18 +879,18 @@ public class PaperServiceImpl implements PaperService{
 
     }
 
-    public Page<Question> listQuestionforSelect(String paperId,int curPage,int pageSize,QuesStructType quesType,AccessUser accessUser,String quesBody) {
+    public Page<Question> listQuestionforSelect(String paperId,int curPage,int pageSize,QuesStructType quesType,User user,String quesBody) {
         Set<String> selectedIds = new HashSet<>();
         Paper paper = paperRepo.findOne(paperId);
         List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
         for (PaperDetailUnit pdu : pdus) {
             selectedIds.add(pdu.getQuestion().getId());
         }
-        return quesService.findByIdExclude(selectedIds, paper.getCourseNo(), quesType, curPage, pageSize,accessUser.getRootOrgId(),quesBody);
+        return quesService.findByIdExclude(selectedIds, paper.getCourseNo(), quesType, curPage, pageSize,user.getRootOrgId(),quesBody);
     }
 
     public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions,
-            AccessUser user) {
+    		User user) {
         Paper paper = paperRepo.findOne(paperId);
         PaperDetail paperDetail = paperDetailRepo.findOne(paperDetailId);
         PaperDetailUnit paperDetailUnit = paperDetailUnitRepo.findTopByPaperDetailOrderByNumberDesc(paperDetail);
@@ -1139,7 +1141,7 @@ public class PaperServiceImpl implements PaperService{
      * @param accessUser
      * @throws IOException
      */
-    public void uploadRadio(List<MultipartFile> files,String paperId,AccessUser accessUser) throws IOException{
+    public void uploadRadio(List<MultipartFile> files,String paperId,User user) throws IOException{
     	//根据试卷id,查询该试卷
     	Paper paper = paperRepo.findOne(paperId);
     	for(MultipartFile file: files){
@@ -1163,7 +1165,7 @@ public class PaperServiceImpl implements PaperService{
         		}
         	}*/
     		question = paperDetailUnitRepo.findByPaperAndNumber(paper, Integer.valueOf(numbers[0])).getQuestion();
-        	uploadAudioFile(paperId,question.getId(),file,accessUser);
+        	uploadAudioFile(paperId,question.getId(),file,user);
         	appendAudioTag(file.getOriginalFilename(),question.getId());
     	}
     	//删除服务器文件夹
@@ -1178,7 +1180,7 @@ public class PaperServiceImpl implements PaperService{
      * @param questionId
      * @param file
      */
-    private void uploadAudioFile(String paperId,String questionId,MultipartFile file,AccessUser accessUser){
+    private void uploadAudioFile(String paperId,String questionId,MultipartFile file,User user){
     	try {
 	    	String mp3DirectoryPath = TEMP_FILE_EXP + File.separator + paperId;
 	    	//新建文件夹
@@ -1206,7 +1208,7 @@ public class PaperServiceImpl implements PaperService{
 			upYun.writeFile(upyunRadioPath+mp3FileNameString, mp3File,true);
 			mp3File.delete();
 			//保存记录
-			questionAudioService.saveQuestionAudio(new QuestionAudio(questionId,file.getOriginalFilename(),upyunRadioPath+mp3FileNameString),accessUser);
+			questionAudioService.saveQuestionAudio(new QuestionAudio(questionId,file.getOriginalFilename(),upyunRadioPath+mp3FileNameString),user);
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
@@ -1313,7 +1315,7 @@ public class PaperServiceImpl implements PaperService{
 	}
 
 	@Override
-	public String sendPrint(String paperId, String paperHtmlUrl, String examId, AccessUser user) {
+	public String sendPrint(String paperId, String paperHtmlUrl, String examId, User user) {
 		//查询原paper对象
 		Paper paper = paperRepo.findOne(paperId);
 		CoursePaperDto coursePaperDto = new CoursePaperDto();
@@ -1330,7 +1332,7 @@ public class PaperServiceImpl implements PaperService{
 	}
 
 	@Override
-	public QuestionAllTypeDto findQuestionStructure(String paperId,AccessUser user) throws Exception {
+	public QuestionAllTypeDto findQuestionStructure(String paperId,User user) throws Exception {
 		//根据paperId查询新的对象
 		ExportServiceManage esm = exportServiceManageRepo.findByOrgName(user.getRootOrgName());
 		if(esm == null){

+ 6 - 6
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PropertyServiceImpl.java

@@ -6,9 +6,9 @@ import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
 import cn.com.qmth.examcloud.commons.base.util.excel.ExcelError;
-
 import cn.com.qmth.examcloud.core.questions.service.bean.PropertyAssembler;
 import cn.com.qmth.examcloud.core.questions.dao.PropertyRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PropertyDto;
@@ -26,7 +26,7 @@ public class PropertyServiceImpl implements PropertyService{
 	private PropertyRepo propertyRepo;
 
 	@Override
-	public void saveProperty(List<PropertyDto> propertyDtos, AccessUser user) {
+	public void saveProperty(List<PropertyDto> propertyDtos, User user) {
 		PropertyAssembler propertyAssembler = new PropertyAssembler();
 		for(int i=0;i<propertyDtos.size();i++){
 			//取到父类节点对象
@@ -46,7 +46,7 @@ public class PropertyServiceImpl implements PropertyService{
 	}
 
 	@Override
-	public List<PropertyDto> propertyDtos(Long coursePropertyId, AccessUser user) {
+	public List<PropertyDto> propertyDtos(Long coursePropertyId, User user) {
 		List<PropertyDto> propertyDtos = new ArrayList<PropertyDto>();
 		//查询所有父节点对象
 		List<Property> propertieParents = propertyRepo.findByOrgIdAndCoursePropertyIdAndParentIdOrderByNumber(user.getRootOrgId(), coursePropertyId, 0l);
@@ -70,7 +70,7 @@ public class PropertyServiceImpl implements PropertyService{
 	}
 
 	@Override
-	public void saveProperty(Property property, AccessUser user) throws Exception {
+	public void saveProperty(Property property, User user) throws Exception {
 		//新增
 		if(property.getId() == null){
 			//检查是否重名
@@ -100,7 +100,7 @@ public class PropertyServiceImpl implements PropertyService{
 	}
 
 	@Override
-	public void deleteProperty(Long propertyId, Long coursePropertyId, AccessUser user) {
+	public void deleteProperty(Long propertyId, Long coursePropertyId, User user) {
 		//查询子节点对象
 		List<Property> properties = propertyRepo.findByOrgIdAndCoursePropertyIdAndParentIdOrderByNumber(user.getRootOrgId(), coursePropertyId, propertyId);
 		if(properties != null && properties.size()>0){
@@ -112,7 +112,7 @@ public class PropertyServiceImpl implements PropertyService{
 	}
 
 	@Override
-	public List<Property> findAll(Long coursePropertyId, AccessUser user) {
+	public List<Property> findAll(Long coursePropertyId, User user) {
 		List<PropertyDto> propertyDtos = propertyDtos(coursePropertyId, user);
 		List<Property> properties = new ArrayList<Property>();
 		if(propertyDtos != null && propertyDtos.size() >0){

+ 3 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/QuestionAudioServiceImpl.java

@@ -17,8 +17,8 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
+import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.commons.web.security.entity.AccessUser;
-
 import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
 import cn.com.qmth.examcloud.core.questions.dao.QuestionAudioRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuesOption;
@@ -51,7 +51,7 @@ public class QuestionAudioServiceImpl implements QuestionAudioService{
 	protected String password;
 	
 	@Override
-	public void saveQuestionAudio(QuestionAudio questionAudio,AccessUser accessUser) {
+	public void saveQuestionAudio(QuestionAudio questionAudio,User user) {
 		QuestionAudio questionAudio2 = findByQuestionIdAndFileName(questionAudio.getQuestionId(),questionAudio.getFileName());
 		if(questionAudio2 != null){
 			questionAudio.setId(questionAudio2.getId());
@@ -60,7 +60,7 @@ public class QuestionAudioServiceImpl implements QuestionAudioService{
     		questionAudioRepo.delete(questionAudio2);
     	}
 		questionAudio.setCreateTime(new Date());
-		questionAudio.setCreateUser(accessUser.getName());
+		questionAudio.setCreateUser(user.getDisplayName());
 		questionAudioRepo.save(questionAudio);
 	}
 

+ 157 - 0
examcloud-core-questions-starter/src/main/java/cn/com/qmth/examcloud/core/questions/starter/config/DefaultWebMvcConfigurerAdapter.java

@@ -0,0 +1,157 @@
+package cn.com.qmth.examcloud.core.questions.starter.config;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+import cn.com.qmth.examcloud.commons.web.interceptor.FirstInterceptor;
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.commons.web.security.RequestPermissionInterceptor;
+import cn.com.qmth.examcloud.commons.web.security.bean.Role;
+
+/**
+ * 默认WebMvcConfigurer
+ *
+ * @author WANGWEI
+ * @date 2018年5月22日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+@Configuration
+public class DefaultWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
+
+	@Autowired
+	RedisClient redisClient;
+	
+	private static final Map<String,String[]> rolePathMap = new HashMap<String, String[]>();
+	
+	static{
+		rolePathMap.put("[api/exam_audit]:[]:[POST]", new String[]{"OE_ADMIN,LC_USER"});
+		//cn.com.qmth.examcloud.service.core.api.CourseController
+		rolePathMap.put("[${api_cqb}/]:[/course/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/course]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/course]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/course/{coruse_id}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/course]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/course/{courseNo}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/course/allCourses]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		
+		//cn.com.qmth.examcloud.service.core.api.GenPaperController
+		rolePathMap.put("[${api_cqb}/]:[/genPaper/simple]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/genPaper/normal]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/genPaper/blue]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		
+		//cn.com.qmth.examcloud.service.core.api.GenPaperController.ImportPaperController
+		rolePathMap.put("[${api_cqb}/]:[/importPaper]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/importPaper/saveBlankPaper/{courseNo}/{courseName}/{paperName}]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/clonePaper/{paperId}/{paperName}/{courseNo}]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		
+		//cn.com.qmth.examcloud.service.core.api.PaperController
+		rolePathMap.put("[${api_cqb}/]:[/paper/{paperId}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/importPaper/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/importPaperNotSuccess/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/getImportPaper]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/getGenPaper]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/genPaper/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/genPaper/{ids}/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/{paperIds}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/pass]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/pass]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/noPass]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/list/{examId}/{courseCode}/{groupCode}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/join/{examId}/{courseCode}/{groupCode}/{paperId}]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/release/{examId}/{courseCode}/{groupCode}/{paperId}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/groupCode/{examId}/{courseCode}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/groupCode/{examId}/{courseCode}/{groupCode}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/deleteQuestion/{questionId}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/addQuestion/{paperId}/{paperDetailId}]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/{paperId}/reduplicate-questions]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/listNames/{questionId}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/listQuestion/{paperId}/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paper/selectQuestions/{paperId}/{paperDetailId}]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/importPaper/{ids}/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/importPaper/course]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/useBasePaper/{paperIds}]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		
+		//cn.com.qmth.examcloud.service.core.api.PaperDetailController
+		rolePathMap.put("[${api_cqb}/]:[/paperDetail/units/{detail_id}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperDetail/{detail_id}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/updatePaperDetail/{paperId}]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperDetail]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperDetail/{detailId}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperDetail/paper/{paperId}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		
+		//cn.com.qmth.examcloud.service.core.api.PaperDetailUnitController
+		rolePathMap.put("[${api_cqb}/]:[/paperDetailUnit/question/{unit_id}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperDetailUnit/{unit_id}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperDetailUnit]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperDetailUnit]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperDetailUnit/{unitId}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		
+		//cn.com.qmth.examcloud.service.core.api.PaperStructController
+		rolePathMap.put("[${api_cqb}/]:[/paperStruct/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperStruct]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperStruct/{id}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperStruct]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperStruct]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperStruct/{ids}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/paperStruct/quesNames]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		
+		//cn.com.qmth.examcloud.service.core.api.QuesController
+		rolePathMap.put("[${api_cqb}/]:[/question/{id}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/question/{curPage}/{pageSize}]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/question]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/question]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/question/{id}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/question/{id}/{number}]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/question/count]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		
+		//cn.com.qmth.examcloud.service.core.api.SettingController
+		rolePathMap.put("[${api_cqb}/]:[/setting]:[GET]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/setting]:[PUT]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/setting]:[POST]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+		rolePathMap.put("[${api_cqb}/]:[/setting/{id}]:[DELETE]", new String[]{"QUESTION_ADMIN","SUPER_ADMIN"});
+	}
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		registry.addInterceptor(new FirstInterceptor()).addPathPatterns("/**");
+		registry.addInterceptor(getRequestPermissionInterceptor()).addPathPatterns("/**");
+		super.addInterceptors(registry);
+	}
+
+	@Bean
+	public RequestPermissionInterceptor getRequestPermissionInterceptor() {
+		String[] exclusions = new String[]{};//".*"
+		return new RequestPermissionInterceptor(redisClient, exclusions) {
+
+			@Override
+			public boolean hasPermission(String mappingPath, List<Role> roleList) {
+				String[] roles = rolePathMap.get(mappingPath);
+				if(roles == null){
+					return true;
+				}
+				if(roleList==null){
+					return false;
+				}
+				List<String> roleCodes = new ArrayList<String>();
+				for(Role role:roleList){
+					roleCodes.add(role.getRoleCode());
+				}
+				for(String role:roles){
+					if(roleCodes.contains(role)){
+						return true;
+					}
+				}
+				return false;
+			}
+		};
+	}
+}