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

微信根据userId appid查询多个

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