From 5a37edc8cb5e4fb62e374d55b504843d2f5a4a6c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 01 七月 2020 11:14:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java | 535 +++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 446 insertions(+), 89 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
index eb27792..e3249dc 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -16,45 +16,61 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.dto.dataoke.DingDongTime;
import com.yeshi.fanli.dto.jd.JDSearchResult;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
-import com.yeshi.fanli.entity.bus.lable.QualityFactory;
+import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.jd.JDGoods;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.goods.recommend.HomeRecommendGoodsService;
import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService;
import com.yeshi.fanli.service.inter.homemodule.DeviceSexService;
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.jd.JDGoodsService;
import com.yeshi.fanli.service.inter.lable.QualityFlashSaleService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.pdd.PDDGoodsService;
-import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
+import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
+import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
+import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.factory.MonitorFactory;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.goods.OtherInfo;
+import com.yeshi.fanli.vo.goods.SpikeTimeVO;
+import com.yeshi.fanli.vo.homemodule.BannerVO;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
+import com.yeshi.fanli.vo.search.SearchKeyTOPVO;
+import com.yeshi.fanli.vo.search.SearchKeyVO;
import com.yeshi.fanli.vo.tlj.ReduceHongBao;
import net.sf.json.JSONArray;
@@ -65,7 +81,7 @@
public class RecommendControllerV2 {
@Resource
- private HongBaoManageService hongBaoManageService;
+ private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
@Resource
private QualityGoodsService qualityGoodsService;
@@ -84,9 +100,6 @@
@Resource
private QualityFlashSaleService qualityFlashSaleService;
-
- @Resource
- private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService;
@Resource
private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService;
@@ -109,6 +122,21 @@
@Resource
private PDDGoodsService pddGoodsService;
+ @Resource
+ private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
+
+ @Resource
+ private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
+
+ @Resource
+ private DaTaoKeGoodsService daTaoKeGoodsService;
+
+ @Resource
+ private HongBaoV2CountService hongBaoV2CountService;
+
+ @Resource
+ private HongBaoManageService hongBaoManageService;
+
/**
* 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3)
*
@@ -125,33 +153,42 @@
JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex);
// 2銆侀《閮ㄨ疆鎾浘
- List<SwiperPicture> topPicList = swiperPictureService.getByBannerCard("index_top");
- if (topPicList == null) {
- topPicList = new ArrayList<SwiperPicture>();
- }
+ List<BannerVO> oldtopPicList = swiperPictureService.getByBannerCardAndVersion("index_top",
+ acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
+
+ List<BannerVO> topPicList = new ArrayList<>();
+ if (oldtopPicList != null && oldtopPicList.size() > 0)
+ topPicList.addAll(oldtopPicList);
+
root.put("topPicList", JsonUtil.getApiCommonGson().toJson(topPicList));
// 3銆侀個璇锋湁濂�
- List<SwiperPicture> invitePicList = null;
+ List<BannerVO> invitePicList = null;
if ("ios".equalsIgnoreCase(acceptData.getPlatform())
&& configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
// 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥�
} else {
- invitePicList = swiperPictureService.getByBannerCard("index_invite");
+ invitePicList = swiperPictureService.getByBannerCardAndVersion("index_invite", acceptData.getPlatform(),
+ Integer.parseInt(acceptData.getVersion()));
}
if (invitePicList == null) {
- invitePicList = new ArrayList<SwiperPicture>();
+ invitePicList = new ArrayList<BannerVO>();
}
root.put("invitePicList", JsonUtil.getApiCommonGson().toJson(invitePicList));
// 4銆両OS鐨勫簳閮ㄧ綉椤甸摼鎺�
String platform = acceptData.getPlatform();
if ("ios".equalsIgnoreCase(platform)) {
- root.put("htmlLink", configService.get("index_html_link_ios"));
+ root.put("htmlLink", configService.get(ConfigKeyEnum.indexHtmlLinkIos.getKey()));
}
root.put("spikeGoods", getSpikeGoodsContent(acceptData));
+ if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion()))
+ root.put("scoreExchange", getScoreExchangeInfo(acceptData));
+
+ if (VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion()))
+ root.put("searchDiscovery", getSearchDiscoveryInfo(acceptData));
out.print(JsonUtil.loadTrueResult(root));
} catch (Exception e) {
@@ -177,44 +214,39 @@
}
private JSONObject getSpikeGoodsContent(AcceptData acceptData) {
- // 涓嬩竴娆″�掕鏃剁殑鏃堕棿
- int type = qualityFlashSaleService.getNowType() + 1;
- int hour = 0;
- switch (type) {
- case 1:
- hour = 0;
- break;
- case 2:
- hour = 9;
- break;
- case 3:
- hour = 12;
- break;
- case 4:
- hour = 14;
- break;
- case 5:
- hour = 16;
- break;
- case 6:
- hour = 20;
- break;
- case 7:
- hour = 22;
- break;
- default:
- break;
+ long nowTime = System.currentTimeMillis();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(nowTime);
+ List<DingDongTime> dtoList = DaTaoKeUtil.getDingDongQiangTime(calendar);
+ int dateNum = Integer.parseInt(TimeUtil.getGernalTime(nowTime, "ddHH"));
+ String timeStr = null;
+ int nextPos = 0;
+ for (int i = 0; i < dtoList.size() - 1; i++) {
+ if (dateNum >= Integer.parseInt(dtoList.get(i).getTime())
+ && dateNum < Integer.parseInt(dtoList.get(i + 1).getTime())) {
+ timeStr = dtoList.get(i).getTime();
+ nextPos = i + 1;
+ break;
+ }
}
- Calendar nextTime = Calendar.getInstance();
- nextTime.set(Calendar.HOUR_OF_DAY, hour);
- nextTime.set(Calendar.MINUTE, 0);
- nextTime.set(Calendar.SECOND, 0);
- nextTime.set(Calendar.MILLISECOND, 0);
+ if (timeStr == null)
+ timeStr = dtoList.get(dtoList.size() - 1).getTime();
+
+ long nextTime = nowTime + 1000 * 60 * 60L;// 榛樿涓�1灏忔椂
+ if (nextPos < dtoList.size()) {
+ nextTime = TimeUtil.convertToTimeTemp(
+ TimeUtil.getGernalTime(nowTime, "yyyyMM") + dtoList.get(nextPos).getTime(), "yyyyMMddHH");
+ }
JSONArray array = null;
- String timekey = String.format("spikeGoods_hour_new-%s-%s", acceptData.getPlatform(), acceptData.getVersion());
- String cachekey = String.format("spikeGoodsList_new-%s-%s", acceptData.getPlatform(), acceptData.getVersion());
+ String timekey = RedisKeyEnum.getRedisKey(RedisKeyEnum.spikeGoodsHourNew,acceptData.getPlatform() +"-"+acceptData.getVersion());
+ String cachekey = RedisKeyEnum.getRedisKey(RedisKeyEnum.spikeGoodsListNew,acceptData.getPlatform() +"-"+acceptData.getVersion());
+
+
+ Calendar nowCalendar = Calendar.getInstance();
+ nowCalendar.setTimeInMillis(nowTime);
+ int hour = nowCalendar.get(Calendar.HOUR_OF_DAY);
String timeValue = redisManager.getCommonString(timekey);
if (timeValue == null || !timeValue.equals(hour + "")) {
@@ -225,34 +257,42 @@
array = JSONArray.fromObject(cacheValue);
}
}
- JumpDetailV2 jumpDetail = jumpDetailV2Service.getByTypeCache("web");
+
+ JumpDetailV2 jumpDetail = null;
+ if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
+ jumpDetail = jumpDetailV2Service.getByTypeCache("spike_goods_list");
+ } else {
+ jumpDetail = jumpDetailV2Service.getByTypeCache("web");
+ }
+
if (array == null) {
array = new JSONArray();
-
- BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
- BigDecimal shareRate = hongBaoManageService.getShareRate();
-
Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
// 缂撳瓨涓笉瀛樺湪
- List<QualityFactory> listGoods = qualityGoodsService.listFlashSaleRandGoods();
+ List<DaTaoKeDetailV2> listGoods = daTaoKeGoodsDetailV2Service.getDingDongQiangData(timeStr);
if (listGoods == null) {
- listGoods = new ArrayList<QualityFactory>();
+ listGoods = new ArrayList<>();
}
+
+ if (listGoods != null && listGoods.size() > 3)
+ listGoods = listGoods.subList(0, 3);
/* 閬嶅巻鍒楄〃鏁版嵁 */
- for (QualityFactory qualityFactory : listGoods) {
- TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
+ ConfigParamsDTO configParamsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+ acceptData.getVersion());
+
+ for (DaTaoKeDetailV2 detail : listGoods) {
+ TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(detail);
if (taoBaoGoodsBrief == null) {
continue;
}
- GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate,
- shareRate);
+ GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, configParamsDTO);
JSONObject params = new JSONObject();
- params.put("url", configService.get("spike_goods_link") + "?id=" + taoBaoGoodsBrief.getAuctionId());
+ params.put("url", configService.get(ConfigKeyEnum.spikeGoodsLink.getKey()) + "?id=" + taoBaoGoodsBrief.getAuctionId());
JSONObject goods = new JSONObject();
goods.put("goods", gson.toJson(detailVO));
@@ -270,19 +310,183 @@
// 缂撳瓨鍗婁釜灏忔椂
redisManager.cacheCommonString(cachekey, array.toString(), 60 * 30);
}
- Long endTime = nextTime.getTimeInMillis() - java.lang.System.currentTimeMillis();
+
+ // 鑾峰彇浠婂ぉ鐨勬暟鎹�
+
+ Long endTime = nextTime - nowTime;
JSONObject root = new JSONObject();
- root.put("time", nextTime.getTimeInMillis());
+
+ if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
+ root.put("time", nextTime);
+ root.put("endTime", endTime > 0 ? endTime : 0);
+ JSONArray imgArray = new JSONArray();
+ if (array != null)
+ for (int i = 0; i < array.size(); i++) {
+ imgArray.add(array.optJSONObject(i).optJSONObject("goods").optString("picUrl"));
+ }
+ root.put("imgList", imgArray);
+ JSONObject params = new JSONObject();
+ params.put("url", configService.get(ConfigKeyEnum.spikeGoodsLink.getKey()));
+ root.put("params", params);
+ root.put("jumpDetail", jumpDetail);
+ root.put("name", "闄愭椂绉掓潃");
+ root.put("desc", "鏁寸偣鏇存柊锛屽ソ鐗╂姠璐�");
+ } else {
+ root.put("time", nextTime);
+ root.put("endTime", endTime > 0 ? endTime : 0);
+ root.put("listgoods", array);
+ JSONObject params = new JSONObject();
+ params.put("url", configService.get(ConfigKeyEnum.spikeGoodsLink.getKey()));
+ root.put("params", params);
+ root.put("jumpDetail", jumpDetail);
+ }
+
+ root.put("time", nextTime);
root.put("endTime", endTime > 0 ? endTime : 0);
root.put("listgoods", array);
+ return root;
+ }
+
+ /**
+ * 闄愭椂绉掓潃鍒楄〃
+ *
+ * @param acceptData
+ * @param page
+ * @param auctionId
+ * @param time
+ * @param out
+ */
+ @RequestMapping("getSpikTime")
+ public void getSpikTime(AcceptData acceptData, PrintWriter out) {
+ List<DingDongTime> timeList = DaTaoKeUtil.getDingDongQiangTime(Calendar.getInstance());
+ List<SpikeTimeVO> list = new ArrayList<SpikeTimeVO>();
+ for (int i = 0; i < timeList.size(); i++) {
+ SpikeTimeVO spikeTime1 = new SpikeTimeVO();
+ spikeTime1.setTime(timeList.get(i).getTime().subSequence(2, 4) + ":00");
+ if (timeList.get(i).getState() <= 0)
+ spikeTime1.setState("杩涜涓�");
+ else
+ spikeTime1.setState("鍗冲皢寮�濮�");
+ if (timeList.get(i).getState() == 0)
+ spikeTime1.setChecked(true);
+ spikeTime1.setRequestTime(timeList.get(i).getTime());
+ list.add(spikeTime1);
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("count", list.size());
+ data.put("list", list);
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 闄愭椂绉掓潃鍒楄〃
+ *
+ * @param acceptData
+ * @param page
+ * @param auctionId
+ * @param time
+ * @param out
+ */
+ @RequestMapping("getSpikeGoodsList")
+ public void getSpikeGoodsList(AcceptData acceptData, Integer page, Long goodsId, String qtime, PrintWriter out) {
+ List<DaTaoKeDetailV2> detailList0 = daTaoKeGoodsDetailV2Service.getDingDongQiangData(qtime);
+ if (detailList0 == null)
+ detailList0 = new ArrayList<>();
+
+ List<DaTaoKeDetailV2> detailList = new ArrayList<>();
+ detailList.addAll(detailList0);
+ JSONArray array = new JSONArray();
+ if (page == 1 && goodsId != null && detailList != null) {
+ for (int i = 0; i < detailList.size(); i++) {
+ if (detailList.get(i).getGoodsId().longValue() == goodsId) {
+ DaTaoKeDetailV2 goods = detailList.get(i);
+ detailList.remove(i);
+ detailList.add(0, goods);
+ break;
+ }
+ }
+ }
+
+ Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+ .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+ if (detailList != null) {
+ ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+ acceptData.getVersion());
+
+ for (DaTaoKeDetailV2 detail : detailList) {
+ array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(detail), paramsDTO)));
+ }
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("count", detailList.size());
+ data.put("list", array);
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 閲戝竵鍏戞崲淇℃伅
+ *
+ * @param acceptData
+ * @return
+ */
+ private JSONObject getScoreExchangeInfo(AcceptData acceptData) {
+
+ JSONObject root = new JSONObject();
+ JSONArray array = new JSONArray();
+ array.add("http://img.flqapp.com/resource/integral/integral_home_icon_2.png");
+ array.add("http://img.flqapp.com/resource/integral/integral_home_icon_1.png");
+ root.put("imgList", array);
JSONObject params = new JSONObject();
- params.put("url", configService.get("spike_goods_link"));
-
+ params.put("balanceMore", true);
root.put("params", params);
- root.put("jumpDetail", jumpDetail);
+ root.put("jumpDetail", jumpDetailV2Service.getByTypeCache("integralExchange",
+ Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
+ root.put("name", "閲戝竵鍏戞崲");
+ root.put("desc", "姣忔棩绛惧埌锛屾儕鍠滀笉鍋�");
+ root.put("tagImg", "http://img.flqapp.com/resource/score_exchange_tag.png");
+ return root;
+ }
+
+ /**
+ * 閲戝竵鍏戞崲淇℃伅
+ *
+ * @param acceptData
+ * @return
+ */
+ private JSONObject getSearchDiscoveryInfo(AcceptData acceptData) {
+ JSONArray array = new JSONArray();
+ String keys = configService.getSearchDiscoveryKeys();
+ if (!StringUtil.isNullOrEmpty(keys)) {
+ JSONArray arrayKeys = JSONArray.fromObject(keys);
+ for (int i = 0; i < arrayKeys.size(); i++) {
+ String name = arrayKeys.get(i).toString();
+ JSONObject params = new JSONObject();
+ params.put("content", name);
+
+ SearchKeyVO keyVO = new SearchKeyVO();
+ keyVO.setName(name);
+ keyVO.setParams(params.toString());
+ array.add(keyVO);
+ }
+ }
+
+ JSONObject params = new JSONObject();
+ params.put("url", configService.get(ConfigKeyEnum.searchDiscoveryH5Link.getKey()));
+
+ JSONObject root = new JSONObject();
+ root.put("picture", "http://img.flqapp.com/resource/home_search_found.png");
+ root.put("params", params);
+ root.put("jumpDetail", jumpDetailV2Service.getByTypeCache("web",
+ Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
+
+ root.put("jumpResult", jumpDetailV2Service.getByTypeCache("search_goods_result",
+ Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
+ root.put("keyList", array);
return root;
}
@@ -347,10 +551,18 @@
List<TaoBaoGoodsBrief> goodsList = homeRecommendGoodsService.listGoodsByPage(null, acceptData.getDevice(),
imei, idfa, page);
- BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
- BigDecimal shareRate = hongBaoManageService.getShareRate();
+ if (page < 4) {// 鍓嶄笁椤靛姞鍏ユ洿鏂�
+ try {
+ taoBaoGoodsUpdateService.addUpdateQueueAsync(goodsList);
+ } catch (Exception e) {
+ }
+ }
+
+ ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+ acceptData.getVersion());
+
for (TaoBaoGoodsBrief goods : goodsList) {
- GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, shareRate);
+ GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
if (page < 3)
detailVO.setRecommend(true);
@@ -363,15 +575,16 @@
if (page == 1) {
List<TLJBuyGoods> list = homeRecommendGoodsService.getZiGouLiJianHotGoods(acceptData.getDevice());
- if (list != null && list.size() > 0)
+ if (list != null && list.size() > 0) {
+ BigDecimal rateBuy = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
+ ConfigParamsDTO paramsBuy = new ConfigParamsDTO(rateBuy, rateBuy, Constant.MAX_REWARD_RATE,
+ hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP));
for (int i = list.size() - 1; i >= 0; i--) {
TLJBuyGoods goods = list.get(i);
- BigDecimal rateBuy = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
- GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), null, rateBuy,
- rateBuy);
+ GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), paramsBuy);
String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(goods.getGoods(),
- TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE);
+ TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE,false);
ReduceHongBao reduceHongBao = new ReduceHongBao();
reduceHongBao.setLeft(goods.getLeftHongBaoCount());
@@ -388,6 +601,7 @@
detailVO.setRecommend(true);
array.add(0, gson.toJson(detailVO));
}
+ }
}
JSONObject data = new JSONObject();
@@ -403,7 +617,7 @@
if (!StringUtil.isNullOrEmpty(imei) || !StringUtil.isNullOrEmpty(idfa)) {
long startTime = java.lang.System.currentTimeMillis();
- TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(page, 50, imei, idfa);
+ TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(page, 50, imei, idfa,"");
if (result != null && result.getTaoBaoGoodsBriefs() != null) {
// 绛涢��
@@ -414,23 +628,21 @@
// filter
try {
- gList = daTaoKeGoodsDetailService.filterTaoBaoGoods(gList);
+ gList = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(gList);
} catch (Exception e) {
}
// 璁惧鎺ㄨ崘
if (gList != null) {
- BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
- BigDecimal shareRate = hongBaoManageService.getShareRate();
-
+ ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+ acceptData.getVersion());
for (TaoBaoGoodsBrief goods : gList) {
if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null
&& goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0
&& goods.getBiz30day() > 1000
&& !StringUtil.isNullOrEmpty(goods.getPictUrlWhite())) {
- GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate,
- shareRate);
+ GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
detailVO.setRecommend(true);
goodsList.add(detailVO);
}
@@ -458,10 +670,10 @@
}
}
}
- JSONArray localArray = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize);
+ JSONArray localArray = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize,acceptData.getPlatform(),acceptData.getVersion());
array.addAll(localArray);
} else {// 浠庣簿閫夊簱鏉�
- array = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize);
+ array = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize,acceptData.getPlatform(),acceptData.getVersion());
if (array == null) {
out.print(JsonUtil.loadFalseResult("娌℃湁鏇村浜�"));
return;
@@ -494,12 +706,13 @@
List<JDGoods> goodsList = result.getGoodsList();
if (goodsList != null && goodsList.size() > 0) {
- BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
- BigDecimal shareRate = hongBaoManageService.getShareRate();
+ ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+ acceptData.getVersion());
+
Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
for (JDGoods goods : goodsList) {
- GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate);
+ GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, paramsDTO);
array.add(gson.toJson(goodsDetailVO));
}
}
@@ -526,11 +739,11 @@
Gson gson = JsonUtil.getApiCommonGson();
List<PDDGoodsDetail> goodsList = result.getGoodsList();
if (goodsList != null && goodsList.size() > 0) {
- BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
- BigDecimal shareRate = hongBaoManageService.getShareRate();
+ ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+ acceptData.getVersion());
for (PDDGoodsDetail goods : goodsList) {
- GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, fanLiRate, shareRate);
+ GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO);
array.add(gson.toJson(goodsDetailVO));
}
}
@@ -542,4 +755,148 @@
out.print(JsonUtil.loadTrueResult(data));
}
+ /**
+ * 鎼滅储鍙戠幇鍒楄〃
+ *
+ * @param acceptData
+ * @param uid
+ * @param page
+ * @param out
+ */
+ @RequestMapping(value = "getSearchDiscoveryTop")
+ public void getSearchDiscoveryTop(AcceptData acceptData, Long uid, Integer page, String callback, PrintWriter out) {
+ int count = 0;
+ List<SearchKeyTOPVO> list = new ArrayList<SearchKeyTOPVO>();
+
+ String keys = configService.getSearchDiscoveryKeys();
+ if (!StringUtil.isNullOrEmpty(keys)) {
+ JSONArray arrayKeys = JSONArray.fromObject(keys);
+ if (arrayKeys != null && arrayKeys.size() > 0) {
+ count = arrayKeys.size();
+ ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+ acceptData.getVersion());
+
+ int j = 1;
+ for (int i = (page - 1) * 3; i < arrayKeys.size(); i++) {
+ if (j > 3)
+ break;
+
+ String words = arrayKeys.get(i).toString();
+ List<GoodsDetailVO> listGoods = new ArrayList<GoodsDetailVO>();
+
+ List<DaTaoKeDetailV2> listTaoKe = daTaoKeGoodsService.getSearchDiscoveryGoods(words);
+ if (listTaoKe != null && listTaoKe.size() > 0) {
+ for (DaTaoKeDetailV2 daTaoKeDetailV2 : listTaoKe) {
+ listGoods.add(
+ GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(daTaoKeDetailV2), paramsDTO));
+ if (listGoods.size() >= 3)
+ break;
+ }
+ }
+
+ SearchKeyTOPVO keyTOPVO = new SearchKeyTOPVO();
+ keyTOPVO.setName(words);
+ keyTOPVO.setListGoods(listGoods);
+ list.add(keyTOPVO);
+
+ j++;
+ }
+ }
+ }
+
+ GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+ Gson gson = gsonBuilder.create();
+ JSONObject data = new JSONObject();
+ data.put("count", count);
+ data.put("list", gson.toJson(list));
+ if (!StringUtil.isNullOrEmpty(callback)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+ } else
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 鑾峰彇涓撻娓犻亾娲诲姩
+ *
+ * @param acceptData
+ * @param uid
+ * @param callback
+ * @param out
+ */
+ @RequestMapping(value = "getSpecialChannelActivity")
+ public void getSpecialChannelActivity(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
+
+ int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
+
+ List<Special> list = specialService.listByPlaceKey("special_channel_activity", platformCode,
+ Integer.parseInt(acceptData.getVersion()));
+
+ long time = System.currentTimeMillis();
+ // 鍒犻櫎灏氭湭鍚敤鐨勮繃鏈熺殑
+ for (int i = 0; i < list.size(); i++) {
+ Special special = list.get(i);
+ if (special.getState() == 1L) {
+ list.remove(i--);
+ } else {
+ if (special.getStartTime() != null && special.getEndTime() != null) {
+ if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
+ list.remove(i--);
+ } else// 璁剧疆鍊掕鏃�
+ {
+ special.setCountDownTime((special.getEndTime().getTime() - time) / 1000);
+ }
+ }
+ }
+ }
+
+ GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+ Gson gson = gsonBuilder.create();
+ JSONObject data = new JSONObject();
+ data.put("count", list.size());
+ data.put("list", gson.toJson(list));
+ if (!StringUtil.isNullOrEmpty(callback)) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+ } else
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 鑾峰彇涓撻娓犻亾娲诲姩
+ *
+ * @param acceptData
+ * @param uid
+ * @param callback
+ * @param out
+ */
+ @RequestMapping(value = "getGuide")
+ public void getGuide(AcceptData acceptData, Long uid, PrintWriter out) {
+ String tips = null;
+ if (uid == null || uid <= 0) {
+ tips = configService.get(ConfigKeyEnum.tipGuideNewUser.getKey());
+ } else {
+ long rebateOrder = hongBaoV2CountService.countRebateOrder(uid);
+ long shareOrInviteOrder = hongBaoV2CountService.countShareOrInviteOrder(uid);
+ if (rebateOrder + shareOrInviteOrder >= 3) {
+ // 鐔熷鐗�
+ } else if (rebateOrder <= 0 && shareOrInviteOrder <= 0) {
+ // 鏂颁汉鐗�
+ tips = configService.get(ConfigKeyEnum.tipGuideNewUser.getKey());
+ } else if (rebateOrder > 0 && shareOrInviteOrder <= 0) {
+ // 鐪侀挶鐗�
+ tips = configService.get(ConfigKeyEnum.tipGuideSaveMoney.getKey());
+ } else {
+ // 璧氶挶鐗�
+ tips = configService.get(ConfigKeyEnum.tipGuideShareInvite.getKey());
+ }
+ }
+
+ if (StringUtil.isNullOrEmpty(tips)) {
+ out.print(JsonUtil.loadFalseResult("鏆傛棤鎻愮ず"));
+ return;
+ }
+
+ JSONObject data = JSONObject.fromObject(tips);
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
}
--
Gitblit v1.8.0