Преглед на файлове

Fix 修复获取LocalSiteId出错的问题

需要install一下vbdsm-base库
YueYunyun преди 2 години
родител
ревизия
499b4c0c4a

+ 8 - 1
VB_DSM_V2.1/vbdsm-common/vbdsm-base/src/main/java/cn/vbdsm/core/dao/IRequiredDao.java

@@ -122,7 +122,14 @@ public interface IRequiredDao {
 	 * @return
 	 */
 	public Site selectSiteByDomain(String domain);
-	
+
+	/**
+	 * 根据id获取站点信息
+	 * @param id
+	 * @return
+	 */
+	public Site selectSiteById(Long id);
+
 	/**
 	 * 更新服务记录
 	 * @param uid

+ 14 - 1
VB_DSM_V2.1/vbdsm-common/vbdsm-base/src/main/java/cn/vbdsm/core/dao/impl/RequiredDao.java

@@ -84,7 +84,20 @@ public class RequiredDao implements IRequiredDao {
         String sql = "select id,name,sortName,domain,config,logo,favIcon,minLogo from t_site where domain = ?";
         List<Map<String, Object>> result = jdbc.queryForList(sql, domain);
         Site s = null;
-        if (result != null) {
+        if (result != null && !result.isEmpty()) {
+            s = JSONObject.toJavaObject((JSON) JSONObject.toJSON(result.get(0)), Site.class);
+        }
+        return s;
+    }
+    /**
+     * 根据id获取站点信息
+     */
+    public Site selectSiteById(Long id) {
+        dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
+        String sql = "select id,name,sortName,domain,config,logo,favIcon,minLogo from t_site where id = ?";
+        List<Map<String, Object>> result = jdbc.queryForList(sql, id);
+        Site s = null;
+        if (result != null && !result.isEmpty()) {
             s = JSONObject.toJavaObject((JSON) JSONObject.toJSON(result.get(0)), Site.class);
         }
         return s;

+ 17 - 0
VB_DSM_V2.1/vbdsm-common/vbdsm-base/src/main/java/cn/vbdsm/core/mvc/action/BaseAction.java

@@ -199,4 +199,21 @@ public class BaseAction {
 		return userInfo.getJSONObject("company").getString("name");
 		
 	}
+
+	/**
+	 * 获取本地登录用户的站点编号
+	 * @param request
+	 */
+	protected Long getLocalSiteId(HttpServletRequest request){
+		String siteIdStr = request.getHeader("Site-Id");
+		if(siteIdStr!=null&&!siteIdStr.isEmpty()){
+			try{
+				return Long.parseLong(siteIdStr);
+			}catch (Exception e){
+				return null;
+			}
+		}
+		return null;
+
+	}
 }

+ 7 - 0
VB_DSM_V2.1/vbdsm-common/vbdsm-base/src/main/java/cn/vbdsm/core/service/impl/LangService.java

@@ -99,6 +99,13 @@ public class LangService implements ILangService {
 		Site site = requiredDao.selectSiteByDomain(domain);
 		return new ResultMsg<Site>(SystemConstant.RESULT_STATUS_SUCCESS,"",site);
 	}
+	/**
+	 * 根据domain获取站点
+	 */
+	public ResultMsg<Site> getSiteById(Long id){
+		Site site = requiredDao.selectSiteById(id);
+		return new ResultMsg<Site>(SystemConstant.RESULT_STATUS_SUCCESS,"",site);
+	}
 
 	/**
 	 * 根据用户名查询一个用户

+ 2 - 18
VB_DSM_V2.1/vbdsm-web/vbdsm-passport/src/main/java/cn/vbdsm/passport/mvc/action/web/AuthAction.java

@@ -82,15 +82,7 @@ public class AuthAction extends BaseAction {
     public ModelAndView loginForDemo(HttpServletRequest request, HttpServletResponse response) {
         String domain = getDomain(request);
         String ip = getIpAddr(request);
-        Long localSiteId = null;
-        String siteIdStr = request.getHeader("Site-Id");
-        if(!siteIdStr.isEmpty()){
-            try{
-                localSiteId = Long.parseLong(siteIdStr);
-            }catch (Exception e){
-                log.error("Site-Id is not number");
-            }
-        }
+        Long localSiteId = getLocalSiteId(request);
         String agent = request.getHeader("User-Agent").toLowerCase();
         ResultMsg<JSONObject> result = authService.login("zh_CN", domain, "demo", "demo", null, null, ip, agent,localSiteId);
         if (SystemConstant.RESULT_STATUS_SUCCESS == result.getStatus()) {
@@ -113,15 +105,7 @@ public class AuthAction extends BaseAction {
             , @RequestParam(value = "authCode", required = false) String authCode) {
         String domain = getDomain(request);
         String ip = getIpAddr(request);
-        Long localSiteId = null;
-        String siteIdStr = request.getHeader("Site-Id");
-        if(!siteIdStr.isEmpty()){
-            try{
-                localSiteId = Long.parseLong(siteIdStr);
-            }catch (Exception e){
-                log.error("Site-Id is not number");
-            }
-        }
+        Long localSiteId = getLocalSiteId(request);
         String agent = request.getHeader("User-Agent").toLowerCase();
         Object session_code = request.getSession().getAttribute(SystemConstant.SYSTEM_LOGIN_AUTHCODE);
         ResultMsg<JSONObject> result = authService.login("zh_CN", domain, loginName, loginPass, authCode, session_code, ip, agent,localSiteId);

+ 10 - 1
VB_DSM_V2.1/vbdsm-web/vbdsm-passport/src/main/java/cn/vbdsm/passport/mvc/action/web/ConfigAction.java

@@ -28,7 +28,16 @@ public class ConfigAction extends BaseAction{
 		if(StringUtils.isEmpty(domain)){
 			return super.callBackForJsonp(request, response, "AUTH=" + s.toJSONString());
 		}
-		ResultMsg<Site> msg = langService.getSiteByDomain(domain);
+		ResultMsg<Site> msg;
+		Long siteId=getLocalSiteId(request);
+		if(siteId==null){
+			msg = langService.getSiteByDomain(domain);
+		}else{
+			msg = langService.getSiteById(siteId);
+		}
+		if(msg==null){
+			return super.callBackForJsonp(request, response, "AUTH=" + s.toJSONString());
+		}
 		JSONObject config = JSONObject.parseObject(msg.getData().getConfig());
 		s.put("site", msg.getData());
 		s.getJSONObject("site").put("config", config);