Commit c3b0b1cb authored by zhouqian's avatar zhouqian

登录增加系统key

parent 117f9564
...@@ -5,10 +5,9 @@ import cn.quantgroup.xyqb.controller.IBaseController; ...@@ -5,10 +5,9 @@ import cn.quantgroup.xyqb.controller.IBaseController;
import cn.quantgroup.xyqb.entity.Merchant; import cn.quantgroup.xyqb.entity.Merchant;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDetail; import cn.quantgroup.xyqb.entity.UserDetail;
import cn.quantgroup.xyqb.exception.NullUserException;
import cn.quantgroup.xyqb.model.*; import cn.quantgroup.xyqb.model.*;
import cn.quantgroup.xyqb.model.session.LoginInfo;
import cn.quantgroup.xyqb.model.session.SessionStruct; import cn.quantgroup.xyqb.model.session.SessionStruct;
import cn.quantgroup.xyqb.repository.IUserDetailRepository;
import cn.quantgroup.xyqb.repository.IUserRepository; import cn.quantgroup.xyqb.repository.IUserRepository;
import cn.quantgroup.xyqb.service.auth.IIdCardService; import cn.quantgroup.xyqb.service.auth.IIdCardService;
import cn.quantgroup.xyqb.service.merchant.IMerchantService; import cn.quantgroup.xyqb.service.merchant.IMerchantService;
...@@ -19,19 +18,16 @@ import cn.quantgroup.xyqb.service.user.IUserDetailService; ...@@ -19,19 +18,16 @@ import cn.quantgroup.xyqb.service.user.IUserDetailService;
import cn.quantgroup.xyqb.service.user.IUserService; import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.util.IPUtil; import cn.quantgroup.xyqb.util.IPUtil;
import cn.quantgroup.xyqb.util.PasswordUtil; import cn.quantgroup.xyqb.util.PasswordUtil;
import cn.quantgroup.xyqb.util.Utils;
import cn.quantgroup.xyqb.util.ValidationUtil; import cn.quantgroup.xyqb.util.ValidationUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.web.PagedResourcesAssembler;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.security.Principal;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Random; import java.util.Random;
...@@ -58,8 +54,6 @@ public class AppController implements IBaseController { ...@@ -58,8 +54,6 @@ public class AppController implements IBaseController {
@Autowired @Autowired
private IUserDetailService userDetailService; private IUserDetailService userDetailService;
/*@Autowired
private IUserDetailRepository userDetailRepository;*/
@Autowired @Autowired
private IIdCardService idCardService; private IIdCardService idCardService;
@Autowired @Autowired
...@@ -104,10 +98,58 @@ public class AppController implements IBaseController { ...@@ -104,10 +98,58 @@ public class AppController implements IBaseController {
AuthBean bean = new AuthBean(); AuthBean bean = new AuthBean();
bean.setToken(sessionStruct.getSid()); bean.setToken(sessionStruct.getSid());
bean.setPhoneNo(phoneNo); bean.setPhoneNo(phoneNo);
LOGGER.info("第三方用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", request.getParameter("registerFrom"), request.getParameter("phoneNo"), appChannel); LOGGER.info("第三方用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
return new JsonResult(bean); return new JsonResult(bean);
} }
/**
* 第三方用户登录并返回用户信息
*
*/
@RequestMapping("/login_super")
public JsonResult loginSuper (
String phoneNo,
@RequestParam(required = false, defaultValue = "1") Long registerFrom,
@RequestParam(required = false, defaultValue = "1") Long channelId,
String idNo, String name, String key, @RequestParam(required = false, defaultValue = "")String appChannel, HttpServletRequest request
) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return JsonResult.buildErrorStateResult("该用户名不存在,<br/>请重新输入或注册新账号。", null);
}
String requestIp = IPUtil.getRemoteIP(request);
LOGGER.info("第三方用户登录, loginFrom:{}, requestIp:{}", registerFrom, requestIp);
User user = userService.findByPhoneInDb(phoneNo);
if (user == null) {
user = register(registerFrom, phoneNo, idNo, name);
}
if (user == null) {
return JsonResult.buildErrorStateResult("该用户名不存在,<br/>请重新输入或注册新账号。", null);
}
Merchant merchant = merchantService.findMerchantByName(key);
if (merchant == null) {
return JsonResult.buildErrorStateResult("无效的商户", null);
}
LoginProperties loginProperties = new LoginProperties();
loginProperties.setChannelId(channelId);
loginProperties.setMerchantName(merchant.getName());
loginProperties.setCreatedFrom(registerFrom);
loginProperties.setAppChannel(appChannel);
SessionStruct sessionStruct = sessionService.createSessionAndPersist(user, loginProperties);
LoginInfo loginInfo = new LoginInfo();
loginInfo.setUser(UserRet.getUserRet(user));
loginInfo.setToken(sessionStruct.getSid());
LoginInfo.LoginContext context = new LoginInfo.LoginContext();
context.setChannelId(sessionStruct.getValues().getLoginProperties().getChannelId());
context.setCreatedFrom(sessionStruct.getValues().getLoginProperties().getCreatedFrom());
context.setAppChannel(appChannel);
loginInfo.setLoginContext(context);
LOGGER.info("第三方用户获取信息登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
return JsonResult.buildSuccessResult("", loginInfo);
}
/** /**
* 注册新用户 * 注册新用户
......
...@@ -20,6 +20,7 @@ public class AuthInfoController implements IBaseController { ...@@ -20,6 +20,7 @@ public class AuthInfoController implements IBaseController {
SessionStruct sessionStruct = getSessionStruct(); SessionStruct sessionStruct = getSessionStruct();
LoginInfo loginInfo = new LoginInfo(); LoginInfo loginInfo = new LoginInfo();
loginInfo.setUser(UserRet.getUserRet(sessionStruct.getValues().getUser())); loginInfo.setUser(UserRet.getUserRet(sessionStruct.getValues().getUser()));
loginInfo.setToken(sessionStruct.getSid());
LoginInfo.LoginContext context = new LoginInfo.LoginContext(); LoginInfo.LoginContext context = new LoginInfo.LoginContext();
context.setChannelId(sessionStruct.getValues().getLoginProperties().getChannelId()); context.setChannelId(sessionStruct.getValues().getLoginProperties().getChannelId());
context.setCreatedFrom(sessionStruct.getValues().getLoginProperties().getCreatedFrom()); context.setCreatedFrom(sessionStruct.getValues().getLoginProperties().getCreatedFrom());
......
package cn.quantgroup.xyqb.model.session; package cn.quantgroup.xyqb.model.session;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.model.UserRet; import cn.quantgroup.xyqb.model.UserRet;
import lombok.Data; import lombok.Data;
...@@ -10,6 +9,7 @@ import lombok.Data; ...@@ -10,6 +9,7 @@ import lombok.Data;
@Data @Data
public class LoginInfo { public class LoginInfo {
private String token;
private UserRet user; private UserRet user;
private LoginContext loginContext; private LoginContext loginContext;
......
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