admin
2021-04-24 77e706cca33c97a4428879cc9a6f98aae085c142
0元购完善
1个文件已添加
3个文件已修改
129 ■■■■■ 已修改文件
src/main/java/com/yeshi/buwan/controller/api/TaoBaoController.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/controller/parser/HomeParser.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/tb/DaTaoKeApiUtil.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yeshi/buwan/util/tb/TaoKeApiUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | 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"}