admin
2022-04-16 04f09e52ffd4681bdfd85e51acd3da0d1280c3d3
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
138
139
140
141
package com.yeshi.buwan.controller.api;
 
import com.google.gson.Gson;
import com.yeshi.buwan.dao.tb.YouZhiHaoHuoGoodsDao;
import com.yeshi.buwan.domain.tb.YouZhiHaoHuoGoods;
import com.yeshi.buwan.dto.tb.TaoKeAppInfo;
import com.yeshi.buwan.dto.tb.TaoLiJinDTO;
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;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
 
@Controller
@RequestMapping("api/v2/tb")
public class TaoBaoController {
 
    public final static String PID = "mm_124933865_56750082_19509850444";
 
    Logger logger = LoggerFactory.getLogger(TaoBaoController.class);
 
    @Resource
    private YouZhiHaoHuoGoodsDao youZhiHaoHuoGoodsDao;
 
    @Resource
    private RedisManager redisManager;
 
 
    @RequestMapping("getYouZhiGoodsList")
    @ResponseBody
    public String getYouZhiGoodsList(AcceptData acceptData, int page) {
        Query query = new Query();
        query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "promotionPriceInt")));
        query.skip((page - 1) * Constant.pageCount);
        query.limit(Constant.pageCount);
        List<YouZhiHaoHuoGoods> list = youZhiHaoHuoGoodsDao.findList(query);
 
        for (YouZhiHaoHuoGoods goods : list) {
            BigDecimal money = goods.getPromotionPrice().subtract(new BigDecimal("1.8"));
            money = money.compareTo(new BigDecimal(0)) < 0 ? new BigDecimal(0) : money;
            goods.setPromotionPrice(money);
        }
 
        long count = youZhiHaoHuoGoodsDao.count(query);
        JSONObject data = new JSONObject();
        data.put("list", list);
        data.put("count", count);
        return JsonUtil.loadTrueJson(data.toString());
    }
 
 
    @RequestMapping("getYouZhiGoodsDetail")
    @ResponseBody
    public String getYouZhiGoodsDetail(AcceptData acceptData, String id) {
        YouZhiHaoHuoGoods goods = youZhiHaoHuoGoodsDao.get(id);
        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");
        return JsonUtil.loadTrueJson(new Gson().toJson(data));
    }
 
 
    public static final String TAOBAO_AUTH_APPKEY = "24980167";
    public static final String TAOBAO_AUTH_APPSECRET = "e0a2e05deabf5ce039b52e5b492d5382";
 
    @RequestMapping("createLiJin")
    @ResponseBody
    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("商品已下架");
        }
        String identify = StringUtil.isNullOrEmpty(acceptData.getUtdId()) ? acceptData.getDevice() : acceptData.getUtdId();
 
        String userKey = "tb-yzsp-" + StringUtil.Md5(identify);
 
        String countStr = redisManager.getCommonString(userKey);
 
        if (!StringUtil.isNullOrEmpty(countStr) && Integer.parseInt(countStr) > 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次礼金");
        }
 
 
        Date startDate = new Date();
        Date endDate = new Date(TimeUtil.convertGernalTime(TimeUtil.getGernalTime(startDate.getTime() + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd"));
 
        Long auctionId = Long.parseLong(goods.getItemId());
        String name = "影视大全礼金红包";
        BigDecimal perface = new BigDecimal(1);
        int totalNum = 1;
        java.util.Date sendStartTime = startDate;
        Date sendEndTime = endDate;
        java.util.Date useStartTime = startDate;
        java.util.Date useEndTime = endDate;
 
        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 (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());
        }
    }
 
 
}