Commit 256720fd authored by renandong's avatar renandong 🇨🇳

1,调整定时任务每晚23点执行

parent c6497559
package com.weface.component; package com.weface.component;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpException; import cn.hutool.http.HttpException;
...@@ -8,10 +9,12 @@ import cn.hutool.http.HttpRequest; ...@@ -8,10 +9,12 @@ import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.weface.code.CommonResult;
import com.weface.common.exception.RRException; import com.weface.common.exception.RRException;
import com.weface.common.utils.Base64Util; import com.weface.common.utils.Base64Util;
import com.weface.common.utils.HttpUtil; import com.weface.common.utils.HttpUtil;
import com.weface.common.utils.RedisUtil; import com.weface.common.utils.RedisUtil;
import com.weface.dto.InformForm;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -35,6 +38,10 @@ public class GeTuiUtils { ...@@ -35,6 +38,10 @@ public class GeTuiUtils {
public static final String KK_SB_MASTER_SECRET = "b8MSgB7j8PAImc3eN0yuL9"; public static final String KK_SB_MASTER_SECRET = "b8MSgB7j8PAImc3eN0yuL9";
public static final String KK_SB_APP_KEY = "2tLtJhcpij7lu3ksutgpU3"; public static final String KK_SB_APP_KEY = "2tLtJhcpij7lu3ksutgpU3";
public static final String KK_WJ_APP_ID = "LhnWI1t7hc7ABsYbWokXD6";
public static final String KK_WJ_MASTER_SECRET = "JojRk0duJd6oXiHIyFPqj";
public static final String KK_WJ_APP_KEY = "vIBAFNAEk88qekbfS3miE8";
public static final String GE_TUI_BASE_URL = "https://restapi.getui.com/v2/"; public static final String GE_TUI_BASE_URL = "https://restapi.getui.com/v2/";
public static final String BASEURL = "https://openapi-gi.getui.com/v2/"; public static final String BASEURL = "https://openapi-gi.getui.com/v2/";
public static final String ENCODING = "UTF-8"; public static final String ENCODING = "UTF-8";
...@@ -93,6 +100,13 @@ public class GeTuiUtils { ...@@ -93,6 +100,13 @@ public class GeTuiUtils {
} }
geTui = key; geTui = key;
break; break;
case "kk_wj_token_ge_tui":
authToken = getGeTuiAuth(KK_WJ_APP_ID, KK_WJ_APP_KEY, KK_WJ_MASTER_SECRET);
if (ObjectUtil.isNull(authToken)) {
throw new RRException("获取看看卫建个推token失败");
}
geTui = key;
break;
default: default:
break; break;
} }
...@@ -237,14 +251,15 @@ public class GeTuiUtils { ...@@ -237,14 +251,15 @@ public class GeTuiUtils {
* 【toSingle】执行别名单推 * 【toSingle】执行别名单推
* *
* @param alias 用户别名 * @param alias 用户别名
* @param appId 应用id
* @param messageTemplate 消息模板 * @param messageTemplate 消息模板
* @param token 接口访问凭据 * @param token 接口访问凭据
* @return 消息推送结果 * @return 消息推送结果
*/ */
public static String singlePushAlias(String[] alias, MessageTemplate messageTemplate, String token) { public static String singlePushAlias(String[] alias, String appId, MessageTemplate messageTemplate, String token) {
Map<String, Object> map = convertBeanToMap(alias, messageTemplate); Map<String, Object> map = convertBeanToMap(alias, messageTemplate);
//请求url //请求url
String url = GE_TUI_BASE_URL + KK_SH_APP_ID + "/push/single/alias"; String url = GE_TUI_BASE_URL + appId + "/push/single/alias";
log.info("执行别名单推"); log.info("执行别名单推");
return generalPost(url, token, map); return generalPost(url, token, map);
} }
...@@ -315,6 +330,57 @@ public class GeTuiUtils { ...@@ -315,6 +330,57 @@ public class GeTuiUtils {
return generalPost(url, token, map); return generalPost(url, token, map);
} }
/**
* 群推
*
* @param informForm 消息
* @return 执行状态
*/
public static CommonResult listPush(InformForm informForm) {
MessageTemplate messageTemplate = new MessageTemplate();
messageTemplate.setAudience(new MessageTemplate.Audience(informForm.getAlias()));
MessageTemplate.Settings settings = new MessageTemplate.Settings();
settings.setTtl(3600000);
messageTemplate.setSettings(settings);
MessageTemplate.PushMessage pushMessage = new MessageTemplate.PushMessage();
MessageTemplate.PushMessage.Notification notification = new MessageTemplate.PushMessage.Notification();
BeanUtil.copyProperties(informForm, notification, CopyOptions.create().ignoreNullValue());
notification.setChannel_level(4);
pushMessage.setNotification(notification);
messageTemplate.setPush_message(pushMessage);
String result = null;
switch (informForm.getEquipmentType()) {
//看看生活
case "kksh":
String kk_sh_token_ge_tui = getAuthToken("kk_sh_token_ge_tui");
result = GeTuiUtils.listPushToApp(messageTemplate, KK_SH_APP_ID, kk_sh_token_ge_tui);
break;
//看看社保
case "kksb":
String kk_sb_token_ge_tui = getAuthToken("kk_sb_token_ge_tui");
result = GeTuiUtils.listPushToApp(messageTemplate, KK_SB_APP_ID, kk_sb_token_ge_tui);
break;
case "kkwj":
String kk_wj_token_ge_tui = getAuthToken("kk_wj_token_ge_tui");
result = GeTuiUtils.listPushToApp(messageTemplate, KK_WJ_APP_ID, kk_wj_token_ge_tui);
break;
default:
break;
}
if (result == null) {
return CommonResult.failed();
}
JSONObject jsonObject = JSONObject.parseObject(result);
if ((jsonObject.containsKey("code") && jsonObject.getInteger("code") == 0)) {
JSONObject data = jsonObject.getJSONObject("data");
return CommonResult.success(data);
}
return CommonResult.failed();
}
/** /**
* 【toApp】执行群推 * 【toApp】执行群推
* *
...@@ -457,7 +523,13 @@ public class GeTuiUtils { ...@@ -457,7 +523,13 @@ public class GeTuiUtils {
informAndroid.put("title", notification.getTitle()); informAndroid.put("title", notification.getTitle());
informAndroid.put("body", notification.getBody()); informAndroid.put("body", notification.getBody());
informAndroid.put("click_type", notification.getClick_type()); informAndroid.put("click_type", notification.getClick_type());
informAndroid.put("url", notification.getUrl()); switch (notification.getClick_type()) {
case "url":
informAndroid.put("url", notification.getUrl());
break;
case "intent":
informAndroid.put("intent", notification.getIntent());
}
ups.put("notification", informAndroid); ups.put("notification", informAndroid);
android.put("ups", ups); android.put("ups", ups);
......
package com.weface.controller; package com.weface.controller;
import com.weface.code.CommonResult; import com.weface.code.CommonResult;
import com.weface.component.GeTuiUtils;
import com.weface.dto.InformForm;
import com.weface.dto.MsgDTO; import com.weface.dto.MsgDTO;
import com.weface.dto.PushDTO; import com.weface.dto.PushDTO;
import com.weface.service.PushService; import com.weface.service.PushService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.groups.Default;
/** /**
* @author Administrator * @author Administrator
*/ */
...@@ -29,4 +34,9 @@ public class PushController { ...@@ -29,4 +34,9 @@ public class PushController {
public CommonResult pushSingle(@RequestBody MsgDTO param) { public CommonResult pushSingle(@RequestBody MsgDTO param) {
return pushService.pushSingle(param); return pushService.pushSingle(param);
} }
@PostMapping("/all")
public CommonResult pushAll(@RequestBody @Validated({Default.class}) InformForm informForm) {
return GeTuiUtils.listPush(informForm);
}
} }
package com.weface.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author : Administrator
*/
@Data
public class InformForm {
@NotBlank
private String title;
@NotBlank
private String body;
@NotBlank
private String click_type;
private String url;
private String[] alias;
@NotBlank
private String equipmentType;
}
package com.weface; package com.weface;
import cn.hutool.core.util.IdUtil;
import com.weface.component.GeTuiUtils; import com.weface.component.GeTuiUtils;
import com.weface.component.MenuService; import com.weface.component.MenuService;
import com.weface.component.MessageTemplate; import com.weface.component.MessageTemplate;
...@@ -15,7 +16,10 @@ import org.junit.jupiter.api.Test; ...@@ -15,7 +16,10 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
...@@ -87,7 +91,7 @@ class PushMessageApplicationTests { ...@@ -87,7 +91,7 @@ class PushMessageApplicationTests {
} }
@Test @Test
void testConventTemplate() { void testConventTemplate() throws UnsupportedEncodingException {
//String[] alias = {"kksh_10255318"}; //String[] alias = {"kksh_10255318"};
//String[] alias = {"kksh_10131492"}; //String[] alias = {"kksh_10131492"};
String[] alias = {"kksh_59354"}; String[] alias = {"kksh_59354"};
...@@ -100,17 +104,40 @@ class PushMessageApplicationTests { ...@@ -100,17 +104,40 @@ class PushMessageApplicationTests {
MessageTemplate.PushMessage pushMessage = new MessageTemplate.PushMessage(); MessageTemplate.PushMessage pushMessage = new MessageTemplate.PushMessage();
MessageTemplate.PushMessage.Notification notification = new MessageTemplate.PushMessage.Notification(); MessageTemplate.PushMessage.Notification notification = new MessageTemplate.PushMessage.Notification();
notification.setTitle("看看生活提醒"); notification.setTitle("河南一名小学生确诊阳性!");
notification.setBody("看看生活->让领钱更简单"); notification.setBody("1月23日新增一例本土确诊病例!为11岁小学生");
notification.setClick_type("url"); notification.setClick_type("intent");
notification.setUrl("https://www.baidu.com/"); String pack = "com.weface.kksocialsecurity/com.weface.kksocialsecurity.activity.WellcomeActivity";
String str = "intent:#Intent;component=%s;S.kkparam={\"content\": \"%s\", \"ispush\": \"1\", \"preload\": \"2\", \"push_type\": \"0\", \"pushlabel\": \"\", \"pushts\": \"1561619033\", \"title\": \"%s\", \"url\": \"%s\"};end";
String url = "https://kk.weface.com.cn/news/page/?id=c0933d0e2fc85f7333b6202dff0e611c&type=hot&from=101";
String intent = String.format(str, pack, notification.getBody(), notification.getTitle(), URLEncoder.encode(url, "UTF-8"));
// String intent = "intent:#Intent;component=com.weface.kksocialsecurity/com.weface.kksocialsecurity.activity.WellcomeActivity;S.kkparam={\"content\": \"1月23日新增一例本土确诊病例!为11岁小学生\", \"ispush\": \"1\", \"preload\": \"2\", \"push_type\": \"0\", \"pushlabel\": \"\", \"pushts\": \"1561619033\", \"title\": \"河南一名小学生确诊阳性!\", \"url\": \"https://kk.weface.com.cn/news/page/?id=c0933d0e2fc85f7333b6202dff0e611c&type=hot&from=101\"};end";
notification.setIntent(intent);
notification.setChannel_level(4); notification.setChannel_level(4);
pushMessage.setNotification(notification); pushMessage.setNotification(notification);
messageTemplate.setPush_message(pushMessage); messageTemplate.setPush_message(pushMessage);
String s = GeTuiUtils.singlePushAlias(alias, messageTemplate, token); String s = GeTuiUtils.singlePushAlias(alias, GeTuiUtils.KK_SH_APP_ID, messageTemplate, token);
System.out.println(s); System.out.println(s);
}
@Test
void testRevoke() {
Map<String, Object> map = new HashMap<>();
map.put("request_id", String.valueOf(IdUtil.getSnowflake(1, 1).nextId()));
map.put("audience", "all");
Map<String, Object> push_message = new HashMap<>();
HashMap<String, Object> revoke = new HashMap<>();
revoke.put("old_task_id", "RASA_0124_1679436c706dc2ea869c7c43eed0fb7d");
revoke.put("force", false);
push_message.put("revoke", revoke);
map.put("push_message", push_message);
String url = GeTuiUtils.GE_TUI_BASE_URL + GeTuiUtils.KK_SH_APP_ID + "/push/all";
String kk_sh_token_ge_tui = GeTuiUtils.getAuthToken("kk_sh_token_ge_tui");
String s = GeTuiUtils.generalPost(url, kk_sh_token_ge_tui, map);
System.out.println(s);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment