admin
2019-05-16 4114e871bcb3dce771b6aed64a1027d0bbb95ca6
fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
@@ -1,5 +1,6 @@
package com.yeshi.fanli.controller.client;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
@@ -21,6 +22,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.multipart.MultipartFile;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.IPUtil;
import org.yeshi.utils.JsonUtil;
@@ -66,6 +68,7 @@
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.user.UserCustomSettingsException;
import com.yeshi.fanli.exception.user.UserInfoException;
import com.yeshi.fanli.exception.user.UserInfoExtraException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.AdminUserService;
@@ -85,6 +88,7 @@
import com.yeshi.fanli.service.inter.user.BindingAccountService;
import com.yeshi.fanli.service.inter.user.ExtractRecordService;
import com.yeshi.fanli.service.inter.user.ExtractService;
import com.yeshi.fanli.service.inter.user.MaskKeyService;
import com.yeshi.fanli.service.inter.user.ShamUserService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
import com.yeshi.fanli.service.inter.user.UserAccountService;
@@ -201,6 +205,10 @@
   @Resource
   private AccountMessageService accountMessageService;
   @Resource
   private MaskKeyService maskKeyService;
   private static final String PASSWORD_MAX_ERROR = "password_max_error";
   private static final String EXTRACT_MIN_MONEY = "extract_min_money";
