Jelajahi Sumber

更新 个推工具类

ccjgmwz 3 tahun lalu
induk
melakukan
dc0aed7d6e

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/pom.xml

@@ -48,6 +48,11 @@
             <artifactId>qcloudsms</artifactId>
             <version>1.0.5</version>
         </dependency>
+        <dependency>
+            <groupId>com.getui.push</groupId>
+            <artifactId>restful-sdk</artifactId>
+            <version>1.0.0.1</version>
+        </dependency>
     </dependencies>
 
 

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ProcurementPlanInfoServiceImpl.java

@@ -12,6 +12,7 @@ import com.yh.saas.plugin.yiliangyiyun.entity.ProcurementPlanInfo;
 import com.yh.saas.plugin.yiliangyiyun.mapper.ProcurementPlanInfoMapper;
 import com.yh.saas.plugin.yiliangyiyun.service.IProcurementPlanInfoService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.yh.saas.plugin.yiliangyiyun.util.GeTuiUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.util.HashMap;
@@ -31,6 +32,8 @@ import java.util.Map;
 public class ProcurementPlanInfoServiceImpl extends ServiceImpl<ProcurementPlanInfoMapper, ProcurementPlanInfo> implements IProcurementPlanInfoService {
     @Autowired
     private ICommonBillOperateHisService billOperateHisService;
+    @Autowired
+    private GeTuiUtils geTuiUtils;
 
     /**
      * 查看采购计划
@@ -188,11 +191,13 @@ public class ProcurementPlanInfoServiceImpl extends ServiceImpl<ProcurementPlanI
             if(flag==1){
                 procurementPlanInfo.setStatusFlag(StatusEnum.ORDER_PASSED.getFlag());
                 procurementPlanInfo.setStatus(StatusEnum.ORDER_PASSED.getName());
+                geTuiUtils.pushByCid("审核通知","您申请的交易已审核通过",procurementPlanInfo.getCommonId());
             }
             //驳回
             else{
                 procurementPlanInfo.setStatusFlag(StatusEnum.ORDER_REJECTED.getFlag());
                 procurementPlanInfo.setStatus(StatusEnum.ORDER_REJECTED.getName());
+                geTuiUtils.pushByCid("审核通知","您申请的交易已被驳回",procurementPlanInfo.getCommonId());
             }
             //更改采购计划信息
             this.updateById(procurementPlanInfo);

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/PurchaseOrderServiceImpl.java

@@ -23,6 +23,7 @@ import com.yh.saas.plugin.yiliangyiyun.service.IPurchaseOrderService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.yh.saas.plugin.yiliangyiyun.service.ITransactionRecordService;
 import com.yh.saas.plugin.yiliangyiyun.service.IWarehouseInOutInfoService;
+import com.yh.saas.plugin.yiliangyiyun.util.GeTuiUtils;
 import com.yh.saas.toolkit.workflow.service.IWorkflowService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,6 +55,8 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
     private IWarehouseInOutInfoService warehouseInOutInfoService;
     @Autowired
     private IWorkflowService workflowService;
+    @Autowired
+    private GeTuiUtils geTuiUtils;
     /**
      * 成交
      */
@@ -83,6 +86,7 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
         priceChangeRecord.setPrice(purchaseOrder.getTransactionPrice());
         priceChangeRecord.setPriceType("成交价");
         priceChangeRecordService.insert(priceChangeRecord);
+        geTuiUtils.pushByCid("成交通知","您的合同已成交,成交价:"+purchaseOrder.getTransactionPrice()+"元/吨",purchaseOrder.getCommonId());
         return purchaseOrder.getId();
     }
 
@@ -106,6 +110,7 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
         transactionRecord.setBasis(purchaseOrder.getBasis());
         transactionRecord.setTurnover(purchaseOrder.getTransactionsNumber());
         boolean two = transactionRecordService.insert(transactionRecord);
