Prechádzať zdrojové kódy

Merge branch 'dev' of chinawu123/wlyy2.0 into dev

chinawu123 2 rokov pred
rodič
commit
89601e2bb4

+ 42 - 23
svr/svr-base/src/main/java/com/yihu/jw/base/service/ManageMessagePush/ManageSystemPushMessageService.java

@ -191,7 +191,10 @@ public class ManageSystemPushMessageService {
            for (Map<String, Object> map : list) {
                String newContent = content;
                if (StringUtils.containsIgnoreCase(content, "【姓名】")) newContent = newContent.replace("【姓名】", map.get("name").toString());
                if (StringUtils.containsIgnoreCase(content, "【称谓】")) newContent = newContent.replace("【称谓】", "家属");
                if (StringUtils.containsIgnoreCase(content, "【称谓】")) newContent  = newContent.replace("【称谓】","");
                String first  = "您好,朝晖云朝晖向您发送一条通知";
                putTemplateWxMessage.putTemplateWxMessage(wxId,"template_system_family","jsxtxx",map.get("openid").toString(),first,null,null,1,null,newContent,"【推送完成】",DateUtil.getStringDate());
                return;
                //putTemplateWxMessage.putTemplateWxMessage(wxId,"template_fwlx","fwlx",map.get("openid").toString(),null,null,null,1,null,"",newContent,"【推送完成】",DateUtil.getStringDate());
            }
        }
@ -322,28 +325,44 @@ public class ManageSystemPushMessageService {
    private void SystemMessageDOListSave(List<BasePatientDO> basePatientDOS,String content,Integer pushObjectType){
        List<SystemMessageDO> messageDOS = new ArrayList<>();
        for (BasePatientDO basePatientDO : basePatientDOS) {
            String data = content;
            if (StringUtils.containsIgnoreCase(content,"【姓名】"))data = data.replace("【姓名】",basePatientDO.getName());
            if (StringUtils.containsIgnoreCase(content,"【称谓】")&&pushObjectType!=3)data = data.replace("【称谓】",basePatientDO.getSex()==1?"爷爷":"奶奶");
            SystemMessageDO systemMessageDO = new SystemMessageDO();
            systemMessageDO.setId(UUID.randomUUID().toString().replace("-", ""));
            systemMessageDO.setTitle("系统消息推送");
            systemMessageDO.setType("999");
            systemMessageDO.setIsRead("0");
            systemMessageDO.setSender("system");
            systemMessageDO.setSenderName("系统推送助手");
            systemMessageDO.setReceiver(basePatientDO.getId());
            systemMessageDO.setReceiverName(basePatientDO.getName());
            systemMessageDO.setContent(data);
            systemMessageDO.setOver("1");
            systemMessageDO.setDel("1");
            systemMessageDO.setCreateTime(new Date());
            systemMessageDO.setAudioUrl(audioUrl(data));
            systemMessageDO.setUserType(pushObjectType);
            messageDOS.add(systemMessageDO);
            patientMessageSocket(systemMessageDO);
            Boolean flag = true;
            if (3==pushObjectType){
                String sql = "select on_off from base_patient_family_pushonoff where patient = '"+basePatientDO.getId()+"' and  type = 4  ";
                List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
                if (list.size()>0) {
                     flag = list.get(0).get("on_off").toString().equals("1")?true:false;
                }
            }
            if (flag) {
                String data = content;
                if (StringUtils.containsIgnoreCase(content, "【姓名】"))
                    data = data.replace("【姓名】", basePatientDO.getName());
                if (StringUtils.containsIgnoreCase(content, "【称谓】") && pushObjectType != 3){
                    data = data.replace("【称谓】", basePatientDO.getSex() == 1 ? "爷爷" : "奶奶");
                }else {
                    data = data.replace("【称谓】","");
                }
                SystemMessageDO systemMessageDO = new SystemMessageDO();
                systemMessageDO.setId(UUID.randomUUID().toString().replace("-", ""));
                systemMessageDO.setTitle("系统消息推送");
                systemMessageDO.setType("999");
                systemMessageDO.setIsRead("0");
                systemMessageDO.setSender("system");
                systemMessageDO.setSenderName("系统推送助手");
                systemMessageDO.setReceiver(basePatientDO.getId());
                systemMessageDO.setReceiverName(basePatientDO.getName());
                systemMessageDO.setContent(data);
                systemMessageDO.setOver("1");
                systemMessageDO.setDel("1");
                systemMessageDO.setCreateTime(new Date());
                systemMessageDO.setAudioUrl(audioUrl(data));
                systemMessageDO.setUserType(pushObjectType);
                messageDOS.add(systemMessageDO);
                patientMessageSocket(systemMessageDO);
            }
        }
        systemMessageDao.save(messageDOS);
    }

+ 35 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/WxPushEndpoint.java

@ -58,4 +58,39 @@ public class WxPushEndpoint extends EnvelopRestEndpoint {
        }
    }
    @PostMapping(value = "sendFamilyWxTemplate")
    @ApiOperation(value = "发送微信模板消息")
    @ObserverRequired
    public Envelop sendFamilyWxTemplate(@ApiParam(name = "openid", value = "openid")
                                        @RequestParam(value = "openid", required = false) String openid,
                                        @ApiParam(name = "content", value = "发送内容")
                                        @RequestParam(value = "content", required = false) String content,
                                        @ApiParam(name = "contentString", value = "发送类型")
                                        @RequestParam(value = "contentString", required = false) String contentString,
                                        @ApiParam(name = "sessionId", value = "会话id")
                                        @RequestParam(value = "sessionId", required = false) String sessionId,
                                        @ApiParam(name = "title", value = "会话id")
                                        @RequestParam(value = "title", required = false) String title,
                                        @ApiParam(name = "id", value = "居民id")
                                        @RequestParam(value = "id", required = false) String id) {
        try {
            int i = wxPushService.sendFamilyWxTemplate(openid, content, contentString, title, sessionId);
            switch (i){
                case 1:
                    return success("微信模板--发送成功");
                case -1:
                    return success("微信模板--openid 不存在");
                default:
                    return success("微信模板--发送异常");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return failedException2(e);
        }
    }
}

