yujian
2019-12-19 626d711cb15896055c13fe344eb7fcc824589715
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
@@ -81,13 +81,14 @@
    *            时间段:1-最近三天 2-最近七天 3最近半月 4本月 5近三月 6近半年
    * @param dateType
    *            1-今日 2-昨天 3-本月 4-上个月 |
    * @param needCount
    * @param source
    *          页面来源:welfareCore-福利中心、bonus -奖金统计(我的界面)
    * @param out
    */
   @RequestMapping(value = "getOrderList", method = RequestMethod.POST)
   public void getOrderList(AcceptData acceptData, Integer page, Long uid, Integer state, String type, 
         Integer orderState, String orderNo,   String startTime, String endTime, Integer slotTime, 
         Integer dateType, Integer goodsType, PrintWriter out) {
         Integer dateType, Integer goodsType, String source, PrintWriter out) {
      if (uid == null) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
@@ -113,20 +114,48 @@
      Integer orderType = null;
      if (StringUtil.isNullOrEmpty(type)) {
         orderType = null;
      } else if ("0".equalsIgnoreCase(type)){
      } else if (!"0".equalsIgnoreCase(type)){
         orderType = Integer.parseInt(type); 
      }
      }
      if (goodsType != null && goodsType == 0)
         goodsType = null;
      // 筛选时间
      if (slotTime != null) {
         SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
         try {
            endTime = sd.format(new Date());
            startTime = convertDate(slotTime, endTime);
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
            switch (slotTime) {
            case 1: // 最近三天
               endTime = sd.format(new Date());
               startTime = DateUtil.reduceDay(2, endTime);
               break;
            case 2: // 最近七天
               endTime = sd.format(new Date());
               startTime = DateUtil.reduceDay(6, endTime);
               break;
            case 3: // 最近15天 (半月)
               endTime = sd.format(new Date());
               startTime = DateUtil.reduceDay(14, endTime);
               break;
            case 4: // 最近三十天 (本月)
               dateType = 10;
               break;
            case 5: // 最近九十天(近三月)
               dateType = 11;
               break;
            case 6: // 最近一百八十天(近半年)
               dateType = 12;
               break;
            default:
               break;
            }
         } catch (Exception e) {
            e.printStackTrace();
         }
      }
      if (endTime != null && endTime.trim().length() > 0) {
         endTime += " 23:59:59";
      }
@@ -135,17 +164,24 @@
         // 筛选结果顶部统计
         String validMoney = "0.00";
         String invalidMoney = "0.00";
         if (dateType != null) {
            BigDecimal predictMoney = hongBaoV2CountService.getRewardMoneyByDate(uid, dateType, orderType, 1);
         if (page == 1) {
            BigDecimal predictMoney = hongBaoV2CountService.getRewardMoneyByToSearch(uid, dateType, orderType, 1,
                  orderNo, state, goodsType, startTime, endTime);
            if (predictMoney != null) 
               validMoney = predictMoney.setScale(2, BigDecimal.ROUND_DOWN).toString();
            
            BigDecimal postSaleMoney = hongBaoV2CountService.getRewardMoneyByDate(uid, dateType, orderType, 2);
            BigDecimal postSaleMoney = hongBaoV2CountService.getRewardMoneyByToSearch(uid, dateType, orderType, 2,
                  orderNo, state, goodsType, startTime, endTime);
            if (postSaleMoney != null) 
               invalidMoney = postSaleMoney.setScale(2, BigDecimal.ROUND_DOWN).toString();
            
            if (dateType == 4)
               dateType = 5; // 新版查询本月到账
            if (orderType != null && dateType != null && dateType == 4) {
               if (orderType == 1) {
                  dateType = 6; // 返利订单有效
               } else {
                  dateType = 5; // 新版查询本月到账
               }
            }
         }
                  
         // 查询列表
@@ -167,56 +203,18 @@
         data.put("count", count);
         data.put("result_list", JsonUtil.getApiCommonGson().toJson(list));
         data.put("helpUrl", configService.get("order_list_help"));
         data.put("validMoney", validMoney);
         data.put("invalidMoney", invalidMoney);
         data.put("validMoney", "¥ " + validMoney);
         data.put("invalidMoney", "¥ " + invalidMoney);
         data.put("findOrderHelpUrl", orderFindUrl);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (CommonOrderException e) {
         out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult(1, "查询失败"));
         e.printStackTrace();
         LogHelper.errorDetailInfo(e);
      }
   }
   /**
    * 时间转换
    *
    * @param slotTime
    * @param startTime
    * @return
    * @throws Exception
    */
   private String convertDate(Integer slotTime, String endTime) throws Exception {
      String startTime = null;
      switch (slotTime) {
      case 1: // 最近三天
         startTime = DateUtil.reduceDay(2, endTime);
         break;
      case 2: // 最近七天
         startTime = DateUtil.reduceDay(6, endTime);
         break;
      case 3: // 最近15天 (半月)
         startTime = DateUtil.reduceDay(14, endTime);
         break;
      case 4: // 最近三十天 (本月)
         startTime = DateUtil.reduceDay(29, endTime);
         break;
      case 5: // 最近九十天(近三月)
         startTime = DateUtil.reduceDay(3 * 30 - 1, endTime);
         break;
      case 6: // 最近一百八十天(近半年)
         startTime = DateUtil.reduceDay(6 * 30 - 1, endTime);
         break;
      default:
         break;
      }
      return startTime;
   }
   
   /**
    * 用户订单统计
@@ -319,9 +317,9 @@
         show = hongBaoV2CountService.getHongBaoCount(uid, null) > 0;
      }
      
      BigDecimal selfMoney = hongBaoV2CountService.getRewardMoneyByDate(uid, dateType, 1, null);
      BigDecimal shareMoney = hongBaoV2CountService.getRewardMoneyByDate(uid, dateType, 2, null);
      BigDecimal inviteMoney = hongBaoV2CountService.getRewardMoneyByDate(uid, dateType, 3, null);
      BigDecimal selfMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 1);
      BigDecimal shareMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 2);
      BigDecimal inviteMoney = hongBaoV2CountService.getRewardMoneyToCount(uid, dateType, 3);
      
      JSONObject data = new JSONObject();
      data.put("show", show);