|  | @ -9,11 +9,14 @@ import com.yihu.wlyy.service.common.account.DoctorService;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.service.common.account.PatientService;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.task.PushMsgTask;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.util.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.util.ElasticsearchUtil;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.util.ImUtill;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.web.WeixinBaseController;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.web.third.gateway.service.GcEduArticleService;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.web.third.gateway.vo.HealthEduArticlePatientModel;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.web.third.gateway.vo.base.BaseResultModel;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.web.third.gateway.vo.base.ResultBatchModel;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.web.third.gateway.vo.base.ResultPageListModel;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils;
 | 
	
		
			
				|  |  | import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
	
		
			
				|  | @ -50,16 +53,9 @@ public class GcEduArticleController extends WeixinBaseController {
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private ConsultService consultService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private DoctorService doctorService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private SignPatientLabelInfoService signPatientLabelInfoService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private SignFamilyDao signFamilyDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private GcEduArticleService gcEduArticleService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param doctorCode
 | 
	
		
			
				|  |  |      * @param page
 | 
	
		
			
				|  |  |      * @param pagesize
 | 
	
	
		
			
				|  | @ -68,53 +64,37 @@ public class GcEduArticleController extends WeixinBaseController {
 | 
	
		
			
				|  |  |     @RequestMapping(value = "logs", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     @ApiOperation("查询医生给患者推送记录 ")
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     public String getPatientHealthLogs(
 | 
	
		
			
				|  |  |     public ResultPageListModel<HealthEduArticlePatientModel> getPatientHealthLogs(
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleType", value = "文章类别", required = false) @RequestParam(value = "articleType", required = false) String articleType,
 | 
	
		
			
				|  |  |             @ApiParam(name = "level1Type", value = "一级分类", required = false) @RequestParam(value = "level1Type", required = false) String level1Type,
 | 
	
		
			
				|  |  |             @ApiParam(name = "level2Type", value = "二级分类", required = false) @RequestParam(value = "level2Type", required = false) String level2Type,
 | 
	
		
			
				|  |  |             @ApiParam(name = "level", value = "等级", required = false) @RequestParam(value = "level", required = false) String level,
 | 
	
		
			
				|  |  |             @ApiParam(name = "doctorCode", value = "医生code,为空从useragent取", required = false) @RequestParam(value = "doctorCode", required = false) String doctorCode,
 | 
	
		
			
				|  |  |             @ApiParam(name = "page", value = "当前页 起始1", required = false) @RequestParam(value = "page", required = false) int page,
 | 
	
		
			
				|  |  |             @ApiParam(name = "pagesize", value = "每页显示条数", required = false) @RequestParam(value = "pagesize", required = false) int pagesize) {
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleTitle", value = "文章标题", required = false) @RequestParam(value = "articleTitle", required = false) String articleTitle,
 | 
	
		
			
				|  |  |             @ApiParam(name = "startTime", value = "开始时间yyyy-Mm-dd", required = false) @RequestParam(value = "startTime", required = false) String startTime,
 | 
	
		
			
				|  |  |             @ApiParam(name = "endTime", value = "结束时间yyyy-Mm-dd", required = false) @RequestParam(value = "endTime", required = false) String endTime,
 | 
	
		
			
				|  |  |             @ApiParam(name = "page", value = "当前页 起始1", required = true) @RequestParam(value = "page", required = true) Integer page,
 | 
	
		
			
				|  |  |             @ApiParam(name = "pagesize", value = "每页显示条数", required = true) @RequestParam(value = "pagesize", required = true) Integer pagesize) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             if(org.springframework.util.StringUtils.isEmpty(doctorCode)){
 | 
	
		
			
				|  |  |                 doctorCode=getUID();
 | 
	
		
			
				|  |  |             if (org.springframework.util.StringUtils.isEmpty(doctorCode)) {
 | 
	
		
			
				|  |  |                 doctorCode = getUID();
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //List<Map<String, Object>> result = gcEduArticleService.findByDoctor(doctorCode, page, pagesize);
 | 
	
		
			
				|  |  |             return write(200, "查询成功!", "list", "");
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return write(-1, "查询失败!");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param articleCodes
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "articleSendNums", method = RequestMethod.POST)
 | 
	
		
			
				|  |  |     @ApiOperation("文章的推送次数 ")
 | 
	
		
			
				|  |  |     @ResponseBody
 | 
	
		
			
				|  |  |     public String articleSendNums(
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleCodes", value = "文章codes 多个逗号分割", required = false) @RequestParam(value = "articleCodes", required = false) String articleCodes) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //List<Map<String, Object>> result = gcEduArticleService.findByDoctor(doctorCode, page, pagesize);
 | 
	
		
			
				|  |  |             return write(200, "查询成功!", "list", "");
 | 
	
		
			
				|  |  |             List<HealthEduArticlePatientModel> eduArticlePatients = gcEduArticleService.getPatientHealthLogs(getUID(), articleType, level1Type, level2Type, level, articleTitle, startTime, endTime, page, pagesize);
 | 
	
		
			
				|  |  |             Long count = gcEduArticleService.getPatientHealthLogsCount(getUID(), articleType, level1Type, level2Type, level, articleTitle, startTime, endTime);
 | 
	
		
			
				|  |  |             return new ResultPageListModel(
 | 
	
		
			
				|  |  |                     page,
 | 
	
		
			
				|  |  |                     pagesize,
 | 
	
		
			
				|  |  |                     count.intValue()
 | 
	
		
			
				|  |  |                     , eduArticlePatients);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             return write(-1, "查询失败!");
 | 
	
		
			
				|  |  |             return new ResultPageListModel(BaseResultModel.statusEm.find_error.getCode(), BaseResultModel.statusEm.find_error.getMessage() + "," + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 参考原来的教育文章推送
 | 
	
		
			
				|  |  |      * * 参考原来的教育文章推送
 | 
	
		
			
				|  |  |      * http://172.19.103.88:9092/wlyy//doctor/health/edu/send?code=2e6467b5bb2f4b81b598633624d7f98e&patient=e911d1b756cd4680ab241ab76a463282&teamCode=1&attachedContent=
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param sendCode
 | 
	
		
			
				|  |  |      * @param sendName
 | 
	
		
			
				|  |  |      * @param sendMessage
 | 
	
		
			
				|  |  |      * @param labelCode
 | 
	
		
			
				|  |  |      * @param labelType
 | 
	
		
			
				|  |  |      * @param teamId
 | 
	
		
			
				|  |  |      * @param receiveCodes
 | 
	
		
			
				|  |  |      * @param articleIds
 | 
	
		
			
				|  |  |      * @param articlePics
 | 
	
		
			
				|  |  |      * @param articleTitles
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     @RequestMapping(value = "send", method = RequestMethod.POST)
 | 
	
	
		
			
				|  | @ -129,26 +109,24 @@ public class GcEduArticleController extends WeixinBaseController {
 | 
	
		
			
				|  |  |             @ApiParam(name = "labelType", value = "标签类型  1:服务类型(卫计委分组) 2:健康情况 3:疾病类型 4:团队标签(自定义标签)", required = true) @RequestParam(value = "labelType", required = false, defaultValue = "") String labelType,
 | 
	
		
			
				|  |  |             @ApiParam(name = "receiveCodes", value = "接收人code,多个逗号分割", required = false) @RequestParam(value = "receiveCodes", required = false, defaultValue = "") String receiveCodes,
 | 
	
		
			
				|  |  |             @ApiParam(name = "unReceiveCodes", value = "不接收人code,多个逗号分割(如果同时存在receiveCodes和unReceiveCodes,也不会发送)", required = false) @RequestParam(value = "unReceiveCodes", required = false, defaultValue = "") String unReceiveCodes,
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleIds", value = "文章ID,多个逗号分割", required = true) @RequestParam(value = "articleIds", required = true) String articleIds,
 | 
	
		
			
				|  |  |             @ApiParam(name = "articlePics", value = "文章封面,多个逗号分割", required = true) @RequestParam(value = "articlePics", required = true) String articlePics,
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleTitles", value = "文章标题,多个逗号分割", required = true) @RequestParam(value = "articleTitles", required = true) String articleTitles,
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleContents", value = "文章内容,多个逗号分割", required = true) @RequestParam(value = "articleTitles", required = true) String articleContents
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleId", value = "文章ID", required = true) @RequestParam(value = "articleId", required = true) String articleId,
 | 
	
		
			
				|  |  |             @ApiParam(name = "articlePic", value = "文章封面", required = true) @RequestParam(value = "articlePic", required = true) String articlePic,
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleTitle", value = "文章标题", required = true) @RequestParam(value = "articleTitle", required = true) String articleTitle,
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleContent", value = "文章内容", required = true) @RequestParam(value = "articleContent", required = true) String articleContent,
 | 
	
		
			
				|  |  |             @ApiParam(name = "articleType", value = "文章类别", required = true) @RequestParam(value = "articleType", required = true) String articleType,
 | 
	
		
			
				|  |  |             @ApiParam(name = "level1Type", value = "一级分类", required = true) @RequestParam(value = "level1Type", required = true) String level1Type,
 | 
	
		
			
				|  |  |             @ApiParam(name = "level2Type", value = "二级分类", required = true) @RequestParam(value = "level2Type", required = true) String level2Type,
 | 
	
		
			
				|  |  |             @ApiParam(name = "level", value = "等级", required = true) @RequestParam(value = "level", required = true) String level
 | 
	
		
			
				|  |  |     ) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             String[] patients = receiveCodes.split(",");//接收人的code
 | 
	
		
			
				|  |  |             String[] unPatients = unReceiveCodes.split(",");//接收人的code
 | 
	
		
			
				|  |  |             Set<String> patientSet = new HashSet<>(); //放入set中可以去重复
 | 
	
		
			
				|  |  |             String[] articleIdArr = articleIds.split(",");
 | 
	
		
			
				|  |  |             String[] articlePicArr = articlePics.split(",");
 | 
	
		
			
				|  |  |             String[] articleTitleArr = articleTitles.split(",");
 | 
	
		
			
				|  |  |             String[] articleContentArr=articleContents.split(",");
 | 
	
		
			
				|  |  |             if ((articleIdArr.length != articlePicArr.length) || (articleIdArr.length != articleTitleArr.length) || (articlePicArr.length != articleTitleArr.length)) {
 | 
	
		
			
				|  |  |                 return new ResultBatchModel(BaseResultModel.statusEm.opera_error.getCode(), BaseResultModel.statusEm.opera_error.getMessage() + ":文章参数长度错误");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //得到需要发送的患者
 | 
	
		
			
				|  |  |             gcEduArticleService.initPatient(patientSet, patients, unPatients, labelType, labelCode, teamId);
 | 
	
		
			
				|  |  |             //保存发送记录
 | 
	
		
			
				|  |  |             List<com.yihu.es.entity.HealthEduArticlePatient> healthEduArticlePatients = gcEduArticleService.saveArticle(patientSet, sendCode, sendName, sendType,sendMessage, teamId, articleIdArr, articlePicArr, articleTitleArr,articleContentArr);
 | 
	
		
			
				|  |  |             List<com.yihu.es.entity.HealthEduArticlePatient> healthEduArticlePatients = gcEduArticleService.saveArticle(patientSet, sendCode, sendName, sendType, sendMessage, teamId, articleId, articlePic, articleTitle, articleContent, articleType, level1Type, level2Type, level);
 | 
	
		
			
				|  |  |             //推送微信模板消息和发送im消息
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             sendWxTemplateAndIM(healthEduArticlePatients, sendType);
 | 
	
	
		
			
				|  | @ -166,7 +144,7 @@ public class GcEduArticleController extends WeixinBaseController {
 | 
	
		
			
				|  |  |         healthEduArticlePatients.stream().forEach(one -> {
 | 
	
		
			
				|  |  |             Patient patient = patientService.findByCode(one.getPatient());
 | 
	
		
			
				|  |  |             //卫纪委发送不推IM
 | 
	
		
			
				|  |  |             if (1==sendType) {
 | 
	
		
			
				|  |  |             if (1 == sendType) {
 | 
	
		
			
				|  |  |                 consultService.sendMucMessageBySingnType(one.getSendCode(), one.getSendName(), patient.getCode(), "{\"title\":\"" + one.getAttachedTitle() + "\",\"type\":0,\"id\":\"" + one.getId() + "\",\"img\":\"" + one.getAttachedPic() + "\",\"content\":\"为了您的健康,我给您发送了一篇文章,请咨询查阅,如有问题,可随时与我沟通\"}", "4", patient.getName());
 | 
	
		
			
				|  |  |                 if (StringUtils.isNotBlank(one.getAttachedMessage())) {
 | 
	
		
			
				|  |  |                     //发送备注
 | 
	
	
		
			
				|  | @ -175,7 +153,7 @@ public class GcEduArticleController extends WeixinBaseController {
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             // 推送消息给微信端
 | 
	
		
			
				|  |  |             JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |             json.put("first", patient.getName() + ",您好!\n" + one.getSendName() + "医生给您发来了一篇患教文章");
 | 
	
		
			
				|  |  |             json.put("first", patient.getName() + ",您好! " + one.getSendName() + "医生给您发来了一篇患教文章");
 | 
	
		
			
				|  |  |             json.put("toUser", patient.getCode());
 | 
	
		
			
				|  |  |             json.put("article", one.getId() + "");
 | 
	
		
			
				|  |  |             json.put("title", one.getAttachedTitle());
 |