yujian
2020-05-11 712fb305d6f79961e879a2f543107e19d7f9e8a2
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserOrderController.java
@@ -4,6 +4,7 @@
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -28,6 +29,8 @@
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.TeamOrderStatistic;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.exception.order.CommonOrderException;
import com.yeshi.fanli.log.LogHelper;
@@ -37,6 +40,8 @@
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.LostOrderService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.order.TeamOrderStatisticService;
import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderService;
import com.yeshi.fanli.service.inter.order.tb.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
@@ -49,6 +54,7 @@
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.vo.order.CommonOrderVO;
import com.yeshi.fanli.vo.order.TeamOrderStatisticVO;
import com.yeshi.fanli.vo.user.UserInfoExtraVO;
import net.sf.json.JSONObject;
@@ -89,6 +95,12 @@
   @Resource
   private RedisManager redisManager;
//   @Resource
   private TeamOrderStatisticService teamOrderStatisticService;
   @Resource
   private TeamDividentsSourceOrderService teamDividentsSourceOrderService;
   /**
    * 订单列表
@@ -172,6 +184,11 @@
         goodsType = null; // 所有平台订单
      }
      List<Integer> listSource = new ArrayList<>();
      if (goodsType != null) {
         listSource.add(goodsType);
      }
      try {
         if (slotTime != null) {
            SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
@@ -186,13 +203,7 @@
         endTime += " 23:59:59";
      }
      // 判断是否需要显示订单找回提示
      if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion()))
         if (state == 0 && page == 1) {
            if (redisManager.frequencyLimit("orderlist-" + acceptData.getDevice(), 15, 3)) {// 15秒内请求3次触发
               // TODO 显示订单找回提醒
            }
         }
      String orderFindUrl = null;
      try {
         long count = 0;
@@ -204,12 +215,12 @@
         // 查询列表
         List<CommonOrderVO> list = commonOrderService.getOrderByUid(acceptData, page, uid, state, type, orderState,
               orderNo, startTime, endTime, dateType, goodsType);
               orderNo, startTime, endTime, dateType, listSource);
         if (list != null && list.size() > 0) {
            // 统计总数
            count = commonOrderService.countGroupOrderNoByUid(uid, state, type, orderState, orderNo, startTime,
                  endTime, dateType, goodsType);
                  endTime, dateType, listSource);
         }
         // 需要统计筛选信息 :未失效的总金额 以及订单
@@ -238,10 +249,18 @@
            todayMoney = new BigDecimal(0.00);
         }
         // 判断是否需要显示订单找回提示
         if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion()))
            if (state == null && page == 1) {
               if (redisManager.frequencyLimit("orderlist-" + acceptData.getDevice(), 8, 4) || count == 0L) {// 8秒内请求3次触发
                  orderFindUrl = configService.get(ConfigKeyEnum.orderFindNotifyUrl.getKey());
               }
            }
         JSONObject data = new JSONObject();
         data.put("count", count);
         data.put("result_list", JsonUtil.getApiCommonGson().toJson(list));
         data.put("helpUrl", configService.get("order_list_help"));
         data.put("helpUrl", configService.get(ConfigKeyEnum.orderListHelp.getKey()));
         if (type != null && type == 1) {
            data.put("todayMoney", "预估返利总额 ¥" + todayMoney.setScale(2, BigDecimal.ROUND_DOWN).toString());
@@ -255,6 +274,8 @@
         data.put("totalValid", totalValid); // 有效数量
         data.put("totalProces", totalProces); // 维权数量
         data.put("totalInvite", totalInvite); // 失效数量
         if (orderFindUrl != null)
            data.put("findOrderHelpUrl", orderFindUrl);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (CommonOrderException e) {
         out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
@@ -732,4 +753,122 @@
      return startTime;
   }
   /**
    * 获取团队订单统计
    * @Title: getTeamOrderStatistic
    * @Description:
    * @param acceptData
    * @param uid
    * @param out
    * void 返回类型
    * @throws
    */
   @RequestMapping(value = "getTeamOrderStatistic")
   public void getTeamOrderStatistic(AcceptData acceptData, Long uid, PrintWriter out) {
      long now = System.currentTimeMillis();
      TeamOrderStatisticVO vo = new TeamOrderStatisticVO();
      Date minDate = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now, "yyyyMMdd"), "yyyyMMdd"));
      Date maxDate = new Date(
            TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd"));
      List<Integer> countList = new ArrayList<>();
      // 统计今日
      TeamOrderStatistic statistic = teamOrderStatisticService.countByUidAndDate(uid, minDate, maxDate);
      if (statistic == null) {
         countList.add(0);
         countList.add(0);
         countList.add(0);
      } else {
         countList.add(statistic.getDirectOrderCount() == null ? 0 : statistic.getDirectOrderCount());
         countList.add(statistic.getInDirectOrderCount() == null ? 0 : statistic.getInDirectOrderCount());
         countList.add(statistic.getOtherOrderCount() == null ? 0 : statistic.getOtherOrderCount());
      }
      vo.setToday(countList);
      // 统计昨日
      minDate = new Date(
            TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now - 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd"));
      maxDate = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now, "yyyyMMdd"), "yyyyMMdd"));
      countList = new ArrayList<>();
      statistic = teamOrderStatisticService.countByUidAndDate(uid, minDate, maxDate);
      if (statistic == null) {
         countList.add(0);
         countList.add(0);
         countList.add(0);
      } else {
         countList.add(statistic.getDirectOrderCount() == null ? 0 : statistic.getDirectOrderCount());
         countList.add(statistic.getInDirectOrderCount() == null ? 0 : statistic.getInDirectOrderCount());
         countList.add(statistic.getOtherOrderCount() == null ? 0 : statistic.getOtherOrderCount());
      }
      vo.setYesterday(countList);
      // 统计本月
      minDate = new Date(
            TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now - 1000 * 60 * 60 * 24L, "yyyyMM"), "yyyyMM"));
      Calendar ca = Calendar.getInstance();
      ca.setTimeInMillis(now);
      ca.add(Calendar.MONTH, 1);
      maxDate = new Date(
            TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyyMM"), "yyyyMM"));
      countList = new ArrayList<>();
      statistic = teamOrderStatisticService.countByUidAndDate(uid, minDate, maxDate);
      if (statistic == null) {
         countList.add(0);
         countList.add(0);
         countList.add(0);
      } else {
         countList.add(statistic.getDirectOrderCount() == null ? 0 : statistic.getDirectOrderCount());
         countList.add(statistic.getInDirectOrderCount() == null ? 0 : statistic.getInDirectOrderCount());
         countList.add(statistic.getOtherOrderCount() == null ? 0 : statistic.getOtherOrderCount());
      }
      vo.setThisMonth(countList);
      // 统计 累计
      minDate = new Date(0L);
      maxDate = new Date(now);
      countList = new ArrayList<>();
      statistic = teamOrderStatisticService.countByUidAndDate(uid, minDate, maxDate);
      if (statistic == null) {
         countList.add(0);
         countList.add(0);
         countList.add(0);
      } else {
         countList.add(statistic.getDirectOrderCount() == null ? 0 : statistic.getDirectOrderCount());
         countList.add(statistic.getInDirectOrderCount() == null ? 0 : statistic.getInDirectOrderCount());
         countList.add(statistic.getOtherOrderCount() == null ? 0 : statistic.getOtherOrderCount());
      }
      vo.setTotal(countList);
   }
   /**
    * 获取团队订单排行
    * @Title: getTeamOrderRank
    * @Description:
    * @param acceptData
    * @param uid
    * @param type 1-今日 2-昨日 3-本月
    * @param out
    * void 返回类型
    * @throws
    */
   @RequestMapping(value = "getTeamOrderRank")
   public void getTeamOrderRank(AcceptData acceptData, Long uid, int type, PrintWriter out) {
      // TODO 需求不明确
   }
   @RequestMapping(value = "searchOrderTeam")
   public void searchOrderTeam(AcceptData acceptData, String key, PrintWriter out) {
//      teamDividentsSourceOrderService.selectByOrderNoSourceType(orderNo, sourceType);
   }
}