diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java index bf90d10..ee25635 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/ChatGroupController.java @@ -1,5 +1,7 @@ package com.lyms.talkonlineweb.controller; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -10,10 +12,14 @@ import com.lyms.talkonlineweb.result.BaseResponse; import com.lyms.talkonlineweb.service.*; import com.lyms.talkonlineweb.util.HXService; import lombok.extern.log4j.Log4j2; +import org.apache.commons.io.IOUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.nio.charset.Charset; import java.util.*; @RestController @@ -44,6 +50,9 @@ public class ChatGroupController { @Autowired private LymsPatientService lymsPatientService; + @Autowired + private LymsTkrecordService lymsTkrecordService; + /** * 添加或删除聊天组 * @@ -174,4 +183,78 @@ public class ChatGroupController { return baseResponse; } + /** + * 根据环信传入的会话,获取用户信息 + * @param request + * @return + */ + @PostMapping("getSessionListInfo") + public BaseResponse getSessionListInfo(HttpServletRequest request) { + BaseResponse baseResponse = new BaseResponse(); + log.info(">>>>>>>>> getSessionListInfo"); + JSONArray rs=new JSONArray(); + try { + String res=IOUtils.toString(request.getInputStream()); + log.info(res); + JSONObject jsonObject= JSON.parseObject(res); + JSONArray channel_infos=jsonObject.getJSONArray("channel_infos"); + if(channel_infos.size()>0){ + for (int i = 0; i < channel_infos.size(); i++) { + JSONObject row=channel_infos.getJSONObject(i); + + if(row.getJSONObject("meta").size()>0){ + JSONObject payload=row.getJSONObject("meta").getJSONObject("payload"); + System.out.println(payload); + String from =payload.getString("from"); + Map param=new HashMap<>(); + param.put("idno",from); + List pLst=lymsPatientService.listByMap(param); + if(pLst.size()>0){ + payload.put("pat",pLst.get(0)); + } + param.clear(); + param.put("dlogin",from); + List dLst=lymsDoctorService.listByMap(param); + if(dLst.size()>0){ + payload.put("doc",dLst.get(0)); + } + payload.put("unread_num",row.get("unread_num")); + rs.add(payload); + String to=payload.getString("to"); + LymsTkrecord tkrecord=new LymsTkrecord(); + tkrecord.setHxgroupid(to); + List rLst=lymsTkrecordService.list(Wrappers.query(tkrecord)); + payload.put("stat",0); + if(rLst.size()>0){ + payload.put("stat",rLst.get(0).getStat()); + } + } + + } + } + + } catch (IOException e) { + e.printStackTrace(); + } + baseResponse.setObject(rs); + return baseResponse; + } + + /** + * 获取专家组\客服人员信息 + * @param request + * @return + */ + @GetMapping("getPreMsg") + public BaseResponse getPreMsg(HttpServletRequest request){ + BaseResponse baseResponse =new BaseResponse(); + Map param=new HashMap<>(); + param.put("vtype",998); + List dLst=lymsDictService.listByMap(param); + if(dLst.size()>0){ + baseResponse.setObject(dLst.get(0)); + } + return baseResponse; + } + }