admin
2021-04-23 d297d57c6e460e44b123bd6aa8608745a4d5d037
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
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.exception.taobao.TaoKeApiException;
import com.yeshi.buwan.exception.taobao.TaoLiJinCreateException;
import com.yeshi.buwan.util.*;
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 {
 
    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) {
        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) {
            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, "mm_124933865_56750082_19509850444");
        try {
            TaoLiJinDTO dto = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime, useStartTime, useEndTime, app);
            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("礼金创建失败");
        }
    }
 
 
}