소스 검색

机构登录需要验证机构的状态,停用状态和有效期结束时 需要验证

zouxuan 3 년 전
부모
커밋
c6358ae706

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/TenantInfoDao.java

@@ -5,5 +5,5 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface TenantInfoDao extends BaseDAO<Integer, TenantInfo> {
 
-	
+    TenantInfo getOpenTenant(Integer tenantId);
 }

+ 4 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/interceptor/TenantInterceptor.java

@@ -3,6 +3,7 @@ package com.ym.mec.auth.interceptor;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ym.mec.common.exception.BizException;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -44,9 +45,11 @@ public class TenantInterceptor extends HandlerInterceptorAdapter {
 		}
 		if(StringUtils.isNotEmpty(tenantId)){
 			TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
-			TenantInfo tenantInfo = tenantInfoService.get(Integer.parseInt(tenantId));
+			TenantInfo tenantInfo = tenantInfoService.getOpenTenant(Integer.parseInt(tenantId));
 			if(tenantInfo != null){
 				request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
+			}else {
+				throw new BizException("机构信息异常,请联系管理员");
 			}
 		}
 		return true;

+ 1 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/TenantInfoService.java

@@ -5,4 +5,5 @@ import com.ym.mec.common.service.BaseService;
 
 public interface TenantInfoService extends BaseService<Integer, TenantInfo> {
 
+    TenantInfo getOpenTenant(Integer tenantId);
 }

+ 7 - 4
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/TenantInfoServiceImpl.java

@@ -1,13 +1,12 @@
 package com.ym.mec.auth.service.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.auth.api.entity.TenantInfo;
 import com.ym.mec.auth.dal.dao.TenantInfoDao;
 import com.ym.mec.auth.service.TenantInfoService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 @Service
 public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo>  implements TenantInfoService {
@@ -19,5 +18,9 @@ public class TenantInfoServiceImpl extends BaseServiceImpl<Integer, TenantInfo>
 	public BaseDAO<Integer, TenantInfo> getDAO() {
 		return tenantInfoDao;
 	}
-	
+
+	@Override
+	public TenantInfo getOpenTenant(Integer tenantId) {
+		return tenantInfoDao.getOpenTenant(tenantId);
+	}
 }

+ 3 - 2
mec-auth/mec-auth-server/src/main/resources/config/mybatis/TenantInfoMapper.xml

