From 770a62920590cbb3dfda451cf28b9dc0329f2e0f Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期五, 13 三月 2020 15:18:45 +0800
Subject: [PATCH] 动态发圈商品更新问题
---
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java | 305 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 304 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..0e25b4c 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 {
@@ -26,6 +54,36 @@
@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 +110,249 @@
}
}
+ @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")
+ public void getuserinfoNew(WXMPAcceptData acceptData, Long uid, HttpServletRequest requst, PrintWriter out) {
+ try {
+ BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+ acceptData.getAppId());
+ 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("wxmp");
+ userActiveLog.setIp(requst.getRemoteHost());
+ userActiveLog.setUid(userInfo.getId());
+ userActiveLog.setVersionCode(acceptData.getVersion());
+ userActiveLog.setOsVersion(acceptData.getWxVersion());
+ userActiveLog.setDeviceType("wxmp");
+ userActiveLog.setDevice(acceptData.getDevice());
+ userActiveLogService.addUserActiveLog(userActiveLog);
+
+ // 澶勭悊鐢ㄦ埛淇℃伅
+ outUserInfoHandle(userInfo);
+ userInfo.setVip(userVIPInfoService.isVIP(uid));
+
+ 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);
+
+ 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