Commit 8c44ad9b authored by 唐峰's avatar 唐峰

微信根据userId appid查询多个

parent 9270d513
...@@ -14,6 +14,7 @@ import cn.quantgroup.xyqb.model.session.SessionStruct; ...@@ -14,6 +14,7 @@ import cn.quantgroup.xyqb.model.session.SessionStruct;
import cn.quantgroup.xyqb.repository.IUserRepository; import cn.quantgroup.xyqb.repository.IUserRepository;
import cn.quantgroup.xyqb.service.wechat.IWechatService; import cn.quantgroup.xyqb.service.wechat.IWechatService;
import cn.quantgroup.xyqb.session.XyqbSessionContextHolder; import cn.quantgroup.xyqb.session.XyqbSessionContextHolder;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -48,7 +49,7 @@ public class UserApiV2Controller implements IBaseController { ...@@ -48,7 +49,7 @@ public class UserApiV2Controller implements IBaseController {
//SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession(); //SessionStruct sessionStruct = XyqbSessionContextHolder.getXSession();
Integer tenantId = getTenantId(); Integer tenantId = getTenantId();
User user = null; User user = null;
WechatUserInfo wechatUserInfo = null; List<WechatUserInfo> wechatUserInfo = Lists.newArrayList();
//1、校验 //1、校验
if (userInfoReq.getUserId() == null && StringUtils.isEmpty(userInfoReq.getUuid()) if (userInfoReq.getUserId() == null && StringUtils.isEmpty(userInfoReq.getUuid())
&& StringUtils.isEmpty(userInfoReq.getPhoneNo()) && (StringUtils.isEmpty(userInfoReq.getAppId()) && StringUtils.isEmpty(userInfoReq.getOpenId())) && StringUtils.isEmpty(userInfoReq.getPhoneNo()) && (StringUtils.isEmpty(userInfoReq.getAppId()) && StringUtils.isEmpty(userInfoReq.getOpenId()))
...@@ -80,21 +81,23 @@ public class UserApiV2Controller implements IBaseController { ...@@ -80,21 +81,23 @@ public class UserApiV2Controller implements IBaseController {
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(), tenantId); WechatUserInfo wechatUserInfoFromDb = wechatService.findWechatUserInfoFromDb(userInfoReq.getOpenId(), userInfoReq.getAppId(), tenantId);
if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) { if (wechatUserInfo == null || wechatUserInfoFromDb.getUserId() == null) {
//throw new BizException(BizExceptionEnum.UN_EXIT_USER); //throw new BizException(BizExceptionEnum.UN_EXIT_USER);
return JsonResult.buildErrorResultWhithCode(BizExceptionEnum.UN_EXIT_USER.getMsg(),BizExceptionEnum.UN_EXIT_USER.getBusinessCode()); return JsonResult.buildErrorResultWhithCode(BizExceptionEnum.UN_EXIT_USER.getMsg(),BizExceptionEnum.UN_EXIT_USER.getBusinessCode());
} }
user = userRepository.findByIdAndTenantId(wechatUserInfo.getUserId(), tenantId); wechatUserInfo.add(wechatUserInfoFromDb);
user = userRepository.findByIdAndTenantId(wechatUserInfoFromDb.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(), tenantId); WechatUserInfo wechatUserInfoFromDb = wechatService.findByUnionIdAndAppIdAndTenantId(userInfoReq.getUnionId(), userInfoReq.getAppId(), tenantId);
if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) { if (wechatUserInfo == null || wechatUserInfoFromDb.getUserId() == null) {
//throw new BizException(BizExceptionEnum.UN_EXIT_USER); //throw new BizException(BizExceptionEnum.UN_EXIT_USER);
return JsonResult.buildErrorResultWhithCode(BizExceptionEnum.UN_EXIT_USER.getMsg(),BizExceptionEnum.UN_EXIT_USER.getBusinessCode()); return JsonResult.buildErrorResultWhithCode(BizExceptionEnum.UN_EXIT_USER.getMsg(),BizExceptionEnum.UN_EXIT_USER.getBusinessCode());
} }
user = userRepository.findByIdAndTenantId(wechatUserInfo.getUserId(), tenantId); wechatUserInfo.add(wechatUserInfoFromDb);
user = userRepository.findByIdAndTenantId(wechatUserInfoFromDb.getUserId(), tenantId);
} }
//3、异常处理 //3、异常处理
......
...@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.model; ...@@ -3,6 +3,7 @@ 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 com.google.common.collect.Lists;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.Getter; import lombok.Getter;
...@@ -36,7 +37,7 @@ public class UserBean { ...@@ -36,7 +37,7 @@ public class UserBean {
} }
public static UserBean from(User user, WechatUserInfo wechatUserInfo) { public static UserBean from(User user, List<WechatUserInfo> wechatUserInfoList) {
UserBean userBean = new UserBean(); UserBean userBean = new UserBean();
userBean.setUserId(user.getId()); userBean.setUserId(user.getId());
userBean.setPhoneNo(user.getPhoneNo()); userBean.setPhoneNo(user.getPhoneNo());
...@@ -45,11 +46,17 @@ public class UserBean { ...@@ -45,11 +46,17 @@ public class UserBean {
userBean.setEnable(user.getEnable()); userBean.setEnable(user.getEnable());
userBean.setTenantId(user.getTenantId()); userBean.setTenantId(user.getTenantId());
userBean.setCreatedAt(user.getCreatedAt()); userBean.setCreatedAt(user.getCreatedAt());
if (wechatUserInfo != null) { if (CollectionUtils.isNotEmpty(wechatUserInfoList)) {
userBean.setWechatList(Collections.singletonList(Wechat.builder() List<Wechat> wcList = Lists.newArrayList();
wechatUserInfoList.stream().forEach(wechatUserInfo->{
Wechat build = Wechat.builder()
.openId(wechatUserInfo.getOpenId()) .openId(wechatUserInfo.getOpenId())
.unionId(wechatUserInfo.getUnionId()) .unionId(wechatUserInfo.getUnionId())
.appId(wechatUserInfo.getAppId()).build())); .appId(wechatUserInfo.getAppId()).build();
wcList.add(build);
});
userBean.setWechatList(wcList);
} }
return userBean; return userBean;
} }
......
...@@ -103,7 +103,7 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon ...@@ -103,7 +103,7 @@ 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> findByUserIdAndAppIdAndTenantId(Long userId, String appId,Integer tenantId);
List<WechatUserInfo> findByUserIdInAndAppIdAndTenantId(List<Long> userIds,String appId, Integer tenantId); List<WechatUserInfo> findByUserIdInAndAppIdAndTenantId(List<Long> userIds,String appId, Integer tenantId);
......
...@@ -299,20 +299,16 @@ public class GeetestLib { ...@@ -299,20 +299,16 @@ public class GeetestLib {
String return_seccode = ""; String return_seccode = "";
try { try {
JSONObject return_map = JSONObject.parseObject(response); JSONObject return_map = JSONObject.parseObject(response);
if (return_map == null) {
return val;
}
return_seccode = return_map.getString("seccode"); return_seccode = return_map.getString("seccode");
gtlog("md5: " + Md5Util.build(return_seccode)); gtlog("md5: " + Md5Util.build(return_seccode));
if (return_seccode.equals(Md5Util.build(seccode))) { if (return_seccode.equals(Md5Util.build(seccode))) {
gtlog("validateMethod: " + return_map.getString("challenge_type")); gtlog("validateMethod: "+ return_map.getString("challenge_type"));
val.put("validataMethod", return_map.getString("challenge_type")); val.put("validataMethod", return_map.getString("challenge_type"));
val.put("bl", 1); val.put("bl", 1);
return val; return val;
} else { } else {
return val; return val;
} }
} catch (JSONException e) { } catch (JSONException e) {
gtlog("json load error"); gtlog("json load error");
return val; return val;
......
...@@ -67,7 +67,7 @@ public class InterLoginStrategy implements LoginStrategy { ...@@ -67,7 +67,7 @@ public class InterLoginStrategy implements LoginStrategy {
if (StringUtils.isNotEmpty(interLoginParam.getAppId()) && StringUtils.isNotEmpty(interLoginParam.getOpenId())) { if (StringUtils.isNotEmpty(interLoginParam.getAppId()) && StringUtils.isNotEmpty(interLoginParam.getOpenId())) {
WechatUserInfo wechatUserInfo = wechatService.findWechatUserInfoFromDb(interLoginParam.getOpenId(), interLoginParam.getAppId(), sessionStruct.getTenantId()); WechatUserInfo wechatUserInfo = wechatService.findWechatUserInfoFromDb(interLoginParam.getOpenId(), interLoginParam.getAppId(), sessionStruct.getTenantId());
if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) { if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) {
throw new BizException(BizExceptionEnum.UN_EXIT_USER); throw new SilentBizException(BizExceptionEnum.UN_EXIT_USER);
} }
user = userService.findById(wechatUserInfo.getUserId(), sessionStruct.getTenantId()); user = userService.findById(wechatUserInfo.getUserId(), sessionStruct.getTenantId());
...@@ -76,7 +76,7 @@ public class InterLoginStrategy implements LoginStrategy { ...@@ -76,7 +76,7 @@ public class InterLoginStrategy implements LoginStrategy {
if (StringUtils.isNotEmpty(interLoginParam.getAppId()) && StringUtils.isNotEmpty(interLoginParam.getUnionId())) { if (StringUtils.isNotEmpty(interLoginParam.getAppId()) && StringUtils.isNotEmpty(interLoginParam.getUnionId())) {
WechatUserInfo wechatUserInfo = wechatService.findByUnionIdAndAppIdAndTenantId(interLoginParam.getUnionId(), interLoginParam.getAppId(), sessionStruct.getTenantId()); WechatUserInfo wechatUserInfo = wechatService.findByUnionIdAndAppIdAndTenantId(interLoginParam.getUnionId(), interLoginParam.getAppId(), sessionStruct.getTenantId());
if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) { if (wechatUserInfo == null || wechatUserInfo.getUserId() == null) {
throw new BizException(BizExceptionEnum.UN_EXIT_USER); throw new SilentBizException(BizExceptionEnum.UN_EXIT_USER);
} }
user = userService.findById(wechatUserInfo.getUserId(), sessionStruct.getTenantId()); user = userService.findById(wechatUserInfo.getUserId(), sessionStruct.getTenantId());
......
...@@ -67,6 +67,7 @@ public class QuantGroupBehaviorStrategy implements BehaviorStrategy { ...@@ -67,6 +67,7 @@ public class QuantGroupBehaviorStrategy implements BehaviorStrategy {
if (challenge == null) { if (challenge == null) {
throw new VerificationCodeErrorException(BizExceptionEnum.FAIL_GENERATE_IMAGE); throw new VerificationCodeErrorException(BizExceptionEnum.FAIL_GENERATE_IMAGE);
} }
behaviorCodeBean.setType(1);
behaviorCodeBean.setQtCode(BehaviorCodeBean.QtCode.builder().imageData(challenge.get("image")).build()); behaviorCodeBean.setQtCode(BehaviorCodeBean.QtCode.builder().imageData(challenge.get("image")).build());
behaviorCodeBean.setId(challenge.get("imageId")); behaviorCodeBean.setId(challenge.get("imageId"));
return behaviorCodeBean; return behaviorCodeBean;
......
...@@ -49,7 +49,7 @@ public interface IWechatService { ...@@ -49,7 +49,7 @@ 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> queryByUserIdAndAppId(Long userId,String appId,Integer tenantId);
List<WechatUserInfo> queryListByUserIdAndAppId(List<Long> userIds,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);
......
...@@ -285,7 +285,7 @@ public class WechatServiceImpl implements IWechatService { ...@@ -285,7 +285,7 @@ public class WechatServiceImpl implements IWechatService {
} }
@Override @Override
public WechatUserInfo queryByUserIdAndAppId(Long userId,String appId,Integer tenantId){ public List<WechatUserInfo> queryByUserIdAndAppId(Long userId,String appId,Integer tenantId){
return weChatUserRepository.findByUserIdAndAppIdAndTenantId(userId,appId,tenantId); return weChatUserRepository.findByUserIdAndAppIdAndTenantId(userId,appId,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