fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsClassController.java
@@ -8,6 +8,7 @@ import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -46,11 +47,13 @@ import com.yeshi.fanli.service.inter.lable.QualityFactoryService; import com.yeshi.fanli.service.inter.lable.QualityGoodsService; import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService; import com.yeshi.fanli.service.inter.monitor.MonitorService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.Utils; import com.yeshi.fanli.util.factory.MonitorFactory; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import org.yeshi.utils.JsonUtil; @@ -102,6 +105,9 @@ @Resource private QualityGoodsService qualityGoodsService; @Resource private MonitorService monitorService; /** * 获取主类目 @@ -348,8 +354,10 @@ * @param page * @param scid * @param filter * @param order 来源:【推荐:0 | 综合:4 、综合只看有券 1 、综合只看天猫 1 | 价格:低到高3 高到低2 | 销量:1】 * 排序值:【销量由高到低: 1 ; 销量由低到高 5; 价格从高到低: 2 ; 价格从低到高:3 ; 推广量高到低:4 ; 其他默认: 销量由高到低】 * @param order * 来源:【推荐:0 | 综合:4 、综合只看有券 1 、综合只看天猫 1 | 价格:低到高3 高到低2 | 销量:1】 * 排序值:【销量由高到低: 1 ; 销量由低到高 5; 价格从高到低: 2 ; 价格从低到高:3 ; 推广量高到低:4 ; * 其他默认: 销量由高到低】 * * @param startprice * 起始价格 @@ -397,7 +405,6 @@ systemCid = rootClass.getId(); } // page从1开始 page += 1; // 请求淘宝接口页码 @@ -409,8 +416,8 @@ if (!StringUtil.isNullOrEmpty(order) && Integer.parseInt(order) == 0) { // 分类关联标签id集合 List<Long> listLabId = labelClassService.getRelationLabIds((page - 1) * pageSize, pageSize, goodsSubClass.getId()); List<Long> listLabId = labelClassService.getRelationLabIds((page - 1) * pageSize, pageSize, goodsSubClass.getId()); /* 计算精选库数据 总页数 */ long incount = taoKeGoodsService.countByQuality(searchKey, systemCid, listLabId); @@ -419,12 +426,11 @@ pageNo = page - totalPage; /* 查询精选库数据 */ if (pageNo <= 0 ) { List<QualityFactory> listQuality = taoKeGoodsService.queryByQuality((page - 1) * pageSize, pageSize,searchKey, systemCid, listLabId); List<QualityFactory> listQuality = taoKeGoodsService.queryByQuality((page - 1) * pageSize, pageSize, searchKey, systemCid, listLabId); List<TaoBaoGoodsBrief> searchWuLiaoList = null; @@ -469,10 +475,9 @@ return; } if (pageNo > 0 && totalPage > 0) { List<QualityFactory> list = taoKeGoodsService.queryByQuality((totalPage - 1) * pageSize, pageSize, searchKey, systemCid, listLabId); List<QualityFactory> list = taoKeGoodsService.queryByQuality((totalPage - 1) * pageSize, pageSize, searchKey, systemCid, listLabId); if (list != null && list.size() != 0 && list.size() < 10) { // 页码+ 1 已请求一次淘宝接口 @@ -480,7 +485,6 @@ } } } /* 网络请求 */ SearchFilter searchfilter = null; @@ -510,7 +514,8 @@ } else { searchfilter = new SearchFilter(); // 设置SearchFilter taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter, totalSales); taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter, totalSales); } searchfilter.setPage(pageNo); @@ -673,7 +678,7 @@ } @RequestMapping("getCouponList") public void getCouponList(AcceptData acceptData, int page, PrintWriter out) { public void getCouponList(AcceptData acceptData, int page, HttpServletRequest request, PrintWriter out) { page = page > 0 ? page : 1; List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = taoBaoCouponService.getTaoBaoCouponList(page); Map<String, String> map = manageService.convertMap(); @@ -692,6 +697,12 @@ data.put("taoBaoCoupons", array); data.put("count", count); out.print(JsonUtil.loadTrueResult(data)); try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, null)); } catch (Exception e) { e.printStackTrace(); } } /** @@ -799,8 +810,7 @@ @RequestMapping(value={"getcategory"}, method={org.springframework.web.bind.annotation.RequestMethod.POST}) public void getcategory(AcceptData acceptData, PrintWriter out) { com.yeshi.fanli.entity.system.System system = this.systemService .getSystemCache(acceptData.getPlatform(), com.yeshi.fanli.entity.system.System system = this.systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("系统不存在")); fanli/src/main/java/com/yeshi/fanli/controller/client/GoodsController.java
@@ -3,6 +3,7 @@ import java.io.PrintWriter; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -14,8 +15,11 @@ import com.yeshi.fanli.entity.taobao.TaoBaoLink; import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig; import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.monitor.MonitorService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; import com.yeshi.fanli.service.inter.user.TBPidService; import com.yeshi.fanli.util.factory.MonitorFactory; import org.yeshi.utils.JsonUtil; import net.sf.json.JSONObject; @@ -33,6 +37,9 @@ @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; @Resource private MonitorService monitorService; /** * 获取淘宝的分享链接 * @@ -43,7 +50,8 @@ * @param out */ @RequestMapping(value = "gettaobaolink") public void getTaobaoShareLink(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) { public void getTaobaoShareLink(AcceptData acceptData, Long uid, Long auctionId, HttpServletRequest request, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; @@ -68,7 +76,14 @@ data.put("type", 1); data.put("link", link); out.print(JsonUtil.loadTrueResult(data)); } catch (Exception e) { try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, "购买淘宝商品转链出错")); } catch (Exception e1) { e1.printStackTrace(); } TBPid tbPid = null; if (acceptData.getPlatform().equalsIgnoreCase("android")) { tbPid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_ANDROID); fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -9,26 +9,11 @@ import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -36,7 +21,6 @@ import org.yeshi.utils.IPUtil; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.NumberUtil; import org.yeshi.utils.taobao.TbImgUtil; @@ -97,6 +81,7 @@ import com.yeshi.fanli.service.inter.homemodule.SuperSpecialService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.lable.QualityGoodsService; import com.yeshi.fanli.service.inter.monitor.MonitorService; import com.yeshi.fanli.service.inter.order.OrderService; import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; @@ -111,6 +96,7 @@ import com.yeshi.fanli.util.ThreadUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.Utils; import com.yeshi.fanli.util.factory.MonitorFactory; import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; @@ -210,6 +196,8 @@ @Resource private ShamUserService shamUserService; @Resource private MonitorService monitorService; @RequestMapping(value = "getrecommendsection") public void getRecommendSection(AcceptData acceptData, int index, PrintWriter out) { @@ -767,7 +755,8 @@ // 新版商品图文详情 @RequestMapping(value = "getnewgoodsdetail", method = RequestMethod.POST) public void getNewGoodsDetail(AcceptData acceptData, String id, String uid, PrintWriter out) { public void getNewGoodsDetail(AcceptData acceptData, String id, String uid, HttpServletRequest request, PrintWriter out) { if ("0".equalsIgnoreCase(uid)) uid = ""; if (StringUtil.isNullOrEmpty(id)) { @@ -864,12 +853,21 @@ } catch (NumberFormatException e) { e.printStackTrace(); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, "商品下架")); } catch (Exception e1) { e1.printStackTrace(); } } } else { try { goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id)); } catch (TaobaoGoodsDownException e) { try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, "商品下架")); } catch (Exception e1) { e1.printStackTrace(); } // 商品下架 ThreadUtil.run(new Runnable() { public void run() { @@ -1399,7 +1397,8 @@ * -IOS的idfa广告标识信息 */ @RequestMapping(value = "guessLikeByDevice") public void guessUserLikeByDevice(AcceptData acceptData, String imei, String idfa, int page, PrintWriter out) { public void guessUserLikeByDevice(AcceptData acceptData, String imei, String idfa, int page, HttpServletRequest request, PrintWriter out) { int pageSize = Constant.PAGE_SIZE; JSONArray array = new JSONArray(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); @@ -1412,7 +1411,6 @@ if (!StringUtil.isNullOrEmpty(imei) || !StringUtil.isNullOrEmpty(idfa)) { long startTime = java.lang.System.currentTimeMillis(); TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(page, 50, imei, idfa); LogHelper.test("首页为你推荐(淘宝)加载时间:" + (java.lang.System.currentTimeMillis() - startTime)); if (result != null && result.getTaoBaoGoodsBriefs() != null) { // 筛选 @@ -1424,11 +1422,24 @@ && goods.getBiz30day() > 1000) goodsList.add(goods); } try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, (int) (java.lang.System.currentTimeMillis() - startTime), "推荐数量:" + goodsList.size())); } catch (Exception e) { e.printStackTrace(); } Collections.shuffle(goodsList); goodsList = goodsList.size() > 20 ? goodsList.subList(0, 20) : goodsList; for (TaoBaoGoodsBrief goods : goodsList) { array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion, fcRate, ""))); } } else { try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, (int) (java.lang.System.currentTimeMillis() - startTime), "无推荐")); } catch (Exception e) { e.printStackTrace(); } } } @@ -1482,8 +1493,7 @@ RecommendBannerV2 recommendBanner = superRecommendBanner.getRecommendBanner(); // 淘特价暂时修改 if (system.getId() == 7) { recommendBanner.getJumpDetail().setActivity( recommendBanner.getJumpDetail().getActivity() recommendBanner.getJumpDetail().setActivity(recommendBanner.getJumpDetail().getActivity() .replace("com.yeshi.ec.rebate.myapplication", "com.yeshi.ec.taospecial")); } @@ -1560,9 +1570,9 @@ out.print(JsonUtil.loadTrueResult(root)); } /** * 商品基本详情 (1.4.0) * * @param acceptData * @param id * @param uid @@ -1599,7 +1609,6 @@ // 获取淘客参数 ClientTBPid clientTBPid = null; if (StringUtil.isNullOrEmpty(uid)) { // 用户未登录 @@ -1642,7 +1651,6 @@ } LogHelper.test("获取PID耗时:" + (java.lang.System.currentTimeMillis() - startTime)); final String clientPid = clientTBPid.getPid(); final List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); @@ -1737,7 +1745,6 @@ finalImgList.add(img); } JSONObject goods = new JSONObject(); goods.put("auctionId", tb.getAuctionId()); goods.put("imgList", finalImgList); @@ -1745,7 +1752,6 @@ goods.put("userType", tb.getUserType() == 1 ? 2 : 1); goods.put("price", tb.getReservePrice().toString()); goods.put("zkPrice", tb.getZkPrice().toString()); // 红包 String rateStr = hongBaoManageService.get("hongbao_goods_proportion"); @@ -1764,14 +1770,14 @@ if (StringUtil.isNullOrEmpty(uid)) { data.put("collected", false); } else { CollectionGoods collectionGoods = collectionGoodsService.findByUidAndAuctionId(Long.parseLong(uid), Long.parseLong(id)); CollectionGoods collectionGoods = collectionGoodsService.findByUidAndAuctionId(Long.parseLong(uid), Long.parseLong(id)); data.put("collected", collectionGoods != null ? true : false); } // 测试 SystemClientParams params = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, "goods_detail_jump_taobao"); SystemClientParams params = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, "goods_detail_jump_taobao"); if ("1".equalsIgnoreCase((params.getValue() + "").trim())) { data.put("native", true); } else { @@ -1798,11 +1804,13 @@ if (convertInServer && !StringUtil.isNullOrEmpty(tb.getCouponLink())) { couponInfo.put("couponUrl", tb.getCouponLink()); } else { couponInfo.put("couponUrl", TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId() + "", pid, tb.getAuctionId() + "")); couponInfo.put("couponUrl", TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId() + "", pid, tb.getAuctionId() + "")); } couponInfo.put("couponAmount", NumberUtil.subZeroAndDot(tb.getCouponAmount().toString())); couponInfo.put("couponTime", "使用期限:" + tb.getCouponEffectiveStartTime().replace("-", ".") + "-" + tb.getCouponEffectiveEndTime().replace("-", ".")); couponInfo.put("couponTime", "使用期限:" + tb.getCouponEffectiveStartTime().replace("-", ".") + "-" + tb.getCouponEffectiveEndTime().replace("-", ".")); goods.put("couponInfo", couponInfo); // 领券人列表 @@ -1814,7 +1822,8 @@ String jumpUrl = "https://item.taobao.com/item.htm?id=" + tb.getAuctionId(); if (!StringUtil.isNullOrEmpty(tb.getCouponActivityId())) {// 有券,跳转券链接 jumpUrl = TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId(), clientTBPid.getPid(), "" + tb.getAuctionId()); jumpUrl = TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId(), clientTBPid.getPid(), "" + tb.getAuctionId()); } // 设置跳转链接 @@ -1856,8 +1865,7 @@ ScanHistory sh = TaoBaoUtil.getScanHistory(goodsInfo); sh.setId(0); sh.setDevice(acceptData.getDevice()); sh.setSystem(systemService.getSystem(acceptData.getPlatform(), acceptData.getPackages())); sh.setSystem(systemService.getSystem(acceptData.getPlatform(), acceptData.getPackages())); sh.setCreatetime(new Date()); if (!StringUtil.isNullOrEmpty(tempUid)) { sh.setUid(Long.parseLong(tempUid)); @@ -1871,9 +1879,9 @@ }); } /** * 获取图文详情(1.4.0) * * @param acceptData * @param id * @param out @@ -1921,6 +1929,7 @@ /** * 商品详情推荐1.4.0 * * @param acceptData * @param id * @param out @@ -2016,7 +2025,6 @@ }); List<TaoBaoGoodsBrief> listQuality = new ArrayList<TaoBaoGoodsBrief>(); try { @@ -2051,7 +2059,6 @@ } catch (Exception e2) { e2.printStackTrace(); } // 取偶数个数据 if (listExtra.size() % 2 != 0) { fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java
@@ -7,6 +7,7 @@ import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -22,9 +23,11 @@ import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.monitor.MonitorService; import com.yeshi.fanli.util.AESUtil; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.factory.MonitorFactory; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import net.sf.json.JSONObject; @@ -41,6 +44,9 @@ @Resource private HongBaoManageService hongBaoManageService; @Resource private MonitorService monitorService; // 获取商品分享链接 @RequestMapping(value = "getGoodsShareUrl") @@ -59,7 +65,8 @@ * @param out */ @RequestMapping(value = "gettaobaosharelink") public void getTaobaoShareLink(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) { public void getTaobaoShareLink(AcceptData acceptData, Long uid, Long auctionId, HttpServletRequest request, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; @@ -85,7 +92,8 @@ data.put("clickUrl", url); data.put("token", taoBaoLink.getTaoToken()); data.put("rule", "http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0"); data.put("rule", "http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0"); data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500)); String shareText = ""; @@ -141,6 +149,10 @@ }); return; } catch (ShareGoodsException e) { try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "分享出错")); } catch (Exception e1) { } out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); }