package com.yeshi.fanli.controller.wxmp.v1;
|
|
import java.io.PrintWriter;
|
|
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.multipart.MultipartFile;
|
import org.yeshi.utils.JsonUtil;
|
import org.yeshi.utils.entity.wx.WXMPSessionInfo;
|
import org.yeshi.utils.wx.WXXCXUtil;
|
|
import com.yeshi.fanli.dto.WXMPAcceptData;
|
import com.yeshi.fanli.entity.accept.AcceptData;
|
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
|
import com.yeshi.fanli.exception.user.UserInfoException;
|
import com.yeshi.fanli.exception.user.UserInfoExtraException;
|
import com.yeshi.fanli.service.inter.user.MaskKeyService;
|
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.vip.UserVIPInfoService;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.StringUtil;
|
|
import net.sf.json.JSONObject;
|
|
@Controller("WXMPUserController")
|
@RequestMapping("/wxmp/api/v1/user")
|
public class UserController {
|
|
public final static String WXMP_SESSION_INFO_KEY = "WXMP-SESSION-INFO";
|
|
@Resource
|
private UserInfoExtraService userInfoExtraService;
|
|
@Resource
|
private MaskKeyService maskKeyService;
|
|
@Resource
|
private UserInfoService userInfoService;
|
|
@Resource
|
private UserInfoModifyRecordService userInfoModifyRecordService;
|
|
@Resource
|
private UserVIPInfoService userVIPInfoService;
|
|
/**
|
* 获取openId
|
*
|
* @param acceptData
|
* @param code
|
* @param out
|
*/
|
@RequestMapping("getOpenId")
|
public void getOpenId(WXMPAcceptData acceptData, String code, HttpSession session, PrintWriter out) {
|
if (StringUtil.isNullOrEmpty(code)) {
|
out.print(JsonUtil.loadFalseResult("code为空"));
|
return;
|
}
|
|
WXMPSessionInfo info = WXXCXUtil.getSessionInfo(Constant.WXMP_APP_INFO, code);
|
if (info != null) {
|
session.setAttribute(WXMP_SESSION_INFO_KEY, info);
|
JSONObject data = new JSONObject();
|
data.put("openId", info.getOpenId());
|
out.print(JsonUtil.loadTrueResult(data));
|
} else {
|
out.print(JsonUtil.loadFalseResult("openId获取失败"));
|
}
|
}
|
|
|
@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();
|
}
|
}
|
|
}
|