Commit a6a1cbec authored by minminyan's avatar minminyan

重构部分代码

parent 77564145
package cn.quantgroup.xyqb.controller.external.motan;
import cn.quantgroup.bean.*;
import cn.quantgroup.service.*;
import cn.quantgroup.service.UserMotanService;
import cn.quantgroup.service.UserSysResult;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.controller.IBaseController;
import cn.quantgroup.xyqb.entity.*;
import cn.quantgroup.xyqb.entity.enumerate.*;
import cn.quantgroup.xyqb.model.*;
import cn.quantgroup.xyqb.model.session.*;
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.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.merchant.IMerchantService;
......@@ -39,12 +44,13 @@ import java.util.Random;
/**
* Created by 11 on 2017/2/27.
*/
@MotanService(export = "userMotan:8002", registry="registryConfig")
public class MotanUserServiceImpl implements UserMotanService, IBaseController{
@MotanService(export = "userMotan:8002", registry = "registryConfig")
public class MotanUserServiceImpl implements UserMotanService, IBaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(MotanUserServiceImpl.class);
private static final ObjectMapper MAPPER = new ObjectMapper();
static {
MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
......@@ -77,75 +83,124 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
@Override
public UserSysResult<XUser> findUserByPhoneNo(String phoneNo) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return returnValue(null, "手机号格式不正确");
}
User user = userService.findByPhoneInDb(phoneNo);
XUser xUser = convertObject(JSON.toJSONString(user), new TypeReference<XUser>() {});
return returnValue(xUser, "");
return returnValue(fromUser(user), "");
}
@Override
public UserSysResult<XUser> findUserByUuid(String uuid) {
if (StringUtils.isBlank(uuid)) {
return returnValue(null, "参数不能为空");
}
User user = userService.findByUuidInDb(uuid);
XUser xUser = convertObject(JSON.toJSONString(user), new TypeReference<XUser>() {});
return returnValue(xUser, "");
return returnValue(fromUser(user), "");
}
@Override
public UserSysResult<XUser> saveUser(UserBean userBean) {
UserSysResult<XUser> result = new UserSysResult<>();
if(null == userBean) {
result.setCode("0001");
result.setBusinessCode("0001");
result.setMsg("要保存的用户对象不能为null");
result.setData(null);
return result;
if (null == userBean || !ValidationUtil.validatePhoneNo(userBean.getPhoneNo())) {
return returnValue(null, userBean == null ? "要保存的用户对象不能为null" : "手机号不正确");
}
Timestamp now = new Timestamp(System.currentTimeMillis());
User user = new User();
User user = userService.findByPhoneWithCache(userBean.getPhoneNo());
if (user == null) {
user = new User();
user.setCreatedAt(now);
user.setUpdatedAt(now);
user.setUuid(userBean.getUuid());
user.setPhoneNo(userBean.getPhoneNo());
user.setEnable(true);
user.setPassword(userBean.getPassword());
String password = userBean.getPassword();
if (StringUtils.isBlank(password)) {
password = String.valueOf(random.nextInt(899999) + 100000);
}
user.setPassword(PasswordUtil.MD5(password + Constants.PASSWORD_SALT));
} else {
if (StringUtils.isNotBlank(user.getPassword())) {
user.setPassword(PasswordUtil.MD5(userBean.getPassword() + Constants.PASSWORD_SALT));
}
}
user.setUpdatedAt(now);
user.setUuid(userBean.getUuid());
user.setRegisteredFrom(userBean.getRegisteredFrom());
User saveUser = userService.saveUser(user);
XUser xUser = convertObject(JSON.toJSONString(saveUser), new TypeReference<XUser>() {});
return returnValue(xUser, "");
return returnValue(fromUser(saveUser), "");
}
@Override
public UserSysResult<XUserDetail> findUserDetailByUserId(Long userId) {
if (userId == null || userId.longValue() < 1) {
return returnValue(null, "参数必须是正整数");
}
UserDetail userDetail = userDetailService.findByUserId(userId);
XUserDetail xUserDetail = convertObject(JSON.toJSONString(userDetail), new TypeReference<XUserDetail>() {});
XUserDetail xUserDetail = fromUserDetail(userDetail);
return returnValue(xUserDetail, "");
}
private XUserDetail fromUserDetail(UserDetail userDetail) {
if (userDetail == null) {
return null;
}
XUserDetail xUserDetail = new XUserDetail();
xUserDetail.setId(userDetail.getId());
xUserDetail.setUserId(userDetail.getUserId());
xUserDetail.setPhoneNo(userDetail.getPhoneNo());
xUserDetail.setName(userDetail.getName());
xUserDetail.setIdNo(userDetail.getIdNo());
xUserDetail.setIdType(cn.quantgroup.enums.IdType.valueOf(userDetail.getIdType().getName()));
xUserDetail.setGender(cn.quantgroup.enums.Gender.valueOf(userDetail.getGender().getName()));
xUserDetail.setEmail(userDetail.getEmail());
xUserDetail.setQq(userDetail.getQq());
xUserDetail.setId(userDetail.getId());
xUserDetail.setCreatedAt(userDetail.getCreatedAt());
xUserDetail.setUpdatedAt(userDetail.getUpdatedAt());
xUserDetail.setIsAuthenticated(userDetail.getIsAuthenticated());
return xUserDetail;
}
private XUser fromUser(User user) {
if (user == null) {
return null;
}
XUser xUser = new XUser();
xUser.setUpdatedAt(user.getUpdatedAt());
xUser.setId(user.getId());
xUser.setPassword(user.getPassword());
xUser.setRegisteredFrom(user.getRegisteredFrom());
xUser.setUuid(user.getUuid());
xUser.setEnable(user.getEnable());
xUser.setPhoneNo(user.getPhoneNo());
xUser.setUpdatedAt(user.getUpdatedAt());
return xUser;
}
@Override
public UserSysResult<XUser> findUserByUserId(Long id) {
if (id == null || id.longValue() < 1) {
return returnValue(null, "参数必须是正整数");
}
User user = userService.findById(id);
XUser xUser = convertObject(JSON.toJSONString(user), new TypeReference<XUser>() {});
return returnValue(xUser, "");
return returnValue(fromUser(user), "");
}
@Override
public UserSysResult<XUserDetail> findUserDetailByPhone(String phoneNo) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return returnValue(null, "手机号格式不正确");
}
UserDetail userDetail = userDetailService.findByPhoneNo(phoneNo);
XUserDetail xUserDetail = convertObject(JSON.toJSONString(userDetail), new TypeReference<XUserDetail>() {});
return returnValue(xUserDetail, "");
return returnValue(fromUserDetail(userDetail), "");
}
@Override
public UserSysResult<XUserDetail> saveUserDetail(UserDetailUpdateBean userDetailUpdateBean) {
UserSysResult<XUserDetail> result = new UserSysResult<>();
result.setCode("0001");
result.setBusinessCode("0001");
if(null == userDetailUpdateBean) {
result.setMsg("要保存的用户详情对象不能为null");
result.setData(null);
return result;
if (null == userDetailUpdateBean) {
return returnValue(null, "要保存的用户详情对象不能为null");
}
UserDetail userDetail = new UserDetail();
if(null != userDetailUpdateBean.getId() && userDetailUpdateBean.getId() > 0L) {
if (null != userDetailUpdateBean.getId() && userDetailUpdateBean.getId() > 0L) {
userDetail.setId(userDetailUpdateBean.getId());
}
userDetail.setUserId(userDetailUpdateBean.getUserId());
......@@ -160,17 +215,16 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
userDetail.setGender(idCardService.getIdCardInfo(userDetailUpdateBean.getIdNo()).getGender());
} catch (ParseException e) {
LOGGER.error("根据身份证获取性别出错,错误信息:" + e);
result.setMsg("根据身份证获取性别出错.");
return result;
return returnValue(null, "根据身份证获取性别出错.");
}
userDetail.setEmail(userDetailUpdateBean.getEmail());
userDetail = userDetailService.saveUserDetail(userDetail);
if(userDetail != null){
XUserDetail xUserDetail = convertObject(JSON.toJSONString(userDetail), new TypeReference<XUserDetail>() {});
if (userDetail != null) {
XUserDetail xUserDetail = convertObject(JSON.toJSONString(userDetail), new TypeReference<XUserDetail>() {
});
return returnValue(xUserDetail, "");
}
result.setMsg("");
return result;
return returnValue(null, "保存失败");
}
@Override
......@@ -190,10 +244,8 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
@Override
public UserSysResult<XLoginInfo> appLoginAndFetchLoginInfo(AppLoginParam appLoginParam, HttpServletRequest request) {
UserSysResult<XLoginInfo> userSysResult = returnValue(null, "");
if (!ValidationUtil.validatePhoneNo(appLoginParam.getPhoneNo())) {
userSysResult.setMsg("该用户名不存在,<br/>请重新输入或注册新账号。");
return userSysResult;
return returnValue(null, "账户或者密码错误");
}
String requestIp = IPUtil.getRemoteIP(request);
......@@ -203,13 +255,11 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
user = register(appLoginParam.getRegisterFrom(), appLoginParam.getPhoneNo(), appLoginParam.getIdNo(), appLoginParam.getName());
}
if (user == null) {
userSysResult.setMsg("该用户名不存在,<br/>请重新输入或注册新账号。");
return userSysResult;
return returnValue(null, "账户或者密码错误");
}
Merchant merchant = merchantService.findMerchantByName(appLoginParam.getKey());
if (merchant == null) {
userSysResult.setMsg("无效的商户");
return userSysResult;
return returnValue(null, "无效的商户");
}
LoginProperties loginProperties = new LoginProperties();
loginProperties.setChannelId(appLoginParam.getChannelId());
......@@ -228,17 +278,18 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
loginInfo.setLoginContext(context);
LOGGER.info("第三方用户获取信息登录成功, loginFrom:{}, phoneNo:{},appChannel:{}", appLoginParam.getRegisterFrom(), appLoginParam.getPhoneNo(), appLoginParam.getAppChannel());
XLoginInfo xLoginInfo = convertObject(JSON.toJSONString(loginInfo), new TypeReference<XLoginInfo>() {});
XLoginInfo xLoginInfo = convertObject(JSON.toJSONString(loginInfo), new TypeReference<XLoginInfo>() {
});
return returnValue(xLoginInfo, "");
}
private <T> T convertObject(String json, TypeReference typeReference) {
try {
if(StringUtils.isEmpty(json)) {
if (StringUtils.isEmpty(json)) {
return null;
}
return MAPPER.readValue(json, typeReference);
}catch (Exception ex) {
} catch (Exception ex) {
LOGGER.error("用户信息转换出错,错误信息{}", ex);
return null;
}
......@@ -247,7 +298,7 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
@Override
public void updateUserQQ(String qq, Long userId) {
if(StringUtils.isEmpty(qq) || userId == 0L){
if (StringUtils.isEmpty(qq) || userId == null || userId == 0L) {
LOGGER.error("QQ或用户id非法,不允许修改:qq{}, userid:{}", qq, userId);
return;
}
......@@ -257,29 +308,28 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
@Override
public UserSysResult<List<XContact>> findContactsByUserId(Long userId) {
List<Contact> contacts = contactService.findByUserId(userId);
List<XContact> xContacts = convertObject(JSON.toJSONString(contacts), new TypeReference<List<XContact>>() {});
List<XContact> xContacts = convertObject(JSON.toJSONString(contacts), new TypeReference<List<XContact>>() {
});
return returnValue(xContacts, "");
}
@Override
public UserSysResult<List<XContact>> saveContacts(Long userId, List<XContact> contacts) {
UserSysResult<List<XContact>> userSysResult = returnValue(null, null);
if(null == userId || userId == 0L) {
LOGGER.error("保存联系人列表,用户id为空");
return userSysResult;
if (null == userId || userId == 0L) {
return returnValue(null, "保存联系人列表失败,用户id为空");
}
if(CollectionUtils.isEmpty(contacts)) {
LOGGER.error("保存联系人列表,列表为空");
return userSysResult;
if (CollectionUtils.isEmpty(contacts)) {
return returnValue(null, "保存联系人列表失败,列表为空");
}
//做一次类型转换,
String jsonContacts = JSON.toJSONString(contacts);
List<Contact> contactList = null;
try {
contactList = MAPPER.readValue(jsonContacts, new TypeReference<List<Contact>>() {});
contactList = MAPPER.readValue(jsonContacts, new TypeReference<List<Contact>>() {
});
} catch (IOException e) {
LOGGER.error("联系人列表转换错误:{}", e.getMessage());
return userSysResult;
return returnValue(null, "联系人转换错误");
}
Timestamp now = new Timestamp(System.currentTimeMillis());
for (Contact c : contactList) {
......@@ -290,7 +340,8 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
c.setUpdateAt(now);
}
List<Contact> result = contactService.save(contactList);
List<XContact> xResult = convertObject(JSON.toJSONString(result), new TypeReference<List<XContact>>() {});
List<XContact> xResult = convertObject(JSON.toJSONString(result), new TypeReference<List<XContact>>() {
});
return returnValue(xResult, "");
}
......@@ -298,17 +349,18 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
public UserSysResult<XAddress> findAddressByUserId(Long userId) {
UserSysResult<XAddress> userSysResult = returnValue(null, null);
Address address = addressService.findByUserId(userId);
if(null == address) {
if (null == address) {
return userSysResult;
}
XAddress xAddress = convertObject(JSON.toJSONString(address), new TypeReference<XAddress>() {});
XAddress xAddress = convertObject(JSON.toJSONString(address), new TypeReference<XAddress>() {
});
return returnValue(xAddress, "");
}
@Override
public UserSysResult<XAddress> saveAddress(XAddress xAddress) {
UserSysResult<XAddress> userSysResult = returnValue(null, null);
if(null == xAddress) {
if (null == xAddress) {
return userSysResult;
}
if (null == xAddress.getUserId() || null == xAddress.getProvinceCode() || null == xAddress.getCityCode()) {
......@@ -330,22 +382,19 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
addressObj.setAddress(xAddress.getAddress());
addressObj.setProvince(xAddress.getProvince());
addressObj = addressService.save(addressObj);
XAddress address = convertObject(JSON.toJSONString(addressObj), new TypeReference<XAddress>() {});
XAddress address = convertObject(JSON.toJSONString(addressObj), new TypeReference<XAddress>() {
});
return returnValue(address, "");
}
@Override
public UserSysResult<XUserExtInfo> updateUserExtInfo(XUserExtInfo xUserExtInfo) {
UserSysResult<XUserExtInfo> userSysResult = returnValue(null, null);
if(null == xUserExtInfo) {
if (null == xUserExtInfo) {
return userSysResult;
}
if(null == xUserExtInfo.getUserId() || 0L == xUserExtInfo.getUserId()) {
return userSysResult;
}
if (null == xUserExtInfo.getUserId()) {
userSysResult.setMsg("用户ID不能为空");
return userSysResult;
if (null == xUserExtInfo.getUserId() || 0L == xUserExtInfo.getUserId()) {
return returnValue(null, "用户id为空");
}
UserExtInfo info = userExtInfoService.findByUserId(xUserExtInfo.getUserId());
if (info == null) {
......@@ -380,20 +429,19 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
info.setMarryStatus(MaritalStatus.valueOf(xUserExtInfo.getMarryStatus().name()));
}
info = userExtInfoService.save(info);
XUserExtInfo userExtInfo = convertObject(JSON.toJSONString(info), new TypeReference<XUserExtInfo>() {});
XUserExtInfo userExtInfo = convertObject(JSON.toJSONString(info), new TypeReference<XUserExtInfo>() {
});
return returnValue(userExtInfo, "");
}
@Override
public UserSysResult<String> queryOpenIdByXyqbUserId(Long userId) {
UserSysResult<String> userSysResult = returnValue(null, null);
if(userId == null) {
userSysResult.setMsg("userId不能为空");
return userSysResult;
if (userId == null || userId < 1) {
return returnValue(null, "用户id不能为空");
}
WechatUserInfo wechatUserInfo = wechatService.queryOpenIdByUserId(userId);
if(wechatUserInfo == null) {
return userSysResult;
if (wechatUserInfo == null) {
return returnValue(null, "wechat信息为空");
}
return returnValue(wechatUserInfo.getOpenId(), "success");
}
......@@ -405,14 +453,8 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
@Override
public UserSysResult<String> queryOpenIdByPhoneNo(String phoneNo) {
UserSysResult<String> userSysResult = returnValue(null, null);
if(StringUtils.isBlank(phoneNo)) {
userSysResult.setMsg("手机号错误");
return userSysResult;
}
if(!ValidationUtil.validatePhoneNo(phoneNo)) {
userSysResult.setMsg("手机号格式错误");
return userSysResult;
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return returnValue(null, "手机号格式不正确");
}
WechatUserInfo wechatUserInfo = wechatService.findWechatUserInfoByPhoneNo(phoneNo);
String openId = null == wechatUserInfo ? null : wechatUserInfo.getOpenId();
......@@ -420,12 +462,16 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
}
@Override
public UserSysResult<UserRegisterTrace> findRegisterTraceByPhoneNo(String s) {
public UserSysResult<UserRegisterTrace> findRegisterTraceByPhoneNo(String phoneNo) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return returnValue(null, "手机号格式不正确");
}
return null;
}
/**
* 封装返回结果.
*
* @param t
* @param message
* @param <T>
......@@ -437,15 +483,14 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
/**
* 无返回结果时,返回的code和BusinessCode均是0001
*/
if(null == t) {
userSysResult.setData(null);
if (null == t) {
userSysResult.setBusinessCode("0001");
userSysResult.setCode("0001");
} else {
userSysResult.setData(t);
userSysResult.setBusinessCode("0000");
userSysResult.setCode("0000");
}
userSysResult.setData(t);
return userSysResult;
}
......@@ -473,7 +518,7 @@ public class MotanUserServiceImpl implements UserMotanService, IBaseController{
user.setCreatedAt(currentTime);
userRepository.saveAndFlush(user);
if(registerFrom != 645L) {
if (registerFrom != 645L) {
smsService.sendAfterRegister(phoneNo);
LOGGER.info("第三方登录用户注册成功, registerFrom:{}, phoneNo:{}, 并且已发送短信通知", registerFrom, phoneNo);
}
......
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