|  | @ -0,0 +1,239 @@
 | 
	
		
			
				|  |  | package com.yihu.wlyy.web.doctor.template;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.fasterxml.jackson.databind.ObjectMapper;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.entity.patient.PatientHealthStandard;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.entity.template.DoctorTeamGuidanceDetail;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.health.entity.DevicePatientHealthIndex;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.service.app.health.PatientHealthIndexService;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.service.app.team.AdminTeamService;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.service.template.DoctorTeamGuidanceService;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.util.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.util.SystemConf;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.web.BaseController;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.web.WeixinBaseController;
 | 
	
		
			
				|  |  | import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | import org.apache.commons.lang3.math.NumberUtils;
 | 
	
		
			
				|  |  | import org.json.JSONArray;
 | 
	
		
			
				|  |  | import org.json.JSONObject;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.http.MediaType;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Controller;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.RequestMapping;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.RequestMethod;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.RequestParam;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.ResponseBody;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.util.*;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * 医生端、后端团队指导模板控制类
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @Controller
 | 
	
		
			
				|  |  | @RequestMapping(value = "/doctor/team/guidance", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 | 
	
		
			
				|  |  | @Api(description = "医生端&后端团队指导模板")
 | 
	
		
			
				|  |  | public class DoctorTeamGuidanceController extends WeixinBaseController {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private AdminTeamService adminTeamService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private DoctorTeamGuidanceService doctorTeamGuidanceService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private ObjectMapper objectMapper;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取医生所属的所有团队
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/getDoctorTeams", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     @ApiOperation("获取医生所属的所有团队")
 | 
	
		
			
				|  |  |     public String getHealthIndexHistory() {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             String doctorCode = getUID();
 | 
	
		
			
				|  |  |             List<AdminTeam> doctorTeams = adminTeamService.getDoctorTeams(doctorCode);
 | 
	
		
			
				|  |  |             List teamList = new ArrayList();
 | 
	
		
			
				|  |  |             for (AdminTeam AdminTeam : doctorTeams) {
 | 
	
		
			
				|  |  |                 Map map = new HashMap();
 | 
	
		
			
				|  |  |                 String teamName = AdminTeam.getName();
 | 
	
		
			
				|  |  |                 Long teamId = AdminTeam.getId();
 | 
	
		
			
				|  |  |                 map.put("teamName", teamName);
 | 
	
		
			
				|  |  |                 map.put("teamId", teamId);
 | 
	
		
			
				|  |  |                 teamList.add(map);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             return write(200, "获取医生所属团队成功!", "teamList", teamList);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return invalidUserException(e, -1, e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 根据医生所属的单个团队获取团队模板列表
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param teamId
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/getTeamGuidanceList", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     @ApiOperation("获取单个团队模板列表")
 | 
	
		
			
				|  |  |     public String getTeamGuidanceList(@RequestParam int teamId,
 | 
	
		
			
				|  |  |                                       @RequestParam int pageNo,
 | 
	
		
			
				|  |  |                                       @RequestParam int pageSize) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             List list = doctorTeamGuidanceService.getTeamGuidanceList(teamId, pageNo-1, pageSize);
 | 
	
		
			
				|  |  |             return write(200, "获取团队模板列表成功!", "templateList", list);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return invalidUserException(e, -1, e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 根据团队模板编码获取单个模板详情
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/getTeamGuidanceDetail", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     @ApiOperation("获取单个模板详情")
 | 
	
		
			
				|  |  |     public String getTeamGuidanceDetail(
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队模板编码")
 | 
	
		
			
				|  |  |             @RequestParam String teamTemplateCode) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             DoctorTeamGuidanceDetail guidanceDetail = doctorTeamGuidanceService.getTeamGuidanceDetail(teamTemplateCode);
 | 
	
		
			
				|  |  |             return write(200, "获取模板详情成功!", "guidanceDetail", guidanceDetail);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return invalidUserException(e, -1, e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 新增团队模板
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param title    模板标题要排重,团队内不可重复
 | 
	
		
			
				|  |  |      * @param teamInfo 该模板所属的团队ID及名称 可能会有多个
 | 
	
		
			
				|  |  |      * @param content  模板内容,前端限10000,后端无限制
 | 
	
		
			
				|  |  |      * @param images   多图以,分隔,取值1-9图,
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/saveTeamGuidance", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     @ApiOperation("新增团队模板")
 | 
	
		
			
				|  |  |     public String saveTeamGuidance(
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队模板标题")
 | 
	
		
			
				|  |  |             @RequestParam String title,
 | 
	
		
			
				|  |  |             @ApiParam(value = "所属团队ID及名称json串", defaultValue = "[{\"teamName\":\"一农\",\"teamId\":212},{\"teamName\":\"一\",\"teamId\":21}]")
 | 
	
		
			
				|  |  |             @RequestParam String teamInfo,
 | 
	
		
			
				|  |  |             @ApiParam(value = "模板内容")
 | 
	
		
			
				|  |  |             @RequestParam String content,
 | 
	
		
			
				|  |  |             @ApiParam(value = "图片路径")
 | 
	
		
			
				|  |  |             @RequestParam String images
 | 
	
		
			
				|  |  |     ) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  | //            前端参数校验
 | 
	
		
			
				|  |  |             String doctor = getUID();
 | 
	
		
			
				|  |  |             JSONArray teams = new JSONArray(teamInfo);
 | 
	
		
			
				|  |  |             doctorTeamGuidanceService.saveTeamGuidance(doctor, title, teams, content, images);
 | 
	
		
			
				|  |  |             return write(200, "保存团队模板成功!");
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return invalidUserException(e, -1, e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 修改团队模板
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param saveAsGuidance 团队模板是否保存为个人模板 0否 1是
 | 
	
		
			
				|  |  |      * @param title          模板标题要排重,团队内不可重复
 | 
	
		
			
				|  |  |      * @param teamInfo       该模板所属的团队ID及名称 可能会有多个
 | 
	
		
			
				|  |  |      * @param content        模板内容,前端限10000,后端无限制
 | 
	
		
			
				|  |  |      * @param images         多图以,分隔,取值0-9图,
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/modifyTeamGuidance", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     @ApiOperation("修改团队模板")
 | 
	
		
			
				|  |  |     public String modifyTeamGuidance(
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队模板团队模板是否保存为个人模板", defaultValue = "0")
 | 
	
		
			
				|  |  |             @RequestParam int saveAsGuidance,
 | 
	
		
			
				|  |  |             @ApiParam(value = "要修改的团队模板编号")
 | 
	
		
			
				|  |  |             @RequestParam String guidanceCode,
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队模板标题")
 | 
	
		
			
				|  |  |             @RequestParam String title,
 | 
	
		
			
				|  |  |             @ApiParam(value = "所属团队ID及名称json串", defaultValue = "[{\"teamName\":\"一农\",\"teamId\":212},{\"teamName\":\"一\",\"teamId\":21}]")
 | 
	
		
			
				|  |  |             @RequestParam(required = false) String teamInfo,
 | 
	
		
			
				|  |  |             @ApiParam(value = "模板内容")
 | 
	
		
			
				|  |  |             @RequestParam String content,
 | 
	
		
			
				|  |  |             @ApiParam(value = "图片路径")
 | 
	
		
			
				|  |  |             @RequestParam(required = false) String images) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             String doctor = getUID();
 | 
	
		
			
				|  |  |             JSONArray teams = new JSONArray(teamInfo);
 | 
	
		
			
				|  |  |             doctorTeamGuidanceService.modifyTeamGuidance(doctor, saveAsGuidance, guidanceCode, title, teams, content, images);
 | 
	
		
			
				|  |  |             return write(200, "修改团队模板成功!");
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return invalidUserException(e, -1, e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 删除团队所属的团队模板
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param teamId
 | 
	
		
			
				|  |  |      * @param guidanceCode
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/deleteTeamGuidance", method = RequestMethod.GET)
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     @ApiOperation("删除团队所属的团队模板")
 | 
	
		
			
				|  |  |     public String deleteTeamGuidance(
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队ID")
 | 
	
		
			
				|  |  |             @RequestParam int teamId,
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队模板编码")
 | 
	
		
			
				|  |  |             @RequestParam String guidanceCode) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             doctorTeamGuidanceService.deleteTeamGuidance(teamId, guidanceCode);
 | 
	
		
			
				|  |  |             return write(200, "删除模板成功!");
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return invalidUserException(e, -1, e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 发送团队模板给居民
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param content
 | 
	
		
			
				|  |  |      * @param guidanceCode
 | 
	
		
			
				|  |  |      * @param images
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "/sendTeamGuidance", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     @ApiOperation("发送团队模板给居民")
 | 
	
		
			
				|  |  |     public String sendTeamGuidance(
 | 
	
		
			
				|  |  |             @ApiParam(value = "要发送的居民code")
 | 
	
		
			
				|  |  |             @RequestParam String patient,
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队模板内容")
 | 
	
		
			
				|  |  |             @RequestParam String content,
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队id")
 | 
	
		
			
				|  |  |             @RequestParam int teamId,
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队模板code")
 | 
	
		
			
				|  |  |             @RequestParam String guidanceCode,
 | 
	
		
			
				|  |  |             @ApiParam(value = "团队模板图片")
 | 
	
		
			
				|  |  |             @RequestParam(required = false) String images) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             String accessToken = getAccessToken();
 | 
	
		
			
				|  |  |             String doctor = getUID();
 | 
	
		
			
				|  |  |             doctorTeamGuidanceService.sendTeamGuidance(accessToken,doctor,patient,content, guidanceCode,images,teamId);
 | 
	
		
			
				|  |  |             return write(200, "发送成功!");
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return invalidUserException(e, -1, e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |