Browse Source

🚀 处理友盟消息推送

master
wangxiang 3 years ago
parent
commit
9f2420b319
  1. 9
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapLogisticController.java
  2. 2
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MessageController.java
  3. 7
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/IMapLogisticService.java
  4. 28
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java
  5. 15
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/PushClientUtil.java
  6. 1
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/bootstrap.yml

9
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MapLogisticController.java

@ -104,10 +104,11 @@ public class MapLogisticController {
return R.ok(mapLogistic); return R.ok(mapLogistic);
} }
@PostMapping("/pushAndroidMsg") @PostMapping("/mapPresetPointConfirmPushMsgTest")
public R pushAndroidMsg() { @ApiOperation(value = "地图预设点确认测试请求")
iMapLogisticService.pushAndroidMsg(); public R mapPresetPointConfirmPushMsgTest(@RequestBody MapLogisticPoint mapLogisticPoint) {
return R.ok(); iMapLogisticService.mapPresetPointConfirmPushMsg(mapLogisticPoint);
return R.ok(true);
} }
} }

2
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/MessageController.java

@ -25,7 +25,7 @@ import java.util.Arrays;
* @author entfrm开发团队-王翔 * @author entfrm开发团队-王翔
* @since 2022-11-15 * @since 2022-11-15
*/ */
@Controller @RestController
@RequestMapping(AppConstants.APP_COMMON +"/message") @RequestMapping(AppConstants.APP_COMMON +"/message")
@RequiredArgsConstructor @RequiredArgsConstructor
@Api(tags = "消息模块") @Api(tags = "消息模块")

7
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/IMapLogisticService.java

@ -2,6 +2,7 @@ package com.cloud.kicc.commonbiz.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.cloud.kicc.commonbiz.api.entity.MapLogistic; import com.cloud.kicc.commonbiz.api.entity.MapLogistic;
import com.cloud.kicc.commonbiz.api.entity.MapLogisticPoint;
import java.util.List; import java.util.List;
@ -31,9 +32,9 @@ public interface IMapLogisticService extends IService<MapLogistic> {
/** /**
* 友盟推送消息 * 友盟推送消息
* @param * @param mapLogisticPoint 地图任务点
* @return * @return void
*/ */
void pushAndroidMsg(); void mapPresetPointConfirmPushMsg(MapLogisticPoint mapLogisticPoint);
} }

28
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/MapLogisticServiceImpl.java

@ -1,11 +1,13 @@
package com.cloud.kicc.commonbiz.service.impl; package com.cloud.kicc.commonbiz.service.impl;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.MapLogistic; import com.cloud.kicc.commonbiz.api.entity.MapLogistic;
import com.cloud.kicc.commonbiz.api.entity.MapLogisticPoint; import com.cloud.kicc.commonbiz.api.entity.MapLogisticPoint;
import com.cloud.kicc.commonbiz.api.entity.MapTask; import com.cloud.kicc.commonbiz.api.entity.MapTask;
@ -21,6 +23,7 @@ import okhttp3.OkHttpClient;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
/** /**
@ -101,17 +104,32 @@ public class MapLogisticServiceImpl extends ServiceImpl<MapLogisticMapper, MapLo
} }
@Override @Override
public void pushAndroidMsg() { public void mapPresetPointConfirmPushMsg(MapLogisticPoint mapLogisticPoint) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("appkey", "6373815dac36474270fdf0c1"); jsonObject.put("description", "收样员交接点设置");
jsonObject.put("type", "unicast");
jsonObject.put("production_mode", "false"); jsonObject.put("production_mode", "false");
JSONObject payload = new JSONObject(); JSONObject payload = new JSONObject();
payload.put("display_type", "message"); payload.put("display_type", "notification");
JSONObject body = new JSONObject(); JSONObject body = new JSONObject();
body.put("custom", "测试发送消息!"); body.put("ticker", "交接任务确认");
body.put("text", SecurityUtils.getUser().getUsername() + "向你发起了交接点确认!");
body.put("title", "交接任务确认");
body.put("after_open", "go_custom");
body.put("custom", JSONObject.toJSON(mapLogisticPoint));
body.put("play_sound", true);
body.put("play_vibrate", true);
body.put("play_lights", true);
payload.put("body", body); payload.put("body", body);
jsonObject.put("payload", payload); jsonObject.put("payload", payload);
jsonObject.put("type", "customizedcast");
jsonObject.put("alias_type", PushClientUtil.uPushUserAliasType);
// todo:这里需要处理一下地图点中加入下一个地图点ID方便拿下一个用户ID
jsonObject.put("alias", "1562406147860549633");
jsonObject.put("mipush", "false");
JSONObject policy = new JSONObject();
policy.put("expire_time", LocalDateTimeUtil.now().plusDays(3)
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
jsonObject.put("policy", policy);
try { try {
PushClientUtil pushClientUtil = new PushClientUtil(okHttpClient); PushClientUtil pushClientUtil = new PushClientUtil(okHttpClient);
pushClientUtil.send(jsonObject); pushClientUtil.send(jsonObject);

15
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/util/PushClientUtil.java

@ -28,18 +28,29 @@ public class PushClientUtil {
protected static final String postPath = "/api/send"; protected static final String postPath = "/api/send";
private static final String appMasterSecret = "kiv3ka9idqvqgiq7w3sudlp7azslty1r"; public static final String uAppKey = "637609c2ac3647427000a9e2";
public static final String uAppMasterSecret = "96621e752731bfa57294fbdf08c5a6f8";
public static final String uMessageSecret = "1x6hmlberweewjw6unwbcqff7yyfgmip";
public static final String uPushUserAliasType = "KICC_UID";
public PushClientUtil(OkHttpClient okHttpClient) { public PushClientUtil(OkHttpClient okHttpClient) {
this.okHttpClient = okHttpClient; this.okHttpClient = okHttpClient;
} }
public boolean send(JSONObject jsonObject) throws Exception { public boolean send(JSONObject jsonObject) throws Exception {
// 配置消息推送参数
jsonObject.put("appkey", uAppKey);
String timestamp = Integer.toString((int)(System.currentTimeMillis() / 1000)); String timestamp = Integer.toString((int)(System.currentTimeMillis() / 1000));
jsonObject.put("timestamp", timestamp); jsonObject.put("timestamp", timestamp);
// 发送url处理
String url = host + postPath; String url = host + postPath;
String postBody = jsonObject.toString(); String postBody = jsonObject.toString();
String sign = DigestUtils.md5Hex(("POST" + url + postBody + appMasterSecret).getBytes("utf8")); String sign = DigestUtils.md5Hex(("POST" + url + postBody + uMessageSecret).getBytes("utf8"));
url = url + "?sign=" + sign; url = url + "?sign=" + sign;
// 发送post请求并获得响应 // 发送post请求并获得响应

1
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/bootstrap.yml

@ -8,6 +8,7 @@ spring:
nacos: nacos:
discovery: discovery:
server-addr: ${NACOS_HOST:192.168.3.10}:${NACOS_PORT:8848} server-addr: ${NACOS_HOST:192.168.3.10}:${NACOS_PORT:8848}
#server-addr: ${NACOS_HOST:kicc-register}:${NACOS_PORT:8848}
namespace: @profiles.namespace@ namespace: @profiles.namespace@
config: config:
server-addr: ${spring.cloud.nacos.discovery.server-addr} server-addr: ${spring.cloud.nacos.discovery.server-addr}

Loading…
Cancel
Save