admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java
@@ -13,10 +13,8 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.dto.user.UserInviteLevelEnum;
import com.yeshi.fanli.dto.vip.UserVIPLevel;
import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
import com.yeshi.fanli.entity.accept.AcceptData;
@@ -26,9 +24,10 @@
import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserInviteSeparate;
import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
import com.yeshi.fanli.entity.bus.user.UserInviteValidRecord;
import com.yeshi.fanli.entity.bus.user.WeiXinUser;
import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.system.SystemClientParams;
@@ -43,19 +42,19 @@
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserInviteSeparateService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.invite.UserInviteService;
import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
import com.yeshi.fanli.service.inter.user.invite.UserInviteValidRecordService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.util.user.UserLevelUtil;
import com.yeshi.fanli.util.wx.WXLoginUtil;
import net.sf.json.JSONArray;
@@ -91,9 +90,6 @@
   @Resource
   private UserVIPInfoService userVIPInfoService;
   @Resource
   private UserInviteSeparateService userInviteSeparateService;
   @Resource
   private SpreadImgService spreadImgService;
@@ -110,6 +106,8 @@
   @Resource
   private UserInviteValidRecordService userInviteValidRecordService;
   
   @Resource
   private UserInviteValidNumService userInviteValidNumService;
   
   
   /**
@@ -222,11 +220,11 @@
      long count = 0;
      List<ThreeSale> listTeam = null;
      if (type == 1) {
         listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, 1);
         count = threeSaleSerivce.countFirstTeam(uid, 1);
         listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         count = threeSaleSerivce.countFirstTeam(uid);
      } else if (type == 2) {
         listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, 1);
         count = threeSaleSerivce.countSecondTeam(uid, 1);
         listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         count = threeSaleSerivce.countSecondTeam(uid);
      }
      boolean needVIPInfo = false;
@@ -294,32 +292,6 @@
         // 添加是否为VIP
         if (vipMap != null && vipMap.get(worker.getId()) != null) {
            object.put("vip", vipMap.get(worker.getId()));
            if (vipMap.get(worker.getId())) {
               UserInviteSeparate separate = userInviteSeparateService.selectByWorkerIdAndBossId(worker.getId(), uid);
               if (separate != null && separate.getEndTime() != null) {
                  try {
                     JSONObject contentJson1 = new JSONObject();
                     contentJson1.put("color", "#888888");
                     contentJson1.put("content", "将于");
                     JSONObject contentJson2 = new JSONObject();
                     contentJson2.put("color", "#F14242");
                     contentJson2.put("content", DateUtil.dateDiff4(new Date(), separate.getEndTime()));
                     JSONObject contentJson3 = new JSONObject();
                     contentJson3.put("color", "#888888");
                     contentJson3.put("content", "后脱离邀请关系");
                     JSONArray array = new JSONArray();
                     array.add(contentJson1);
                     array.add(contentJson2);
                     array.add(contentJson3);
                     object.put("vipBreakTime",array);
                  } catch (Exception e) {
                     e.printStackTrace();
                  }
               }
            }
         }
         String fontColor1 = "#888888";
         JSONArray array = new JSONArray();
@@ -387,13 +359,13 @@
      long count = 0;
      List<ThreeSale> listTeam = null;
      if (type == 1) {
         listTeam = threeSaleSerivce.listFirstTeamByUndeleted((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         count = threeSaleSerivce.countFirstTeamByUndeleted(uid);
         listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         count = threeSaleSerivce.countFirstTeam(uid);
      } else if (type == 2) {
         listTeam = threeSaleSerivce.listSecondTeamByUndeleted((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         count = threeSaleSerivce.countSecondTeamByUndeleted(uid);
         listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         count = threeSaleSerivce.countSecondTeam(uid);
      }
      JSONObject result = new JSONObject();
      result.put("count", count);
      result.put("list", organizeTeamNew(count, listTeam, uid, type, true));
@@ -442,23 +414,13 @@
      if (type == 1) {
         validType = UserInviteValidRecord.TYPE_ONE;
      }
      List<Long> listVid = userInviteValidRecordService.getValidWorkerIdsByUid(uid, listWid, validType);
   
      for (ThreeSale threeSale : list) {
         UserInfo worker = threeSale.getWorker();
         Long workerId = worker.getId();
         // 邀请状态
         Boolean state = threeSale.getState();
         if (type == 2) {
            if (state &&  threeSale.getStateSuper()) {
               state = true;
            } else {
               state = false;
            }
         }
         // 邀请成功时间
         Long succeedTime = threeSale.getSucceedTime(); 
         if (succeedTime == null) {
@@ -467,7 +429,7 @@
         
         // 有效粉丝
         boolean validFans = false; 
         if (state && listVid != null && listVid.size() > 0 && listVid.contains(workerId)) {
         if (listVid != null && listVid.size() > 0 && listVid.contains(workerId)) {
            validFans = true;
         }
         
@@ -489,26 +451,15 @@
         array.add(loginJson);
         // 查询粉丝等级
         UserInviteLevelEnum level = null;
         UserLevelEnum level = null;
         UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(workerId);
         if (vipLevel != null) {
            if (vipLevel.getLevel() == UserVIPLevel.LEVEL_3) {
               level = UserInviteLevelEnum.actived;
            } else if (vipLevel.getLevel() == UserVIPLevel.LEVEL_7) {
               level = UserInviteLevelEnum.actived;
            } else if (vipLevel.getLevel() == UserVIPLevel.LEVEL_10) {
               level = UserInviteLevelEnum.actived;
            }
         if (vipLevel != null && vipLevel.getLevel() != null) {
            level = UserLevelUtil.getByLevel(vipLevel.getLevel());
         }
         if(level == null) {
            if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
               level = UserInviteLevelEnum.noActive;
            } else {
               level = UserInviteLevelEnum.actived;
            }
            level = UserLevelEnum.daRen;
         }
         level = UserLevelUtil.getShowLevel(level);
         
         JSONObject object = new JSONObject();
         object.put("workerId", workerId);
@@ -516,54 +467,11 @@
         object.put("portrait", worker.getPortrait());
         object.put("inviteId", threeSale.getId());
         object.put("inviteTime", format.format(new Date(succeedTime)) + " 加入");
         object.put("state", state? 1 : 2);
         object.put("state", 1);
         object.put("recentMsg", array);
         object.put("level", level.name());
         object.put("validFans", validFans);
         
         // 判断是否存在脱离关系队员
         if (vipLevel != null && state) {
            Long bossId = threeSale.getBoss().getId();
            UserInviteSeparate separate = userInviteSeparateService.selectByWorkerIdAndBossId(workerId, bossId);
            if (separate != null && separate.getEndTime() != null) {
               try {
                  JSONObject contentJson1 = new JSONObject();
                  contentJson1.put("color", "#888888");
                  contentJson1.put("content", "将于");
                  String dateDiff = DateUtil.dateDiff4(new Date(), separate.getEndTime());
                  JSONObject contentJson2 = new JSONObject();
                  contentJson2.put("color", "#F14242");
                  contentJson2.put("content", dateDiff);
                  JSONObject contentJson3 = new JSONObject();
                  contentJson3.put("color", "#888888");
                  contentJson3.put("content", "后脱离邀请关系");
                  JSONArray vipBreak = new JSONArray();
                  vipBreak.add(contentJson1);
                  vipBreak.add(contentJson2);
                  vipBreak.add(contentJson3);
                  object.put("vipBreakTime",vipBreak);
                  List<String> tips = new ArrayList<String>();
                  tips.add("于"+ TimeUtil.formatDateDot(vipLevel.getSuccessTime()) + "升级为" + level.getName());
                  if (type == 1) {
                     tips.add("你需要在"+ dateDiff +"内升级为会员,否则按照邀请规则TA将与你脱离邀请关系。");
                     tips.add("赶快加油升级为会员吧!");
                  } else {
                     tips.add("你需要辅助TA的邀请人"+ threeSale.getBoss().getNickName()+ "在"+dateDiff+"内升级为会员,否则这位间接粉丝" +worker.getNickName()+"将与你脱离邀请关系。");
                     tips.add("赶快帮助TA升级为会员吧!");
                  }
                  object.put("vipBreakTip",tips);
               } catch (Exception e) {
                  e.printStackTrace();
               }
            }
         }
         if (wxtip && type == 1 && threeSale.getState() != null && threeSale.getState()) {
            // 一级队员 查询昵称备注
            String memoName = null;
@@ -590,7 +498,6 @@
               }
            }
         }
         resultArray.add(object);
      }
      return resultArray;
@@ -612,8 +519,8 @@
         return;
      }
      
      List<ThreeSale> listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, tid, 1);
      long count = threeSaleSerivce.countFirstTeam(tid, 1);
      List<ThreeSale> listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, tid);
      long count = threeSaleSerivce.countFirstTeam(tid);
      JSONObject result = new JSONObject();
      result.put("count", count);
@@ -634,13 +541,14 @@
      JSONObject bossData = getBossInfo(uid, threeSaleSerivce.getMyBoss(uid));
      JSONObject resultData = new JSONObject();
      long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
      long firstTeam = threeSaleSerivce.countFirstTeam(uid);
      long countSecond = threeSaleSerivce.countSecondTeam(uid);
      resultData.put("boss", bossData);
      resultData.put("helpLink", configService.get(ConfigKeyEnum.teamHelpUrl.getKey()));
      resultData.put("firstTeam", firstTeam);
      resultData.put("firstTeamTotal", threeSaleSerivce.countFirstTeam(uid, null));
      resultData.put("secondTeam", threeSaleSerivce.countSecondTeam(uid, 1));
      resultData.put("secondTeamTotal", threeSaleSerivce.countSecondTeam(uid, null));
      resultData.put("firstTeamTotal", firstTeam);
      resultData.put("secondTeam", countSecond);
      resultData.put("secondTeamTotal", countSecond);
      resultData.put("helpLink", configService.get(ConfigKeyEnum.teamHelpUrl.getKey()));
      boolean hasTeam = true;
      if (firstTeam <= 0) {
@@ -902,23 +810,17 @@
         return;
      }
      // 有效粉丝
      int doneFirst = 0;
      UserInviteValidNum userInviteValidNum = userInviteValidNumService.selectByPrimaryKey(uid);
      if (userInviteValidNum != null) {
         doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst();
      }
      JSONObject data = new JSONObject();
      data.put("num", threeSaleSerivce.countFirstTeam(uid, 1));
      data.put("num", doneFirst);
      data.put("limit", Constant.INVITE_CODRE_TAILOR_LIMIT);
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
   @RequestMapping(value = "remvoeBreak")
   public void remvoeBreak(String callback, AcceptData acceptData,Long inviteId, Long uid, Long tid, PrintWriter out) {
      if (uid == null || inviteId == null || tid == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传输参数不完整"));
         return;
      }
      threeSaleSerivce.remvoeBreak(inviteId, uid, tid);
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功"));
   }
   
}