+ 30 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/consult/WxPushService.java

@ -11,6 +11,7 @@ import com.yihu.jw.im.dao.ConsultTeamDao;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@ -83,4 +84,33 @@ public class WxPushService {
        }
    }
    /**
     *居民 p2p
     */
    public int sendFamilyWxTemplate(String openid,String content,String contentString,String first,String sessionId){
        String url = "https://zhyzh.gongshu.gov.cn/medical-care-patient/message/index";
        if (StringUtils.isBlank(openid)) {
            return -1;
        }
        switch (contentString){
            case "[图片]":
                content = "【图片】";
                break;
            case "[语音]":
                content = "【语音】";
                break;
            default:
                break;
        }
        messageUtil.putTemplateWxMessage(wxId, "template_system_family", "jsxtxx", openid, first, url, null, 1, null, content, "推送完成", DateUtil.getStringDate());
        return 1;
    }
}

+ 17 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/PatientMessageService.java

@ -1,7 +1,9 @@
package com.yihu.jw.care.service.message;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.child.BaseChildManageDao;
import com.yihu.jw.care.dao.device.PatientSafeAreaConfirmDao;
import com.yihu.jw.care.dao.device.PatientSafeAreaDao;
import com.yihu.jw.care.dao.log.BaseConsultWaresManageDao;
@ -17,6 +19,7 @@ import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.PatientSafeAreaDO;
import com.yihu.jw.entity.care.message.OrgNoticeDO;
import com.yihu.jw.entity.care.securitymonitoring.BaseEmergencyWarnLogDO;
import com.yihu.jw.entity.child.BaseChildManage;
import com.yihu.jw.entity.child.BaseConsultWaresManageEntity;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.entity.log.BaseFamilyPushOnOffEntity;
@ -355,18 +358,28 @@ public class PatientMessageService {
        baseConsultWaresManageDao.save(entity);
    }
    @Autowired
    private BaseChildManageDao baseChildManageDao;
    //落地页-获取商品文章
    public List<Map<String, Object>> getDeviceArticleList(String id){
        List<Map<String, Object>> list = new ArrayList<>();
        String sql = "";
        if (StringUtils.isNotBlank(id)) {
            sql = "select id,org_name,title,url,img,click,sort,del*1 as del,DATE_FORMAT(create_time,'%Y-%m-%d') as create_time from base_child_manage where type = 5 and del = 1 and id='"+id+"' order by sort";
            sql = "select id,type,org_name,title,url,img,click,sort,del*1 as del,DATE_FORMAT(create_time,'%Y-%m-%d') as create_time from base_child_manage where type = 5 and del = 1 and id='"+id+"' order by sort";
            list = jdbcTemplate.queryForList(sql);
            if (list.size()>0) {
                BaseChildManage baseChildManage = JSONObject.parseObject(JSON.toJSON(list.get(0)).toString(), BaseChildManage.class);
                baseChildManage.setClick(baseChildManage.getClick()+1);
                baseChildManageDao.save(baseChildManage);
            }
        }else {
            sql = "select id,org_name,title,url,img,click,sort,del*1 as del  from base_child_manage where type = 5 and del = 1 order by sort";
            sql = "select *  from base_child_manage where type = 5 and del = 1 order by sort";
            list = jdbcTemplate.queryForList(sql);
        }
        return jdbcTemplate.queryForList(sql);
        return list;
    }

