Commit 94b1099c authored by 技术部-任文超's avatar 技术部-任文超

Merge branch '20180525-innerApi-update' into 'master'

20180525 inner api update

用户信息全量查询接口升级

See merge request !11
parents fbe49235 e0af3c19
......@@ -8,7 +8,11 @@ public enum IncomeEnum {
CASH("现金计算"),
PAY_CARD("工资卡"),
CASH_AND_PAY_CARD("混合");
private String desc;
public String getDesc() {
return desc;
}
IncomeEnum(String desc) {
this.desc = desc;
......
......@@ -15,6 +15,9 @@ public enum IncomeRangeEnum {
ABOVE_20000("大于20000元");
private String desc;
public String getDesc() {
return desc;
}
IncomeRangeEnum(String desc) {
this.desc = desc;
......
......@@ -28,6 +28,9 @@ import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
......@@ -102,7 +105,6 @@ public class InnerController implements IBaseController {
};
@RequestMapping("/user/search/phoneNo")
public JsonResult findByPhoneNo(String phoneNo) {
User user = userService.findByPhoneInDb(phoneNo);
if (user == null) {
......@@ -114,7 +116,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("", userRet);
}
@RequestMapping("/user/search/uuid")
public JsonResult findByUuid(String uuid) {
User user = userService.findByUuidWithCache(uuid);
......@@ -125,7 +126,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("", userRet);
}
@RequestMapping("/userInfo/search/uuid")
public JsonResult findUserInfoByUuid(@RequestParam(value = "uuid") String uuid) {
log.info("需要查询的用户uuidid, uuid:" + uuid);
......@@ -145,7 +145,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("", null);
}
@RequestMapping("/userInfo/search/phone")
public JsonResult findUserInfoByPhone(@RequestParam(value = "phone") String phone) {
log.info("需要查询的用户phone, phone:" + phone);
......@@ -165,7 +164,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("", null);
}
@RequestMapping("/user/getPhoneByUserIds")
public JsonResult findByIds(@RequestParam(value = "userIds") String userIdsString) {
log.info("批量查询用户的手机号列表, userIdsString:" + userIdsString);
......@@ -182,7 +180,6 @@ public class InnerController implements IBaseController {
}
}
@RequestMapping("/user/save")
public JsonResult saveUser(
String phoneNo, Long registeredFrom, Long createdAt, Long updatedAt,
......@@ -234,7 +231,6 @@ public class InnerController implements IBaseController {
* 保存用户详细信息
* 适用于:创建 或 修改
*/
@RequestMapping("/user_detail/save")
public JsonResult saveUserDetail(Long userId, String phoneNo, String name, String idNo,
String email, String qq) {
......@@ -305,7 +301,6 @@ public class InnerController implements IBaseController {
/**
* 根据用户id查询用户的详细信息
*/
@RequestMapping("/user_detail/search/userId")
public JsonResult findUserDetailByUserId(Long userId) {
UserDetail userDetail = null;
......@@ -319,7 +314,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, UserDetailRet.getUserDetail(userDetail));
}
@RequestMapping("/user/search/userId")
public JsonResult findUserByUserId(Long userId) {
User user = userService.findById(userId);
......@@ -329,7 +323,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildErrorStateResult("", null);
}
@RequestMapping("/user_detail/search/phone")
public JsonResult findUserDetailByPhone(String phoneNo) {
UserDetail userDetail = userDetailService.findByPhoneNo(phoneNo);
......@@ -345,7 +338,6 @@ public class InnerController implements IBaseController {
* @param phoneNo
* @return
*/
@RequestMapping("/user_full_info/search/phone")
public JsonResult findUserFullInfoByPhone(String phoneNo) {
if (StringUtils.isBlank(phoneNo)) {
......@@ -366,7 +358,6 @@ public class InnerController implements IBaseController {
* @param uuid
* @return
*/
@RequestMapping("/user_full_info/search/uuid")
public JsonResult findUserFullInfoByUUuid(String uuid) {
if (StringUtils.isBlank(uuid)) {
......@@ -389,7 +380,6 @@ public class InnerController implements IBaseController {
* @param userId - 用户主键
* @return
*/
@RequestMapping("/user_detail/update")
public JsonResult updateUserDetail(String qq, String email, Long userId) {
if (Objects.isNull(userId) || userId == 0L) {
......@@ -404,7 +394,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, null);
}
@RequestMapping("/user_detail/update/qq")
public JsonResult updateUserQQ(String qq, Long userId) {
if (StringUtils.isEmpty(qq) || userId == null || userId == 0L) {
......@@ -414,7 +403,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, null);
}
@RequestMapping("/contact/search/user_id")
public JsonResult findContactsByUserId(Long userId) {
if (null == userId) {
......@@ -427,7 +415,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, ContactRet.contacts2ContactRets(contacts));
}
@RequestMapping("/contact/save/contacts")
public JsonResult save2Contact(Long userId, @RequestParam(value = "contacts") String contactsStr) {
if (Objects.isNull(userId) || StringUtils.isBlank(contactsStr)) {
......@@ -451,7 +438,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("保存成功", ContactRet.contacts2ContactRets(result));
}
@RequestMapping("/contact/update/contact")
public JsonResult updateContact(@RequestParam Long contactId, @RequestParam(required = false) String name,
@RequestParam(required = false) String phoneNo,
......@@ -485,7 +471,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("修改联系人成功", contact);
}
@RequestMapping("/address/search/user_id")
public JsonResult findAddressByUserId(Long userId) {
if (userId == null) {
......@@ -498,7 +483,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, AddressRet.address2AddressRet(address));
}
@RequestMapping("/address/save")
public JsonResult saveAddress(
Long userId, Long provinceCode, Long cityCode, String city,
......@@ -532,7 +516,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, AddressRet.address2AddressRet(addressObj));
}
@RequestMapping("/user_ext_info/update")
public JsonResult updateMarryStatus(
Long userId, IncomeEnum incomeEnum, IncomeRangeEnum incomeRangeEnum,
......@@ -583,7 +566,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, UserExtInfoRet.getUserExtInfoRet(info));
}
@RequestMapping("/user_detail/search_list")
public JsonResult searchUserDetailList(String name, String phoneNo, String idNo) {
......@@ -615,7 +597,6 @@ public class InnerController implements IBaseController {
return JSON.parseObject(s, JsonResult.class);
}
@RequestMapping("/user_ext_info/search/user_id")
public JsonResult searchUserExtInfoByUserId(Long userId) {
if (userId == null) {
......@@ -628,7 +609,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, UserExtInfoRet.getUserExtInfoRet(userExtInfo));
}
@RequestMapping("/user/query/openId")
public JsonResult queryOpenIdByUserId(Long userId) {
if (userId == null) {
......@@ -654,7 +634,6 @@ public class InnerController implements IBaseController {
* 个人信息
* }
*/
@RequestMapping("/user-association/search")
public JsonResult findUserAssociationModel(Long id, String phoneNo, String uuid) {
User user = null;
......@@ -703,6 +682,7 @@ public class InnerController implements IBaseController {
bean.setName(userDetail.getName());
bean.setIdNo(userDetail.getIdNo());
bean.setQq(userDetail.getQq());
bean.setEmail(userDetail.getEmail());
bean.setGender(Optional.ofNullable(userDetail.getGender()).orElse(Gender.UNKNOWN).getName());
}
UserBtRegister userBtRegister = userBtRegisterService.findByUserId(user.getId());
......@@ -710,22 +690,25 @@ public class InnerController implements IBaseController {
bean.setMerchantId(userBtRegister.getRegisterBtMerchantId());
}
UserExtInfo extInfo = userExtInfoService.findByUserId(user.getId());
if (!Objects.isNull(extInfo)) {
if (null == extInfo.getEducationEnum()) {
bean.setEducationEnum(cn.quantgroup.user.enums.EducationEnum.UNKNOWN.getName());
} else {
bean.setEducationEnum(extInfo.getEducationEnum().getName());
}
if (null == extInfo.getOccupationEnum()) {
bean.setOccupationEnum(cn.quantgroup.user.enums.OccupationEnum.UNKNOWN.getName());
} else {
bean.setOccupationEnum(extInfo.getOccupationEnum().getName());
}
if (null == extInfo.getMarryStatus()) {
bean.setMarryStatus(cn.quantgroup.user.enums.MaritalStatus.UNKNOWN.getDescription());
} else {
bean.setMarryStatus(extInfo.getMarryStatus().getDescription());
}
if (Objects.nonNull(extInfo)) {
// 婚姻状态
bean.setMarryStatus(Optional.ofNullable(extInfo.getMarryStatus()).orElse(cn.quantgroup.user.enums.MaritalStatus.UNKNOWN).getDescription());
// 受教育程度
bean.setEducationEnum(Optional.ofNullable(extInfo.getEducationEnum()).orElse(cn.quantgroup.user.enums.EducationEnum.UNKNOWN).getName());
// 职业
bean.setOccupationEnum(Optional.ofNullable(extInfo.getOccupationEnum()).orElse(cn.quantgroup.user.enums.OccupationEnum.UNKNOWN).getName());
// 收入水平范围
bean.setIncomeRangeEnum(Optional.ofNullable(extInfo.getIncomeRangeEnum()).orElse(cn.quantgroup.user.enums.IncomeRangeEnum.UNKNOWN).getDesc());
// 收入方式
bean.setIncomeEnum(Optional.ofNullable(extInfo.getIncomeEnum()).orElse(cn.quantgroup.user.enums.IncomeEnum.UNKNOWN).getDesc());
// 是否有车
bean.setHasCar(Optional.ofNullable(extInfo.getHasCar()).orElse(false));
// 是否有社保
bean.setHasSocialSecurity(Optional.ofNullable(extInfo.getHasSocialSecurity()).orElse(false));
// 是否有房
bean.setHasHouse(Optional.ofNullable(extInfo.getHasHouse()).orElse(false));
// 是否有信用卡
bean.setHasCreditCard(Optional.ofNullable(extInfo.getHasCreditCard()).orElse(false));
}
Address address = addressService.findByUserId(user.getId());
if (!Objects.isNull(address)) {
......@@ -738,9 +721,15 @@ public class InnerController implements IBaseController {
return bean;
}
@RequestMapping("/user-association/search/userId")
public JsonResult findUserAssociationModelByUserId(Long userId, String phoneNo) {
@ApiResponses({
@ApiResponse(code = 200, message = "Nice!", responseContainer = "UserAssociationModel = {Long id, String uuid, String phoneNo, String idNo, String name, String gender, String marryStatus, String educationEnum, String occupationEnum, String qq, Long registerFrom, Long merchantId, List<AddressModel> addressList, List<ContactModel> contactList}"),
@ApiResponse(code = 400, message = "Invalid params supplied", response = cn.quantgroup.xyqb.model.ApiResponse.class),
@ApiResponse(code = 404, message = "User not found", response = cn.quantgroup.xyqb.model.ApiResponse.class)
})
@ApiOperation(notes = "用户全量信息查询接口", value = "用户全量信息查询接口", nickname = "findUserAssociationModel")
@RequestMapping(path = "/user-association/search/userId", method = {RequestMethod.GET, RequestMethod.POST})
public JsonResult findUserAssociationModelByUserId(@ApiParam(value = "用户ID", required = false) @RequestParam(name = "userId", required = false) Long userId,
@ApiParam(value = "用户注册手机号", required = false) @RequestParam(name = "phoneNo", required = false) String phoneNo) {
boolean userIdOk = Objects.nonNull(userId) && userId > 0;
boolean phoneNoOk = ValidationUtil.validatePhoneNo(phoneNo);
if (!userIdOk && !phoneNoOk) {
......@@ -754,7 +743,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("", bean);
}
@RequestMapping("/user-association/search/phone")
public JsonResult findUserAssociationByPhone(String phoneNo) {
UserDetail userDetail = userDetailService.findByPhoneNo(phoneNo);
......@@ -762,7 +750,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("", bean);
}
@RequestMapping("/user-association/search/uid")
public JsonResult findUserAssociationByUid(Long uid) {
UserDetail userDetail = userDetailService.findByUserId(uid);
......@@ -843,7 +830,6 @@ public class InnerController implements IBaseController {
return contactRets;
}
@RequestMapping("/user/wechat/phone_no")
public JsonResult queryOpenIdByPhoneNo(String phoneNo) {
if (StringUtils.isBlank(phoneNo)) {
......@@ -890,7 +876,6 @@ public class InnerController implements IBaseController {
* @param phoneNo
* @return
*/
@RequestMapping("/flush/cache")
public JsonResult flushCache(String phoneNo) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
......@@ -906,7 +891,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("用户缓存信息已经删除", null);
}
@RequestMapping("/user/spouse/save")
public JsonResult saveSpouse(Long userId, MaritalStatus status, String spousePhone, String spouseName) {
if (userId == null || userId == 0) {
......@@ -934,7 +918,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, UserSpouseRet.getUserSpouseRet(userSpouse));
}
@RequestMapping("/user/spouse/findByUserId")
public JsonResult querySpouse(Long userId) {
if (userId == null || userId == 0) {
......@@ -948,7 +931,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, UserSpouseRet.getUserSpouseRet(userSpouse));
}
@RequestMapping("/user/findByPhones")
public JsonResult getUserIdByPhones(@RequestParam("userPhones") String userPhones) {
if (StringUtils.isBlank(userPhones)) {
......@@ -976,7 +958,6 @@ public class InnerController implements IBaseController {
* @param userPhones
* @return
*/
@RequestMapping("/uuid/findByPhones")
public JsonResult getUuidsByPhones(@RequestParam("userPhones") String userPhones) {
......@@ -989,7 +970,6 @@ public class InnerController implements IBaseController {
* @author v0.2 jinsong.zhu 2018年05月16日14:22:13
* 保存用户信息,其中地址信息和联系人信息为非必要条件;注意:如果同时提供了province和address字段则需要保证Address的完整
*/
@RequestMapping("/user/save_multi")
public JsonResult saveMulti(
String registeredFrom,
......@@ -1078,7 +1058,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, userRet);
}
@RequestMapping("/user/register")
public JsonResult register(String phoneNo, String password, Long channelId) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
......@@ -1096,7 +1075,6 @@ public class InnerController implements IBaseController {
}
//根据日期时间段查询新注册用户信息并返回
@RequestMapping("/contract/queryRegisterUsers")
public JsonResult findRegisterUserByTime(String beginTime, String endTime) {
if (null == beginTime || endTime == null) {
......@@ -1137,7 +1115,6 @@ public class InnerController implements IBaseController {
* @param verificationCode 验证码(短信/语音)
* @return
*/
@RequestMapping("/verifyPhoneAndCode")
public JsonResult verifyPhoneAndCode(
@RequestParam String phoneNo, @RequestParam String verificationCode,
......@@ -1187,7 +1164,6 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult("校验成功", new UserRet(user));
}
@RequestMapping("/login")
public JsonResult login(@RequestParam String phoneNo, @RequestParam String password) {
User user = checkPhoneNoAndPassword(phoneNo, password);
......@@ -1234,7 +1210,6 @@ public class InnerController implements IBaseController {
* @param phoneNo
* @return
*/
@RequestMapping("/user/enable")
public JsonResult isEnable(String phoneNo) {
boolean flag = false;
......@@ -1257,7 +1232,6 @@ public class InnerController implements IBaseController {
* @param userId
* @return
*/
@ApiOperation(notes = "激活/启用 用户 - 供内部系统免密调用", value = "激活/启用 用户", nickname = "activeUser")
@RequestMapping(path = "/user/active", method = RequestMethod.POST)
public JsonResult activeUser(Long userId) {
......@@ -1273,7 +1247,6 @@ public class InnerController implements IBaseController {
* @param userId
* @return
*/
@ApiOperation(notes = "注销/禁用 用户 - 供内部系统免密调用", value = "注销/禁用 用户", nickname = "forbiddenUser")
@RequestMapping(path = "/user/disable", method = RequestMethod.POST)
public JsonResult forbiddenUser(Long userId) {
......@@ -1290,7 +1263,6 @@ public class InnerController implements IBaseController {
* @param idNo - 身份证号
* @param name - 姓名
*/
@ApiOperation(notes = "重置用户实名信息接口 - 供内部系统免密调用", value = "重置用户实名信息", nickname = "resetName")
@RequestMapping(path = "/userDetail/reset/{userId}", method = RequestMethod.POST)
public JsonResult resetName(@PathVariable("userId") Long userId, @RequestParam("name") String name, @RequestParam("idNo") String idNo) {
......@@ -1314,7 +1286,6 @@ public class InnerController implements IBaseController {
* 重置密码接口
* -- 供内部系统免密调用
*/
@ApiOperation(notes = "重置密码接口 - 供内部系统免密调用", value = "重置密码", nickname = "resetPassword")
@RequestMapping(path = "/user/password/reset", method = RequestMethod.POST)
public JsonResult resetPassword(@RequestParam("phone") String phone) {
......@@ -1338,7 +1309,6 @@ public class InnerController implements IBaseController {
* 修改实名信息接口
* -- 供内部人员使用(例如绝影)
*/
@RequestMapping("/updateIdCard")
public JsonResult updateIdCard(@RequestParam(required = false) String name, @RequestParam(required = false) String idNo,
@RequestParam String phoneNo, @RequestParam String reason, @RequestParam String content) {
......@@ -1369,7 +1339,6 @@ public class InnerController implements IBaseController {
* 重置密码接口
* -- 供内部人员使用(例如绝影)
*/
@RequestMapping("/user/password/reset/{key}/{phone}")
public JsonResult resetPasswordByKey(@PathVariable("key") String key, @PathVariable("phone") String phone) {
log.info("密码重置请求,phone:[{}]", phone);
......@@ -1390,7 +1359,6 @@ public class InnerController implements IBaseController {
* @param content
* @return
*/
@RequestMapping("/forbiddenUserOrNot")
public JsonResult forbiddenUserOrNot(@RequestParam String phoneNo, @RequestParam Boolean enable,
@RequestParam String reason, @RequestParam String content) {
......@@ -1424,7 +1392,6 @@ public class InnerController implements IBaseController {
* @param content
* @return
*/
@RequestMapping("/forbiddenUserWeChat")
public JsonResult forbiddenUserWeChat(@RequestParam Long userId, @RequestParam String reason, @RequestParam String content) {
if (StringUtils.isBlank(reason) || null == userId || userId <= 0) {
......
/**
* Copyright 2016 SmartBear Software
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.quantgroup.xyqb.model;
import javax.xml.bind.annotation.XmlTransient;
@javax.xml.bind.annotation.XmlRootElement
public class ApiResponse {
public static final int ERROR = 1;
public static final int WARNING = 2;
public static final int INFO = 3;
public static final int OK = 4;
public static final int TOO_BUSY = 5;
int code;
String type;
String message;
public ApiResponse(){}
public ApiResponse(int code, String message){
this.code = code;
switch(code){
case ERROR:
setType("error");
break;
case WARNING:
setType("warning");
break;
case INFO:
setType("info");
break;
case OK:
setType("ok");
break;
case TOO_BUSY:
setType("too busy");
break;
default:
setType("unknown");
break;
}
this.message = message;
}
@XmlTransient
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
package cn.quantgroup.xyqb.model;
import cn.quantgroup.user.enums.EducationEnum;
import cn.quantgroup.user.enums.IncomeEnum;
import cn.quantgroup.user.enums.IncomeRangeEnum;
import cn.quantgroup.user.enums.OccupationEnum;
import cn.quantgroup.xyqb.entity.Address;
import cn.quantgroup.xyqb.entity.Contact;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
......@@ -24,12 +29,28 @@ public class UserAssociationModel implements Serializable {
private String idNo;
private String name;
private String gender;
private String marryStatus;
private String educationEnum;
private String occupationEnum;
private String qq;
private String email;
private Long registerFrom;
private Long merchantId;
// 婚姻状态
private String marryStatus;
// 受教育程度
private String educationEnum;
// 职业
private String occupationEnum;
// 收入水平范围
private String incomeRangeEnum;
// 收入方式
private String incomeEnum;
// 是否有车
private Boolean hasCar;
// 是否有社保
private Boolean hasSocialSecurity;
// 是否有房
private Boolean hasHouse;
// 是否有信用卡
private Boolean hasCreditCard;
private List<AddressModel> addressList;
private List<ContactModel> contactList;
......
Merchant merchant = merchantService.findMerchantByName(systemKey);
AccessTokenResponse token = wechatService.getToken(code);
if (token == null) {
// 让用户登录,不关联微信, 构造不关联微信的url
redirectNormalUrl(response, merchant, registerFrom,protocol);
return;
}
WechatUserInfo userInfo =
wechatService.getWechatUserInfoFromWechatServer(token.getAccessToken(),
token.getOpenId());
if (userInfo == null || StringUtils.isEmpty(userInfo.getOpenId())) {
// 让用户登录,不关联微信, 构造不关联微信的url
redirectNormalUrl(response, merchant, registerFrom,protocol);
return;
}
WechatUserInfo userInfoInDb = wechatService.findWechatUserInfoFromDb(userInfo.getOpenId());
// welcome 首次登录
if (userInfoInDb == null) {
// 微信用户首次登录界面, 首先保存userInfo, 跳入到微信注册登录界面
if (StringUtils.isNotBlank(userInfo.getNickName())) {
String nickName = EmojiUtil.filter(userInfo.getNickName());
userInfo.setNickName(nickName);
}
userInfo = wechatService.saveWechatUserInfo(userInfo);
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfo, registerFrom,protocol);
return;
}
if (userInfoInDb.getUserId() == null) {
// 用户已经微信登录了,但是没有关联信用钱包,跳转到注册页面
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfoInDb, registerFrom,protocol);
return;
}
User user = userService.findById(userInfoInDb.getUserId());
if (user == null) {
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfoInDb, registerFrom,protocol);
return;
}
// 已经关联了用户
// create session, 登进去,该怎么玩怎么玩。
String redirectUrl = createUserSession(user, merchant, redirect, schema, registerFrom);
LOGGER.info("Location:[{}]",redirectUrl);
response.setHeader("Location", redirectUrl);
response.setStatus(301);
\ No newline at end of file
// 从code获取token
Merchant merchant = merchantService.findMerchantByName(systemKey);
AccessTokenResponse token = wechatService.getToken(code);
if (token == null) {
// 让用户登录,不关联微信, 构造不关联微信的url
redirectNormalUrl(response, merchant, Constants.Channel.WECHAT,domain);
return;
}
WechatUserInfo userInfo =
wechatService.getWechatUserInfoFromWechatServer(token.getAccessToken(),
token.getOpenId());
if (userInfo == null || StringUtils.isEmpty(userInfo.getOpenId())) {
// 让用户登录,不关联微信, 构造不关联微信的url
redirectNormalUrl(response, merchant, Constants.Channel.WECHAT,domain);
return;
}
WechatUserInfo userInfoInDb =
wechatService.findWechatUserInfoFromDb(userInfo.getOpenId());
// welcome 首次登录
if (userInfoInDb == null) {
// 微信用户首次登录界面, 首先保存userInfo, 跳入到微信注册登录界面
if (StringUtils.isNotBlank(userInfo.getNickName())) {
String nickName = EmojiUtil.filter(userInfo.getNickName());
userInfo.setNickName(nickName);
}
userInfo = wechatService.saveWechatUserInfo(userInfo);
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfo,
Constants.Channel.WECHAT,domain);
return;
}
if (userInfoInDb.getUserId() == null) {
// 用户已经微信登录了,但是没有关联信用钱包,跳转到注册页面
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfoInDb,
Constants.Channel.WECHAT,domain);
return;
}
User user = userService.findById(userInfoInDb.getUserId());
if (user == null) {
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfoInDb,
Constants.Channel.WECHAT,domain);
return;
}
// 已经关联了用户
// create session, 登进去,该怎么玩怎么玩。
String redirectUrl =
createUserSession(user, merchant, "", schema, Constants.Channel.WECHAT);
response.setHeader("Location", redirectUrl);
response.setStatus(301);
return;
\ No newline at end of file
try {
String schema = getProtocol();
String domain = userUiDomain;
if(Objects.equals(schema, "https:")){
domain = userUiDomainS;
}
try {
extData = new String(Base64.decodeBase64(extData), "UTF-8");
} catch (Exception ex) {
extData = "";
}
LOGGER.info("从微信extdata版本接口进入:{}, extData:{}", schema, extData);
if (StringUtils.isEmpty(extData)) {
// 从code获取token
Merchant merchant = merchantService.findMerchantByName(systemKey);
AccessTokenResponse token = wechatService.getToken(code);
if (token == null) {
// 让用户登录,不关联微信, 构造不关联微信的url
redirectNormalUrl(response, merchant, Constants.Channel.WECHAT,domain);
return;
}
WechatUserInfo userInfo =
wechatService.getWechatUserInfoFromWechatServer(token.getAccessToken(),
token.getOpenId());
if (userInfo == null || StringUtils.isEmpty(userInfo.getOpenId())) {
// 让用户登录,不关联微信, 构造不关联微信的url
redirectNormalUrl(response, merchant, Constants.Channel.WECHAT,domain);
return;
}
WechatUserInfo userInfoInDb = wechatService.findWechatUserInfoFromDb(userInfo.getOpenId());
// welcome 首次登录
if (userInfoInDb == null) {
// 微信用户首次登录界面, 首先保存userInfo, 跳入到微信注册登录界面
if (StringUtils.isNotBlank(userInfo.getNickName())) {
String nickName = EmojiUtil.filter(userInfo.getNickName());
userInfo.setNickName(nickName);
}
userInfo = wechatService.saveWechatUserInfo(userInfo);
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfo,
Constants.Channel.WECHAT,domain);
return;
}
if (userInfoInDb.getUserId() == null) {
// 用户已经微信登录了,但是没有关联信用钱包,跳转到注册页面
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfoInDb,
Constants.Channel.WECHAT,domain);
return;
}
User user = userService.findById(userInfoInDb.getUserId());
if (user == null) {
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfoInDb,
Constants.Channel.WECHAT,domain);
return;
}
// 已经关联了用户
// create session, 登进去,该怎么玩怎么玩。
String redirectUrl =
createUserSession(user, merchant, "", schema, Constants.Channel.WECHAT);
response.setHeader("Location", redirectUrl);
response.setStatus(301);
} else {
HashMap<String, Object> extDataObj;
try {
extDataObj = JSON.parseObject(extData, new TypeReference<HashMap<String, Object>>(){});
} catch (Exception ex) {
LOGGER.error("解析extData发生错误", ex);
}
schema = extDataObj.getOrDefault("protocol", "http:").toString();
domain = userUiDomain;
if(Objects.equals(schema, "https:")){
domain = userUiDomainS;
}
LOGGER.info("从微信登录extData中获得协议信息,protocol:{}", schema);
Long registerFrom = Long.valueOf(extDataObj.getOrDefault("registerFrom", "1").toString());
String redirect = (String) extDataObj.getOrDefault("redirect", "redirect");
LOGGER.info("从微信登录,registerFrom:{}, redirect:{}", registerFrom, redirect);
}
} catch (Exception ex) {
LOGGER.error("发生异常", ex);
throw ex;
}
\ No newline at end of file
// 从code获取token
Merchant merchant = merchantService.findMerchantByName(systemKey);
AccessTokenResponse token = wechatService.getToken(code);
if (token == null) {
// 让用户登录,不关联微信, 构造不关联微信的url
redirectNormalUrl(response, merchant, Constants.Channel.WECHAT, domain);
return;
}
WechatUserInfo userInfo = wechatService.getWechatUserInfoFromWechatServer(token.getAccessToken(), token.getOpenId());
if (userInfo == null || StringUtils.isEmpty(userInfo.getOpenId())) {
// 让用户登录,不关联微信, 构造不关联微信的url
redirectNormalUrl(response, merchant, Constants.Channel.WECHAT, domain);
return;
}
WechatUserInfo userInfoInDb = wechatService.findWechatUserInfoFromDb(userInfo.getOpenId());
// welcome 首次登录
if (userInfoInDb == null) {
// 微信用户首次登录界面, 首先保存userInfo, 跳入到微信注册登录界面
if (StringUtils.isNotBlank(userInfo.getNickName())) {
String nickName = EmojiUtil.filter(userInfo.getNickName());
userInfo.setNickName(nickName);
}
userInfo = wechatService.saveWechatUserInfo(userInfo);
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfo, Constants.Channel.WECHAT, domain);
return;
}
if (userInfoInDb.getUserId() == null) {
// 用户已经微信登录了,但是没有关联信用钱包,跳转到注册页面
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfoInDb, Constants.Channel.WECHAT, domain);
return;
}
User user = userService.findById(userInfoInDb.getUserId());
if (user == null) {
redirectWechatLoginUrlWithoutLogin(response, merchant, userInfoInDb, Constants.Channel.WECHAT, domain);
return;
}
// 已经关联了用户
// create session, 登进去,该怎么玩怎么玩。
String redirectUrl = createUserSession(user, merchant, "", schema, Constants.Channel.WECHAT);
LOGGER.info("HTTP协议no redirect:{}, Location=[{}]", schema, redirectUrl);
response.setHeader("Location", redirectUrl);
response.setStatus(301);
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment