admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/InviteGetMoneyController.java
@@ -1,458 +1,457 @@
package com.yeshi.fanli.controller.client.v1;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.dto.money.InviteGetMoney;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.system.SystemClientParams;
import com.yeshi.fanli.exception.NotExistObjectException;
import com.yeshi.fanli.exception.user.UserInfoExtraException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
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.UserRankingsService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.vo.homemodule.BannerVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
 *
 * 类说明: 前端客户端所需接口
 *
 * @author mawurui
 * @createTime 2018年4月2日 上午9:39:30
 * @version /test/invite
 */
@Controller
@RequestMapping("api/v1/invite")
public class InviteGetMoneyController {
   @Resource
   private SystemClientParamsService systemClientParamsService;
   @Resource
   private SpreadUserImgService spreadUserImgService;
   @Resource
   private UserRankingsService userRankingsService;
   @Resource
   private ConfigService configService;
   @Resource
   private SwiperPictureService swiperPictureService;
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private UserInfoService userInfoService;
   @Resource
   private ThreeSaleSerivce threeSaleSerivce;
   @Resource
   private RedisManager redisManager;
   @RequestMapping(value = "/inviteGetMoney", method = RequestMethod.POST)
   public void everyDayTaskList(AcceptData acceptData, int pageIndex, PrintWriter out, String uid)
         throws NotExistObjectException, UserInfoExtraException {
      // 查询商品总数
      Integer totalCount = 0;
      int totalPage = totalCount % Constant.PAGE_SIZE == 0 ? totalCount / Constant.PAGE_SIZE
            : totalCount / Constant.PAGE_SIZE + 1;
      PageEntity pageEntity = new PageEntity(pageIndex, Constant.PAGE_SIZE, totalCount, totalPage);
      List<InviteGetMoney> inviteGetMoneyList = userRankingsService.getRank(0, 5);
      com.alibaba.fastjson.JSONObject data = new com.alibaba.fastjson.JSONObject();
      data.put("pageEntity", JsonUtil.getSimpleGsonWithDate().toJson(pageEntity));
      data.put("everyDayTaskList", new JSONArray());
      data.put("inviteGetMoneyList",
            JSONArray.fromObject(JsonUtil.getSimpleGsonWithDate().toJson(inviteGetMoneyList)));
      if (StringUtil.isNullOrEmpty(uid) || uid.equalsIgnoreCase("0")) {
         data.put("myTeam", "---");
         data.put("moneyToday", "---");
         data.put("moneyMonth", "---");
         data.put("moneyLastMonth", "---");
      } else {
         // 我的队员
         long myFirstTeamCount = threeSaleSerivce.countFirstTeam(Long.parseLong(uid));
         long mySecondTeamCount = threeSaleSerivce.countSecondTeam(Long.parseLong(uid));
         long myTeamCount = myFirstTeamCount + mySecondTeamCount;
         data.put("myTeam", myTeamCount);
         // 1.5.0后已经不使用此字段
         data.put("moneyToday", "0");
         data.put("moneyMonth", "0");
         data.put("moneyLastMonth", "0");
      }
      // 活动规则
      String key = "activityRules"; // key值
      BusinessSystem system = new BusinessSystem();
      system.setCreatetime(java.lang.System.currentTimeMillis());
      system.setPlatform(1);
      system.setId(4L);
      SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, key);
      // 转换换行符 给前端
      String valueN = values.getValue();
      String valueBr = valueN.replace("\n", "<br><br>");
      data.put("activityRules", valueBr);
      data.put("inviteList", String.format("http://%s/%s/client/share/friends_new.html",
            Constant.systemCommonConfig.getProjectHost(), Constant.systemCommonConfig.getProjectName()));
      List<BannerVO> pictureList = swiperPictureService.getByBannerCardAndVersion("invite_top_banner",
            acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
      if (pictureList != null && pictureList.size() > 0) {
         BannerVO picture = pictureList.get(0);
         com.alibaba.fastjson.JSONObject pictureJson = new com.alibaba.fastjson.JSONObject();
         pictureJson.put("src", picture.getSrc());
         pictureJson.put("jumpDetail", picture.getJumpDetail());
         pictureJson.put("params", picture.getParams());
         data.put("topBanner", pictureJson);
      }
      data.put("desc", configService.getValue(ConfigKeyEnum.inviteDesc.getKey(),acceptData.getSystem()));
      boolean hasCode = false;
      if (uid != null && uid.trim().length() > 0) {
         String inviteCode = userInfoExtraService.getInviteCodeByUid(Long.parseLong(uid));
         if (inviteCode != null && inviteCode.trim().length() > 0) {
            hasCode = true; // 已有邀请码
         }
      }
      // 邀请激活链接
      if (!hasCode) {
         data.put("activationlink", configService.getValue(ConfigKeyEnum.inviteActivationUrl.getKey(),acceptData.getSystem()));
      }
      data.put("hasCode", hasCode);
      com.alibaba.fastjson.JSONObject root = new com.alibaba.fastjson.JSONObject();
      root.put("code", 0);
      root.put("data", data);
      out.print(root.toString());
   }
   /**
    *
    * 方法说明: 分享好友邀请图片
    *
    * @author mawurui createTime 2018年4月3日 下午3:49:05
    * @param out
    * @param uid
    * @throws NotExistObjectException
    * @throws IOException
    */
   @RequestSerializableByKey(key = "'listInviteFriendImg-'+#uid")
   @RequestMapping(value = "/listInviteFriendImg", method = RequestMethod.POST)
   public void listInviteFriendImg(AcceptData acceptData, Long uid, PrintWriter out, HttpServletRequest request)
         throws NotExistObjectException, IOException {
      JSONObject data = new JSONObject();
      if (uid != null && !uid.equals("0")) {
         List<String> imgList = spreadUserImgService.getUserSpreadImg(uid, request);
         data.put("imgUrlList", JsonUtil.getSimpleGsonWithDate().toJson(imgList));
      }
      // 邀请链接
      // String shortLink = HttpUtil.getShortLink("http://" +
      // Constant.wxGZConfig.getLoginHost() + "/"
      // + Constant.systemCommonConfig.getProjectName() +
      // "/client/threeShareNew?uid=" + uid);
      data.put("inviteLink", "http://a.app.qq.com/o/simple.jsp?pkgname=com.yeshi.ec.rebate");
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      if (!StringUtil.isNullOrEmpty(inviteCode)) {
         data.put("inviteCode", inviteCode);
      }
      // 邀请规则
      String key = "inviteRules"; // key值
      BusinessSystem system = new BusinessSystem();
      system.setCreatetime(java.lang.System.currentTimeMillis());
      system.setPlatform(1);
      system.setId(4L);
      SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, key);
      // 转换换行符 给前端
      String valueN = values.getValue();
      String valueBr = valueN.replace("\n", "<br><br>");
      data.put("helpLink", configService.getValue(ConfigKeyEnum.inviteHelpLink.getKey(),acceptData.getSystem()));
      data.put("inviteRules", valueBr);
      out.print(JsonUtil.loadTrue(0, JsonUtil.getSimpleGson().toJson(data), "成功"));
   }
   /**
    * 邀请激活-特别提示语
    *
    * @param callback
    * @param out
    */
   @RequestMapping(value = "getActivationTip")
   public void getActivationTip(AcceptData acceptData, String callback, PrintWriter out) {
      try {
         String tip = configService.getValue(ConfigKeyEnum.inviteActivationTip.getKey(),acceptData.getSystem());
         if (tip == null || tip.trim().length() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无提醒"));
            return;
         }
         JSONObject data = new JSONObject();
         data.put("tip", tip);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取失败"));
         e.printStackTrace();
      }
   }
   /**
    * 激活邀请
    *
    * @param callback
    * @param uid
    *            用户id
    * @param inviteCode
    *            邀请嘛
    * @param out
    */
   @RequestSerializableByKey(key = "'activationInvite-'+#uid")
   @RequestMapping(value = "activationInvite")
   public void activationInvite(AcceptData acceptData, String callback, Long uid, String inviteCode, PrintWriter out) {
      try {
         if (uid == null || inviteCode == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
            return;
         }
         String newCode = userInfoExtraService.activateInviteCode(uid, inviteCode);
         if (newCode == null || newCode.trim().length() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("激活失败"));
            return;
         }
         if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
            String myInviteCode = userInfoExtraService.getInviteCodeByUid(uid);
            JSONObject data = new JSONObject();
            data.put("inviteCode", myInviteCode);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
         } else
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("邀请码激活成功"));
      } catch (UserInfoExtraException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("激活失败"));
         e.printStackTrace();
      }
   }
   /**
    * 激活邀请
    *
    * @param uid
    *            用户id
    *            邀请嘛
    * @param out
    */
   @RequestSerializableByKey(key = "'activationInviteWX-'+#uid")
   @RequestMapping(value = "activationInviteWX")
   public void activationInviteWX(AcceptData acceptData, Long uid, String code, PrintWriter out) {
      try {
         userInfoExtraService.activationInviteWX(
               Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion()), uid, code);
         if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
            String myInviteCode = userInfoExtraService.getInviteCodeByUid(uid);
            JSONObject data = new JSONObject();
            data.put("inviteCode", myInviteCode);
            JsonUtil.printMode(out, "", JsonUtil.loadTrueResult(data));
         } else
            out.print(JsonUtil.loadTrueResult("邀请码激活成功"));
      } catch (UserInfoExtraException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("邀请码激活失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取邀请码
    *
    * @param callback
    * @param uid
    *            用户id
    * @param out
    */
   @RequestMapping(value = "getInviteCode")
   public void getInviteCode(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
            return;
         }
         String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
         if (StringUtil.isNullOrEmpty(inviteCode)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("邀请码不存在"));
            return;
         }
         String tip = configService.getValue(ConfigKeyEnum.inviteActivationSuccessTip.getKey(),acceptData.getSystem());
         JSONObject data = new JSONObject();
         data.put("inviteCode", inviteCode);
         data.put("tip", tip);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取邀请短连接
    *
    * @param callback
    * @param uid
    *            用户id
    * @param out
    */
   @RequestMapping(value = "getShortLink")
   public void getShortLink(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
            return;
         }
         String inviteShortLink = redisManager.getInviteShortLink(uid);
         if (inviteShortLink != null && inviteShortLink.trim().length() > 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请1分钟后再试"));
            return;
         }
         String shortLink = UserUtil.getInviteShortLink(uid);
         // 缓存1分钟
         redisManager.setInviteShortLink(uid, shortLink);
         JSONObject data = new JSONObject();
         data.put("shortLink", shortLink);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("生成短连接失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取邀请电话号码
    *
    * @param callback
    * @param uid
    *            用户id
    * @param out
    */
   @RequestMapping(value = "getUserPhone")
   public void getUserPhone(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
            return;
         }
         UserInfo userInfo = userInfoService.selectByPKey(uid);
         if (userInfo == null || userInfo.getPhone() == null || userInfo.getPhone().trim().length() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂未绑定电话号码"));
            return;
         }
         JSONObject data = new JSONObject();
         data.put("phone", userInfo.getPhone());
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取用户邀请上级
    *
    * @param callback
    * @param uid
    * @param out
    */
   @RequestMapping(value = "getUserBoss")
   public void getUserBoss(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
      if (uid == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
         return;
      }
      try {
         ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
         if (threeSale == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "无上级邀请人"));
            return;
         }
         UserInfo boss = threeSale.getBoss();
         if (boss == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("上级邀请人获取失败"));
            return;
         }
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
         Long createTime = threeSale.getCreateTime();
         Date inviteTime = new Date(createTime);
         JSONObject data = new JSONObject();
         data.put("nickName", boss.getNickName());
         data.put("portrait", boss.getPortrait());
         data.put("inviteTime", sdf.format(inviteTime));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
         e.printStackTrace();
      }
   }
}
package com.yeshi.fanli.controller.client.v1;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.dto.money.InviteGetMoney;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.system.SystemClientParams;
import com.yeshi.fanli.exception.NotExistObjectException;
import com.yeshi.fanli.exception.user.UserInfoExtraException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
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.UserRankingsService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.common.entity.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.vo.homemodule.BannerVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
 *
 * 类说明: 前端客户端所需接口
 *
 * @author mawurui
 * @createTime 2018年4月2日 上午9:39:30
 * @version /test/invite
 */
