Commit 3d71098b authored by 王亮's avatar 王亮

fix an issue(appId)

parent de79c554
...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.config.data; ...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.config.data;
import cn.quantgroup.xyqb.exception.BizException; import cn.quantgroup.xyqb.exception.BizException;
import cn.quantgroup.xyqb.exception.BizExceptionEnum; import cn.quantgroup.xyqb.exception.BizExceptionEnum;
import cn.quantgroup.xyqb.model.WechatAppNameMapping;
import cn.quantgroup.xyqb.model.WechatConfigBean; import cn.quantgroup.xyqb.model.WechatConfigBean;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.ctrip.framework.apollo.ConfigService; import com.ctrip.framework.apollo.ConfigService;
...@@ -16,23 +17,35 @@ import java.util.Optional; ...@@ -16,23 +17,35 @@ import java.util.Optional;
public class WechatConfiguration { public class WechatConfiguration {
private final List<WechatConfigBean> list; private final List<WechatConfigBean> list;
private final List<WechatAppNameMapping> wechatAppNameMappingList;
public WechatConfiguration() { public WechatConfiguration() {
String data = ConfigService.getAppConfig().getProperty("wechat.configs", "[]"); String data = ConfigService.getAppConfig().getProperty("wechat.configs", "[]");
String data2 = ConfigService.getAppConfig().getProperty("wechat.appName.mapping", "[]");
list = JSONArray.parseArray(data, WechatConfigBean.class); list = JSONArray.parseArray(data, WechatConfigBean.class);
wechatAppNameMappingList = JSONArray.parseArray(data2, WechatAppNameMapping.class);
} }
public WechatConfigBean getByAppIdAndTenantId(String appId, Integer tenantId){ public WechatConfigBean getByAppIdAndTenantId(String appId, Integer tenantId) {
Optional<WechatConfigBean> optional = list.stream().filter(i->i.getAppId().equals(appId)&&i.getTenantId().equals(tenantId)).findFirst(); Optional<WechatConfigBean> optional = list.stream().filter(i -> i.getAppId().equals(appId) && i.getTenantId().equals(tenantId)).findFirst();
if(!optional.isPresent()){ if (!optional.isPresent()) {
throw new BizException(BizExceptionEnum.ERROR_WECHAT_APP_ID); throw new BizException(BizExceptionEnum.ERROR_WECHAT_APP_ID);
}else{ } else {
return optional.get(); return optional.get();
} }
} }
public WechatConfigBean getDefault(){ public WechatConfigBean getDefault() {
return list.stream().filter(WechatConfigBean::isDefaultMini).findFirst().get(); return list.stream().filter(WechatConfigBean::isDefaultMini).findFirst().get();
} }
public WechatAppNameMapping getByAppName(String appName) {
Optional<WechatAppNameMapping> optional = wechatAppNameMappingList.stream().filter(i -> i.getAppName().equals(appName)).findFirst();
if (!optional.isPresent()) {
throw new BizException(BizExceptionEnum.ERROR_WECHAT_APP_ID);
} else {
return optional.get();
}
}
} }
package cn.quantgroup.xyqb.model;
import lombok.Data;
@Data
public class WechatAppNameMapping {
private String appName;
private String appId;
private Integer tenantId;
}
package cn.quantgroup.xyqb.service.middleoffice.applet.impl; package cn.quantgroup.xyqb.service.middleoffice.applet.impl;
import cn.quantgroup.xyqb.config.data.WechatConfiguration;
import cn.quantgroup.xyqb.constant.UserConstant; import cn.quantgroup.xyqb.constant.UserConstant;
import cn.quantgroup.xyqb.controller.middleoffice.login.ILoginModule; import cn.quantgroup.xyqb.controller.middleoffice.login.ILoginModule;
import cn.quantgroup.xyqb.controller.middleoffice.login.LoginVo; import cn.quantgroup.xyqb.controller.middleoffice.login.LoginVo;
...@@ -38,16 +39,19 @@ public class AppletServiceImpl implements IAppletService { ...@@ -38,16 +39,19 @@ public class AppletServiceImpl implements IAppletService {
private final IUserService userService; private final IUserService userService;
private ILoginModule loginModule; private ILoginModule loginModule;
private final WechatConfiguration wechatConfiguration;
@Autowired @Autowired
public AppletServiceImpl(IWeChatUserRepository iWeChatUserRepository, public AppletServiceImpl(IWeChatUserRepository iWeChatUserRepository,
IUserRegisterService iUserRegisterService, IUserRegisterService iUserRegisterService,
IUserService userService, IUserService userService,
ILoginModule loginModule) { ILoginModule loginModule, WechatConfiguration wechatConfiguration) {
this.iWeChatUserRepository = iWeChatUserRepository; this.iWeChatUserRepository = iWeChatUserRepository;
this.iUserRegisterService = iUserRegisterService; this.iUserRegisterService = iUserRegisterService;
this.userService = userService; this.userService = userService;
this.loginModule = loginModule; this.loginModule = loginModule;
this.wechatConfiguration = wechatConfiguration;
} }
@Override @Override
...@@ -55,10 +59,14 @@ public class AppletServiceImpl implements IAppletService { ...@@ -55,10 +59,14 @@ public class AppletServiceImpl implements IAppletService {
public Long relevance(AppletParamEntry appletParamEntry) { public Long relevance(AppletParamEntry appletParamEntry) {
WechatUserInfo wechatUserInfo = iWeChatUserRepository.findByOpenIdAndAppNameAndAppIdAndTenantId(appletParamEntry.getOpenId(), appletParamEntry.getAppName(), appletParamEntry.getAppId(), appletParamEntry.getTenantId()); WechatUserInfo wechatUserInfo = iWeChatUserRepository.findByOpenIdAndAppNameAndAppIdAndTenantId(appletParamEntry.getOpenId(), appletParamEntry.getAppName(), appletParamEntry.getAppId(), appletParamEntry.getTenantId());
//这个接口先不考虑更换手机号的情况 //这个接口先不考虑更换手机号的情况
if(appletParamEntry.getTenantId()==null){ if (appletParamEntry.getTenantId() == null) {
appletParamEntry.setTenantId(UserConstant.defaultTenantId); appletParamEntry.setTenantId(UserConstant.defaultTenantId);
} }
if (StringUtils.isEmpty(appletParamEntry.getAppId())) {
}
wechatUserInfo = (wechatUserInfo == null ? new WechatUserInfo() : wechatUserInfo); wechatUserInfo = (wechatUserInfo == null ? new WechatUserInfo() : wechatUserInfo);
wechatUserInfo.setNickName(appletParamEntry.getNickName()); wechatUserInfo.setNickName(appletParamEntry.getNickName());
wechatUserInfo.setCity(appletParamEntry.getCity()); wechatUserInfo.setCity(appletParamEntry.getCity());
...@@ -86,6 +94,7 @@ public class AppletServiceImpl implements IAppletService { ...@@ -86,6 +94,7 @@ public class AppletServiceImpl implements IAppletService {
} }
wechatUserInfo.setUserId(user.getId()); wechatUserInfo.setUserId(user.getId());
} }
wechatUserInfo.setAppId(wechatConfiguration.getByAppName(appletParamEntry.getAppName()).getAppId());
//如果存在就更新在微信表里 //如果存在就更新在微信表里
iWeChatUserRepository.save(wechatUserInfo); iWeChatUserRepository.save(wechatUserInfo);
......
...@@ -144,6 +144,9 @@ public class WechatServiceImpl implements IWechatService { ...@@ -144,6 +144,9 @@ public class WechatServiceImpl implements IWechatService {
userInfo.setTenantId(UserConstant.defaultTenantId); userInfo.setTenantId(UserConstant.defaultTenantId);
} }
userInfo.setAppId(wechatConfiguration.getByAppName(userInfo.getAppName()).getAppId());
log.info("微信信息保存开始:{}", JSON.toJSONString(userInfo)); log.info("微信信息保存开始:{}", JSON.toJSONString(userInfo));
if (Objects.isNull(userInfo) || Objects.isNull(userInfo.getOpenId())) { if (Objects.isNull(userInfo) || Objects.isNull(userInfo.getOpenId())) {
return null; return null;
......
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