Commit 5f179e2e774b266f9695d7dc89c214055349dfca

Authored by shiyang
1 parent 659916a0e2
Exists in master

小程序多人关注一个病人

Showing 8 changed files with 172 additions and 56 deletions

talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/PatientController.java View file @ 5f179e2
... ... @@ -21,6 +21,7 @@
21 21 import org.springframework.util.DigestUtils;
22 22 import org.springframework.util.StringUtils;
23 23 import org.springframework.validation.BindingResult;
  24 +import org.springframework.validation.ObjectError;
24 25 import org.springframework.validation.annotation.Validated;
25 26 import org.springframework.web.bind.annotation.*;
26 27  
... ... @@ -917,6 +918,7 @@
917 918 * @return
918 919 */
919 920 @PostMapping("signInPatient")
  921 + @TokenRequired
920 922 public BaseResponse signInPatient(@RequestBody LymsPatient patient) {
921 923 BaseResponse baseResponse = new BaseResponse();
922 924 baseResponse.setErrorcode(1);
... ... @@ -936,60 +938,112 @@
936 938 }
937 939 return baseResponse;
938 940 }
939   -// /**
940   -// * 小程序关注患者查询
941   -// *
942   -// * @param patient
943   -// * @return
944   -// */
945   -// @GetMapping("getPatientAttention")
946   -// public BaseResponse getPatientAttention(LymsPatient patient) {
947   -// QueryWrapper<LymsPatient> queryWrapper=new QueryWrapper<>();
948   -// if(StringUtil.isNotEmpty(patient.getIdno())){
949   -// queryWrapper.lambda().eq(LymsPatient::getIdno, patient.getIdno());
950   -// }
951   -// if(StringUtil.isNotEmpty(patient.getEnrolmentPhone())){
952   -// queryWrapper.eq("p.enrolment_phone", patient.getEnrolmentPhone())
953   -// .or().eq("pc.mobile", patient.getEnrolmentPhone());
954   -// }
955   -// //指定返回列
956   -// queryWrapper.lambda().select(LymsPatient::getId,
957   -// LymsPatient::getPname,
958   -// LymsPatient::getSex,
959   -// LymsPatient::getBirth,
960   -// LymsPatient::getIdno,
961   -// LymsPatient::getCreatedtime);
962   -// LymsPatient resultPatient = lymsPatientService.getPatient(queryWrapper);
963   -//
964   -// BaseResponse baseResponse = new BaseResponse();
965   -// baseResponse.setErrorcode(0);
966   -// baseResponse.setObject(resultPatient);
967   -// baseResponse.setErrormsg("成功");
968   -// return baseResponse;
969   -// }
970   -//
971   -// /**
972   -// * 小程序关注的患者列表
973   -// *
974   -// * @param patient
975   -// * @return
976   -// */
977   -// @GetMapping("getPatientAttentionList")
978   -// public BaseResponse getPatientAttentionList(LymsPatientAttention patientAttention) {
979   -// BaseResponse baseResponse = new BaseResponse();
980   -// if (null==patientAttention.getPid()) {
981   -// baseResponse.setErrorcode(1);
982   -// baseResponse.setErrormsg("参数错误");
983   -// return baseResponse;
984   -// }
985   -// QueryWrapper<LymsPatientAttention> queryWrapper=Wrappers.query(patientAttention);
986   -// //指定返回列
987   -// queryWrapper.lambda().select(LymsPatientAttention::getAttentionId);
988   -// List<LymsPatient> ids=lymsPatientAttentionService.listObjs(queryWrapper);
989   -// baseResponse.setErrorcode(0);
990   -// baseResponse.setObject(ids);
991   -// baseResponse.setErrormsg("成功");
992   -// return baseResponse;
993   -// }
  941 + /**
  942 + * 小程序关注患者查询or是否关注过
  943 + *
  944 + * @param patient
  945 + * @return
  946 + */
  947 + @GetMapping("getPatientAttention")
  948 + @TokenRequired
  949 + public BaseResponse getPatientAttention(LymsPatient patient) {
  950 + List<Map> result=new ArrayList<>();
  951 + if(null!=patient.getId()) {
  952 + QueryWrapper<LymsPatient> queryWrapper = new QueryWrapper<>();
  953 + if (StringUtil.isNotEmpty(patient.getIdno())) {
  954 + queryWrapper.eq("p.idno", patient.getIdno());
  955 + }
  956 + if (StringUtil.isNotEmpty(patient.getEnrolmentPhone())) {
  957 + queryWrapper.eq("p.enrolment_phone", patient.getEnrolmentPhone())
  958 + .or().eq("pc.mobile", patient.getEnrolmentPhone());
  959 + }
  960 + //指定返回列
  961 + queryWrapper.lambda().select(LymsPatient::getId,
  962 + LymsPatient::getPname,
  963 + LymsPatient::getSex,
  964 + LymsPatient::getBirth,
  965 + LymsPatient::getIdno,
  966 + LymsPatient::getCreatedtime);
  967 + result = lymsPatientService.getPatient(queryWrapper);
  968 + if (CollectionUtils.isNotEmpty(result)) {
  969 + Iterator<Map> iterator = result.iterator();
  970 + while (iterator .hasNext()) {
  971 + Map map= iterator.next();
  972 + if(map.get("id")==patient.getId()){
  973 + iterator.remove();
  974 + continue;
  975 + }
  976 + QueryWrapper<LymsPatientAttention> queryWrapper2 = new QueryWrapper<>();
  977 + queryWrapper2.lambda().eq(LymsPatientAttention::getPid, patient.getId());
  978 + queryWrapper2.lambda().eq(LymsPatientAttention::getAttentionId, map.get("id"));
  979 + final int count = lymsPatientAttentionService.count(queryWrapper2);
  980 + if (count == 0) {
  981 + map.put("type", 2);//未关注
  982 + } else {
  983 + map.put("type", 1);//已关注
  984 + }
  985 + }
  986 + }
  987 + }
  988 +
  989 + BaseResponse baseResponse = new BaseResponse();
  990 + baseResponse.setErrorcode(0);
  991 + baseResponse.setObject(result);
  992 + baseResponse.setErrormsg("成功");
  993 + return baseResponse;
  994 + }
  995 +
  996 + /**
  997 + * 小程序关注的患者列表
  998 + *
  999 + * @param patient
  1000 + * @return
  1001 + */
  1002 + @GetMapping("getPatientAttentionList")
  1003 + @TokenRequired
  1004 + public BaseResponse getPatientAttentionList(LymsPatientAttention patientAttention) {
  1005 + BaseResponse baseResponse = new BaseResponse();
  1006 + if (null==patientAttention.getPid()) {
  1007 + baseResponse.setErrorcode(1);
  1008 + baseResponse.setErrormsg("参数错误");
  1009 + return baseResponse;
  1010 + }
  1011 + QueryWrapper<LymsPatientAttention> queryWrapper=new QueryWrapper<>();
  1012 + if(null!=patientAttention.getPid()){
  1013 + queryWrapper.eq("pa.pid", patientAttention.getPid());
  1014 + }
  1015 + List<Map> resultList=lymsPatientAttentionService.getPatientList(queryWrapper);
  1016 + baseResponse.setErrorcode(0);
  1017 + baseResponse.setObject(resultList);
  1018 + baseResponse.setErrormsg("成功");
  1019 + return baseResponse;
  1020 + }
  1021 + /**
  1022 + * 小程序关注患者
  1023 + *
  1024 + * @param patient
  1025 + * @return
  1026 + */
  1027 + @PostMapping("addPatientAttention")
  1028 + @TokenRequired
  1029 + public BaseResponse addPatientAttention(@RequestBody @Validated LymsPatientAttention patientAttention,BindingResult bindingResult) {
  1030 + BaseResponse baseResponse = new BaseResponse();
  1031 + //对象验证
  1032 + if(bindingResult.hasErrors()){
  1033 + baseResponse.setErrorcode(1);
  1034 + for (ObjectError allError : bindingResult.getAllErrors()) {
  1035 + baseResponse.setErrormsg((StringUtil.isNotEmpty(baseResponse.getErrormsg())?baseResponse.getErrormsg():"")+allError.getDefaultMessage()+";");
  1036 + }
  1037 + return baseResponse;
  1038 + }
  1039 + final boolean result = lymsPatientAttentionService.save(patientAttention);
  1040 + if(!result){
  1041 + baseResponse.setErrorcode(1);
  1042 + baseResponse.setErrormsg("保存异常!");
  1043 + }
  1044 + baseResponse.setErrorcode(0);
  1045 + baseResponse.setErrormsg("成功");
  1046 + return baseResponse;
  1047 + }
