From a9b86cb38188d689875c8973256f10ce6566405e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 14 五月 2019 18:31:39 +0800
Subject: [PATCH] 大淘客商品推荐
---
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java | 266 +++++++++++++++++++++++++++++-----------------------
1 files changed, 148 insertions(+), 118 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
index a64ac2d..d5e7f65 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -7,7 +7,6 @@
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
-import java.util.Iterator;
import java.util.List;
import javax.annotation.Resource;
@@ -56,6 +55,7 @@
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.fanli.entity.taobao.TaoBaoShop;
import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
@@ -90,6 +90,7 @@
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.ShamUserService;
import com.yeshi.fanli.service.inter.user.TBPidService;
@@ -108,6 +109,7 @@
import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import com.yeshi.fanli.vo.user.UserSettingsVO;
import net.sf.json.JSONArray;
@@ -116,7 +118,6 @@
@Controller
@RequestMapping("api/v1/user")
public class RecommendController {
-
@Resource
private BusinessSystemService businessSystemService;
@@ -141,7 +142,6 @@
@Resource
private UserInfoService userInfoService;
-
@Resource
private TaoBaoCouponService taoBaoCouponService;
@@ -214,13 +214,15 @@
@Resource
private UserInfoExtraService userInfoExtraService;
-
+
@Resource
private QualityFlashSaleService qualityFlashSaleService;
-
@Resource
private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
+
+ @Resource
+ private TaoBaoShopService taoBaoShopService;
@RequestMapping(value = "getHonestList")
public void getHonestList(AcceptData acceptData, PrintWriter out) {
@@ -1562,7 +1564,6 @@
out.print(JsonUtil.loadTrueResult(root));
}
-
/**
* 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3)
*
@@ -1572,29 +1573,38 @@
@RequestMapping(value = "getRecommendIndex")
public void getRecommendIndex(AcceptData acceptData, Long uid, PrintWriter out) {
try {
- // 涓撻妯″潡
- JSONObject root = specialService.listCacheSpecialToIndex();
+ // 1銆佷笓棰樻ā鍧�
+ JSONObject root = specialService.listCacheSpecialToIndex(acceptData);
- // 椤堕儴杞挱鍥�
+ // 2銆侀《閮ㄨ疆鎾浘
List<SwiperPicture> topPicList = getSwiperByCard("index_top");
if (topPicList == null) {
topPicList = new ArrayList<SwiperPicture>();
}
root.put("topPicList", JsonUtil.getApiCommonGson().toJson(topPicList));
-
- // 閭�璇枫�佸垎浜疆鎾浘
- List<SwiperPicture> invitePicList = getInvitePicList(uid, acceptData);
+
+ // 3銆侀個璇锋湁濂�
+ List<SwiperPicture> invitePicList = null;
+ if ("ios".equalsIgnoreCase(acceptData.getPlatform())
+ && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
+ // 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥�
+ } else {
+ invitePicList = getSwiperByCard("index_invite");
+ }
+
if (invitePicList == null) {
invitePicList = new ArrayList<SwiperPicture>();
}
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("spikeGoods", getSpikeGoodsContent(acceptData));
+
out.print(JsonUtil.loadTrueResult(root));
} catch (Exception e) {
out.print(JsonUtil.loadFalseResult(1, "鑾峰彇鏁版嵁澶辫触"));
@@ -1602,50 +1612,30 @@
LogHelper.errorDetailInfo(e);
} catch (Exception e1) {
e1.printStackTrace();
- }
+ }
}
}
-
+
/**
* 閭�璇锋湁濂栨槸鍚﹂渶瑕佽繑鍥�
+ *
* @param uid
* @param acceptData
* @return
*/
- public List<SwiperPicture> getInvitePicList(Long uid, AcceptData acceptData) {
+ public List<SwiperPicture> getInvitePicList(Long uid, AcceptData acceptData) {
// 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥�
if ("ios".equalsIgnoreCase(acceptData.getPlatform())
&& configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
return null;
- }
-
- List<SwiperPicture> invitePicList = getSwiperByCard("index_invite");
-
- if (uid != null) {
- try {
- // 鐢ㄦ埛鑷畾涔夛細涓嶇湅閭�璇锋湁濂�
- UserSettingsVO vo = userCustomSettingsService.getMySettings(uid);
- if (vo != null && vo.getNoInvitationBonus() != null && vo.getNoInvitationBonus() == 1
- && invitePicList != null && invitePicList.size() > 0) {
- Iterator<SwiperPicture> iterator = invitePicList.iterator();
- while (iterator.hasNext()) {
- SwiperPicture swiperPicture = iterator.next();
- JumpDetailV2 jumpDetail = swiperPicture.getJumpDetail();
- if (jumpDetail != null && "invite".equals(jumpDetail.getType())) {
- iterator.remove();
- }
- }
- }
- } catch (UserCustomSettingsException e) {
- e.printStackTrace();
- }
}
-
+
+ List<SwiperPicture> invitePicList = getSwiperByCard("index_invite");
+
return invitePicList;
}
-
-
- public List<SwiperPicture> getSwiperByCard(String card){
+
+ public List<SwiperPicture> getSwiperByCard(String card) {
List<SwiperPicture> swiperList = null;
try {
swiperList = swiperPictureService.getByBannerCard(card);
@@ -1659,8 +1649,94 @@
}
return swiperList;
}
-
-
+
+ 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;
+ }
+
+ 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);
+
+ JSONArray array = null;
+ String timekey = "spikeGoods_hour";
+ String cachekey = "spikeGoodsList";
+
+ String timeValue = redisManager.getCommonString(timekey);
+ if (timeValue == null || !timeValue.equals(hour + "")) {
+ redisManager.cacheCommonString(timekey, hour + "", 60 * 30);
+ } else {
+ String cacheValue = redisManager.getCommonString(cachekey);
+ if (!StringUtil.isNullOrEmpty(cacheValue)) {
+ array = JSONArray.fromObject(cacheValue);
+ }
+ }
+
+ if (array == null) {
+ array = new JSONArray();
+
+ BigDecimal proportion = manageService.getFanLiRate();
+ Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+ .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+ // 缂撳瓨涓笉瀛樺湪
+ List<QualityFactory> listGoods = qualityGoodsService.listFlashSaleRandGoods();
+ if (listGoods == null) {
+ listGoods = new ArrayList<QualityFactory>();
+ }
+
+ /* 閬嶅巻鍒楄〃鏁版嵁 */
+ for (QualityFactory qualityFactory : listGoods) {
+
+ TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
+ if (taoBaoGoodsBrief == null) {
+ continue;
+ }
+ array.add(gson
+ .toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
+ }
+
+ // 缂撳瓨鍗婁釜灏忔椂
+ redisManager.cacheCommonString(cachekey, array.toString(), 60 * 30);
+ }
+ Long endTime = nextTime.getTimeInMillis() - java.lang.System.currentTimeMillis();
+
+ JSONObject root = new JSONObject();
+ root.put("time", nextTime.getTimeInMillis());
+ root.put("endTime", endTime > 0? endTime : 0);
+ root.put("listgoods", array);
+
+ return root;
+ }
+
/**
* 闄愭椂绉掓潃 1.5.3
*
@@ -1669,78 +1745,16 @@
*/
@RequestMapping(value = "getSpikeGoods")
public void getSpikeGoods(AcceptData acceptData, PrintWriter out) {
+ JSONObject params = new JSONObject();
+ params.put("url", configService.get("spike_goods_link"));
+ JumpDetailV2 jumpDetail = jumpDetailV2Service.getByTypeCache("web");
- // 涓嬩竴娆″�掕鏃剁殑鏃堕棿
- 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;
- }
-
- 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);
-
- JSONObject root = new JSONObject();
- root.put("time", nextTime.getTimeInMillis());
-
-
- JSONArray array = new JSONArray();
- String cachekey = "spikeGoodsList" ;
- String cacheValue = redisManager.getCommonString(cachekey);
- if (!StringUtil.isNullOrEmpty(cacheValue)) {
- array = JSONArray.fromObject(cacheValue);
- } else {
- BigDecimal proportion = manageService.getFanLiRate();
- Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
- .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
- // 缂撳瓨涓笉瀛樺湪
- List<QualityFactory> listGoods = qualityGoodsService.listFlashSaleRandGoods();
- if (listGoods == null) {
- listGoods = new ArrayList<QualityFactory>();
- }
- /* 閬嶅巻鍒楄〃鏁版嵁 */
- for (QualityFactory qualityFactory : listGoods) {
-
- TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
- if (taoBaoGoodsBrief == null) {
- continue;
- }
- array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
- }
- // 缂撳瓨鍗婁釜灏忔椂
- redisManager.cacheCommonString(cachekey, array.toString(), 60 * 30);
- }
- root.put("listgoods", array);
+ JSONObject root = getSpikeGoodsContent(acceptData);
+ root.put("params", params);
+ root.put("jumpDetail", jumpDetail);
out.print(JsonUtil.loadTrueResult(root));
}
-
-
+
/**
* 鍟嗗搧鍩烘湰璇︽儏 (1.4.0)
*
@@ -1889,7 +1903,6 @@
TaoBaoGoodsBrief tb = null;
if (goodsList.size() > 0) {
tb = goodsList.get(0);
-
}
if (tb == null) {
@@ -1918,9 +1931,11 @@
goodsJson.put("price", tb.getReservePrice().toString());
goodsJson.put("zkPrice", tb.getZkPrice().toString());
+
// 30澶╅攢閲�
goodsJson.put("saleCount", TaoBaoUtil.getSaleCount(tb.getBiz30day()));
-
+ goodsJson.put("salesCount", TaoBaoUtil.getSaleCount(tb.getBiz30day()));
+
// 鍒嗕韩璧�
BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb);
data.put("shareMoney", "楼" + shareMoney);
@@ -2011,6 +2026,11 @@
}
goodsJson.put("hongBao", hongBao);
+ List<ClientTextStyleVO> labels = new ArrayList<>();
+ labels.add(new ClientTextStyleVO("鏍囩娴嬭瘯鍐呭", "#FF0000"));
+ labels.add(new ClientTextStyleVO("鏍囩娴嬭瘯鍐呭", "#00FF00"));
+ goodsJson.put("labels", labels);
+
data.put("tbPidInfo", clientTBPid);
String jumpUrl = "https://item.taobao.com/item.htm?id=" + tb.getAuctionId();
@@ -2039,7 +2059,17 @@
}
}
// 搴楅摵
- goodsJson.put("shopInfo", tbShopInfo);
+ if (("android".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) >= 40)
+ || ("ios".equalsIgnoreCase(acceptData.getPlatform())
+ && Integer.parseInt(acceptData.getVersion()) >= 49)) {
+ TaoBaoShop shop = taoBaoShopService.getTaoBaoShop(goods.getAuctionId(), goods.getSellerId());
+ if (shop != null)
+ goodsJson.put("shopInfo", shop);
+ } else {
+ goodsJson.put("shopInfo", tbShopInfo);
+ }
+
+ goodsJson.put("fanliValid",Math.random()>0.5? true:false);// 鏄惁鏈夎繑鍒�
// 鍒嗕韩璺緞
String shareUrl = String.format("%s?id=" + tb.getAuctionId(), Constant.systemCommonConfig.getAppShareInfoUrl());
--
Gitblit v1.8.0