|
|
@@ -1,23 +1,21 @@
|
|
|
package com.java110.order.smo.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.java110.utils.cache.ServiceBusinessCache;
|
|
|
+import com.java110.core.factory.DataTransactionFactory;
|
|
|
+import com.java110.db.dao.IQueryServiceDAO;
|
|
|
+import com.java110.dto.basePrivilege.BasePrivilegeDto;
|
|
|
+import com.java110.entity.center.AppRoute;
|
|
|
+import com.java110.entity.mapping.Mapping;
|
|
|
import com.java110.entity.order.ServiceBusiness;
|
|
|
+import com.java110.entity.service.ServiceSql;
|
|
|
import com.java110.order.dao.ICenterServiceDAO;
|
|
|
import com.java110.order.smo.ICenterServiceCacheSMO;
|
|
|
-import com.java110.utils.cache.AppRouteCache;
|
|
|
-import com.java110.utils.cache.MappingCache;
|
|
|
-import com.java110.utils.cache.ServiceSqlCache;
|
|
|
+import com.java110.service.context.DataQuery;
|
|
|
+import com.java110.utils.cache.*;
|
|
|
import com.java110.utils.constant.CommonConstant;
|
|
|
import com.java110.utils.constant.ResponseConstant;
|
|
|
import com.java110.utils.exception.SMOException;
|
|
|
import com.java110.utils.util.Assert;
|
|
|
-import com.java110.core.factory.DataTransactionFactory;
|
|
|
-import com.java110.entity.center.AppRoute;
|
|
|
-import com.java110.entity.mapping.Mapping;
|
|
|
-import com.java110.service.context.DataQuery;
|
|
|
-import com.java110.entity.service.ServiceSql;
|
|
|
-import com.java110.db.dao.IQueryServiceDAO;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -44,8 +42,7 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
IQueryServiceDAO queryServiceDAOImpl;
|
|
|
|
|
|
@Override
|
|
|
- public void flush(DataQuery dataQuery) throws SMOException{
|
|
|
-
|
|
|
+ public void flush(DataQuery dataQuery) throws SMOException {
|
|
|
|
|
|
|
|
|
//1.0 封装 AppRoute
|
|
|
@@ -60,14 +57,18 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
//4.0 刷新业务信息
|
|
|
flushServiceBusiness(dataQuery);
|
|
|
|
|
|
- dataQuery.setResponseInfo(DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_SUCCESS,"刷新成功"));
|
|
|
+ //5.0 刷新基础权限
|
|
|
+ flushPrivilege(dataQuery);
|
|
|
+
|
|
|
+ dataQuery.setResponseInfo(DataTransactionFactory.createBusinessResponseJson(ResponseConstant.RESULT_CODE_SUCCESS, "刷新成功"));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据缓存类别刷新缓存
|
|
|
+ *
|
|
|
* @param headers 缓存类别
|
|
|
*/
|
|
|
- public void flush(Map<String,String> headers) throws SMOException{
|
|
|
+ public void flush(Map<String, String> headers) throws SMOException {
|
|
|
|
|
|
flushAppRoute(headers);
|
|
|
|
|
|
@@ -78,6 +79,9 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
|
|
|
//4.0 刷新业务信息
|
|
|
flushServiceBusiness(headers);
|
|
|
+
|
|
|
+ //5.0 刷新基础权限
|
|
|
+ flushPrivilege(headers);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -95,22 +99,27 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
doFlushServiceSql();
|
|
|
|
|
|
doFlushServiceBusiness();
|
|
|
+
|
|
|
+ //5.0 刷新全新
|
|
|
+ doFlushPrivilege();
|
|
|
}
|
|
|
|
|
|
- private void checkCacheParam(DataQuery dataQuery) throws SMOException{
|
|
|
+
|
|
|
+ private void checkCacheParam(DataQuery dataQuery) throws SMOException {
|
|
|
JSONObject params = dataQuery.getRequestParams();
|
|
|
- if(params == null || !params.containsKey(CommonConstant.CACHE_PARAM_NAME)){
|
|
|
- throw new SMOException(ResponseConstant.RESULT_PARAM_ERROR,"请求报文错误,未包含字段 "+CommonConstant.CACHE_PARAM_NAME);
|
|
|
+ if (params == null || !params.containsKey(CommonConstant.CACHE_PARAM_NAME)) {
|
|
|
+ throw new SMOException(ResponseConstant.RESULT_PARAM_ERROR, "请求报文错误,未包含字段 " + CommonConstant.CACHE_PARAM_NAME);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 3.0 分装 ServiceSql
|
|
|
*/
|
|
|
private void flushServiceSql(DataQuery dataQuery) {
|
|
|
|
|
|
JSONObject params = dataQuery.getRequestParams();
|
|
|
- if(!CommonConstant.CACHE_SERVICE_SQL.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))){
|
|
|
- return ;
|
|
|
+ if (!CommonConstant.CACHE_SERVICE_SQL.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))) {
|
|
|
+ return;
|
|
|
}
|
|
|
// 刷新
|
|
|
doFlushServiceSql();
|
|
|
@@ -119,8 +128,8 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
private void flushServiceBusiness(DataQuery dataQuery) {
|
|
|
|
|
|
JSONObject params = dataQuery.getRequestParams();
|
|
|
- if(!CommonConstant.CACHE_SERVICE_BUSINESS.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))){
|
|
|
- return ;
|
|
|
+ if (!CommonConstant.CACHE_SERVICE_BUSINESS.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))) {
|
|
|
+ return;
|
|
|
}
|
|
|
// 刷新
|
|
|
doFlushServiceBusiness();
|
|
|
@@ -129,12 +138,12 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
/**
|
|
|
* 3.0 分装 ServiceSql
|
|
|
*/
|
|
|
- private void flushServiceSql(Map<String,String> headers) {
|
|
|
+ private void flushServiceSql(Map<String, String> headers) {
|
|
|
|
|
|
- Assert.hasKey(headers,CommonConstant.CACHE_PARAM,"未包含cache参数"+headers.toString());
|
|
|
- if(!CommonConstant.CACHE_SERVICE_SQL.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
- && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))){
|
|
|
- return ;
|
|
|
+ Assert.hasKey(headers, CommonConstant.CACHE_PARAM, "未包含cache参数" + headers.toString());
|
|
|
+ if (!CommonConstant.CACHE_SERVICE_SQL.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
+ && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))) {
|
|
|
+ return;
|
|
|
}
|
|
|
// 刷新
|
|
|
doFlushServiceSql();
|
|
|
@@ -143,12 +152,12 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
/**
|
|
|
* 3.0 分装 ServiceSql
|
|
|
*/
|
|
|
- private void flushServiceBusiness(Map<String,String> headers) {
|
|
|
+ private void flushServiceBusiness(Map<String, String> headers) {
|
|
|
|
|
|
- Assert.hasKey(headers,CommonConstant.CACHE_PARAM,"未包含cache参数"+headers.toString());
|
|
|
- if(!CommonConstant.CACHE_SERVICE_BUSINESS.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
- && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))){
|
|
|
- return ;
|
|
|
+ Assert.hasKey(headers, CommonConstant.CACHE_PARAM, "未包含cache参数" + headers.toString());
|
|
|
+ if (!CommonConstant.CACHE_SERVICE_BUSINESS.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
+ && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))) {
|
|
|
+ return;
|
|
|
}
|
|
|
// 刷新
|
|
|
doFlushServiceBusiness();
|
|
|
@@ -160,22 +169,22 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
|
|
|
List<ServiceSql> serviceSqls = queryServiceDAOImpl.qureyServiceSqlAll();
|
|
|
|
|
|
- if(serviceSqls == null || serviceSqls.size() == 0){
|
|
|
+ if (serviceSqls == null || serviceSqls.size() == 0) {
|
|
|
return;
|
|
|
}
|
|
|
//删除原始数据
|
|
|
ServiceSqlCache.removeData(ServiceSqlCache._SUFFIX_SERVICE_SQL);
|
|
|
|
|
|
- for(ServiceSql serviceSql: serviceSqls){
|
|
|
+ for (ServiceSql serviceSql : serviceSqls) {
|
|
|
ServiceSqlCache.setServiceSql(serviceSql);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void doFlushServiceBusiness(){
|
|
|
+ private void doFlushServiceBusiness() {
|
|
|
logger.debug("开始刷新 ServiceBusiness数据到redis数据库中");
|
|
|
List<ServiceBusiness> serviceBusinesses = queryServiceDAOImpl.qureyServiceBusiness();
|
|
|
|
|
|
- if(serviceBusinesses == null || serviceBusinesses.size() == 0){
|
|
|
+ if (serviceBusinesses == null || serviceBusinesses.size() == 0) {
|
|
|
return;
|
|
|
}
|
|
|
//删除原始数据
|
|
|
@@ -193,23 +202,53 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
|
|
|
JSONObject params = dataQuery.getRequestParams();
|
|
|
|
|
|
- if(!CommonConstant.CACHE_MAPPING.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))){
|
|
|
- return ;
|
|
|
+ if (!CommonConstant.CACHE_MAPPING.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))) {
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
doFlushMapping();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 刷新 Mapping 数据
|
|
|
+ */
|
|
|
+ private void flushPrivilege(DataQuery dataQuery) {
|
|
|
+
|
|
|
+ JSONObject params = dataQuery.getRequestParams();
|
|
|
+
|
|
|
+ if (!CommonConstant.CACHE_PRIVILEGE.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ doFlushPrivilege();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 刷新 Mapping 数据
|
|
|
+ */
|
|
|
+ private void flushPrivilege(Map<String, String> headers) {
|
|
|
+
|
|
|
+ Assert.hasKey(headers, CommonConstant.CACHE_PARAM, "未包含cache参数" + headers.toString());
|
|
|
+
|
|
|
+ if (!CommonConstant.CACHE_PRIVILEGE.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
+ && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ doFlushPrivilege();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 刷新 Mapping 数据
|
|
|
*/
|
|
|
- private void flushMapping(Map<String,String> headers) {
|
|
|
+ private void flushMapping(Map<String, String> headers) {
|
|
|
|
|
|
- Assert.hasKey(headers,CommonConstant.CACHE_PARAM,"未包含cache参数"+headers.toString());
|
|
|
+ Assert.hasKey(headers, CommonConstant.CACHE_PARAM, "未包含cache参数" + headers.toString());
|
|
|
|
|
|
- if(!CommonConstant.CACHE_MAPPING.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
- && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))){
|
|
|
- return ;
|
|
|
+ if (!CommonConstant.CACHE_MAPPING.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
+ && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))) {
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
doFlushMapping();
|
|
|
@@ -220,20 +259,20 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
List<Mapping> mappings = centerServiceDAOImpl.getMappingInfoAll();
|
|
|
//删除原始数据
|
|
|
MappingCache.removeData(MappingCache._SUFFIX_MAPPING);
|
|
|
- for(Mapping mapping : mappings){
|
|
|
+ for (Mapping mapping : mappings) {
|
|
|
MappingCache.setVaule(mapping);
|
|
|
}
|
|
|
|
|
|
- Map<String,List<Mapping>> mappingMap = new HashMap<String,List<Mapping>>();
|
|
|
+ Map<String, List<Mapping>> mappingMap = new HashMap<String, List<Mapping>>();
|
|
|
List<Mapping> mappingsNew = null;
|
|
|
- for(Mapping mapping : mappings){
|
|
|
- if(mappingMap.containsKey(mapping.getDomain())){
|
|
|
+ for (Mapping mapping : mappings) {
|
|
|
+ if (mappingMap.containsKey(mapping.getDomain())) {
|
|
|
mappingsNew = mappingMap.get(mapping.getDomain());
|
|
|
mappingsNew.add(mapping);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
mappingsNew = new ArrayList<Mapping>();
|
|
|
mappingsNew.add(mapping);
|
|
|
- mappingMap.put(mapping.getDomain(),mappingsNew);
|
|
|
+ mappingMap.put(mapping.getDomain(), mappingsNew);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -242,15 +281,23 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void doFlushPrivilege() {
|
|
|
+ logger.debug("开始刷新 Mapping数据到redis数据库中");
|
|
|
+ List<BasePrivilegeDto> basePrivilegeDtos = centerServiceDAOImpl.getPrivilegeAll();
|
|
|
+ //删除原始数据
|
|
|
+ PrivilegeCache.removeData(PrivilegeCache.DEFAULT_PRIVILEGE);
|
|
|
+ PrivilegeCache.setValue(basePrivilegeDtos);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 刷新AppRoute数据
|
|
|
*/
|
|
|
- private void flushAppRoute(DataQuery dataQuery){
|
|
|
+ private void flushAppRoute(DataQuery dataQuery) {
|
|
|
|
|
|
JSONObject params = dataQuery.getRequestParams();
|
|
|
|
|
|
- if(!CommonConstant.CACHE_APP_ROUTE_SERVICE.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))){
|
|
|
- return ;
|
|
|
+ if (!CommonConstant.CACHE_APP_ROUTE_SERVICE.equals(params.getString(CommonConstant.CACHE_PARAM_NAME))) {
|
|
|
+ return;
|
|
|
}
|
|
|
doFlushAppRoute();
|
|
|
|
|
|
@@ -259,13 +306,13 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
/**
|
|
|
* 刷新AppRoute数据
|
|
|
*/
|
|
|
- private void flushAppRoute(Map<String,String> headers){
|
|
|
+ private void flushAppRoute(Map<String, String> headers) {
|
|
|
|
|
|
- Assert.hasKey(headers,CommonConstant.CACHE_PARAM,"未包含cache参数"+headers.toString());
|
|
|
+ Assert.hasKey(headers, CommonConstant.CACHE_PARAM, "未包含cache参数" + headers.toString());
|
|
|
|
|
|
- if(!CommonConstant.CACHE_APP_ROUTE_SERVICE.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
- && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))){
|
|
|
- return ;
|
|
|
+ if (!CommonConstant.CACHE_APP_ROUTE_SERVICE.equals(headers.get(CommonConstant.CACHE_PARAM))
|
|
|
+ && !CommonConstant.CACHE_ALL.equals(headers.get(CommonConstant.CACHE_PARAM))) {
|
|
|
+ return;
|
|
|
}
|
|
|
doFlushAppRoute();
|
|
|
|
|
|
@@ -274,16 +321,16 @@ public class CenterServiceCacheSMOImpl implements ICenterServiceCacheSMO {
|
|
|
private void doFlushAppRoute() {
|
|
|
logger.debug("开始刷新 AppRoute数据到redis数据库中");
|
|
|
List<Map> appInfos = centerServiceDAOImpl.getAppRouteAndServiceInfoAll();
|
|
|
- Map<String,List<AppRoute>> appRoustsMap = new HashMap<String,List<AppRoute>>();
|
|
|
+ Map<String, List<AppRoute>> appRoustsMap = new HashMap<String, List<AppRoute>>();
|
|
|
List<AppRoute> appRoutes = null;
|
|
|
- for(Map appInfo : appInfos){
|
|
|
- if(appRoustsMap.containsKey(appInfo.get("app_id").toString())){
|
|
|
+ for (Map appInfo : appInfos) {
|
|
|
+ if (appRoustsMap.containsKey(appInfo.get("app_id").toString())) {
|
|
|
appRoutes = appRoustsMap.get(appInfo.get("app_id").toString());
|
|
|
appRoutes.add(AppRoute.newInstance().builder(appInfo));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
appRoutes = new ArrayList<AppRoute>();
|
|
|
appRoutes.add(AppRoute.newInstance().builder(appInfo));
|
|
|
- appRoustsMap.put(appInfo.get("app_id").toString(),appRoutes);
|
|
|
+ appRoustsMap.put(appInfo.get("app_id").toString(), appRoutes);
|
|
|
}
|
|
|
}
|
|
|
//删除原始数据
|