From c6c8d6c03c3ac7e918eb17ebcba0c1472f2dd7ec Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 08 Nov 2021 11:28:17 +0800
Subject: [PATCH] fix

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java      |   18 ++++++++++++++++--
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java |    3 ++-
 zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java      |   33 ++++++++++++++++++++++++++++++---
 zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml             |    1 +
 4 files changed, 49 insertions(+), 6 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
index c94ee43..5adb150 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiCommonAction.java
@@ -1,6 +1,8 @@
 package com.matrix.system.app.action;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.matrix.component.tools.HttpCurlUtil;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.*;
 import com.matrix.system.app.authority.AppAuthorityManager;
@@ -11,8 +13,10 @@
 import com.matrix.system.common.authority.strategy.LoginStrategy;
 import com.matrix.system.common.bean.SysCompany;
 import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.common.init.LocalCache;
+import com.matrix.system.common.interceptor.HostInterceptor;
 import com.matrix.system.common.service.SysCompanyService;
 import com.matrix.system.common.service.SysUsersService;
 import com.matrix.system.common.tools.PasswordUtil;
@@ -22,10 +26,12 @@
 import com.matrix.system.hive.plugin.util.CollectionUtils;
 import com.matrix.system.hive.plugin.util.ImageUtil;
 import com.matrix.system.hive.service.SysShopInfoService;
+import com.matrix.system.shopXcx.api.WeChatApiTools;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
+import net.sf.json.JSONObject;
 import org.apache.commons.fileupload.FileUploadException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -66,7 +72,10 @@
     private BusParameterSettingsDao busParameterSettingsDao;
 
     @Autowired
-    private SysCompanyService sysCompanyService;
+    private SysCompanyService sysCompanyService;;
+
+    @Autowired
+    WeChatApiTools weChatApiTools;
 
 
     @Value("${file_storage_path}")
@@ -274,8 +283,26 @@
     }
 
     @ApiOperation(value = "管理端小程序登录")
-    @PostMapping(value = "/wxLogin")
-    public AjaxResult wxLogin(@RequestBody SettingDto codeDto) {
+    @PostMapping(value = "/wxLogin/{code}")
+    public AjaxResult wxLogin(@PathVariable("code") String code) throws IOException {
+        if (StrUtil.isBlank(code)) {
+            return AjaxResult.buildFailInstance("code不存在");
+        }
+        AjaxResult res = new AjaxResult();
+        String requrl = weChatApiTools.getXcxLoginUrl(code, HostInterceptor.getCompanyId(), AppConstance.MINI_PROGRAM_MANAGER_APP_ID);
+
+        String resultData = HttpCurlUtil.sendGetHttp(requrl, null);
+        JSONObject json = JSONObject.fromObject(resultData);
+        LogUtil.debug("管理端小程序登录获取到登录信息={}", json);
+
+        if (json.containsKey("errcode")) {
+            res.setStatus(AjaxResult.STATUS_FAIL);
+            res.setInfo("自动登录失败");
+            LogUtil.info("微信登录获取到异常信息errcode");
+            return res;
+        }
+
+        String openId = json.getString("openid");
         return null;
     }
 
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java
index 5befb86..8940122 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WeChatApiTools.java
@@ -45,9 +45,12 @@
 	 * @param code
 	 * @return
 	 */
-	public  String getXcxLoginUrl(String code,Long companyId) {
+	public  String getXcxLoginUrl(String code,Long companyId, String type) {
 		String wechatLoginUrl = PropertiesUtil.getString(WECHAT_LOGIN_URL);
-		return String.format(wechatLoginUrl, getAppid(companyId), getSecret(companyId), code);
+		if (AppConstance.MINIPROGRAM_APPID.equals(type)) {
+			return String.format(wechatLoginUrl, getAppid(companyId), getSecret(companyId), code);
+		} else {
+			return String.format(wechatLoginUrl, getManagerAppId(companyId), getManagerSecret(companyId), code);		}
 	}
 
 	/**
@@ -68,6 +71,17 @@
 		return  secret.getParamValue();
 	}
 
+	public String getManagerAppId(Long companyId) {
+		BusParameterSettings appId = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.MINI_PROGRAM_MANAGER_APP_ID, companyId);
+		return  appId.getParamValue();
+	}
+
+	public  String  getManagerSecret(Long companyId){
+		BusParameterSettings secret = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.MINI_PROGRAM_MANAGER_SECRET, companyId);
+		return  secret.getParamValue();
+	}
+
+
 
 
 	/**
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
index 0b0eaac..1b3fffc 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.init.UserCacheManager;
 import com.matrix.component.tools.HttpCurlUtil;
 import com.matrix.core.pojo.AjaxResult;
@@ -93,7 +94,7 @@
         AjaxResult res = new AjaxResult();
         LogUtil.info("code:{}" + code);
         if (StringUtils.isNotBlank(code)) {
-            String requrl = weChatApiTools.getXcxLoginUrl(code, HostInterceptor.getCompanyId());
+            String requrl = weChatApiTools.getXcxLoginUrl(code, HostInterceptor.getCompanyId(), AppConstance.MINIPROGRAM_APPID);
             String reslutData = HttpCurlUtil.sendGetHttp(requrl, null);
             JSONObject json = JSONObject.fromObject(reslutData);
             LogUtil.debug("微信登录获取到登录信息={}", json);
diff --git a/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml b/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml
index 615593d..f21d2ca 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/common/SysUsersDao.xml
@@ -1328,4 +1328,5 @@
     <select id="selectAppVersion" resultType="com.matrix.system.hive.bean.AppVersion">
         select * from app_version
     </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1