admin
2019-08-05 35c25585cf6fea9e29574a75a03c57381cbe19e1
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.service.impl.order;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -52,10 +53,13 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.factory.CommonOrderGoodsFactory;
import com.yeshi.fanli.util.factory.goods.CommonOrderFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -63,6 +67,7 @@
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import com.yeshi.fanli.vo.order.CommonOrderGoodsVO;
import com.yeshi.fanli.vo.order.CommonOrderVO;
import com.yeshi.fanli.vo.order.WeiQuanInfo;
import net.sf.json.JSONObject;
@@ -325,6 +330,14 @@
      // 是否存在奖励券
      boolean hasRewardCoupon = userSystemCouponService.hasRewardCoupon(uid);
      // 2019.8.1开始返回维权信息
      Date august = null;
      try {
         august = TimeUtil.parse("2019-08-01");
      } catch (ParseException e) {
         e.printStackTrace();
      }
      /* 组织订单状态 等信息 */
      for (CommonOrderVO order : listOrder) {
@@ -373,6 +386,11 @@
            }
         }
         BigDecimal hongBao = order.getHongBao();
         if (hongBao == null) {
            hongBao = new BigDecimal(0);
         }
         if (CommonOrder.STATE_FK == orderState) {
            orderStateContent = "已付款";
         } else if (CommonOrder.STATE_JS == orderState) {
@@ -389,7 +407,7 @@
                     .selectListByOrderIdAndState(order.getOrderNo(), "维权成功");
               boolean isPart = false;// 默认失效
               BigDecimal weiQuanMoney = new BigDecimal(0);
               if (listWQ != null && listWQ.size() > 0) {
                  BigDecimal fanTotalMoney = new BigDecimal(0);
                  for (TaoBaoWeiQuanOrder weiQuanOrder : listWQ) {
@@ -397,17 +415,38 @@
                     if (fanMoney != null) {
                        fanTotalMoney = MoneyBigDecimalUtil.add(fanTotalMoney, fanMoney);
                     }
                     weiQuanMoney = MoneyBigDecimalUtil.add(weiQuanOrder.getMoney(), weiQuanMoney);
                  }
                  if (fanTotalMoney.compareTo(order.getHongBao()) < 0) {
                  if (fanTotalMoney.compareTo(hongBao) < 0) {
                     isPart = true;
                  }
               }
               if (isPart) {
                  hongBaoState = HongBaoV2.STATE_BUFENSHIXIAO; // 部分失效
               if (!VersionUtil.greaterThan_1_6_0(acceptData.getPlatform(), acceptData.getVersion())) {
                  if (isPart) {
                     hongBaoState = HongBaoV2.STATE_BUFENSHIXIAO; // 部分失效
                  } else {
                     hongBaoState = HongBaoV2.STATE_SHIXIAO; // 全部失效
                  }
               } else {
                  hongBaoState = HongBaoV2.STATE_SHIXIAO; // 全部失效
                  // 2019.8.1 返回维权信息
                  if (settleTime != null && august != null && settleTime.getTime() > august.getTime()) {
                     orderStateContent = "维权成功";
                     WeiQuanInfo weiQuanInfo = new WeiQuanInfo();
                     weiQuanInfo.setOldHongBao("¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
                     if (isPart) {
                        // 维权失效金额=维权的金额*获得的红包/结算金额
                        BigDecimal settlement = order.getSettlement();
                        BigDecimal wqHongbao = MoneyBigDecimalUtil.div(MoneyBigDecimalUtil.mul(hongBao, settlement), settlement);
                        weiQuanInfo.setWqHongBao("维权:-¥" + wqHongbao.setScale(2, BigDecimal.ROUND_DOWN).toString());
                        hongBao = MoneyBigDecimalUtil.sub(hongBao, wqHongbao);
                     } else {
                        hongBao = new BigDecimal(0);
                        weiQuanInfo.setWqHongBao("维权:-¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
                     }
                     order.setWeiQuanInfo(weiQuanInfo);
                  }
               }
            }
         }
@@ -494,10 +533,7 @@
         hongbaoInfo = hongBaoState_Str + hongbaoInfo;
         BigDecimal hongBao = order.getHongBao();
         if (hongBao == null) {
            hongBao = new BigDecimal(0);
         }
         Map<String, String> hongBaoMap = new HashMap<String, String>();
         hongBaoMap.put("content", hongbaoInfo + " ¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
         hongBaoMap.put("fontColor", hongbaoInfoFontColor);
@@ -521,9 +557,9 @@
         }
         // 分享、邀请 隐藏订单号
         if (HongBaoV2.TYPE_SHARE_GOODS == hongBaoType || HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType
               || HongBaoV2.TYPE_ERJI == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType
               || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) {
         if (HongBaoV2.TYPE_SHARE_GOODS == hongBaoType || HongBaoV2.TYPE_YAOQING == hongBaoType
               || HongBaoV2.TYPE_YIJI == hongBaoType || HongBaoV2.TYPE_ERJI == hongBaoType
               || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) {
            order.setOrderNo(UserUtil.filterOrderId(order.getOrderNo()));
         }
      }
@@ -751,16 +787,6 @@
            commonOrderGoodsMapper.insertSelective(cog);
            newCommonOrder.setCommonOrderGoods(cog);
         } else {
            if (!Constant.IS_OUTNET) {
               PDDGoodsDetail pddGoods = null;
               pddGoods = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(cog.getGoodsId()));
               if (pddGoods != null) {
                  cog = CommonOrderGoodsFactory.create(pddGoods);
                  commonGoodsList.get(0).setPicture(cog.getPicture());
                  commonOrderGoodsMapper.updateByPrimaryKeySelective(commonGoodsList.get(0));
               }
            }
         }
         newCommonOrder.setUserInfo(new UserInfo(uid));
         commonOrderList.add(addCommonOrder(newCommonOrder));
@@ -806,6 +832,9 @@
         if (commonGoodsList.size() <= 0)// 不存在就插入商品
         {
            JDGoods goods = JDApiUtil.getGoodsDetail(itemOrder.getSkuId());
            if (goods == null) {
               goods = JDUtil.getGoodsFromWeb(itemOrder.getSkuId());
            }
            if (goods != null) {
               cog = CommonOrderGoodsFactory.create(goods);
@@ -814,11 +843,7 @@
            cog.setUpdateTime(new Date());
            commonOrderGoodsMapper.insertSelective(cog);
         } else {
            if (!Constant.IS_OUTNET) {
               JDGoods goods = JDApiUtil.getGoodsDetail(itemOrder.getSkuId());
               commonGoodsList.get(0).setTitle(goods.getSkuName());
               commonOrderGoodsMapper.updateByPrimaryKeySelective(commonGoodsList.get(0));
            }
         }
         newCommonOrder.setUserInfo(new UserInfo(uid));
         commonOrderList.add(addCommonOrder(newCommonOrder));