Commit 9a9963ab authored by 唐峰's avatar 唐峰

用户信息查询,处理租户值获取问题

parent af9f0141
package cn.quantgroup.xyqb.controller.api.v2; package cn.quantgroup.xyqb.controller.api.v2;
import cn.quantgroup.xyqb.controller.IBaseController;
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.BaseEntity;
...@@ -25,7 +26,7 @@ import java.util.stream.Collectors; ...@@ -25,7 +26,7 @@ import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("/api/v2/user") @RequestMapping("/api/v2/user")
public class UserApiV2Controller { public class UserApiV2Controller implements IBaseController {
private final IUserRepository userRepository; private final IUserRepository userRepository;
private final IWechatService wechatService; private final IWechatService wechatService;
...@@ -44,7 +45,8 @@ public class UserApiV2Controller { ...@@ -44,7 +45,8 @@ public class UserApiV2Controller {
*/ */
@PostMapping("info") @PostMapping("info")
public JsonResult<UserBean> info(@RequestBody UserInfoReq userInfoReq) { public JsonResult<UserBean> info(@RequestBody UserInfoReq userInfoReq) {
SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession(); //SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession();
Integer tenantId = getTenantId();
User user = null; User user = null;
WechatUserInfo wechatUserInfo = null; WechatUserInfo wechatUserInfo = null;
//1、校验 //1、校验
...@@ -56,41 +58,41 @@ public class UserApiV2Controller { ...@@ -56,41 +58,41 @@ 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(), tenantId);
if (StringUtils.isNotEmpty(userInfoReq.getAppId())) { if (StringUtils.isNotEmpty(userInfoReq.getAppId())) {
wechatUserInfo = wechatService.queryByUserIdAndAppId(userInfoReq.getUserId(), userInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.queryByUserIdAndAppId(userInfoReq.getUserId(), userInfoReq.getAppId(), tenantId);
} }
} }
if (StringUtils.isNotEmpty(userInfoReq.getUuid())) { if (StringUtils.isNotEmpty(userInfoReq.getUuid())) {
user = userRepository.findByUuidAndTenantId(userInfoReq.getUuid(), sessionStruct.getTenantId()); user = userRepository.findByUuidAndTenantId(userInfoReq.getUuid(), tenantId);
if (user != null && StringUtils.isNotEmpty(userInfoReq.getAppId())) { if (user != null && StringUtils.isNotEmpty(userInfoReq.getAppId())) {
wechatUserInfo = wechatService.queryByUserIdAndAppId(user.getId(), userInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.queryByUserIdAndAppId(user.getId(), userInfoReq.getAppId(), tenantId);
} }
} }
if (StringUtils.isNotEmpty(userInfoReq.getPhoneNo())) { if (StringUtils.isNotEmpty(userInfoReq.getPhoneNo())) {
user = userRepository.findByPhoneNoAndTenantId(userInfoReq.getPhoneNo(), sessionStruct.getTenantId()); user = userRepository.findByPhoneNoAndTenantId(userInfoReq.getPhoneNo(), tenantId);
if (user != null && StringUtils.isNotEmpty(userInfoReq.getAppId())) { if (user != null && StringUtils.isNotEmpty(userInfoReq.getAppId())) {
wechatUserInfo = wechatService.queryByUserIdAndAppId(user.getId(), userInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.queryByUserIdAndAppId(user.getId(), userInfoReq.getAppId(), tenantId);
} }
} }
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(), tenantId);
if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) { if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) {
throw new BizException(BizExceptionEnum.UN_EXIT_USER); throw new BizException(BizExceptionEnum.UN_EXIT_USER);
} }
user = userRepository.findByIdAndTenantId(wechatUserInfo.getUserId(), sessionStruct.getTenantId()); user = userRepository.findByIdAndTenantId(wechatUserInfo.getUserId(), tenantId);
} }
if (StringUtils.isNotEmpty(userInfoReq.getAppId()) && StringUtils.isNotEmpty(userInfoReq.getUnionId())) { if (StringUtils.isNotEmpty(userInfoReq.getAppId()) && StringUtils.isNotEmpty(userInfoReq.getUnionId())) {
wechatUserInfo = wechatService.findByUnionIdAndAppIdAndTenantId(userInfoReq.getUnionId(), userInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.findByUnionIdAndAppIdAndTenantId(userInfoReq.getUnionId(), userInfoReq.getAppId(), tenantId);
if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) { if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) {
throw new BizException(BizExceptionEnum.UN_EXIT_USER); throw new BizException(BizExceptionEnum.UN_EXIT_USER);
} }
user = userRepository.findByIdAndTenantId(wechatUserInfo.getUserId(), sessionStruct.getTenantId()); user = userRepository.findByIdAndTenantId(wechatUserInfo.getUserId(), tenantId);
} }
//3、异常处理 //3、异常处理
...@@ -110,7 +112,8 @@ public class UserApiV2Controller { ...@@ -110,7 +112,8 @@ public class UserApiV2Controller {
*/ */
@PostMapping("/batchInfo") @PostMapping("/batchInfo")
public JsonResult<List<UserBean>> batchInfo(@RequestBody BatchInfoReq batchInfoReq) { public JsonResult<List<UserBean>> batchInfo(@RequestBody BatchInfoReq batchInfoReq) {
SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession(); //SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession();
Integer tenantId = getTenantId();
List<User> userList = null; List<User> userList = null;
List<WechatUserInfo> wechatUserInfo = null; List<WechatUserInfo> wechatUserInfo = null;
//1、校验 //1、校验
...@@ -124,47 +127,47 @@ public class UserApiV2Controller { ...@@ -124,47 +127,47 @@ 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(), tenantId);
if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) { if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) {
List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList()); List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList());
wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), tenantId);
} }
} }
if (CollectionUtils.isNotEmpty(batchInfoReq.getUuids())) { if (CollectionUtils.isNotEmpty(batchInfoReq.getUuids())) {
userList = userRepository.findByUuidInAndTenantId(batchInfoReq.getUuids(), sessionStruct.getTenantId()); userList = userRepository.findByUuidInAndTenantId(batchInfoReq.getUuids(), tenantId);
if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) { if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) {
List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList()); List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList());
wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), tenantId);
} }
} }
if (CollectionUtils.isNotEmpty(batchInfoReq.getPhoneNos())) { if (CollectionUtils.isNotEmpty(batchInfoReq.getPhoneNos())) {
userList = userRepository.findByPhoneNoInAndTenantId(batchInfoReq.getPhoneNos(), sessionStruct.getTenantId()); userList = userRepository.findByPhoneNoInAndTenantId(batchInfoReq.getPhoneNos(), tenantId);
if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) { if (CollectionUtils.isNotEmpty(userList) && StringUtils.isNotEmpty(batchInfoReq.getAppId())) {
List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList()); List<Long> uuids = userList.stream().map(BaseEntity::getId).collect(Collectors.toList());
wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), sessionStruct.getTenantId()); wechatUserInfo = wechatService.queryListByUserIdAndAppId(uuids, batchInfoReq.getAppId(), tenantId);
} }
} }
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(), tenantId);
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);
} }
userList = userRepository.findByIdInAndTenantId(userIds, sessionStruct.getTenantId()); userList = userRepository.findByIdInAndTenantId(userIds, tenantId);
} }
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(), tenantId);
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);
} }
userList = userRepository.findByIdInAndTenantId(userIds, sessionStruct.getTenantId()); userList = userRepository.findByIdInAndTenantId(userIds, tenantId);
} }
//3、异常处理 //3、异常处理
......
package cn.quantgroup.xyqb.controller.api.v2; package cn.quantgroup.xyqb.controller.api.v2;
import cn.quantgroup.xyqb.Constants; import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.controller.IBaseController;
import cn.quantgroup.xyqb.model.JsonResult; import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.model.session.SessionStruct; import cn.quantgroup.xyqb.model.session.SessionStruct;
import cn.quantgroup.xyqb.model.webchat.AccessTokenResponse; import cn.quantgroup.xyqb.model.webchat.AccessTokenResponse;
...@@ -15,15 +16,16 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -15,15 +16,16 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/api/v2/wechat") @RequestMapping("/api/v2/wechat")
public class WechatApiV2Controller { public class WechatApiV2Controller implements IBaseController {
@Autowired @Autowired
@Qualifier("stringRedisTemplate") @Qualifier("stringRedisTemplate")
private RedisTemplate<String, String> redisTemplate; private RedisTemplate<String, String> redisTemplate;
@GetMapping("/accessToken") @GetMapping("/accessToken")
public JsonResult<String> token(String appId) { public JsonResult<String> token(String appId) {
SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession(); //SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession();
AccessTokenResponse accessTokenResponse = JSON.parseObject(redisTemplate.opsForValue().get(Constants.WECHAT_ACCESS_TOKEN_REDIS + sessionStruct.getTenantId() + ":" + appId), AccessTokenResponse.class); Integer tenantId = getTenantId();
AccessTokenResponse accessTokenResponse = JSON.parseObject(redisTemplate.opsForValue().get(Constants.WECHAT_ACCESS_TOKEN_REDIS + tenantId + ":" + appId), AccessTokenResponse.class);
return JsonResult.buildSuccessResultGeneric(accessTokenResponse.getAccessToken()); return JsonResult.buildSuccessResultGeneric(accessTokenResponse.getAccessToken());
} }
} }
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