|
@@ -78,7 +78,11 @@ public class UserBindingServiceImpl implements UserBindingService {
|
|
|
.le(request.getEndTime() != null, UserBinding::getCreateTime, request.getEndTime());
|
|
.le(request.getEndTime() != null, UserBinding::getCreateTime, request.getEndTime());
|
|
|
|
|
|
|
|
if (bindingType != null && !bindingType.isEmpty()) {
|
|
if (bindingType != null && !bindingType.isEmpty()) {
|
|
|
- wrapper.eq(UserBinding::getBindingType, UserBindingType.fromCode(bindingType));
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ wrapper.eq(UserBinding::getBindingType, UserBindingType.fromCode(bindingType));
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ // 如果绑定类型无效,则忽略该条件,查询所有类型
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
wrapper.orderByDesc(UserBinding::getCreateTime);
|
|
wrapper.orderByDesc(UserBinding::getCreateTime);
|
|
@@ -102,6 +106,8 @@ public class UserBindingServiceImpl implements UserBindingService {
|
|
|
UserBindingResponse resp = new UserBindingResponse();
|
|
UserBindingResponse resp = new UserBindingResponse();
|
|
|
BeanUtils.copyProperties(r, resp);
|
|
BeanUtils.copyProperties(r, resp);
|
|
|
resp.setId(r.getId().toString());
|
|
resp.setId(r.getId().toString());
|
|
|
|
|
+ resp.setPatientUserId(r.getPatientUserId().toString());
|
|
|
|
|
+ resp.setBoundUserId(r.getBoundUserId().toString());
|
|
|
if (r.getBindingType() != null) {
|
|
if (r.getBindingType() != null) {
|
|
|
resp.setBindingType(r.getBindingType().getCode());
|
|
resp.setBindingType(r.getBindingType().getCode());
|
|
|
}
|
|
}
|
|
@@ -133,24 +139,28 @@ public class UserBindingServiceImpl implements UserBindingService {
|
|
|
.le(request.getEndTime() != null, UserBinding::getCreateTime, request.getEndTime());
|
|
.le(request.getEndTime() != null, UserBinding::getCreateTime, request.getEndTime());
|
|
|
|
|
|
|
|
if (bindingType != null && !bindingType.isEmpty()) {
|
|
if (bindingType != null && !bindingType.isEmpty()) {
|
|
|
- wrapper.eq(UserBinding::getBindingType, UserBindingType.fromCode(bindingType));
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ wrapper.eq(UserBinding::getBindingType, UserBindingType.fromCode(bindingType));
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ // 如果绑定类型无效,则忽略该条件,查询所有类型
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
wrapper.orderByDesc(UserBinding::getCreateTime);
|
|
wrapper.orderByDesc(UserBinding::getCreateTime);
|
|
|
|
|
|
|
|
Page<UserBinding> result = userBindingMapper.selectPage(page, wrapper);
|
|
Page<UserBinding> result = userBindingMapper.selectPage(page, wrapper);
|
|
|
|
|
|
|
|
- // 批量查询被绑定用户信息,避免 N+1
|
|
|
|
|
- Set<Long> boundUserIds = result.getRecords().stream()
|
|
|
|
|
- .map(UserBinding::getBoundUserId)
|
|
|
|
|
|
|
+ // 批量查询患者用户信息,避免 N+1
|
|
|
|
|
+ Set<Long> patientUserIds = result.getRecords().stream()
|
|
|
|
|
+ .map(UserBinding::getPatientUserId)
|
|
|
.filter(id -> id != null)
|
|
.filter(id -> id != null)
|
|
|
.collect(Collectors.toSet());
|
|
.collect(Collectors.toSet());
|
|
|
|
|
|
|
|
Map<Long, work.baiyun.chronicdiseaseapp.model.po.UserInfo> userInfoMap;
|
|
Map<Long, work.baiyun.chronicdiseaseapp.model.po.UserInfo> userInfoMap;
|
|
|
- if (boundUserIds.isEmpty()) {
|
|
|
|
|
|
|
+ if (patientUserIds.isEmpty()) {
|
|
|
userInfoMap = new HashMap<>();
|
|
userInfoMap = new HashMap<>();
|
|
|
} else {
|
|
} else {
|
|
|
- List<work.baiyun.chronicdiseaseapp.model.po.UserInfo> userInfos = userInfoMapper.selectBatchIds(boundUserIds);
|
|
|
|
|
|
|
+ List<work.baiyun.chronicdiseaseapp.model.po.UserInfo> userInfos = userInfoMapper.selectBatchIds(patientUserIds);
|
|
|
userInfoMap = userInfos.stream().collect(Collectors.toMap(work.baiyun.chronicdiseaseapp.model.po.UserInfo::getId, u -> u));
|
|
userInfoMap = userInfos.stream().collect(Collectors.toMap(work.baiyun.chronicdiseaseapp.model.po.UserInfo::getId, u -> u));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -158,11 +168,14 @@ public class UserBindingServiceImpl implements UserBindingService {
|
|
|
UserBindingResponse resp = new UserBindingResponse();
|
|
UserBindingResponse resp = new UserBindingResponse();
|
|
|
BeanUtils.copyProperties(r, resp);
|
|
BeanUtils.copyProperties(r, resp);
|
|
|
resp.setId(r.getId().toString());
|
|
resp.setId(r.getId().toString());
|
|
|
|
|
+ resp.setPatientUserId(r.getPatientUserId().toString());
|
|
|
|
|
+ resp.setBoundUserId(r.getBoundUserId().toString());
|
|
|
if (r.getBindingType() != null) {
|
|
if (r.getBindingType() != null) {
|
|
|
resp.setBindingType(r.getBindingType().getCode());
|
|
resp.setBindingType(r.getBindingType().getCode());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- work.baiyun.chronicdiseaseapp.model.po.UserInfo ui = userInfoMap.get(r.getBoundUserId());
|
|
|
|
|
|
|
+ // 获取患者用户信息而不是绑定用户信息
|
|
|
|
|
+ work.baiyun.chronicdiseaseapp.model.po.UserInfo ui = userInfoMap.get(r.getPatientUserId());
|
|
|
if (ui != null) {
|
|
if (ui != null) {
|
|
|
resp.setBoundUserNickname(ui.getNickname());
|
|
resp.setBoundUserNickname(ui.getNickname());
|
|
|
resp.setBoundUserPhone(ui.getPhone());
|
|
resp.setBoundUserPhone(ui.getPhone());
|