admin
2019-11-03 788deca1b4a24f8a24e49c24f7d89975a1d74bbe
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java
@@ -13,6 +13,7 @@
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.msg.UserSystemMsg;
import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum;
@@ -20,6 +21,8 @@
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.WeiXinUser;
import com.yeshi.fanli.exception.user.UserAccountException;
import com.yeshi.fanli.exception.user.UserInfoExtraException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
@@ -29,7 +32,10 @@
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.util.wx.WXLoginUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -38,6 +44,9 @@
@RequestMapping("api/v2/invite")
public class InviteControllerV2 {
   @Resource
   private RedisManager redisManager;
   @Resource
   private ConfigService configService;
@@ -79,25 +88,74 @@
   }
   /**
    * 邀请码微信
    * 邀请码微信验证
    * 
    * @param out
    */
   @RequestMapping(value = "verifyWX")
   public void verifyWX(AcceptData acceptData, Long uid, String code, PrintWriter out) {
      try {
         UserInfo userInfo = userInfoExtraService.getInviterInfo(
               Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion()), uid, code);
         WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
         // 获取微信信息
         WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
         if (weiXinUser == null)
            throw new UserInfoExtraException(1, "微信授权失败");
         String wxUnionId = weiXinUser.getUnionid();
         if (wxUnionId == null || wxUnionId.trim().length() == 0)
            throw new UserInfoExtraException(1, "微信授权失败");
         String activeWX = StringUtil.Md5("activeWX:" + weiXinUser.getUnionid());
         redisManager.cacheCommonString(activeWX, JsonUtil.getSimpleGson().toJson(weiXinUser), 60 * 20);
         // 邀请关系用户信息
         UserInfo userInfo = userInfoExtraService.getInviterInfo(uid, wxUnionId);
         JSONObject data = new JSONObject();
         data.put("nickName", userInfo.getNickName());
         data.put("portrait", userInfo.getPortrait());
         data.put("tips", "确认要成为TA的一级队员吗?邀请关系一旦建立不可更改。");
         data.put("key", activeWX);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (UserInfoExtraException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
      }
   }
   /**
    * 微信激活
    * @param acceptData
    * @param uid
    * @param key 验证返回的key
    * @param out
    */
   @RequestSerializableByKey(key = "'activeInviteWX-'+#uid")
   @RequestMapping(value = "activeInviteWX")
   public void activeInviteWX(AcceptData acceptData, Long uid, String key, PrintWriter out) {
      try {
         String value = redisManager.getCommonString(key);
         if (StringUtil.isNullOrEmpty(value))
            throw new UserAccountException(1, "微信授权失效");
         WeiXinUser weiXinUser = JsonUtil.getSimpleGson().fromJson(value, WeiXinUser.class);
         if (weiXinUser == null)
            throw new UserAccountException(1, "微信授权失效");
         userInfoExtraService.activeInviteWX(uid, weiXinUser);
         // 删除缓存
         redisManager.removeCommonString(key);
         out.print(JsonUtil.loadTrueResult("邀请码激活成功"));
      } catch (UserInfoExtraException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("邀请码激活失败"));
         e.printStackTrace();
      }
   }
   /**
    * 用户队员列表查询 1.5.3查询有效队员
    * 
@@ -207,7 +265,7 @@
               if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) {
                  object.put("weiXin", userInfoExtra.getWeiXin());
                  object.put("weiXinState", 3);
                  object.put("weiXinTip", "添加TA的微信,你可教授TA如何通过返利券赚钱技巧。");
                  object.put("weiXinTip", "添加TA的微信,你可教授TA如何通过板栗快省赚钱技巧。");
               } else {
                  if (!threeSaleExtraInfoSerivce.isRemindWorker(uid, workerId)) {
                     object.put("weiXinState", 1);
@@ -314,7 +372,7 @@
         if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) {
            bossData.put("weiXin", userInfoExtra.getWeiXin());
            bossData.put("weiXinState", 3);
            bossData.put("weiXinTip", "添加TA的微信,你可向TA学习如何通过返利券赚钱。");
            bossData.put("weiXinTip", "添加TA的微信,你可向TA学习如何通过板栗快省赚钱。");
         } else {
            if (!threeSaleExtraInfoSerivce.isRemindBoss(boss.getId(), uid)) {
               bossData.put("weiXinState", 1);