admin
2020-05-19 744594ef1a2f530fc3e86ea9dc48b62247f79420
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareStorageControllerV2.java
@@ -1,7 +1,6 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -17,19 +16,23 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.UserGoodsStorage;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.user.UserGoodsStorageException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.user.UserGoodsStorageService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
@@ -52,16 +55,64 @@
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
   @Resource
   private UserGoodsStorageService userGoodsStorageService;
   /**
    * 单个商品加入选品库
    *
    * @param callback
    * @param storageIds
    *            id数组
    * @param out
    */
   @RequestMapping(value = "accordtorage", method = RequestMethod.POST)
   public void accordtorage(AcceptData acceptData, Long uid, long id, Integer goodsType, PrintWriter out) {
      if (uid == null) {
         out.print(JsonUtil.loadFalseResult("用户未登录"));
         return;
      }
      if (goodsType == null) {
         goodsType = Constant.SOURCE_TYPE_TAOBAO;
      }
      try {
         UserGoodsStorage userGoodsStorage = userGoodsStorageService.getByUidAndAuctionId(uid, id, goodsType);
         boolean storageState = false;
         if (userGoodsStorage != null) {
            // 取消加入选品库
            userGoodsStorageService.deleteByPrimaryKey(userGoodsStorage.getId());
         } else {
            // 加入选品库
            Set<Long> set = new HashSet<Long>();
            set.add(id);
            userGoodsStorageService.save(uid, set, goodsType);
            storageState = true;
         }
         JSONObject data = new JSONObject();
         data.put("storageState", storageState);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("操作失败"));
         e.printStackTrace();
      }
   }
   /**
    * 批量添加选品库
    * 
    * @param acceptData
    * @param uid        用户id
    * @param ids        简版商品id
    * @param uid
    *            用户id
    * @param ids
    *            简版商品id
    * @param out
    */
   @RequestMapping(value = "addStorage", method = RequestMethod.POST)
@@ -86,8 +137,10 @@
    * 查询用户选品库数据
    * 
    * @param acceptData
    * @param page       页码 初始值 1
    * @param uid        用户id
    * @param page
    *            页码 初始值 1
    * @param uid
    *            用户id
    * @param out
    */
   @RequestMapping(value = "getlist", method = RequestMethod.POST)
@@ -112,7 +165,7 @@
      JSONObject data = new JSONObject();
      if (goodsType == Constant.SOURCE_TYPE_JD) {
         String open = configService.get("share_jd_open");
         String open = configService.get(ConfigKeyEnum.shareOpenJD.getKey());
         if (!"1".equals(open.trim())) {
            data.put("count", 0);
            data.put("result_list", array);
@@ -156,8 +209,8 @@
      Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
      BigDecimal shareRate = hongBaoManageService.getShareRate();
      ConfigParamsDTO paramsDTO =  orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
            acceptData.getVersion());
      for (UserGoodsStorage userGoodsStorage : listStorage) {
         CommonGoods commonGoods = userGoodsStorage.getCommonGoods();
@@ -190,7 +243,7 @@
            }
         }
         GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate, shareRate);
         GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO);
         detailVO.setId(commonGoods.getId());
         JSONObject dataObject = new JSONObject();
@@ -205,7 +258,6 @@
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 分享商品返回二维码图片
    * 
@@ -221,7 +273,7 @@
         out.print(JsonUtil.loadFalseResult("分享商品不能为空"));
         return;
      }
      if (uid == null) {
         out.print(JsonUtil.loadFalseResult("用户未登录"));
         return;
@@ -229,19 +281,28 @@
      try {
         Gson gson = new Gson();
         List<Long> listStorageID = gson.fromJson(storageIds, new TypeToken<ArrayList<Long>>() {}.getType());
         if (listStorageID == null || listStorageID.size() < 9) {
            out.print(JsonUtil.loadFalseResult("分享商品数量不足"));
            return;
         }
         if (listStorageID.size() != 9) {
            out.print(JsonUtil.loadFalseResult("分享商品数量只能是9个"));
            return;
         List<Long> listStorageID = gson.fromJson(storageIds, new TypeToken<ArrayList<Long>>() {
         }.getType());
         if (!VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
            if (listStorageID == null || listStorageID.size() < 9) {
               out.print(JsonUtil.loadFalseResult("分享商品数量不足"));
               return;
            }
            if (listStorageID.size() != 9) {
               out.print(JsonUtil.loadFalseResult("分享商品数量只能是9个"));
               return;
            }
            JSONObject data = userGoodsStorageService.createShareV2(uid, listStorageID, true);
            out.print(JsonUtil.loadTrueResult(data));
         } else {
            JSONObject data = userGoodsStorageService.createShareV2(uid, listStorageID, false);
            out.print(JsonUtil.loadTrueResult(data));
         }
         JSONObject data = userGoodsStorageService.createShareV2(uid, listStorageID);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (UserGoodsStorageException e) {
         out.print(JsonUtil.loadFalseResult("分享失败"));
         e.printStackTrace();