admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java
@@ -27,7 +27,6 @@
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.Extract;
import com.yeshi.fanli.entity.bus.user.PreviewInfo;
import com.yeshi.fanli.entity.bus.user.PreviewInfo.PreviewEnum;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.money.TeamEincomeRecord;
@@ -54,6 +53,7 @@
import com.yeshi.fanli.vo.money.MoneyPredictVO;
import com.yeshi.fanli.vo.money.MoneyStatisticVO;
import com.yeshi.fanli.vo.money.TeamPredictVO;
import com.yeshi.fanli.vo.order.OrderRankingVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -734,4 +734,151 @@
      }
   }
   /**
    * 订单统计-h5
    *
    * @param acceptData
    * @param id
    * @param out
    */
   @RequestMapping(value = "countTeamOrderNum")
   public void countTeamOrderNum(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
      try {
         Date minDate = null;
         Date maxDate = null;
         long timeStamp = System.currentTimeMillis();
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(timeStamp);
         // 今日预估
         calendar.add(Calendar.DAY_OF_YEAR, -1);
         minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
         OrderMoneyDailyCount todayRecord = createVO(orderMoneyDailyCountService.sumTeamOrderNumGroupByCountDay(uid, minDate, null));
         // 昨日预估
         calendar.add(Calendar.DAY_OF_YEAR, -1);
         maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
         minDate = DateUtil.reduceDay(1, maxDate);
         OrderMoneyDailyCount yesterdayRecord = createVO(orderMoneyDailyCountService.sumTeamOrderNumGroupByCountDay(uid, minDate, maxDate));
         // 本月预估
         maxDate = new Date(timeStamp);
         calendar = Calendar.getInstance();
         minDate = new Date(TimeUtil
               .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
         calendar.add(Calendar.MONTH, -1);
         OrderMoneyDailyCount monthRecord = createVO(orderMoneyDailyCountService.sumTeamOrderNumGroupByYearMonth(uid, minDate, maxDate));
         // 累计
         OrderMoneyDailyCount totalityRecord = createVO(orderMoneyDailyCountService.sumTeamOrderNumGroupByUid(uid, null, null));
         JSONObject today = new JSONObject();
         today.put("direct", todayRecord.getDirectOrderNum());
         today.put("indirect", todayRecord.getInDirectOrderNum());
         today.put("beyond", todayRecord.getBeyondOrderNum());
         JSONObject yesterday = new JSONObject();
         yesterday.put("direct", yesterdayRecord.getDirectOrderNum());
         yesterday.put("indirect", yesterdayRecord.getInDirectOrderNum());
         yesterday.put("beyond", yesterdayRecord.getBeyondOrderNum());
         JSONObject month = new JSONObject();
         month.put("direct", monthRecord.getDirectOrderNum());
         month.put("indirect", monthRecord.getInDirectOrderNum());
         month.put("beyond", monthRecord.getBeyondOrderNum());
         JSONObject totality = new JSONObject();
         totality.put("direct", totalityRecord.getDirectOrderNum());
         totality.put("indirect", totalityRecord.getInDirectOrderNum());
         totality.put("beyond", totalityRecord.getBeyondOrderNum());
         JSONObject json = new JSONObject();
         json.put("today", today);
         json.put("yesterday", yesterday);
         json.put("month", month);
         json.put("totality", totality);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("统计失败"));
         e.printStackTrace();
      }
   }
   private OrderMoneyDailyCount createVO(List<OrderMoneyDailyCount> list) {
      OrderMoneyDailyCount totalityRecord = new OrderMoneyDailyCount(0,0,0);
      if (list != null && list.size() > 0) {
         for (OrderMoneyDailyCount record: list) {
            totalityRecord.setDirectOrderNum(totalityRecord.getDirectOrderNum() + record.getDirectOrderNum());
            totalityRecord.setInDirectOrderNum(totalityRecord.getInDirectOrderNum() + record.getInDirectOrderNum());
            totalityRecord.setBeyondOrderNum(totalityRecord.getBeyondOrderNum() + record.getBeyondOrderNum());
         }
      }
      return totalityRecord;
   }
   /**
    * 订单排行榜
    * @param callback
    * @param acceptData
    * @param uid
    * @param dateType
    * @param out
    */
   @RequestMapping(value = "getRanking")
   public void getRanking(String callback, AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) {
      if (uid == null || dateType == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("参数缺失"));
         return;
      }
      try {
         Date minDate = null;
         Date maxDate = null;
         long timeStamp = System.currentTimeMillis();
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(timeStamp);
         if (dateType == 1) {
            // 今日
            calendar.add(Calendar.DAY_OF_YEAR, -1);
            minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
         } else if (dateType == 2) {
            // 昨日
            calendar.add(Calendar.DAY_OF_YEAR, -1);
            maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
            minDate = DateUtil.reduceDay(1, maxDate);
         } else {
            // 本月
            maxDate = new Date(timeStamp);
            calendar = Calendar.getInstance();
            minDate = new Date(TimeUtil
                  .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
            calendar.add(Calendar.MONTH, -1);
         }
         List<OrderRankingVO> list = orderMoneyDailyCountService.getRankingByOrderNum(uid, minDate, maxDate);
         if (list.size() > 0) {
            for (OrderRankingVO vo: list) {
               UserInfo user = userInfoService.getUserByIdWithMybatis(vo.getUid());
               vo.setNickName(user.getNickName());
               vo.setPortrait(user.getPortrait());
            }
         }
         JSONObject json = new JSONObject();
         json.put("list", list);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("统计失败"));
         e.printStackTrace();
      }
   }
}