From 941271bb52d26e484e2fe9c82d19bd9f94b84838 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 29 六月 2020 16:38:33 +0800
Subject: [PATCH] 拉新与免单JOB修改
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java | 146 ++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 140 insertions(+), 6 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 47802e2..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,10 +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.homemodule.SwiperPicture;
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;
@@ -27,6 +32,14 @@
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;
+
+
+
+
/**
* 鐢ㄦ埛鍒稿垪琛ㄦ煡璇�
*
@@ -98,7 +124,7 @@
// 绂忓埄涓績鍥剧墖
String topPicture = null;
if (page == 1) {
- List<SwiperPicture> listswiper = swiperPictureService.getByBannerCardAndVersion("welfare_top",acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
+ List<BannerVO> listswiper = swiperPictureService.getByBannerCardAndVersion("welfare_top",acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
if (listswiper != null && listswiper.size() > 0) {
topPicture = listswiper.get(0).getSrc();
}
@@ -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