Prechádzať zdrojové kódy

启用禁用机构优化

WANG 6 rokov pred
rodič
commit
c51499aa78

+ 35 - 10
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/OrgController.java

@@ -60,6 +60,8 @@ import cn.com.qmth.examcloud.core.basic.dao.entity.OrgPropertyEntity;
 import cn.com.qmth.examcloud.core.basic.dao.enums.OrgProperty;
 import cn.com.qmth.examcloud.core.basic.service.bean.OrgInfo;
 import cn.com.qmth.examcloud.core.basic.service.impl.OrgServiceImpl;
+import cn.com.qmth.examcloud.task.api.DataSyncCloudService;
+import cn.com.qmth.examcloud.task.api.request.SyncOrgReq;
 import cn.com.qmth.examcloud.web.config.SystemConfig;
 import cn.com.qmth.examcloud.web.helpers.GlobalHelper;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
@@ -86,6 +88,9 @@ public class OrgController extends ControllerSupport {
 	@Autowired
 	SystemConfig systemConfig;
 
+	@Autowired
+	DataSyncCloudService dataSyncCloudService;
+
 	@ApiOperation(value = "分页查询所有机构")
 	@GetMapping("fullOrgPage/{curPage}/{pageSize}")
 	public PageInfo<OrgDomain> getFullOrgPage(@PathVariable Integer curPage,
@@ -830,13 +835,9 @@ public class OrgController extends ControllerSupport {
 	@ApiOperation(value = "启用机构", notes = "启用")
 	@PutMapping("enable/{ids}")
 	public void enableOrgs(@PathVariable String ids) {
-		List<Long> orgIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
+		List<Long> orgIdList = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
-		for (Long orgId : orgIds) {
-			OrgEntity org = GlobalHelper.getEntity(orgRepo, orgId, OrgEntity.class);
-			org.setEnable(true);
-			orgRepo.save(org);
-		}
+		setOrgsEnable(orgIdList, true);
 	}
 
 	/**
@@ -848,12 +849,36 @@ public class OrgController extends ControllerSupport {
 	@ApiOperation(value = "禁用机构", notes = "禁用")
 	@PutMapping("disable/{ids}")
 	public void disableOrgs(@PathVariable String ids) {
-		List<Long> orgIds = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
+		List<Long> orgIdList = Stream.of(ids.split(",")).map(s -> Long.parseLong(s.trim()))
 				.collect(Collectors.toList());
-		for (Long orgId : orgIds) {
+		setOrgsEnable(orgIdList, false);
+	}
+
+	/**
+	 * 方法注释
+	 *
+	 * @author WANGWEI
+	 * @param orgIdList
+	 * @param enable
+	 */
+	private void setOrgsEnable(List<Long> orgIdList, Boolean enable) {
+		List<OrgEntity> savedList = Lists.newArrayList();
+		for (Long orgId : orgIdList) {
 			OrgEntity org = GlobalHelper.getEntity(orgRepo, orgId, OrgEntity.class);
-			org.setEnable(false);
-			orgRepo.save(org);
+			org.setEnable(enable);
+			OrgEntity saved = orgRepo.saveAndFlush(org);
+			savedList.add(saved);
+		}
+
+		for (OrgEntity saved : savedList) {
+			SyncOrgReq req = new SyncOrgReq();
+			req.setEnable(saved.getEnable());
+			req.setId(saved.getId());
+			req.setName(saved.getName());
+			req.setParentId(saved.getParentId());
+			req.setRootId(saved.getRootId());
+			req.setSyncType("update");
+			dataSyncCloudService.syncOrg(req);
 		}
 	}