用户登录组织信息更新调整

This commit is contained in:
yang康1999
2023-12-05 17:51:47 +08:00
parent a308f1d94e
commit 0468949d7d

View File

@@ -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-------------");
}
}