994 1048 }
talkonlineweb/src/main/java/com/lyms/talkonlineweb/domain/LymsPatientAttention.java View file @ 5f179e2
... ... @@ -7,6 +7,8 @@
7 7 import java.io.Serializable;
8 8 import lombok.Data;
9 9  
  10 +import javax.validation.constraints.NotNull;
  11 +
10 12 /**
11 13 * 关注的患者
12 14 * @TableName lyms_patient_attention
13 15  
... ... @@ -18,12 +20,14 @@
18 20 * 患者id
19 21 */
20 22 @TableField(value = "pid")
  23 + @NotNull(message = "pid不能为空")
21 24 private Integer pid;
22 25  
23 26 /**
24 27 * 关注的患者id
25 28 */
26 29 @TableField(value = "attention_id")
  30 + @NotNull(message = "attention_id不能为空")
27 31 private Integer attentionId;
28 32  
29 33 @TableField(exist = false)
talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsPatientAttentionMapper.java View file @ 5f179e2
1 1 package com.lyms.talkonlineweb.mapper;
2 2  
  3 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4 +import com.lyms.talkonlineweb.domain.LymsPatient;
3 5 import com.lyms.talkonlineweb.domain.LymsPatientAttention;
4 6 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  7 +import org.apache.ibatis.annotations.Mapper;
  8 +import org.apache.ibatis.annotations.Param;
  9 +import org.apache.ibatis.annotations.Select;
