From 69d91d1e468913c1d97ae855a432c33af25c4bb4 Mon Sep 17 00:00:00 2001 From: shiyang <316555390@qq.com> Date: Fri, 27 May 2022 17:09:38 +0800 Subject: [PATCH] =?UTF-8?q?PC-=E5=8C=BB=E7=94=9F=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E5=80=BC=E7=8F=AD=E5=8C=BB=E7=94=9F/=E5=80=BC?= =?UTF-8?q?=E7=8F=AD=E6=8A=A4=E5=A3=AB=20=E6=B7=BB=E5=8A=A0=E5=88=B0?= =?UTF-8?q?=E7=8E=B0=E6=9C=89=E7=BE=A4=E7=BB=84=E4=B8=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../talkonlineweb/controller/DoctorController.java | 84 +++++++++++++++++----- .../com/lyms/talkonlineweb/util/HXService.java | 37 ++++++++++ .../src/main/resources/application-dev.yml | 2 + 3 files changed, 106 insertions(+), 17 deletions(-) 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 6dd370b..a47e544 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java @@ -13,9 +13,10 @@ import com.lyms.talkonlineweb.result.BaseResponse; import com.lyms.talkonlineweb.service.*; import com.lyms.talkonlineweb.util.*; import lombok.extern.log4j.Log4j2; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.DigestUtils; -import org.springframework.util.StringUtils; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -119,29 +120,31 @@ public class DoctorController { if(Objects.nonNull(doctor.getDlogin())){ doctor.setDlogin(doctor.getDlogin().toLowerCase()); } + 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){ doctor.setCreatedtime(new Date()); - 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; - } -// LymsHdepart hdepart=lymsHdepartService.getById(doctor.getDpid()); -// if(doctor.getHxid()==null ){ -// JSONObject json=hxService.addUser(doctor.getDlogin(),Constant.COMMON_PASSWD,doctor.getDname()+","+hdepart.getDname()+","+hdepart.getHname()); -// JSONArray rArr=json.getJSONArray("entities"); -// if(rArr.size()>0){ -// doctor.setHxid(rArr.getJSONObject(0).getString("uuid")); -// } -// } }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(result.hasErrors()){ baseResponse.setErrorcode(1); @@ -459,4 +462,51 @@ public class DoctorController { return map; } + /** + * 值班医生/值班护士 添加到现有群组中 + * @param doctor + * @return + */ + @PostMapping("addOnDutyDoctor") + @TokenRequired + public BaseResponse addOnDutyDoctor(@RequestBody LymsDoctor doctor){ + BaseResponse baseResponse=new BaseResponse(); + try { + final List chatgroupList = lymsChatgroupService.list(new QueryWrapper().lambda() + .eq(LymsChatgroup::getHdepartId, doctor.getDpid())); + + for (LymsChatgroup lymsChatgroup : chatgroupList) { + final List descriptionList = Arrays.asList(lymsChatgroup.getDescription().split(",")); + if (!descriptionList.contains(doctor.getDlogin())) { + //注册环信 + if (StringUtil.isEmpty(doctor.getHxid())) { + JSONObject json = hxService.addUser(doctor.getDlogin(), Constant.COMMON_PASSWD, doctor.getDname()); + JSONArray rArr = json.getJSONArray("entities"); + if (rArr.size() > 0) { + doctor.setHxid(rArr.getJSONObject(0).getString("uuid")); + lymsDoctorService.updateById(doctor); + } + } + //添加到环信群组中 + JSONObject json = hxService.addUserHxGroup(lymsChatgroup.getHxgroupid(), doctor.getDlogin()); + JSONObject jsonObject = json.getJSONObject("data"); + if (jsonObject.size() > 0 && (boolean) jsonObject.get("result")) { + //更新到数据库群组中 + lymsChatgroup.setDescription(lymsChatgroup.getDescription() + "," + doctor.getDlogin()); + lymsChatgroup.setGroupname(lymsChatgroup.getGroupname() + "," + doctor.getDname()); + lymsChatgroupService.updateById(lymsChatgroup); + } + + } + } + baseResponse.setErrormsg("成功"); + } catch (Exception e) { + e.printStackTrace(); + baseResponse.setErrorcode(1); + baseResponse.setErrormsg("失败"); + } + + return baseResponse; + } + } diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/HXService.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/HXService.java index c7855e1..8a23d2e 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/HXService.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/HXService.java @@ -359,4 +359,41 @@ public class HXService { log.info(rs); return rs; } + /** + * 环信群组增加用户 + * @param usernames + * @return + */ + public JSONObject addUserHxGroup(String hxgid,String dlogin) { + JSONObject rs=new JSONObject(); + Map param=new HashMap<>(); + HttpHeaders headers=new HttpHeaders(); + + headers.add("Authorization","Bearer "+getToken()); + + HttpEntity entity=new HttpEntity(param,headers); + resp=restTemplate.postForEntity(getUrl()+"chatgroups/"+hxgid+"/users/"+dlogin,entity,String.class); + if (resp.getStatusCodeValue()==200){ + rs= JSON.parseObject(resp.getBody()); + } + log.info(rs); + return rs; + } + /** + * 环信群组移除组用户 + * @param usernames + * @return + */ + public JSONObject delUserHxGroup(String hxgid,String dlogin) { + JSONObject rs=new JSONObject(); + String token=getToken(); + HttpHeaders headers=new HttpHeaders(); + headers.add("Authorization","Bearer "+token); + HttpEntity param=new HttpEntity(headers); + resp=restTemplate.exchange(getUrl()+"chatgroups/"+hxgid+"/users/"+dlogin, HttpMethod.DELETE,param,String.class); + if (resp.getStatusCodeValue()==200){ + rs= JSON.parseObject(resp.getBody()); + } + return rs; + } } diff --git a/talkonlineweb/src/main/resources/application-dev.yml b/talkonlineweb/src/main/resources/application-dev.yml index 34efe5a..b9d6ea3 100644 --- a/talkonlineweb/src/main/resources/application-dev.yml +++ b/talkonlineweb/src/main/resources/application-dev.yml @@ -3,7 +3,9 @@ debug: true spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver + #测试 url: jdbc:p6spy:mysql://111.206.6.150:3307/talkonline?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8 + #正式 # url: jdbc:p6spy:mysql://111.206.6.155:3308/talkonline?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8 username: platform password: Platform@123 -- 1.8.3.1