1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| public class TaoBaoMessagesConsumeClient implements TaoBaoMethodStrategy { private static Logger log = LoggerFactory.getLogger(TaoBaoMessagesConsumeClient.class);
@Override public String selectMethod(String type, HttpServletRequest request) { String authStr = request.getParameter("authParams");
String reqStr = request.getParameter("reqParams");
Map<String, String> authMap = JSON.parseObject(authStr, new TypeReference<Map<String, String>>() { });
Map<String, Object> reqMap = JSON.parseObject(reqStr, new TypeReference<Map<String, Object>>() { }); boolean authNotEmptyValidate = this.validateAuthNotEmptyParam(authMap);
if (!authNotEmptyValidate) { return JSON.toJSONString(Result.failure("authParam参数存在为空")); }
Result result = this.validateReqParams(reqMap); if (result != null) { return JSON.toJSONString(result); }
String url = authMap.get("url"); String appkey = authMap.get("appkey"); String secret = authMap.get("secret"); String sessionKey = authMap.get("sessionKey"); log.info("淘宝天猫-消息消费-auth参数:{}", authStr);
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
TmcMessagesConsumeRequest req = this.getQuery(reqMap); log.info("淘宝天猫-消息消费-返回接口req数据:{}", JSON.toJSONString(req));
TmcMessagesConsumeResponse rsp = null; try { rsp = client.execute(req, sessionKey); log.info("淘宝天猫-消息消费-返回接口数据:{}", JSON.toJSONString(rsp)); } catch (ApiException e) { e.printStackTrace(); } if (rsp != null && rsp.isSuccess()) {
List<TmcMessage> resultList = new ArrayList<>(); List<TmcMessage> messages = rsp.getMessages();
if (CollectionUtils.isEmpty(rsp.getMessages())) { return JSON.toJSONString(Result.success(resultList)); }
if (!reqMap.containsKey("topic") || StringUtils.isEmpty(String.valueOf(reqMap.get("topic")))){ return JSON.toJSONString(Result.success(messages)); } String myTopic = String.valueOf(reqMap.get("topic"));
for (TmcMessage message : messages) { if (message.getTopic().equals(myTopic)){ resultList.add(message); } }
return JSON.toJSONString(Result.success(resultList)); } else { if (rsp == null) { return JSON.toJSONString(Result.failure("无返回结果")); } else { return JSON.toJSONString(Result.failure(rsp.getMsg())); } }
}
private TmcMessagesConsumeRequest getQuery(Map<String, Object> reqMap) { TmcMessagesConsumeRequest tmcMessagesConsumeRequest = new TmcMessagesConsumeRequest(); if (reqMap.containsKey("groupName") && !StringUtils.isEmpty((String) reqMap.get("groupName"))) { tmcMessagesConsumeRequest.setGroupName(String.valueOf(reqMap.get("groupName"))); } if (reqMap.containsKey("quantity") && !StringUtils.isEmpty((String) reqMap.get("quantity"))) { tmcMessagesConsumeRequest.setQuantity(Long.valueOf(String.valueOf(reqMap.get("quantity")))); } return tmcMessagesConsumeRequest; }
private Result validateReqParams(Map<String, Object> reqMap) { if (!reqMap.containsKey("quantity") || StringUtils.isEmpty(String.valueOf(reqMap.get("quantity")))) { return Result.failure("参数quantity不能为空"); } return null; } }
|