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());
|
}
|
}
|
|
|
}
|