admin
2020-04-27 04e85c19e6cafd1cd65ade89b76a4e9ee5211c08
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;
@@ -21,10 +20,13 @@
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.goods.ScanHistoryV2;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.CollectionGoodsException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
@@ -32,10 +34,15 @@
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.hongbao.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.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.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
@@ -54,9 +61,9 @@
   @Resource
   private BusinessSystemService businessSystemService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
   @Resource
   private CollectionGoodsV2Service collectionGoodsV2Service;
@@ -64,10 +71,83 @@
   @Resource
   private ScanHistoryV2Service scanHistoryV2Service;
   @Resource
   private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
   @Resource
   private JDGoodsCacheUtil jdGoodsCacheUtil;
   @Resource
   private PinDuoDuoCacheUtil pinDuoDuoCacheUtil;
   @Resource
   private RedisManager redisManager;
   /**
    * 收藏商品
    *
    * @param acceptData
    * @param uid
    * @param id
    * @param type
    * @param goodsType
    * @param out
    */
   @RequestMapping("collectionGoods")
   public void collectionGoods(AcceptData acceptData, long uid, long id, int type, Integer goodsType,
         PrintWriter out) {
      try {
         if (goodsType == null) {
            goodsType = Constant.SOURCE_TYPE_TAOBAO;
         }
         if (type != 1) {
            collectionGoodsV2Service.cancelCollectionByAuctionId(uid, id, goodsType);
            out.print(JsonUtil.loadTrueResult("取消收藏成功"));
            return;
         }
         CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, id, goodsType);
         if (find != null) {
            out.print(JsonUtil.loadFalseResult(""));
            return;
         }
         if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(id);
            if (jdGoods == null) {
               jdGoods = JDApiUtil.getGoodsDetail(id);
            }
            if (jdGoods == null) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
               return;
            }
            collectionGoodsV2Service.addJDCollection(uid, jdGoods);
         } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            PDDGoodsDetail pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(id);
            if (pddGoods == null) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
               return;
            }
            collectionGoodsV2Service.addPDDCollection(uid, pddGoods);
         } else {
            try {
               TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(id);
               collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
            } catch (TaobaoGoodsDownException e) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
               return;
            }
         }
         out.print(JsonUtil.loadTrueResult("收藏成功"));
      } catch (CollectionGoodsException e) {
         out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
      }
   }
   /**
    * 删除收藏
    *
    * @param acceptData
    * @param ids
    * @param type
@@ -80,7 +160,7 @@
         out.print(JsonUtil.loadFalseResult("用户未登录"));
         return;
      }
      if (type != null && type == 1) { // 删除全部
         try {
            collectionGoodsV2Service.cancelCollectionByUid(uid);
@@ -102,8 +182,6 @@
      out.print(JsonUtil.loadTrueResult("删除成功"));
   }
   /**
    * 收藏列表
    * 
@@ -157,8 +235,8 @@
            }
         }
         BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
         BigDecimal shareRate = hongBaoManageService.getShareRate();
         ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
               acceptData.getVersion());
         for (CollectionGoodsV2 collectionGoodsV2 : collectionGoodsList) {
            CommonGoods commonGoods = collectionGoodsV2.getCommonGoods();
@@ -180,8 +258,7 @@
               commonGoods.setState(state);
            }
            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate,
                  shareRate);
            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO);
            detailVO.setId(commonGoods.getId());
            detailVO.setCreatetime(collectionGoodsV2.getCreateTime());
            list.add(detailVO);
@@ -207,9 +284,9 @@
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 删除足迹
    *
    * @param acceptData
    * @param type
    * @param uid
@@ -227,7 +304,7 @@
            out.print(JsonUtil.loadFalseResult("ids不能为空"));
            return;
         }
         String[] idStr = ids.split(",");
         for (String id : idStr) {
            scanHistoryV2Service.deleteByCommonIdAndDeviceOrUid(uid, acceptData.getDevice(), Long.parseLong(id));
@@ -235,10 +312,10 @@
      }
      out.print(JsonUtil.loadTrueResult(""));
   }
   /**
    * 获取浏览记录
    *
    * @param acceptData
    * @param uid
    * @param page
@@ -267,23 +344,22 @@
            }
         }
      });
      long count = scanHistoryV2Service.getCountByDeviceOrUid(uid, acceptData.getDevice(), goodsType);
      JSONArray array = new JSONArray();
      if (list != null && list.size() > 0) {
         Gson gson = gsonBuilder.create();
         BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
         BigDecimal shareRate = hongBaoManageService.getShareRate();
         ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
               acceptData.getVersion());
         for (ScanHistoryV2 sh : list) {
            CommonGoods commonGoods = sh.getCommonGoods();
            if (commonGoods == null) {
               continue;
            }
            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate,
                  shareRate);
            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO);
            detailVO.setId(commonGoods.getId());
            detailVO.setCreatetime(sh.getCreateTime());
            array.add(gson.toJson(detailVO));
@@ -296,5 +372,5 @@
      out.print(JsonUtil.loadTrueResult(data));
      return;
   }
}