admin
2020-07-04 f862a844ea7e212f8cc0622b858308e2b91dca2e
fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java
@@ -1,194 +1,495 @@
package com.yeshi.fanli.controller.admin;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.entity.admin.OrderAdmin;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
@Controller
@RequestMapping("admin/new/api/v1/order")
public class OrderAdminController {
   @Resource
   private OrderService orderService;
   @Resource
   private HongBaoService hongBaoService;
   @RequestMapping(value ="getOrderList",method=RequestMethod.POST)
   public void getOrderList(int pageIndex,String key,PrintWriter out){
      List<OrderAdmin> orderAdminList = hongBaoService.getOrderAdminList(pageIndex,key);
      int count = orderService.getCount(key);
      int totalPage = count % Constant.PAGE_SIZE == 0 ? count
            / Constant.PAGE_SIZE : count / Constant.PAGE_SIZE + 1;
      PageEntity pe = new PageEntity(pageIndex, Constant.PAGE_SIZE, count,
            totalPage);
      JSONObject data = new JSONObject();
      data.put("pe", pe);
      data.put("orderList",  JsonUtil.getSimpleGsonWithDateAndSerialization().toJson(orderAdminList));
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 统计当天新增用户24小时内产生的订单
    * @param callback
    * @param pageIndex
    * @param pageSize
    * @param channel 渠道名称   如:VIVO
    * @param out
    */
   @RequestMapping(value = "get24HOderByChannel")
   public void get24HOderByChannel(String callback, Integer pageIndex, Integer pageSize,
         String channelArray, PrintWriter out) {
      if (pageIndex == null || pageIndex < 1) {
         pageIndex = 1;
      }
      if (pageSize == null || pageSize < 1) {
         pageSize = Constant.PAGE_SIZE;
      }
      try {
         if (StringUtil.isNullOrEmpty(channelArray)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择操作的数据"));
            return;
         }
         Gson gson = new Gson();
         List<String> list = gson.fromJson(channelArray, new TypeToken<ArrayList<Long>>() {}.getType());
         if (list == null || list.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未检测到删除的数据"));
            return;
         }
//         List<Map<String, Object>> list = hongBaoService.count24HOderByChannel((pageIndex - 1) * pageSize, pageSize, channel);
//
//         if (list == null || list.size() == 0) {
//            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
//            return;
//         }
//
//         JSONObject data = new JSONObject();
//         data.put("pe", pe);
//         data.put("result_list", list);
//         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
   /**
    * 统计历史渠道产生订单的金额
    * @param callback
    * @param channelArray 名字数组
    * @param type 统计类型  1-24小时  2-所有
    * @param dateType 类型  1日  2月  3年
    * @param year 2018
    * @param startTime 2018-12-01
    * @param endTime   2018-12-01
    * @param out
    */
   @RequestMapping(value = "getHistoryOderByChannel")
   public void getHistoryOderByChannel(String callback, String channelArray, Integer dateType,
         Integer type, String year, String startTime, String endTime, PrintWriter out) {
      if (StringUtil.isNullOrEmpty(channelArray)) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择统计对应名称"));
         return;
      }
      if (dateType == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择排列方式"));
         return;
      }
      if (dateType == 1 && (StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime))) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择时间区间"));
         return;
      }
      if (!StringUtil.isNullOrEmpty(startTime) && StringUtil.isNullOrEmpty(endTime)) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选结束日期"));
         return;
      }
      if (StringUtil.isNullOrEmpty(startTime) && !StringUtil.isNullOrEmpty(endTime)) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选起始日期"));
         return;
      }
      if (dateType != 1 && (!StringUtil.isNullOrEmpty(startTime) || !StringUtil.isNullOrEmpty(endTime))) {
         startTime = null;
         endTime = null;
      }
      try {
         Gson gson = new Gson();
         List<String> list = gson.fromJson(channelArray, new TypeToken<ArrayList<String>>() {}.getType());
         if (list == null || list.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数格式不正确"));
            return;
         }
         JSONArray array = new JSONArray();
         for (String channel: list) {
            JSONObject channelData = new JSONObject();
            List<Object> resultList = null;
            if (type == 1) {
               resultList = hongBaoService.count24HOderByChannel(channel, dateType, year, startTime, endTime);
            } else if (type == 2) {
               resultList = hongBaoService.countHistoryOderByChannel(channel, dateType, year, startTime, endTime);
            }
            if (resultList == null) {
               resultList = new ArrayList<Object>();
            }
            channelData.put("name", channel);
            channelData.put("infos", resultList);
            array.add(channelData);
         }
         JSONObject data = new JSONObject();
         data.put("result_list", array);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
}
package com.yeshi.fanli.controller.admin;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.yeshi.fanli.entity.accept.AdminAcceptData;
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.yeshi.fanli.dto.common.CategoryInfoDTO;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.money.UserMoneyDebt;
import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
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.CommonOrderGoods;
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.order.UserOrderWeiQuanRecord;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
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.config.ConfigService;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.count.TaoBaoOrderCountService;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService;
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.order.UserOrderWeiQuanRecordService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
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.JSONObject;
@Controller
@RequestMapping("admin/new/api/v1/order")
public class OrderAdminController {
   @Resource
   private HongBaoV2CountService hongBaoV2CountService;
   @Resource
   private CommonOrderCountService commonOrderCountService;
   @Resource
   private CommonOrderService commonOrderService;
   @Resource
   private TaoBaoOrderCountService taoBaoOrderCountService;
   @Resource
   private TaoBaoWeiQuanDrawBackService taoBaoWeiQuanDrawBackService;
   @Resource
   private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
   @Resource
   private UserMoneyDetailService userMoneyDetailService;
   @Resource
   private OrderProcessService orderProcessService;
   @Resource
   private HongBaoOrderService hongBaoOrderService;
   @Resource
   private UserMoneyDebtService userMoneyDebtService;
   @Resource
   private ConfigService configService;
   @Resource
   private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
   @Resource
   private CommonGoodsService commonGoodsService;
   /**
    * 统计历史订单-淘宝订单
    *
    * @param callback
    * @param request
    * @param out
    */
   @RequestMapping(value = "countTaoBaoOrder")
   public void countTaoBaoOrder(AdminAcceptData acceptData,String callback, HttpServletRequest request, PrintWriter out) {
      try {
         Map<String, Object> countByOdrerType = taoBaoOrderCountService.countByOdrerType();
         JSONObject data = new JSONObject();
         data.put("typeOrder", countByOdrerType);
         // 统计今日 未失效订单数量 相同订单号合并为一单
         int todayOrder = taoBaoOrderCountService.countToday();
         // 统计昨日 未失效订单数量 相同订单号合并为一单
         int yesterdayOrder = taoBaoOrderCountService.countYesterday();
         data.put("todayOrder", todayOrder);
         data.put("yesterdayOrder", yesterdayOrder);
         data.put("genzong", yesterdayOrder);
         data.put("yesterdayOrder", yesterdayOrder);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("统计失败"));
         e.printStackTrace();
      }
   }
   /**
    * 查询所有用户订单列表
    *
    * @param callback
    * @param pageIndex
    * @param pageSize
    * @param state
    * @param type
    * @param orderState
    * @param startTime
    * @param endTime
    * @param out
    */
   @RequestMapping(value = "getUserOrderList")
   public void getUserOrderList(AdminAcceptData acceptData, String callback, Integer pageIndex, Integer pageSize, Integer keyType, String key,
                         Integer state, Integer type, Integer orderState, String startTime, String endTime, Integer sourceType,
                         Integer riskType, BigDecimal payment, PrintWriter out) {
      if (pageIndex == null || pageIndex < 1) {
         pageIndex = 1;
      }
      if (pageSize == null)
         pageSize = Constant.PAGE_SIZE;
      if (state != null && state == 0) {
         state = null;// 所有状态
      }
      if (type != null && type == 0) {
         type = null; // 所有类型订单
      }
      if (endTime != null && endTime.trim().length() > 0) {
         endTime += " 23:59:59";
      }
      try {
         Date minTime = null;
         BigDecimal money = null;
         List<Long> listShopId = null;
         List<Long> listGoodsId = null;
         // 风险
         if (riskType != null && !StringUtil.isNullOrEmpty(key) && keyType != null && keyType == 2) {
            long uid = Long.parseLong(key);
            // 查询同店铺商品,同商品订单超过一定数量的
            List<Integer> typeList = new ArrayList<>();
            typeList.add(HongBaoV2.TYPE_ZIGOU);
            if (riskType == 1) {
               listGoodsId = commonOrderCountService.getSameGoodsOrderByUidAndHongBaoType(typeList, uid,
                     Integer.parseInt(configService.getValue(ConfigKeyEnum.adminMinSameGoodsOrderCount.getKey(),acceptData.getSystem())));
               if (listGoodsId == null || listGoodsId.isEmpty()) {
                  JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无同商品订单"));
                  return;
               }
            } else if (riskType == 2) {
               listShopId = commonOrderCountService.getSameShopOrderByUidAndHongBaoType(typeList, uid,
                     Integer.parseInt(configService.getValue(ConfigKeyEnum.adminMinSameShopOrderCount.getKey(),acceptData.getSystem())));
               if (listShopId == null || listShopId.isEmpty()) {
                  JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无同店铺订单"));
                  return;
               }
            } else if (riskType == 3) {
               money = new BigDecimal(100);
               minTime = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 180L);
            }
         }
         // 查询列表
         List<CommonOrderVO> list = commonOrderService.listQuery((pageIndex - 1) * pageSize, pageSize, keyType, key,
               state, type, orderState, startTime, endTime, sourceType, listShopId, listGoodsId, minTime, money, payment);
         // 统计总数
         long count = commonOrderService.countQuery(keyType, key, state, type, orderState, startTime, endTime,
               sourceType, listShopId, listGoodsId, minTime, money, payment);
         for (CommonOrderVO order : list) {
            CommonOrderGoods goods = order.getCommonOrderGoods();
            if (goods != null) {
               CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(Long.parseLong(goods.getGoodsId()),
                     goods.getGoodsType());
               if (commonGoods != null) {
                  String categoryInfo = commonGoods.getCategoryInfo();
                  if (!StringUtil.isNullOrEmpty(categoryInfo)) {
                     JSONObject json = JSONObject.fromObject(categoryInfo);
                     CategoryInfoDTO otherDTO = (CategoryInfoDTO) JSONObject.toBean(json, CategoryInfoDTO.class);
                     if (otherDTO != null) {
                        goods.setCategory1(otherDTO.getCid1Name());
                        goods.setCategory2(otherDTO.getCid2Name());
                        goods.setCategory3(otherDTO.getCid3Name());
                     }
                  }
               }
            }
            if (order.getUserId() == null)
               continue;
            // 查询是否维权
            TaoBaoWeiQuanOrder weiQuanOrder = taoBaoWeiQuanOrderService.listByorderItemId(order.getTradeId());
            if (weiQuanOrder != null)// 有维权
            {
               order.setWeiQuanState(weiQuanOrder.getState());
               order.setState(CommonOrder.STATE_WQ);
               TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackService.selectByOrderItemIdAndUid(
                     weiQuanOrder.getOrderItemId(), Long.parseLong(order.getUserId()));
               if (drawBack != null) {// 已经退款
                  // 计算退款资金
                  UserMoneyDetail detail = null;
                  switch (order.getHongBaoType()) {
                  case 1:
                     detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
                           UserMoneyDetailTypeEnum.fanliWeiQuan, Long.parseLong(order.getUserId()),
                           drawBack.getId());
                     if (detail == null)
                        detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
                              UserMoneyDetailTypeEnum.weiQuan, Long.parseLong(order.getUserId()),
                              drawBack.getId());
                     break;
                  case 3:
                     detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
                           UserMoneyDetailTypeEnum.inviteWeiQuan, Long.parseLong(order.getUserId()),
                           drawBack.getId());
                     break;
                  case 2:
                     detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
                           UserMoneyDetailTypeEnum.shareWeiQuan, Long.parseLong(order.getUserId()),
                           drawBack.getId());
                     break;
                  }
                  if (detail != null) {
                     // 退款成功
                     order.setWeiQuanBackMoney(detail.getMoney().abs().toString());
                  } else {// 尚未退款
                     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 {// 尚未退款
                  UserOrderWeiQuanRecord record = userOrderWeiQuanRecordService.selectByOrderInfoAndUid(
                        Long.parseLong(order.getUserId()), weiQuanOrder.getOrderItemId(),
                        Constant.SOURCE_TYPE_TAOBAO);
                  if (record != null)
                     order.setWeiQuanBackMoney("-" + record.getMoney());
                  else {
                     order.setWeiQuanBackMoney("-" + order.getHongBao());
                  }
               }
            }
         }
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("result_list", list);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (CommonOrderException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
         e.printStackTrace();
      }
   }
   /**
    * 查询订单列表用户uid
    *
    * @param callback
    * @param pageIndex
    * @param pageSize
    * @param uid
    * @param state
    * @param type
    * @param orderState
    * @param orderNo
    * @param startTime
    * @param endTime
    * @param out
    */
   @RequestMapping(value = "getHistoryOrder")
   public void getHistoryOrder(AdminAcceptData acceptData,String callback, Integer pageIndex, Integer pageSize, Long uid, Integer state,
         Integer type, Integer orderState, String orderNo, String startTime, String endTime, PrintWriter out) {
      if (uid == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("uid不能为空"));
         return;
      }
      if (pageIndex == null || pageIndex < 1) {
         pageIndex = 1;
      }
      if (pageSize == null)
         pageSize = Constant.PAGE_SIZE;
      if (state != null && state == 0) {
         state = null;// 所有状态
      }
      if (type != null && type == 0) {
         type = null; // 所有类型订单
      }
      if (endTime != null && endTime.trim().length() > 0) {
         endTime += " 23:59:59";
      }
      try {
         long count = 0;
         // 查询列表
         List<CommonOrderVO> list = commonOrderService.listQueryByUid((pageIndex - 1) * pageSize, pageSize, uid,
               state, type, orderState, orderNo, startTime, endTime, null);
         if (list != null && list.size() > 0) {
            // 统计总数
            count = commonOrderService.countQueryByUid(uid, state, type, orderState, orderNo, startTime, endTime,
                  null);
         }
         int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
         PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
         JSONObject data = new JSONObject();
         data.put("pe", pe);
         data.put("result_list", list);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (CommonOrderException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
         e.printStackTrace();
      }
   }
   /**
    * 当前未收货订单数
    *
    * @param callback
    * @param type
    *            订单状态-暂未使用
    * @param out
    */
   @RequestMapping(value = "getHistoryUnreceived")
   public void getHistoryUnreceived(AdminAcceptData acceptData,String callback, Integer type, PrintWriter out) {
      try {
         Long total = commonOrderCountService.countByState(1);
         if (total == null) {
            total = 0L;
         }
         JSONObject data = new JSONObject();
         data.put("total", total);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
      }
   }
   @RequestMapping(value = "uploadTaoBaoWeiQuanOrder")
   public void uploadWeiQuanOrder(AdminAcceptData acceptData,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("更新失败"));
      }
   }
   @RequestMapping(value = "countOrderInfo")
   public void countOrderInfo(AdminAcceptData acceptData,String callback, Long uid, PrintWriter out) {
      JSONObject data = new JSONObject();
      /* ---------  本月累计 ------------*/
      JSONObject month = new JSONObject();
      // 自购已到账
      month.put("selfNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 1, 1));
      // 分享已到账
      month.put("shareNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 2, 1));
      // 邀请已到账
      month.put("inviteNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 3, 1));
      // 自购未到账
      month.put("selfNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 1, 1));
      // 分享未到账
      month.put("shareNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 2, 1));
      // 邀请未到账
      month.put("inviteNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 3, 1));
      data.put("month", month);
      /* ---------  历史累计 ------------*/
      JSONObject history = new JSONObject();
      // 自购已到账
      history.put("selfNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 1, null));
      // 分享已到账
      history.put("shareNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 2, null));
      // 邀请已到账
      history.put("inviteNumEnd", hongBaoV2CountService.countOrderByCashArrival(uid, null, 3, null));
      // 自购未到账
      history.put("selfNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 1, null));
      // 分享未到账
      history.put("shareNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 2, null));
      // 邀请未到账
      history.put("inviteNum", hongBaoV2CountService.countOrderByCashNotArrival(uid, null, 3, null));
      data.put("history", history);
      /* ---------  付款金额大于1 ------------*/
      // 自购已到账
      long selfAccountEnd = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY, 1);
      // 分享已到账
      long shareAccountEnd = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY, 2);
      // 自购未到账
      long selfAccount = hongBaoV2CountService.countOrderByCashNotArrival(uid, Constant.VIP_ORDER_PAY, 1, null);
      // 分享未到账
      long shareAccount = hongBaoV2CountService.countOrderByCashNotArrival(uid, Constant.VIP_ORDER_PAY, 2, null);
      data.put("selfAccountEnd", selfAccountEnd);
      data.put("shareAccountEnd", shareAccountEnd);
      data.put("selfAccount", selfAccount);
      data.put("shareAccount", shareAccount);
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
}