src/main/java/com/yeshi/buwan/controller/api/TaoBaoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/yeshi/buwan/util/tb/DaTaoKeApiUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/yeshi/buwan/util/tb/TaoKeApiUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/yeshi/buwan/controller/api/TaoBaoController.java
@@ -8,6 +8,8 @@ import com.yeshi.buwan.exception.taobao.TaoKeApiException; import com.yeshi.buwan.exception.taobao.TaoLiJinCreateException; import com.yeshi.buwan.util.*; import com.yeshi.buwan.util.log.LoggerUtil; import com.yeshi.buwan.util.tb.DaTaoKeApiUtil; import com.yeshi.buwan.util.tb.TaoKeApiUtil; import com.yeshi.buwan.vo.AcceptData; import net.sf.json.JSONObject; @@ -27,6 +29,8 @@ @Controller @RequestMapping("api/v2/tb") public class TaoBaoController { public final static String PID = "mm_124933865_56750082_19509850444"; Logger logger = LoggerFactory.getLogger(TaoBaoController.class); @@ -67,7 +71,7 @@ JSONObject data = new JSONObject(); data.put("goods", new Gson().toJson(goods)); data.put("token", "8(TIh2X2LmQgv)/"); data.put("url", "https://m.tb.cn/h.4qbqpt4 "); data.put("url", "https://m.tb.cn/h.4qbqpt4"); return JsonUtil.loadTrueJson(new Gson().toJson(data)); } @@ -77,7 +81,10 @@ @RequestMapping("createLiJin") @ResponseBody public String createLiJin(AcceptData acceptData, String id) { public String createLiJin(AcceptData acceptData, String id, String pid) { if (StringUtil.isNullOrEmpty(pid)) { pid = PID; } YouZhiHaoHuoGoods goods = youZhiHaoHuoGoodsDao.get(id); if (goods == null) { return JsonUtil.loadFalseJson("商品已下架"); @@ -89,7 +96,13 @@ String countStr = redisManager.getCommonString(userKey); if (!StringUtil.isNullOrEmpty(countStr) && Integer.parseInt(countStr) > 20) { return JsonUtil.loadFalseJson("只能创建20次礼金"); String link = DaTaoKeApiUtil.convertLink(Long.parseLong(id), pid); String token = TaoKeApiUtil.getTKToken(goods.getPic(), goods.getItemName(), link); JSONObject data = new JSONObject(); data.put("token", token); data.put("url", link); return JsonUtil.loadTrueJson(data.toString()); // return JsonUtil.loadFalseJson("只能创建20次礼金"); } @@ -105,21 +118,24 @@ java.util.Date useStartTime = startDate; java.util.Date useEndTime = endDate; TaoKeAppInfo app = new TaoKeAppInfo(TAOBAO_AUTH_APPKEY, TAOBAO_AUTH_APPSECRET, "mm_124933865_56750082_19509850444"); TaoKeAppInfo app = new TaoKeAppInfo(TAOBAO_AUTH_APPKEY, TAOBAO_AUTH_APPSECRET, pid); try { TaoLiJinDTO dto = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime, useStartTime, useEndTime, app); LoggerUtil.getTestLogger().info("淘礼金创建结果:{}-{}", id, new Gson().toJson(dto)); redisManager.increase(userKey, (int) ((endDate.getTime() - startDate.getTime()) / 1000)); String token = TaoKeApiUtil.getTKToken(goods.getPic(), goods.getItemName(), dto.getSendUrl()); JSONObject data = new JSONObject(); data.put("token", token); data.put("url", dto.getSendUrl()); return JsonUtil.loadTrueJson(data.toString()); } catch (TaoLiJinCreateException e) { e.printStackTrace(); return JsonUtil.loadFalseJson("礼金创建失败"); } catch (TaoKeApiException e) { e.printStackTrace(); return JsonUtil.loadFalseJson("礼金创建失败"); } catch (Exception e) { String link = DaTaoKeApiUtil.convertLink(Long.parseLong(id), pid); String token = TaoKeApiUtil.getTKToken(goods.getPic(), goods.getItemName(), link); JSONObject data = new JSONObject(); data.put("token", token); data.put("url", link); return JsonUtil.loadTrueJson(data.toString()); } } src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java
@@ -330,6 +330,28 @@ homeType.setHomeVideoList(tempHomeVideoList); } try { if (VersionUtil.isGraterThan387(acceptData.getPlatform(), acceptData.getVersion()) && dataKey.equalsIgnoreCase("recommend")) { DetailSystemConfig adContent = configService.getConfigByKey("home_banner_ad_content", acceptData.getDetailSystem(), acceptData.getVersion()); DetailSystemConfig adPosition = configService.getConfigByKey("home_banner_ad_position", acceptData.getDetailSystem(), acceptData.getVersion()); if (adContent != null && adPosition != null) { HomeType.HomeTypeAd ad = new Gson().fromJson(adContent.getValue(), HomeType.HomeTypeAd.class); int adP = Integer.parseInt(adPosition.getValue()); if (adP < homeTypeList.size() && adP > -1) { HomeType homeType = new HomeType(); homeType.setAd(ad); if ("1".equalsIgnoreCase(page)) { homeTypeList.add(adP, homeType); } count++; } } } } catch (Exception e) { } JSONObject object = new JSONObject(); JSONArray array = new JSONArray(); for (int i = 0; i < homeTypeList.size(); i++) src/main/java/com/yeshi/buwan/util/tb/DaTaoKeApiUtil.java
New file @@ -0,0 +1,68 @@ package com.yeshi.buwan.util.tb; import com.yeshi.buwan.dto.tb.TaoKeAppInfo; import net.sf.json.JSONObject; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.StringUtil; import java.util.*; public class DaTaoKeApiUtil { final static String APP_KEY = "5cf764636d373"; final static String APP_KEY_SECRET = "5ea3c24900743f3aa531fb264f9824f2"; final static String APP_KEY_2 = "5cf75b0f2c0e4"; final static String APP_KEY_SECRET_2 = "b14f1fa115129a447937ca998b311d1e"; final static TaoKeAppInfo[] APP_KEYS = new TaoKeAppInfo[]{new TaoKeAppInfo(APP_KEY, APP_KEY_SECRET), new TaoKeAppInfo(APP_KEY_2, APP_KEY_SECRET_2)}; public static String convertLink(Long auctionId, String pid) { TaoKeAppInfo app = APP_KEYS[0]; Map<String, String> params = new TreeMap<>(); params.put("version", "v1.1.1"); params.put("goodsId", auctionId + ""); params.put("pid", pid); params.put("appKey", app.getAppKey()); params.put("sign", getSign(params, app.getAppSecret())); String result = null; try { result = HttpUtil.get("https://openapi.dataoke.com/api/tb-service/get-privilege-link", params, new HashMap<>()); } catch (Exception e) { result = HttpUtil.get("https://openapi.dataoke.com/api/tb-service/get-privilege-link", params, new HashMap<>()); } System.out.println(result); JSONObject json = JSONObject.fromObject(result); if (json != null) { json = json.getJSONObject("data"); if (json != null) { return StringUtil.isNullOrEmpty(json.optString("couponClickUrl"))?json.optString("itemUrl"):json.optString("couponClickUrl"); } } return null; } private static String getSign (Map < String, String > map, String secretKey){ if (map.size() == 0) { return ""; } StringBuffer sb = new StringBuffer(""); Set<String> keySet = map.keySet(); Iterator<String> iter = keySet.iterator(); while (iter.hasNext()) { String key = iter.next(); sb.append("&" + key + "=" + map.get(key)); } sb.deleteCharAt(0); String signStr = ""; signStr = sb.toString() + "&key=" + secretKey; return StringUtil.Md5(signStr).toUpperCase(); } } src/main/java/com/yeshi/buwan/util/tb/TaoKeApiUtil.java
@@ -1,5 +1,6 @@ package com.yeshi.buwan.util.tb; import com.yeshi.buwan.dto.tb.TaoBaoGoodsBrief; import com.yeshi.buwan.dto.tb.TaoKeAppInfo; import com.yeshi.buwan.dto.tb.TaoLiJinDTO; import com.yeshi.buwan.exception.taobao.TaoKeApiException; @@ -34,7 +35,7 @@ return data.optJSONObject("tbk_tpwd_create_response").optJSONObject("data").optString("model"); return null; } // 淘礼金创建 //{"result":{"msg_code":"FAIL_CHECK_ITEM_DAILY_SEND_NUM_CHECK_ERROR","msg_info":"今日该商品淘礼金创建数已超上限,请您明日再试","success":false},"request_id":"10p30v02qadkq"}