DoctorController.java 3.89 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
package com.lyms.talkonlineweb.controller;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lyms.talkonlineweb.domain.LymsDoctor;
import com.lyms.talkonlineweb.domain.LymsHdepart;
import com.lyms.talkonlineweb.result.BaseResponse;
import com.lyms.talkonlineweb.service.LymsDoctorService;
import com.lyms.talkonlineweb.service.LymsHdepartService;
import com.lyms.talkonlineweb.util.Constant;
import com.lyms.talkonlineweb.util.JwtUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

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

/**
* 医生管理
*/
@RestController
@RequestMapping("doctor")
public class DoctorController {

@Autowired
private LymsDoctorService lymsDoctorService;


/**
* 获取医生列表
* @param doctor
* @param current
* @param size
* @return
*/
@GetMapping("sltDoctorLst")
public BaseResponse sltDoctorLst(LymsDoctor doctor, int current, int size){
BaseResponse baseResponse=new BaseResponse();
Page<LymsDoctor> page=new Page<>(current,size);
Page<LymsDoctor> doctorPagePage=lymsDoctorService.page(page, Wrappers.query(doctor).orderByDesc("updated_time","createdtime"));

baseResponse.setObject(doctorPagePage);

return baseResponse;
}



/**
* 保存或更新医生信息
* @param doctor
* @return
*/
@PostMapping("saveDoctor")
public BaseResponse saveDoctor(@Validated LymsDoctor doctor, BindingResult result){
BaseResponse baseResponse=new BaseResponse();
baseResponse.setErrormsg("");
if(doctor.getDid()==null){
doctor.setCreatedtime(new Date());
LymsDoctor depart2=new LymsDoctor();
depart2.setDlogin(doctor.getDlogin());
List<LymsDoctor> dLst=lymsDoctorService.list(Wrappers.query(depart2));
if (dLst.size()>0) {
baseResponse.setErrormsg("不能创建重复账号");
baseResponse.setErrorcode(1);
return baseResponse;
}
}else{
doctor.setUpdatedTime(new Date());
}
if(result.hasErrors()){
baseResponse.setErrorcode(1);
result.getAllErrors().forEach(e->{
baseResponse.setErrormsg(baseResponse.getErrormsg()+e.getDefaultMessage());
});

return baseResponse;
}

boolean f=lymsDoctorService.saveOrUpdate(doctor);
baseResponse.setErrorcode(f==true?0:1);
return baseResponse;
}

/**
* 删除医生
* @param did
* @return
*/
@GetMapping("delDoctor")
public BaseResponse delDoctor(int did){
BaseResponse baseResponse=new BaseResponse();
boolean f=lymsDoctorService.removeById(did);
baseResponse.setErrorcode(f==true?0:1);
return baseResponse;
}

/**
* 医生登录
* @param doctor
* @return
*/
@PostMapping("loginDoctor")
public BaseResponse loginDoctor(@RequestBody LymsDoctor doctor){
BaseResponse baseResponse=new BaseResponse();
List<LymsDoctor> dLst=lymsDoctorService.list(Wrappers.query(doctor));
baseResponse.setErrorcode(1);
if (dLst.size()>0) {
doctor=dLst.get(0);
doctor.setDpasswd(null);
baseResponse.setObject(doctor);
String jwt = JwtUtils.createJWT("1", doctor.getDlogin(), Constant.JWT_TTL);
Map<String,Object> map=new HashMap<>();
map.put("doctor",doctor);
map.put("token",jwt);
baseResponse.setErrorcode(0);
baseResponse.setObject(map);
}
return baseResponse;
}

}