yujian
2020-05-06 a4637ae9d71aa4a624b217ed3a1483f0e3a3a7ed
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java
@@ -22,6 +22,7 @@
import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
@@ -38,6 +39,7 @@
import com.yeshi.fanli.service.inter.config.SpreadImgService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
@@ -47,11 +49,13 @@
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.tb.UserExtraTaoBaoInfoService;
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;
@@ -109,6 +113,11 @@
   @Resource
   private UserInviteValidNumService userInviteValidNumService;
   
   @Resource
   private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
   @Resource
   private CommonOrderCountService commonOrderCountService;
   
   /**
    * 邀请码验证
@@ -199,7 +208,7 @@
   }
   /**
    * 用户队员列表查询 1.5.3查询有效队员
    * 用户队员列表查询
    * 
    * @param acceptData
    * @param id
@@ -212,29 +221,37 @@
         return;
      }
      
      if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
         getMyTeamNew(acceptData, page, uid, type, out);
         return;
      }
      List<Long> listId = new ArrayList<Long>();
      long count = 0;
      List<ThreeSale> listTeam = null;
      if (type == 1) {
         listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         count = threeSaleSerivce.countFirstTeam(uid);
         listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, listId);
         count = threeSaleSerivce.countFirstTeam(uid, listId);
      } else if (type == 2) {
         listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         count = threeSaleSerivce.countSecondTeam(uid);
         listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, listId);
         count = threeSaleSerivce.countSecondTeam(uid, listId);
      }
      boolean needVIPInfo = false;
      if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion()))
         needVIPInfo = true;
      // 组织数据
      JSONObject resultData = organizeTeam(count, listTeam, uid, type,needVIPInfo);
      // 第一页判断是否激活 是否有队员
      // 数据加工
      JSONArray array = null;
      if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
         array = organizeTeamNew(listTeam, uid, type, true);
      } else {
         boolean needVIPInfo = false;
         if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion()))
            needVIPInfo = true;
         array =  organizeTeam(listTeam, uid, type,needVIPInfo);
      }
      JSONObject result = new JSONObject();
      result.put("count", count);
      result.put("list", array);
      if (type == 1 && page == 1) {
         boolean hasCode = false;
         UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
@@ -242,10 +259,10 @@
            if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode()))
               hasCode = true;
         }
         resultData.put("hasCode", hasCode);
         resultData.put("hasTeam", count > 0 ? true : false);
         result.put("hasCode", hasCode);
         result.put("hasTeam", count > 0 ? true : false);
      }
      out.print(JsonUtil.loadTrueResult(resultData));
      out.print(JsonUtil.loadTrueResult(result));
   }
   /**
@@ -257,10 +274,8 @@
    * @param type
    * @return
    */
   private JSONObject organizeTeam(long count, List<ThreeSale> list, Long uid, int type, boolean needVipInfo) {
      JSONObject result = new JSONObject();
   private JSONArray organizeTeam(List<ThreeSale> list, Long uid, int type, boolean needVipInfo) {
      JSONArray resultArray = new JSONArray();
      Date todayTime = new Date();
      SimpleDateFormat sdf = new SimpleDateFormat("MM.dd HH:mm");
      SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
@@ -343,46 +358,9 @@
         object.put("recentMsg", array);
         resultArray.add(object);
      }
      result.put("count", count);
      result.put("list", resultArray);
      return result;
      return resultArray;
   }
   
   private void getMyTeamNew(AcceptData acceptData, long page, long uid, int type, PrintWriter out) {
      if (type != 1 && type != 2) {
         out.print(JsonUtil.loadFalseResult("粉丝类型不正确"));
         return;
      }
      long count = 0;
      List<ThreeSale> listTeam = null;
      if (type == 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);
         count = threeSaleSerivce.countSecondTeam(uid);
      }
      JSONObject result = new JSONObject();
      result.put("count", count);
      result.put("list", organizeTeamNew(count, listTeam, uid, type, true));
      // 第一页判断是否激活 是否有队员
      if (type == 1 && page == 1) {
         boolean hasCode = false;
         UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
         if (userInfoExtra != null) {
            if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode()))
               hasCode = true;
         }
         result.put("hasCode", hasCode);
         result.put("hasTeam", count > 0 ? true : false);
      }
      out.print(JsonUtil.loadTrueResult(result));
   }
   
   /**
    *  加工数据
@@ -393,7 +371,7 @@
    * @param wxtip 是需要微信提示
    * @return
    */
   private JSONArray organizeTeamNew(long count, List<ThreeSale> list, Long uid, int type, boolean wxtip) {
   private JSONArray organizeTeamNew(List<ThreeSale> list, Long uid, int type, boolean wxtip) {
      JSONArray resultArray = new JSONArray();
      if (list == null || list.size() == 0) {
         return resultArray;
@@ -524,7 +502,7 @@
      JSONObject result = new JSONObject();
      result.put("count", count);
      result.put("list", organizeTeamNew(count, listTeam, tid, 1, false));
      result.put("list", organizeTeamNew(listTeam, tid, 1, false));
      out.print(JsonUtil.loadTrueResult(result));
   }
   
@@ -823,4 +801,122 @@
      JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
   }
   
   /**
    * 获取粉丝信息
    * @param acceptData
    * @param uid
    * @param workerId
    * @param out
    */
   @RequestMapping(value = "getFansInfo")
   public void getFansInfo(AcceptData acceptData,Long uid, Long workerId, PrintWriter out) {
      if (uid == null || workerId == null) {
         out.print(JsonUtil.loadFalseResult("用户id缺失"));
         return;
      }
      ThreeSale threeSale = threeSaleSerivce.getByWorkerId(workerId);
      if (threeSale == null) {
         out.print(JsonUtil.loadFalseResult("邀请关系不存在"));
         return;
      }
      UserInfo user = userInfoService.selectByPKey(workerId);
      if (user == null) {
         out.print(JsonUtil.loadFalseResult("用户不存在"));
         return;
      }
      JSONArray tagArray = new JSONArray();
      String memoName = user.getNickName();
      Long succeedTime = threeSale.getSucceedTime();
      JSONObject data = new JSONObject();
      data.put("nickName", user.getNickName());
      data.put("phone", user.getPhone());
      data.put("joinTime", TimeUtil.formatDate(succeedTime == null? threeSale.getCreateTime() : succeedTime));
      ThreeSaleExtraInfo saleExtraInfo = threeSaleExtraInfoSerivce.getbyBossIdAndWorkerId(uid, workerId);
      if (saleExtraInfo != null) {
         if(!StringUtil.isNullOrEmpty(saleExtraInfo.getNickname())) {
            memoName = saleExtraInfo.getNickname();
         }
         String tags = saleExtraInfo.getTags();
         if (!StringUtil.isNullOrEmpty(tags)) {
            tagArray = JSONArray.fromObject(tags);
         }
      }
      data.put("memoName", memoName);
      data.put("tags", tagArray);
      Date activeTime = null;
      String weixin = null;
      UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(workerId);
      if (userInfoExtra != null) {
         weixin = userInfoExtra.getWeiXin();
         activeTime = userInfoExtra.getActiveTime();
      }
      data.put("weixin", StringUtil.isNullOrEmpty(weixin)? "": weixin);
      data.put("loginTime", TimeUtil.formatDate(activeTime == null? userInfoExtra.getCreateTime():activeTime));
      UserExtraTaoBaoInfo userExtraTaoBaoInfo = userExtraTaoBaoInfoService.getByUid(workerId);
      if (userExtraTaoBaoInfo != null && !StringUtil.isNullOrEmpty(userExtraTaoBaoInfo.getRelationId())
            && !StringUtil.isNullOrEmpty(userExtraTaoBaoInfo.getSpecialId())) {
         data.put("taobao", true);
      } else {
         data.put("taobao", false);
      }
      long indirectNum = 0;
      long directNum = threeSaleSerivce.countFirstTeam(workerId);
      if (directNum > 0) {
         indirectNum = threeSaleSerivce.countSecondTeam(workerId);
      }
      data.put("directNum", directNum);
      data.put("indirectNum", indirectNum);
      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("orderTB", countTB);
      data.put("orderJD", countJD);
      data.put("orderPDD", countPDD);
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 获取粉丝信息
    * @param acceptData
    * @param uid
    * @param workerId
    * @param out
    */
   @RequestMapping(value = "saveTags")
   public void saveTags(AcceptData acceptData,Long uid, Long workerId, String tags, PrintWriter out) {
      if (uid == null || workerId == null) {
         out.print(JsonUtil.loadFalseResult("用户id缺失"));
         return;
      }
      ThreeSaleExtraInfo saleExtraInfo = threeSaleExtraInfoSerivce.getbyBossIdAndWorkerId(uid, workerId);
      if (saleExtraInfo != null) {
         ThreeSaleExtraInfo upObject = new ThreeSaleExtraInfo();
         upObject.setTags(tags);
         upObject.setId(saleExtraInfo.getId());
         upObject.setUpdateTime(new Date());
         threeSaleExtraInfoSerivce.updateByPrimaryKeySelective(upObject);
      } else {
         saleExtraInfo = new ThreeSaleExtraInfo();
         saleExtraInfo.setBoss(new UserInfo(uid));
         saleExtraInfo.setWorker(new UserInfo(workerId));
         saleExtraInfo.setTags(tags);
         saleExtraInfo.setCreateTime(new Date());
         threeSaleExtraInfoSerivce.insertSelective(saleExtraInfo);
      }
      out.print(JsonUtil.loadTrueResult("保存成功"));
   }
}