admin
2019-01-03 5981b2cae7c20ec9021c8ccbe1a926f35f640210
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -3,6 +3,7 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -12,20 +13,28 @@
import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper;
import com.yeshi.fanli.dao.mybatis.order.CommonOrderMapper;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.CommonOrderGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.order.CommonOrderException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.factory.CommonOrderGoodsFactory;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.order.CommonOrderGoodsVO;
import com.yeshi.fanli.vo.order.CommonOrderVO;
@Service
public class CommonOrderServiceImpl implements CommonOrderService {
@@ -35,6 +44,9 @@
   
   @Resource
   private TaoBaoWeiQuanOrderMapper taoBaoWeiQuanOrderMapper;
   @Resource
   private CommonOrderGoodsMapper commonOrderGoodsMapper;
   
   @Override
   public int insert(CommonOrder record) {
@@ -67,28 +79,28 @@
   }
   
   @Override
   public List<CommonOrderVO> listGroupOrderNoByUid(long start, int count, Long uid, Integer state,
         Integer type,Integer orderState, String orderNo, String startTime,String endTime,
         Integer dateType) throws CommonOrderException{
      return commonOrderMapper.listGroupOrderNoByUid(start, count, uid, state, type, orderState,
            orderNo, startTime, endTime, dateType);
   public List<CommonOrderVO> listGroupOrderNoByUid(long start, int count, Long uid, Integer state, Integer type,
         Integer orderState, String orderNo, String startTime, String endTime, Integer dateType)
         throws CommonOrderException {
      return commonOrderMapper.listGroupOrderNoByUid(start, count, uid, state, type, orderState, orderNo, startTime,
            endTime, dateType);
   }
   
   @Override
   public long countGroupOrderNoByUid(Long uid,Integer state, Integer type, Integer orderState,
   public long countGroupOrderNoByUid(Long uid, Integer state, Integer type, Integer orderState, String orderNo,
         String startTime, String endTime, Integer dateType) throws CommonOrderException {
      return commonOrderMapper.countGroupOrderNoByUid(uid, state, type, orderState, orderNo, startTime, endTime,
            dateType);
   }
   @Override
   public List<CommonOrderVO> getOrderByUid(Integer page, Long uid, Integer state, Integer type, Integer orderState,
         String orderNo,   String startTime,String endTime, Integer dateType) throws CommonOrderException{
      return commonOrderMapper.countGroupOrderNoByUid(uid, state, type, orderState, orderNo,
            startTime, endTime, dateType);
   }
   @Override
   public List<CommonOrderVO> getOrderByUid (Integer page, Long uid, Integer state, Integer type,
         Integer orderState, String orderNo, String startTime, String endTime, Integer dateType) throws CommonOrderException {
      
      int pageSize = Constant.PAGE_SIZE;
      
      List<CommonOrderVO> listOrder = listGroupOrderNoByUid((page - 1) * pageSize, pageSize, uid,
            state, type, orderState, orderNo, startTime, endTime, dateType);
      List<CommonOrderVO> listOrder = listGroupOrderNoByUid((page - 1) * pageSize, pageSize, uid, state, type,
            orderState, orderNo, startTime, endTime, dateType);
      
      // 订单信息为空
      if (listOrder == null || listOrder.size() == 0) {
@@ -109,7 +121,6 @@
      return listOrder;
   }
   
   @Override
   public Map<String, BigDecimal> countOrderByHongBaoType(Long uid, Integer day) {
      return commonOrderMapper.countOrderByHongBaoType(uid, day);
@@ -126,8 +137,8 @@
   }
   
   @Override
   public Map<String, BigDecimal> countByUidAndOrderState(Long uid, Integer type, String startTime,
         String endTime, Integer day) {
   public Map<String, BigDecimal> countByUidAndOrderState(Long uid, Integer type, String startTime, String endTime,
         Integer day) {
      return commonOrderMapper.countByUidAndOrderState(uid, type,  startTime, endTime, day);
   }
   
@@ -171,7 +182,6 @@
                  commonGoodsVO.setTitle(null);
                  commonGoodsVO.setGoodsTitle(titleMap);
               }
               
               commonGoodsVO.setActualCount(commonOrder.getTotalCount() + "件");
               String settlement = commonOrder.getTotalSettlement().setScale(2, BigDecimal.ROUND_DOWN).toString();
@@ -230,8 +240,8 @@
            orderStateContent = "已维权";
            
            /* 订单维权 判断是否全部维权  */
            List<TaoBaoWeiQuanOrder> listWQ =
                  taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(order.getOrderNo(), "维权成功");
            List<TaoBaoWeiQuanOrder> listWQ = taoBaoWeiQuanOrderMapper
                  .selectListByOrderIdAndState(order.getOrderNo(), "维权成功");
            
            boolean isPart = false;// 默认失效
            
@@ -281,7 +291,6 @@
            order.setHongBaoTypePic(CommonOrder.TYPE_INVITE);
         }
         
         String hongBaoDate = null;
         String hongBaoState_Str = "";
         String hongbaoInfoFontColor = "#E5005C";
@@ -300,7 +309,6 @@
            if (preAccountTime != null) {
               hongBaoDate = "预计到账时间:" + formatday.format(preAccountTime);
            }
            
         } else if (HongBaoV2.STATE_YILINGQU == hongBaoState) {
            orderHongBaoState = 3;
@@ -348,8 +356,59 @@
   @Override
   public List<CommonOrder> listBySourceTypeAndOrderId(int sourceType, String orderId) {
      
      return null;
   }
   @Transactional
   @Override
   public CommonOrder addTaoBaoOrder(TaoBaoOrder taoBaoOrder, Long uid) throws CommonOrderException {
      CommonOrder commonOrder = commonOrderMapper.selectByOrderNoAndOrderTypeAndOrderBy(taoBaoOrder.getOrderId(),
            Constant.SOURCE_TYPE_TAOBAO, taoBaoOrder.getOrderBy());
      if (commonOrder == null)// 新增
      {
         commonOrder = TaoBaoOrderUtil.convert(taoBaoOrder);
         CommonOrderGoods goods = new CommonOrderGoods();
         goods.setGoodsId(taoBaoOrder.getAuctionId() + "");
         goods.setGoodsType(Constant.SOURCE_TYPE_TAOBAO);
         // 商品是否已经插入
         List<CommonOrderGoods> commonGoodsList = commonOrderGoodsMapper
               .listByGoodsIdAndGoodsType(goods.getGoodsId(), goods.getGoodsType());
         if (commonGoodsList.size() <= 0)// 不存在就插入商品
         {
            TaoBaoGoodsBrief taoBaoGoods = null;
            try {
               taoBaoGoods = TaoKeApiUtil.getSimpleGoodsInfo(taoBaoOrder.getAuctionId());
            } catch (TaobaoGoodsDownException e) {
               e.printStackTrace();
            }
            if (taoBaoGoods != null) {
               goods = CommonOrderGoodsFactory.create(taoBaoGoods);
            }
            goods.setCreateTime(new Date());
            goods.setUpdateTime(new Date());
            commonOrderGoodsMapper.insertSelective(goods);
         } else
            goods.setId(commonGoodsList.get(commonGoodsList.size() - 1).getId());
         commonOrder.setCommonOrderGoods(goods);
         commonOrder.setUserInfo(new UserInfo(uid));
         commonOrder.setCreateTime(new Date());
         commonOrderMapper.insertSelective(commonOrder);
         return commonOrder;
      } else {// 修改
         // 已经结算或者已经失效的订单不处理
         if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_SX)
            return commonOrder;
         CommonOrder newCommonOrder = TaoBaoOrderUtil.convert(taoBaoOrder);
         CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
         updateCommonOrder.seteIncome(newCommonOrder.geteIncome());
         updateCommonOrder.setEstimate(newCommonOrder.getEstimate());
         updateCommonOrder.setPayment(newCommonOrder.getPayment());
         updateCommonOrder.setSettlement(newCommonOrder.getSettlement());
         updateCommonOrder.setSettleTime(newCommonOrder.getSettleTime());
         updateCommonOrder.setState(newCommonOrder.getState());
         updateCommonOrder.setUpdateTime(new Date());
         commonOrderMapper.updateByPrimaryKeySelective(updateCommonOrder);
         return commonOrderMapper.selectByPrimaryKey(updateCommonOrder.getId());
      }
   }
}