@@ -31,8 +31,6 @@
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.auth.api.entity.TenantInfo"
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
-			AS ID FROM DUAL </selectKey> -->
 		INSERT INTO tenant_info
 		(id_,name_,address_,domain_name_,logo_url_,contact_name_,contact_phone_,data_source_,create_time_,update_time_)
 		VALUES(#{id},#{name},#{address},#{domainName},#{logoUrl},#{contactName},#{contactPhone},#{dataSource},#{createTime},#{updateTime})
@@ -91,4 +89,7 @@
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM tenant_info
 	</select>
+	<select id="getOpenTenant" resultMap="TenantInfo">
+		SELECT * FROM tenant_info WHERE id_ = #{id} AND state_ = 1
+	</select>
 </mapper>

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TenantInfoDao.java

@@ -14,4 +14,6 @@ public interface TenantInfoDao extends BaseMapper<TenantInfo> {
     <T> IPage<T> queryPage(Page<T> page, @Param("param") Map<String, Object> param);
 
     TenantProductSumm queryTenantInfoProductSumm(Integer tenantId);
+
+    TenantInfo getOpenTenant(Integer tenantId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TenantInfoService.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.vo.TenantInfoInfoPageVo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.thirdparty.yqpay.Msg;
 
+import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.util.Map;
 
@@ -36,4 +37,13 @@ public interface TenantInfoService extends IService<TenantInfo> {
     Boolean rechargeCheck(String orderNo) throws Exception;
 
     TenantProductSumm queryTenantInfoProductSumm(Integer id);
+
+    /**
+    * @description: 保存tenantId
+     * @param request
+    * @return void
+    * @author zx
+    * @date 2022/1/7 14:42
+    */
+    void saveTenantContextHolder(HttpServletRequest request);
 }

+ 22 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -24,10 +24,12 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.service.IdGeneratorService;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.yqpay.DateUtils;
 import com.ym.mec.thirdparty.yqpay.Msg;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.joda.time.LocalDate;
 import org.joda.time.LocalDateTime;
 import org.redisson.api.RBucket;
@@ -40,6 +42,7 @@ import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -664,5 +667,23 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         return tps;
     }
 
-
+    @Override
+    public void saveTenantContextHolder(HttpServletRequest request) {
+        String tenantId = request.getHeader("tenantId");
+        if(StringUtils.isEmpty(tenantId)){
+            SysUser sysUser = sysUserFeignService.queryUserInfo();
+            if(sysUser != null && sysUser.getTenantId() != null){
+                tenantId = sysUser.getTenantId().toString();
+            }
+        }
+        if(StringUtils.isNotEmpty(tenantId)){
+            TenantInfo tenantInfo = this.baseMapper.getOpenTenant(Integer.parseInt(tenantId));
+            if(tenantInfo != null){
+                TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
+                request.setAttribute("datasourceId", tenantInfo.getDataSource());
+            }else {
+                throw new BizException("机构信息异常,请联系管理员");
+            }
+        }
+    }
 }

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/TenantInfoMapper.xml

@@ -105,5 +105,8 @@
                      left join platform_serve_detail psd on tp.serve_detail_id_ = psd.id_
             where t.id_ = #{tenantId}
     </select>
+    <select id="getOpenTenant" resultType="com.ym.mec.biz.dal.entity.TenantInfo">
+        SELECT * FROM tenant_info WHERE id_ = #{tenantId} AND state_ = 1
+    </select>
 
 </mapper>

+ 1 - 25
mec-im/src/main/java/com/ym/interceptor/TenantInterceptor.java

@@ -1,13 +1,8 @@
 package com.ym.interceptor;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.TenantInfo;
 import com.ym.mec.biz.service.TenantInfoService;
 import com.ym.mec.common.tenant.TenantContextHolder;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
@@ -17,31 +12,12 @@ import javax.servlet.http.HttpServletResponse;
 @Component
 public class TenantInterceptor extends HandlerInterceptorAdapter {
 
-	private static final String DATA_SOURCE_ID = "datasourceId";
-
-	@Autowired
-	@Lazy
-	private SysUserFeignService sysUserFeignService;
-	
 	@Autowired
 	private TenantInfoService tenantInfoService;
 
 	@Override
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
-		String tenantId = request.getHeader("tenantId");
-		if(StringUtils.isEmpty(tenantId)){
-			SysUser sysUser = sysUserFeignService.queryUserInfo();
-			if(sysUser != null && sysUser.getTenantId() != null){
-				tenantId = sysUser.getTenantId().toString();
-			}
-		}
-		if(StringUtils.isNotEmpty(tenantId)){
-			TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
-			TenantInfo tenantInfo = tenantInfoService.get(Integer.parseInt(tenantId));
-			if(tenantInfo != null){
-				request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
-			}
-		}
+		tenantInfoService.saveTenantContextHolder(request);
 		return true;
 	}
 

+ 1 - 26
mec-student/src/main/java/com/ym/mec/student/interceptor/TenantInterceptor.java

@@ -1,16 +1,10 @@
 package com.ym.mec.student.interceptor;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.TenantInfo;
 import com.ym.mec.biz.service.TenantInfoService;
 import com.ym.mec.common.tenant.TenantContextHolder;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-import springfox.documentation.annotations.Cacheable;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -18,31 +12,12 @@ import javax.servlet.http.HttpServletResponse;
 @Component
 public class TenantInterceptor extends HandlerInterceptorAdapter {
 
-	private static final String DATA_SOURCE_ID = "datasourceId";
-
-	@Autowired
-	@Lazy
-	private SysUserFeignService sysUserFeignService;
-	
 	@Autowired
 	private TenantInfoService tenantInfoService;
 
 	@Override
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
-		String tenantId = request.getHeader("tenantId");
-		if(StringUtils.isEmpty(tenantId)){
-			SysUser sysUser = sysUserFeignService.queryUserInfo();
-			if(sysUser != null && sysUser.getTenantId() != null){
-				tenantId = sysUser.getTenantId().toString();
-			}
-		}
-		if(StringUtils.isNotEmpty(tenantId)){
-			TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
-			TenantInfo tenantInfo = tenantInfoService.get(Integer.parseInt(tenantId));
-			if(tenantInfo != null){
-				request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
-			}
-		}
+		tenantInfoService.saveTenantContextHolder(request);
 		return true;
 	}
 

+ 1 - 25
mec-teacher/src/main/java/com/ym/mec/teacher/interceptor/TenantInterceptor.java

@@ -1,13 +1,8 @@
 package com.ym.mec.teacher.interceptor;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.TenantInfo;
 import com.ym.mec.biz.service.TenantInfoService;
 import com.ym.mec.common.tenant.TenantContextHolder;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
@@ -17,31 +12,12 @@ import javax.servlet.http.HttpServletResponse;
 @Component
 public class TenantInterceptor extends HandlerInterceptorAdapter {
 
-	private static final String DATA_SOURCE_ID = "datasourceId";
-
-	@Autowired
-	@Lazy
-	private SysUserFeignService sysUserFeignService;
-	
 	@Autowired
 	private TenantInfoService tenantInfoService;
 
 	@Override
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
-		String tenantId = request.getHeader("tenantId");
-		if(StringUtils.isEmpty(tenantId)){
-			SysUser sysUser = sysUserFeignService.queryUserInfo();
-			if(sysUser != null && sysUser.getTenantId() != null){
-				tenantId = sysUser.getTenantId().toString();
-			}
-		}
-		if(StringUtils.isNotEmpty(tenantId)){
-			TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
-			TenantInfo tenantInfo = tenantInfoService.get(Integer.parseInt(tenantId));
-			if(tenantInfo != null){
-				request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
-			}
-		}
+		tenantInfoService.saveTenantContextHolder(request);
 		return true;
 	}
 

+ 1 - 26
mec-web/src/main/java/com/ym/mec/web/interceptor/TenantInterceptor.java

@@ -1,14 +1,8 @@
 package com.ym.mec.web.interceptor;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.TenantInfo;
 import com.ym.mec.biz.service.TenantInfoService;
-import com.ym.mec.common.filters.TenantIdThreadLocal;
 import com.ym.mec.common.tenant.TenantContextHolder;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
@@ -18,31 +12,12 @@ import javax.servlet.http.HttpServletResponse;
 @Component
 public class TenantInterceptor extends HandlerInterceptorAdapter {
 
-	private static final String DATA_SOURCE_ID = "datasourceId";
-
-	@Autowired
-	@Lazy
-	private SysUserFeignService sysUserFeignService;
-	
 	@Autowired
 	private TenantInfoService tenantInfoService;
 
 	@Override
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
-		String tenantId = request.getHeader("tenantId");
-		if(StringUtils.isEmpty(tenantId)){
-			SysUser sysUser = sysUserFeignService.queryUserInfo();
-			if(sysUser != null && sysUser.getTenantId() != null){
-				tenantId = sysUser.getTenantId().toString();
-			}
-		}
-		if(StringUtils.isNotEmpty(tenantId)){
-			TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
-			TenantInfo tenantInfo = tenantInfoService.get(Integer.parseInt(tenantId));
-			if(tenantInfo != null){
-				request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
-			}
-		}
+		tenantInfoService.saveTenantContextHolder(request);
 		return true;
 	}