From 020d940ae4e16f55f69cef3dd4c8dc0b9764af07 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期三, 26 六月 2019 10:59:48 +0800 Subject: [PATCH] 邀请对应奖励红包加入版本区分 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java | 240 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 197 insertions(+), 43 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java index c545e78..fe3032d 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java @@ -41,6 +41,7 @@ import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.entity.bus.user.ShamUser; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.UserMoneyExtra; import com.yeshi.fanli.entity.common.ImageInfo; import com.yeshi.fanli.entity.common.JumpDetail; import com.yeshi.fanli.entity.common.JumpDetailV2; @@ -80,6 +81,8 @@ 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.RecommendGoodsDeleteHistoryService; +import com.yeshi.fanli.service.inter.homemodule.DeviceSexService; import com.yeshi.fanli.service.inter.homemodule.SpecialService; import com.yeshi.fanli.service.inter.homemodule.SuperSpecialService; import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; @@ -93,12 +96,17 @@ import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService; +import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService; +import com.yeshi.fanli.service.inter.tlj.DeviceTaoLiJinRecordService; +import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService; +import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService; import com.yeshi.fanli.service.inter.user.ShamUserService; import com.yeshi.fanli.service.inter.user.TBPidService; import com.yeshi.fanli.service.inter.user.UserCustomSettingsService; import com.yeshi.fanli.service.inter.user.UserGoodsStorageService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.service.inter.user.UserMoneyExtraService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; @@ -112,7 +120,9 @@ import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil; 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.msg.ClientTextStyleVO; +import com.yeshi.fanli.vo.tlj.SpreadHongBao; import com.yeshi.fanli.vo.user.UserSettingsVO; import net.sf.json.JSONArray; @@ -229,6 +239,30 @@ @Resource private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService; + + @Resource + private UserMoneyExtraService userMoneyExtraService; + + @Resource + private UserTaoLiJinOriginService userTaoLiJinOriginService; + + @Resource + private ConfigTaoLiJinService configTaoLiJinService; + + @Resource + private DeviceTaoLiJinRecordService deviceTaoLiJinRecordService; + + @Resource + private DeviceSexService deviceSexService; + + @Resource + private UserTaoLiJinRecordService userTaoLiJinRecordService; + + + + + @Resource + private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService; @RequestMapping(value = "getHonestList") public void getHonestList(AcceptData acceptData, PrintWriter out) { @@ -1309,14 +1343,24 @@ if (result != null && result.getTaoBaoGoodsBriefs() != null) { // 绛涢�� - List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); + List<TaoBaoGoodsBriefExtra> goodsList = new ArrayList<>(); - for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) { - if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null - && goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0 - && goods.getBiz30day() > 1000 && !StringUtil.isNullOrEmpty(goods.getPictUrlWhite())) - goodsList.add(goods); - } + List<TaoBaoGoodsBrief> gList = recommendGoodsDeleteHistoryService + .filterGoods(acceptData.getDevice(), result.getTaoBaoGoodsBriefs()); + // 璁惧鎺ㄨ崘 + if (gList != null) + for (TaoBaoGoodsBrief goods : gList) { + if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null + && goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0 + && goods.getBiz30day() > 1000 + && !StringUtil.isNullOrEmpty(goods.getPictUrlWhite())) { + + TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, + proportion.toString(), ""); + extra.setRecommend(true); + goodsList.add(extra); + } + } try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, (int) (java.lang.System.currentTimeMillis() - startTime), "鎺ㄨ崘鏁伴噺:" + goodsList.size())); @@ -1326,8 +1370,8 @@ Collections.shuffle(goodsList); goodsList = goodsList.size() > 20 ? goodsList.subList(0, 20) : goodsList; - for (TaoBaoGoodsBrief goods : goodsList) { - array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), ""))); + for (TaoBaoGoodsBriefExtra goods : goodsList) { + array.add(gson.toJson(goods)); } } else { try { @@ -1579,8 +1623,11 @@ @RequestMapping(value = "getRecommendIndex") public void getRecommendIndex(AcceptData acceptData, Long uid, PrintWriter out) { try { + // 鑾峰彇璁惧瀹氫箟鎬у埆 + int deviceSex = deviceSexService.getDeviceSex(acceptData.getDevice()); + // 1銆佷笓棰樻ā鍧� - JSONObject root = specialService.listCacheSpecialToIndex(acceptData); + JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex); // 2銆侀《閮ㄨ疆鎾浘 List<SwiperPicture> topPicList = getSwiperByCard("index_top"); @@ -1784,13 +1831,9 @@ * @param out */ @RequestMapping(value = "getgoodsinfo", method = RequestMethod.POST) - public void getGoodsInfo(AcceptData acceptData, String id, String uid, String from, PrintWriter out) { + public void getGoodsInfo(AcceptData acceptData, Long id, Long uid, String from, PrintWriter out) { - if ("0".equalsIgnoreCase(uid)) { - uid = ""; - } - - if (StringUtil.isNullOrEmpty(id)) { + if (id == null) { out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼爄d")); return; } @@ -1834,14 +1877,14 @@ if (!convertInServer) { try { - goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(Long.parseLong(id)); + goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(id); if (goods == null) { TaoKeAppInfo app = new TaoKeAppInfo(); app.setAppKey(TaoBaoConstant.TAOBAO_COMMON_APPKEY); app.setAppSecret(TaoBaoConstant.TAOBAO_COMMON_APPSECRET); app.setPid(TaoBaoConstant.TAOBAO_COMMON_PID); app.setAdzoneId(TaoBaoConstant.TAOBAO_COMMON_PID.split("_")[3]); - goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app); + goods = TaoKeApiUtil.searchGoodsDetail(id, app); final TaoBaoGoodsBrief finalGoods = goods; if (goods != null) { ThreadUtil.run(new Runnable() { @@ -1856,7 +1899,7 @@ // 鍟嗗搧涓嬫灦 ThreadUtil.run(new Runnable() { public void run() { - taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id)); + taoBaoGoodsUpdateService.offlineTaoBaoGoods(id); } }); @@ -1873,7 +1916,7 @@ app.setPid(clientPid); try { - goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app); + goods = TaoKeApiUtil.searchGoodsDetail(id, app); if (goods != null) { ticket.put("clickUrl", goods.getAuctionUrl()); // 娴嬭瘯浣跨敤 @@ -1895,7 +1938,7 @@ } catch (TaobaoGoodsDownException e) { ThreadUtil.run(new Runnable() { public void run() { - taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id)); + taoBaoGoodsUpdateService.offlineTaoBaoGoods(id); } }); } @@ -1969,11 +2012,10 @@ } // 鍒ゆ柇鏀惰棌 - if (StringUtil.isNullOrEmpty(uid)) { + if (uid == null) { data.put("collected", false); } else { - CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(Long.parseLong(uid), - Long.parseLong(id)); + CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(uid, id); data.put("collected", collectionGoods != null ? true : false); } @@ -1999,7 +2041,9 @@ String hongBao = null; // 鑾峰彇鍒镐俊鎭� - if (!StringUtil.isNullOrEmpty(tb.getCouponInfo())) { + if (!StringUtil.isNullOrEmpty(tb.getCouponInfo()) && tb.getCouponAmount() != null + && tb.getCouponAmount().compareTo(new BigDecimal(0)) > 0 && tb.getCouponEffectiveStartTime() != null + && tb.getCouponEffectiveEndTime() != null) { BigDecimal quanPrice = TaoBaoUtil.getAfterUseCouplePrice(tb); JSONObject couponInfo = new JSONObject(); couponInfo.put("couponPrice", MoneyBigDecimalUtil.getWithNoZera(quanPrice).toString()); @@ -2017,7 +2061,9 @@ redisManager.saveCommonTaoToken(tb.getAuctionId(), token); } } - tb.setCouponLinkTaoToken(token); + // 娴嬭瘯 + if (!Constant.IS_TEST) + tb.setCouponLinkTaoToken(token); // 鏈嶅姟绔浆閾� // if (convertInServer && @@ -2033,7 +2079,10 @@ couponInfo.put("couponTime", "浣跨敤鏈熼檺锛�" + tb.getCouponEffectiveStartTime().replace("-", ".") + "-" + tb.getCouponEffectiveEndTime().replace("-", ".")); // 鍒哥殑鍙d护 - couponInfo.put("couponToken", token); + + // 娴嬭瘯 + if (!Constant.IS_TEST) + couponInfo.put("couponToken", token); goodsJson.put("couponInfo", couponInfo); if (tb.getBiz30day() >= 1000) { @@ -2099,26 +2148,23 @@ goodsJson.put("shopInfo", tbShopInfo); } - goodsJson.put("fanliValid", true);// 鏄惁鏈夎繑鍒� - // 鍒嗕韩璺緞 String shareUrl = String.format("%s?id=" + tb.getAuctionId(), Constant.systemCommonConfig.getAppShareInfoUrl()); // 鏄惁鍔犲叆閫夊搧搴擄細 0鏈姞鍏� 1 宸插姞鍏� boolean storageState = false; - if (uid != null && uid.trim().length() > 0) { - storageState = userGoodsStorageService.isExistStorage(Long.parseLong(uid), Long.parseLong(id)); + if (uid != null) { + storageState = userGoodsStorageService.isExistStorage(uid, id); } data.put("storageState", storageState); data.put("shareUrl", shareUrl); - - data.put("goods", goodsJson); data.put("shareUsers", listShareUser); data.put("couponUsers", listCouponUser); data.put("detailWebUrl", "http://apph5.yeshitv.com/apppage/goods_img.html?id=" + id); - data.put("noRebateHelpLink", configService.get("no_rebate_help_link")); + String noRebateHelpLink = null; + // 鍟嗗搧閾炬帴 String h5Url = String.format("http://%s%s?id=%s&appType=flq", configService.getH5Host(), @@ -2128,7 +2174,88 @@ } catch (Exception e) { data.put("h5Url", h5Url); } - + + // 鏄惁鏈夎繑鍒� + boolean fanliValid = true; + //璧勯噾绫诲瀷 1-杩� 2-濂� + int moneyType = 1; + + // 鎺ㄥ箍绾㈠寘 + if (from != null && from.equals("taolijin")) { + // 璁$畻鎺ㄥ箍绾㈠寘 + String warningRate = configTaoLiJinService.getValueByKey("warning_value"); + BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, goods); + + // 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1 + if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) { + out.print(JsonUtil.loadFalseResult(2, "鍟嗗搧涓嶅瓨鍦�")); + return; + } + + // 鏄惁涓烘柊鐢ㄦ埛 + boolean isNewUser = userInfoExtraService.isNewUser(uid); + if (isNewUser) { + // 鍒ゅ畾涓鸿�佺敤鎴凤細 鏂颁汉鍙浣跨敤浜嗘柊浜虹孩鍖咃紝涔熷氨鏄偅1鍧楅挶锛岄偅涔堬紝浠栫湅鍒扮殑鍒嗕韩鐖嗘涓殑鍟嗗搧-灏卞彧鑳藉垎浜�� + long countRecord = userTaoLiJinRecordService.countRecordByUid(uid); + if (countRecord > 0) { + isNewUser = false; + } + } + + SpreadHongBao spreadHongBao = new SpreadHongBao(); + if (isNewUser) { + spreadHongBao.setMoney("1"); + } else { + spreadHongBao.setMoney(spreadMoney.toString()); + + moneyType = 2; + fanliValid = false; + ClientTextStyleVO textStyleVO1 = new ClientTextStyleVO(); + textStyleVO1.setContent("鍒嗕韩"); + textStyleVO1.setColor("#666666"); + ClientTextStyleVO textStyleVO2 = new ClientTextStyleVO(); + textStyleVO2.setContent("璧氬閲�"); + textStyleVO2.setColor("#F14242"); + ClientTextStyleVO textStyleVO3 = new ClientTextStyleVO(); + textStyleVO3.setContent("锛屽ソ鍙�"); + textStyleVO3.setColor("#666666"); + ClientTextStyleVO textStyleVO4 = new ClientTextStyleVO(); + textStyleVO4.setContent("棰嗙孩鍖咃紒"); + textStyleVO4.setColor("#F14242"); + + List<ClientTextStyleVO> listText = new ArrayList<ClientTextStyleVO>(); + listText.add(textStyleVO1); + listText.add(textStyleVO2); + listText.add(textStyleVO3); + listText.add(textStyleVO4); + + data.put("listTip", listText); + } + spreadHongBao.setTip("褰撴棩棰嗗彇锛屼袱澶╁唴浣跨敤锛岃繃鏃舵棤鏁�"); + goodsJson.put("spreadHongBao", spreadHongBao); + + // 鐢ㄦ埛鍓╀綑鍙互娣樼ぜ閲戦獙璇� + UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid); + if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) { + data.put("userHongbao", new BigDecimal(0).setScale(2).toString()); + } else { + data.put("userHongbao", userMoneyExtra.getTlj().setScale(2).toString()); + } + + noRebateHelpLink = configTaoLiJinService.getValueByKey("share_goods_help_link"); + } + + goodsJson.put("moneyType", moneyType); + goodsJson.put("fanliValid", fanliValid); + data.put("goods", goodsJson); + + if (!StringUtil.isNullOrEmpty(noRebateHelpLink)) { + data.put("noRebateHelpLink", noRebateHelpLink); + } else { + data.put("noRebateHelpLink", configService.get("no_rebate_help_link")); + } + + // 鍙栨秷鍒嗕韩娲诲姩 // if (!StringUtil.isNullOrEmpty(uid) // && @@ -2149,15 +2276,12 @@ out.print(JsonUtil.loadTrueResult(data)); - final String tempUid = uid; final TaoBaoGoodsBrief goodsInfo = tb; ThreadUtil.run(new Runnable() { public void run() { // 娣诲姞娴忚璁板綍 try { - scanHistoryV2Service.addScanHistory( - StringUtil.isNullOrEmpty(tempUid) ? null : Long.parseLong(tempUid), acceptData.getDevice(), - goodsInfo); + scanHistoryV2Service.addScanHistory(uid, acceptData.getDevice(),goodsInfo); } catch (Exception e) { e.printStackTrace(); } @@ -2258,7 +2382,7 @@ e1.printStackTrace(); } - if (goodsList != null) + if (goodsList != null && goodsList.size() > 0) goodsList.parallelStream().forEach(goods -> { // 鑾峰彇璇︽儏 @@ -2355,18 +2479,48 @@ } try { + + List<Special> list = new ArrayList<Special>(); // 涓撻娲诲姩 String specialCard = "special_activities"; List<Special> listSpecial = specialService.listPageBySystemAndCard(0, Integer.MAX_VALUE, specialCard, system.getId()); - if (listSpecial == null) { - listSpecial = new ArrayList<Special>(); + if (listSpecial != null) { + list.addAll(listSpecial); + } + + for (int i = 0; i < list.size(); i++) { + Special special = list.get(i); + + JumpDetailV2 jumpDetail = special.getJumpDetail(); + if (jumpDetail != null) { + jumpDetail.setNeedLogin(special.isJumpLogin()); + special.setJumpDetail(jumpDetail); + } + + + String name = special.getName(); + if (StringUtil.isNullOrEmpty(name)) { + continue; + } + + // 鏄惁闇�瑕佸脊鍑烘 + if (name.equals("璐︽埛绛夌骇鐗规潈")) { + if (!VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion())) { + list.remove(i); + i--; + } else { + if (uid != null) { + special.setElastic(userTaoLiJinOriginService.hasRankHongBao(uid)); + } + } + } } JSONObject root = new JSONObject(); - root.put("special", JsonUtil.getApiCommonGson().toJson(listSpecial)); + root.put("special", JsonUtil.getApiCommonGson().toJson(list)); out.print(JsonUtil.loadTrueResult(root)); } catch (Exception e) { -- Gitblit v1.8.0