admin
2020-06-10 271ae63c20fcbe28d29c47f1881138ff6551a2a1
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConsumerControllerV2.java
@@ -2,7 +2,6 @@
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -23,6 +22,8 @@
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.dto.suning.SuningGoodsInfo;
import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.goods.CommonGoods;
@@ -35,16 +36,20 @@
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.suning.SuningApiUtil;
import com.yeshi.fanli.util.suning.SuningUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.vipshop.VipShopApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import net.sf.json.JSONArray;
@@ -64,7 +69,7 @@
   private BusinessSystemService businessSystemService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
   @Resource
   private CollectionGoodsV2Service collectionGoodsV2Service;
@@ -84,9 +89,9 @@
   @Resource
   private RedisManager redisManager;
   /**
    * 收藏商品
    *
    * @param acceptData
    * @param uid
    * @param id
@@ -95,7 +100,7 @@
    * @param out
    */
   @RequestMapping("collectionGoods")
   public void collectionGoods(AcceptData acceptData, long uid, long id, int type, Integer goodsType,
   public void collectionGoods(AcceptData acceptData, long uid, String id, int type, Integer goodsType,
         PrintWriter out) {
      try {
         if (goodsType == null) {
@@ -103,21 +108,30 @@
         }
         if (type != 1) {
            collectionGoodsV2Service.cancelCollectionByAuctionId(uid, id, goodsType);
            if (goodsType == Constant.SOURCE_TYPE_SUNING) {
               String[] sts = SuningUtil.getGoodsIdDetail(id);
               collectionGoodsV2Service.cancelCollectionByAuctionId(uid, Long.parseLong(sts[1]), goodsType);
            } else
               collectionGoodsV2Service.cancelCollectionByAuctionId(uid, Long.parseLong(id), goodsType);
            out.print(JsonUtil.loadTrueResult("取消收藏成功"));
            return;
         }
         CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, id, goodsType);
         Long goodsId = null;
         if (goodsType == Constant.SOURCE_TYPE_SUNING) {
            String[] sts = SuningUtil.getGoodsIdDetail(id);
            goodsId = Long.parseLong(sts[1]);
         } else
            goodsId = Long.parseLong(id);
         CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, goodsId, goodsType);
         if (find != null) {
            out.print(JsonUtil.loadFalseResult(""));
            return;
         }
         if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(id);
            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
            if (jdGoods == null) {
               jdGoods = JDApiUtil.getGoodsDetail(id);
               jdGoods = JDApiUtil.getGoodsDetail(goodsId);
            }
            if (jdGoods == null) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
@@ -125,15 +139,30 @@
            }
            collectionGoodsV2Service.addJDCollection(uid, jdGoods);
         } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            PDDGoodsDetail pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(id);
            PDDGoodsDetail pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
            if (pddGoods == null) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
               return;
            }
            collectionGoodsV2Service.addPDDCollection(uid, pddGoods);
         } else if (goodsType == Constant.SOURCE_TYPE_VIP) {
            VIPGoodsInfo vipGoods = VipShopApiUtil.getGoodsDetail(id);
            if (vipGoods == null) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
               return;
            }
            collectionGoodsV2Service.addVIPCollection(uid, vipGoods);
         } else if (goodsType == Constant.SOURCE_TYPE_SUNING) {
            String[] sts = SuningUtil.getGoodsIdDetail(id);
            SuningGoodsInfo suningGoods = SuningApiUtil.getGoodsDetail(sts[1], sts[0]);
            if (suningGoods == null) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
               return;
            }
            collectionGoodsV2Service.addSuningCollection(uid, suningGoods);
         } else {
            try {
               TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(id);
               TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
               collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
            } catch (TaobaoGoodsDownException e) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
@@ -204,10 +233,14 @@
         return;
      }
      List<CollectionGoodsV2> collectionGoodsList = collectionGoodsV2Service.getCollectionGoodsList(uid, page,
            Constant.PAGE_SIZE, goodsType);
      boolean notBackSuVip = false;
      if (!VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), acceptData.getVersion()))
         notBackSuVip = true;
      long count = collectionGoodsV2Service.getCollectionGoodsCount(uid, goodsType);
      List<CollectionGoodsV2> collectionGoodsList = collectionGoodsV2Service.getCollectionGoodsList(uid, page,
            Constant.PAGE_SIZE, goodsType, notBackSuVip);
      long count = collectionGoodsV2Service.getCollectionGoodsCount(uid, goodsType, notBackSuVip);
      JSONObject data = new JSONObject();
      List<GoodsDetailVO> list = new ArrayList<GoodsDetailVO>();
@@ -236,9 +269,9 @@
            }
         }
         BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
         BigDecimal shareRate = hongBaoManageService.getShareRate();
         ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
         ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
               acceptData.getVersion());
         for (CollectionGoodsV2 collectionGoodsV2 : collectionGoodsList) {
            CommonGoods commonGoods = collectionGoodsV2.getCommonGoods();
            if (commonGoods == null) {
@@ -330,8 +363,12 @@
         return;
      }
      boolean notBackSuVip = false;
      if (!VersionUtil.greaterThan_2_1_2(acceptData.getPlatform(), acceptData.getVersion()))
         notBackSuVip = true;
      List<ScanHistoryV2> list = scanHistoryV2Service.getScanHistoryByDeviceOrUid(uid, acceptData.getDevice(), page,
            20, goodsType);
            20, goodsType, notBackSuVip);
      GsonBuilder gsonBuilder = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
      gsonBuilder.excludeFieldsWithoutExposeAnnotation();
@@ -346,14 +383,13 @@
         }
      });
      long count = scanHistoryV2Service.getCountByDeviceOrUid(uid, acceptData.getDevice(), goodsType);
      long count = scanHistoryV2Service.getCountByDeviceOrUid(uid, acceptData.getDevice(), goodsType, notBackSuVip);
      JSONArray array = new JSONArray();
      if (list != null && list.size() > 0) {
         Gson gson = gsonBuilder.create();
         BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
         BigDecimal shareRate = hongBaoManageService.getShareRate();
         ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
         ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
               acceptData.getVersion());
         for (ScanHistoryV2 sh : list) {
            CommonGoods commonGoods = sh.getCommonGoods();
            if (commonGoods == null) {