Ver código fonte

1.微信注入

wks 1 ano atrás
pai
commit
ee4599a757

+ 19 - 13
src/main/java/com/ydtech/config/MvcConfig.java

@@ -25,6 +25,8 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 import javax.annotation.Resource;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Configuration
 public class MvcConfig implements WebMvcConfigurer {
@@ -96,18 +98,23 @@ public class MvcConfig implements WebMvcConfigurer {
     }
 
     @Bean
-    public WxMpDefaultConfigImpl wxMpDefaultConfig() {
-        WxMpDefaultConfigImpl wxMpDefaultConfig = new WxMpDefaultConfigImpl();
-        wxMpDefaultConfig.setAppId(wechatOpenProperties.getComponentAppId());
-        wxMpDefaultConfig.setSecret(wechatOpenProperties.getComponentSecret());
-        return wxMpDefaultConfig;
-    }
-
-    @Bean
-    public WxMpService wxMpService() {
-        WxMpServiceImpl wxMpService = new WxMpServiceImpl();
-        wxMpService.setWxMpConfigStorage(wxMpDefaultConfig());
-        return wxMpService;
+    public Map<String, WxMpService> wxMpService() {
+        Map<String, WxMpDefaultConfigImpl> collect = wechatOpenProperties.getProperties().keySet()
+                .stream()
+                .collect(Collectors.toMap(x->x, x -> {
+                    WechatOpenProperties.PropertiesDto propertiesDto = wechatOpenProperties.getProperties().get(x);
+                    WxMpDefaultConfigImpl wxMpDefaultConfig = new WxMpDefaultConfigImpl();
+                    wxMpDefaultConfig.setAppId(propertiesDto.getComponentAppId());
+                    wxMpDefaultConfig.setSecret(propertiesDto.getComponentSecret());
+                    return wxMpDefaultConfig;
+                }));
+
+        return collect.keySet().stream().collect(Collectors.toMap(x -> x, x -> {
+            WxMpServiceImpl wxMpService = new WxMpServiceImpl();
+            WxMpDefaultConfigImpl wxMpDefaultConfig = collect.get(x);
+            wxMpService.setWxMpConfigStorage(wxMpDefaultConfig);
+            return wxMpService;
+        }));
     }
 
     @Bean
@@ -132,7 +139,6 @@ public class MvcConfig implements WebMvcConfigurer {
     }
 
 
-
     /**
      * 获取单个参数
      *

+ 16 - 21
src/main/java/com/ydtech/config/properties/WechatOpenProperties.java

@@ -1,36 +1,31 @@
 package com.ydtech.config.properties;
 
+import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+import java.util.Map;
+
 @Component
 @ConfigurationProperties(prefix = "wechat.open")
+@Data
 public class WechatOpenProperties {
 
-    /**
-     * 设置微信三方平台的appid
-     */
-    private String componentAppId;
-
-    /**
-     * 设置微信三方平台的app secret
-     */
-    private String componentSecret;
-
+    private Map<String, PropertiesDto> properties;
 
-    public String getComponentAppId() {
-        return componentAppId;
-    }
+    @Data
+    public static class PropertiesDto{
 
-    public void setComponentAppId(String componentAppId) {
-        this.componentAppId = componentAppId;
-    }
+        /**
+         * 设置微信三方平台的appid
+         */
+        private String componentAppId;
 
-    public String getComponentSecret() {
-        return componentSecret;
+        /**
+         * 设置微信三方平台的app secret
+         */
+        private String componentSecret;
     }
 
-    public void setComponentSecret(String componentSecret) {
-        this.componentSecret = componentSecret;
-    }
 }

+ 18 - 0
src/main/java/com/ydtech/constants/enums/WechatOpenSystem.java

@@ -0,0 +1,18 @@
+package com.ydtech.constants.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum WechatOpenSystem {
+
+    JZG("jzg", "晋掌柜"),
+    HHR("hhr", "合伙人");
+
+    private final String code;
+
+    private final String desc;
+
+}

+ 5 - 4
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.aop.exception.DescribeException;
+import com.ydtech.constants.enums.WechatOpenSystem;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.*;
@@ -94,9 +95,9 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
     private SysProportionConfigMapper sysProportionConfigMapper;
     @Resource
     private EsmUserReferrerMapper esmUserReferrerMapper;
-    @Resource
-    private WxMpService wxMpService;
 
+    @Resource
+    private Map<String, WxMpService> wxMpService;
 
     @Override
     public List<SysPartner> queryRecommendAndPartner(String id) {
@@ -2119,7 +2120,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
     @Override
     public HttpResult<AAPLoginVo> loginWechat(WechatLoginVo wechatLoginVo) throws WxErrorException {
         AAPLoginVo aapLoginVo = new AAPLoginVo();
-        WxOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(wechatLoginVo.getCode());
+        WxOAuth2AccessToken accessToken = wxMpService.get(WechatOpenSystem.HHR.getCode()).getOAuth2Service().getAccessToken(wechatLoginVo.getCode());
         String openId = accessToken.getOpenId();
         SysUser sysUser = sysUserService.lambdaQuery()
                 .eq(SysUser::getOpenid, openId)
@@ -2153,7 +2154,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
 
     @Override
     public HttpResult<Object> bindWechat(WechatBindVo wechatBindVo, String userId) throws WxErrorException {
-        WxOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(wechatBindVo.getCode());
+        WxOAuth2AccessToken accessToken = wxMpService.get(WechatOpenSystem.HHR.getCode()).getOAuth2Service().getAccessToken(wechatBindVo.getCode());
         String openId = accessToken.getOpenId();
 
         SysUser sysUser = sysUserService.lambdaQuery().eq(SysUser::getOpenid, openId).one();

+ 6 - 3
src/main/java/com/ydtech/modules/admin/service/impl/WechatServiceImpl.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.admin.service.impl;
 
 import cn.dev33.satoken.session.SaSession;
 import cn.dev33.satoken.stp.StpUtil;
+import com.ydtech.constants.enums.WechatOpenSystem;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysUserRoleMapper;
@@ -21,6 +22,8 @@ import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
+import java.util.Map;
+
 @Slf4j
 @Service
 @RequiredArgsConstructor
@@ -31,11 +34,11 @@ public class WechatServiceImpl implements WechatService {
 
     private final SysUserService sysUserService;
 
-    private final WxMpService wxMpService;
+    private final Map<String, WxMpService> wxMpService;
 
     @Override
     public HttpResult<WechatVo> login(WechatLoginVo wechatLoginVo) throws WxErrorException {
-        WxOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(wechatLoginVo.getCode());
+        WxOAuth2AccessToken accessToken = wxMpService.get(WechatOpenSystem.JZG.getCode()).getOAuth2Service().getAccessToken(wechatLoginVo.getCode());
         String openId = accessToken.getOpenId();
         SysUser sysUser = sysUserService.lambdaQuery()
                 .eq(SysUser::getOpenid, openId)
@@ -56,7 +59,7 @@ public class WechatServiceImpl implements WechatService {
 
     @Override
     public HttpResult<Object> bind(WechatBindVo wechatBindVo, String userId) throws WxErrorException {
-        WxOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(wechatBindVo.getCode());
+        WxOAuth2AccessToken accessToken = wxMpService.get(WechatOpenSystem.JZG.getCode()).getOAuth2Service().getAccessToken(wechatBindVo.getCode());
         String openId = accessToken.getOpenId();
 
         SysUser sysUser = sysUserService.lambdaQuery().eq(SysUser::getOpenid, openId).one();

+ 7 - 2
src/main/resources/application-pre.yml

@@ -214,8 +214,13 @@ upload:
   username: ''
 wechat:
   open:
-    componentAppId: wx612ca90988c46947
-    componentSecret: 75b7d4cda453b2075dec23f849278bc0
+    properties:
+      jzg:
+        componentAppId: wx612ca90988c46947
+        componentSecret: 75b7d4cda453b2075dec23f849278bc0
+      hhr:
+        componentAppId: wx8e8efe710bd99de2
+        componentSecret: 69d6024eb2f2a96a71f1f859a21cc9bf
   cp:
     corp-id: wwfe67d19509d43ec5
     secret: 5M_5mGONe-t4xCPlwPU-EJt53GiWaUjtbJjY5CR-dgc

+ 7 - 2
src/main/resources/application-prod.yml

@@ -206,8 +206,13 @@ upload:
   username: ''
 wechat:
   open:
-    componentAppId: wx612ca90988c46947
-    componentSecret: 75b7d4cda453b2075dec23f849278bc0
+    properties:
+      jzg:
+        componentAppId: wx612ca90988c46947
+        componentSecret: 75b7d4cda453b2075dec23f849278bc0
+      hhr:
+        componentAppId: wx8e8efe710bd99de2
+        componentSecret: 69d6024eb2f2a96a71f1f859a21cc9bf
   cp:
     corp-id: wwfe67d19509d43ec5
     secret: 5M_5mGONe-t4xCPlwPU-EJt53GiWaUjtbJjY5CR-dgc

+ 7 - 2
src/main/resources/application-test.yml

@@ -225,8 +225,13 @@ upload:
   username: ''
 wechat:
   open:
-    componentAppId: wx612ca90988c46947
-    componentSecret: 75b7d4cda453b2075dec23f849278bc0
+    properties:
+      jzg:
+        componentAppId: wx612ca90988c46947
+        componentSecret: 75b7d4cda453b2075dec23f849278bc0
+      hhr:
+        componentAppId: wx8e8efe710bd99de2
+        componentSecret: 69d6024eb2f2a96a71f1f859a21cc9bf
   cp:
     corp-id: wwfe67d19509d43ec5
     secret: 5M_5mGONe-t4xCPlwPU-EJt53GiWaUjtbJjY5CR-dgc