ChatGroupController.java 4.49 KB
   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
package com.lyms.talkonlineweb.controller;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lyms.talkonlineweb.domain.*;
import com.lyms.talkonlineweb.result.BaseResponse;
import com.lyms.talkonlineweb.service.*;
import com.lyms.talkonlineweb.util.HXService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("chat")
@Log4j2
public class ChatGroupController {
@Autowired
private LymsChatgroupService lymsChatgroupService;

@Autowired
private LymsMessageService lymsMessageService;

@Autowired
private PatientInfoService patientInfoService;

@Autowired
private LymsDoctorService lymsDoctorService;
@Autowired
private LymsHdepartService lymsHdepartService;
@Autowired
private LymsDictService lymsDictService;
@Autowired
private HXService hxService;

/**
* 添加或删除聊天组
*
* @param group
* @return
*/
@PostMapping("saveChatGroup")
public BaseResponse saveChatGroup(LymsChatgroup group) {
BaseResponse baseResponse = new BaseResponse();
List<LymsChatgroup> gLst = lymsChatgroupService.list(Wrappers.query(group));
if (group.getOwnerk() == null) {
group.setOwnerk("test");
}
if (gLst.size() > 0) {
LymsChatgroup group2 = gLst.get(0);
group = group2;
} else {
log.info("创建环信组:{} from:{} target:{}", group.getOwnerk(), group.getFromp(), group.getTarget());
JSONObject rJson = hxService.addChatGroups(group.getFromp() + "," + group.getTarget(), group.getOwnerk(), new String[]{group.getFromp(), group.getTarget()});
log.info("rJson:" + rJson);
group.setHxgroupid(rJson.getJSONObject("data").getString("groupid"));
group.setDescription(group.getFromp() + "," + group.getTarget());
group.setGroupname(group.getFromp() + "," + group.getTarget());
lymsChatgroupService.saveOrUpdate(group);
}
baseResponse.setObject(group);
return baseResponse;
}

/**
* 保存消息记录
*
* @param message
* @return
*/
@PostMapping("saveMsg")
public BaseResponse saveMsg(LymsMessage message) {
BaseResponse baseResponse = new BaseResponse();
message.setSendtime(new Date());
boolean f = lymsMessageService.saveOrUpdate(message);
baseResponse.setErrorcode(f == true ? 0 : 1);
return baseResponse;
}

@GetMapping("getPatDoc")
public BaseResponse getPatDoc(LymsChatgroup chatgroup) {
log.info(">>>>>>>>>>chatgroup:" + chatgroup);
BaseResponse baseResponse = new BaseResponse();
Map<String, Object> rs = new HashMap<>();

chatgroup = lymsChatgroupService.getOne(Wrappers.query(chatgroup));
LymsDoctor doctor = new LymsDoctor();
doctor = lymsDoctorService.getOne(Wrappers.query(doctor).eq("dlogin", chatgroup.getTarget()));

PatientInfo patientInfo = new PatientInfo();
patientInfo.setDid(doctor.getDpid());
patientInfo.setIdno(chatgroup.getFromp());
List<PatientInfo> pLst = patientInfoService.list(Wrappers.query(patientInfo));
conDocCode(doctor);
rs.put("doctor", doctor);
rs.put("patient", pLst);
baseResponse.setObject(rs);

return baseResponse;
}

public void conDocCode(LymsDoctor d) {
Map param = new HashMap();
param.put("vtype", 4);
List<LymsDict> dLst = lymsDictService.listByMap(param);
param.clear();
param.put("did", d.getDpid());
List<LymsHdepart> departLst = lymsHdepartService.listByMap(param);
if (departLst.size() > 0) {
LymsHdepart depart = departLst.get(0);
d.setHname(depart.getHname());
d.setDdname(depart.getDname());
dLst.forEach(dd -> {
if (dd.getCode() == d.getLvl()) {
d.setLname(dd.getValue());
}
});
}

}
}