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

add createdAt at User query.

parent 87c73958
......@@ -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.UserInfoReq;
import cn.quantgroup.xyqb.entity.BaseEntity;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.WechatUserInfo;
import cn.quantgroup.xyqb.exception.BizException;
......@@ -56,15 +57,25 @@ public class UserApiV2Controller {
//2、查询
if (userInfoReq.getUserId() != null) {
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())) {
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())) {
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())) {
wechatUserInfo = wechatService.findWechatUserInfoFromDb(userInfoReq.getOpenId(), userInfoReq.getAppId(), sessionStruct.getTenantId());
......@@ -114,20 +125,31 @@ public class UserApiV2Controller {
//2、查询
if (CollectionUtils.isNotEmpty(batchInfoReq.getUserIds())) {
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())) {
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())) {
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())) {
wechatUserInfo = wechatService.findWechatUserInfoFromDb(batchInfoReq.getOpenIds(), batchInfoReq.getAppId(), sessionStruct.getTenantId());
List<Long> userIds = wechatUserInfo.stream().map(WechatUserInfo::getUserId).collect(Collectors.toList());
;
if (CollectionUtils.isEmpty(wechatUserInfo) || CollectionUtils.isEmpty(userIds)) {
throw new BizException(BizExceptionEnum.UN_EXIT_USER);
}
......@@ -138,7 +160,6 @@ public class UserApiV2Controller {
if (StringUtils.isNotEmpty(batchInfoReq.getAppId()) && CollectionUtils.isNotEmpty(batchInfoReq.getUnionIds())) {
wechatUserInfo = wechatService.findUnionIdsAndOpenIdAndTenantId(batchInfoReq.getUnionIds(), batchInfoReq.getAppId(), sessionStruct.getTenantId());
List<Long> userIds = wechatUserInfo.stream().map(WechatUserInfo::getUserId).collect(Collectors.toList());
;
if (CollectionUtils.isEmpty(wechatUserInfo) || CollectionUtils.isEmpty(userIds)) {
throw new BizException(BizExceptionEnum.UN_EXIT_USER);
}
......@@ -151,7 +172,7 @@ public class UserApiV2Controller {
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;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.WechatUserInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import org.apache.commons.collections.CollectionUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.*;
@Data
public class UserBean {
private Long userId;
private String openId;
private String appId;
private String unionId;
private List<Wechat> wechatList;
private String phoneNo;
private Long registeredFrom;
......@@ -26,9 +24,17 @@ public class UserBean {
private Boolean enable;
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;
@Builder
@Getter
public static class Wechat {
private String openId;
private String appId;
private String unionId;
}
public static UserBean from(User user, WechatUserInfo wechatUserInfo) {
UserBean userBean = new UserBean();
......@@ -40,9 +46,10 @@ public class UserBean {
userBean.setTenantId(user.getTenantId());
userBean.setCreatedAt(user.getCreatedAt());
if (wechatUserInfo != null) {
userBean.setOpenId(wechatUserInfo.getOpenId());
userBean.setUnionId(wechatUserInfo.getUnionId());
userBean.setAppId(wechatUserInfo.getAppId());
userBean.setWechatList(Collections.singletonList(Wechat.builder()
.openId(wechatUserInfo.getOpenId())
.unionId(wechatUserInfo.getUnionId())
.appId(wechatUserInfo.getAppId()).build()));
}
return userBean;
}
......@@ -64,9 +71,10 @@ public class UserBean {
if (optionalWechatUserInfo.isPresent()) {
WechatUserInfo wechatUserInfo = optionalWechatUserInfo.get();
userBean.setOpenId(wechatUserInfo.getOpenId());
userBean.setUnionId(wechatUserInfo.getUnionId());
userBean.setAppId(wechatUserInfo.getAppId());
userBean.setWechatList(Collections.singletonList(Wechat.builder()
.openId(wechatUserInfo.getOpenId())
.unionId(wechatUserInfo.getUnionId())
.appId(wechatUserInfo.getAppId()).build()));
}
}
result.add(userBean);
......
......@@ -103,6 +103,9 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
* 通过userId查询相关绑定微信记录
*/
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);
......
......@@ -49,6 +49,8 @@ public interface IWechatService {
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);
......
......@@ -281,6 +281,17 @@ public class WechatServiceImpl implements IWechatService {
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
public List<WechatUserInfo> queryListByUnionId(String unionId,Integer 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