diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/service/impl/DataUserSyncServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/data/service/impl/DataUserSyncServiceImpl.java index 27fc62f6..fd0a0e9b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/data/service/impl/DataUserSyncServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/data/service/impl/DataUserSyncServiceImpl.java @@ -25,142 +25,151 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service -public class DataUserSyncServiceImpl implements IDataUserSyncService{ - - @Autowired - AccountDao accountDao; - - @Autowired - UserDao userDao; - - @Autowired - OrganizationDao orgDao; - - @Autowired - TeacherDao teacherDao; - +public class DataUserSyncServiceImpl implements IDataUserSyncService { - @Override - @Transactional - @Retryable - public void syncUserFull(UserData user) { - log.info("同步用户【"+user.getId()+","+user.getCode()+"】"); - //如果删除状态为空,则设置为不删除 - if(user.getDeleted()==null) { - user.setDeleted(false); - } - //先查询是否存在 - Account a=accountDao.get(user.getId()); - User u=userDao.get(user.getId()); - Organization org=null; - if(a!=null) { - //账户只是修改状态 - if(user.getDeleted()!=null) { - a.setDeleted(user.getDeleted()); - } - a.setLoginName(user.getCode()); - log.info("更新账号code"); - accountDao.update(a); - }else { - //新账户 - a=new Account(); - a.setDeleted(user.getDeleted()); - a.setLoginName(user.getCode()); - a.setAvatar(user.getAvatar()); - a.setId(user.getId()); - a.setRegTime(LocalDateTime.now()); - a.setSysId(user.getKid()); - a.setStatus(1); - accountDao.save(a); - log.info("账号不存在,新添加账号【"+user.getId()+"】"); - } - if(u!=null) { - //更新部分用户字段 - u.setDepartId(user.getDepartId()); - u.setDepartName(user.getDepartName()); - u.setName(user.getName()); - //2022-12-8 去掉用户类型的更新,因为返回的数据都是学员, - //u.setUserType(user.getUserType()); - if(user.getLearningDuration()>0) { //不大于0才会更新 - u.setLearningDuration(user.getLearningDuration()); - } - userDao.update(u); - log.info("更新用户信息,学习时长,姓名,所在部门"); - }else { - //新建用户 - u=new User(); - u.setId(user.getId()); - u.setDepartId(user.getDepartId()); - u.setDepartName(user.getDepartName()); - u.setDynamic(0); - u.setGender(user.getGender()); - u.setName(user.getName()); - u.setSign(""); - u.setUserNo(user.getCode()); - u.setUserType(user.getUserType()); - u.setSysId(user.getKid()); - u.setStudyTotal(0); - u.setLearningDuration(user.getLearningDuration()); - if(user.getBandLevel()!=null && user.getBandLevel()>15) { - u.setShowHome(false);//band16及以上 - }else { - u.setShowHome(true);//band16以下,及其它无bandLevel的信息 - } - userDao.save(u); - log.info("添加新用户"); - } - //对机构的判断,不为空时才会处理,为空时不处理 - if(StringUtils.isNotBlank(user.getDepartId())) { - org=orgDao.get(user.getDepartId()); - if(org==null) { - log.info("无用户关联机构,添加新机构"); - org=new Organization(); - org.setCode(""); - org.setId(user.getDepartId()); - org.setName(user.getDepartName()); - org.setNamePath(user.getOrgNamePath()); - org.setDeleted(false); - org.setStatus(1); - orgDao.save(org); - }else { - org.setName(user.getDepartName()); - org.setNamePath(user.getOrgNamePath()); - orgDao.update(org); - } - } - //先提交一下 - userDao.flush(); - - //老师信息 - //if(u.getUserType()!=null && u.getUserType()==2) { - if((user.getTeacher()!=null && user.getTeacher()) || (user.getUserType()!=null && user.getUserType()==2)){ - Teacher t = teacherDao.get(user.getId()); - log.info("用户有教师身份,处理教师身份"); - if(t==null) { - log.info("添加教师身份"); - t=new Teacher(); - t.setId(u.getId()); - t.setDepartId(u.getDepartId()); - t.setDeleted(false); - t.setGender(u.getGender()); - t.setName(u.getName()); - t.setStatus(1); - t.setWaitStatus(0); - t.setUser(u); - teacherDao.save(t); - log.info("教师身份已添加"); - }else { - log.info("教师身份已存在,不再添加"); - } - } - log.info("同步用户完成"); + @Autowired + AccountDao accountDao; - } + @Autowired + UserDao userDao; + + @Autowired + OrganizationDao orgDao; + + @Autowired + TeacherDao teacherDao; - @Recover - private void recover() { - System.out.println("重试3次都失败-----recover-------------recover-------------"); - } + @Override + @Transactional + @Retryable + public void syncUserFull(UserData user) { + log.info("同步用户【" + user.getId() + "," + user.getCode() + "】"); + //如果删除状态为空,则设置为不删除 + if (user.getDeleted() == null) { + user.setDeleted(false); + } + //先查询是否存在 + Account a = accountDao.get(user.getId()); + User u = userDao.get(user.getId()); + Organization org = null; + if (a != null) { + //账户只是修改状态 + if (user.getDeleted() != null) { + a.setDeleted(user.getDeleted()); + } + a.setLoginName(user.getCode()); + log.info("更新账号code"); + accountDao.update(a); + } else { + //新账户 + a = new Account(); + a.setDeleted(user.getDeleted()); + a.setLoginName(user.getCode()); + a.setAvatar(user.getAvatar()); + a.setId(user.getId()); + a.setRegTime(LocalDateTime.now()); + a.setSysId(user.getKid()); + a.setStatus(1); + accountDao.save(a); + log.info("账号不存在,新添加账号【" + user.getId() + "】"); + } + if (u != null) { + //更新部分用户字段 + u.setDepartId(user.getDepartId()); + u.setDepartName(user.getDepartName()); + u.setName(user.getName()); + //2022-12-8 去掉用户类型的更新,因为返回的数据都是学员, + //u.setUserType(user.getUserType()); + if (user.getLearningDuration() > 0) { //不大于0才会更新 + u.setLearningDuration(user.getLearningDuration()); + } + userDao.update(u); + log.info("更新用户信息,学习时长,姓名,所在部门"); + } else { + //新建用户 + u = new User(); + u.setId(user.getId()); + u.setDepartId(user.getDepartId()); + u.setDepartName(user.getDepartName()); + u.setDynamic(0); + u.setGender(user.getGender()); + u.setName(user.getName()); + u.setSign(""); + u.setUserNo(user.getCode()); + u.setUserType(user.getUserType()); + u.setSysId(user.getKid()); + u.setStudyTotal(0); + u.setLearningDuration(user.getLearningDuration()); + if (user.getBandLevel() != null && user.getBandLevel() > 15) { + u.setShowHome(false);//band16及以上 + } else { + u.setShowHome(true);//band16以下,及其它无bandLevel的信息 + } + userDao.save(u); + log.info("添加新用户"); + } + //对机构的判断,不为空时才会处理,为空时不处理 + if (StringUtils.isNotBlank(user.getDepartId())) { + org = orgDao.get(user.getDepartId()); + if (org == null) { + log.info("无用户关联机构,添加新机构"); + org = new Organization(); + org.setCode(""); + org.setId(user.getDepartId()); + org.setName(user.getDepartName()); + org.setNamePath(user.getOrgNamePath()); + org.setDeleted(false); + org.setStatus(1); + orgDao.save(org); + } else { + int flag=0; + if (StringUtils.isNotBlank(user.getDepartName()) && !user.getDepartName().equals(org.getName())) { + org.setName(user.getDepartName()); + flag++; + } + if(StringUtils.isNotBlank(user.getOrgNamePath()) && !user.getOrgNamePath().equals(org.getNamePath())){ + org.setNamePath(user.getOrgNamePath()); + flag++; + } + if (flag>0){ + orgDao.update(org); + } + } + } + //先提交一下 + userDao.flush(); + + //老师信息 + //if(u.getUserType()!=null && u.getUserType()==2) { + if ((user.getTeacher() != null && user.getTeacher()) || (user.getUserType() != null && user.getUserType() == 2)) { + Teacher t = teacherDao.get(user.getId()); + log.info("用户有教师身份,处理教师身份"); + if (t == null) { + log.info("添加教师身份"); + t = new Teacher(); + t.setId(u.getId()); + t.setDepartId(u.getDepartId()); + t.setDeleted(false); + t.setGender(u.getGender()); + t.setName(u.getName()); + t.setStatus(1); + t.setWaitStatus(0); + t.setUser(u); + teacherDao.save(t); + log.info("教师身份已添加"); + } else { + log.info("教师身份已存在,不再添加"); + } + } + log.info("同步用户完成"); + + } + + + @Recover + private void recover() { + System.out.println("重试3次都失败-----recover-------------recover-------------"); + } }