From 923ff69b123119ce1de5d93fb92aaeda10be555f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 11 七月 2019 18:43:50 +0800
Subject: [PATCH] --
---
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java | 352 +++++++++++++++++++++++++++++++++-------------------------
1 files changed, 201 insertions(+), 151 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java b/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
index 7152196..ea63ae3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -4,7 +4,6 @@
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import javax.annotation.Resource;
@@ -12,45 +11,44 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.taobao.TbImgUtil;
import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
-import com.yeshi.fanli.entity.bus.recommend.RecommendSection;
-import com.yeshi.fanli.entity.bus.recommend.RecommendSectionGoods;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
-import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendSection;
-import com.yeshi.fanli.entity.system.System;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
+import com.yeshi.fanli.entity.system.BusinessSystem;
+import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
-import com.yeshi.fanli.entity.taobao.TBPid;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
+import com.yeshi.fanli.exception.ShareGoodsException;
+import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
-import com.yeshi.fanli.service.inter.config.SystemService;
-import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
-import com.yeshi.fanli.service.inter.goods.SuperRecommendSectionService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
-import com.yeshi.fanli.service.inter.user.ScanHistoryService;
+import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.user.TBPidService;
+import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.Utils;
+import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller
@@ -64,19 +62,13 @@
private SuperRecommendBannerService superRecommendBannerService;
@Resource
- private SuperRecommendSectionService superRecommendSectionService;
-
- @Resource
private HongBaoManageService hongBaoManageService;
-
- @Resource
- private RecommendSectionGoodsService recommendSectionGoodsService;
@Resource
private RedisManager redisManager;
@Resource
- private SystemService systemService;
+ private BusinessSystemService businessSystemService;
@Resource
private ConfigService configService;
@@ -88,9 +80,6 @@
private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
@Resource
- private ScanHistoryService scanHistoryService;
-
- @Resource
private TBPidService tbPidService;
@Resource
@@ -98,6 +87,13 @@
@Resource
private TaoBaoUnionConfigService taoBaoUnionConfigService;
+
+ @Resource
+ private UserShareGoodsGroupService userShareGoodsGroupService;
+
+ @Resource
+ private UserTaoLiJinRecordService userTaoLiJinRecordService;
+
/**
*
@@ -110,7 +106,8 @@
@RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
- System system = systemService.getSystem("WEB", Constant.systemCommonConfig.getH5PackageName());
+ BusinessSystem system = businessSystemService.getBusinessSystem("WEB",
+ Constant.systemCommonConfig.getH5PackageName());
JSONObject json = new JSONObject();
if (system == null) {
out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NOSYSTEM));
@@ -152,94 +149,69 @@
}
/**
+ * 澶勭悊鏉′欢
*
- * 鏂规硶璇存槑: 鎺ㄨ崘鍟嗗搧鍒楄〃
- *
- * @author mawurui createTime 2018骞�5鏈�11鏃� 涓婂崍11:26:03
- * @param acceptData
- * @param index
+ * @param uid
+ * @param tid
* @param out
*/
- @RequestMapping(value = "getRecommendSection", method = RequestMethod.GET)
- public void getRecommendSection(AcceptData acceptData, String callback, PrintWriter out) {
-
- System system = systemService.getSystem("WEB", Constant.systemCommonConfig.getH5PackageName());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NOSYSTEM));
+ private void doTaoLiJin(String callback, Long uid, Long tid, PrintWriter out) {
+ // 鏌ヨ鍟嗗搧娣樼ぜ閲�
+ UserTaoLiJinRecord record = userTaoLiJinRecordService.selectByPrimaryKey(tid);
+ if (record == null) {
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
return;
}
- List<SuperRecommendSection> superRecommendSectionList = superRecommendSectionService
- .getSuperRecommendSectionBySystemId(system.getId());
- List<RecommendSection> recommendSectionList = null;
- for (SuperRecommendSection superRecommendSection : superRecommendSectionList) {
- if (recommendSectionList == null) {
- recommendSectionList = new ArrayList<RecommendSection>();
- }
- RecommendSection recommendSection = superRecommendSection.getRecommendSection();
-
- // 鏆傛椂鏀瑰彉娣樼壒浠风殑璺宠浆鍦板潃
- if (system.getId() == 7) {
- recommendSection.setJumpUrl(recommendSection.getJumpUrl().replace("column.html", "column_ttj.html"));
- }
-
- recommendSectionList.add(recommendSection);
+
+ Long auctionId = record.getGoodsId();
+ String tljLink = record.getSendUrl();
+ BigDecimal tljMoney= record.getPerFace();
+
+ TaoBaoGoodsBrief goods = null;
+ try {
+ goods = redisManager.getTaoBaoGoodsBrief(auctionId);
+ } catch (TaobaoGoodsDownException e) {
}
- if (recommendSectionList == null) {
- out.print(JsonUtil.loadFalseResult(1, H5ControllerUtil.NODATA));
+
+ if (goods == null) {// 宸茬粡涓嬬嚎
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
return;
}
- Utils.sort(recommendSectionList);
- int size = recommendSectionList.size();
- List<RecommendSectionGoods> recommendSectionGoodsList = null;
+ String token = redisManager.getTLJToken(tljLink);
+ if (StringUtil.isNullOrEmpty(token)) {
+ token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), tljLink);
+ }
+
+ // 鍒稿悗浠�
+ BigDecimal afterCouponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
+ TaoBaoLink link = new TaoBaoLink();
+ link.setTaoToken(token);
+
JSONObject data = new JSONObject();
- data.put("count", size);
- JSONArray dataArr = new JSONArray();
- JSONObject validData = null;
- Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
- .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
- Map<String, String> convertMap = hongBaoManageService.convertMap();
- String proportion = convertMap.get("hongbao_goods_proportion");
- String fcRate = convertMap.get("hongbao_fc_ratio");
-
- Map<Long, List<RecommendSectionGoods>> map = recommendSectionGoodsService.getAllSectionGoodsMap();
- for (int i = 0; i < size; i++) {
- validData = new JSONObject();
- RecommendSection recommendSection = recommendSectionList.get(i);
- recommendSectionGoodsList = map.get(recommendSection.getId());
- if (recommendSectionGoodsList == null) {
- continue;
- }
- Utils.sort(recommendSectionGoodsList);
- if (recommendSection.getCounts() < recommendSectionGoodsList.size()) {
- recommendSectionGoodsList = recommendSectionGoodsList.subList(0, recommendSection.getCounts());
- }
- validData.put("count", recommendSectionGoodsList.size());
- validData.put("recommendSection", gson.toJson(recommendSection));
-
- // 鏇挎崲TaoBaoGoodsBrief
- JSONArray array = new JSONArray();
- Gson gson2 = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
- for (RecommendSectionGoods rss : recommendSectionGoodsList) {
- JSONObject obj = JSONObject.fromObject(gson2.toJson(rss));
- String json = gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(
- gson2.fromJson(obj.optJSONObject("taoBaoGoodsBrief").toString(), TaoBaoGoodsBrief.class),
- proportion, fcRate, ""));
- obj.put("taoBaoGoodsBrief", json);
- array.add(obj);
- }
-
- validData.put("recommendSectionGoodsList", array);
- dataArr.add(validData);
+ data.put("title", goods.getTitle());
+ if (goods.getImgList() == null)
+ goods.setImgList(new ArrayList<>());
+ goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
+ data.put("imgs", goods.getImgList());
+ data.put("couponPrice", afterCouponPrice);
+ // 鑰佺増鏈吋瀹�
+ data.put("quanPrice", afterCouponPrice);
+ data.put("zkPrice", goods.getZkPrice());
+ data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
+ data.put("token", link.getTaoToken());
+ data.put("reservePrice", goods.getReservePrice());
+ data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
+ if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
+ data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
+ data.put("coupon", true);
+ } else {
+ data.put("coupon", false);
}
- data.put("data", dataArr);
-
- String result = JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data));
- if (Constant.IS_OUTNET)
- redisManager.cacheCommonString("client-api-getRecommendSection", result, 3 * 60);
-
- out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(result)));
- return;
+
+ data.put("tljMoney", tljMoney);
+
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
}
/**
@@ -255,7 +227,7 @@
@SuppressWarnings("unused")
@RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
- public void getGoodsDetail(final AcceptData acceptData, final String id, String uid, String callback,
+ public void getGoodsDetail(final AcceptData acceptData, final String id, String tid, String uid, String callback,
PrintWriter out) {
long begin = java.lang.System.currentTimeMillis();
if (StringUtil.isNullOrEmpty(id)) {
@@ -263,86 +235,164 @@
return;
}
- List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
- UserShareGoodsHistory shareHistory = null;
- String pid = configList.get(0).getDefaultPid();
if (!StringUtil.isNullOrEmpty(uid)) {
- try {
- uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
- TBPid tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_SHARE_GOODS);
- if (tbPid != null)
- pid = tbPid.getPid();
+ uid = AESUtil.decrypt(uid, Constant.UIDAESKEY);
+ }
- // 鏌ヨ璇ID,UID,鍟嗗搧ID涓嬫槸鍚︽湁杩欎釜鍟嗗搧鐨勪俊鎭�
- // 鍒ゆ柇杩欎釜浜у搧鏄惁浠嶢PP涓垎浜�屾潵
- try {
- shareHistory = shareGoodsService.getShareGoodsHistoryDetail(Long.parseLong(uid),
- Long.parseLong(id));
- } catch (Exception e) {
-
- }
-
- } catch (Exception e) {
-
- }
+ if (!StringUtil.isNullOrEmpty(tid)) {
+ tid = AESUtil.decrypt(tid, Constant.UIDAESKEY);
+ doTaoLiJin(callback, StringUtil.isNullOrEmpty(uid) || Long.parseLong(uid) == 0 ? null : Long.parseLong(uid),
+ Long.parseLong(tid), out);
+ return;
}
TaoBaoGoodsBrief goods = null;
- try {
+ String token = null;
+ if (!StringUtil.isNullOrEmpty(uid)) {
+ // 鏌ヨ鏄惁鏈夊垎浜褰�
+ UserShareGoodsHistory shareHistory = null;
+ try {
+ shareHistory = shareGoodsService.getShareGoodsHistoryDetail(Long.parseLong(uid), Long.parseLong(id));
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ } catch (ShareGoodsException e) {
+ e.printStackTrace();
+ }
+
+ if (shareHistory != null) {// 鏈夊垎浜褰�
+ token = shareHistory.getTkCode();
+ goods = redisManager.getTaoBaoGoodsTemp(Long.parseLong(id));
+ if (goods == null)
+ try {
+ goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id));
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ } catch (TaobaoGoodsDownException e) {
+ e.printStackTrace();
+ }
+
+ } else {// 娌℃湁鍒嗕韩璁板綍锛岄渶瑕佺洿鎺ュ垎浜�
+ List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
+ .getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
+ String pid = null;
+ ClientTBPid tbPid = tbPidService.getSharePid();
+ if (tbPid != null)
+ pid = tbPid.getPid();
+ else {
+ pid = configList.get(0).getDefaultPid();
+ }
+
+ // 鑾峰彇
+ TaoKeAppInfo app = new TaoKeAppInfo();
+ app.setAdzoneId(pid.split("_")[3]);
+ app.setAppKey(configList.get(0).getAppKey());
+ app.setAppSecret(configList.get(0).getAppSecret());
+ app.setPid(pid);
+ try {
+ goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ } catch (TaobaoGoodsDownException e) {
+ e.printStackTrace();
+ }
+ if (goods != null) {
+ String url = goods.getAuctionUrl();
+ if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
+ url = goods.getCouponLink();
+ }
+ token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
+ }
+ }
+
+ } else {
+ List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService
+ .getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS);
+ String pid = tbPidService.getSharePid().getPid();
TaoKeAppInfo app = new TaoKeAppInfo();
app.setAdzoneId(pid.split("_")[3]);
app.setAppKey(configList.get(0).getAppKey());
app.setAppSecret(configList.get(0).getAppSecret());
app.setPid(pid);
- goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
- } catch (NumberFormatException e) {
- e.printStackTrace();
- } catch (TaobaoGoodsDownException e) {
- e.printStackTrace();
+ try {
+ goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ } catch (TaobaoGoodsDownException e) {
+ e.printStackTrace();
+ }
+ if (goods != null) {
+ String url = goods.getAuctionUrl();
+ if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {
+ url = goods.getCouponLink();
+ }
+ if (!url.contains("uland.taobao.com") && !url.contains("s.click.taobao.com")) {
+ TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(Long.parseLong(id), app);
+ url = linkInfo.getCouponLink();
+ if (StringUtil.isNullOrEmpty(url))
+ url = linkInfo.getAuctionUrl();
+ }
+
+ token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
+ }
}
+
if (goods == null) {
out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍟嗗搧淇℃伅鑾峰彇澶辫触")));
return;
}
- // 鍒稿悗浠�
- BigDecimal afterCouponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
- TaoBaoLink link = null;
-
- if (shareHistory != null) {
- link = new TaoBaoLink();
- link.setTaoToken(shareHistory.getTkCode());
- } else {
- link = new TaoBaoLink();
- try {
- String url = goods.getCouponLink();
- if (StringUtil.isNullOrEmpty(url))
- url = goods.getAuctionUrl();
- String tbk = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url);
- link.setTaoToken(tbk);
- } catch (Exception e) {
- link = null;
- }
- }
- if (link == null) {
- out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("娣樺彛浠ょ敓鎴愬け璐�")));
+ if (StringUtil.isNullOrEmpty(token)) {
+ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鍙d护鐢熸垚澶辫触")));
return;
}
+
+ // 鍒稿悗浠�
+ BigDecimal afterCouponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
+ TaoBaoLink link = new TaoBaoLink();
+ link.setTaoToken(token);
JSONObject data = new JSONObject();
data.put("title", goods.getTitle());
if (goods.getImgList() == null)
goods.setImgList(new ArrayList<>());
- goods.getImgList().add(0, goods.getPictUrl());
+ goods.getImgList().add(0, TbImgUtil.getTBSizeImg(goods.getPictUrl(), 300));
data.put("imgs", goods.getImgList());
+ data.put("couponPrice", afterCouponPrice);
+ // 鑰佺増鏈吋瀹�
data.put("quanPrice", afterCouponPrice);
data.put("zkPrice", goods.getZkPrice());
data.put("shareContent", "闀挎寜澶嶅埗鏈鏂囧瓧锛屾墦寮�銆愭墜鏈烘窐瀹濄�戝嵆鍙鍙栥�愮壒鍒紭鎯犲埜銆戣喘涔颁笅鍗曪紝");
data.put("token", link.getTaoToken());
- data.put("quan", !StringUtil.isNullOrEmpty(goods.getCouponInfo()));
data.put("reservePrice", goods.getReservePrice());
data.put("shopType", goods.getUserType() == 1 ? 2 : 1);
+ if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && !"鏃�".equalsIgnoreCase(goods.getCouponInfo())) {
+ data.put("couponAmount", MoneyBigDecimalUtil.getWithNoZera(goods.getCouponAmount()));
+ data.put("coupon", true);
+ // 鑰佺増鏈吋瀹�
+ data.put("quan", true);
+ } else {
+ data.put("coupon", false);
+ // 鑰佺増鏈吋瀹�
+ data.put("quan", true);
+ }
+
out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+
+ final String tempUid = uid;
+ ThreadUtil.run(new Runnable() {
+
+ @Override
+ public void run() {
+ try {
+ if (!StringUtil.isNullOrEmpty(tempUid))
+ userShareGoodsGroupService.updateBrowseRecord(Long.parseLong(tempUid), Long.parseLong(id), 1);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ } catch (UserShareGoodsRecordException e) {
+ e.printStackTrace();
+ }
+ }
+ });
return;
}
}
--
Gitblit v1.8.0