Commit 46092b41 authored by minminyan's avatar minminyan

修改账户登录的错误提示,统一改成 账户错误或者密码错误

parent 81f28e1c
package cn.quantgroup.xyqb.constant;
public class UserConstant {
public static final String USER_ERROR_OR_PASSWORD_ERROR = "帐号或密码错误";
}
...@@ -31,6 +31,8 @@ import javax.servlet.http.HttpServletRequest; ...@@ -31,6 +31,8 @@ import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Random; import java.util.Random;
import static cn.quantgroup.xyqb.constant.UserConstant.USER_ERROR_OR_PASSWORD_ERROR;
/** /**
* @author mengfan.feng * @author mengfan.feng
* @time 2015-10-27 11:41 * @time 2015-10-27 11:41
...@@ -39,177 +41,175 @@ import java.util.Random; ...@@ -39,177 +41,175 @@ import java.util.Random;
@RequestMapping("/app") @RequestMapping("/app")
public class AppController implements IBaseController { public class AppController implements IBaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(AppController.class); private static final Logger LOGGER = LoggerFactory.getLogger(AppController.class);
@Autowired @Autowired
private ISessionService sessionService; private ISessionService sessionService;
@Autowired @Autowired
private IUserService userService; private IUserService userService;
@Autowired @Autowired
private ILkbUserService lkbUserService; private ILkbUserService lkbUserService;
@Autowired @Autowired
private IUserRepository userRepository; private IUserRepository userRepository;
@Autowired @Autowired
private ISmsService smsService; private ISmsService smsService;
@Autowired @Autowired
private IUserDetailService userDetailService; private IUserDetailService userDetailService;
@Autowired @Autowired
private IIdCardService idCardService; private IIdCardService idCardService;
@Autowired @Autowired
private IMerchantService merchantService; private IMerchantService merchantService;
private final static Random random = new Random(); private final static Random random = new Random();
/** /**
* 第三方用户登录 * 第三方用户登录
* */
*/ @RequestMapping("/login")
@RequestMapping("/login") public JsonResult login(
public JsonResult login( String phoneNo,
String phoneNo, @RequestParam(required = false, defaultValue = "1") Long registerFrom,
@RequestParam(required = false, defaultValue = "1") Long registerFrom, @RequestParam(required = false, defaultValue = "1") Long channelId,
@RequestParam(required = false, defaultValue = "1") Long channelId, String idNo, String name, String key, @RequestParam(required = false, defaultValue = "") String appChannel, HttpServletRequest request
String idNo, String name, String key, @RequestParam(required = false, defaultValue = "")String appChannel, HttpServletRequest request ) {
) { if (!ValidationUtil.validatePhoneNo(phoneNo)) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) { return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
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, channelId);
}
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);
AuthBean bean = new AuthBean();
bean.setToken(sessionStruct.getSid());
bean.setPhoneNo(phoneNo);
LOGGER.info("第三方用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
return new JsonResult(bean);
} }
/** String requestIp = IPUtil.getRemoteIP(request);
* 第三方用户登录并返回用户信息 LOGGER.info("第三方用户登录, loginFrom:{}, requestIp:{}", registerFrom, requestIp);
* User user = userService.findByPhoneInDb(phoneNo);
*/ if (user == null) {
@RequestMapping("/login_super") user = register(registerFrom, phoneNo, idNo, name, channelId);
public JsonResult loginSuper ( }
String phoneNo, if (user == null) {
@RequestParam(required = false, defaultValue = "1") Long registerFrom, return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
@RequestParam(required = false, defaultValue = "1") Long channelId, }
String idNo, String name, String key, @RequestParam(required = false, defaultValue = "")String appChannel, HttpServletRequest request Merchant merchant = merchantService.findMerchantByName(key);
) { if (merchant == null) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) { return JsonResult.buildErrorStateResult("无效的商户", null);
return JsonResult.buildErrorStateResult("该用户名不存在,<br/>请重新输入或注册新账号。", null); }
} LoginProperties loginProperties = new LoginProperties();
loginProperties.setChannelId(channelId);
String requestIp = IPUtil.getRemoteIP(request); loginProperties.setMerchantName(merchant.getName());
LOGGER.info("第三方用户登录, loginFrom:{}, requestIp:{}", registerFrom, requestIp); loginProperties.setCreatedFrom(registerFrom);
User user = userService.findByPhoneInDb(phoneNo); loginProperties.setAppChannel(appChannel);
if (user == null) { SessionStruct sessionStruct = sessionService.createSessionAndPersist(user, loginProperties);
user = register(registerFrom, phoneNo, idNo, name, channelId); AuthBean bean = new AuthBean();
} bean.setToken(sessionStruct.getSid());
if (user == null) { bean.setPhoneNo(phoneNo);
return JsonResult.buildErrorStateResult("该用户名不存在,<br/>请重新输入或注册新账号。", null); LOGGER.info("第三方用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
} return new JsonResult(bean);
Merchant merchant = merchantService.findMerchantByName(key); }
if (merchant == null) {
return JsonResult.buildErrorStateResult("无效的商户", null); /**
} * 第三方用户登录并返回用户信息
LoginProperties loginProperties = new LoginProperties(); */
loginProperties.setChannelId(channelId); @RequestMapping("/login_super")
loginProperties.setMerchantName(merchant.getName()); public JsonResult loginSuper(
loginProperties.setCreatedFrom(registerFrom); String phoneNo,
loginProperties.setAppChannel(appChannel); @RequestParam(required = false, defaultValue = "1") Long registerFrom,
SessionStruct sessionStruct = sessionService.createSessionAndPersist(user, loginProperties); @RequestParam(required = false, defaultValue = "1") Long channelId,
String idNo, String name, String key, @RequestParam(required = false, defaultValue = "") String appChannel, HttpServletRequest request
LoginInfo loginInfo = new LoginInfo(); ) {
loginInfo.setUser(UserRet.getUserRet(user)); if (!ValidationUtil.validatePhoneNo(phoneNo)) {
loginInfo.setToken(sessionStruct.getSid()); return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, null);
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);
} }
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, channelId);
}
if (user == null) {
return JsonResult.buildErrorStateResult(USER_ERROR_OR_PASSWORD_ERROR, 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);
}
/**
* 注册新用户
*
* @return
*/
private User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId) {
String randomCode = String.valueOf(random.nextInt(899999) + 100000);
String uuid = lkbUserService.registerApp(phoneNo, randomCode);
Timestamp currentTime = new Timestamp(System.currentTimeMillis());
LOGGER.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);
user.setPhoneNo(phoneNo);
user.setPassword(PasswordUtil.MD5(randomCode + Constants.PASSWORD_SALT));
user.setUpdatedAt(currentTime);
user.setCreatedAt(currentTime);
userRepository.saveAndFlush(user);
if (registerFrom != 645L) {
smsService.sendAfterRegister(phoneNo);
LOGGER.info("第三方登录用户注册成功, registerFrom:{}, phoneNo:{}, 并且已发送短信通知", registerFrom, phoneNo);
}
/** if (StringUtils.isNotEmpty(idNo) && StringUtils.isNotEmpty(name)) {
* 注册新用户 LOGGER.info("第三方登录用户,保存 UserDetail");
*
* @return IdCardInfo cardInfo;
*/ try {
private User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId) { cardInfo = idCardService.getIdCardInfoWithExceptions(idNo);
String randomCode = String.valueOf(random.nextInt(899999) + 100000); UserDetail userDetail = new UserDetail();
userDetail.setIdNo(cardInfo.getIdNo());
String uuid = lkbUserService.registerApp(phoneNo, randomCode); userDetail.setPhoneNo(phoneNo);
Timestamp currentTime = new Timestamp(System.currentTimeMillis()); userDetail.setName(name);
userDetail.setIdType(IdType.ID_CARD);
LOGGER.info("第三方登录用户,保存 User"); userDetail.setCreatedAt(currentTime);
userDetail.setUpdatedAt(currentTime);
User user = new User(); userDetail.setUserId(user.getId());
if(channelId == 222L) { userDetail.setGender(cardInfo.getGender());
user.setRegisteredFrom(channelId); userDetailService.saveUserDetail(userDetail);
} else {
user.setRegisteredFrom(registerFrom); lkbUserService.userUpdate(user.getUuid(), name, idNo);
} } catch (Exception e) {
//user.setRegisteredFrom(registerFrom); LOGGER.error("保存 UserDetail 出现异常", e);
user.setUuid(uuid); }
user.setEnable(true);
user.setPhoneNo(phoneNo);
user.setPassword(PasswordUtil.MD5(randomCode + Constants.PASSWORD_SALT));
user.setUpdatedAt(currentTime);
user.setCreatedAt(currentTime);
userRepository.saveAndFlush(user);
if(registerFrom != 645L) {
smsService.sendAfterRegister(phoneNo);
LOGGER.info("第三方登录用户注册成功, registerFrom:{}, phoneNo:{}, 并且已发送短信通知", registerFrom, phoneNo);
}
if (StringUtils.isNotEmpty(idNo) && StringUtils.isNotEmpty(name)) {
LOGGER.info("第三方登录用户,保存 UserDetail");
IdCardInfo cardInfo;
try {
cardInfo = idCardService.getIdCardInfoWithExceptions(idNo);
UserDetail userDetail = new UserDetail();
userDetail.setIdNo(cardInfo.getIdNo());
userDetail.setPhoneNo(phoneNo);
userDetail.setName(name);
userDetail.setIdType(IdType.ID_CARD);
userDetail.setCreatedAt(currentTime);
userDetail.setUpdatedAt(currentTime);
userDetail.setUserId(user.getId());
userDetail.setGender(cardInfo.getGender());
userDetailService.saveUserDetail(userDetail);
lkbUserService.userUpdate(user.getUuid(), name, idNo);
} catch (Exception e) {
LOGGER.error("保存 UserDetail 出现异常", e);
}
}
return user;
} }
return user;
}
} }
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