Commit 9650903b authored by Java-刘 彧阳's avatar Java-刘 彧阳

fix some thing

parent abd92e39
......@@ -257,7 +257,7 @@
<dependency>
<groupId>cn.quantgroup</groupId>
<artifactId>xyqb-user-rpc-commons</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.1.1-SNAPSHOT</version>
</dependency>
<dependency>
......
......@@ -7,38 +7,44 @@ import cn.quantgroup.motan.vo.UserSysResult;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.entity.*;
import cn.quantgroup.xyqb.entity.enumerate.*;
import cn.quantgroup.xyqb.model.IdCardInfo;
import cn.quantgroup.xyqb.model.IdType;
import cn.quantgroup.xyqb.model.LoginProperties;
import cn.quantgroup.xyqb.model.UserRet;
import cn.quantgroup.xyqb.model.*;
import cn.quantgroup.xyqb.model.session.LoginInfo;
import cn.quantgroup.xyqb.model.session.SessionStruct;
import cn.quantgroup.xyqb.repository.IUserRepository;
import cn.quantgroup.xyqb.service.auth.IIdCardService;
import cn.quantgroup.xyqb.service.http.IHttpService;
import cn.quantgroup.xyqb.service.merchant.IMerchantService;
import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.sms.ISmsService;
import cn.quantgroup.xyqb.service.user.*;
import cn.quantgroup.xyqb.service.user.vo.UserDetailVO;
import cn.quantgroup.xyqb.service.wechat.IWechatService;
import cn.quantgroup.xyqb.session.XyqbSessionContextHolder;
import cn.quantgroup.xyqb.util.PasswordUtil;
import cn.quantgroup.xyqb.util.ValidationUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableMap;
import com.weibo.api.motan.config.springsupport.annotation.MotanService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.stream.Collectors;
import static cn.quantgroup.xyqb.constant.UserConstant.USER_ERROR_OR_PASSWORD_ERROR;
/**
* Created by 11 on 2017/2/27.
*/
......@@ -79,6 +85,11 @@ public class MotanUserServiceImpl implements UserMotanService {
@Autowired
private IUserSpouseService userSpouseService;
@Value("${xyqb.auth.url}")
private String xyqbAuthUrl;
@Autowired
private IHttpService httpService;
@Override
public UserSysResult<XUser> findUserByPhoneNo(String phoneNo) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
......@@ -257,7 +268,7 @@ public class MotanUserServiceImpl implements UserMotanService {
log.info("第三方用户登录, loginFrom:{}, requestIp:{}", appLoginParam.getRegisterFrom(), requestIp);
User user = userService.findByPhoneInDb(appLoginParam.getPhoneNo());
if (user == null) {
user = register(appLoginParam.getRegisterFrom(), appLoginParam.getPhoneNo(), appLoginParam.getIdNo(), appLoginParam.getName());
user = register(appLoginParam.getRegisterFrom(), appLoginParam.getPhoneNo(), appLoginParam.getIdNo(), appLoginParam.getName(),appLoginParam.getChannelId());
}
if (user == null) {
return returnErrorValue("账户或者密码错误");
......@@ -450,7 +461,21 @@ public class MotanUserServiceImpl implements UserMotanService {
@Override
public UserSysResult<Boolean> disableUser(Long userId) {
return null;
if (null == userId || 0L == userId) {
throw new RuntimeException("userId不能为空");
}
User user = userService.findById(userId);
if (null == user) {
throw new RuntimeException("未查询到该用户,用户id:"+userId);
}
user.setEnable(false);
user.setUpdatedAt(new Timestamp(System.currentTimeMillis()));
log.info("注销用户的信息,userId={}", userId);
user = userService.saveUser(user);
if (!user.getEnable()) {
sessionService.deleteByUserId(userId);
}
return returnSuccessValue(Boolean.TRUE);
}
@Override
......@@ -494,13 +519,24 @@ public class MotanUserServiceImpl implements UserMotanService {
xUserSpouse.setSpouseName(userSpouse.getSpouseName());
xUserSpouse.setCreatedAt(userSpouse.getCreatedAt());
xUserSpouse.setUpdateAt(userSpouse.getUpdateAt());
xUserSpouse.setStatus(cn.quantgroup.user.enums.MaritalStatus.valueOf(userSpouse.getStatus().name()));
xUserSpouse.setStatus(cn.quantgroup.motan.enums.MaritalStatus.valueOf(userSpouse.getStatus().name()));
return xUserSpouse;
}
@Override
public UserSysResult<XUserExtInfo> findUserExtInfoByUserId(Long userId) {
return null;
if (userId == null) {
return returnErrorValue("userId不能为空");
}
UserExtInfo userExtInfo = userExtInfoService.findByUserId(userId);
if (userExtInfo == null) {
return returnErrorValue("未找到用户扩展信息");
}
return returnSuccessValue(fromUserExtInfo(userExtInfo));
}
private XUserExtInfo fromUserExtInfo(UserExtInfo userExtInfo) {
return null==userExtInfo?null:userExtInfo.toXUserExtInfo();
}
@Override
......@@ -515,11 +551,13 @@ public class MotanUserServiceImpl implements UserMotanService {
@Override
public UserSysResult<String> loginWithUuid(String uuid) {
//todo
return null;
}
@Override
public UserSysResult<Boolean> userImportCheck(String phoneNo, String registerFrom) {
//todo
return null;
}
......@@ -528,10 +566,10 @@ public class MotanUserServiceImpl implements UserMotanService {
if (xUserSpouse.getUserId() == null || xUserSpouse.getUserId() == 0) {
return returnErrorValue("用户不能为空");
}
cn.quantgroup.user.enums.MaritalStatus status = xUserSpouse.getStatus();
cn.quantgroup.motan.enums.MaritalStatus status = xUserSpouse.getStatus();
String spousePhone = xUserSpouse.getSpousePhone();
String spouseName = xUserSpouse.getSpouseName();
if (xUserSpouse.getStatus() == cn.quantgroup.user.enums.MaritalStatus.MARRIED) {
if (xUserSpouse.getStatus() == cn.quantgroup.motan.enums.MaritalStatus.MARRIED) {
if (!ValidationUtil.validatePhoneNo(spousePhone)) {
return returnErrorValue("手机号格式错误");
}
......@@ -545,8 +583,8 @@ public class MotanUserServiceImpl implements UserMotanService {
userSpouse = new UserSpouse(xUserSpouse.getUserId());
userSpouse.setCreatedAt(timestamp);
}
userSpouse.setSpouseName(status == cn.quantgroup.user.enums.MaritalStatus.MARRIED ? spouseName : "");
userSpouse.setSpousePhone(status == cn.quantgroup.user.enums.MaritalStatus.MARRIED ? spousePhone : "");
userSpouse.setSpouseName(status == cn.quantgroup.motan.enums.MaritalStatus.MARRIED ? spouseName : "");
userSpouse.setSpousePhone(status == cn.quantgroup.motan.enums.MaritalStatus.MARRIED ? spousePhone : "");
userSpouse.setStatus(MaritalStatus.valueOf(status.name()));
userSpouse.setUpdateAt(timestamp);
userSpouse = userSpouseService.save(userSpouse);
......@@ -554,8 +592,82 @@ public class MotanUserServiceImpl implements UserMotanService {
}
@Override
public UserSysResult<AppLoginResultBean> appLogin(AppLoginParam param) {
return null;
public UserSysResult<AppLoginResultBean> appLogin(AppLoginParam appLoginParam) {
if (!ValidationUtil.validatePhoneNo(appLoginParam.getPhoneNo())) {
throw new RuntimeException(USER_ERROR_OR_PASSWORD_ERROR);
}
log.info("第三方用户登录, appLoginParam:{} ", appLoginParam);
User user = userService.findByPhoneInDb(appLoginParam.getPhoneNo());
if (user == null) {
user = register(appLoginParam.getRegisterFrom(), appLoginParam.getPhoneNo(), appLoginParam.getIdNo(), appLoginParam.getName(), appLoginParam.getChannelId());
}
if (user == null) {
throw new RuntimeException(USER_ERROR_OR_PASSWORD_ERROR);
}
if (!user.getEnable()) {
throw new RuntimeException("登录失败");
}
Merchant merchant = merchantService.findMerchantByName(appLoginParam.getKey());
if (merchant == null) {
throw new RuntimeException("无效的商户");
}
LoginProperties loginProperties = new LoginProperties();
loginProperties.setChannelId(appLoginParam.getChannelId());
loginProperties.setMerchantName(merchant.getName());
loginProperties.setCreatedFrom(appLoginParam.getRegisterFrom());
loginProperties.setAppChannel(appLoginParam.getAppChannel());
SessionStruct sessionStruct = sessionService.createSessionAndPersist(user, loginProperties);
AppLoginResultBean appLoginResultBean = new AppLoginResultBean();
appLoginResultBean.setToken(sessionStruct.getSid());
appLoginResultBean.setPhoneNo(appLoginParam.getPhoneNo());
log.info("第三方用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", appLoginParam.getRegisterFrom(), appLoginParam.getPhoneNo(), appLoginParam.getAppChannel());
return returnSuccessValue(appLoginResultBean);
}
@Override
public UserSysResult<XLoginInfo> getLoginInfo(String token) {
SessionStruct sessionStruct = XyqbSessionContextHolder.getXSessionFromRedis();
if(null != sessionStruct) {
log.info("从用户中心获取到了用户登录信息:phone:[{}]", sessionStruct.getValues().getUser().getPhoneNo());
XLoginInfo loginInfo = new XLoginInfo();
loginInfo.setUser(sessionStruct.getValues().getUser().toXUser());
loginInfo.setToken(sessionStruct.getSid());
LoginContext context = new LoginContext();
context.setChannelId(sessionStruct.getValues().getLoginProperties().getChannelId());
context.setCreatedFrom(sessionStruct.getValues().getLoginProperties().getCreatedFrom());
context.setAppChannel(sessionStruct.getValues().getLoginProperties().getAppChannel());
loginInfo.setLoginContext(context);
return returnSuccessValue(loginInfo);
}else {
// 函谷关去查token 返回值高仿
log.info("去向函谷关查询用户信息");
if(StringUtils.isBlank(token) ||token.length() != 36){
return returnErrorValue("用户未登录");
}
String checkUrl = xyqbAuthUrl+"/innerapi/is_login";
ImmutableMap<String, String> headMap = ImmutableMap.of("x-auth-token", token);
String response = httpService.get(checkUrl, headMap, null);
log.info("去向函谷关查询用户信息,response:[{}]",response);
JsonResult result = JSONObject.parseObject(response, JsonResult.class);
if (result == null || !"0000".equals(result.getCode()) || !"0000".equals(result.getBusinessCode())) {
return returnErrorValue("用户未登录");
}
String phoneNo = ((Map<String, String>) result.getData()).get("phoneNo");
User user = userService.findByPhoneWithCache(phoneNo);
XLoginInfo loginInfo = new XLoginInfo();
loginInfo.setUser(sessionStruct.getValues().getUser().toXUser());
loginInfo.setToken(token);
LoginContext context = new LoginContext();
context.setChannelId(null);
context.setCreatedFrom(user.getRegisteredFrom());
context.setAppChannel("");
loginInfo.setLoginContext(context);
return returnSuccessValue(loginInfo);
}
}
/**
......@@ -596,7 +708,7 @@ public class MotanUserServiceImpl implements UserMotanService {
*
* @return
*/
private User register(Long registerFrom, String phoneNo, String idNo, String name) {
private User register(Long registerFrom, String phoneNo, String idNo, String name,Long channelId) {
String randomCode = String.valueOf(random.nextInt(899999) + 100000);
......@@ -606,6 +718,11 @@ public class MotanUserServiceImpl implements UserMotanService {
log.info("第三方登录用户,保存 User");
User user = new User();
if (channelId == 222L) {
user.setRegisteredFrom(channelId);
} else {
user.setRegisteredFrom(registerFrom);
}
user.setRegisteredFrom(registerFrom);
user.setUuid(uuid);
user.setEnable(true);
......
......@@ -75,10 +75,10 @@ public class UserDetail implements Serializable {
xUserDetail.setName(this.getName());
xUserDetail.setIdNo(this.getIdNo());
if (this.getIdType() != null) {
xUserDetail.setIdType(cn.quantgroup.user.enums.IdType.valueOf(this.getIdType().name()));
xUserDetail.setIdType(cn.quantgroup.motan.enums.IdType.valueOf(this.getIdType().name()));
}
if (this.getGender() != null) {
xUserDetail.setGender(cn.quantgroup.user.enums.Gender.valueOf(this.getGender().name()));
xUserDetail.setGender(cn.quantgroup.motan.enums.Gender.valueOf(this.getGender().name()));
}
xUserDetail.setEmail(this.getEmail());
xUserDetail.setQq(this.getQq());
......
package cn.quantgroup.xyqb.entity;
import cn.quantgroup.motan.retbean.XUserExtInfo;
import cn.quantgroup.xyqb.entity.enumerate.*;
import lombok.Data;
......@@ -45,4 +46,20 @@ public class UserExtInfo implements Serializable {
@Column(name = "updated_at")
private Timestamp updateAt;
public XUserExtInfo toXUserExtInfo(){
XUserExtInfo xUserExtInfo = new XUserExtInfo();
xUserExtInfo.setId(this.id);
xUserExtInfo.setUserId(this.userId);
xUserExtInfo.setEducationEnum(cn.quantgroup.motan.enums.EducationEnum.valueOf(this.educationEnum.name()));
xUserExtInfo.setIncomeEnum(cn.quantgroup.motan.enums.IncomeEnum.valueOf(this.incomeEnum.name()));
xUserExtInfo.setIncomeRangeEnum(cn.quantgroup.motan.enums.IncomeRangeEnum.valueOf(this.incomeRangeEnum.name()));
xUserExtInfo.setOccupationEnum(cn.quantgroup.motan.enums.OccupationEnum.valueOf(this.occupationEnum.name()));
xUserExtInfo.setHasCar(this.hasCar);
xUserExtInfo.setHasSocialSecurity(this.hasSocialSecurity);
xUserExtInfo.setHasCreditCard(this.hasCreditCard);
xUserExtInfo.setMarryStatus(cn.quantgroup.motan.enums.MaritalStatus.valueOf(this.marryStatus.name()));
xUserExtInfo.setCreatedAt(this.createdAt);
xUserExtInfo.setUpdateAt(this.updateAt);
return xUserExtInfo;
}
}
......@@ -23,6 +23,14 @@ public class LoginInfo {
return JSON.parseObject(userJson, XLoginInfo.class);
}
public XLoginInfo toXLoginInfo() {
XLoginInfo xLoginInfo= new XLoginInfo();
xLoginInfo.setUser();
return xLoginInfo;
}
@Data
public static class LoginContext {
......
......@@ -68,10 +68,10 @@ public class UserDetailVO {
xUserDetail.setName(this.getName());
xUserDetail.setIdNo(this.getIdNo());
if (this.getIdType() != null) {
xUserDetail.setIdType(cn.quantgroup.user.enums.IdType.valueOf(this.getIdType().name()));
xUserDetail.setIdType(cn.quantgroup.motan.enums.IdType.valueOf(this.getIdType().name()));
}
if (this.getGender() != null) {
xUserDetail.setGender(cn.quantgroup.user.enums.Gender.valueOf(this.getGender().name()));
xUserDetail.setGender(cn.quantgroup.motan.enums.Gender.valueOf(this.getGender().name()));
}
xUserDetail.setEmail(this.getEmail());
xUserDetail.setQq(this.getQq());
......
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