5 10  
  11 +import java.util.List;
  12 +import java.util.Map;
  13 +
6 14 /**
7 15 * @Entity com.lyms.talkonlineweb.domain.LymsPatientAttention
8 16 */
  17 +@Mapper
9 18 public interface LymsPatientAttentionMapper extends BaseMapper<LymsPatientAttention> {
10 19  
  20 + @Select({
  21 + "<script>",
  22 + "SELECT "+
  23 + "p.id,p.pname,p.idno,p.sex,p.birth,p.createdtime " +
  24 + "FROM "+
  25 + "lyms_patient p "+
  26 + "INNER JOIN lyms_patient_attention pa ON p.id = pa.attention_id "+
  27 + "<where>${ew.sqlSegment}</where> "+
  28 + "</script>"
  29 + })
  30 + List<Map> getPatientList(@Param("ew") QueryWrapper<LymsPatientAttention> ew);
11 31 }
talkonlineweb/src/main/java/com/lyms/talkonlineweb/mapper/LymsPatientMapper.java View file @ 5f179e2
1 1 package com.lyms.talkonlineweb.mapper;
2 2  
  3 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4 import com.lyms.talkonlineweb.domain.LymsPatient;
4 5 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 6 import org.apache.ibatis.annotations.Mapper;
... ... @@ -29,5 +30,16 @@
29 30 "GROUP BY pc.hid\n" +
30 31 "order by pc.createdtime desc")
31 32 List<Map<String,String>> getAppPatientHospital(@Param("patientId") Integer patientId);
  33 +
  34 + @Select({"<script>",
  35 + "SELECT "+
  36 + "p.id,p.pname,p.idno,p.sex,p.birth,p.createdtime " +
  37 + "FROM "+
  38 + "lyms_patient p "+
  39 + "LEFT JOIN lyms_pcase pc ON p.id = pc.pid "+
  40 + "<where>${ew.sqlSegment}</where> "+
  41 + "GROUP BY p.idno "+
  42 + "</script>"})
  43 + List<Map> getPatient(@Param("ew")QueryWrapper ew);
