diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java index a47e544..2cfba00 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java @@ -123,28 +123,54 @@ public class DoctorController { LymsDoctor depart2=new LymsDoctor(); depart2.setDlogin(doctor.getDlogin()); List dLst=lymsDoctorService.list(Wrappers.query(depart2)); - if (dLst.size()>0) { - baseResponse.setErrormsg("不能创建重复账号"); - baseResponse.setErrorcode(1); - return baseResponse; - } //操作记录标识 Integer did=0; if(doctor.getDid()==null){ + if (dLst.size()>0) { + baseResponse.setErrormsg("不能创建重复账号"); + baseResponse.setErrorcode(1); + return baseResponse; + } doctor.setCreatedtime(new Date()); }else{ did=1; doctor.setUpdatedTime(new Date()); - //修改医生状态时。变为就诊医生状态 -// if (dLst.size()>0 && null!=doctor.getAdminType() && doctor.getAdminType()==0) { -// depart2=dLst.get(0); -// //变更前是值班医生/值班护士时,变更环信群组及删除环信群组用户(值班医生/值班护士) -// if(depart2.getAdminType()==1 || depart2.getAdminType()==2){ -// -// } -// } - - + //修改医生状态时。变为就诊医生状态(需要移除聊天群组,因为已经不是值班角色) + if (dLst.size()>0 && null!=doctor.getAdminType() && doctor.getAdminType()==0) { + depart2=dLst.get(0); + //变更前是值班医生/值班护士时,变更环信群组及删除环信群组用户(值班医生/值班护士) + if(depart2.getAdminType()==1 || depart2.getAdminType()==2){ + final List chatgroupList = lymsChatgroupService.list(new QueryWrapper().lambda() + .ne(LymsChatgroup::getTarget, depart2.getDlogin()) + .eq(LymsChatgroup::getHdepartId, depart2.getDpid())); + for (LymsChatgroup lymsChatgroup : chatgroupList) { + JSONObject json = hxService.delUserHxGroup(lymsChatgroup.getHxgroupid(),depart2.getDlogin()); + JSONObject jsonObject = json.getJSONObject("data"); + if (jsonObject.size() > 0 && (boolean) jsonObject.get("result")) { + //更新到数据库群组中 + //群组中的账号 + List description = new ArrayList<>(Arrays.asList(lymsChatgroup.getDescription().split(","))); + //群组中的医生姓名 + List groupname = new ArrayList<>(Arrays.asList(lymsChatgroup.getGroupname().split(","))); + for (String s : description) { + if(s.equals(depart2.getDlogin())){ + description.remove(s); + break; + } + } + for (String s : groupname) { + if(s.equals(depart2.getDname())){ + groupname.remove(s); + break; + } + } + lymsChatgroup.setDescription(StringUtils.join(description.toArray(),",")); + lymsChatgroup.setGroupname(StringUtils.join(groupname.toArray(),",")); + lymsChatgroupService.updateById(lymsChatgroup); + } + } + } + } } if(result.hasErrors()){ baseResponse.setErrorcode(1);