admin
2019-07-30 573c491b4a1ba60e12a5678a01c1546c0077c1ee
fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.controller.admin;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -10,22 +11,29 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.controller.admin.utils.AdminUtils;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
import com.yeshi.fanli.entity.money.UserMoneyDebt;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.order.CommonOrderException;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.count.TaoBaoOrderCountService;
import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.OrderProcessService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanDrawBackService;
@@ -34,6 +42,7 @@
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.vo.order.CommonOrderVO;
import net.sf.json.JSONArray;
@@ -69,6 +78,15 @@
   @Resource
   private UserMoneyDetailService userMoneyDetailService;
   @Resource
   private OrderProcessService orderProcessService;
   @Resource
   private HongBaoOrderService hongBaoOrderService;
   @Resource
   private UserMoneyDebtService userMoneyDebtService;
   /**
    * 统计历史订单-淘宝订单
@@ -161,11 +179,12 @@
            TaoBaoWeiQuanOrder weiQuanOrder = taoBaoWeiQuanOrderService.listByorderItemId(order.getTradeId());
            if (weiQuanOrder != null)// 有维权
            {
               order.setWeiQuanState(weiQuanOrder.getState());
               order.setState(CommonOrder.STATE_WQ);
               TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService
                     .selectByOrderItemId(weiQuanOrder.getOrderItemId());
               if (drawBack != null) {// 已经退款
                  order.setWeiQuanState(weiQuanOrder.getState());
                  // 计算退款资金
                  UserMoneyDetail detail = null;
                  switch (order.getHongBaoType()) {
@@ -193,7 +212,22 @@
                     // 退款成功
                     order.setWeiQuanBackMoney(detail.getMoney().abs().toString());
                  } else {// 尚未退款
                     order.setWeiQuanBackMoney("-" + order.getHongBao());
                     order.setWeiQuanBackMoney(drawBack.getDrawBackMoney().toString());
                     // 查询出对应的hongBaoId
                     CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(
                           Constant.SOURCE_TYPE_TAOBAO, drawBack.getOrderItemId());
                     if (commonOrder != null) {
                        HongBaoOrder hongBaoOrder = hongBaoOrderService
                              .selectDetailByCommonOrderId(commonOrder.getId());
                        if (hongBaoOrder != null) {
                           UserMoneyDebt debt = userMoneyDebtService.selectByTypeAndSourceId(
                                 UserMoneyDebtTypeEnum.order, hongBaoOrder.getHongBaoV2().getId());
                           if (debt != null && debt.getLeftMoney().compareTo(new BigDecimal(0)) > 0) {
                              order.setWeiQuanBackMoney(
                                    new BigDecimal(0).subtract(debt.getLeftMoney()).toString());//未扣除
                           }
                        }
                     }
                  }
               } else {// 尚未退款
@@ -936,4 +970,23 @@
      return data;
   }
   @RequestMapping(value = "uploadTaoBaoWeiQuanOrder")
   public void uploadWeiQuanOrder(String callback, HttpServletRequest request, PrintWriter out) {
      try {
         // 1. 先判断httpRequest 是否含有文件类型
         if (request instanceof MultipartHttpServletRequest) {
            MultipartHttpServletRequest fileRequest = (MultipartHttpServletRequest) request;
            MultipartFile file = fileRequest.getFile("file");
            List<TaoBaoWeiQuanOrder> orderList = TaoBaoOrderUtil.getWeiQuanOrders(file.getInputStream());
            for (TaoBaoWeiQuanOrder order : orderList)
               taoBaoWeiQuanOrderService.addWeiQuanOrder(order);// 添加维权订单到数据库
            // 处理维权订单
            orderProcessService.weiQuanOrder(orderList);
         }
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("更新成功"));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("更新失败"));
      }
   }
}