Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

lideyin 5 лет назад
Родитель
Сommit
124b94eb6d

+ 14 - 3
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamController.java

@@ -113,7 +113,6 @@ import io.swagger.annotations.ApiOperation;
  * @date 2018年8月17日
  * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
  */
-@Transactional
 @RestController
 @RequestMapping("${$rmp.ctr.examwork}/exam")
 public class ExamController extends ControllerSupport {
@@ -510,6 +509,7 @@ public class ExamController extends ControllerSupport {
 	 */
 	@ApiOperation(value = "新增考试批次", notes = "新增")
 	@PostMapping()
+	@Transactional
 	public ExamEntity addExam(@RequestBody ExamDomain domain) {
 		return saveExam(domain, CURD.CREATION);
 	}
@@ -523,6 +523,7 @@ public class ExamController extends ControllerSupport {
 	 */
 	@ApiOperation(value = "更新考试批次", notes = "更新")
 	@PutMapping()
+	@Transactional
 	public ExamEntity updateExam(@RequestBody ExamDomain domain) {
 		return saveExam(domain, CURD.UPDATE);
 	}
@@ -567,6 +568,7 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "复制考试批次", notes = "")
 	@PostMapping("copyExam")
+	@Transactional
 	public void copyExam(@RequestBody CopyExamDomain domain) {
 
 		Long srcExamId = domain.getSrcExamId();
@@ -811,7 +813,8 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "启用考试", notes = "启用考试")
 	@PutMapping("enable/{ids}")
-	public void enableUser(@PathVariable String ids) {
+	@Transactional
+	public void enableExam(@PathVariable String ids) {
 		List<Long> examIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
 		for (Long examId : examIds) {
@@ -852,7 +855,8 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "禁用考试", notes = "禁用考试")
 	@PutMapping("disable/{ids}")
-	public void disableUser(@PathVariable String ids) {
+	@Transactional
+	public void disableExam(@PathVariable String ids) {
 		List<Long> examIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
 		for (Long examId : examIds) {
@@ -986,6 +990,7 @@ public class ExamController extends ControllerSupport {
 	 */
 	@ApiOperation(value = "新增考试相关的学习中心设置", notes = "")
 	@PostMapping("examOrgSettings")
+	@Transactional
 	public ExamSpecialSettingsEntity addExamOrgSettings(@RequestBody ExamOrgSettingsDomain domain) {
 		return saveExamOrgSettings(domain);
 	}
@@ -999,6 +1004,7 @@ public class ExamController extends ControllerSupport {
 	 */
 	@ApiOperation(value = "更新考试相关的学习中心设置", notes = "")
 	@PutMapping("examOrgSettings")
+	@Transactional
 	public ExamSpecialSettingsEntity updateExamOrgSettings(
 			@RequestBody ExamOrgSettingsDomain domain) {
 		return saveExamOrgSettings(domain);
@@ -1127,6 +1133,7 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "导入学习中心设置", notes = "导入")
 	@PostMapping("importExamOrgSettings/{examId}")
+	@Transactional
 	public Map<String, Object> importExamOrgSettings(@PathVariable Long examId,
 			@RequestParam CommonsMultipartFile file) {
 
@@ -1149,6 +1156,7 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "学习中心禁考", notes = "")
 	@PutMapping("setOrgExamLimited/{ids}")
+	@Transactional
 	public List<String> setOrgExamLimited(@PathVariable String ids) {
 		List<Long> orgSettingsIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
@@ -1165,6 +1173,7 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "学习中心开考", notes = "")
 	@PutMapping("setOrgExamNotLimited/{ids}")
+	@Transactional
 	public List<String> setOrgExamNotLimited(@PathVariable String ids) {
 		List<Long> orgSettingsIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
@@ -1181,6 +1190,7 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "删除学习中心特殊设置", notes = "")
 	@PutMapping("deleteExamOrgSettings/{ids}")
+	@Transactional
 	public List<String> deleteExamOrgSettings(@PathVariable String ids) {
 		List<Long> orgSettingsIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
@@ -1199,6 +1209,7 @@ public class ExamController extends ControllerSupport {
 
 	@ApiOperation(value = "删除所有学习中心特殊设置", notes = "")
 	@PutMapping("deleteAllExamOrgSettings/{examId}")
+	@Transactional
 	public void deleteAllExamOrgSettings(@PathVariable Long examId) {
 
 		ExamEntity exam = GlobalHelper.getPresentEntity(examRepo, examId, ExamEntity.class);

+ 6 - 5
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamStudentController.java

@@ -65,7 +65,6 @@ import io.swagger.annotations.ApiOperation;
 /**
  * 考生服务API Created by songyue on 17/1/13.
  */
-@Transactional
 @RestController
 @RequestMapping("${$rmp.ctr.examwork}/exam_student")
 public class ExamStudentController extends ControllerSupport {
@@ -330,9 +329,9 @@ public class ExamStudentController extends ControllerSupport {
 	 * @param examStudent
 	 * @return
 	 */
-	@Transactional
 	@ApiOperation(value = "新增考试学生", notes = "新增")
 	@PostMapping()
+	@Transactional
 	public ExamStudentDomain addExamStudent(@RequestBody ExamStudentDomain examStudent) {
 		trim(examStudent);
 		Long rootOrgId = getRootOrgId();
@@ -348,9 +347,9 @@ public class ExamStudentController extends ControllerSupport {
 	 * @param examStudent
 	 * @return
 	 */
-	@Transactional
 	@ApiOperation(value = "更新考试学生", notes = "更新")
 	@PutMapping()
+	@Transactional
 	public ExamStudentDomain updateExamStudent(@RequestBody ExamStudentDomain examStudent) {
 		trim(examStudent);
 		Long rootOrgId = getRootOrgId();
@@ -423,9 +422,9 @@ public class ExamStudentController extends ControllerSupport {
 	 * @param ids
 	 * @return
 	 */
-	@Transactional
 	@ApiOperation(value = "按ID删除考试学生", notes = "删除")
 	@DeleteMapping("/{ids}")
+	@Transactional
 	public List<Long> deleteExamStudent(@PathVariable String ids) {
 		List<Long> idList = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
@@ -441,8 +440,8 @@ public class ExamStudentController extends ControllerSupport {
 	 * @return
 	 */
 	@ApiOperation(value = "按考试删除考试学生", notes = "按考试删除")
-	@Transactional
 	@DeleteMapping("exam/{examId}")
+	@Transactional
 	public Long deleteExamStudents(@PathVariable Long examId) {
 		examStudentService.deleteExamStudentsByExamId(examId);
 		return examId;
@@ -457,6 +456,7 @@ public class ExamStudentController extends ControllerSupport {
 
 	@ApiOperation(value = "启用考生")
 	@PutMapping("enable/{ids}")
+	@Transactional
 	public List<String> enableExamStudent(@PathVariable String ids) {
 		List<Long> examStuIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
@@ -485,6 +485,7 @@ public class ExamStudentController extends ControllerSupport {
 	 */
 	@ApiOperation(value = "禁用考生")
 	@PutMapping("disable/{ids}")
+	@Transactional
 	public List<String> disableExamStudent(@PathVariable String ids) {
 		List<Long> examStuIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());

+ 5 - 6
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/provider/ExamCloudServiceProvider.java

@@ -94,7 +94,6 @@ import io.swagger.annotations.ApiOperation;
  * @date 2018年11月23日
  * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
  */
-@Transactional
 @RestController
 @RequestMapping("${$rmp.cloud.examwork}" + "exam")
 public class ExamCloudServiceProvider extends ControllerSupport implements ExamCloudService {
@@ -127,6 +126,7 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
 
 	@ApiOperation(value = "保存考试批次", notes = "保存")
 	@PostMapping("saveExam")
+	@Transactional
 	@Override
 	public SaveExamResp saveExam(@RequestBody SaveExamReq req) {
 		ExamInfo examInfo = new ExamInfo();
@@ -245,6 +245,7 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
 
 	@ApiOperation(value = "设置考试属性")
 	@PostMapping("setExamProperty")
+	@Transactional
 	@Override
 	public SetExamPropertyResp setExamProperty(@RequestBody SetExamPropertyReq req) {
 		Long examId = req.getExamId();
@@ -337,11 +338,7 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
 				predicates.add(cb.equal(root.get("examType"), type));
 			}
 
-			Boolean enable = req.getExamEnable();
-			if (null == enable) {
-				enable = true;
-			}
-			predicates.add(cb.equal(root.get("examEnable"), enable));
+			predicates.add(cb.equal(root.get("examEnable"), true));
 			predicates.add(cb.isNull(root.get("courseId")));
 
 			if (null != orgId) {
@@ -404,6 +401,7 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
 
 	@ApiOperation(value = "锁定考试")
 	@PostMapping("lockExamStudents")
+	@Transactional
 	@Override
 	public LockExamStudentsResp lockExamStudents(@RequestBody LockExamStudentsReq req) {
 
@@ -431,6 +429,7 @@ public class ExamCloudServiceProvider extends ControllerSupport implements ExamC
 
 	@ApiOperation(value = "解锁考试")
 	@PostMapping("unlockExamStudents")
+	@Transactional
 	@Override
 	public UnlockExamStudentsResp unlockExamStudents(@RequestBody UnlockExamStudentsReq req) {
 

+ 4 - 1
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/provider/ExamStudentCloudServiceProvider.java

@@ -69,7 +69,6 @@ import io.swagger.annotations.ApiOperation;
  * @date 2018年7月18日
  * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
  */
-@Transactional
 @RestController
 @RequestMapping("${$rmp.cloud.examwork}" + "examStudent")
 public class ExamStudentCloudServiceProvider extends ControllerSupport
@@ -104,6 +103,7 @@ public class ExamStudentCloudServiceProvider extends ControllerSupport
 
 	@ApiOperation(value = "保存考生")
 	@PostMapping("saveExamStudent")
+	@Transactional
 	@Override
 	public SaveExamStudentResp saveExamStudent(@RequestBody SaveExamStudentReq req) {
 		trim(req);
@@ -162,6 +162,7 @@ public class ExamStudentCloudServiceProvider extends ControllerSupport
 
 	@ApiOperation(value = "复制考生")
 	@PostMapping("copyExamStudents")
+	@Transactional
 	@Override
 	public CopyExamStudentsResp copyExamStudents(@RequestBody CopyExamStudentsReq req) {
 
@@ -417,6 +418,7 @@ public class ExamStudentCloudServiceProvider extends ControllerSupport
 
 	@ApiOperation(value = "更新考生状态")
 	@PostMapping("updateExamStudentStatus")
+	@Transactional
 	@Override
 	public UpdateExamStudentStatusResp updateExamStudentStatus(
 			@RequestBody UpdateExamStudentStatusReq req) {
@@ -486,6 +488,7 @@ public class ExamStudentCloudServiceProvider extends ControllerSupport
 
 	@ApiOperation(value = "重置考生")
 	@PostMapping("resetExamStudent")
+	@Transactional
 	@Override
 	public ResetExamStudentResp resetExamStudent(@RequestBody ResetExamStudentReq req) {
 

+ 67 - 62
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/provider/NoticeCloudServiceProvider.java

@@ -28,78 +28,83 @@ import java.util.List;
  * @date 2018年11月23日
  * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
  */
-@Transactional
 @RestController
 @RequestMapping("${$rmp.cloud.examwork}" + "notice")
 public class NoticeCloudServiceProvider extends ControllerSupport implements NoticeCloudService {
 
-    private static final long serialVersionUID = 4359829563744893206L;
+	private static final long serialVersionUID = 4359829563744893206L;
 
-    @Autowired
-    private NoticeService noticeService;
+	@Autowired
+	private NoticeService noticeService;
 
-    @ApiOperation(value = "获取待处理的通知进度数据")
-    @PostMapping("getToBeDisposedNoticeRulePublishProgressList")
-    @Override
-    public GetNoticeRulePublishProgressListResp getToBeDisposedNoticeRulePublishProgressList() {
-        GetNoticeRulePublishProgressListResp resp = new GetNoticeRulePublishProgressListResp();
-        List<NoticeRulePublishProgressEntity> progressEntityList = noticeService.getToBeDisposedNoticeRulePublishProgressList();
-        if (progressEntityList == null || progressEntityList.isEmpty()) {
-            return resp;
-        }
-        List<NoticeRulePublishProgressBean> beanList = new ArrayList<>();
-        for (NoticeRulePublishProgressEntity entity : progressEntityList) {
-            NoticeRulePublishProgressBean bean = new NoticeRulePublishProgressBean();
-            bean.setId(entity.getId());
-            bean.setMaxCommonUserId(entity.getMaxCommonUserId());
-            bean.setMaxStudentId(entity.getMaxStudentId());
-            bean.setNoticeId(entity.getNoticeId());
-            bean.setNoticeReceiverRuleType(entity.getNoticeReceiverRuleType());
-            bean.setRootOrgId(entity.getRootOrgId());
-            beanList.add(bean);
-        }
-        resp.setList(beanList);
-        return resp;
-    }
+	@ApiOperation(value = "获取待处理的通知进度数据")
+	@PostMapping("getToBeDisposedNoticeRulePublishProgressList")
+	@Override
+	public GetNoticeRulePublishProgressListResp getToBeDisposedNoticeRulePublishProgressList() {
+		GetNoticeRulePublishProgressListResp resp = new GetNoticeRulePublishProgressListResp();
+		List<NoticeRulePublishProgressEntity> progressEntityList = noticeService
+				.getToBeDisposedNoticeRulePublishProgressList();
+		if (progressEntityList == null || progressEntityList.isEmpty()) {
+			return resp;
+		}
+		List<NoticeRulePublishProgressBean> beanList = new ArrayList<>();
+		for (NoticeRulePublishProgressEntity entity : progressEntityList) {
+			NoticeRulePublishProgressBean bean = new NoticeRulePublishProgressBean();
+			bean.setId(entity.getId());
+			bean.setMaxCommonUserId(entity.getMaxCommonUserId());
+			bean.setMaxStudentId(entity.getMaxStudentId());
+			bean.setNoticeId(entity.getNoticeId());
+			bean.setNoticeReceiverRuleType(entity.getNoticeReceiverRuleType());
+			bean.setRootOrgId(entity.getRootOrgId());
+			beanList.add(bean);
+		}
+		resp.setList(beanList);
+		return resp;
+	}
 
-    @ApiOperation(value = "处理待发布和发布中的数据")
-    @PostMapping("disposePublishingUserNotice")
-    @Override
-    public DisposePublishingUserNoticeResp disposePublishingUserNotice(@RequestBody DisposePublishingUserNoticeReq
-                                                                               req) {
-        //处理发布中的通知数据,并返回下一个要处理的用户id
-        Long nextUserId = noticeService.disposePublishingUserNotice(req.getStartUserId(),
-                copytNoticeRulePublishProgressEntityFrom(req.getNoticeRulePublishProgress()));
+	@ApiOperation(value = "处理待发布和发布中的数据")
+	@PostMapping("disposePublishingUserNotice")
+	@Transactional
+	@Override
+	public DisposePublishingUserNoticeResp disposePublishingUserNotice(
+			@RequestBody DisposePublishingUserNoticeReq req) {
+		// 处理发布中的通知数据,并返回下一个要处理的用户id
+		Long nextUserId = noticeService.disposePublishingUserNotice(req.getStartUserId(),
+				copytNoticeRulePublishProgressEntityFrom(req.getNoticeRulePublishProgress()));
 
-        DisposePublishingUserNoticeResp resp = new DisposePublishingUserNoticeResp();
-        resp.setNextUserId(nextUserId);
-        return resp;
-    }
+		DisposePublishingUserNoticeResp resp = new DisposePublishingUserNoticeResp();
+		resp.setNextUserId(nextUserId);
+		return resp;
+	}
 
-    //实体转换
-    private NoticeRulePublishProgressEntity copytNoticeRulePublishProgressEntityFrom(NoticeRulePublishProgressBean processBean) {
-        NoticeRulePublishProgressEntity processEntity = new NoticeRulePublishProgressEntity();
-        processEntity.setId(processBean.getId());
-        processEntity.setMaxCommonUserId(processBean.getMaxCommonUserId());
-        processEntity.setMaxStudentId(processBean.getMaxStudentId());
-        processEntity.setNoticeId(processBean.getNoticeId());
-        processEntity.setNoticeReceiverRuleType(processBean.getNoticeReceiverRuleType());
-        processEntity.setRootOrgId(processBean.getRootOrgId());
-        return processEntity;
-    }
+	// 实体转换
+	private NoticeRulePublishProgressEntity copytNoticeRulePublishProgressEntityFrom(
+			NoticeRulePublishProgressBean processBean) {
+		NoticeRulePublishProgressEntity processEntity = new NoticeRulePublishProgressEntity();
+		processEntity.setId(processBean.getId());
+		processEntity.setMaxCommonUserId(processBean.getMaxCommonUserId());
+		processEntity.setMaxStudentId(processBean.getMaxStudentId());
+		processEntity.setNoticeId(processBean.getNoticeId());
+		processEntity.setNoticeReceiverRuleType(processBean.getNoticeReceiverRuleType());
+		processEntity.setRootOrgId(processBean.getRootOrgId());
+		return processEntity;
+	}
 
-    @ApiOperation(value = "清理过期的通知数据")
-    @PostMapping("disposeOverdueNotice")
-    @Override
-    public void disposeOverdueNotice() {
-        noticeService.disposeOverdueNotice();
-    }
+	@ApiOperation(value = "清理过期的通知数据")
+	@PostMapping("disposeOverdueNotice")
+	@Transactional
+	@Override
+	public void disposeOverdueNotice() {
+		noticeService.disposeOverdueNotice();
+	}
 
-    @ApiOperation(value = "更新通知状态")
-    @PostMapping("updateNoticeStatus")
-    @Override
-    public void updateNoticeStatus(@RequestBody UpdateNoticeStatusReq updateNoticeStatusReq) {
-        noticeService.updateNoticeStatus(updateNoticeStatusReq.getNoticeId(), updateNoticeStatusReq.getNoticeStatus());
-    }
+	@ApiOperation(value = "更新通知状态")
+	@PostMapping("updateNoticeStatus")
+	@Transactional
+	@Override
+	public void updateNoticeStatus(@RequestBody UpdateNoticeStatusReq updateNoticeStatusReq) {
+		noticeService.updateNoticeStatus(updateNoticeStatusReq.getNoticeId(),
+				updateNoticeStatusReq.getNoticeStatus());
+	}
 
 }

+ 10 - 8
examcloud-core-examwork-starter/src/main/resources/log4j2.xml

@@ -16,12 +16,13 @@
 			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{CALLER} | %m | %l%n" />
 			<Policies>
 				<TimeBasedTriggeringPolicy interval="1" />
-				<SizeBasedTriggeringPolicy size="100MB" />
+				<SizeBasedTriggeringPolicy size="100 MB" />
 			</Policies>
-			<DefaultRolloverStrategy max="10">
+			<DefaultRolloverStrategy max="10000">
 				<Delete basePath="./logs/debug" maxDepth="1">
-					<IfFileName glob="debug-*.log" />
-					<IfLastModified age="24H" />
+					<IfFileName glob="debug-*.log">
+						<IfAccumulatedFileSize exceeds="2 GB" />
+					</IfFileName>
 				</Delete>
 			</DefaultRolloverStrategy>
 		</RollingFile>
@@ -31,12 +32,13 @@
 			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{CALLER} | %m%n" />
 			<Policies>
 				<TimeBasedTriggeringPolicy interval="1" />
-				<SizeBasedTriggeringPolicy size="100MB" />
+				<SizeBasedTriggeringPolicy size="100 MB" />
 			</Policies>
-			<DefaultRolloverStrategy max="10">
+			<DefaultRolloverStrategy max="10000">
 				<Delete basePath="./logs/interface" maxDepth="1">
-					<IfFileName glob="interface-*.log" />
-					<IfLastModified age="24H" />
+					<IfFileName glob="interface-*.log">
+						<IfAccumulatedFileSize exceeds="10 GB" />
+					</IfFileName>
 				</Delete>
 			</DefaultRolloverStrategy>
 		</RollingFile>