admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java
@@ -74,6 +74,7 @@
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.util.user.UserLevelUtil;
import com.yeshi.fanli.util.wx.WXLoginUtil;
import com.yeshi.fanli.vo.order.OrderRankingVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -905,6 +906,7 @@
            || focus.getMinFansNum() != null || focus.getMinFansNum() != null
            || focus.getMinActiveTime() != null || focus.getMaxActiveTime() != null
            || focus.getMinIncome() != null  || focus.getMaxIncome() != null 
             || focus.getMinJoinTime() != null  || focus.getMaxJoinTime() != null
            || !StringUtil.isNullOrEmpty(focus.getKey()) || !StringUtil.isNullOrEmpty(focus.getLevel()))
          return true;
   
@@ -1104,8 +1106,16 @@
         return;
      }
      // 上级
      UserInfo boss = userInfoService.selectByPKey(threeSale.getBoss().getId());
      // 非直接邀请关系
      String bossNickName = null;
      if (uid.longValue() != threeSale.getBoss().getId().longValue()) {
         UserInfo boss = userInfoService.selectByPKey(threeSale.getBoss().getId());
         if (boss != null) {
            bossNickName = boss.getNickName();
         }
      }
      
      JSONArray tagArray = new JSONArray();
      String memoName = user.getNickName();
@@ -1123,7 +1133,7 @@
         }
      }
      data.put("bossNickName", boss.getNickName());
      data.put("bossNickName", bossNickName);
      data.put("nickName", user.getNickName());
      data.put("phone", phone);
      data.put("phoneCopy", phoneCopy);
@@ -1165,13 +1175,11 @@
         data.put("taobao", false);
      }
      String levelName = null;
      UserVIPPreInfo userVIPPreInfo = userVIPPreInfoService.getLatestProcessInfo(workerId);
      if (userVIPPreInfo != null) {
         String levelName = null;
         Integer process = userVIPPreInfo.getProcess();
         if (process == UserVIPPreInfo.PROCESS_1) {
            levelName = "快省达人";
         } else if (process == UserVIPPreInfo.PROCESS_2) {
         if (process == UserVIPPreInfo.PROCESS_2) {
            levelName = "高级会员";
         } else if (process == UserVIPPreInfo.PROCESS_3) {
            levelName = "超级会员";
@@ -1180,18 +1188,14 @@
         }
         Integer sourceType = userVIPPreInfo.getSourceType();
         if (sourceType != null) {
         if (sourceType != null && levelName != null) {
            if (sourceType == UserVIPPreInfo.SOURCE_TYPE_ORDER) {
               levelName += "(自购分享型)";
            } else {
               levelName += "(邀请团队型)";
               data.put("level", levelName += "(自购分享型)");
            } else if (sourceType == UserVIPPreInfo.SOURCE_TYPE_TEAM) {
               data.put("level", levelName += "(邀请团队型)");
            }
         }
      }
      if (StringUtil.isNullOrEmpty(levelName)) {
         levelName = "快省达人";
      }
      data.put("level", levelName);
      // 粉丝统计
      long indirectNum = 0;
@@ -1254,56 +1258,44 @@
   }
   
   /**
    * 用户队员统计-h5
    *  队员数量统计
    * 
    * @param acceptData
    * @param id
    * @param out
    */
   @RequestMapping(value = "countTeamH5")
   public void countTeamH5(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
   @RequestMapping(value = "countTeamNum")
   public void countTeamNum(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
      try {
         Date now = new Date();
         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM");
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         // 今日
         String todayStr = sdf.format(now);
         // 昨日
         Date reduceDay = DateUtil.reduceDay(1, now);
         // 本月
         String monthStr = sdf1.format(now);
         Date minDate = null;
         Date maxDate = null;
         long timeStamp = System.currentTimeMillis();
         
         TeamDailyRecord todayRecord = new TeamDailyRecord(0,0,0);
         TeamDailyRecord yesterdayRecord = new TeamDailyRecord(0,0,0);
         TeamDailyRecord monthRecord = new TeamDailyRecord(0,0,0);
         TeamDailyRecord totalityRecord = new TeamDailyRecord(0,0,0);
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(timeStamp);
         
         List<TeamDailyRecord> list = teamDailyRecordService.getByUid(uid);
         if (list != null && list.size() > 0) {
            for (TeamDailyRecord record: list) {
               Date statisticDay = record.getCountDay();
               if (todayStr.equals(sdf.format(statisticDay))) {
                  todayRecord = record;
               }
               if (sdf.format(reduceDay).equals(sdf.format(statisticDay))) {
                  yesterdayRecord = record;
               }
               if (monthStr.equals(sdf1.format(statisticDay))) {
                  monthRecord.setFirstNum(monthRecord.getFirstNum() + record.getFirstNum());
                  monthRecord.setSecondNum(monthRecord.getSecondNum() + record.getSecondNum());
                  monthRecord.setBeyondNum(monthRecord.getBeyondNum() + record.getBeyondNum());
               }
               totalityRecord.setFirstNum(totalityRecord.getFirstNum() + record.getFirstNum());
               totalityRecord.setSecondNum(totalityRecord.getSecondNum() + record.getSecondNum());
               totalityRecord.setBeyondNum(totalityRecord.getBeyondNum() + record.getBeyondNum());
            }
         }
         // 今日预估
         calendar.add(Calendar.DAY_OF_YEAR, -1);
         minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
         TeamDailyRecord todayRecord = createVO(teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, null));
         // 昨日预估
         calendar.add(Calendar.DAY_OF_YEAR, -1);
         maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp)));
         minDate = DateUtil.reduceDay(1, maxDate);
         TeamDailyRecord yesterdayRecord = createVO(teamDailyRecordService.sumTeamNumGroupByCountDay(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);
         TeamDailyRecord monthRecord = createVO(teamDailyRecordService.sumTeamNumGroupByYearMonth(uid, minDate, maxDate));
         
         // 累计
         TeamDailyRecord totalityRecord = createVO(teamDailyRecordService.sumTeamNumGroupByUid(uid, null, null));
         
         JSONObject today = new JSONObject();
         today.put("direct", todayRecord.getFirstNum());
@@ -1336,6 +1328,80 @@
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("统计失败"));
         e.printStackTrace();
      }
   }
   private TeamDailyRecord createVO(List<TeamDailyRecord> list) {
      TeamDailyRecord totalityRecord = new TeamDailyRecord(0,0,0);
      if (list != null && list.size() > 0) {
         for (TeamDailyRecord record: list) {
            totalityRecord.setFirstNum(totalityRecord.getFirstNum() + record.getFirstNum());
            totalityRecord.setSecondNum(totalityRecord.getSecondNum() + record.getSecondNum());
            totalityRecord.setBeyondNum(totalityRecord.getBeyondNum() + record.getBeyondNum());
         }
      }
      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 = teamDailyRecordService.getRankingByFirstNum(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();
      }
   }
}