fanli/src/main/java/com/yeshi/fanli/controller/TestController.java
@@ -70,6 +70,7 @@ import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.push.OPPOPushUtil; import com.yeshi.fanli.util.push.VIVOPushUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.vo.goods.GoodsDetailVO; @@ -120,10 +121,9 @@ @Resource private JedisPool jedisPool; @Resource private IntegralGetService integralGetService; @RequestMapping(value = "testimg") public void testImg(HttpServletRequest request, PrintWriter out) { @@ -583,29 +583,28 @@ } out.print("success"); } } @RequestMapping(value = "testListTLJGoods") public void getGoodsList(String callback,PrintWriter out) { public void getGoodsList(String callback, PrintWriter out) { SearchFilter sf = new SearchFilter(); sf.setQuan(1); sf.setTmall(true); // sf.setEndPrice(new BigDecimal(1000)); // sf.setEndPrice(new BigDecimal(1000)); sf.setPage(1); sf.setPage(100); sf.setCateIds("16"); sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW); TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf); Gson gson = new Gson(); JSONArray array=new JSONArray(); JSONArray array = new JSONArray(); for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) { array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, "100", null))); } out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(array))); } /** * 插入邀请素材 * @@ -622,5 +621,25 @@ e.printStackTrace(); } } @RequestMapping("pushVIVO") public void pushVIVO(PrintWriter out) { List<String> regList = new ArrayList<>(); regList.add("15710270630271520610033"); // regList.add("15711218630321520681531"); // try { // VIVOPushUtil.pushUrl(regList, "标题", "网页内容", "http://www.baidu.com"); // } catch (Exception e) { // } try { VIVOPushUtil.pushBaiChuanUrl(regList, "标题", "百川内容", "http://www.taobao.com");// 有bug // VIVOPushUtil.pushGoods(regList, "标题", "商品内容", 2, 100005625634L); // VIVOPushUtil.pushUserSignInNotification(regList, "标题", "签到"); // VIVOPushUtil.pushWelfareCenter(regList,"标题", "福利中心"); } catch (PushException e) { e.printStackTrace(); } } } fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java
@@ -42,7 +42,6 @@ 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.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @@ -157,6 +156,14 @@ return; } try { // 日志记录 String info = String.format("type=buy&uid=%s&goodsId=%s&source=%s&goodsType=%s", uid, auctionId, source, Constant.SOURCE_TYPE_TAOBAO); LogHelper.orderInfo(info); } catch (Exception e) { } TaoBaoGoodsBrief goods = null; try { fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareControllerV2.java
@@ -166,10 +166,16 @@ @RequestMapping(value = "createShareInfo") public void createShareInfo(AcceptData acceptData, Long uid, Long goodsId, String source, Integer totalNum, Integer goodsType, HttpServletRequest request, PrintWriter out) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空")); return; } try { // 日志记录 String info = String.format("type=share&uid=%s&goodsId=%s&source=%s&goodsType=%s", uid, goodsId, source, goodsType); LogHelper.orderInfo(info); } catch (Exception e) { } UserInfo user = userInfoService.getUserByIdWithMybatis(uid); @@ -254,7 +260,8 @@ String shareText = ""; // 无券 String shopType = taoBaoLink.getGoods().getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO : TaoBaoConstant.SHARE_PRICE_TM; String shopType = taoBaoLink.getGoods().getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO : TaoBaoConstant.SHARE_PRICE_TM; if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) { String text = shareGoodsTextTemplateService.getCommonTemplate(uid); @@ -437,7 +444,8 @@ shareInfo.setPictUrl(TbImgUtil.getTBSizeImg(goods.getPictUrl(), 500)); // 无券 String shopType = goods.getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO :TaoBaoConstant.SHARE_PRICE_TM; String shopType = goods.getUserType() == 0 ? TaoBaoConstant.SHARE_PRICE_TAOBAO : TaoBaoConstant.SHARE_PRICE_TM; String shareText = ""; if (StringUtil.isNullOrEmpty(goods.getCouponInfo())) { fanli/src/main/java/com/yeshi/fanli/job/TaoLiJinJob.java
@@ -54,8 +54,6 @@ @Resource private UserTaoLiJinOriginService userTaoLiJinOriginService; /** * 每天凌晨过5分钟验证 */ @@ -140,8 +138,8 @@ */ @Scheduled(cron = "0 1 5 * * ? ") public void autoAddTLJBuyGoods2() { // if (!Constant.IS_TASK) // return; if (!Constant.IS_TASK) return; LogHelper.test("自购立减开始选品"); String day = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"); // 重试3次 fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateCommonOrderJob.java
File was deleted fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateOrderJob.java
@@ -121,37 +121,8 @@ } public void updateOrder(long startTime, long endTime) { // 老版本处理方式 // List<TaoBaoUnionConfig> configList = // taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); // List<TaoBaoOrder> orderList = new ArrayList<>(); // try { // orderList = TaoBaoOrderUtil.getOrderList(startTime, endTime, // configList.get(0)); // } catch (TaoBaoOrderException e2) { // try { // LogHelper.errorDetailInfo(e2); // } catch (Exception e) { // e.printStackTrace(); // } // } // List<TaoBaoOrder> thirdOrderList = new ArrayList<>(); // try { // thirdOrderList = TaoBaoOrderUtil.getThirdServiceOrderList(startTime, // endTime, configList.get(0)); // } catch (TaoBaoOrderException e2) { // try { // LogHelper.errorDetailInfo(e2); // } catch (Exception e) { // e.printStackTrace(); // } // } // if (thirdOrderList != null && thirdOrderList.size() > 0) // orderList.addAll(thirdOrderList); // 新版本处理方式 List<TaoBaoOrder> orderList = getCommonOrder(startTime, endTime); LogHelper.orderInfo("正在执行订单爬取结束,共有订单:" + orderList.size()); LogHelper.orderInfo("常规订单共有订单:" + orderList.size()); addOrder(orderList); try { Thread.sleep(10000); @@ -200,6 +171,7 @@ if (orderList != null) for (int i = 0; i < orderList.size(); i++) { LogHelper.orderInfo("常规订单爬取:" + orderList.get(i).getOrderId()); // 移除会员运营ID与渠道专属订单 if (orderList.get(i).getAdPositionName().contains("会员运营") || orderList.get(i).getAdPositionName().contains("渠道专属")) { @@ -256,59 +228,6 @@ } catch (Exception e) { LogHelper.errorDetailInfo(e); } } // 每15分钟爬取一次 @Scheduled(cron = "0 0/15 * * * ? ") public void doJob1() { if (!Constant.IS_TASK) return; long currentTime = System.currentTimeMillis() - 1000 * 60; String h = TimeUtil.getGernalTime(currentTime, "HH"); String m = TimeUtil.getGernalTime(currentTime, "mm"); int mm = Integer.parseInt(h) * 60 + Integer.parseInt(m); int pos = mm / 15; if (pos >= 90) pos = 89; long startTime = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(currentTime, "yyyy-MM-dd"), "yyyy-MM-dd") - (1000 * 60 * 60 * 24L * (90 - pos)); long endTime = startTime + 1000 * 60 * 60 * 24L; LogHelper.orderInfo("正在执行订单爬取..."); updateOrder(startTime, endTime); } // 淘宝推广订单 每隔3分13秒执行一次 @Scheduled(cron = "13 0/3 * * * ? ") public void doJob6() { if (!Constant.IS_TASK) return; Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); updateOrder(endTime - 1000 * 60 * 20L, endTime); } // 返利 @Scheduled(cron = "0 0/5 * * * ? ") public void doJob2() { if (!Constant.IS_TASK) return; LogHelper.error("处理返利到账前置"); try { doTaoBaoWeiQuanOrder(2); } catch (Exception e) { LogHelper.errorDetailInfo(e); } LogHelper.error("开始处理返利"); orderProcessService.fanli(); } // 每月25号9点执行返利 @Scheduled(cron = "0 0 9 25 * ? ") public void doJob3() { if (!Constant.IS_TASK) return; orderProcessService.fanliInvaiteAndShare(); } private void doTaoBaoWeiQuanOrder(int day) { @@ -372,20 +291,106 @@ } public void updateLocalTaoBaoOrder(Long startTime, Long endTime, int page, int count) { List<TaoBaoOrder> list = taoBaoOrderService.listBySettlementTime(startTime, endTime, page, count); Set<String> orderIds = new HashSet<>(); for (TaoBaoOrder co : list) { orderIds.add(co.getOrderId()); } for (Iterator<String> its = orderIds.iterator(); its.hasNext();) { String orderId = its.next(); // 查询是否有处于订单付款状态的单 List<CommonOrder> commonOrderList = commonOrderService .listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, orderId); boolean update = false; if (commonOrderList != null) for (CommonOrder co : commonOrderList) { if (co.getState() == CommonOrder.STATE_FK && co.getPayment().compareTo(new BigDecimal(0)) > 0) { update = true; break; } } if (update) { List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(orderId); Map<String, List<TaoBaoOrder>> orders = new HashMap<>(); orders.put(orderId, orderList); orderProcessService.processOrder(orders); } } } // 每15分钟爬取一次 @Scheduled(cron = "0 0/15 * * * ? ") public void pullCommonOrder() { LogHelper.job("正在执行15min订单爬取"); if (!Constant.IS_TASK) return; long currentTime = System.currentTimeMillis() - 1000 * 60; String h = TimeUtil.getGernalTime(currentTime, "HH"); String m = TimeUtil.getGernalTime(currentTime, "mm"); int mm = Integer.parseInt(h) * 60 + Integer.parseInt(m); int pos = mm / 15; if (pos >= 90) pos = 89; long startTime = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(currentTime, "yyyy-MM-dd"), "yyyy-MM-dd") - (1000 * 60 * 60 * 24L * (90 - pos)); long endTime = startTime + 1000 * 60 * 60 * 24L; updateOrder(startTime, endTime); } // 淘宝推广订单 每隔1分执行一次 @Scheduled(cron = "0 0/1 * * * ? ") public void pullLatestCommonOrder() { if (!Constant.IS_TASK) return; LogHelper.job("pullLatestCommonOrder"); Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); // updateOrder(endTime - 1000 * 60 * 20L, endTime); } // 返利 @Scheduled(cron = "0 0/5 * * * ? ") public void fanli() { if (!Constant.IS_TASK) return; LogHelper.job("处理返利到账前置"); try { doTaoBaoWeiQuanOrder(2); } catch (Exception e) { LogHelper.errorDetailInfo(e); } LogHelper.job("开始处理返利"); orderProcessService.fanli(); } // 每月25号9点执行返利 @Scheduled(cron = "0 0 9 25 * ? ") public void fanliInvaiteAndShare() { if (!Constant.IS_TASK) return; orderProcessService.fanliInvaiteAndShare(); } // 维权订单处理-处理最近60天的 // 30分钟一次 @Scheduled(cron = "0 0/30 * * * ? ") public void doTaoBaoWeiQuan() { if (!Constant.IS_TASK) return; LogHelper.job("维权订单爬取"); doTaoBaoWeiQuanOrder(5); } // 每6个小时执行一次 // 处理订单找回失败的情况 每6个小时执行一次 @Scheduled(cron = "0 0 0/6 * * ? ") public void doLostOrder() { public void doFailLostOrder() { if (!Constant.IS_TASK) return; LogHelper.job("处理丢失订单自动找回失败的情况"); lostOrderService.processFail(); } @@ -394,7 +399,7 @@ public void addLostOrder() { if (!Constant.IS_TASK) return; LogHelper.test("处理丢失订单"); LogHelper.job("处理丢失订单"); List<LostOrder> list = lostOrderService.listByStateAndResultCode(LostOrder.STATE_PASS, LostOrder.RESULT_CODE_VERFING, 1, 50); if (list != null) @@ -411,12 +416,13 @@ } /** * 处理淘宝结算订单,30fen执行一次 * 处理淘宝结算订单,30分执行一次 */ @Scheduled(cron = "30 0 0/1 * * ? ") public void doSettleOrders() { if (!Constant.IS_TASK) return; LogHelper.job("doSettleOrders"); // 处理3-15天前的订单,每天跑一次 Calendar ca = Calendar.getInstance(); int hour = ca.get(Calendar.HOUR_OF_DAY); @@ -435,6 +441,7 @@ public void doSettleOrdersToday() { if (!Constant.IS_TASK) return; LogHelper.job("doSettleOrdersToday"); // 处理3-15天前的订单,每天跑一次 Calendar ca = Calendar.getInstance(); long startTime = ca.getTimeInMillis() - 1000 * 60 * 5L - 1000 * 60 * 60 * 2L; @@ -450,6 +457,7 @@ public void doLocalTaoBaoOrder() { if (!Constant.IS_TASK) return; LogHelper.job("doLocalTaoBaoOrder"); // 处理3-15天前的订单,每天跑一次 Long startTime = System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 60L; Long endTime = startTime + 1000 * 60 * 60 * 24 * 48L; @@ -477,39 +485,10 @@ public void doLatestLocalTaoBaoOrder() { if (!Constant.IS_TASK) return; Long endTime = System.currentTimeMillis() - 1000 * 60 * 10L; Long startTime = endTime - 1000 * 60 * 60 * 12L; updateLocalTaoBaoOrder(startTime, endTime, 1, 2000); } public void updateLocalTaoBaoOrder(Long startTime, Long endTime, int page, int count) { List<TaoBaoOrder> list = taoBaoOrderService.listBySettlementTime(startTime, endTime, page, count); Set<String> orderIds = new HashSet<>(); for (TaoBaoOrder co : list) { orderIds.add(co.getOrderId()); } for (Iterator<String> its = orderIds.iterator(); its.hasNext();) { String orderId = its.next(); // 查询是否有处于订单付款状态的单 List<CommonOrder> commonOrderList = commonOrderService .listBySourceTypeAndOrderId(Constant.SOURCE_TYPE_TAOBAO, orderId); boolean update = false; if (commonOrderList != null) for (CommonOrder co : commonOrderList) { if (co.getState() == CommonOrder.STATE_FK && co.getPayment().compareTo(new BigDecimal(0)) > 0) { update = true; break; } } if (update) { List<TaoBaoOrder> orderList = taoBaoOrderService.getTaoBaoOrderByOrderId(orderId); Map<String, List<TaoBaoOrder>> orders = new HashMap<>(); orders.put(orderId, orderList); orderProcessService.processOrder(orders); } } } /** @@ -519,6 +498,7 @@ public void doLatest5DayLocalTaoBaoOrder() { if (!Constant.IS_TASK) return; LogHelper.job("doLatest5DayLocalTaoBaoOrder"); Long endTime = System.currentTimeMillis() - 1000 * 60 * 60 * 12L; Long startTime = endTime - 1000 * 60 * 60 * 24 * 5L; long count = taoBaoOrderService.countBySettlementTime(startTime, endTime); @@ -536,6 +516,7 @@ public void doSellerNotPayOrder() { if (!Constant.IS_TASK) return; LogHelper.job("doSellerNotPayOrder"); Calendar calender = Calendar.getInstance(); long endTime = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(calender.getTimeInMillis(), "yyyy-MM"), "yyyy-MM"); fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java
@@ -53,7 +53,7 @@ // 爬取到的订单号 if (list != null) for (TaoBaoOrder order : list) { LogHelper.orderInfo("爬取到的订单号:" + order.getOrderId()); LogHelper.orderInfo("会员/渠道爬取到的订单号:" + order.getOrderId()); } addRelationAndSpecialOrder(list); @@ -73,7 +73,7 @@ // 爬取到的订单号 if (list != null) for (TaoBaoOrder order : list) { LogHelper.orderInfo("爬取到的订单号:" + order.getOrderId()); LogHelper.orderInfo("会员/渠道爬取到的订单号:" + order.getOrderId()); } addRelationAndSpecialOrder(list); @@ -87,7 +87,7 @@ // 爬取到的订单号 if (list != null) for (TaoBaoOrder order : list) { LogHelper.orderInfo("爬取到的订单号:" + order.getOrderId()); LogHelper.orderInfo("会员/渠道爬取到的订单号:" + order.getOrderId()); } addRelationAndSpecialOrder(list); } @@ -145,7 +145,7 @@ if (!Constant.IS_TASK) return; // 爬取近20分钟的数据 LogHelper.orderInfo("爬单:30s爬取一次单"); LogHelper.job("爬单:30s爬取一次单"); Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); updateRelationAndSpecialOrder(endTime - 1000 * 60 * 20L, endTime); @@ -158,7 +158,7 @@ public void doJob2() { if (!Constant.IS_TASK) return; LogHelper.orderInfo("爬单:5min爬取一次单"); LogHelper.job("爬单:5min爬取一次单"); Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); updateRelationAndSpecialOrder(endTime - 1000 * 60 * 60 * 24L, endTime); fanli/src/main/java/com/yeshi/fanli/log/LogHelper.java
@@ -41,6 +41,8 @@ private static Logger requestLogger = Logger.getLogger("requestLog"); private static Logger requestTimeLogger = Logger.getLogger("requestTimeLog"); private static Logger jobLogger = Logger.getLogger("jobLog"); public static void userInfo(Object obj) { userLogger.info(obj); @@ -81,6 +83,10 @@ public static void shareGoods(Object obj) { shareGoodsLogger.info(obj); } public static void job(Object obj) { jobLogger.info(obj); } /** * 登录信息 fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java
@@ -511,16 +511,15 @@ for (int i = 0; i < array.size(); i++) { JSONObject itemData = array.optJSONObject(i); DaTaoKeDetailV2 item = parseDaTaoKeDetailV2(itemData); item.setCouponConditions(itemData.optString("quanUsageCondition")); item.setShopType(itemData.optInt("istmall")); item.setOriginalPrice(new BigDecimal(itemData.optString("originPrice"))); item.setMainPic(itemData.optString("pic")); item.setCouponConditions(itemData.optString("couponConditions")); item.setShopType(itemData.optInt("shopType")); item.setOriginalPrice(new BigDecimal(itemData.optString("originalPrice"))); item.setMainPic(itemData.optString("mainPic")); list.add(item); } daTaoKeGoodsResult.setGoodsList(list); } return daTaoKeGoodsResult; } private static List<DaTaoKeDetailV2> parseDaTaoKeDetailV2List(JSONArray array) { fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -1707,7 +1707,8 @@ map.put("item_id", auctionId + ""); map.put("adzone_id", sts[3]); try { JSONObject json = TaoKeBaseUtil.baseRequest(map, app); String result = TaoKeBaseUtil.baseRequestForThreeTimes(map, app); JSONObject json = JSONObject.fromObject(result); JSONObject resultJSON = json.optJSONObject("tbk_coupon_convert_response").optJSONObject("result") .optJSONObject("results"); String couponLink = resultJSON.optString("coupon_click_url"); @@ -1723,7 +1724,7 @@ goods.setTkRate(new BigDecimal(tkRate)); } return goods; } catch (TaoKeApiException e) { } catch (Exception e) { e.printStackTrace(); } fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java
@@ -512,7 +512,7 @@ try { JSONObject json = TaoKeBaseUtil.baseRequest(params, app); return parseTaoBaoOrderNew(json.toString()); } catch (TaoKeApiException e) { } catch (Exception e) { e.printStackTrace(); } return null; fanli/src/main/resource/log4j.properties
@@ -37,7 +37,7 @@ log4j.appender.orderLog=org.apache.log4j.DailyRollingFileAppender log4j.appender.orderLog.File=logs/orderLog.log log4j.appender.orderLog.MaxFileSize=20MB log4j.appender.orderLog.MaxFileSize=2MB log4j.appender.orderLog.MaxBackupIndex=100 log4j.appender.orderLog.layout=org.apache.log4j.PatternLayout log4j.appender.orderLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n @@ -209,6 +209,15 @@ log4j.appender.tljLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n log4j.logger.jobLog=info,jobLog log4j.appender.jobLog=org.apache.log4j.DailyRollingFileAppender log4j.appender.jobLog.File=logs/job/jobLog.log log4j.appender.jobLog.MaxFileSize=20MB log4j.appender.jobLog.MaxBackupIndex=100 log4j.appender.jobLog.layout=org.apache.log4j.PatternLayout log4j.appender.jobLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n log4j.appender.mongodb=org.apache.log4j.ConsoleAppender log4j.appender.mongodb.Target=System.out log4j.appender.mongodb.Threshold=DEBUG fanli/src/main/resource/pddGoods.js
@@ -1,6 +1,9 @@ function getGoodsId(url) { if (url.indexOf('://mobile.yangkeduo.com/goods.html?') > 0 || url.indexOf('yangkeduo.com/duo_coupon_landing.html?') > 0 || url.indexOf('://mobile.yangkeduo.com/goods2.html?') > 0) { if (url.indexOf('://mobile.yangkeduo.com/goods.html?') > 0 || url.indexOf('yangkeduo.com/duo_coupon_landing.html?') > 0 || url.indexOf('://mobile.yangkeduo.com/goods2.html?') > 0 || url.indexOf('://mobile.yangkeduo.com/goods1.html?') > 0 || url.indexOf('://mobile.yangkeduo.com/goods3.html?') > 0) { var preUrl = url.substr(url.indexOf("?") + 1, url.length()); var sts = preUrl.split("&"); for (var i = 0; i < sts.length; i++) { @@ -9,4 +12,4 @@ } } } } }