Commit 7f087363 authored by 李健华's avatar 李健华

获取用户头像、昵称增加租户

parent 2c15115c
......@@ -33,6 +33,7 @@ public interface Constants {
Long VERIFICATION_CODE_FINITE_COUNT_NEW = 2L;
String X_AUTH_TOKEN = "x-auth-token";
String X_AUTH_TENANT = "x-auth-tenant";
int VERIFICATION_LEN = 2;
int SMS_CODE_LEN_4 = 4;
int SMS_CODE_LEN_6 = 6;
......
......@@ -15,6 +15,7 @@ import java.util.Objects;
import static cn.quantgroup.xyqb.session.XyqbSessionContextHolder.getXSession;
import static cn.quantgroup.xyqb.session.XyqbSessionContextHolder.getXSessionFromRedis;
import static cn.quantgroup.xyqb.session.XyqbSessionContextHolder.getXSessionFromTenantRedis;
/**
* Created by Miraculous on 15/7/5.
......@@ -43,6 +44,14 @@ public interface IBaseController {
return session.getValues().getUser();
}
default String getCurrentTenantIdRedis() {
String tenantId = getXSessionFromTenantRedis();
if (tenantId == null) {
return null;
}
return tenantId;
}
default SessionStruct getCurrentSessionFromRedis() {
return getXSessionFromRedis();
}
......
......@@ -19,10 +19,7 @@ import cn.quantgroup.xyqb.service.merchant.IMerchantService;
import cn.quantgroup.xyqb.service.register.IUserRegisterService;
import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.sms.ISmsService;
import cn.quantgroup.xyqb.service.user.ILockIpv4Service;
import cn.quantgroup.xyqb.service.user.IUserDetailService;
import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.service.user.UserCenterService;
import cn.quantgroup.xyqb.service.user.*;
import cn.quantgroup.xyqb.service.wechat.IWechatService;
import cn.quantgroup.xyqb.session.XyqbSessionContextHolder;
import cn.quantgroup.xyqb.util.IpUtil;
......@@ -81,6 +78,9 @@ public class UserController implements IBaseController {
@Autowired
private IUserRegisterService userRegisterService;
@Autowired
private ITenantService tenantService;
/**
* 登录(账号 + 密码)
......@@ -482,6 +482,10 @@ public class UserController implements IBaseController {
brief.setSex(Optional.ofNullable(userDetail.getGender()).orElse(cn.quantgroup.xyqb.model.Gender.UNKNOWN).ordinal() + "");
brief.setPhoneNo(userDetail.getPhoneNo().substring(0, 3) + "****" + userDetail.getPhoneNo().substring(7, 11));
}
String tenantId = getCurrentTenantIdRedis();
if (tenantId != null) {
brief = tenantService.getTenantCustomerInfo(userDetail, tenantId);
}
return JsonResult.buildSuccessResult(null, brief);
}
......
......@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.entity;
import cn.quantgroup.xyqb.entity.baseEntity.PartitionEntity;
import cn.quantgroup.xyqb.model.Gender;
import cn.quantgroup.xyqb.util.StringUtils;
import javax.persistence.Column;
......@@ -67,7 +68,7 @@ public class CustomerInfoEntity extends PartitionEntity implements Serializable
private Long provinceCode;
@Column(name = "SEX", nullable = true)
private Byte sex;
private Gender sex;
@Column(name = "UNION_ID", nullable = true, length = 128)
private String unionId;
......@@ -193,11 +194,11 @@ public class CustomerInfoEntity extends PartitionEntity implements Serializable
this.provinceCode = provinceCode;
}
public Byte getSex() {
public Gender getSex() {
return sex;
}
public void setSex(Byte sex) {
public void setSex(Gender sex) {
this.sex = sex;
}
......
......@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.service.user;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDetail;
import cn.quantgroup.xyqb.model.UserBrief;
/**
* Created by 11 on 2016/12/29.
......@@ -11,4 +12,6 @@ public interface ITenantService {
User getTenantUser(User user, String tenantId);
UserDetail getTenantUserDetail(UserDetail userDetail, String tenantId);
UserBrief getTenantCustomerInfo(UserDetail userDetail, String tenantId);
}
package cn.quantgroup.xyqb.service.user.impl;
import cn.quantgroup.xyqb.entity.*;
import cn.quantgroup.xyqb.service.user.*;
import cn.quantgroup.xyqb.model.UserBrief;
import cn.quantgroup.xyqb.service.user.ICustomerInfoService;
import cn.quantgroup.xyqb.service.user.IOauthClientDetailsService;
import cn.quantgroup.xyqb.service.user.IProductLoginService;
import cn.quantgroup.xyqb.service.user.ITenantService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Optional;
/**
* Created by 11 on 2016/12/29.
*/
......@@ -65,4 +71,31 @@ public class TenantServiceImpl implements ITenantService {
}
return null;
}
@Override
public UserBrief getTenantCustomerInfo(UserDetail userDetail, String tenantId) {
OauthClientDetailsEntity oauthClientDetails = oauthClientDetailsService.findFirstByClientId(tenantId);
if (oauthClientDetails != null) {
ProductLoginEntity productLogin = productLoginService.findSlaveByPloginInfo(oauthClientDetails.getInstitutionId(), oauthClientDetails.getProductId(), userDetail.getUserId());
if (productLogin != null) {
if (!userDetail.getPhoneNo().equals(productLogin.getPhoneNo())) {
return null;
}
CustomerInfoEntity customerInfo = customerInfoService.findSlaveByCustomerId(productLogin.getCustomerId());
if (customerInfo == null) {
return null;
}
UserBrief tenantUserBrief = new UserBrief();
tenantUserBrief.setAvatar(customerInfo.getAvatarUrl());
tenantUserBrief.setNick(customerInfo.getNickName());
tenantUserBrief.setName(customerInfo.getName());
tenantUserBrief.setSex(Optional.ofNullable(customerInfo.getSex()).orElse(cn.quantgroup.xyqb.model.Gender.UNKNOWN).ordinal() + "");
tenantUserBrief.setPhoneNo(productLogin.getPhoneNo().substring(0, 3) + "****" + productLogin.getPhoneNo().substring(7, 11));
return tenantUserBrief;
}
}
return null;
}
}
......@@ -44,6 +44,13 @@ public class XyqbSessionContextHolder {
return getXSessionFromRedis(token);
}
public static String getXSessionFromTenantRedis() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String tenantId = request.getHeader(Constants.X_AUTH_TENANT);
log.info("getXSessionFromRedis token = 【{}】", tenantId);
return tenantId;
}
public static SessionStruct getXSessionFromRedis(String token) {
if (StringUtils.length(token) != Constants.TOKEN_LENGTH || Objects.isNull(redisTemplate)) {
return null;
......
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