@@ -573,10 +581,20 @@
      data.put("moduleState", mySettings);
      int welfareCenterNews = 0;
      String invitCode = null;
      UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(user.getId());
      if (userInfoExtra != null && userInfoExtra.getCouponNews() != null) {
         welfareCenterNews = userInfoExtra.getCouponNews();
      if (userInfoExtra != null) {
         if (userInfoExtra.getCouponNews() != null) {
            welfareCenterNews = userInfoExtra.getCouponNews();
         }
         if (userInfoExtra.getInviteCode() != null && userInfoExtra.getInviteCode().trim().length() > 0) {
            invitCode = userInfoExtra.getInviteCode();
         }
      }
      // 邀请码
      data.put("invitCode", invitCode);
      // 福利中心消息
      data.put("welfareCenterNews", welfareCenterNews);
      out.print(JsonUtil.loadTrueResult(data));
@@ -1040,7 +1058,6 @@
      return;
   }
   /**
    * 新版提现
    * 
@@ -1146,13 +1163,17 @@
               } catch (UnsupportedEncodingException e) {
                  e.printStackTrace();
               }
               AdminUser adminUser = adminUserService.selectByPrimaryKey(4L);
               long[] targetUids = new long[] { 3L, 4L };
               Config config = configService.getConfig("extract_code_email_from");
               String[] sts = config.getValue().split(",");
               String account = sts[0];
               String pwd = sts[1];
               String msg = "提现审核链接:" + url;
               boolean isS = MailSenderUtil.sendEmail(adminUser.getEmail(), account, pwd, "有新的提现审核", msg);
               for (long adminId : targetUids) {
                  AdminUser adminUser = adminUserService.selectByPrimaryKey(adminId);
                  String msg = "提现审核链接:" + url;
                  boolean isS = MailSenderUtil.sendEmail(adminUser.getEmail(), account, pwd, "有新的提现审核", msg);
               }
            }
         });
         return;
@@ -1162,6 +1183,10 @@
         out.print(JsonUtil.loadFalseResult("已超过当日提现金额"));
      } else if (etype == 3) {
         out.print(JsonUtil.loadFalseResult("提现金额大于我的红包"));
      } else if (etype == 111) {
         out.print(JsonUtil.loadFalseResult("更换了手机号后7天内不允许提现"));
      } else if (etype == 110) {
         out.print(JsonUtil.loadFalseResult(Constant.znxConfig.getExtractWrongMsg()));
      }
   }
@@ -1576,9 +1601,9 @@
         JSONObject resultData = new JSONObject();
         if (type == 1) {
            resultData = threeSaleSerivce.getMyFirstTeam((page - 1) * pageSize, pageSize, uid);
            resultData = threeSaleSerivce.getMyFirstTeam((page - 1) * pageSize, pageSize, uid, null);
         } else if (type == 2) {
            resultData = threeSaleSerivce.getMySecondTeam((page - 1) * pageSize, pageSize, uid);
            resultData = threeSaleSerivce.getMySecondTeam((page - 1) * pageSize, pageSize, uid, null);
         }
         // 安卓系统返回所有数据
@@ -1636,6 +1661,78 @@
         e.printStackTrace();
      }
   }
   /**
    * 用户队员列表查询 1.5.3查询有效队员
    *
    * @param acceptData
    * @param id
    * @param out
    */
   @RequestMapping(value = "getMyTeamNew", method = RequestMethod.POST)
   public void getMyTeamNew(AcceptData acceptData, long page, long uid, long type, PrintWriter out) {
      try {
         int pageSize = Constant.PAGE_SIZE;
         JSONObject resultData = new JSONObject();
         if (type == 1) {
            resultData = threeSaleSerivce.getMyFirstTeam((page - 1) * pageSize, pageSize, uid, 1);
         } else if (type == 2) {
            resultData = threeSaleSerivce.getMySecondTeam((page - 1) * pageSize, pageSize, uid, 1);
         }
         // 安卓系统返回所有数据
         String platform = acceptData.getPlatform();
         if ("android".equalsIgnoreCase(platform)) {
            long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
            long secondTeam = threeSaleSerivce.countSecondTeam(uid, 1);
            JSONObject bossData = null;
            ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
            if (threeSale != null) {
               bossData = new JSONObject();
               UserInfo boss = threeSale.getBoss();
               if (boss != null) {
                  bossData.put("nickName", boss.getNickName());
                  bossData.put("portrait", boss.getPortrait());
               }
               SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
               Long createTime = threeSale.getCreateTime();
               Date inviteTime = new Date(createTime);
               bossData.put("inviteTime", "邀请时间: " + sdf.format(inviteTime));
            }
            String helpLink = configService.get("team_help_url");
            if (helpLink == null) {
               helpLink = "";
            }
            boolean hasCode = false;
            String inviteCode = userInfoExtraService.getUserInviteCode(uid);
            if (inviteCode != null && inviteCode.trim().length() > 0) {
               hasCode = true; // 已有邀请码
            } else {
               // 邀请激活链接
               resultData.put("activationlink", configService.get("invite_activation_url"));
            }
            resultData.put("hasCode", hasCode);
            resultData.put("helpLink", helpLink);
            resultData.put("firstTeam", firstTeam);
            resultData.put("secondTeam", secondTeam);
            resultData.put("boss", bossData);
         }
         out.print(JsonUtil.loadTrueResult(resultData));
      } catch (UserInfoExtraException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("统计失败"));
         e.printStackTrace();
      }
   }
   /**
@@ -1909,4 +2006,232 @@
         e.printStackTrace();
      }
   }
   /**
    * 获取用户信息
    *
    * @param acceptData
    * @param form
    * @param requst
    * @param out
    */
   @RequestMapping(value = "getuserinfoNew", method = RequestMethod.POST)
   public void getuserinfoNew(AcceptData acceptData, Long uid, HttpServletRequest requst, PrintWriter out) {
      try {
         BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
               acceptData.getPackages());
         if (system == null) {
            out.print(JsonUtil.loadFalseResult("系统不存在"));
            return;
         }
         if (uid == null) {
            out.print(JsonUtil.loadFalseResult("请求参数为空"));
            return;
         }
         UserInfo userInfo = userInfoService.getUserInfo(uid);
         // 添加用户活跃记录
         UserActiveLog userActiveLog = new UserActiveLog();
         userActiveLog.setChannel(acceptData.getChannel());
         userActiveLog.setIp(requst.getRemoteHost());
         userActiveLog.setUid(userInfo.getId());
         userActiveLog.setVersionCode(acceptData.getVersion());
         userActiveLog.setOsVersion(acceptData.getOsVersion());
         userActiveLog.setDeviceType(acceptData.getDeviceType());
         userActiveLogService.addUserActiveLog(userActiveLog);
         // 处理用户信息
         outUserInfoHandle(userInfo);
         GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
         JSONObject data = new JSONObject();
         data.put("user", JsonUtil.getConvertBigDecimalToStringBuilder(gsonBuilder).create().toJson(userInfo));
         // 界面状态
         UserSettingsVO mySettings = null;
         try {
            mySettings = userCustomSettingsService.getMySettings(uid);
         } catch (UserCustomSettingsException e) {
            mySettings = new UserSettingsVO();
            e.printStackTrace();
         }
         if (mySettings.getCancelNotice() == null) {
            mySettings.setCancelNotice(0);
         }
         if (mySettings.getNoBonusCount() == null) {
            mySettings.setNoBonusCount(0);
         }
         if (mySettings.getNoNewsRedDot() == null) {
            mySettings.setNoNewsRedDot(0);
         }
         if (mySettings.getNoShareRecordAndStorage() == null) {
            mySettings.setNoShareRecordAndStorage(0);
         }
         if (mySettings.getNoInvitationBonus() == null) {
            mySettings.setNoInvitationBonus(0);
         }
         data.put("moduleState", mySettings);
         int welfareCenterNews = 0;
         String invitCode = null;
         UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
         if (userInfoExtra != null) {
            if (userInfoExtra.getCouponNews() != null) {
               welfareCenterNews = userInfoExtra.getCouponNews();
            }
            if (userInfoExtra.getInviteCode() != null && userInfoExtra.getInviteCode().trim().length() > 0) {
               invitCode = userInfoExtra.getInviteCode();
            }
            if (userInfoExtra.getUserRank() != null) {
               String picture = userInfoExtra.getUserRank().getPicture();
               String icon = userInfoExtra.getUserRank().getIcon();
               userInfo.setRankNamePicture(picture);
               userInfo.setRankIcon(icon);
            } else {
               userInfo.setRankNamePicture(null);
               userInfo.setRankIcon(null);
            }
         }
         data.put("invitCode", invitCode); // 邀请码
         data.put("welfareCenterNews", welfareCenterNews);// 福利中心消息
         out.print(JsonUtil.loadTrueResult(data));
         final UserInfo uuser = userInfo;
         ThreadUtil.run(new Runnable() {
            public void run() {
               try {
                  // 获取邀请码:若无邀请码且存在有效的队员关系 则自动生成邀请码
                  userInfoExtraService.getUserInviteCode(uuser.getId());
               } catch (UserInfoExtraException e) {
                  e.printStackTrace();
               }
               // 更新用户附加信息,老用户不存在的需要添加
               try {
                  userInfoExtraService.updateUserRankByUid(uuser.getId());
               } catch (UserInfoExtraException e) {
                  e.printStackTrace();
               }
            }
         });
      } catch (UserInfoException e) {
         out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("获取失败"));
         e.printStackTrace();
      }
   }
   private void outUserInfoHandle(UserInfo user) {
      // 红包处理
      user.setTotalHongBao(new BigDecimal(0));
      user.setNoOpenHongBao(new BigDecimal(0));
      user.setCanOpenHongBao(new BigDecimal(0));
      // 电话号码处理
      if (!StringUtil.isNullOrEmpty(user.getPhone())) {
         if (user.getPhone().length() > 5) {
            String phone = user.getPhone().substring(0, 3);
            phone += "******";
            phone += user.getPhone().substring(user.getPhone().length() - 2, user.getPhone().length());
            user.setPhone(phone);
         }
      }
      UserInfoExtraVO userInfoExtra = userInfoExtraService.getInfoExtraVOByUid(user.getId());
      if (userInfoExtra != null && userInfoExtra.getUserRank() != null) {
         String picture = userInfoExtra.getUserRank().getPicture();
         String icon = userInfoExtra.getUserRank().getIcon();
         user.setRankNamePicture(picture);
         user.setRankIcon(icon);
      }
   }
   /**
    * 用户更换头像
    * @param acceptData
    * @param fileList
    * @param uid
    * @param request
    * @param out
    */
   @RequestMapping(value = "uploadPortrait")
   public void uploadPortrait(AcceptData acceptData, MultipartFile file, Long uid, HttpServletRequest request, PrintWriter out) {
      try {
         if (uid == null) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
         }
         if (file == null) {
            out.print(JsonUtil.loadFalseResult("上传文件不能为空"));
            return;
         }
         long fileSize = file.getSize() / 1024 + 1;
         if (fileSize > 200) {
            out.print(JsonUtil.loadFalseResult("上传文件不能大于200kb"));
            return;
         }
         userInfoService.uploadPortrait(file, uid);
         out.print(JsonUtil.loadTrueResult("保存成功"));
      } catch (UserInfoException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
         e.printStackTrace();
      } catch (IOException e) {
         out.print(JsonUtil.loadFalseResult("图片上传失败失败"));
         e.printStackTrace();
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("保存失败"));
         e.printStackTrace();
      }
   }
   /**
    * 更换昵称
    * @param acceptData
    * @param nickName
    * @param uid
    * @param out
    */
   @RequestMapping(value = "saveInfo")
   public void saveInfo(AcceptData acceptData, String nickName, Long uid, PrintWriter out) {
      try {
         if (uid == null) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
         }
         if (StringUtil.isNullOrEmpty(nickName)) {
            out.print(JsonUtil.loadFalseResult("昵称不能为空"));
            return;
         }
         if (nickName.length() > 200) {
            out.print(JsonUtil.loadFalseResult("昵称过长"));
            return;
         }
         if(maskKeyService.examineContent(nickName)) {
            out.print(JsonUtil.loadFalseResult("不能包含敏感词汇"));
            return;
         }
         userInfoService.saveUserInfo(nickName, uid);
         out.print(JsonUtil.loadTrueResult("保存成功"));
      } catch (UserInfoException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
         e.printStackTrace();
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("保存失败"));
         e.printStackTrace();
      }
   }
}