+ 3 - 2
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceUploadService.java

@ -198,7 +198,7 @@ public class DeviceUploadService {
                            messageFamilyDO.setSender("system");
                            messageFamilyDO.setSenderName("养护助手");
                            messageFamilyDO.setRelationCode(result.getId() + "");
                            messageFamilyDO.setReceiver(family.get("code").toString());
                            messageFamilyDO.setReceiver(family.get("id").toString());
                            messageFamilyDO.setReceiverName(family.get("name").toString());
                            messageFamilyDO.setUserType(3);
                            messageFamilyDO.setIsRead("0");
@ -221,7 +221,8 @@ public class DeviceUploadService {
                                }
                                //o_DJs59V7MKJ5ea-YW__LoccEn50
                                messageUtil.putTemplateWxMessage(wxId, "template_system_family", "jsxtxx", family.get("openid").toString(), first, null, null, 1, null, content,"推送完成", DateUtil.getStringDate());
                                String url = "https://zhyzh.gongshu.gov.cn/medical-care-patient/healthRecords/detail?patientId="+patientDO.getId()+"&type="+type+"";
                                messageUtil.putTemplateWxMessage(wxId, "template_system_family", "jsxtxx", family.get("openid").toString(), first, url, null, 1, null, content,"推送完成", DateUtil.getStringDate());
                            }
                        }

+ 1 - 1
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/pushRecord/PushRecordJob.java

