Commit 4692dbdc authored by lee_mingzhu's avatar lee_mingzhu Committed by minminyan

修改group名称

parent 8e9c08d8
...@@ -44,7 +44,7 @@ public class MotanConfig { ...@@ -44,7 +44,7 @@ public class MotanConfig {
BasicServiceConfigBean config = new BasicServiceConfigBean(); BasicServiceConfigBean config = new BasicServiceConfigBean();
config.setExport("userMotan:8002"); config.setExport("userMotan:8002");
config.setGroup("userGroup"); config.setGroup("userGroup");
config.setAccessLog(false); config.setAccessLog(true);
config.setShareChannel(true); config.setShareChannel(true);
config.setModule("user-motan-rpc"); config.setModule("user-motan-rpc");
config.setApplication("xyqbUserMotan"); config.setApplication("xyqbUserMotan");
......
...@@ -2,15 +2,24 @@ package cn.quantgroup.xyqb.controller.external.motan; ...@@ -2,15 +2,24 @@ package cn.quantgroup.xyqb.controller.external.motan;
import cn.quantgroup.bean.*; import cn.quantgroup.bean.*;
import cn.quantgroup.service.*; import cn.quantgroup.service.*;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.controller.IBaseController; import cn.quantgroup.xyqb.controller.IBaseController;
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.model.IdType; import cn.quantgroup.xyqb.model.*;
import cn.quantgroup.xyqb.model.UserRet;
import cn.quantgroup.xyqb.model.session.*; import cn.quantgroup.xyqb.model.session.*;
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.session.ISessionService;
import cn.quantgroup.xyqb.service.sms.ISmsService;
import cn.quantgroup.xyqb.service.user.ILkbUserService;
import cn.quantgroup.xyqb.service.user.IUserDetailService; 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.PasswordUtil;
import cn.quantgroup.xyqb.util.ValidationUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.DeserializationFeature;
...@@ -21,13 +30,15 @@ import org.slf4j.Logger; ...@@ -21,13 +30,15 @@ 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 javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.text.ParseException; import java.text.ParseException;
import java.util.Random;
/** /**
* Created by 11 on 2017/2/27. * Created by 11 on 2017/2/27.
*/ */
@MotanService(export = "demoMotan:8002", registry="registryConfig") @MotanService(export = "userMotan:8002", registry="registryConfig")
public class MotanUserServiceImpl implements UserMotanService, IBaseController{ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
private static final Logger LOGGER = LoggerFactory.getLogger(MotanUserServiceImpl.class); private static final Logger LOGGER = LoggerFactory.getLogger(MotanUserServiceImpl.class);
...@@ -43,6 +54,17 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{ ...@@ -43,6 +54,17 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
private IUserService userService; private IUserService userService;
@Autowired @Autowired
private IUserDetailService userDetailService; private IUserDetailService userDetailService;
@Autowired
private IUserRepository userRepository;
@Autowired
private ISmsService smsService;
@Autowired
private ILkbUserService lkbUserService;
@Autowired
private IMerchantService merchantService;
@Autowired
private ISessionService sessionService;
private final static Random random = new Random();
@Override @Override
public UserSysResult<XUser> findUserByPhoneNo(String phoneNo) { public UserSysResult<XUser> findUserByPhoneNo(String phoneNo) {
...@@ -157,6 +179,50 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{ ...@@ -157,6 +179,50 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
return returnValue(xLoginInfo, ""); return returnValue(xLoginInfo, "");
} }
@Override
public UserSysResult<XLoginInfo> appLoginAndFetchLoginInfo(AppLoginParam appLoginParam, HttpServletRequest request) {
UserSysResult<XLoginInfo> userSysResult = returnValue(null, "");
if (!ValidationUtil.validatePhoneNo(appLoginParam.getPhoneNo())) {
userSysResult.setMsg("该用户名不存在,<br/>请重新输入或注册新账号。");
return userSysResult;
}
String requestIp = IPUtil.getRemoteIP(request);
LOGGER.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());
}
if (user == null) {
userSysResult.setMsg("该用户名不存在,<br/>请重新输入或注册新账号。");
return userSysResult;
}
Merchant merchant = merchantService.findMerchantByName(appLoginParam.getKey());
if (merchant == null) {
userSysResult.setMsg("无效的商户");
return userSysResult;
}
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);
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(appLoginParam.getAppChannel());
loginInfo.setLoginContext(context);
LOGGER.info("第三方用户获取信息登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", appLoginParam.getRegisterFrom(), appLoginParam.getPhoneNo(), appLoginParam.getAppChannel());
XLoginInfo xLoginInfo = convertObject(JSON.toJSONString(loginInfo), new TypeReference<XLoginInfo>() {});
return returnValue(xLoginInfo, "");
}
private <T> T convertObject(String json, TypeReference typeReference) { private <T> T convertObject(String json, TypeReference typeReference) {
try { try {
if(StringUtils.isEmpty(json)) { if(StringUtils.isEmpty(json)) {
...@@ -194,4 +260,60 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{ ...@@ -194,4 +260,60 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
} }
return userSysResult; return userSysResult;
} }
/**
* 注册新用户
*
* @return
*/
private User register(Long registerFrom, String phoneNo, String idNo, String name) {
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();
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 (org.apache.commons.lang3.StringUtils.isNotEmpty(idNo) && org.apache.commons.lang3.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;
}
} }
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