diff --git a/src/main/java/neatlogic/framework/restful/core/ApiComponentBase.java b/src/main/java/neatlogic/framework/restful/core/ApiComponentBase.java index 2158f79d768ec4c074b674fcea12184dcb1958c2..52c1e331bcb41cc719f2f1d648f5f5c528ce0ecd 100644 --- a/src/main/java/neatlogic/framework/restful/core/ApiComponentBase.java +++ b/src/main/java/neatlogic/framework/restful/core/ApiComponentBase.java @@ -23,7 +23,7 @@ import neatlogic.framework.dto.api.CacheControlVo; import neatlogic.framework.exception.core.ApiFieldValidNotFoundException; import neatlogic.framework.exception.core.ApiRuntimeException; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentFactory; -import neatlogic.framework.restful.dao.mapper.ApiMapper; +import neatlogic.framework.restful.dao.mapper.ApiLongCacheMapper; import neatlogic.framework.restful.dto.ApiVo; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.exception.ExceptionUtils; @@ -39,7 +39,7 @@ import java.lang.reflect.Method; public abstract class ApiComponentBase extends ApiValidateAndHelpBase implements MyApiComponent { @Resource - private ApiMapper apiMapper; + private ApiLongCacheMapper apiLongCacheMapper; public int needAudit() { return 0; @@ -174,7 +174,7 @@ public abstract class ApiComponentBase extends ApiValidateAndHelpBase implements } finally { long endTime = System.currentTimeMillis(); if (!apiVo.getModuleId().equals("master")) { - ApiVo apiConfigVo = apiMapper.getApiByToken(apiVo.getToken()); + ApiVo apiConfigVo = apiLongCacheMapper.getApiByToken(apiVo.getToken()); // 如果没有配置,则使用默认配置 if (apiConfigVo == null) { apiConfigVo = apiVo; diff --git a/src/main/java/neatlogic/framework/restful/core/BinaryStreamApiComponentBase.java b/src/main/java/neatlogic/framework/restful/core/BinaryStreamApiComponentBase.java index a826027129ecbf2e509ec8cbb1313e55aceac08e..8ed926d2243cdca09722560a5d00162a8b6a8ead 100644 --- a/src/main/java/neatlogic/framework/restful/core/BinaryStreamApiComponentBase.java +++ b/src/main/java/neatlogic/framework/restful/core/BinaryStreamApiComponentBase.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import neatlogic.framework.common.constvalue.CacheControlType; import neatlogic.framework.dto.api.CacheControlVo; import neatlogic.framework.exception.core.ApiRuntimeException; +import neatlogic.framework.restful.dao.mapper.ApiLongCacheMapper; import neatlogic.framework.restful.dao.mapper.ApiMapper; import neatlogic.framework.restful.dto.ApiVo; import org.apache.commons.lang3.exception.ExceptionUtils; @@ -11,6 +12,7 @@ import org.springframework.aop.framework.AopContext; import org.springframework.aop.support.AopUtils; import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Method; @@ -19,8 +21,8 @@ public abstract class BinaryStreamApiComponentBase extends ApiValidateAndHelpBas // private static Logger logger = // LoggerFactory.getLogger(BinaryStreamApiComponentBase.class); - @Autowired - private ApiMapper apiMapper; + @Resource + private ApiLongCacheMapper apiLongCacheMapper; public int needAudit() { return 0; @@ -68,7 +70,7 @@ public abstract class BinaryStreamApiComponentBase extends ApiValidateAndHelpBas throw e; } finally { long endTime = System.currentTimeMillis(); - ApiVo apiConfigVo = apiMapper.getApiByToken(apiVo.getToken()); + ApiVo apiConfigVo = apiLongCacheMapper.getApiByToken(apiVo.getToken()); // 如果没有配置,则使用默认配置 if (apiConfigVo == null) { apiConfigVo = apiVo; diff --git a/src/main/java/neatlogic/framework/restful/core/JsonStreamApiComponentBase.java b/src/main/java/neatlogic/framework/restful/core/JsonStreamApiComponentBase.java index 589ef9bd42c89ab157e162c7f6d4b5a1ffbfc526..b6c343a7e802c57e87e553967ccbb1c51e13ba07 100644 --- a/src/main/java/neatlogic/framework/restful/core/JsonStreamApiComponentBase.java +++ b/src/main/java/neatlogic/framework/restful/core/JsonStreamApiComponentBase.java @@ -3,6 +3,7 @@ package neatlogic.framework.restful.core; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONReader; import neatlogic.framework.exception.core.ApiRuntimeException; +import neatlogic.framework.restful.dao.mapper.ApiLongCacheMapper; import neatlogic.framework.restful.dao.mapper.ApiMapper; import neatlogic.framework.restful.dto.ApiVo; import org.apache.commons.lang3.exception.ExceptionUtils; @@ -10,14 +11,15 @@ import org.springframework.aop.framework.AopContext; import org.springframework.aop.support.AopUtils; import org.springframework.beans.factory.annotation.Autowired; +import javax.annotation.Resource; import java.lang.reflect.Method; public abstract class JsonStreamApiComponentBase extends ApiValidateAndHelpBase implements MyJsonStreamApiComponent { // private static Logger logger = // LoggerFactory.getLogger(JsonStreamApiComponentBase.class); - @Autowired - private ApiMapper apiMapper; + @Resource + private ApiLongCacheMapper apiLongCacheMapper; public int needAudit() { @@ -54,7 +56,7 @@ public abstract class JsonStreamApiComponentBase extends ApiValidateAndHelpBase throw e; } finally { long endTime = System.currentTimeMillis(); - ApiVo apiConfigVo = apiMapper.getApiByToken(apiVo.getToken()); + ApiVo apiConfigVo = apiLongCacheMapper.getApiByToken(apiVo.getToken()); // 如果没有配置,则使用默认配置 if (apiConfigVo == null) { apiConfigVo = apiVo; diff --git a/src/main/java/neatlogic/framework/restful/core/RawApiComponentBase.java b/src/main/java/neatlogic/framework/restful/core/RawApiComponentBase.java index 28d042d7f10e156b56366bea3e5a4ef08e6962e8..e4bcafa7f63513fc10c4d1678fe6b820873fb184 100644 --- a/src/main/java/neatlogic/framework/restful/core/RawApiComponentBase.java +++ b/src/main/java/neatlogic/framework/restful/core/RawApiComponentBase.java @@ -21,7 +21,7 @@ import neatlogic.framework.common.config.Config; import neatlogic.framework.dto.FieldValidResultVo; import neatlogic.framework.dto.api.CacheControlVo; import neatlogic.framework.exception.core.ApiRuntimeException; -import neatlogic.framework.restful.dao.mapper.ApiMapper; +import neatlogic.framework.restful.dao.mapper.ApiLongCacheMapper; import neatlogic.framework.restful.dto.ApiVo; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.exception.ExceptionUtils; @@ -36,7 +36,7 @@ import java.lang.reflect.Method; public abstract class RawApiComponentBase extends ApiValidateAndHelpBase implements MyRawApiComponent { @Resource - private ApiMapper apiMapper; + private ApiLongCacheMapper apiLongCacheMapper; public int needAudit() { return 0; @@ -110,7 +110,7 @@ public abstract class RawApiComponentBase extends ApiValidateAndHelpBase impleme } finally { long endTime = System.currentTimeMillis(); if (!apiVo.getModuleId().equals("master")) { - ApiVo apiConfigVo = apiMapper.getApiByToken(apiVo.getToken()); + ApiVo apiConfigVo = apiLongCacheMapper.getApiByToken(apiVo.getToken()); // 如果没有配置,则使用默认配置 if (apiConfigVo == null) { apiConfigVo = apiVo; diff --git a/src/main/java/neatlogic/framework/restful/counter/ApiAccessCountUpdateThread.java b/src/main/java/neatlogic/framework/restful/counter/ApiAccessCountManager.java similarity index 32% rename from src/main/java/neatlogic/framework/restful/counter/ApiAccessCountUpdateThread.java rename to src/main/java/neatlogic/framework/restful/counter/ApiAccessCountManager.java index 1fab4962869b04881624f6ede0e857fa05bdf5ad..bfff664188d624ae5673b7457aeeb48a34e1a09e 100644 --- a/src/main/java/neatlogic/framework/restful/counter/ApiAccessCountUpdateThread.java +++ b/src/main/java/neatlogic/framework/restful/counter/ApiAccessCountManager.java @@ -17,26 +17,25 @@ package neatlogic.framework.restful.counter; import neatlogic.framework.asynchronization.thread.NeatLogicThread; import neatlogic.framework.asynchronization.threadlocal.TenantContext; -import neatlogic.framework.asynchronization.threadpool.CachedThreadPool; -import neatlogic.framework.restful.service.ApiService; +import neatlogic.framework.restful.dao.mapper.ApiAuditMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.Map.Entry; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.DelayQueue; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; /** * @ClassName: ApiAccessCountManager * @Description: 接口访问次数统计管理类 */ @Service -public class ApiAccessCountUpdateThread extends NeatLogicThread { +public class ApiAccessCountManager { - private static final Logger logger = LoggerFactory.getLogger(ApiAccessCountUpdateThread.class); + private static final Logger logger = LoggerFactory.getLogger(ApiAccessCountManager.class); /** * 统计延迟对象,默认初始化一个失效的延迟对象 **/ @@ -46,15 +45,87 @@ public class ApiAccessCountUpdateThread extends NeatLogicThread { **/ private static final DelayQueue delayQueue = new DelayQueue<>(); - private static ApiService apiService; + private static ApiAuditMapper apiAuditMapper; - @Autowired - public void setApiService(ApiService _apiService) { - apiService = _apiService; + static { + Thread t = new Thread(new NeatLogicThread("API-ACCESS-COUNT-MANAGER") { + + @Override + protected void execute() { + while (!Thread.currentThread().isInterrupted()) { + try { + DelayedItem take = delayQueue.take(); + // Thread.sleep(1);//测试时使用 + /* 从延迟队列取出延迟对象后,将延迟对象设置为失效,通知其他线程不要再往该对象写数据了 **/ + take.setExpired(true); + // Thread.sleep(1);//测试时使用 + while (take.getWritingDataThreadNum() > 0) { + /* 如果还有线程正在往当前延迟对象中写数据 **/ + synchronized (take.getLock()) { + /* 等待所有正在往当前延迟对象中写数据的线程完成后,唤醒当前线程 **/ + take.getLock().wait(); + } + } + + /**测试代码开始 **/ +// Thread.sleep(10);//测试时使用 +// for(Entry> tenantAccessTokenEntry : take.getTenantAccessTokenMap().entrySet()) { +// String tenantUuid = tenantAccessTokenEntry.getKey(); +// for(Entry entry : tenantAccessTokenEntry.getValue().entrySet()) { +// String token = entry.getKey(); +// ConcurrentMap> tenantAccessTokenMap2 = Test.getTenantAccessTokenMap(); +// ConcurrentMap accessTokenCounterMap = tenantAccessTokenMap2.get(tenantUuid); +// if(accessTokenCounterMap == null) { +// synchronized(tenantAccessTokenMap2){ +// accessTokenCounterMap = tenantAccessTokenMap2.get(tenantUuid); +// if(accessTokenCounterMap == null) { +// accessTokenCounterMap = new ConcurrentHashMap<>(); +// tenantAccessTokenMap2.put(tenantUuid, accessTokenCounterMap); +// } +// } +// } +// +// AtomicInteger counter = accessTokenCounterMap.get(token); +// if(counter == null) { +// synchronized(accessTokenCounterMap){ +// counter = accessTokenCounterMap.get(token); +// if(counter == null) { +// accessTokenCounterMap.put(token, new AtomicInteger(entry.getValue().get())); +// }else { +// counter.getAndAdd(entry.getValue().get()); +// } +// } +// }else { +// counter.getAndAdd(entry.getValue().get()); +// } +// +// } +// } + /** 测试代码结束 **/ + /** 业务代码开始**/ + for (Entry> tenantAccessTokenEntry : take.getTenantAccessTokenMap().entrySet()) { + TenantContext.init(tenantAccessTokenEntry.getKey()); + for (Entry entry : tenantAccessTokenEntry.getValue().entrySet()) { + apiAuditMapper.insertApiAccessCount(entry.getKey(), entry.getValue().get()); + } + } + /** 业务代码结束**/ + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + break; + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } + } + }); + t.setDaemon(true); + t.start(); } - public ApiAccessCountUpdateThread() { - super("API-ACCESS-COUNT-UPDATER"); + @Resource + public void setApiAuditMapper(ApiAuditMapper _apiAuditMapper) { + apiAuditMapper = _apiAuditMapper; } @@ -64,11 +135,10 @@ public class ApiAccessCountUpdateThread extends NeatLogicThread { if (delayedItem.isExpired()) { // Thread.sleep(1);//测试时使用 /* 初始化延迟对象时,必须加锁,否则会出现多个线程相互覆盖情况 **/ - synchronized (ApiAccessCountUpdateThread.class) { + synchronized (ApiAccessCountManager.class) { if (delayedItem.isExpired()) { delayedItem = new DelayedItem(); delayQueue.add(delayedItem); - CachedThreadPool.execute(new ApiAccessCountUpdateThread()); } } // Thread.sleep(1);//测试时使用 @@ -82,67 +152,4 @@ public class ApiAccessCountUpdateThread extends NeatLogicThread { } } - @Override - protected void execute() { - try { - DelayedItem take = delayQueue.take(); -// Thread.sleep(1);//测试时使用 - /* 从延迟队列取出延迟对象后,将延迟对象设置为失效,通知其他线程不要再往该对象写数据了 **/ - take.setExpired(true); -// Thread.sleep(1);//测试时使用 - while (take.getWritingDataThreadNum() > 0) { - /* 如果还有线程正在往当前延迟对象中写数据 **/ - synchronized (take.getLock()) { - /* 等待所有正在往当前延迟对象中写数据的线程完成后,唤醒当前线程 **/ - take.getLock().wait(); - } - } - - /**测试代码开始 **/ -// Thread.sleep(10);//测试时使用 -// for(Entry> tenantAccessTokenEntry : take.getTenantAccessTokenMap().entrySet()) { -// String tenantUuid = tenantAccessTokenEntry.getKey(); -// for(Entry entry : tenantAccessTokenEntry.getValue().entrySet()) { -// String token = entry.getKey(); -// ConcurrentMap> tenantAccessTokenMap2 = Test.getTenantAccessTokenMap(); -// ConcurrentMap accessTokenCounterMap = tenantAccessTokenMap2.get(tenantUuid); -// if(accessTokenCounterMap == null) { -// synchronized(tenantAccessTokenMap2){ -// accessTokenCounterMap = tenantAccessTokenMap2.get(tenantUuid); -// if(accessTokenCounterMap == null) { -// accessTokenCounterMap = new ConcurrentHashMap<>(); -// tenantAccessTokenMap2.put(tenantUuid, accessTokenCounterMap); -// } -// } -// } -// -// AtomicInteger counter = accessTokenCounterMap.get(token); -// if(counter == null) { -// synchronized(accessTokenCounterMap){ -// counter = accessTokenCounterMap.get(token); -// if(counter == null) { -// accessTokenCounterMap.put(token, new AtomicInteger(entry.getValue().get())); -// }else { -// counter.getAndAdd(entry.getValue().get()); -// } -// } -// }else { -// counter.getAndAdd(entry.getValue().get()); -// } -// -// } -// } - /** 测试代码结束 **/ - /** 业务代码开始**/ - for (Entry> tenantAccessTokenEntry : take.getTenantAccessTokenMap().entrySet()) { - TenantContext.init(tenantAccessTokenEntry.getKey()); - for (Entry entry : tenantAccessTokenEntry.getValue().entrySet()) { - apiService.saveApiAccessCount(entry.getKey(), entry.getValue().get()); - } - } - /** 业务代码结束**/ - } catch (Exception e) { - logger.error(e.getMessage(), e); - } - } } diff --git a/src/main/java/neatlogic/framework/restful/counter/DelayedItem.java b/src/main/java/neatlogic/framework/restful/counter/DelayedItem.java index 14db53169368480fce3e0b5aa8d45a0a65486d87..90a355ba134e13c581922fe0e931c2244993139a 100644 --- a/src/main/java/neatlogic/framework/restful/counter/DelayedItem.java +++ b/src/main/java/neatlogic/framework/restful/counter/DelayedItem.java @@ -25,6 +25,7 @@ import java.util.concurrent.Delayed; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; /** * @Time:2020年7月17日 @@ -43,7 +44,7 @@ public class DelayedItem implements Delayed { /** * 缓存租户访问记录 **/ - private final ConcurrentMap> tenantAccessTokenMap = new ConcurrentHashMap<>(); + private final ConcurrentMap> tenantAccessTokenMap = new ConcurrentHashMap<>(); /** * 标记正在往当前延迟对象的缓存tenantAccessTokenMap中写数据的线程数 **/ @@ -84,11 +85,11 @@ public class DelayedItem implements Delayed { /* 判断延迟对象是否失效 **/ if(expired.get()) { // Thread.sleep(1);//测试时使用 - ApiAccessCountUpdateThread.putToken(token); + ApiAccessCountManager.putToken(token); }else { String tenantUuid = TenantContext.get().getTenantUuid(); /* 从缓存中获取当前租户访问记录 **/ - ConcurrentMap accessTokenCounterMap = tenantAccessTokenMap.get(tenantUuid); + ConcurrentMap accessTokenCounterMap = tenantAccessTokenMap.get(tenantUuid); if (accessTokenCounterMap == null) { /* 初始化某个租户访问记录缓存时,必须加锁,否则会出现多个线程相互覆盖情况 **/ synchronized (this) { @@ -101,13 +102,13 @@ public class DelayedItem implements Delayed { } /* 从缓存中获取当前token访问次数 ,并累加1**/ - AtomicInteger counter = accessTokenCounterMap.get(token); + AtomicLong counter = accessTokenCounterMap.get(token); if (counter == null) { /* 初始化某个token访问次数时,必须加锁,否则会出现多个线程相互覆盖情况 **/ synchronized (accessTokenCounterMap) { counter = accessTokenCounterMap.get(token); if (counter == null) { - accessTokenCounterMap.put(token, new AtomicInteger(1)); + accessTokenCounterMap.put(token, new AtomicLong(1)); } else { counter.incrementAndGet(); } @@ -147,7 +148,7 @@ public class DelayedItem implements Delayed { } } - public ConcurrentMap> getTenantAccessTokenMap() { + public ConcurrentMap> getTenantAccessTokenMap() { return tenantAccessTokenMap; } diff --git a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiAuditMapper.java b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiAuditMapper.java index b1899066d086d95021c3780362ce9452c68507b2..a7f30292b1f02a3795f2e0825d80982460a4e8c1 100644 --- a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiAuditMapper.java +++ b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiAuditMapper.java @@ -31,11 +31,11 @@ public interface ApiAuditMapper { List getApiAuditList(ApiAuditVo apiAuditVo); - List getApiVisitTimesListByTokenList(List tokenList); +// List getApiVisitTimesListByTokenList(List tokenList); List getApiAccessCountByTokenList(List tokenList); - String getApiAccessCountLockByToken(String token); +// String getApiAccessCountLockByToken(String token); List searchApiAuditList(ApiAuditVo apiAuditVo); @@ -56,7 +56,7 @@ public interface ApiAuditMapper { * @Time:2020年7月15日 * @Description: 插入接口访问次数 */ - int insertApiAccessCount(@Param("token") String token, @Param("count") Integer count); + int insertApiAccessCount(@Param("token") String token, @Param("count") long count); int insertAuditFile(@Param("hash") String hash, @Param("filePath") String filePath); @@ -67,9 +67,7 @@ public interface ApiAuditMapper { * @Time:2020年7月15日 * @Description: 增加接口访问次数 */ - int updateApiAccessCount(@Param("token") String token, @Param("count") Integer count); - - int updateApiNeedAuditByToken(String token); +// int updateApiAccessCount(@Param("token") String token, @Param("count") Long count); void deleteAuditByDayBefore(int dayBefore); } diff --git a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiAuditMapper.xml b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiAuditMapper.xml index 8d8a520d234a1e5470e22d4c945ae37c915fe2a2..0623bfbee47b1d7ee9203c9d48e361b4cfaa3658 100644 --- a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiAuditMapper.xml +++ b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiAuditMapper.xml @@ -64,7 +64,7 @@ along with this program. If not, see .--> LIMIT #{startNum}, #{pageSize} - + --> - + --> - + INSERT INTO `api_audit` (`id`, @@ -290,6 +284,7 @@ along with this program. If not, see .--> INSERT INTO `api_access_count` (`token`, `count`) VALUES (#{token}, #{count}) + ON DUPLICATE KEY UPDATE `count` = `count` + #{count} diff --git a/src/main/java/neatlogic/framework/restful/counter/ApiAccessCounterThread.java b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiLongCacheMapper.java similarity index 37% rename from src/main/java/neatlogic/framework/restful/counter/ApiAccessCounterThread.java rename to src/main/java/neatlogic/framework/restful/dao/mapper/ApiLongCacheMapper.java index 9d01f192ba75359d7b15f79802fc033553c59778..113ea0bfd14308779fc180b4e49a2954dc1c2f31 100644 --- a/src/main/java/neatlogic/framework/restful/counter/ApiAccessCounterThread.java +++ b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiLongCacheMapper.java @@ -13,43 +13,11 @@ GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see .*/ -package neatlogic.framework.restful.counter; +package neatlogic.framework.restful.dao.mapper; -import neatlogic.framework.asynchronization.thread.NeatLogicThread; -import neatlogic.framework.asynchronization.threadlocal.TenantContext; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import neatlogic.framework.restful.dto.ApiVo; -/** - * @Time:2020年7月15日 - * @ClassName: ApiAccessCounterThread - * @Description: 模拟接口访问任务类 - */ -public class ApiAccessCounterThread extends NeatLogicThread { - - private static final Logger logger = LoggerFactory.getLogger(ApiAccessCounterThread.class); - - private final String tenantUuid; - - private final String token; - - public ApiAccessCounterThread(int i, String tenantUuid, String token) { - super("API-ACCESS-COUNTER" + i); - this.tenantUuid = tenantUuid; - this.token = token; - } - - @Override - protected void execute() { - try { - if (StringUtils.isNotBlank(tenantUuid) && StringUtils.isNotBlank(token)) { - TenantContext.init(tenantUuid); - ApiAccessCountUpdateThread.putToken(token); - } - } catch (Exception e) { - logger.error(e.getMessage(), e); - } - } +public interface ApiLongCacheMapper { + ApiVo getApiByToken(String token); } diff --git a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiLongCacheMapper.xml b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiLongCacheMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..82d45a4e16908b315ceedfd34f7ed068e347c494 --- /dev/null +++ b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiLongCacheMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + diff --git a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiMapper.java b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiMapper.java index 9bb8e9a3739d60368636f0bba162038b87ab14fe..96995816e1eb20c7fc91f8fb3c8395f6271a2f9b 100644 --- a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiMapper.java +++ b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiMapper.java @@ -24,7 +24,7 @@ public interface ApiMapper { ApiVo getApiByToken(String token); - List getApiTokenList(ApiVo apiVo); +// List getApiTokenList(ApiVo apiVo); List getAllApi(); @@ -42,5 +42,7 @@ public interface ApiMapper { int insertOrUpdateNeedAuditApi(ApiVo apiVo); - int updatePasswordByToken(@Param("token")String token,@Param("password")String password); +// int updatePasswordByToken(@Param("token")String token,@Param("password")String password); + + int updateApiNeedAuditByToken(String token); } diff --git a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiMapper.xml b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiMapper.xml index fa270e0f1081dc4ed70f72ac708698b4bad83b17..1b2de270e0b8ad302037570f50c3257c91c82416 100644 --- a/src/main/java/neatlogic/framework/restful/dao/mapper/ApiMapper.xml +++ b/src/main/java/neatlogic/framework/restful/dao/mapper/ApiMapper.xml @@ -39,7 +39,7 @@ along with this program. If not, see .--> WHERE token = #{value} - + -->