From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java | 307 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 306 insertions(+), 1 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java index 15ac0b7..46ae816 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java @@ -1,24 +1,52 @@ package com.yeshi.fanli.controller.wxmp.v1; import java.io.PrintWriter; +import java.math.BigDecimal; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; 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.JsonUtil; import org.yeshi.utils.entity.wx.WXMPSessionInfo; import org.yeshi.utils.wx.WXXCXUtil; +import com.google.gson.GsonBuilder; import com.yeshi.fanli.dto.WXMPAcceptData; +import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.user.ThreeSale; +import com.yeshi.fanli.entity.bus.user.UserActiveLog; +import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.UserInfoExtra; +import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum; +import com.yeshi.fanli.entity.system.BusinessSystem; +import com.yeshi.fanli.exception.user.UserInfoException; +import com.yeshi.fanli.exception.user.UserInfoExtraException; +import com.yeshi.fanli.service.inter.config.BusinessSystemService; +import com.yeshi.fanli.service.inter.config.ConfigService; +import com.yeshi.fanli.service.inter.user.MaskKeyService; +import com.yeshi.fanli.service.inter.user.UserActiveLogService; +import com.yeshi.fanli.service.inter.user.UserCustomSettingsService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; +import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService; +import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; +import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; +import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.ThreadUtil; +import com.yeshi.fanli.util.VersionUtil; +import com.yeshi.fanli.util.annotation.UserActive; +import com.yeshi.fanli.vo.user.UserInfoExtraVO; import net.sf.json.JSONObject; -@Controller +@Controller("WXMPUserController") @RequestMapping("/wxmp/api/v1/user") public class UserController { @@ -27,6 +55,37 @@ @Resource private UserInfoExtraService userInfoExtraService; + @Resource + private MaskKeyService maskKeyService; + + @Resource + private UserInfoService userInfoService; + + @Resource + private UserInfoModifyRecordService userInfoModifyRecordService; + + @Resource + private UserVIPInfoService userVIPInfoService; + + @Resource + private UserActiveLogService userActiveLogService; + + @Resource + private BusinessSystemService businessSystemService; + + @Resource + private UserCustomSettingsService userCustomSettingsService; + + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + @Resource + private ConfigService configService; + + @Resource + private UserVipConfigService userVipConfigService; + + /** * 鑾峰彇openId * @@ -52,4 +111,250 @@ } } + @RequestMapping(value = "saveInfo") + public void saveInfo(AcceptData acceptData, String nickName, String weiXin, Integer sex, Long uid, + String inviteCode, MultipartFile qrCodeFile, HttpServletRequest request, PrintWriter out) { + try { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + // 淇敼鏄电О + if (!StringUtil.isNullOrEmpty(nickName)) { + if (nickName.length() > 200) { + out.print(JsonUtil.loadFalseResult("鏄电О杩囬暱")); + return; + } + + if (maskKeyService.examineContent(nickName)) { + out.print(JsonUtil.loadFalseResult("涓嶈兘鍖呭惈鏁忔劅璇嶆眹")); + return; + } + userInfoService.saveUserInfo(nickName, uid); + + userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.nickName, nickName); + } + + // 淇敼寰俊鍙� + if (!StringUtil.isNullOrEmpty(weiXin)) { + if (weiXin.length() > 32) { + out.print(JsonUtil.loadFalseResult("寰俊鍙疯繃闀�")); + return; + } + + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra != null) { + UserInfoExtra extra = new UserInfoExtra(); + extra.setId(userInfoExtra.getId()); + extra.setWeiXin(weiXin); + userInfoExtraService.saveUserInfoExtra(extra); + + userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.setWeiXinNum, weiXin); + } + } + + // 淇敼鎬у埆 + if (sex != null && sex > 0 && sex < 3) { + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra != null) { + UserInfoExtra extra = new UserInfoExtra(); + extra.setId(userInfoExtra.getId()); + extra.setSex(sex); + userInfoExtraService.saveUserInfoExtra(extra); + + userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.gender, sex + ""); + } + } + + if (!StringUtil.isNullOrEmpty(inviteCode)) {// 閭�璇风爜涓嶄负绌� + inviteCode = inviteCode.trim(); + if (inviteCode.length() >= 4 && inviteCode.length() <= 12) { + + if (!userVIPInfoService.isVIP(uid)) { + out.print(JsonUtil.loadFalseResult(20, "鍙湁瓒呯骇浼氬憳鎵嶈兘淇敼")); + return; + } + + try { + userInfoExtraService.updateInviteCodeVip(inviteCode, uid); + out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛")); + return; + } catch (UserInfoExtraException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage())); + } + } else { + out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜蹇呴』涓�4鍒�12浣�")); + return; + } + } + + // 浜岀淮鐮� + if (qrCodeFile != null) { + userInfoExtraService.uploadERCode(qrCodeFile, 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(); + } + } + + 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 form + * @param requst + * @param out + */ + @UserActive(uid = "#uid") + @RequestMapping(value = "getUserInfo", 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()); + userActiveLog.setDevice(acceptData.getDevice()); + userActiveLogService.addUserActiveLog(userActiveLog); + + // 澶勭悊鐢ㄦ埛淇℃伅 + outUserInfoHandle(userInfo); + + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + JSONObject data = new JSONObject(); + + boolean tailor = false; + int welfareCenterNews = 0; + String invitCode = null; + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra != null) { + if (userInfoExtra.getCouponNews() != null) { + welfareCenterNews = userInfoExtra.getCouponNews(); + } + // vip閭�璇风爜浼樺厛 + if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip())) { + invitCode = userInfoExtra.getInviteCodeVip(); + } else if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) { + tailor = true; + 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); + } + + if (userInfoExtra.getSex() != null) + userInfo.setSex(userInfoExtra.getSex()); + + if (!StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) + userInfo.setWeiXin(userInfoExtra.getWeiXin()); + + // 浜岀淮鐮� + userInfo.setErCode(userInfoExtra.getErCode()); + } + // 鏄剧ず閭�璇风爜鐗瑰埗鍏ュ彛 + data.put("tailor", tailor); + + // 1.6.5 涔嬪悗杩斿洖 寰俊鍙锋彁绀� + if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) + userInfo.setWeiXinTip("娣诲姞寰俊鍙峰悗锛屼綘鐨勯個璇蜂汉鍜岀洿鎺ョ矇涓濆彲浠ラ�氳繃寰俊涓庝綘寤虹珛鑱旂郴銆�"); + + data.put("user", JsonUtil.getConvertBigDecimalToStringBuilder(gsonBuilder).create().toJson(userInfo)); + data.put("invitCode", invitCode); // 閭�璇风爜 + if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip())) + data.put("invitCodeUpdated", true);// 閭�璇风爜鏄惁宸茬粡淇敼杩� + else + data.put("invitCodeUpdated", false); + data.put("vipLink", userVipConfigService.getValueByKey("vip_link"));// 瓒呯骇浼氬憳鍗囩骇閾炬帴 + + if (!StringUtil.isNullOrEmpty(invitCode)) { + String bossName = ""; + ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid); + if (threeSale != null && threeSale.getBoss() != null) { + bossName = threeSale.getBoss().getNickName(); + } + data.put("bossName", bossName); + } + + out.print(JsonUtil.loadTrueResult(data)); + + final UserInfo uuser = userInfo; + ThreadUtil.run(new Runnable() { + public void run() { + // 鑾峰彇閭�璇风爜锛氳嫢鏃犻個璇风爜涓斿瓨鍦ㄦ湁鏁堢殑闃熷憳鍏崇郴 鍒欒嚜鍔ㄧ敓鎴愰個璇风爜 + userInfoExtraService.getInviteCodeByUid(uuser.getId()); + + // 鏇存柊鐢ㄦ埛闄勫姞淇℃伅锛岃�佺敤鎴蜂笉瀛樺湪鐨勯渶瑕佹坊鍔� + 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(); + } + } + } -- Gitblit v1.8.0