fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java
@@ -17,7 +17,6 @@ import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.stereotype.Component; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.annotation.integral.IntegralGetFrequencyLimit; @@ -47,7 +46,7 @@ return expression.getValue(context).toString(); } @Around("execution(public * com.yeshi.fanli.service.impl.integral.*.*(..))") @Around("execution(public * com.yeshi.fanli.service.impl.user.integral.*.*(..))") public Object requestSerializable(ProceedingJoinPoint joinPoint) throws Throwable { Signature signature = joinPoint.getSignature(); MethodSignature methodSignature = (MethodSignature) signature; fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetVersionLimitAspect.java
@@ -46,7 +46,7 @@ return expression.getValue(context).toString(); } @Around("execution(public * com.yeshi.fanli.service.impl.integral.*.*(..))") @Around("execution(public * com.yeshi.fanli.service.impl.user.integral.*.*(..))") public Object requestSerializable(ProceedingJoinPoint joinPoint) throws Throwable { Signature signature = joinPoint.getSignature(); MethodSignature methodSignature = (MethodSignature) signature; fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -34,6 +34,7 @@ import com.yeshi.fanli.exception.share.ShareGoodsException; import com.yeshi.fanli.exception.share.UserShareGoodsRecordException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.BusinessSystemService; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.config.SystemConfigService; @@ -45,11 +46,13 @@ 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.service.inter.user.tb.UserExtraTaoBaoInfoService; 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.TaoBaoConstant; import com.yeshi.fanli.util.ThreadUtil; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.jd.JDUtil; @@ -99,10 +102,12 @@ @Resource private UserShareGoodsGroupService userShareGoodsGroupService; @Resource private UserTaoLiJinRecordService userTaoLiJinRecordService; @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; /** * @@ -171,11 +176,11 @@ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("商品信息获取失败"))); return; } Long auctionId = record.getGoodsId(); String tljLink = record.getSendUrl(); BigDecimal tljMoney= record.getPerFace(); BigDecimal tljMoney = record.getPerFace(); TaoBaoGoodsBrief goods = null; try { goods = redisManager.getTaoBaoGoodsBrief(auctionId); @@ -217,9 +222,9 @@ } else { data.put("coupon", false); } data.put("tljMoney", tljMoney); out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); } @@ -238,6 +243,7 @@ @RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET) public void getGoodsDetail(final AcceptData acceptData, final String id, String tid, String uid, String callback, PrintWriter out) { LogHelper.shareGoods("分享出去的H5访问: uid:" + uid + " id:" + id); long begin = java.lang.System.currentTimeMillis(); if (StringUtil.isNullOrEmpty(id)) { out.print(JsonUtil.loadFalseResult(1, "请上传id")); @@ -281,22 +287,14 @@ } } 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(); } LogHelper.test("没有分享记录:uid:" + uid + " actionid:" + id); // 获取 TaoKeAppInfo app = new TaoKeAppInfo(); app.setAdzoneId(pid.split("_")[3]); app.setAppKey(configList.get(0).getAppKey()); app.setAppSecret(configList.get(0).getAppSecret()); app.setPid(pid); app.setPid(TaoBaoConstant.TAOBAO_RELATION_PID_DEFAULT); app.setAdzoneId(app.getPid().split("_")[3]); app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); try { goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app); } catch (NumberFormatException e) { @@ -309,6 +307,9 @@ if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) { url = goods.getCouponLink(); } String relationId = userExtraTaoBaoInfoService.getRelationIdByUid(Long.parseLong(uid)); if (!StringUtil.isNullOrEmpty(relationId)) url += "&relationId=" + relationId; token = TaoKeApiUtil.getTKToken(goods.getPictUrl(), goods.getTitle(), url); } } @@ -384,7 +385,7 @@ // 老版本兼容 data.put("quan", true); } out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); final String tempUid = uid; @@ -404,11 +405,10 @@ }); return; } /** * 京东分享商品信息 * * @param acceptData * @param id * @param uid @@ -416,7 +416,7 @@ * @param out */ @RequestMapping(value = "getJDGoodsDetail") public void getJDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback, public void getJDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback, PrintWriter out) { if (id == null) { out.print(JsonUtil.loadFalseResult(1, "请上传id")); @@ -442,7 +442,7 @@ imageList = new ArrayList<>(); imageList.add(jdGoods.getPicUrl()); } boolean hasCoupon = false; String couponUrl = null; BigDecimal discount = new BigDecimal(0); @@ -452,30 +452,31 @@ discount = couponInfo.getDiscount(); couponUrl = couponInfo.getLink(); } boolean jdzy = false; String owner = jdGoods.getOwner(); if (!StringUtil.isNullOrEmpty(owner) && "g".equalsIgnoreCase(owner)) { jdzy = true; } String materialId = "https://item.jd.com/" + id + ".html"; String jumpLink = JDApiUtil.convertShortLink(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "", uid); int priceType = 1; BigDecimal price = jdGoods.getPrice();; BigDecimal price = jdGoods.getPrice(); ; JDPingouInfo pinGouInfo = jdGoods.getPinGouInfo(); if (pinGouInfo != null) { priceType = 2; // 拼购价 price = pinGouInfo.getPingouPrice(); price = pinGouInfo.getPingouPrice(); } JSONObject data = new JSONObject(); data.put("jdzy", jdzy); data.put("imgs", imageList); data.put("title", jdGoods.getSkuName()); data.put("zkPrice", price); data.put("priceType", priceType); data.put("priceType", priceType); data.put("coupon", hasCoupon); data.put("couponAmount", discount); data.put("couponPrice", JDUtil.getQuanPrice(jdGoods)); @@ -489,7 +490,8 @@ public void run() { try { if (!StringUtil.isNullOrEmpty(tempUid)) userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_JD); userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_JD); } catch (NumberFormatException e) { e.printStackTrace(); } catch (UserShareGoodsRecordException e) { @@ -499,10 +501,10 @@ }); return; } /** * 拼多多分享商品详情 * * @param acceptData * @param id * @param uid @@ -510,7 +512,7 @@ * @param out */ @RequestMapping(value = "getPDDGoodsDetail") public void getPDDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback, public void getPDDGoodsDetail(final AcceptData acceptData, final Long id, String uid, String callback, PrintWriter out) { if (id == null) { out.print(JsonUtil.loadFalseResult(1, "请上传id")); @@ -526,7 +528,7 @@ out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("商品信息获取失败"))); return; } List<String> imageList = null; String[] goodsGalleryUrls = pddGoods.getGoodsGalleryUrls(); if (goodsGalleryUrls != null) { @@ -539,7 +541,7 @@ imageList.add(goodsImageUrl); } } BigDecimal hundred = new BigDecimal(100); Boolean hasCoupon = pddGoods.getHasCoupon(); BigDecimal amount = new BigDecimal(0); @@ -548,9 +550,9 @@ } else { hasCoupon = false; } String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(id, PinDuoDuoApiUtil.PID_SHARE + "", uid); JSONObject data = new JSONObject(); data.put("imgs", imageList); data.put("title", pddGoods.getGoodsName()); @@ -568,7 +570,8 @@ public void run() { try { if (!StringUtil.isNullOrEmpty(tempUid)) userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_PDD); userShareGoodsGroupService.updateBrowseNum(Long.parseLong(tempUid), id, Constant.SOURCE_TYPE_PDD); } catch (NumberFormatException e) { e.printStackTrace(); } catch (UserShareGoodsRecordException e) { fanli/src/main/java/com/yeshi/fanli/job/order/taobao/UpdateTBRelationAndSpecialOrderJob.java
@@ -1,5 +1,6 @@ package com.yeshi.fanli.job.order.taobao; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -18,6 +19,7 @@ import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil; /** @@ -46,6 +48,26 @@ public void updateRelationAndSpecialOrder(long startTime, long endTime) { List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 1); List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 1); if (list1 != null && list1.size() > 0) list.addAll(list1); // 爬取到的订单号 if (list != null) for (TaoBaoOrder order : list) { LogHelper.orderInfo("爬取到的订单号:" + order.getOrderId()); } addRelationAndSpecialOrder(list); } /** * 按付款时间查询 * * @param startTime * @param endTime */ public void updateRelationAndSpecialPaidOrder(long startTime, long endTime) { List<TaoBaoOrder> list = TaoKeOrderApiUtil.getTaoBaoSpecialOrderList(startTime, endTime, 2); List<TaoBaoOrder> list1 = TaoKeOrderApiUtil.getTaoBaoRelationOrderList(startTime, endTime, 2); if (list1 != null && list1.size() > 0) list.addAll(list1); // 爬取到的订单号 @@ -124,8 +146,10 @@ return; // 爬取近20分钟的数据 LogHelper.orderInfo("爬单:30s爬取一次单"); long endTime = System.currentTimeMillis(); Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); updateRelationAndSpecialOrder(endTime - 1000 * 60 * 20L, endTime); updateRelationAndSpecialPaidOrder(endTime - 1000 * 60 * 20L, endTime); updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 20L, endTime); } @@ -135,23 +159,9 @@ if (!Constant.IS_TASK) return; LogHelper.orderInfo("爬单:5min爬取一次单"); long endTime = System.currentTimeMillis(); Date systemDate = TaoKeApiUtil.getTaoBaoSystemTime(); long endTime = systemDate != null ? systemDate.getTime() : System.currentTimeMillis(); updateRelationAndSpecialOrder(endTime - 1000 * 60 * 60 * 24L, endTime); updateRelationAndSpecialSettleOrder(endTime - 1000 * 60 * 60 * 24L, endTime); } // 每个小时更新 @Scheduled(cron = "0 0 0/1 * * ? ") public void doJob3() { if (!Constant.IS_TASK) return; // Calendar calendar = Calendar.getInstance(); // int h = calendar.get(Calendar.HOUR_OF_DAY); // // 每个小时更新100页数据 // int fromPage = h * 100; // if (fromPage <= 0) // fromPage = 11; // int toPage = h * 100 + 100; } } fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -2081,6 +2081,24 @@ e.printStackTrace(); } } /** * 获取淘宝系统时间 * * @return */ public static Date getTaoBaoSystemTime() { Map<String, String> map = new HashMap<>(); map.put("method", "taobao.time.get"); try { JSONObject json = TaoKeBaseUtil.baseRequest(map, false); String time = json.optJSONObject("time_get_response").optString("time"); return new Date(TimeUtil.convertToTimeTemp(time, "yyyy-MM-dd HH:mm:ss")); } catch (Exception e) { e.printStackTrace(); } return null; } } class QuanInfo { utils/src/main/java/org/yeshi/utils/HttpUtil.java
@@ -60,19 +60,20 @@ } public static String getShortLink(String url) { String shortLink = getShortLink2(url); if (StringUtil.isNullOrEmpty(shortLink)) shortLink = getShortLink3(url); if (StringUtil.isNullOrEmpty(shortLink)) shortLink = getShortLink1(url); return shortLink; return url; // String shortLink = getShortLink3(url); // if (StringUtil.isNullOrEmpty(shortLink)) // shortLink = getShortLink1(url); // if (StringUtil.isNullOrEmpty(shortLink)) // shortLink = getShortLink2(url); // return shortLink; } private static String getShortLink1(String url) { try { String totalUrl = String.format( "http://suo.im/api.htm?format=json&url=%s&key=5d7728078e676d45275f816b@681bb0446f1e6af4f8fc6ce3cad2a684", URLEncoder.encode(url)); URLEncoder.encode(url)); String result = get(totalUrl, null); System.out.println(result); try { @@ -85,14 +86,13 @@ return null; } //搜狐网址 // 搜狐网址 private static String getShortLink2(String url) { try { String totalUrl = String.format( "https://sohu.gg/api/?key=2zumZxsL8MuX&url=%s", URLEncoder.encode(url,"UTF-8")); String totalUrl = String.format("https://sohu.gg/api/?key=2zumZxsL8MuX&url=%s", URLEncoder.encode(url, "UTF-8")); String result = get(totalUrl, null); if(result!=null&&result.startsWith("http")) if (result != null && result.startsWith("http")) return result; } catch (Exception e) { e.printStackTrace(); @@ -103,11 +103,11 @@ private static String getShortLink3(String url) { try { String totalUrl = String.format( "http://api.t.sina.com.cn/short_url/shorten.json?source=2963429064&url_long=%s", URLEncoder.encode(url)); "http://api.ft12.com/api.php?format=json&url=%s&apikey=Lqh4eXURkvKhbboXwz@ddd", URLEncoder.encode(url, "UTF-8")); String result = get(totalUrl, null); JSONObject data = JSONArray.fromObject(result).optJSONObject(0); return data.optString("url_short"); JSONObject data = JSONObject.fromObject(result); return data.optString("url"); } catch (Exception e) { e.printStackTrace(); }