mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-09 19:06:49 +08:00
用户登录组织信息更新调整
This commit is contained in:
@@ -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-------------");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user