+        geTuiUtils.pushByCid("平仓通知","您的合同:" + purchaseOrder.getContractNo() + " 平仓成功",purchaseOrder.getCommonId());
         if (one && two) {
             return "OK";
         } else {

+ 136 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/util/GeTuiUtils.java

@@ -0,0 +1,136 @@
+package com.yh.saas.plugin.yiliangyiyun.util;
+
+import com.getui.push.v2.sdk.ApiHelper;
+import com.getui.push.v2.sdk.GtApiConfiguration;
+import com.getui.push.v2.sdk.api.PushApi;
+import com.getui.push.v2.sdk.common.ApiResult;
+import com.getui.push.v2.sdk.dto.req.Audience;
+import com.getui.push.v2.sdk.dto.req.Settings;
+import com.getui.push.v2.sdk.dto.req.Strategy;
+import com.getui.push.v2.sdk.dto.req.message.PushChannel;
+import com.getui.push.v2.sdk.dto.req.message.PushDTO;
+import com.getui.push.v2.sdk.dto.req.message.PushMessage;
+import com.getui.push.v2.sdk.dto.req.message.android.AndroidDTO;
+import com.getui.push.v2.sdk.dto.req.message.android.ThirdNotification;
+import com.getui.push.v2.sdk.dto.req.message.android.Ups;
+import com.getui.push.v2.sdk.dto.req.message.ios.Alert;
+import com.getui.push.v2.sdk.dto.req.message.ios.Aps;
+import com.getui.push.v2.sdk.dto.req.message.ios.IosDTO;
+import com.yh.saas.plugin.yiliangyiyun.entity.CommonUser;
+import com.yh.saas.plugin.yiliangyiyun.mapper.CommonUserMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @Author:chengchangjiang
+ * @Description: 个推Util类
+ * @Date:Created in 9:38 2021-06-03
+ */
+
+@Component
+public class GeTuiUtils {
+    @Autowired
+    private CommonUserMapper commonUserMapper;
+    private static String appId = "q2frjgRYqt7RuC9Vjj6Va9";
+    private static String appKey = "L0gnzFQa2O8aFW15lPRzh2";
+    private static String masterSecret = "NhuCKHZJhp877ofHWtlQWA";
+    PushApi pushApi = null;
+
+    //别名推送方式
+    static String host = "http://sdk.open.api.igexin.com/apiex.htm";
+
+    public GeTuiUtils(){
+        GtApiConfiguration apiConfiguration = new GtApiConfiguration();
+        //填写应用配置
+        apiConfiguration.setAppId(appId);
+        apiConfiguration.setAppKey(appKey);
+        apiConfiguration.setMasterSecret(masterSecret);
+        // 接口调用前缀,请查看文档: 接口调用规范 -> 接口前缀, 可不填写appId
+        apiConfiguration.setDomain("https://restapi.getui.com/v2/");
+        // 实例化ApiHelper对象,用于创建接口对象
+        ApiHelper apiHelper = ApiHelper.build(apiConfiguration);
+        // 创建对象,建议复用。目前有PushApi、StatisticApi、UserApi
+        pushApi = apiHelper.creatApi(PushApi.class);
+    }
+
+    public void pushByCid(String title,String content,String userId){
+        try{
+            CommonUser userDO =  commonUserMapper.selectById(userId);
+            String cid = userDO.getCid();
+            //根据cid进行单推
+            PushDTO<Audience> pushDTO = new PushDTO<Audience>();
+            // 设置推送参数
+            pushDTO.setRequestId(System.currentTimeMillis() + "");//requestid需要每次变化唯一
+            //配置推送条件
+            // 1: 表示该消息在用户在线时推送个推通道,用户离线时推送厂商通道;
+            // 2: 表示该消息只通过厂商通道策略下发,不考虑用户是否在线;
+            // 3: 表示该消息只通过个推通道下发,不考虑用户是否在线;
+            // 4: 表示该消息优先从厂商通道下发,若消息内容在厂商通道代发失败后会从个推通道下发。
+            Strategy strategy=new Strategy();
+            strategy.setDef(1);
+            Settings settings=new Settings();
+            settings.setStrategy(strategy);
+            pushDTO.setSettings(settings);
+            settings.setTtl(3600000);//消息有效期,走厂商消息需要设置该值
+            //推送苹果离线通知标题内容
+            Alert alert=new Alert();
+            alert.setTitle(title);
+            alert.setBody(content);
+            Aps aps = new Aps();
+            //1表示静默推送(无通知栏消息),静默推送时不需要填写其他参数。
+            //苹果建议1小时最多推送3条静默消息
+            aps.setContentAvailable(0);
+            aps.setSound("default");
+            aps.setAlert(alert);
+            IosDTO iosDTO = new IosDTO();
+            iosDTO.setAps(aps);
+            iosDTO.setType("notify");
+            PushChannel pushChannel = new PushChannel();
+            pushChannel.setIos(iosDTO);
+            //安卓离线厂商通道推送消息体
+//            PushChannel pushChannel = new PushChannel();
+            AndroidDTO androidDTO = new AndroidDTO();
+            Ups ups = new Ups();
+            ThirdNotification notification1 = new ThirdNotification();;
+            ups.setNotification(notification1);
+            notification1.setTitle(title);
+            notification1.setBody(content);
+            notification1.setClickType("intent");
+            notification1.setIntent("intent:#Intent;launchFlags=0x04000000;action=android.intent.action.oppopush;component=uni.UNI7297DA2/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title="+title+";S.content="+content+";S.payload=test;end");
+            //各厂商自有功能单项设置
+            //ups.addOption("HW", "/message/android/notification/badge/class", "io.dcloud.PandoraEntry ");
+            //ups.addOption("HW", "/message/android/notification/badge/add_num", 1);
+            //ups.addOption("HW", "/message/android/notification/importance", "HIGH");
+            //ups.addOption("VV","classification",1);
+            androidDTO.setUps(ups);
+            pushChannel.setAndroid(androidDTO);
+            pushDTO.setPushChannel(pushChannel);
+
+            // PushMessage在线走个推通道才会起作用的消息体
+            PushMessage pushMessage = new PushMessage();
+            pushDTO.setPushMessage(pushMessage);
+            pushMessage.setTransmission(" {title:\""+title+"\",content:\""+content+"\",payload:\"test\"}");
+//            pushMessage.setTransmission(" {title:\"标题\",content:\"内容\",payload:\"自定义数据\"}");
+            // 设置接收人信息
+            Audience audience = new Audience();
+            pushDTO.setAudience(audience);
+            audience.addCid(cid);
+
+            // 进行cid单推
+            ApiResult<Map<String, Map<String, String>>> apiResult = pushApi.pushToSingleByCid(pushDTO);
+            if (apiResult.isSuccess()) {
+                // success
+                System.out.println(apiResult.getData());
+            } else {
+                // failed
+                System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg());
+            }
+        }
+        catch (Exception e){
+            System.out.println("推送异常:" + e.getMessage());
+        }
+    }
+
+}