|
@ -0,0 +1,676 @@
|
|
|
package com.yihu.customer.controller.common.account;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.yihu.customer.controller.BaseController;
|
|
|
import com.yihu.customer.entity.Doctor;
|
|
|
import com.yihu.customer.entity.Patient;
|
|
|
import com.yihu.customer.entity.User;
|
|
|
import com.yihu.customer.entity.WlyyCustomerLog;
|
|
|
import com.yihu.customer.entity.call.ManageFollowupRecord;
|
|
|
import com.yihu.customer.repository.PatientDao;
|
|
|
import com.yihu.customer.repository.UserDao;
|
|
|
import com.yihu.customer.service.manager.account.CustomerService;
|
|
|
import com.yihu.customer.service.manager.feedback.FeedbackService;
|
|
|
import com.yihu.customer.service.manager.hos.HosDoctorService;
|
|
|
import com.yihu.customer.service.manager.patient.AdminPatientService;
|
|
|
import com.yihu.customer.service.manager.user.UserService;
|
|
|
import com.yihu.customer.service.manager.user.WlyyCustomerLogService;
|
|
|
import com.yihu.customer.util.MD5;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.MediaType;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* 用户登录的Controller.
|
|
|
*
|
|
|
* @author calvin
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping(value = "/customer", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
|
|
@SessionAttributes("current_user")
|
|
|
@Api
|
|
|
public class CustomerController extends BaseController {
|
|
|
|
|
|
@Autowired
|
|
|
private UserService userService;
|
|
|
@Autowired
|
|
|
private AdminPatientService patientService;
|
|
|
@Autowired
|
|
|
private CustomerService customerService;
|
|
|
|
|
|
@Autowired
|
|
|
private WlyyCustomerLogService wlyyCustomerLogService;
|
|
|
|
|
|
@Autowired
|
|
|
private PatientDao patientDao;
|
|
|
|
|
|
@Autowired
|
|
|
private HosDoctorService doctorService;
|
|
|
@Autowired
|
|
|
private FeedbackService feedbackService;
|
|
|
@Autowired
|
|
|
private ObjectMapper objectMapper;
|
|
|
@Autowired
|
|
|
private UserDao userDao;
|
|
|
|
|
|
/**
|
|
|
* 修改密码
|
|
|
*
|
|
|
* @param newPassword1 新密码1
|
|
|
* @param newPassword2 新密码2
|
|
|
* @param oldPassword 旧密码
|
|
|
* @param userName 手机号
|
|
|
* @return
|
|
|
*/
|
|
|
@ApiOperation("修改密码")
|
|
|
@RequestMapping(value = "/updatePassword", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
public String updatePassword(String newPassword1,
|
|
|
String newPassword2,
|
|
|
String oldPassword,
|
|
|
String userName) {
|
|
|
try {
|
|
|
User user = userDao.findByMobile(userName);
|
|
|
if(user==null){
|
|
|
return error(-1,"用户不存在");
|
|
|
}
|
|
|
if (!newPassword1.equals(newPassword2)) {
|
|
|
return error(-1,"新密码不一致");
|
|
|
}
|
|
|
if (newPassword1.equals(oldPassword)) {
|
|
|
return error(-1,"新旧密码一致");
|
|
|
}
|
|
|
if(!user.getPassword().equals(MD5.GetMD5Code(oldPassword+user.getSalt()))){
|
|
|
return error(-1,"旧密码错误");
|
|
|
}
|
|
|
|
|
|
if(!userService.testPwd(newPassword1)){
|
|
|
return error(-1,"密码强度低,应包含字母数据特殊字符3种以上");
|
|
|
}
|
|
|
|
|
|
user.setPassword(MD5.GetMD5Code(newPassword1+user.getSalt()));
|
|
|
userDao.save(user);
|
|
|
return write(200, "更新成功");
|
|
|
} catch (Exception e) {
|
|
|
error(e);
|
|
|
return error(-1, e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/* public static void main(String[] args) {
|
|
|
|
|
|
System.out.println(MD5.GetMD5Code("13400620168".substring("13400620168".length()-5)+"e17354680a03a774"));
|
|
|
// 2adc22a6f7cf412c4cf10bdeb38873a7
|
|
|
|
|
|
}*/
|
|
|
|
|
|
@RequestMapping(value = "isChangePassword",method =RequestMethod.GET)
|
|
|
@ResponseBody
|
|
|
@ApiOperation("客服是否改过密码")
|
|
|
public String isChangePassword(@ApiParam(name = "userName", value = "手机号", required = true)
|
|
|
@RequestParam(required = true, name = "userName") String userName){
|
|
|
try{
|
|
|
User user = userDao.findByMobile(userName);
|
|
|
|
|
|
String password = MD5.GetMD5Code(user.getMobile().substring(user.getMobile().length()-5)+user.getSalt());
|
|
|
|
|
|
if(password.equals(user.getPassword())){
|
|
|
return write(200, "查询成功!", "data", 0);
|
|
|
}else{
|
|
|
return write(200, "查询成功!", "data", 1);
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
return error(-1, "查询失败!");
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/login",method = RequestMethod.POST,produces="application/json;charset=UTF-8")
|
|
|
@ResponseBody
|
|
|
public String login(@ApiParam(name = "userName", value = "账号", required = true)@RequestParam(required = true, name = "userName") String userName,
|
|
|
@ApiParam(name = "password", value = "密码", required = true)@RequestParam(required = true, name = "password") String password,
|
|
|
@ApiParam(name = "key", value = "key", required = true)@RequestParam(required = true, name = "key") String key,
|
|
|
@ApiParam(name = "imgCaptcha", value = "图形验证码", required = true)@RequestParam(required = true, name = "imgCaptcha") String imgCaptcha,
|
|
|
HttpServletRequest req, HttpServletResponse resp) throws Exception {
|
|
|
if(!userService.testPwd(password)){
|
|
|
return write(-1,"密码强度低,请联系管理员!");
|
|
|
}else if(!userService.testCaptcha(key, imgCaptcha,true)){
|
|
|
return write(-1,"图形验证码错误!");
|
|
|
}else{
|
|
|
User curUser = userService.userValidation(userName, password);
|
|
|
if(curUser == null){
|
|
|
return write(-1,"账号密码错误");
|
|
|
}else{
|
|
|
if(curUser.getType() == 3){
|
|
|
curUser.setTypeName("客服管理员");
|
|
|
} else if(curUser.getType() == 4){
|
|
|
curUser.setTypeName("客服");
|
|
|
}else{
|
|
|
return write(-1,"该账号不是客服帐号");
|
|
|
}
|
|
|
req.getSession().setAttribute("userInfo",curUser);
|
|
|
req.getSession().setAttribute("mobile", curUser.getMobile());
|
|
|
req.getSession().setAttribute("code",curUser.getCode());
|
|
|
req.getSession().setAttribute("name",curUser.getName());
|
|
|
req.getSession().setAttribute("isLogin", "true");
|
|
|
req.getSession().setAttribute("type", curUser.getType());
|
|
|
req.getSession().setMaxInactiveInterval(-1);//设置session用不过期
|
|
|
WlyyCustomerLog wlyyCustomerLog = new WlyyCustomerLog();
|
|
|
wlyyCustomerLog.setCreateTime(new Date());
|
|
|
wlyyCustomerLog.setUser(curUser.getCode());
|
|
|
wlyyCustomerLog.setType(1);
|
|
|
wlyyCustomerLogService.save(wlyyCustomerLog);
|
|
|
curUser.setOnline("2");
|
|
|
userService.save(curUser);
|
|
|
return write(200,"登入成功","user",curUser);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/logout",produces="application/json;charset=UTF-8")
|
|
|
@ResponseBody
|
|
|
public String logout(HttpServletRequest req) throws Exception {
|
|
|
String code = (String) req.getSession().getAttribute("code");
|
|
|
req.getSession().removeAttribute("userInfo");
|
|
|
req.getSession().removeAttribute("mobile");
|
|
|
req.getSession().removeAttribute("code");
|
|
|
req.getSession().removeAttribute("name");
|
|
|
req.getSession().removeAttribute("isLogin");
|
|
|
WlyyCustomerLog wlyyCustomerLog = new WlyyCustomerLog();
|
|
|
wlyyCustomerLog.setCreateTime(new Date());
|
|
|
wlyyCustomerLog.setUser(code);
|
|
|
wlyyCustomerLog.setType(0);
|
|
|
wlyyCustomerLogService.save(wlyyCustomerLog);
|
|
|
System.out.println("code=========:"+code);
|
|
|
User user = userService.getUserByCode(code);
|
|
|
user.setOnline("0");
|
|
|
userService.save(user);
|
|
|
return write(200,"退出成功");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*通过输入的社保卡号或者身份证字符串查找居民列表
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/findPatientInfo",produces="application/json;charset=UTF-8")
|
|
|
@ResponseBody
|
|
|
public String findPatientInfo(@ApiParam(name = "idCard", value = "身份证号", required = false)@RequestParam(required = false, name = "idCard") String idCard,
|
|
|
@ApiParam(name = "ssc", value = "社保卡号", required = false)@RequestParam(required = false, name = "ssc") String ssc) throws Exception {
|
|
|
//根据条件查询病人信息
|
|
|
Map<String, Object> resp = new HashMap<>();
|
|
|
List<Patient> patient = new ArrayList<>();
|
|
|
if(!StringUtils.isBlank(idCard)&&idCard.length()>=6){//身份证不为空
|
|
|
patient = patientService.findPatientListBySscOrIdCard(idCard,ssc);
|
|
|
}
|
|
|
if(!StringUtils.isBlank(ssc)&&ssc.length()>=6){//社保卡号不为空
|
|
|
patient = patientService.findPatientListBySscOrIdCard(idCard,ssc);
|
|
|
}
|
|
|
if(patient ==null){
|
|
|
return write(-1,"未查询到");
|
|
|
}
|
|
|
resp.put("patient",patient);
|
|
|
resp.put("idCard",idCard);
|
|
|
return write(200,"查询成功","data",resp);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*通过社保卡号或者身份证查找服务对象
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/findServerInfo",produces="application/json;charset=UTF-8")
|
|
|
@ResponseBody
|
|
|
public String findServerInfo(@ApiParam(name = "idCard", value = "身份证号", required = false)@RequestParam(required = false, name = "idCard") String idCard,
|
|
|
@ApiParam(name = "ssc", value = "社保卡号", required = false)@RequestParam(required = false, name = "ssc") String ssc) throws Exception {
|
|
|
|
|
|
if(StringUtils.isBlank(idCard) && StringUtils.isBlank(ssc)){
|
|
|
return write(-1,"身份证号或者社保卡号至少填写一个");
|
|
|
}
|
|
|
|
|
|
//根据条件查询病人信息
|
|
|
Patient patient = null;
|
|
|
if(StringUtils.isBlank(idCard)){//身份证为空
|
|
|
//根据社保卡号查询
|
|
|
patient = patientService.findBySsc(ssc);
|
|
|
}
|
|
|
if(!StringUtils.isBlank(idCard)){//身份证不为空
|
|
|
if(StringUtils.isBlank(ssc)){//社保卡号为空
|
|
|
patient = patientService.findByIdcard(idCard);
|
|
|
}else{//社保卡号不为空
|
|
|
patient = patientService.findByIdcardAndSsc(idCard,ssc);
|
|
|
}
|
|
|
}
|
|
|
if(patient ==null){
|
|
|
return write(-1,"未查询到");
|
|
|
}
|
|
|
Map<String, Object> resp = customerService.findServerInfo(patient);
|
|
|
resp.put("patient",patient);
|
|
|
|
|
|
return write(200,"查询成功","data",resp);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*通过手机号查找服务对象
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/findByMobile",produces="application/json;charset=UTF-8")
|
|
|
@ResponseBody
|
|
|
public String findByMobile(@ApiParam(name = "mobile", value = "手机号", required = false)@RequestParam(required = true, name = "mobile") String mobile) throws Exception {
|
|
|
|
|
|
Map<String, Object> resp = new HashMap<>();
|
|
|
|
|
|
//根据条件查询病人信息
|
|
|
List<Patient> patients = patientService.findByMobile(mobile);
|
|
|
if(patients ==null || patients.size()==0){
|
|
|
return write(-1,"未查询到");
|
|
|
}else if(patients.size()==1){
|
|
|
Patient patient = patients.get(0);
|
|
|
resp = customerService.findServerInfo(patients.get(0));
|
|
|
resp.put("patient",patient);
|
|
|
return write(200,"查询成功","data",resp);
|
|
|
}
|
|
|
resp.put("patients",patients);
|
|
|
return write(200,"查询成功","data",resp);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*通过居民code,查找家庭关系,签约信息,医生等
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/findByPatient",produces="application/json;charset=UTF-8")
|
|
|
@ResponseBody
|
|
|
public String findByPatient(@ApiParam(name = "patientCode", value = "居民code", required = false)@RequestParam(required = true, name = "patientCode") String patientCode) throws Exception {
|
|
|
Patient patient = patientDao.findByCode(patientCode);
|
|
|
Map<String, Object> respon = customerService.findServerInfo(patientCode);
|
|
|
respon.put("patient",patient);
|
|
|
return write(200,"查询成功","data",respon);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 客服给医生发送短信,微信提醒
|
|
|
* (医生助手功能)
|
|
|
* @param msg
|
|
|
* @param doctorCode
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/sendMsg",produces="application/json;charset=UTF-8")
|
|
|
@ResponseBody
|
|
|
public String sendMsg(@ApiParam(name="msg",value="消息内容")@RequestParam(name="msg")String msg,
|
|
|
@ApiParam(name="doctorCode",value="发送给某个医生code")@RequestParam(name="doctorCode")String doctorCode,
|
|
|
@ApiParam(name="type",value="发送类型 1发送短信 2发送微信 3短信微信都发送")@RequestParam(name="doctorCode",required = false)String type) throws Exception {
|
|
|
|
|
|
//用于返回的resp
|
|
|
Doctor doctor = doctorService.getDoctorByCode(doctorCode);
|
|
|
if(StringUtils.isBlank(type)){
|
|
|
type="3";
|
|
|
}
|
|
|
Map<String, Object> resp = customerService.sendMsg(doctor,msg,type);
|
|
|
if(resp.size()==0){
|
|
|
return write(200,"发送成功");
|
|
|
}
|
|
|
return write(-1,"发送失败","data",resp);
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/addCallRecord", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "新增电话记录")
|
|
|
public String addCallRecord(@ApiParam(name="type",value="1.呼入,2.呼出")@RequestParam(required = true)Integer type,
|
|
|
@ApiParam(name="callerNumber",value="呼入号码")@RequestParam(required = true)String callerNumber,
|
|
|
@ApiParam(name="recipientNumber",value="接收号码")@RequestParam(required = true)String recipientNumber,
|
|
|
@ApiParam(name="callId",value="通话流水号")@RequestParam(required = false)String callId,
|
|
|
@ApiParam(name="status",value="接听状态: 1.接通,2. 队列中放弃,3.接通")@RequestParam(required = true)Integer status,
|
|
|
@ApiParam(name="businessCode",value="业务编码")@RequestParam(required = true)Integer businessCode){
|
|
|
try {
|
|
|
return write(200,"保存成功","data",customerService.addCallRecord( getUID(), type, callerNumber, recipientNumber, status, businessCode,callId));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"保存失败");
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/updateCallRecord", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "更新电话记录")
|
|
|
public String updateCallRecord(@ApiParam(name="jsonString",value="保存实体json串")@RequestParam(required = true)String jsonString){
|
|
|
try {
|
|
|
return write(200,"保存成功","data",customerService.updateCallRecord(jsonString));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"保存失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/updateCallRecordService", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "更新通话记录的服务记录信息")
|
|
|
public String updateCallRecordService(@ApiParam(name="code",value="通话记录code")@RequestParam(required = true)String code,
|
|
|
@ApiParam(name="phone",value="服务对象电话号码")@RequestParam(required = true)String phone,
|
|
|
@ApiParam(name="serviceType",value="服务类型:1.医生转接 2.代理咨询")@RequestParam(required = true)String serviceType,
|
|
|
@ApiParam(name="serviceContent",value="服务内容")@RequestParam(required = false) String serviceContent,
|
|
|
@ApiParam(name="transferState",value="1.成功,2.失败")@RequestParam(required = true) Integer transferState){
|
|
|
try {
|
|
|
return write(200,"保存成功","data",customerService.updateCallRecordService(code,phone,serviceType,serviceContent,transferState));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"保存失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/updateCallRecordEndTime", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "更新电话记录(更新结束时间)")
|
|
|
public String updateCallRecordEndTime(@ApiParam(name="code",value="电话记录code")@RequestParam(required = true)String code,
|
|
|
@ApiParam(name="patient",value="居民code")@RequestParam(required = false)String patient){
|
|
|
try {
|
|
|
return write(200,"保存成功","data",customerService.updateCallRecordEndTime(code,patient));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"保存失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/getCallRecords", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "获取通讯记录列表")
|
|
|
public String getCallRecords(@ApiParam(name="callerNumber",value="呼叫人电话")@RequestParam(required = false)String callerNumber,
|
|
|
@ApiParam(name="recipientNumber",value="客服座机电话")@RequestParam(required = false)String recipientNumber,
|
|
|
@ApiParam(name="seat",value="客服座席号")@RequestParam(required = false)String seat,
|
|
|
@ApiParam(name="answerStatus",value="接听状态: 1.接通,2. 队列中放弃,3.未接通")@RequestParam(required = false)Integer answerStatus,
|
|
|
@ApiParam(name="serviceType",value="服务类型:1.医生转接 2.代理咨询")@RequestParam(required = false)Integer serviceType ,
|
|
|
@ApiParam(name="userName",value="客服名称(模糊匹配)")@RequestParam(required = false)String userName ,
|
|
|
@ApiParam(name="jobNo",value="客服工号")@RequestParam(required = false)String jobNo ,
|
|
|
@ApiParam(name="startDate",value="开始时间")@RequestParam(required = false)String startDate,
|
|
|
@ApiParam(name="endDate",value="结束时间")@RequestParam(required = false)String endDate,
|
|
|
@ApiParam(name="page",value="第几页,从1开始")@RequestParam(required = true)Integer page,
|
|
|
@ApiParam(name="size",value="页码大小")@RequestParam(required = true)Integer size,
|
|
|
@ApiParam(name = "followup",value = "是否跟进") @RequestParam(required = false) Integer followup){
|
|
|
try {
|
|
|
return write(200,"查询成功","data",customerService.getCallRecords(callerNumber,recipientNumber,seat,answerStatus,serviceType,userName,jobNo,startDate,endDate,page,size,followup));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"查询失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/getCallRecordInfo", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "获取通讯记录详情")
|
|
|
public String getCallRecordInfo(@ApiParam(name="code",value="通话记录code")@RequestParam(required = true)String code){
|
|
|
try {
|
|
|
return write(200,"查询成功!","data",customerService.getCallRecordInfo(code));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"查询失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/getCallServiceCode", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "获取协同服务编号")
|
|
|
public String getCallServiceCode(@ApiParam(name="type",value="协同服务类型编号,1为咨询 2为待预约")@RequestParam(required = true)String type){
|
|
|
try {
|
|
|
return write(200,"查询成功","data",customerService.getCallServiceCode(type));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"查询失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/saveCallService", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "保存协同服务")
|
|
|
public String saveCallService(@ApiParam(name="callServiceJson",value="协同服务json串")@RequestParam(required = true)String callServiceJson){
|
|
|
try {
|
|
|
String rs = customerService.saveCallService( callServiceJson,getUID());
|
|
|
if("-1".equals(rs)){
|
|
|
return error(-2,"协同服务已达上限");
|
|
|
}
|
|
|
return write(200,"保存成功","data",rs);
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"保存失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/updateCallService", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "更新协同服务")
|
|
|
public String updateCallService(@ApiParam(name="callServiceJson",value="协同服务json串")@RequestParam(required = true)String callServiceJson){
|
|
|
try {
|
|
|
return write(200,"保存成功","data",customerService.updateCallService( callServiceJson,getUID()));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"保存失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/getCallServices", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "协同服务查询")
|
|
|
public String getCallServices(@ApiParam(name="keyword",value="姓名或身份证或医保卡号")@RequestParam(required = false)String keyword,
|
|
|
@ApiParam(name="serverType",value="服务类型:0.医生咨询,1.预约挂号")@RequestParam(required = false)Integer serverType,
|
|
|
@ApiParam(name="state",value="订单状态:0.草稿,1.待处理,2.完成")@RequestParam(required = false)Integer state,
|
|
|
@ApiParam(name="patientName",value="患者姓名")@RequestParam(required = false)String patientName,
|
|
|
@ApiParam(name="ssc",value="医保卡号")@RequestParam(required = false)String ssc,
|
|
|
@ApiParam(name="idCard",value="身份证号")@RequestParam(required = false)String idCard,
|
|
|
@ApiParam(name="doctorName",value="医生姓名")@RequestParam(required = false)String doctorName,
|
|
|
@ApiParam(name="code",value="服务编号")@RequestParam(required = false)String code,
|
|
|
@ApiParam(name="adminTeamCode",value="签约医生团队团队")@RequestParam(required = false)Integer adminTeamCode,
|
|
|
@ApiParam(name="startDate",value="开始时间")@RequestParam(required = false)String startDate,
|
|
|
@ApiParam(name="endDate",value="结束时间")@RequestParam(required = false)String endDate,
|
|
|
@ApiParam(name="page",value="第几页,从1开始")@RequestParam(required = true)Integer page,
|
|
|
@ApiParam(name="size",value="每页大小")@RequestParam(required = true)Integer size){
|
|
|
try {
|
|
|
return write(200,"查询成功","data",customerService.getCallServices(keyword, serverType,state,patientName,ssc,idCard,doctorName, code,adminTeamCode,startDate, endDate, page, size));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"查询失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/getCallServiceInfo", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "协同服务详情")
|
|
|
public String getCallServiceInfo(@ApiParam(name="code",value="协同服务编号")@RequestParam(required = true)String code){
|
|
|
try {
|
|
|
return write(200,"查询成功","data",customerService.getCallServiceInfo(code));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"查询失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/delCallService", method = {RequestMethod.GET, RequestMethod.POST})
|
|
|
@ApiOperation(value = "删除协同服务")
|
|
|
public String delCallService(@ApiParam(name="code",value="协同服务编号")@RequestParam(required = true)String code){
|
|
|
try {
|
|
|
return write(200,"操作成功","data",customerService.delCallService(code));
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1,"操作失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存意见反馈
|
|
|
* @param description
|
|
|
* @param type
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value="saveFeedback", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
public String saveFeedback(@RequestParam(required = true,value="description") String description,
|
|
|
@RequestParam(required = true,value="type") int type,
|
|
|
@RequestParam(required = true,value="patientcode") String patientcode){
|
|
|
try {
|
|
|
feedbackService.saveFeedback(description,type,patientcode);
|
|
|
return write(200,"操作成功!");
|
|
|
}catch (Exception e){
|
|
|
error(e);
|
|
|
return error(-1, "操作失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 设备修改是否跟进状态
|
|
|
*
|
|
|
* @param callCode
|
|
|
* @param followUp
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "updateFollowUpById",method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "修改是否跟进状态")
|
|
|
@ResponseBody
|
|
|
public String updateFollowUpById(@ApiParam(name="callCode",value="通话记录code")@RequestParam(value ="callCode")String callCode,
|
|
|
@ApiParam(name="followUp",value="是否跟进")@RequestParam(value = "followUp",required = false)Integer followUp){
|
|
|
try{
|
|
|
int result = customerService.updateFollowUpById(callCode,followUp);
|
|
|
if (result>0){
|
|
|
return write(200,"保存成功!");
|
|
|
}else if (result==-1){
|
|
|
return write(-1,"超过24h不可修改“无需跟进”状态");
|
|
|
}else {
|
|
|
return write(-1,"保存失败!");
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
return write(-1,"保存失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@ApiOperation("根据身份证号换取居民请求秘钥")
|
|
|
@RequestMapping(value = "/getPatientAccetokenByIdcard", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
public String getPatientAccetokenByIdcard(@ApiParam(name="idcard",value="患者身份证",defaultValue = "")
|
|
|
@RequestParam(value="idcard",required = true) String idcard){
|
|
|
try {
|
|
|
|
|
|
return write(200, "请求成功!", "data", customerService.getPatientAccetokenByIdcard(idcard));
|
|
|
} catch (Exception e) {
|
|
|
return invalidUserException(e, -1, "请求失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "updateCallRecordAndFollowupRecord",method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "更新通话记录和跟进记录")
|
|
|
@ResponseBody
|
|
|
public String updateCallRecordAndFollowupRecord(@ApiParam(name="callCode",value="通话记录code")@RequestParam(value ="callCode")String callCode,
|
|
|
@ApiParam(name="followUp",value="是否跟进")@RequestParam(value = "followUp",required = false)Integer followUp,
|
|
|
@ApiParam(name="serviceType",value="服务类型")@RequestParam(value = "serviceType",required = false)String serviceType,
|
|
|
@ApiParam(name="serviceContent",value="服务内容")@RequestParam(value = "serviceContent",required = false)String serviceContent,
|
|
|
@ApiParam(name="followupRecord",value="跟进记录")@RequestParam(value = "followupRecord",required = false)String followupRecord){
|
|
|
try{
|
|
|
ManageFollowupRecord manageFollowupRecord =objectMapper.readValue(followupRecord,ManageFollowupRecord.class);
|
|
|
int result = customerService.updateCallRecordAndFollowupRecord(callCode,followUp,serviceType,serviceContent,manageFollowupRecord);
|
|
|
if (result>0){
|
|
|
return write(200,"保存成功!");
|
|
|
}else if (result==-1){
|
|
|
return write(-1,"超过24h不可修改“无需跟进”状态");
|
|
|
}else if (result==-2){
|
|
|
return write(-2,"通话记录为空!");
|
|
|
}else {
|
|
|
return write(-2,"保存失败!");
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
return write(-1,"保存失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询跟进记录
|
|
|
*
|
|
|
* @param callCode
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "selectByCode",method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "查询跟进记录")
|
|
|
@ResponseBody
|
|
|
public String selectByCode(@ApiParam(name="callCode",value="通话记录code")@RequestParam(value ="callCode")String callCode){
|
|
|
try{
|
|
|
return write(200, "请求成功!", "data", customerService.selectByCode(callCode));
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
return write(-1,"保存失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
@RequestMapping(value = "selectUser",method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "查询客服人员")
|
|
|
@ResponseBody
|
|
|
public String selectUser(@ApiParam(name="callCode",value="通话记录code")@RequestParam(value ="callCode")String callCode,
|
|
|
@ApiParam(name="flag",value="标识(1管理员,0普通客服)")@RequestParam(value ="flag")Integer flag){
|
|
|
try{
|
|
|
return write(200, "请求成功!", "data", customerService.selectUser(callCode,flag));
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
return write(-1,"保存失败!");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "getVoiceRecord",method = RequestMethod.GET)
|
|
|
@ApiOperation("获取录音记录")
|
|
|
public String getAudioRecord(@ApiParam(name="callerNumber",value="呼叫人电话")@RequestParam(required = false)String callerNumber,
|
|
|
@ApiParam(name="recipientNumber",value="客服座机电话")@RequestParam(required = false)String recipientNumber,
|
|
|
@ApiParam(name="startDate",value="开始时间")@RequestParam(required = false)String startDate,
|
|
|
@ApiParam(name="endDate",value="结束时间")@RequestParam(required = false)String endDate,
|
|
|
@ApiParam(name="page",value="第几页,从1开始")@RequestParam(required = true)Integer page,
|
|
|
@ApiParam(name="size",value="页码大小")@RequestParam(required = true)Integer size) {
|
|
|
try {
|
|
|
return write(200, "请求成功!", "data",customerService.getVoiceRecord(callerNumber,recipientNumber,startDate,endDate,page,size));
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
return write(-1, "查询失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "exportVoiceRecord",method = RequestMethod.POST)
|
|
|
@ApiOperation("导出录音记录")
|
|
|
public void exportVoiceRecord(@ApiParam(name="serialNumber",value="流水号逗号隔开")@RequestParam(required = false)String serialNumber,
|
|
|
@ApiParam(name="callerNumber",value="呼叫人电话")@RequestParam(required = false)String callerNumber,
|
|
|
@ApiParam(name="recipientNumber",value="客服座机电话")@RequestParam(required = false)String recipientNumber,
|
|
|
@ApiParam(name="startDate",value="开始时间")@RequestParam(required = false)String startDate,
|
|
|
@ApiParam(name="endDate",value="结束时间")@RequestParam(required = false)String endDate,
|
|
|
HttpServletResponse httpServletResponse) {
|
|
|
try {
|
|
|
customerService.exportVoiceRecord(serialNumber,callerNumber,recipientNumber,startDate,endDate,httpServletResponse);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "getCallSatisfaction",method = RequestMethod.GET)
|
|
|
@ApiOperation("获取满意度评价记录")
|
|
|
public String getAudioRecord(@ApiParam(name="callerNumber",value="呼叫人电话")@RequestParam(required = false)String callerNumber,
|
|
|
@ApiParam(name="recipientNumber",value="客服座机电话")@RequestParam(required = false)String recipientNumber,
|
|
|
@ApiParam(name="startDate",value="开始时间")@RequestParam(required = false)String startDate,
|
|
|
@ApiParam(name="endDate",value="结束时间")@RequestParam(required = false)String endDate,
|
|
|
@ApiParam(name="satisfaction",value="满意度情况")@RequestParam(required = false)String satisfaction,
|
|
|
@ApiParam(name="page",value="第几页,从1开始")@RequestParam(required = true)Integer page,
|
|
|
@ApiParam(name="size",value="页码大小")@RequestParam(required = true)Integer size) {
|
|
|
try {
|
|
|
return write(200, "请求成功!", "data",customerService.getCallSatisfaction(callerNumber,recipientNumber,startDate,endDate,satisfaction,page,size));
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
return write(-1, "查询失败");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "exportCallSatisfaction",method = RequestMethod.POST)
|
|
|
@ApiOperation("导出满意度评价记录")
|
|
|
public void exportCallSatisfaction(
|
|
|
@ApiParam(name="serialNumber",value="流水号逗号隔开")@RequestParam(required = false)String serialNumber,
|
|
|
@ApiParam(name="callerNumber",value="呼叫人电话")@RequestParam(required = false)String callerNumber,
|
|
|
@ApiParam(name="recipientNumber",value="客服座机电话")@RequestParam(required = false)String recipientNumber,
|
|
|
@ApiParam(name="startDate",value="开始时间")@RequestParam(required = false)String startDate,
|
|
|
@ApiParam(name="endDate",value="结束时间")@RequestParam(required = false)String endDate,
|
|
|
@ApiParam(name="satisfaction",value="满意度情况")@RequestParam(required = false)String satisfaction,
|
|
|
HttpServletResponse httpServletResponse) {
|
|
|
try {
|
|
|
customerService.exportCallSatisfaction(serialNumber,callerNumber,recipientNumber,startDate,endDate,satisfaction,httpServletResponse);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
}
|