32 44 }
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsPatientAttentionService.java View file @ 5f179e2
1 1 package com.lyms.talkonlineweb.service;
2 2  
  3 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4 +import com.lyms.talkonlineweb.domain.LymsPatient;
3 5 import com.lyms.talkonlineweb.domain.LymsPatientAttention;
4 6 import com.baomidou.mybatisplus.extension.service.IService;
5 7  
  8 +import java.util.List;
  9 +import java.util.Map;
  10 +
6 11 /**
7 12 *
8 13 */
9 14 public interface LymsPatientAttentionService extends IService<LymsPatientAttention> {
10 15  
  16 + List<Map> getPatientList(QueryWrapper<LymsPatientAttention> queryWrapper);
11 17 }
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/LymsPatientService.java View file @ 5f179e2
1 1 package com.lyms.talkonlineweb.service;
2 2  
  3 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4 import com.lyms.talkonlineweb.domain.LymsPatient;
4 5 import com.baomidou.mybatisplus.extension.service.IService;
5 6  
... ... @@ -12,5 +13,7 @@
12 13 public interface LymsPatientService extends IService<LymsPatient> {
13 14  
14 15 List<Map<String,String>> getAppPatientHospital(Integer patientId);
  16 +
  17 + List<Map> getPatient(QueryWrapper queryWrapper);
15 18 }
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsPatientAttentionServiceImpl.java View file @ 5f179e2
1 1 package com.lyms.talkonlineweb.service.impl;
2 2  
  3 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5 +import com.lyms.talkonlineweb.domain.LymsPatient;
4 6 import com.lyms.talkonlineweb.domain.LymsPatientAttention;
5 7 import com.lyms.talkonlineweb.service.LymsPatientAttentionService;
6 8 import com.lyms.talkonlineweb.mapper.LymsPatientAttentionMapper;
  9 +import org.springframework.beans.factory.annotation.Autowired;
7 10 import org.springframework.stereotype.Service;
8 11  
  12 +import java.util.List;
  13 +import java.util.Map;
  14 +
9 15 /**
10 16 *
11 17 */
12 18 @Service
13 19 public class LymsPatientAttentionServiceImpl extends ServiceImpl<LymsPatientAttentionMapper, LymsPatientAttention>
14 20 implements LymsPatientAttentionService{
15   -
  21 + @Autowired
  22 + LymsPatientAttentionMapper lymsPatientAttentionMapper;
  23 + @Override
  24 + public List<Map> getPatientList(QueryWrapper<LymsPatientAttention> queryWrapper) {
  25 + return lymsPatientAttentionMapper.getPatientList(queryWrapper);
  26 + }
16 27 }
talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsPatientServiceImpl.java View file @ 5f179e2
1 1 package com.lyms.talkonlineweb.service.impl;
2 2  
  3 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 5 import com.lyms.talkonlineweb.domain.LymsPatient;
5 6 import com.lyms.talkonlineweb.service.LymsPatientService;
... ... @@ -22,6 +23,11 @@
22 23 @Override
23 24 public List<Map<String,String>> getAppPatientHospital(Integer patientId) {
24 25 return lymsPatientMapper.getAppPatientHospital(patientId);
  26 + }
  27 +
  28 + @Override
  29 + public List<Map> getPatient(QueryWrapper queryWrapper) {
  30 + return lymsPatientMapper.getPatient(queryWrapper);
25 31 }
26 32 }