fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java
@@ -53,6 +53,7 @@ import com.yeshi.fanli.entity.taobao.ClientTBPid; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.SearchFilter; import com.yeshi.fanli.entity.taobao.TLJBuyGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra; import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; @@ -81,6 +82,7 @@ import com.yeshi.fanli.service.inter.goods.SuperRecommendSpecialService; import com.yeshi.fanli.service.inter.goods.TaoBaoCouponService; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; import com.yeshi.fanli.service.inter.goods.recommend.HomeRecommendGoodsService; import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService; import com.yeshi.fanli.service.inter.homemodule.DeviceSexService; import com.yeshi.fanli.service.inter.homemodule.SpecialService; @@ -92,6 +94,7 @@ import com.yeshi.fanli.service.inter.monitor.MonitorService; import com.yeshi.fanli.service.inter.order.OrderService; import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService; import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService; import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; @@ -121,6 +124,7 @@ import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.util.taobao.TaoLiJinUtil; import com.yeshi.fanli.vo.goods.taobao.TLJBuyHongBaoVO; import com.yeshi.fanli.vo.msg.ClientTextStyleVO; import com.yeshi.fanli.vo.tlj.SpreadHongBao; import com.yeshi.fanli.vo.user.UserSettingsVO; @@ -260,6 +264,12 @@ @Resource private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService; @Resource private HomeRecommendGoodsService homeRecommendGoodsService; @Resource private TLJBuyGoodsService tljBuyGoodsService; @RequestMapping(value = "getHonestList") public void getHonestList(AcceptData acceptData, PrintWriter out) { @@ -1180,8 +1190,9 @@ } // 获取浏览记录 @RequestMapping(value = "getscanhistory", method = RequestMethod.POST) @RequestMapping(value = "getscanhistory", method = RequestMethod.POST) public void getScanHistory(AcceptData acceptData, String uid, int page, Integer goodsType, PrintWriter out) { if (page < 0) { out.print(JsonUtil.loadFalseResult(1, "page不小于0")); return; @@ -1193,13 +1204,13 @@ out.print(JsonUtil.loadFalseResult(1, "不存在该系统")); return; } List<ScanHistoryV2> list = scanHistoryV2Service.getScanHistoryByDeviceOrUid( StringUtil.isNullOrEmpty(uid) ? null : Long.parseLong(uid), acceptData.getDevice(), page, 20, goodsType); long count = scanHistoryV2Service.getCountByDeviceOrUid( List<ScanHistoryV2> list = scanHistoryV2Service.getScanHistoryByDeviceOrUid( StringUtil.isNullOrEmpty(uid) ? null : Long.parseLong(uid), acceptData.getDevice(), page, 20, goodsType); long count = scanHistoryV2Service.getCountByDeviceOrUid( StringUtil.isNullOrEmpty(uid) ? null : Long.parseLong(uid), acceptData.getDevice(), goodsType); JSONObject data = new JSONObject(); data.put("count", count); JSONArray array = new JSONArray(); @@ -1288,16 +1299,16 @@ * 防止请求频率过高 * */ if (Constant.IS_OUTNET) { String key = "linkParse-" + acceptData.getDevice() + "-" + id; // if (Constant.IS_OUTNET) { String key = "linkParse-" + acceptData.getDevice() + "-" + id; String value = redisManager.getCommonString(key); if (!StringUtil.isNullOrEmpty(value)) { out.print(JsonUtil.loadFalseResult(11, "请求频率限制")); return; } redisManager.cacheCommonString(key, "1", 5);// 5s间隔 String value = redisManager.getCommonString(key); if (!StringUtil.isNullOrEmpty(value)) { out.print(JsonUtil.loadFalseResult(11, "请求频率限制")); return; } redisManager.cacheCommonString(key, "1", 5);// 5s间隔 // } TaoBaoGoodsBrief goods = null; try { goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id)); @@ -1332,6 +1343,54 @@ int pageSize = Constant.PAGE_SIZE; JSONArray array = new JSONArray(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); if (VersionUtil.greaterThan_1_5_70(acceptData.getPlatform(), acceptData.getVersion())) { List<TaoBaoGoodsBrief> goodsList = homeRecommendGoodsService.listGoodsByPage(null, acceptData.getDevice(), imei, idfa, page); BigDecimal rate = hongBaoManageService.getFanLiRate(); for (TaoBaoGoodsBrief goods : goodsList) { TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, rate + "", null); if (page < 3) extra.setRecommend(true); try { array.add(gson.toJson(extra)); } catch (Exception e) { e.printStackTrace(); System.out.println(new Gson().toJson(goods)); } } if (page == 1) { List<TLJBuyGoods> list = homeRecommendGoodsService.getZiGouLiJianHotGoods(acceptData.getDevice()); if (list != null && list.size() > 0) for (int i = list.size() - 1; i >= 0; i--) { TLJBuyGoods goods = list.get(i); TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods.getGoods(), TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE + "", null); String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(goods.getGoods(), TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE); TLJBuyHongBaoVO vo = new TLJBuyHongBaoVO(); vo.setLeft(goods.getLeftHongBaoCount()); vo.setMoney(hongBao); vo.setTagName("付款立减 " + hongBao); vo.setTip(""); vo.setTotal(goods.getTotalHongBaoCount()); extra.setTljBuyHongBao(vo); extra.setPictureTag(new ClientTextStyleVO("立减TOP" + (i + 1), "#E5005C", "#FCE431", null)); extra.setRecommend(true); extra.setSpreadMoney(vo.getTagName()); array.add(0, gson.toJson(extra)); } } JSONObject data = new JSONObject(); data.put("data", array); data.put("count", 1000); out.print(JsonUtil.loadTrueResult(data)); return; } // 从推荐来 if (page <= 1) { array.clear(); @@ -1350,6 +1409,7 @@ // filter try { gList = daTaoKeGoodsDetailService.filterTaoBaoGoods(gList); } catch (Exception e) { } @@ -1364,6 +1424,7 @@ TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), ""); extra.setRecommend(true); goodsList.add(extra); } @@ -2237,7 +2298,7 @@ data.put("listTip", listText); } spreadHongBao.setTip("当日领取,当日内使用,过期失效。"); spreadHongBao.setTip("当日领取,当日内使用,过期失效"); goodsJson.put("spreadHongBao", spreadHongBao); // 用户剩余可以淘礼金验证 @@ -2259,6 +2320,27 @@ goodsJson.put("tljNum", tljNum); } } else if (from != null && from.equals("taolijin_buy")) { noRebateHelpLink = configService.get("zigoulijian_nofanli_help"); // 查询分享库 TLJBuyGoods buyGoods = tljBuyGoodsService.selectByAuctionIdAndDay(goods.getAuctionId(), TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd")); if (buyGoods == null) { out.print(JsonUtil.loadFalseResult(2, "自购立减红包过期")); return; } fanliValid = true; goodsJson.put("shareValid", false); String tljHongBao = TaoBaoUtil.getGoodsHongBaoMoney(goods, new BigDecimal(70)).toString(); TLJBuyHongBaoVO vo = new TLJBuyHongBaoVO(); vo.setLeft(buyGoods.getLeftHongBaoCount()); vo.setMoney(tljHongBao); vo.setTagName("付款立减 ¥" + tljHongBao); vo.setTip("当日领取,当日内使用,过期失效"); vo.setTotal(buyGoods.getTotalHongBaoCount()); goodsJson.put("tljBuyHongBao", vo); moneyType = 2; } goodsJson.put("moneyType", moneyType); @@ -2399,67 +2481,30 @@ if (goodsList != null && goodsList.size() > 0) goodsList.parallelStream().forEach(goods -> { if (goods != null) { // 获取详情 TaoBaoGoodsBrief taoBaoGoodsBrief = null; try { taoBaoGoodsBrief = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goods.getAuctionId()); } catch (Exception e) { e.printStackTrace(); } // 获取详情 TaoBaoGoodsBrief taoBaoGoodsBrief = null; try { taoBaoGoodsBrief = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goods.getAuctionId()); } catch (Exception e) { e.printStackTrace(); if (taoBaoGoodsBrief == null) { TaoBaoGoodsBrief newGoods = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app); goods.setCouponInfo(newGoods.getCouponInfo()); goods.setCouponLink(newGoods.getCouponLink()); goods.setTkRate(newGoods.getTkRate()); taoBaoGoodsBrief = goods; } if (taoBaoGoodsBrief != null) { listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), "")); } } if (taoBaoGoodsBrief == null) { TaoBaoGoodsBrief newGoods = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app); goods.setCouponInfo(newGoods.getCouponInfo()); goods.setCouponLink(newGoods.getCouponLink()); goods.setTkRate(newGoods.getTkRate()); taoBaoGoodsBrief = goods; } if (taoBaoGoodsBrief != null) { listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), "")); } }); List<TaoBaoGoodsBrief> listQuality = new ArrayList<TaoBaoGoodsBrief>(); // 删除推荐 // // try { // List<QualityFactory> listRecommend = // qualityGoodsService.recommendByAuctionId(id); // // if (listRecommend != null && listRecommend.size() > 1) { // for (QualityFactory quality : listRecommend) { // // TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief(); // if (taoBaoGoodsBrief == null) { // continue; // } // // int biz30day = taoBaoGoodsBrief.getBiz30day(); // if (biz30day >= 10000) { // double sales = biz30day; // String salesCountMidea = String.format("%.1f", sales / 10000); // taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万"); // } else { // taoBaoGoodsBrief.setSalesCount(biz30day + ""); // } // // // 改变图片尺寸 // String pictUrl = taoBaoGoodsBrief.getPictUrl(); // if (!StringUtil.isNullOrEmpty(pictUrl) && // !pictUrl.contains("320x320")) { // taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl)); // } // // listQuality.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, // proportion.toString(), null)); // } // } // } catch (Exception e2) { // e2.printStackTrace(); // } // 取偶数个数据 if (listExtra.size() % 2 != 0) { fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java
@@ -27,6 +27,7 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture; import com.yeshi.fanli.entity.bus.tlj.DeviceTaoLiJinRecord; import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum; import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin; @@ -34,18 +35,22 @@ import com.yeshi.fanli.entity.bus.user.UserMoneyExtra; import com.yeshi.fanli.entity.bus.user.UserRank; import com.yeshi.fanli.entity.taobao.ShareHotGoods; import com.yeshi.fanli.entity.taobao.TLJBuyGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra; import com.yeshi.fanli.exception.banner.SwiperPictureException; import com.yeshi.fanli.exception.tlj.UserTaoLiJinOriginException; import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService; import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.lable.QualityGoodsService; import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service; import com.yeshi.fanli.service.inter.monitor.MonitorService; import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService; import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService; import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService; import com.yeshi.fanli.service.inter.tlj.DeviceTaoLiJinRecordService; import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService; @@ -58,13 +63,18 @@ import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoLiJinUtil; <<<<<<< HEAD import com.yeshi.fanli.vo.goods.GoodsDetailVO; import com.yeshi.fanli.vo.goods.MoneyInfoVO; import com.yeshi.fanli.vo.goods.OtherInfo; ======= import com.yeshi.fanli.vo.goods.taobao.TLJBuyHongBaoVO; >>>>>>> refs/remotes/origin/master import com.yeshi.fanli.vo.msg.ClientTextStyleVO; import com.yeshi.fanli.vo.tlj.SpreadHongBao; import com.yeshi.fanli.vo.tlj.TaoLiJinDetailVO; @@ -109,35 +119,40 @@ @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; @Resource private UserTaoLiJinOriginService userTaoLiJinOriginService; @Resource private UserTaoLiJinDetailService userTaoLiJinDetailService; @Resource private UserMoneyExtraService userMoneyExtraService; @Resource private ConfigTaoLiJinService configTaoLiJinService; @Resource private QualityGoodsService qualityGoodsService; @Resource private DeviceTaoLiJinRecordService deviceTaoLiJinRecordService; @Resource private JumpDetailV2Service jumpDetailV2Service; @Resource(name = "taskExecutor") private TaskExecutor executor; @Resource private ShareHotGoodsService shareHotGoodsService; @Resource private TLJBuyGoodsService tljBuyGoodsService; @Resource private SwiperPictureService swiperPictureService; /** * 获取淘礼金分享记录 * @@ -157,15 +172,15 @@ page = 1; } int pageSize = Constant.PAGE_SIZE; List<UserTaoLiJinRecordVO> list = userTaoLiJinRecordService.getRecordByUid((page - 1) * pageSize, pageSize, uid); List<UserTaoLiJinRecordVO> list = userTaoLiJinRecordService.getRecordByUid((page - 1) * pageSize, pageSize, uid); if (list == null) { list = new ArrayList<UserTaoLiJinRecordVO>(); } } long count = userTaoLiJinRecordService.countShareRecordByUid(uid); GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() { @Override @@ -177,18 +192,18 @@ } } }); Gson gson = gsonBuilder.create(); JSONObject data = new JSONObject(); data.put("count", count); data.put("list", gson.toJson(list)); out.print(JsonUtil.loadTrueResult(data)); } /** * 统计淘礼金 * * @param acceptData * @param uid * @param out @@ -199,10 +214,10 @@ out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } // 过期 userTaoLiJinOriginService.overdueHongBao(uid); // 我的淘礼金 BigDecimal tlj = null; UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid); @@ -211,11 +226,10 @@ } else { tlj = new BigDecimal(0); } // 今日分享个数 long countShare = userTaoLiJinRecordService.countTodayNum(uid); // 获得 BigDecimal todayWin = userTaoLiJinOriginService.countMoneyByDate(uid, 1); BigDecimal yesterdayWin = userTaoLiJinOriginService.countMoneyByDate(uid, 2); @@ -230,9 +244,9 @@ // 问号链接 String helpLink = configTaoLiJinService.getValueByKey("hongbao_help_link"); JSONObject data = new JSONObject(); data.put("tlj", tlj.setScale(2).toString()); data.put("tlj", tlj.setScale(2).toString()); data.put("helpLink", helpLink); data.put("countShare", countShare); data.put("todayWin", todayWin.setScale(2).toString()); @@ -243,8 +257,7 @@ data.put("yesterdayUse", yesterdayUse.setScale(2).toString().replaceAll("-", "")); data.put("thisMonthUse", thisMonthUse.setScale(2).toString().replaceAll("-", "")); data.put("lastMonthUse", lastMonthUse.setScale(2).toString().replaceAll("-", "")); // IOS 分享个数 ClientTextStyleVO textVo1 = new ClientTextStyleVO(); textVo1.setContent("今日创建分享"); @@ -255,17 +268,16 @@ ClientTextStyleVO textVo3 = new ClientTextStyleVO(); textVo3.setContent("个"); textVo3.setColor("#888888"); List<ClientTextStyleVO> listCountShare = new ArrayList<ClientTextStyleVO>(); listCountShare.add(textVo1); listCountShare.add(textVo2); listCountShare.add(textVo3); data.put("listShare", listCountShare); out.print(JsonUtil.loadTrueResult(data)); } /** * 获取淘礼金明细详情 * @@ -301,12 +313,12 @@ ca.add(Calendar.MONTH, 1); date = new Date(ca.getTimeInMillis() - 1); } // 查询列表 List<TaoLiJinDetailVO> list = userTaoLiJinDetailService.listUserMoneyDetailForClient(uid, index, date); // 统计总条数 long count = userTaoLiJinDetailService.countUserMoneyDetailForClient(uid, index, date); GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); gsonBuilder.registerTypeAdapter(TaoLiJinDetailTypeEnum.class, new TypeAdapter<TaoLiJinDetailTypeEnum>() { @Override @@ -341,9 +353,7 @@ } } }); Gson gson = gsonBuilder.create(); JSONObject data = new JSONObject(); @@ -351,11 +361,10 @@ data.put("data", gson.toJson(list)); out.print(JsonUtil.loadTrueResult(data)); } /** * 红包领取详情 * 红包领取详情 * * @param acceptData * @param uid * @param type @@ -363,13 +372,13 @@ */ @RequestMapping(value = "getHongbaoDetails", method = RequestMethod.POST) public void getHongbaoDetails(AcceptData acceptData, Long uid, String type, PrintWriter out) { if (StringUtil.isNullOrEmpty(type)) { out.print(JsonUtil.loadFalseResult(1, "类型不能为空")); return; } // 用户未登录时 设备领取新红包 // 用户未登录时 设备领取新红包 if (uid == null || uid <= 0) { BigDecimal money = null; DeviceTaoLiJinRecord deviceRecord = deviceTaoLiJinRecordService.getByDevice(acceptData.getDevice()); @@ -385,7 +394,7 @@ money = new BigDecimal(value); deviceTaoLiJinRecordService.save(acceptData.getDevice(), money); } JSONObject data = new JSONObject(); data.put("icon", configTaoLiJinService.getValueByKey("taolijin_system_icon")); data.put("title", "新人红包"); @@ -397,16 +406,15 @@ data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_goods_hot")); data.put("tip", configTaoLiJinService.getValueByKey("hongbao_newbies_tip")); data.put("rules", configTaoLiJinService.getValueByKey("newbies_rules_link")); out.print(JsonUtil.loadTrueResult(data)); return; } } // 登录用户 JSONObject data = new JSONObject(); data.put("icon", configTaoLiJinService.getValueByKey("taolijin_system_icon")); if (type.equals(TaoLiJinOriginEnum.newbiesWin.name())) { BigDecimal hasMoney = null; UserTaoLiJinOrigin userTaoLiJin = userTaoLiJinOriginService.getByUidAndOrigin(uid, type); @@ -421,7 +429,7 @@ return; } } data.put("title", "新人红包"); data.put("content", "自购直接抵现,优惠真实可见!"); data.put("type", 1); @@ -431,8 +439,8 @@ data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_goods_hot")); data.put("tip", configTaoLiJinService.getValueByKey("hongbao_newbies_tip")); data.put("rules", configTaoLiJinService.getValueByKey("newbies_rules_link")); } else if(type.equals(TaoLiJinOriginEnum.rankWin.name())) { } else if (type.equals(TaoLiJinOriginEnum.rankWin.name())) { boolean isRank = false; BigDecimal hasMoney = null; UserTaoLiJinOrigin userTaoLiJin = userTaoLiJinOriginService.getRankByThisMonth(uid, type); @@ -456,7 +464,7 @@ } } } // 等级不足 if (!isRank) { data.put("title", "账户等级福利"); @@ -480,19 +488,18 @@ data.put("tip", configTaoLiJinService.getValueByKey("hongbao_rank_tip")); data.put("rules", configTaoLiJinService.getValueByKey("rank_rules_link")); } } else { out.print(JsonUtil.loadFalseResult(1, "类型不匹配")); return; } out.print(JsonUtil.loadTrueResult(data)); } /** * 分享爆款商品-限于淘礼金 * * @param acceptData * @param uid * @param out @@ -503,18 +510,17 @@ out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis()); List<ShareHotGoods> listHot = shareHotGoodsService.listByDay(day); if (listHot == null) { listHot = new ArrayList<ShareHotGoods>(); listHot = new ArrayList<ShareHotGoods>(); } JSONArray array = new JSONArray(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); boolean isNewUser = userInfoExtraService.isNewUser(uid); if (isNewUser) { // 判定为老用户: 新人只要使用了新人红包,也就是那1块钱,那么,他看到的分享爆款中的商品-就只能分享。 @@ -523,39 +529,39 @@ isNewUser = false; } } BigDecimal proportion = hongBaoManageService.getFanLiRate(); for (ShareHotGoods hotGoods : listHot) { TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods(); if (taoBaoGoodsBrief == null) { continue; } // 计算推广红包 String warningRate = configTaoLiJinService.getValueByKey("warning_value"); BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, taoBaoGoodsBrief); // 推广红包 不能小于1 if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) { continue; } TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null); TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null); // 去掉标签 extra.setLabels(null); // 显示类型 if (isNewUser) { extra.setMoneyType(1); extra.setSpreadMoney("推广红包 ¥"+ 1); extra.setSpreadMoney("推广红包 ¥" + 1); } else { extra.setMoneyType(2); extra.setSpreadMoney("推广红包 ¥"+ spreadMoney); extra.setSpreadMoney("推广红包 ¥" + spreadMoney); } array.add(gson.toJson(extra)); } executor.execute(new Runnable() { @Override public void run() { @@ -563,7 +569,7 @@ userTaoLiJinOriginService.overdueHongBao(uid); } }); JSONObject data = new JSONObject(); data.put("count", array.size()); data.put("list", array); @@ -660,4 +666,83 @@ data.put("list", array); out.print(JsonUtil.loadTrueResult(data)); } /** * 分享爆款商品-限于淘礼金 * * @param acceptData * @param uid * @param out */ @RequestMapping(value = "getBuyGoods", method = RequestMethod.POST) public void getBuyGoods(AcceptData acceptData, int page, PrintWriter out) { String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis()); List<TLJBuyGoods> listHot = tljBuyGoodsService.listByDay(day); if (listHot == null) { listHot = new ArrayList<TLJBuyGoods>(); } JSONArray array = new JSONArray(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); BigDecimal proportion = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE; for (TLJBuyGoods hotGoods : listHot) { TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods(); if (taoBaoGoodsBrief == null) { continue; } // 计算推广红包 BigDecimal spreadMoney = TaoBaoUtil.getGoodsHongBaoMoney(taoBaoGoodsBrief, proportion); // 推广红包 不能小于1 if (spreadMoney.compareTo(new BigDecimal(1.0)) < 0) { continue; } TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null); // 去掉标签 extra.setLabels(null); String hongBao = spreadMoney.toString(); TLJBuyHongBaoVO vo = new TLJBuyHongBaoVO(); vo.setLeft(hotGoods.getLeftHongBaoCount()); vo.setMoney(hongBao); vo.setTagName("付款立减 ¥" + hongBao); vo.setTip(""); vo.setTotal(hotGoods.getTotalHongBaoCount()); extra.setTljBuyHongBao(vo); // 显示类型 extra.setMoneyType(2); extra.setSpreadMoney("付款立减 ¥" + spreadMoney); array.add(gson.toJson(extra)); } if (page > 1) array.clear(); JSONObject data = new JSONObject(); data.put("count", array.size()); data.put("list", array); if (page == 1) { try { List<SwiperPicture> bannerList = swiperPictureService.getByBannerCard("zigoulijian_banner"); if (bannerList != null && bannerList.size() > 0) data.put("topPicture", bannerList.get(0).getSrc()); else data.put("topPicture", ""); } catch (SwiperPictureException e) { e.printStackTrace(); } data.put("ruleUrl", configService.get("zigoulijian_rule")); } out.print(JsonUtil.loadTrueResult(data)); } } fanli/src/main/java/com/yeshi/fanli/util/pinduoduo/PinDuoDuoUtil.java
@@ -1,11 +1,24 @@ package com.yeshi.fanli.util.pinduoduo; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; import org.yeshi.utils.BigDecimalUtil; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class PinDuoDuoUtil { @@ -80,4 +93,49 @@ return salesCountMidea; } public static List<String> getDetailImages(Long id) { List<String> imgList = new ArrayList<>(); try { Document doc = Jsoup.connect("http://yangkeduo.com/goods.html?goods_id="+id) .userAgent( "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36") .get(); Elements els = doc.getElementsByTag("script"); for (int i = 0; i < els.size(); i++) { if (els.get(i).html().contains("window.rawData")) { String dataJS = els.get(i).html().replace("window.", "var "); dataJS += "function getData(){return JSON.stringify(rawData);}"; ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("javascript"); try { engine.eval(dataJS); if (engine instanceof Invocable) { Invocable in = (Invocable) engine; String jsonStr = in.invokeFunction("getData").toString(); JSONObject json = JSONObject.fromObject(jsonStr); JSONArray array = json.optJSONObject("store").optJSONObject("initDataObj") .optJSONObject("goods").optJSONArray("detailGallery"); for (int j = 0; j < array.size(); j++) { imgList.add("http:" + array.optJSONObject(j).optString("url")); } } } catch (Exception e) { e.printStackTrace(); } break; } } } catch (Exception e1) { e1.printStackTrace(); } return imgList; } }