@Controller
@RequestMapping("api/v1/invite")
public class InviteGetMoneyController {
   @Resource
   private SystemClientParamsService systemClientParamsService;
   @Resource
   private SpreadUserImgService spreadUserImgService;
   @Resource
   private UserRankingsService userRankingsService;
   @Resource
   private ConfigService configService;
   @Resource
   private SwiperPictureService swiperPictureService;
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private UserInfoService userInfoService;
   @Resource
   private ThreeSaleSerivce threeSaleSerivce;
   @Resource
   private RedisManager redisManager;
   @RequestMapping(value = "/inviteGetMoney", method = RequestMethod.POST)
   public void everyDayTaskList(AcceptData acceptData, int pageIndex, PrintWriter out, String uid)
         throws NotExistObjectException, UserInfoExtraException {
      // 查询商品总数
      Integer totalCount = 0;
      int totalPage = totalCount % Constant.PAGE_SIZE == 0 ? totalCount / Constant.PAGE_SIZE
            : totalCount / Constant.PAGE_SIZE + 1;
      PageEntity pageEntity = new PageEntity(pageIndex, Constant.PAGE_SIZE, totalCount, totalPage);
      List<InviteGetMoney> inviteGetMoneyList = userRankingsService.getRank(0, 5);
      com.alibaba.fastjson.JSONObject data = new com.alibaba.fastjson.JSONObject();
      data.put("pageEntity", JsonUtil.getSimpleGsonWithDate().toJson(pageEntity));
      data.put("everyDayTaskList", new JSONArray());
      data.put("inviteGetMoneyList",
            JSONArray.fromObject(JsonUtil.getSimpleGsonWithDate().toJson(inviteGetMoneyList)));
      if (StringUtil.isNullOrEmpty(uid) || uid.equalsIgnoreCase("0")) {
         data.put("myTeam", "---");
         data.put("moneyToday", "---");
         data.put("moneyMonth", "---");
         data.put("moneyLastMonth", "---");
      } else {
         // 我的队员
         long myFirstTeamCount = threeSaleSerivce.countFirstTeam(Long.parseLong(uid));
         long mySecondTeamCount = threeSaleSerivce.countSecondTeam(Long.parseLong(uid));
         long myTeamCount = myFirstTeamCount + mySecondTeamCount;
         data.put("myTeam", myTeamCount);
         // 1.5.0后已经不使用此字段
         data.put("moneyToday", "0");
         data.put("moneyMonth", "0");
         data.put("moneyLastMonth", "0");
      }
      // 活动规则
      String key = "activityRules"; // key值
      BusinessSystem system = new BusinessSystem();
      system.setCreatetime(java.lang.System.currentTimeMillis());
      system.setPlatform(1);
      system.setId(4L);
      SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, key);
      // 转换换行符 给前端
      String valueN = values.getValue();
      String valueBr = valueN.replace("\n", "<br><br>");
      data.put("activityRules", valueBr);
      data.put("inviteList", String.format("http://%s/%s/client/share/friends_new.html",
            Constant.systemCommonConfig.getProjectHost(), Constant.systemCommonConfig.getProjectName()));
      List<BannerVO> pictureList = swiperPictureService.getByBannerCardAndVersion("invite_top_banner",
            acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
      if (pictureList != null && pictureList.size() > 0) {
         BannerVO picture = pictureList.get(0);
         com.alibaba.fastjson.JSONObject pictureJson = new com.alibaba.fastjson.JSONObject();
         pictureJson.put("src", picture.getSrc());
         pictureJson.put("jumpDetail", picture.getJumpDetail());
         pictureJson.put("params", picture.getParams());
         data.put("topBanner", pictureJson);
      }
      data.put("desc", configService.getValue(ConfigKeyEnum.inviteDesc.getKey(),acceptData.getSystem()));
      boolean hasCode = false;
      if (uid != null && uid.trim().length() > 0) {
         String inviteCode = userInfoExtraService.getInviteCodeByUid(Long.parseLong(uid));
         if (inviteCode != null && inviteCode.trim().length() > 0) {
            hasCode = true; // 已有邀请码
         }
      }
      // 邀请激活链接
      if (!hasCode) {
         data.put("activationlink", configService.getValue(ConfigKeyEnum.inviteActivationUrl.getKey(),acceptData.getSystem()));
      }
      data.put("hasCode", hasCode);
      com.alibaba.fastjson.JSONObject root = new com.alibaba.fastjson.JSONObject();
      root.put("code", 0);
      root.put("data", data);
      out.print(root.toString());
   }
   /**
    *
    * 方法说明: 分享好友邀请图片
    *
    * @author mawurui createTime 2018年4月3日 下午3:49:05
    * @param out
    * @param uid
    * @throws NotExistObjectException
    * @throws IOException
    */
   @RequestSerializableByKey(key = "'listInviteFriendImg-'+#uid")
   @RequestMapping(value = "/listInviteFriendImg", method = RequestMethod.POST)
   public void listInviteFriendImg(AcceptData acceptData, Long uid, PrintWriter out, HttpServletRequest request)
         throws NotExistObjectException, IOException {
      JSONObject data = new JSONObject();
      if (uid != null && !uid.equals("0")) {
         List<String> imgList = spreadUserImgService.getUserSpreadImg(uid, request);
         data.put("imgUrlList", JsonUtil.getSimpleGsonWithDate().toJson(imgList));
      }
      // 邀请链接
      // String shortLink = HttpUtil.getShortLink("http://" +
      // Constant.wxGZConfig.getLoginHost() + "/"
      // + Constant.systemCommonConfig.getProjectName() +
      // "/client/threeShareNew?uid=" + uid);
      data.put("inviteLink", "http://a.app.qq.com/o/simple.jsp?pkgname=com.yeshi.ec.rebate");
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      if (!StringUtil.isNullOrEmpty(inviteCode)) {
         data.put("inviteCode", inviteCode);
      }
      // 邀请规则
      String key = "inviteRules"; // key值
      BusinessSystem system = new BusinessSystem();
      system.setCreatetime(java.lang.System.currentTimeMillis());
      system.setPlatform(1);
      system.setId(4L);
      SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, key);
      // 转换换行符 给前端
      String valueN = values.getValue();
      String valueBr = valueN.replace("\n", "<br><br>");
      data.put("helpLink", configService.getValue(ConfigKeyEnum.inviteHelpLink.getKey(),acceptData.getSystem()));
      data.put("inviteRules", valueBr);
      out.print(JsonUtil.loadTrue(0, JsonUtil.getSimpleGson().toJson(data), "成功"));
   }
   /**
    * 邀请激活-特别提示语
    *
    * @param callback
    * @param out
    */
   @RequestMapping(value = "getActivationTip")
   public void getActivationTip(AcceptData acceptData, String callback, PrintWriter out) {
      try {
         String tip = configService.getValue(ConfigKeyEnum.inviteActivationTip.getKey(),acceptData.getSystem());
         if (tip == null || tip.trim().length() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无提醒"));
            return;
         }
         JSONObject data = new JSONObject();
         data.put("tip", tip);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取失败"));
         e.printStackTrace();
      }
   }
   /**
    * 激活邀请
    *
    * @param callback
    * @param uid
    *            用户id
    * @param inviteCode
    *            邀请嘛
    * @param out
    */
   @RequestSerializableByKey(key = "'activationInvite-'+#uid")
   @RequestMapping(value = "activationInvite")
   public void activationInvite(AcceptData acceptData, String callback, Long uid, String inviteCode, PrintWriter out) {
      try {
         if (uid == null || inviteCode == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
            return;
         }
         String newCode = userInfoExtraService.activateInviteCode(uid, inviteCode);
         if (newCode == null || newCode.trim().length() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("激活失败"));
            return;
         }
         if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
            String myInviteCode = userInfoExtraService.getInviteCodeByUid(uid);
            JSONObject data = new JSONObject();
            data.put("inviteCode", myInviteCode);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
         } else
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("邀请码激活成功"));
      } catch (UserInfoExtraException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("激活失败"));
         e.printStackTrace();
      }
   }
   /**
    * 激活邀请
    *
    * @param uid
    *            用户id
    *            邀请嘛
    * @param out
    */
   @RequestSerializableByKey(key = "'activationInviteWX-'+#uid")
   @RequestMapping(value = "activationInviteWX")
   public void activationInviteWX(AcceptData acceptData, Long uid, String code, PrintWriter out) {
      try {
         userInfoExtraService.activationInviteWX(
               Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion()), uid, code);
         if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
            String myInviteCode = userInfoExtraService.getInviteCodeByUid(uid);
            JSONObject data = new JSONObject();
            data.put("inviteCode", myInviteCode);
            JsonUtil.printMode(out, "", JsonUtil.loadTrueResult(data));
         } else
            out.print(JsonUtil.loadTrueResult("邀请码激活成功"));
      } catch (UserInfoExtraException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("邀请码激活失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取邀请码
    *
    * @param callback
    * @param uid
    *            用户id
    * @param out
    */
   @RequestMapping(value = "getInviteCode")
   public void getInviteCode(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
            return;
         }
         String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
         if (StringUtil.isNullOrEmpty(inviteCode)) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("邀请码不存在"));
            return;
         }
         String tip = configService.getValue(ConfigKeyEnum.inviteActivationSuccessTip.getKey(),acceptData.getSystem());
         JSONObject data = new JSONObject();
         data.put("inviteCode", inviteCode);
         data.put("tip", tip);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取邀请短连接
    *
    * @param callback
    * @param uid
    *            用户id
    * @param out
    */
   @RequestMapping(value = "getShortLink")
   public void getShortLink(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
            return;
         }
         String inviteShortLink = redisManager.getInviteShortLink(uid);
         if (inviteShortLink != null && inviteShortLink.trim().length() > 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请1分钟后再试"));
            return;
         }
         String shortLink = UserUtil.getInviteShortLink(uid);
         // 缓存1分钟
         redisManager.setInviteShortLink(uid, shortLink);
         JSONObject data = new JSONObject();
         data.put("shortLink", shortLink);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("生成短连接失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取邀请电话号码
    *
    * @param callback
    * @param uid
    *            用户id
    * @param out
    */
   @RequestMapping(value = "getUserPhone")
   public void getUserPhone(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
            return;
         }
         UserInfo userInfo = userInfoService.selectByPKey(uid);
         if (userInfo == null || userInfo.getPhone() == null || userInfo.getPhone().trim().length() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂未绑定电话号码"));
            return;
         }
         JSONObject data = new JSONObject();
         data.put("phone", userInfo.getPhone());
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取用户邀请上级
    *
    * @param callback
    * @param uid
    * @param out
    */
   @RequestMapping(value = "getUserBoss")
   public void getUserBoss(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
      if (uid == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
         return;
      }
      try {
         ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
         if (threeSale == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "无上级邀请人"));
            return;
         }
         UserInfo boss = threeSale.getBoss();
         if (boss == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("上级邀请人获取失败"));
            return;
         }
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
         Long createTime = threeSale.getCreateTime();
         Date inviteTime = new Date(createTime);
         JSONObject data = new JSONObject();
         data.put("nickName", boss.getNickName());
         data.put("portrait", boss.getPortrait());
         data.put("inviteTime", sdf.format(inviteTime));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
         e.printStackTrace();
      }
   }
}