From 0e552c5dba18d27622116a7d7a6e04fc99f8e8a7 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 22 一月 2019 14:14:23 +0800 Subject: [PATCH] Merge branch 'dev-msg' --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 117 insertions(+), 2 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java index 9672395..69a5013 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java @@ -6,7 +6,9 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import java.util.HashSet; import java.util.List; +import java.util.Set; import javax.annotation.Resource; @@ -24,6 +26,7 @@ import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.lable.QualityFactory; import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail; import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail; import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail; @@ -33,8 +36,13 @@ import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.goods.RecommendUserGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; +import com.yeshi.fanli.exception.goods.CommonGoodsException; +import com.yeshi.fanli.exception.goods.RecommendUserGoodsException; import com.yeshi.fanli.exception.msg.UserSystemMsgException; +import com.yeshi.fanli.service.inter.goods.CommonGoodsService; import com.yeshi.fanli.service.inter.goods.RecommendUserGoodsService; +import com.yeshi.fanli.service.inter.lable.QualityFactoryService; import com.yeshi.fanli.service.inter.msg.MsgAccountDetailService; import com.yeshi.fanli.service.inter.msg.MsgInviteDetailService; import com.yeshi.fanli.service.inter.msg.MsgMoneyDetailService; @@ -45,7 +53,9 @@ import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; +import com.yeshi.fanli.util.factory.CommonGoodsFactory; import com.yeshi.fanli.util.factory.msg.UserMsgVOFactory; +import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.vo.msg.UserHomeMsgVO; import com.yeshi.fanli.vo.msg.UserMsgVO; import com.yeshi.fanli.vo.msg.UserSystemMsgVO; @@ -79,6 +89,12 @@ @Resource private UserSystemMsgService userSystemMsgService; + + @Resource + private CommonGoodsService commonGoodsService; + + @Resource + private QualityFactoryService qualityFactoryService; // 娑堟伅鐨勭被鍨� final static String MSG_TYPE_ORDER = "order"; @@ -212,6 +228,84 @@ return builder; } + private void addRecommendGoods(Long uid, String imei, String idfa) { + TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(1, 50, imei, idfa); + if (result != null && result.getTaoBaoGoodsBriefs() != null) { + for (int i = 0; i < result.getTaoBaoGoodsBriefs().size(); i++) { + if (result.getTaoBaoGoodsBriefs().get(i).getCouponAmount() == null + || result.getTaoBaoGoodsBriefs().get(i).getCouponAmount().compareTo(new BigDecimal(0)) <= 0) { + result.getTaoBaoGoodsBriefs().remove(i); + i--; + } + } + // 闅忔満鍑犱釜 + int count = (int) (Math.random() * 3) + 1; + Set<Integer> positionList = new HashSet<>(); + for (int i = 0; i < count; i++) + if (result.getTaoBaoGoodsBriefs().size() > 0) { + positionList.add((int) (result.getTaoBaoGoodsBriefs().size() * Math.random())); + } + + if (positionList != null && positionList.size() > 0) { + List<CommonGoods> goodsList = new ArrayList<>(); + for (Integer p : positionList) { + TaoBaoGoodsBrief goodsB = result.getTaoBaoGoodsBriefs().get(p); + try { + CommonGoods cgoods = commonGoodsService + .addOrUpdateCommonGoods(CommonGoodsFactory.create(goodsB)); + goodsList.add(cgoods); + } catch (CommonGoodsException e) { + e.printStackTrace(); + } + } + try { + recommendUserGoodsService.addRecommend(uid, "", goodsList); + } catch (RecommendUserGoodsException e) { + e.printStackTrace(); + } + } + } + } + + private void addRecommendGoods(Long uid) { + List<QualityFactory> qfList = qualityFactoryService.listByMinSalesCountOrderByCreateTimeDesc(10000, 1, 20); + if (qfList != null && qfList != null) { + for (int i = 0; i < qfList.size(); i++) { + if (qfList.get(i).getTaoBaoGoodsBrief().getCouponAmount() == null + || qfList.get(i).getTaoBaoGoodsBrief().getCouponAmount().compareTo(new BigDecimal(0)) <= 0) { + qfList.remove(i); + i--; + } + } + // 闅忔満鍑犱釜 + int count = (int) (Math.random() * 3) + 1; + Set<Integer> positionList = new HashSet<>(); + for (int i = 0; i < count; i++) + if (qfList.size() > 0) { + positionList.add((int) (qfList.size() * Math.random())); + } + + if (positionList != null && positionList.size() > 0) { + List<CommonGoods> goodsList = new ArrayList<>(); + for (Integer p : positionList) { + TaoBaoGoodsBrief goodsB = qfList.get(p).getTaoBaoGoodsBrief(); + try { + CommonGoods cgoods = commonGoodsService + .addOrUpdateCommonGoods(CommonGoodsFactory.create(goodsB)); + goodsList.add(cgoods); + } catch (CommonGoodsException e) { + e.printStackTrace(); + } + } + try { + recommendUserGoodsService.addRecommend(uid, "", goodsList); + } catch (RecommendUserGoodsException e) { + e.printStackTrace(); + } + } + } + } + /** * 鑾峰彇棣栭〉娑堟伅 * @@ -225,6 +319,27 @@ if (uid == null) { out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; + } + + if (page == 1) { + boolean canAdd = false; + int hour = Calendar.getInstance().get(Calendar.HOUR); + RecommendUserGoods goods = recommendUserGoodsService.getLatestRecommendUserGoods(uid); + if (goods == null) { + canAdd = true; + } else { + // 鏄惁鍜屼笂娆¢棿闅旀椂闂磋冻澶� + if (System.currentTimeMillis() - goods.getCreateTime().getTime() >= 1000 * 60 * 60 * 8L) { + canAdd = true; + } + } + + if (canAdd) { + if (hour < 12) + addRecommendGoods(uid); + else + addRecommendGoods(uid, acceptData.getImei(), acceptData.getIdfa()); + } } List<UserHomeMsgVO> volist = new ArrayList<>(); @@ -286,8 +401,8 @@ new UserSystemMsgVO(usm.getId(), usm.getType().name(), usm.getSolved(), usm.getTitle(), usm.getContent(), usm.getTimeTag() == 1 ? "http://img.flqapp.com/resource/msg/icon_emergent.png" : "", - Constant.systemCommonConfig.getDefaultPortrait(), getTimeDesc(now, usm.getCreateTime()), - num.getTypeSystem())); + "http://img.flqapp.com/resource/msg/icon_msg_system.png", + getTimeDesc(now, usm.getCreateTime()), num.getTypeSystem())); } root.put("count", count); out.print(JsonUtil.loadTrueResult(root)); -- Gitblit v1.8.0