yujian
2019-03-14 4aadf484e193995c23ee1d5bb1971a497d2f9a0d
fanli/src/main/java/com/yeshi/fanli/controller/client/InviteGetMoneyController.java
@@ -3,6 +3,8 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
@@ -15,20 +17,27 @@
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.admin.InviteGetMoney;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.system.System;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.system.SystemClientParams;
import com.yeshi.fanli.exception.NotExistObjectException;
import com.yeshi.fanli.exception.banner.SwiperPictureException;
import com.yeshi.fanli.exception.user.UserInfoExtraException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.InviteGetMoneyService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.user.QrCodeService;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
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.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.account.UserUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -52,13 +61,7 @@
   private SystemClientParamsService systemClientParamsService;
   @Resource
   private QrCodeService qrCodeService;
   @Resource
   private SpreadUserImgService spreadUserImgService;
   @Resource
   private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
   @Resource
   private UserRankingsService userRankingsService;
@@ -68,10 +71,23 @@
   @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 {
         throws NotExistObjectException,UserInfoExtraException {
      // 查询商品总数
      Integer totalCount = 0;
      int totalPage = totalCount % Constant.PAGE_SIZE == 0 ? totalCount / Constant.PAGE_SIZE
@@ -128,7 +144,7 @@
      // 活动规则
      String key = "activityRules"; // key值
      com.yeshi.fanli.entity.system.System system = new System();
      BusinessSystem system = new BusinessSystem();
      system.setCreatetime(java.lang.System.currentTimeMillis());
      system.setPlatform(1);
      system.setId(4L);
@@ -156,6 +172,23 @@
      }
      data.put("desc", configService.get("invite_desc"));
      boolean hasCode = false;
      if (uid != null && uid.trim().length() > 0) {
         String inviteCode = userInfoExtraService.getUserInviteCode(Long.parseLong(uid));
         if (inviteCode != null && inviteCode.trim().length() > 0) {
            hasCode = true;   // 已有邀请码
         }
      }
      // 邀请激活链接
      if (!hasCode) {
         data.put("activationlink", configService.get("invite_activation_url"));
      }
      data.put("hasCode", hasCode);
      com.alibaba.fastjson.JSONObject root = new com.alibaba.fastjson.JSONObject();
      root.put("code", 0);
@@ -185,7 +218,7 @@
      // 邀请规则
      String key = "inviteRules"; // key值
      com.yeshi.fanli.entity.system.System system = new System();
      com.yeshi.fanli.entity.system.BusinessSystem system = new BusinessSystem();
      system.setCreatetime(java.lang.System.currentTimeMillis());
      system.setPlatform(1);
      system.setId(4L);
@@ -197,4 +230,203 @@
      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.get("invite_activation_tip");
         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
    */
   @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;
         }
         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 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;
         }
         UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
         if (userInfoExtra == null || userInfoExtra.getInviteCode() == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("邀请码不存在"));
            return;
         }
         String tip = configService.get("invite_activation_success_tip");
         JSONObject data = new JSONObject();
         data.put("inviteCode", userInfoExtra.getInviteCode());
         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();
      }
   }
}