Commit 8159ff73 authored by 王亮's avatar 王亮

add createdAt at User query.

parent 87c73958
...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.controller.api.v2; ...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.controller.api.v2;
import cn.quantgroup.xyqb.controller.req.v2.BatchInfoReq; import cn.quantgroup.xyqb.controller.req.v2.BatchInfoReq;
import cn.quantgroup.xyqb.controller.req.v2.UserInfoReq; import cn.quantgroup.xyqb.controller.req.v2.UserInfoReq;
import cn.quantgroup.xyqb.entity.BaseEntity;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.WechatUserInfo; import cn.quantgroup.xyqb.entity.WechatUserInfo;
import cn.quantgroup.xyqb.exception.BizException; import cn.quantgroup.xyqb.exception.BizException;
...@@ -56,16 +57,26 @@ public class UserApiV2Controller { ...@@ -56,16 +57,26 @@ public class UserApiV2Controller {
//2、查询 //2、查询
if (userInfoReq.getUserId() != null) { if (userInfoReq.getUserId() != null) {
user = userRepository.findByIdAndTenantId(userInfoReq.getUserId(), sessionStruct.getTenantId()); user = userRepository.findByIdAndTenantId(userInfoReq.getUserId(), sessionStruct.getTenantId());
if (StringUtils.isNotEmpty(userInfoReq.getAppId())) {
wechatUserInfo = wechatService.queryByUserIdAndAppId(userInfoReq.getUserId(), userInfoReq.getAppId(), sessionStruct.getTenantId());
}
} }
if (StringUtils.isNotEmpty(userInfoReq.getUuid())) { if (StringUtils.isNotEmpty(userInfoReq.getUuid())) {
user = userRepository.findByUuidAndTenantId(userInfoReq.getUuid(), sessionStruct.getTenantId()); user = userRepository.findByUuidAndTenantId(userInfoReq.getUuid(), sessionStruct.getTenantId());
if (user != null && StringUtils.isNotEmpty(userInfoReq.getAppId())) {
wechatUserInfo = wechatService.queryByUserIdAndAppId(user.getId(), userInfoReq.getAppId(), sessionStruct.getTenantId());
}
} }
if (StringUtils.isNotEmpty(userInfoReq.getPhoneNo())) { if (StringUtils.isNotEmpty(userInfoReq.getPhoneNo())) {
user = userRepository.findByPhoneNoAndTenantId(userInfoReq.getPhoneNo(), sessionStruct.getTenantId()); user = userRepository.findByPhoneNoAndTenantId(userInfoReq.getPhoneNo(), sessionStruct.getTenantId());
if (user != null && StringUtils.isNotEmpty(userInfoReq.getAppId())) {
wechatUserInfo = wechatService.queryByUserIdAndAppId(user.getId(), userInfoReq.getAppId(), sessionStruct.getTenantId());
}
} }
if (StringUtils.isNotEmpty(userInfoReq.getAppId()) && StringUtils.isNotEmpty(userInfoReq.getOpenId())) { if (StringUtils.isNotEmpty(userInfoReq.getAppId()) && StringUtils.isNotEmpty(userInfoReq.getOpenId())) {
wechatUserInfo = wechatService.findWechatUserInfoFromDb(userInfoReq.getOpenId(), userInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.findWechatUserInfoFromDb(userInfoReq.getOpenId(), userInfoReq.getAppId(), sessionStruct.getTenantId());
if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) { if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) {
...@@ -114,20 +125,31 @@ public class UserApiV2Controller { ...@@ -114,20 +125,31 @@ public class UserApiV2Controller {
//2、查询 //2、查询
if (CollectionUtils.isNotEmpty(batchInfoReq.getUserIds())) { if (CollectionUtils.isNotEmpty(batchInfoReq.getUserIds())) {
userList = userRepository.findByIdInAndTenantId(batchInfoReq.getUserIds(), sessionStruct.getTenantId()); userList = userRepository.findByIdInAndTenantId(batchInfoReq.getUserIds(), sessionStruct.getTenantId());
if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) {
List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList());
wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), sessionStruct.getTenantId());
}
} }
if (CollectionUtils.isNotEmpty(batchInfoReq.getUuids())) { if (CollectionUtils.isNotEmpty(batchInfoReq.getUuids())) {
userList = userRepository.findByUuidInAndTenantId(batchInfoReq.getUuids(), sessionStruct.getTenantId()); userList = userRepository.findByUuidInAndTenantId(batchInfoReq.getUuids(), sessionStruct.getTenantId());
if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) {
List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList());
wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), sessionStruct.getTenantId());
}
} }
if (CollectionUtils.isNotEmpty(batchInfoReq.getPhoneNos())) { if (CollectionUtils.isNotEmpty(batchInfoReq.getPhoneNos())) {
userList = userRepository.findByPhoneNoInAndTenantId(batchInfoReq.getPhoneNos(), sessionStruct.getTenantId()); userList = userRepository.findByPhoneNoInAndTenantId(batchInfoReq.getPhoneNos(), sessionStruct.getTenantId());
if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) {
List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList());
wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), sessionStruct.getTenantId());
}
} }
if (StringUtils.isNotEmpty(batchInfoReq.getAppId()) && CollectionUtils.isNotEmpty(batchInfoReq.getOpenIds())) { if (StringUtils.isNotEmpty(batchInfoReq.getAppId()) && CollectionUtils.isNotEmpty(batchInfoReq.getOpenIds())) {
wechatUserInfo = wechatService.findWechatUserInfoFromDb(batchInfoReq.getOpenIds(), batchInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.findWechatUserInfoFromDb(batchInfoReq.getOpenIds(), batchInfoReq.getAppId(), sessionStruct.getTenantId());
List<Long> userIds = wechatUserInfo.stream().map(WechatUserInfo::getUserId).collect(Collectors.toList()); List<Long> userIds = wechatUserInfo.stream().map(WechatUserInfo::getUserId).collect(Collectors.toList());
;
if (CollectionUtils.isEmpty(wechatUserInfo) || CollectionUtils.isEmpty(userIds)) { if (CollectionUtils.isEmpty(wechatUserInfo) || CollectionUtils.isEmpty(userIds)) {
throw new BizException(BizExceptionEnum.UN_EXIT_USER); throw new BizException(BizExceptionEnum.UN_EXIT_USER);
} }
...@@ -138,7 +160,6 @@ public class UserApiV2Controller { ...@@ -138,7 +160,6 @@ public class UserApiV2Controller {
if (StringUtils.isNotEmpty(batchInfoReq.getAppId()) && CollectionUtils.isNotEmpty(batchInfoReq.getUnionIds())) { if (StringUtils.isNotEmpty(batchInfoReq.getAppId()) && CollectionUtils.isNotEmpty(batchInfoReq.getUnionIds())) {
wechatUserInfo = wechatService.findUnionIdsAndOpenIdAndTenantId(batchInfoReq.getUnionIds(), batchInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.findUnionIdsAndOpenIdAndTenantId(batchInfoReq.getUnionIds(), batchInfoReq.getAppId(), sessionStruct.getTenantId());
List<Long> userIds = wechatUserInfo.stream().map(WechatUserInfo::getUserId).collect(Collectors.toList()); List<Long> userIds = wechatUserInfo.stream().map(WechatUserInfo::getUserId).collect(Collectors.toList());
;
if (CollectionUtils.isEmpty(wechatUserInfo) || CollectionUtils.isEmpty(userIds)) { if (CollectionUtils.isEmpty(wechatUserInfo) || CollectionUtils.isEmpty(userIds)) {
throw new BizException(BizExceptionEnum.UN_EXIT_USER); throw new BizException(BizExceptionEnum.UN_EXIT_USER);
} }
...@@ -151,7 +172,7 @@ public class UserApiV2Controller { ...@@ -151,7 +172,7 @@ public class UserApiV2Controller {
throw new BizException(BizExceptionEnum.UN_EXIT_USER); throw new BizException(BizExceptionEnum.UN_EXIT_USER);
} }
return JsonResult.buildSuccessResultGeneric(UserBean.from(userList,wechatUserInfo)); return JsonResult.buildSuccessResultGeneric(UserBean.from(userList, wechatUserInfo));
} }
} }
...@@ -3,20 +3,18 @@ package cn.quantgroup.xyqb.model; ...@@ -3,20 +3,18 @@ package cn.quantgroup.xyqb.model;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.WechatUserInfo; import cn.quantgroup.xyqb.entity.WechatUserInfo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Optional;
@Data @Data
public class UserBean { public class UserBean {
private Long userId; private Long userId;
private String openId; private List<Wechat> wechatList;
private String appId;
private String unionId;
private String phoneNo; private String phoneNo;
private Long registeredFrom; private Long registeredFrom;
...@@ -26,9 +24,17 @@ public class UserBean { ...@@ -26,9 +24,17 @@ public class UserBean {
private Boolean enable; private Boolean enable;
private Integer tenantId; private Integer tenantId;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime createdAt; private LocalDateTime createdAt;
@Builder
@Getter
public static class Wechat {
private String openId;
private String appId;
private String unionId;
}
public static UserBean from(User user, WechatUserInfo wechatUserInfo) { public static UserBean from(User user, WechatUserInfo wechatUserInfo) {
UserBean userBean = new UserBean(); UserBean userBean = new UserBean();
...@@ -40,9 +46,10 @@ public class UserBean { ...@@ -40,9 +46,10 @@ public class UserBean {
userBean.setTenantId(user.getTenantId()); userBean.setTenantId(user.getTenantId());
userBean.setCreatedAt(user.getCreatedAt()); userBean.setCreatedAt(user.getCreatedAt());
if (wechatUserInfo != null) { if (wechatUserInfo != null) {
userBean.setOpenId(wechatUserInfo.getOpenId()); userBean.setWechatList(Collections.singletonList(Wechat.builder()
userBean.setUnionId(wechatUserInfo.getUnionId()); .openId(wechatUserInfo.getOpenId())
userBean.setAppId(wechatUserInfo.getAppId()); .unionId(wechatUserInfo.getUnionId())
.appId(wechatUserInfo.getAppId()).build()));
} }
return userBean; return userBean;
} }
...@@ -64,9 +71,10 @@ public class UserBean { ...@@ -64,9 +71,10 @@ public class UserBean {
if (optionalWechatUserInfo.isPresent()) { if (optionalWechatUserInfo.isPresent()) {
WechatUserInfo wechatUserInfo = optionalWechatUserInfo.get(); WechatUserInfo wechatUserInfo = optionalWechatUserInfo.get();
userBean.setOpenId(wechatUserInfo.getOpenId()); userBean.setWechatList(Collections.singletonList(Wechat.builder()
userBean.setUnionId(wechatUserInfo.getUnionId()); .openId(wechatUserInfo.getOpenId())
userBean.setAppId(wechatUserInfo.getAppId()); .unionId(wechatUserInfo.getUnionId())
.appId(wechatUserInfo.getAppId()).build()));
} }
} }
result.add(userBean); result.add(userBean);
......
...@@ -103,6 +103,9 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon ...@@ -103,6 +103,9 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
* 通过userId查询相关绑定微信记录 * 通过userId查询相关绑定微信记录
*/ */
List<WechatUserInfo> findByUserIdAndTenantId(Long userId, Integer tenantId); List<WechatUserInfo> findByUserIdAndTenantId(Long userId, Integer tenantId);
WechatUserInfo findByUserIdAndAppIdAndTenantId(Long userId, String appId,Integer tenantId);
List<WechatUserInfo> findByUserIdInAndAppIdAndTenantId(List<Long> userIds,String appId, Integer tenantId);
List<WechatUserInfo> findByPhoneNoAndTenantId(String phoneNo, Integer tenantId); List<WechatUserInfo> findByPhoneNoAndTenantId(String phoneNo, Integer tenantId);
......
...@@ -49,6 +49,8 @@ public interface IWechatService { ...@@ -49,6 +49,8 @@ public interface IWechatService {
List<WechatUserInfo> queryListByUserId(Long userId,Integer tenantId); List<WechatUserInfo> queryListByUserId(Long userId,Integer tenantId);
WechatUserInfo queryByUserIdAndAppId(Long userId,String appId,Integer tenantId);
List<WechatUserInfo> queryListByUserIdAndAppId(List<Long> userIds,String appId,Integer tenantId);
List<WechatUserInfo> queryListByUnionId(String unionId,Integer tenantId); List<WechatUserInfo> queryListByUnionId(String unionId,Integer tenantId);
......
...@@ -281,6 +281,17 @@ public class WechatServiceImpl implements IWechatService { ...@@ -281,6 +281,17 @@ public class WechatServiceImpl implements IWechatService {
return weChatUserRepository.findByUserIdAndTenantId(userId,tenantId); return weChatUserRepository.findByUserIdAndTenantId(userId,tenantId);
} }
@Override
public WechatUserInfo queryByUserIdAndAppId(Long userId,String appId,Integer tenantId){
return weChatUserRepository.findByUserIdAndAppIdAndTenantId(userId,appId,tenantId);
}
@Override
public List<WechatUserInfo> queryListByUserIdAndAppId(List<Long> userIds,String appId,Integer tenantId){
return weChatUserRepository.findByUserIdInAndAppIdAndTenantId(userIds,appId,tenantId);
}
@Override @Override
public List<WechatUserInfo> queryListByUnionId(String unionId,Integer tenantId) { public List<WechatUserInfo> queryListByUnionId(String unionId,Integer tenantId) {
return weChatUserRepository.findByUnionIdAndTenantId(unionId,tenantId); return weChatUserRepository.findByUnionIdAndTenantId(unionId,tenantId);
......
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