@ -127,7 +127,7 @@ public class PushRecordJob implements Job {
        String first = "您好,朝晖云朝晖向您发送一条通知";
        if (list.size()>0) {
            for (Map<String, Object> map : list) {
                messageUtil.putTemplateWxMessage(wxId,"template_system_family","jsxtxx",map.get("opined").toString(),first,null,null,1,null,"",content,"【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
                messageUtil.putTemplateWxMessage(wxId,"template_system_family","jsxtxx",map.get("opined").toString(),first,null,null,1,null,content,"【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
            }
        }
    }

+ 56 - 27
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/WechatPushService.java

@ -60,16 +60,35 @@ public class WechatPushService {
    }
    private void wxPush(String openid,JSONObject watch,String online,String name){
        if (name.equals("姜云")){
        String first = "您好,您的亲属【"+name+"】当前设备状态如下";
        String content = "智能手表:"+watch.get("WatchWear")+"\r\n智能手表:"+watch.get("WatchWear")+"\r\n离线设备:"+online;
       messageUtil.putTemplateWxMessage(wxId,"template_system_family","jsxtxx",openid,first,null,null,1,null,"",content,"【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
        String content = "智能手表:"+watch.get("WatchWear")+"\r\n智能手表:"+watch.get("pwoer")+"\r\n离线设备:"+online;
        String url = "https://zhyzh.gongshu.gov.cn/medical-care-patient/healthRecords/index?active=1";
        //o_DJs59V7MKJ5ea-YW__LoccEn50
           messageUtil.putTemplateWxMessage(wxId,"template_system_family","jsxtxx",openid,first,url,null,1,null,content,"【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
        }
    }
    //查找有openid 的家属
    private List<BasePatientDO> faminlyPatientList() {
        String faminlySql = "SELECT * FROM base_patient where archive_type = 3 and openid is not null ";
        /*List <BasePatientDO> entity = new ArrayList<>();
        BasePatientDO basePatientDO = new BasePatientDO();
        basePatientDO.setId("8a92aba97d329802017d32a6edfe000a");
        basePatientDO.setIdcard("110101199001230123");
        basePatientDO.setName("张静");
        basePatientDO.setSex(2);
        basePatientDO.setMobile("16600000001");
        basePatientDO.setPhoto("group1/M00/00/04/ChIrKGIxs1GAWIcPAAAqrjvtn6Q615.png");
        basePatientDO.setDel("1");
        basePatientDO.setArchiveType(3);
        basePatientDO.setOpenid("o_DJs59V7MKJ5ea-YW__LoccEn50");
        entity.add(basePatientDO);*/
        return jdbcTemplate.query(faminlySql, new BeanPropertyRowMapper<>(BasePatientDO.class));
        //return entity;
    }
@ -154,32 +173,41 @@ public class WechatPushService {
                    }
                    String onOffsql = "select on_off from base_patient_family_pushonoff where patient = '" + family.getId() + "' and type = 2 ";
                    List<Map<String, Object>> onOffList = jdbcTemplate.queryForList(onOffsql);
                    if (onOffList.size() > 0) {
                        if (Integer.parseInt(onOffList.get(0).get("on_off").toString()) == 1 ? true : false) {
                            SystemMessageDO familyMessageDO = new SystemMessageDO();
                            String familyMessageName = "{ \"name\":\"" + patient.getName() + "\"," +
                                    "  \"deviceCode\": \"" + deviceDO.getCategoryCode() + "\"," +
                                    "  \"patient\": \"" + patient.getId() + "\"," +
                                    "  \"deviceName\":\"" + deviceName + "\"," +
                                    "  \"deviceSn\":\"" + deviceSn + "\" " +
                                    "}\n";
                            //家属推送消息
                            familyMessageDO.setUserType(3);
                            familyMessageDO.setContent("您亲属绑定的【" + deviceName + "】处于离线状态,为保证老人安全,请确保设备正确连接。");
                            familyMessageDO.setDel("1");
                            familyMessageDO.setOver("1");
                            familyMessageDO.setType("994");
                            familyMessageDO.setIsRead("0");
                            familyMessageDO.setTitle("设备离线通知");
                            familyMessageDO.setSender("system");
                            familyMessageDO.setSenderName("设备离线通知助手");
                            familyMessageDO.setReceiver(family.getId());
                            familyMessageDO.setReceiverName(family.getName());
                            familyMessageDO.setData(familyMessageName);
                            familyMessageDO.setCreateTime(new Date());
                            familyMessageList.add(familyMessageDO);
                            delDeviceMessage(family.getId(), "994");
                        }
                    }
                    String familyMessageName = "{ \"name\":\""+patient.getName()+"\"," +
                            "  \"deviceCode\": \""+deviceDO.getCategoryCode()+"\"," +
                            "  \"deviceName\":\""+deviceName+"\"," +
                            "  \"deviceSn\":\""+deviceSn+"\" " +
                            "}\n";
                    SystemMessageDO familyMessageDO = new SystemMessageDO();
                    //家属推送消息
                    familyMessageDO.setUserType(3);
                    familyMessageDO.setContent("您亲属绑定的【" + deviceName + "】处于离线状态,为保证老人安全,请确保设备正确连接。");
                    familyMessageDO.setDel("1");
                    familyMessageDO.setOver("1");
                    familyMessageDO.setType("994");
                    familyMessageDO.setIsRead("0");
                    familyMessageDO.setTitle("设备离线通知");
                    familyMessageDO.setSender("system");
                    familyMessageDO.setSenderName("设备离线通知助手");
                    familyMessageDO.setReceiver(family.getId());
                    familyMessageDO.setReceiverName(family.getName());
                    familyMessageDO.setData(familyMessageName);
                    familyMessageDO.setCreateTime(new Date());
                    familyMessageList.add(familyMessageDO);
                    delDeviceMessage(family.getId(), "994");
                }
            }
        }
@ -222,6 +250,7 @@ public class WechatPushService {
            }
        } else {
            result.put("WatchWear", "无手表");
            result.put("pwoer", "无手表");
        }
        return result;
    }

