增加推送

This commit is contained in:
zhujunshuai 2023-04-06 09:52:11 +08:00
parent e01e8145b1
commit 7ec1efa6b9
3 changed files with 156 additions and 2 deletions

View File

@ -3,15 +3,28 @@ package cn.pluss.platform.controller;
import cn.pluss.platform.PushService;
import cn.pluss.platform.api.Result;
import cn.pluss.platform.api.ResultGenerator;
import cn.pluss.platform.entitiy.PushCidAlias;
import cn.pluss.platform.entity.UserApp;
import cn.pluss.platform.userApp.UserAppService;
import cn.pluss.platform.util.MobV2PushUtil;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
/**
* 发送下单催单通知等接口
@ -25,6 +38,10 @@ public class PushController {
@Setter(onMethod_ = {@Autowired})
private PushService pushService;
@Autowired
private UserAppService userAppService;
@PostMapping("/pushMsg")
public Result<Object> pushMsg(@RequestBody Map<String, Object> param) {
String userId = (String) param.get("userId");
@ -41,4 +58,119 @@ public class PushController {
return ResultGenerator.genSuccessResult();
}
}
/**
* 绑定cid
*
* @param param
* @return
* @throws IOException
* @throws NoSuchAlgorithmException
*/
@PostMapping("/bindalias")
public Result<Object> bindAlias(@RequestBody Map<String, Object> param) throws IOException, NoSuchAlgorithmException {
UserApp userApp = userAppService.queryUserAppByToken();
String uid = userApp.getUserId().toString();
String cid = param.get("cid").toString();
MobV2PushUtil mobV2PushUtil = new MobV2PushUtil();
String token = mobV2PushUtil.getToken();
Map<String, Object> map = new HashMap<>();
List<PushCidAlias> pushCidAliases = new ArrayList<>();
PushCidAlias pushCidAlias = new PushCidAlias();
pushCidAlias.setCid(cid);
pushCidAlias.setAlias(uid);
pushCidAliases.add(pushCidAlias);
map.put("data_list", pushCidAliases);
String json = new ObjectMapper().writeValueAsString(map);
HttpHeaders header = new HttpHeaders();
header.setContentType(MediaType.APPLICATION_JSON);
header.add("token", token);
HttpEntity<String> httpEntity = new HttpEntity<>(json, header);
RestTemplate restTemplate = new RestTemplate();
// 设置为UTF8编码
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
String tokenInfo = restTemplate.postForObject(
"https://restapi.getui.com/v2/" + MobV2PushUtil.appId + "/user/alias", httpEntity,
String.class);
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readTree(tokenInfo);
JsonNode code = jsonNode.get("code");
if (code.asText().equals("0")) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult(jsonNode.get("msg").asText());
}
}
/**
* 解绑别名
*
* @param param
* @return
* @throws IOException
* @throws NoSuchAlgorithmException
*/
@PostMapping("/unbindingAlias")
public Result<Object> unbindingAlias(@RequestBody Map<String, Object> param) throws IOException, NoSuchAlgorithmException {
UserApp userApp = userAppService.queryUserAppByToken();
String uid = userApp.getUserId().toString();
String cid = param.get("cid").toString();
MobV2PushUtil mobV2PushUtil = new MobV2PushUtil();
String token = mobV2PushUtil.getToken();
Map<String, Object> map = new HashMap<>();
List<PushCidAlias> pushCidAliases = new ArrayList<>();
PushCidAlias pushCidAlias = new PushCidAlias();
pushCidAlias.setCid(cid);
pushCidAlias.setAlias(uid);
pushCidAliases.add(pushCidAlias);
map.put("data_list", pushCidAliases);
String json = new ObjectMapper().writeValueAsString(map);
HttpHeaders header = new HttpHeaders();
header.setContentType(MediaType.APPLICATION_JSON);
header.add("token", token);
HttpEntity<String> httpEntity = new HttpEntity<>(json, header);
RestTemplate restTemplate = new RestTemplate();
// 设置为UTF8编码
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
// delete, entity直接设为null即可
ResponseEntity<Map> resultEntity = restTemplate.exchange("https://restapi.getui.com/v2/" + MobV2PushUtil.appId + "/user/alias",
HttpMethod.DELETE,
httpEntity,
Map.class);
if (resultEntity != null) {
System.out.println("result:" + resultEntity);
}
Map<String, Object> res = resultEntity.getBody();
String code = res.get("code").toString();
if (code.equals("0")) {
return ResultGenerator.genSuccessResult();
} else {
return ResultGenerator.genFailResult(res.get("msg").toString());
}
}
}

View File

@ -319,6 +319,19 @@
<artifactId>bcprov-jdk15to18</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>com.getui.push</groupId>
<artifactId>restful-sdk</artifactId>
<version>1.0.0.11</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<!-- <repositories>-->

View File

@ -0,0 +1,9 @@
package cn.pluss.platform.entitiy;
import java.util.List;
public class PushBindAlias {
private List<PushCidAlias> data_list;
}