wangzhinan 4 years ago
parent
commit
d09e2aee3d

+ 10 - 0
business/base-service/pom.xml

@ -197,6 +197,16 @@
            <version>2.0.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>cn.jpush.api</groupId>
            <artifactId>jiguang-common</artifactId>
            <version>1.1.9</version>
        </dependency>
        <dependency>
            <groupId>cn.jpush.api</groupId>
            <artifactId>jpush-client</artifactId>
            <version>3.4.8</version>
        </dependency>
    </dependencies>
    <build>

+ 56 - 43
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -1,5 +1,18 @@
package com.yihu.jw.hospital.prescription.service;
import cn.jiguang.common.ClientConfig;
import cn.jiguang.common.resp.APIConnectionException;
import cn.jiguang.common.resp.APIRequestException;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Message;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.audience.AudienceTarget;
import cn.jpush.api.push.model.notification.AndroidNotification;
import cn.jpush.api.push.model.notification.IosNotification;
import cn.jpush.api.push.model.notification.Notification;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.dict.dao.*;
@ -84,10 +97,8 @@ import com.yihu.jw.util.wechat.WeixinMessagePushUtils;
import com.yihu.jw.utils.*;
import com.yihu.jw.utils.Pkis.PKIService_PortType;
import com.yihu.jw.utils.Pkis.PKIService_ServiceLocator;
import com.yihu.jw.utils.encode.*;
import com.yihu.jw.utils.encode.Base64;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.utils.sfutils.HttpClientUtils;
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
import com.yihu.jw.wechat.dao.WechatDao;
import com.yihu.jw.wechat.dao.WxPushLogDao;
@ -96,7 +107,7 @@ import com.yihu.jw.wechat.service.BaseSensitiveFilterWordsService;
import com.yihu.jw.wechat.service.WxAccessTokenService;
import com.yihu.jw.yx.dao.YxTokenMappingDao;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.pinyin.PinyinUtil;
import com.yihu.utils.security.MD5;
import com.ylzinfo.ehc.EhcHandler;
import com.ylzinfo.ehc.common.utils.DateUtils;
@ -131,9 +142,6 @@ import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import static javafx.scene.input.KeyCode.L;
/**
 * Created by Trick on 2019/5/17.
@ -11462,47 +11470,52 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            }
        }
        logger.info("appKey"+appKey+"======"+"masterSecret"+masterSecret);
        String enctryMessage = appKey+":"+masterSecret;
        byte[] bytes = enctryMessage.getBytes();
        String auth = "Basic "+Base64.encode(bytes);
        com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
        jsonObject.put("platform","all");
        com.alibaba.fastjson.JSONObject audience = new com.alibaba.fastjson.JSONObject();
        com.alibaba.fastjson.JSONArray jsonArray = new com.alibaba.fastjson.JSONArray();
        jsonArray.add(userId);
        audience.put("alias",jsonArray);
        jsonObject.put("audience",audience);
        com.alibaba.fastjson.JSONObject notification = new com.alibaba.fastjson.JSONObject();
        com.alibaba.fastjson.JSONObject android = new com.alibaba.fastjson.JSONObject();
        android.put("alert",alert);
        android.put("title",title);
        android.put("extras",extras);
        android.put("builder_id",1);
        com.alibaba.fastjson.JSONObject ios = new com.alibaba.fastjson.JSONObject();
        ios.put("alert",alert);
        ios.put("sound","default");
        ios.put("extras",extras);
        ios.put("badge","+1");
        notification.put("android",android);
        notification.put("ios",ios);
        jsonObject.put("notification",notification);
        System.out.println(notification.toString());
        String url = "https://api.jpush.cn/v3/push";
        Map<String, Object> headerMap = new HashedMap();
        headerMap.put("Authorization",auth);
        headerMap.put("Content-Type","application/json");
        /*headerMap.put("Content-Length",1024);
        headerMap.put("Host","127.0.0.1");*/
        logger.info("极光推送参数"+jsonObject);
        String response = httpClientUtil.postBodyHead(url,jsonObject,headerMap);
        logger.info("极光推送返回日志==="+response);
        WlyyHttpLogDO httpLogDO = new WlyyHttpLogDO();
        JPushClient jPushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance());
        PushPayload payload = PushPayload.newBuilder()
                .setPlatform(Platform.all())
                .setAudience(Audience.newBuilder()
                        .addAudienceTarget(AudienceTarget.alias(userId)).build())
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(IosNotification.newBuilder()
                                .setAlert(alert)
                                .setBadge(5)
                                .setSound("default")
                                .addExtra("type", extras.getString("type"))
                                .addExtra("id", extras.getString("id"))
                                .setBadge(1)
                                .build())
                        .addPlatformNotification(AndroidNotification.newBuilder()
                                .setAlert(alert)
                                .setTitle(title)
                                .setBuilderId(1)
                                .addExtra("type", extras.getString("type"))
                                .addExtra("id", extras.getString("id"))
                                .build())
                        .build())
                .build();
        try {
            PushResult result = jPushClient.sendPush(payload);
            logger.info("Got result - " + result);
        } catch (APIConnectionException e) {
            // Connection error, should retry later
            logger.error("Connection error, should retry later", e);
        } catch (APIRequestException e) {
            // Should review the error, and fix the request
            logger.error("Should review the error, and fix the request", e);
            logger.info("HTTP Status: " + e.getStatus());
            logger.info("Error Code: " + e.getErrorCode());
            logger.info("Error Message: " + e.getErrorMessage());
        }
        /*logger.info("极光推送返回日志==="+response);*/
       /* WlyyHttpLogDO httpLogDO = new WlyyHttpLogDO();
        httpLogDO.setCode("JPUSH");
        httpLogDO.setCreateTime(new Date());
        httpLogDO.setRequest(jsonObject.toJSONString());
        httpLogDO.setResponse(response);
        wlyyHttpLogDao.save(httpLogDO);
        return response;
        wlyyHttpLogDao.save(httpLogDO);*/
        return null;
    }
    public String wxTempalteJPush(String templateCode,WlyyOutpatientDO wlyyOutpatientDO ,ConsultTeamDo consultTeamDo,String drugName ,String mailNo,String mailStatus,String prescriptionId){