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 { ...@@ -112,7 +112,6 @@ public class InnerController implements IBaseController {
} }
UserRet userRet = new UserRet(user); UserRet userRet = new UserRet(user);
return JsonResult.buildSuccessResult("", userRet); return JsonResult.buildSuccessResult("", userRet);
} }
...@@ -952,8 +951,11 @@ public class InnerController implements IBaseController { ...@@ -952,8 +951,11 @@ public class InnerController implements IBaseController {
return JsonResult.buildErrorStateResult("传入用户手机号不可为空", null); return JsonResult.buildErrorStateResult("传入用户手机号不可为空", null);
} }
private static long MAX_SIZE = 500L;
/** /**
* 手机号批量查询uuid * 手机号批量查询uuid
* todo 代码增加读写分离. 这里需要查从库
* *
* @param userPhones * @param userPhones
* @return * @return
...@@ -961,7 +963,29 @@ public class InnerController implements IBaseController { ...@@ -961,7 +963,29 @@ public class InnerController implements IBaseController {
@RequestMapping("/uuid/findByPhones") @RequestMapping("/uuid/findByPhones")
public JsonResult getUuidsByPhones(@RequestParam("userPhones") String userPhones) { 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 { ...@@ -23,10 +23,6 @@ public enum MaritalStatus {
return description; return description;
} }
public void setDescription(String description) {
this.description = description;
}
@Override @Override
public String toString() { public String toString() {
String sb = "MaritalStatus{" + "description='" + description + '\'' + String sb = "MaritalStatus{" + "description='" + description + '\'' +
......
...@@ -18,10 +18,6 @@ public enum Gender { ...@@ -18,10 +18,6 @@ public enum Gender {
return name; return name;
} }
public void setName(String name) {
this.name = name;
}
@Override @Override
public String toString() { public String toString() {
return name; return name;
......
...@@ -26,10 +26,6 @@ public enum IdType { ...@@ -26,10 +26,6 @@ public enum IdType {
return name; return name;
} }
public void setName(String name) {
this.name = name;
}
@Override @Override
public String toString() { public String toString() {
return name; return name;
......
...@@ -79,14 +79,4 @@ public enum SmsMerchant { ...@@ -79,14 +79,4 @@ public enum SmsMerchant {
} }
return merchant; 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 { ...@@ -78,7 +78,7 @@ public class SmsServiceImpl implements ISmsService {
getSmsSender().sendMsg(msgParams); getSmsSender().sendMsg(msgParams);
log.info("注册完成,发送短信, phoneNo:{}", phoneNo); log.info("注册完成,发送短信, phoneNo:{}", phoneNo);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error("注册完成短信发送异常", e);
} }
} }
......
...@@ -42,4 +42,6 @@ public interface IUserDetailService { ...@@ -42,4 +42,6 @@ public interface IUserDetailService {
* @return 受影响的行数 * @return 受影响的行数
*/ */
int updateIdCard(String name, String idNo, String phoneNo); int updateIdCard(String name, String idNo, String phoneNo);
List<UserDetail> findByPhones(List<String> phoneNos);
} }
package cn.quantgroup.xyqb.service.user; package cn.quantgroup.xyqb.service.user;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.model.UserInfo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -39,4 +40,6 @@ public interface IUserService { ...@@ -39,4 +40,6 @@ public interface IUserService {
*/ */
int forbiddenUser(Boolean enable, String phoneNo); int forbiddenUser(Boolean enable, String phoneNo);
List<UserInfo> findUserInfosByPhones(List<String> phones);
} }
...@@ -197,4 +197,13 @@ public class UserDetailServiceImpl implements IUserDetailService { ...@@ -197,4 +197,13 @@ public class UserDetailServiceImpl implements IUserDetailService {
} }
return 0; 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; ...@@ -2,9 +2,13 @@ package cn.quantgroup.xyqb.service.user.impl;
import cn.quantgroup.xyqb.Constants; import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.entity.User; 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.repository.IUserRepository;
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.PasswordUtil; import cn.quantgroup.xyqb.util.PasswordUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -16,6 +20,7 @@ import org.springframework.stereotype.Service; ...@@ -16,6 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -31,6 +36,9 @@ public class UserServiceImpl implements IUserService { ...@@ -31,6 +36,9 @@ public class UserServiceImpl implements IUserService {
RedisTemplate<String, String> stringRedisTemplate; RedisTemplate<String, String> stringRedisTemplate;
@Autowired @Autowired
private IUserRepository userRepository; private IUserRepository userRepository;
@Autowired
private IUserDetailService userDetailService;
@Override @Override
@Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager") @Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager")
...@@ -137,4 +145,34 @@ public class UserServiceImpl implements IUserService { ...@@ -137,4 +145,34 @@ public class UserServiceImpl implements IUserService {
return userRepository.forbiddenUser(enable, phoneNo); 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