|
@@ -1,139 +0,0 @@
|
|
|
-package com.qmth.teachcloud.common.service.impl;
|
|
|
-
|
|
|
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
-import com.qmth.teachcloud.common.base.BaseEntity;
|
|
|
-import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
-import com.qmth.teachcloud.common.entity.BasicSchool;
|
|
|
-import com.qmth.teachcloud.common.entity.SysOrg;
|
|
|
-import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
-import com.qmth.teachcloud.common.enums.OrgTypeEnum;
|
|
|
-import com.qmth.teachcloud.common.service.BasicSchoolService;
|
|
|
-import com.qmth.teachcloud.common.service.CallApiOrgCenterService;
|
|
|
-import com.qmth.teachcloud.common.service.OrgCenterDataDisposeService;
|
|
|
-import com.qmth.teachcloud.common.service.SysOrgService;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import java.io.IOException;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
-
|
|
|
- * @Description: 机构数据中心数据处理服务实现类
|
|
|
- * @Author: CaoZixuan
|
|
|
- * @Date: 2021-04-02
|
|
|
- */
|
|
|
-@Service
|
|
|
-public class OrgCenterDataDisposeServiceImpl implements OrgCenterDataDisposeService {
|
|
|
- @Resource
|
|
|
- private CallApiOrgCenterService callApiOrgCenterService;
|
|
|
- @Resource
|
|
|
- private BasicSchoolService basicSchoolService;
|
|
|
- @Resource
|
|
|
- private SysOrgService sysOrgService;
|
|
|
-
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- @Override
|
|
|
- public void updateSchoolInfo() throws IOException {
|
|
|
- List<Map> result = callApiOrgCenterService.callOrgInfo();
|
|
|
- if (Objects.isNull(result) || result.size() == 0) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- List<BasicSchool> basicSchoolList = basicSchoolService.list();
|
|
|
- basicSchoolService.update(new UpdateWrapper<BasicSchool>().lambda().set(BasicSchool::getEnable, false).gt(BasicSchool::getId, 0));
|
|
|
-
|
|
|
-
|
|
|
- List<SysOrg> sysOrgList = sysOrgService.list();
|
|
|
- sysOrgService.update(new UpdateWrapper<SysOrg>().lambda().set(SysOrg::getEnable, false).eq(SysOrg::getType, OrgTypeEnum.SCHOOL));
|
|
|
-
|
|
|
-
|
|
|
- List<BasicSchool> updateSchoolList = new ArrayList<>();
|
|
|
-
|
|
|
- List<SysOrg> updateSysOrgList = new ArrayList<>();
|
|
|
-
|
|
|
- for (Map map : result) {
|
|
|
- Long orgCenterAppSchoolId = SystemConstant.convertIdToLong(String.valueOf(map.get("id")));
|
|
|
- String code = String.valueOf(map.get("code"));
|
|
|
- String name = String.valueOf(map.get("name"));
|
|
|
- String logo = String.valueOf(map.get("logo"));
|
|
|
- String accessKey = String.valueOf(map.get("accessKey"));
|
|
|
- String accessSecret = String.valueOf(map.get("accessSecret"));
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- List<BasicSchool> oldSchoolList = basicSchoolList.stream().filter(e -> e.getCode().equals(code)).collect(Collectors.toList());
|
|
|
- if (oldSchoolList.size() > 1) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("学校信息异常");
|
|
|
- }
|
|
|
- Long schoolId;
|
|
|
- if (oldSchoolList.size() > 0) {
|
|
|
-
|
|
|
- BasicSchool oldSchool = oldSchoolList.get(0);
|
|
|
- schoolId = oldSchool.getId();
|
|
|
- } else {
|
|
|
-
|
|
|
- if (basicSchoolList.stream().map(BaseEntity::getId).collect(Collectors.toSet()).contains(orgCenterAppSchoolId)) {
|
|
|
- schoolId = SystemConstant.getDbUuid();
|
|
|
- } else {
|
|
|
- schoolId = orgCenterAppSchoolId;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (!SystemConstant.longNotNull(schoolId)) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- BasicSchool school = new BasicSchool();
|
|
|
- school.setId(schoolId);
|
|
|
- school.setCode(code);
|
|
|
- school.setName(name);
|
|
|
- school.setEnable(true);
|
|
|
- school.setAccessKey(accessKey);
|
|
|
- school.setAccessSecret(accessSecret);
|
|
|
- school.setLogo(logo);
|
|
|
- updateSchoolList.add(school);
|
|
|
-
|
|
|
-
|
|
|
- List<SysOrg> schoolOrgList = sysOrgList.stream().filter(e -> schoolId.equals(e.getSchoolId()) && OrgTypeEnum.SCHOOL.equals(e.getType())).collect(Collectors.toList());
|
|
|
- SysOrg sysOrg = new SysOrg();
|
|
|
- if (schoolOrgList.size() == 0) {
|
|
|
-
|
|
|
- Long id = SystemConstant.getDbUuid();
|
|
|
- sysOrg.setId(id);
|
|
|
- sysOrg.setSchoolId(schoolId);
|
|
|
- sysOrg.setType(OrgTypeEnum.SCHOOL);
|
|
|
- sysOrg.setName(name);
|
|
|
- sysOrg.setEnable(true);
|
|
|
-
|
|
|
-
|
|
|
- List<SysOrg> collegeOrgList = sysOrgList.stream()
|
|
|
- .filter(e -> schoolId.equals(e.getSchoolId()) &&
|
|
|
- (OrgTypeEnum.COLLEGE.equals(e.getType()) || OrgTypeEnum.PRINTING_HOUSE.equals(e.getType()) || !SystemConstant.longNotNull(e.getParentId())))
|
|
|
- .peek(e -> e.setParentId(id))
|
|
|
- .collect(Collectors.toList());
|
|
|
- updateSysOrgList.addAll(collegeOrgList);
|
|
|
- } else if (schoolOrgList.size() == 1) {
|
|
|
-
|
|
|
- sysOrg = schoolOrgList.get(0);
|
|
|
- sysOrg.setEnable(true);
|
|
|
- sysOrg.setName(name);
|
|
|
- } else {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("机构数据异常 - 存在多条数据");
|
|
|
- }
|
|
|
- updateSysOrgList.add(sysOrg);
|
|
|
- }
|
|
|
- basicSchoolService.saveOrUpdateBatch(updateSchoolList);
|
|
|
- sysOrgService.saveOrUpdateBatch(updateSysOrgList);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-}
|