+ 5 - 3
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/util/DeviceLostMessageUtil.java

@ -250,7 +250,7 @@ public class DeviceLostMessageUtil {
    private List<Map<String, Object>> faminlyPatientList(String patientId){
        String faminlySql = "SELECT p.patient,p.name,p.openid FROM base_patient p INNER JOIN base_patient_family_member m ON p.id = m.patient WHERE m.patient = '"+patientId+"' AND m.del AND p.archive_type = 3 ";
        String faminlySql = "SELECT p.id,p.name,p.openid FROM base_patient p INNER JOIN base_patient_family_member m ON p.id = m.patient WHERE m.patient = '"+patientId+"' AND m.del AND p.archive_type = 3 ";
        return jdbcTemplate.queryForList(faminlySql);
    }
@ -297,8 +297,9 @@ public class DeviceLostMessageUtil {
                for (Map<String, Object> familys : familyListMap) {
                    if (systemPushMessageUtil.familyMessagePushOnOff(familys.get("patient").toString(), 2)) {
                        String familyMessageName = "{ \"name\":\""+familys.get("name").toString()+"\"," +
                        String familyMessageName = "{ \"name\":\""+jsonObject.getString("name")+"\"," +
                                "  \"deviceName\":\"智能手表\"," +
                                "  \"patient\":\""+jsonObject.getString("patient")+"\"," +
                                "  \"deviceSn\":\""+jsonObject.getString("device_sn")+"\" " +
                                "}\n";
@ -432,10 +433,11 @@ public class DeviceLostMessageUtil {
                        List<Map<String, Object>> familyList = faminlyPatientList(jsonObject.getString("patient"));
                        if (familyList.size() > 0) {
                            for (Map<String, Object> map : familyList) {
                                if (systemPushMessageUtil.familyMessagePushOnOff(map.get("patient").toString(), 2)) {
                                if (systemPushMessageUtil.familyMessagePushOnOff(map.get("id").toString(), 2)) {
                                    String familyMessageName = "{ \"name\":\""+map.get("name").toString()+"\"," +
                                            "  \"deviceName\":\"智能手表\"," +
                                            "  \"patient\":\""+map.get("id").toString()+"\"," +
                                            "  \"deviceSn\":\""+jsonObject.getString("device_sn")+"\" " +
                                            "}\n";