From 1e28ac69827ff7578a418a79bd95aff2c6637f5c Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期日, 28 六月 2020 16:47:00 +0800 Subject: [PATCH] 2.1.3 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java | 142 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 138 insertions(+), 4 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java index f7fbc91..086d3a9 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java @@ -1,8 +1,10 @@ package com.yeshi.fanli.controller.client.v1; import java.io.PrintWriter; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.Map; import javax.annotation.Resource; @@ -12,9 +14,13 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.yeshi.utils.JsonUtil; +import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.UserInfoExtra; +import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.entity.system.ConfigKeyEnum; +import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.exception.user.UserSystemCouponException; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.config.SystemCouponService; @@ -26,6 +32,13 @@ import com.yeshi.fanli.service.inter.user.invite.UserInviteService; import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.RedisManager; +import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; +import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; +import com.yeshi.fanli.util.jd.JDUtil; +import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.vo.homemodule.BannerVO; import com.yeshi.fanli.vo.user.UserSystemCouponRecordVO; import com.yeshi.fanli.vo.user.UserSystemCouponVO; @@ -74,7 +87,20 @@ @Resource private UserInviteService userInviteService; - + + + @Resource + private RedisManager redisManager; + + @Resource + private JDGoodsCacheUtil jdGoodsCacheUtil; + + @Resource + private PinDuoDuoCacheUtil pinDuoDuoCacheUtil; + + + + /** * 鐢ㄦ埛鍒稿垪琛ㄦ煡璇� * @@ -172,7 +198,6 @@ try { List<UserSystemCouponVO> resultList = UserSystemCouponService.getGoodsCouponList(uid, auctionId); - if (resultList == null) { resultList = new ArrayList<UserSystemCouponVO>(); } @@ -186,9 +211,7 @@ data.put("tip", dataTip); data.put("count", resultList.size()); data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList)); - out.print(JsonUtil.loadTrueResult(data)); - } catch (UserSystemCouponException e) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); } catch (Exception e) { @@ -197,6 +220,9 @@ } } + + + /** * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� * @@ -353,5 +379,113 @@ } } + + /** + * 鏌ヨ鍏嶅崟鍒� + * @param acceptData + * @param uid + * @param auctionId + * @param out + */ + @RequestMapping(value = "getFreeCouponList", method = RequestMethod.POST) + public void getFreeCouponList(AcceptData acceptData, Long uid, String goodsId, Integer goodsType, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (goodsType == null || StringUtil.isNullOrEmpty(goodsId)) { + out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�")); + return; + } + + List<UserSystemCouponVO> list = UserSystemCouponService.getFreeCouponList(uid); + if (list == null) + list = new ArrayList<>(); + + + if (list.size() > 0) { + boolean state = false; + BigDecimal priceLimit = BigDecimal.valueOf(9.9); + switch(goodsType) { + case Constant.SOURCE_TYPE_TAOBAO: + state = checkCanUsedTB(Long.parseLong(goodsId), priceLimit); + break; + case Constant.SOURCE_TYPE_JD: + state = checkCanUsedTB(Long.parseLong(goodsId), priceLimit); + break; + case Constant.SOURCE_TYPE_PDD: + state = checkCanUsedTB(Long.parseLong(goodsId), priceLimit); + break; + default: + break; + } + + // 涓嶈兘浣跨敤 + if (!state) { + for (UserSystemCouponVO userCouponVO : list) { + userCouponVO.setState(0); + userCouponVO.setCouponPicture(userCouponVO.getCouponPictureInvalid()); + Map<String, Object> map = userCouponVO.getRemainDays(); + if (map != null) { + map.put("fontColor", "#CCCCCC"); + } + userCouponVO.setRemainDays(map); + } + } + } + + JSONObject dataTip = new JSONObject(); + dataTip.put("content", configService.get(ConfigKeyEnum.freeCouponTip.getKey())); + dataTip.put("fontColor", "#F14242"); + + JSONObject data = new JSONObject(); + data.put("helpLink", configService.get(ConfigKeyEnum.freeCouponHelp.getKey())); + data.put("tip", dataTip); + data.put("count", list.size()); + data.put("list", JsonUtil.getApiCommonGson().toJson(list)); + out.print(JsonUtil.loadTrueResult(data)); + } + + + + private boolean checkCanUsedTB(Long goodsId, BigDecimal priceLimit) { + try { + TaoBaoGoodsBrief goods = redisManager.getTaoBaoGoodsBrief(goodsId); + if (goods == null) + return false; + + BigDecimal quanPrice = TaoBaoUtil.getAfterUseCouplePrice(goods); + if (quanPrice.compareTo(priceLimit) <= 0) + return true; + } catch (TaobaoGoodsDownException e) { + e.printStackTrace(); + } + return false; + } + + + private boolean checkCanUsedJD(Long goodsId, BigDecimal priceLimit) { + JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId); + if (goods == null) + return false; + BigDecimal quanPrice = JDUtil.getQuanPrice(goods); + if (quanPrice.compareTo(priceLimit) <= 0) + return true; + + return false; + } + + private boolean checkCanUsedPDD(Long goodsId, BigDecimal priceLimit) { + PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); + if (goods == null) + return false; + BigDecimal quanPrice = PinDuoDuoUtil.getQuanPrice(goods); + if (quanPrice.compareTo(priceLimit) <= 0) + return true; + + return false; + } + } -- Gitblit v1.8.0