Commit ae6e364f authored by 技术部-任文超's avatar 技术部-任文超

Merge branch 'optimize/enumSonar' into 'master'

enum-sonar



See merge request !10
parents 4590ca42 a0acda43
......@@ -112,7 +112,6 @@ public class InnerController implements IBaseController {
}
UserRet userRet = new UserRet(user);
return JsonResult.buildSuccessResult("", userRet);
}
......@@ -952,8 +951,11 @@ public class InnerController implements IBaseController {
return JsonResult.buildErrorStateResult("传入用户手机号不可为空", null);
}
private static long MAX_SIZE = 500L;
/**
* 手机号批量查询uuid
* todo 代码增加读写分离. 这里需要查从库
*
* @param userPhones
* @return
......@@ -961,7 +963,29 @@ public class InnerController implements IBaseController {
@RequestMapping("/uuid/findByPhones")
public JsonResult getUuidsByPhones(@RequestParam("userPhones") String userPhones) {
return JsonResult.buildErrorStateResult("主库不提供查询", null);
if (StringUtils.isBlank(userPhones)) {
return JsonResult.buildErrorStateResult("传入用户手机号不可为空", null);
}
List<String> phones = JSONObject.parseObject(userPhones, new TypeReference<List<String>>() {
});
if (org.apache.commons.collections.CollectionUtils.isNotEmpty(phones)) {
if (!(phones.size() > MAX_SIZE)) {
List<UserInfo> userInfos = userService.findUserInfosByPhones(phones);
if (org.apache.commons.collections.CollectionUtils.isNotEmpty(userInfos)) {
Map<String, UserInfo> userInfoMap = Maps.newHashMapWithExpectedSize(userInfos.size());
userInfos.forEach(userInfo -> {
userInfoMap.put(userInfo.getPhoneNo(), userInfo);
});
return JsonResult.buildSuccessResult(null, userInfoMap);
} else {
return JsonResult.buildSuccessResult(null, null);
}
}
return JsonResult.buildErrorStateResult("uuid单次批量查询不可超过500个手机号", null);
}
return JsonResult.buildErrorStateResult("uuid批量传入用户手机号不可为空", null);
}
/**
......
......@@ -23,10 +23,6 @@ public enum MaritalStatus {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
String sb = "MaritalStatus{" + "description='" + description + '\'' +
......
......@@ -18,10 +18,6 @@ public enum Gender {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
......
......@@ -26,10 +26,6 @@ public enum IdType {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
......
......@@ -79,14 +79,4 @@ public enum SmsMerchant {
}
return merchant;
}
/*
public static void main(String[] args){
String name = "FLYING_cow_TO_BORROW";
name = null;
name = Optional.ofNullable(name).orElse("");
System.out.println(SmsMerchant.of(name.toUpperCase()));
System.out.println(SmsMerchant.valueOf(name.toUpperCase()));
}
*/
}
......@@ -78,7 +78,7 @@ public class SmsServiceImpl implements ISmsService {
getSmsSender().sendMsg(msgParams);
log.info("注册完成,发送短信, phoneNo:{}", phoneNo);
} catch (Exception e) {
e.printStackTrace();
log.error("注册完成短信发送异常", e);
}
}
......
......@@ -42,4 +42,6 @@ public interface IUserDetailService {
* @return 受影响的行数
*/
int updateIdCard(String name, String idNo, String phoneNo);
List<UserDetail> findByPhones(List<String> phoneNos);
}
package cn.quantgroup.xyqb.service.user;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.model.UserInfo;
import java.util.List;
import java.util.Map;
......@@ -39,4 +40,6 @@ public interface IUserService {
*/
int forbiddenUser(Boolean enable, String phoneNo);
List<UserInfo> findUserInfosByPhones(List<String> phones);
}
......@@ -197,4 +197,13 @@ public class UserDetailServiceImpl implements IUserDetailService {
}
return 0;
}
@Override
public List<UserDetail> findByPhones(List<String> phoneNos) {
List<UserDetail> userDetails = userDetailRepository.findAll((root, query, cb) -> {
query.where(root.get("phoneNo").as(String.class).in(phoneNos));
return query.getRestriction();
});
return userDetails;
}
}
......@@ -2,9 +2,13 @@ package cn.quantgroup.xyqb.service.user.impl;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDetail;
import cn.quantgroup.xyqb.model.UserInfo;
import cn.quantgroup.xyqb.repository.IUserRepository;
import cn.quantgroup.xyqb.service.user.IUserDetailService;
import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.util.PasswordUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
......@@ -16,6 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.sql.Timestamp;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
......@@ -31,6 +36,9 @@ public class UserServiceImpl implements IUserService {
RedisTemplate<String, String> stringRedisTemplate;
@Autowired
private IUserRepository userRepository;
@Autowired
private IUserDetailService userDetailService;
@Override
@Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager")
......@@ -137,4 +145,34 @@ public class UserServiceImpl implements IUserService {
return userRepository.forbiddenUser(enable, phoneNo);
}
@Override
public List<UserInfo> findUserInfosByPhones(List<String> phones) {
List<User> users = findByPhones(phones);
if(CollectionUtils.isEmpty(phones)){
return Collections.emptyList();
}
List<UserDetail> userDetails= userDetailService.findByPhones(phones);
if (!CollectionUtils.isEmpty(users)) {
Map<Long, User> userMap = Maps.newHashMapWithExpectedSize(users.size());
users.forEach(user -> {
userMap.put(user.getId(), user);
});
if (!CollectionUtils.isEmpty(userDetails)) {
List<UserInfo> userInfos = Lists.newArrayListWithExpectedSize(userDetails.size());
userDetails.forEach(userDetail -> {
UserInfo userInfo = new UserInfo(userMap.get(userDetail.getUserId()), userDetail);
userInfos.add(userInfo);
});
return userInfos;
}
}
return Collections.emptyList();
}
}
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