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;
@@ -477,7 +478,7 @@
         object.put("level", level.name());
         object.put("validFans", validFans);
         if (wxtip && type == 1 && threeSale.getState() != null && threeSale.getState()) {
         if (wxtip) {
            // 一级队员 查询昵称备注
            String memoName = null;
            ThreeSaleExtraInfo threeSaleExtraInfo = threeSale.getThreeSaleExtraInfo();
@@ -488,7 +489,7 @@
            }
            object.put("memoName", memoName);
            if (!VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) {
            if (type == 1 && !VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) {
               // 添加微信信息
               if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) {
                  object.put("weiXin", userInfoExtra.getWeiXin());
@@ -904,7 +905,9 @@
      if (focus.getStateValid() != null || focus.getTaobaoBind() != null || focus.getWeixinBind() != null
            || focus.getMinFansNum() != null || focus.getMinFansNum() != null
            || focus.getMinActiveTime() != null || focus.getMaxActiveTime() != null
            || focus.getMinIncome() != null  || focus.getMaxIncome() != null || !StringUtil.isNullOrEmpty(focus.getKey()))
            || focus.getMinIncome() != null  || focus.getMaxIncome() != null
             || focus.getMinJoinTime() != null  || focus.getMaxJoinTime() != null
            || !StringUtil.isNullOrEmpty(focus.getKey()) || !StringUtil.isNullOrEmpty(focus.getLevel()))
          return true;
   
      return false;
@@ -1103,9 +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;
@@ -1199,11 +1203,12 @@
      if (directNum > 0) {
         indirectNum = threeSaleSerivce.countSecondTeam(workerId);
      }
      // 订单统计
      long countTB = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_TAOBAO, 60);
      long countJD = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_JD, 60);
      long countPDD = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_PDD, 60);
      data.put("fansNum", "直接粉丝: "+directNum+"人\n" + "间接粉丝: "+indirectNum+"人");
      data.put("orderInfo", "淘宝 ("+countTB+"笔)\n" + "京东 ("+countJD+"笔)\n" + "拼多多 ("+countPDD+"笔)");
      out.print(JsonUtil.loadTrueResult(data));
@@ -1226,7 +1231,7 @@
      int type = 1;
      ThreeSale threeSale = threeSaleSerivce.getByWorkerId(workerId);
      if (threeSale == null) {
      if (threeSale != null && threeSale.getBoss().getId() != uid) {
         type = 2;
      }
@@ -1247,61 +1252,50 @@
         threeSaleExtraInfoSerivce.insertSelective(saleExtraInfo);
      }
      // 更新粉丝记录信息
      teamFansInfoService.updateTags(workerId, type, tags);
      out.print(JsonUtil.loadTrueResult("保存成功"));
   }
   
   /**
    * 用户队员统计-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());
@@ -1334,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();
      }
   }
}