diff --git a/pom.xml b/pom.xml index d6307ed..b42bb7f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.xjx ddt-crawler - 0.0.3-SNAPSHOT + 0.0.5-SNAPSHOT ddt-crawler ddt-crawler diff --git a/src/main/java/com/xjx/ddtcrawler/cache/CacheDomain.java b/src/main/java/com/xjx/ddtcrawler/cache/CacheDomain.java index 842b162..e7be5dc 100644 --- a/src/main/java/com/xjx/ddtcrawler/cache/CacheDomain.java +++ b/src/main/java/com/xjx/ddtcrawler/cache/CacheDomain.java @@ -4,6 +4,8 @@ import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; + /** * @author XieJiaxing * @date 2021/8/7 17:36 @@ -11,7 +13,16 @@ @Data @NoArgsConstructor @AllArgsConstructor -public class CacheDomain { +public class CacheDomain implements Serializable { + private static final long serialVersionUID = -1617868566077296126L; + private Object object; private Long expireAt; + + public boolean isExpired() { + if (expireAt == null) { + return false; + } + return expireAt < System.currentTimeMillis(); + } } diff --git a/src/main/java/com/xjx/ddtcrawler/cache/CacheInterface.java b/src/main/java/com/xjx/ddtcrawler/cache/CacheInterface.java new file mode 100644 index 0000000..871d85d --- /dev/null +++ b/src/main/java/com/xjx/ddtcrawler/cache/CacheInterface.java @@ -0,0 +1,12 @@ +package com.xjx.ddtcrawler.cache; + +/** + * @author XieJiaxing + * @date 2021/8/21 17:37 + */ +public interface CacheInterface { + /** + * 清理过期的 + */ + void clearExpired(); +} diff --git a/src/main/java/com/xjx/ddtcrawler/cache/CommonCache.java b/src/main/java/com/xjx/ddtcrawler/cache/CommonCache.java index 8039d71..50492be 100644 --- a/src/main/java/com/xjx/ddtcrawler/cache/CommonCache.java +++ b/src/main/java/com/xjx/ddtcrawler/cache/CommonCache.java @@ -1,5 +1,6 @@ package com.xjx.ddtcrawler.cache; +import org.apache.commons.collections4.MapUtils; import org.springframework.stereotype.Component; import java.util.Map; @@ -10,10 +11,13 @@ * @date 2021/8/7 17:33 */ @Component -public class CommonCache { +public class CommonCache implements CacheInterface { private final Map CACHE_MAP = new ConcurrentHashMap<>(); public void setCache(String key, Object value, Long expireTime) { + if (value == null) { + return; + } Long expireAt = null; if (expireTime != null) { expireAt = System.currentTimeMillis() + expireTime; @@ -49,4 +53,13 @@ public T getCache(String key) { return null; } } + + @Override + public void clearExpired() { + if (MapUtils.isEmpty(CACHE_MAP)) { + return; + } + + CACHE_MAP.values().removeIf(CacheDomain::isExpired); + } } diff --git a/src/main/java/com/xjx/ddtcrawler/cache/WebUserCache.java b/src/main/java/com/xjx/ddtcrawler/cache/WebUserCache.java index 65c21cc..f1af0b8 100644 --- a/src/main/java/com/xjx/ddtcrawler/cache/WebUserCache.java +++ b/src/main/java/com/xjx/ddtcrawler/cache/WebUserCache.java @@ -1,7 +1,7 @@ package com.xjx.ddtcrawler.cache; import com.xjx.ddtcrawler.cookie.WebUser; -import com.xjx.ddtcrawler.utils.EncryptedUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @@ -13,7 +13,7 @@ * @date 2021/8/1 22:56 */ @Component -public class WebUserCache { +public class WebUserCache implements CacheInterface { private final static Map MAP = new ConcurrentHashMap<>(); public WebUser getById(String id) { @@ -25,7 +25,7 @@ public WebUser getById(String id) { return null; } - Long expireTimeAt = webUser.getExpireTimeAt(); + Long expireTimeAt = webUser.getExpireAt(); if (expireTimeAt == null) { return webUser; } else { @@ -49,7 +49,7 @@ public String saveUser(WebUser webUser) { Long userId = webUser.getUserId(); String key = webUser.getKey(); - Long expireTimeAt = webUser.getExpireTimeAt(); + Long expireTimeAt = webUser.getExpireAt(); if (userId == null || StringUtils.isBlank(key)) { return null; } @@ -84,4 +84,13 @@ public void delete(String id) { MAP.remove(id); } + + @Override + public void clearExpired() { + if (MapUtils.isEmpty(MAP)) { + return; + } + + MAP.values().removeIf(CacheDomain::isExpired); + } } diff --git a/src/main/java/com/xjx/ddtcrawler/controller/AuctionController.java b/src/main/java/com/xjx/ddtcrawler/controller/AuctionController.java index 45f96b5..0e11e8d 100644 --- a/src/main/java/com/xjx/ddtcrawler/controller/AuctionController.java +++ b/src/main/java/com/xjx/ddtcrawler/controller/AuctionController.java @@ -24,6 +24,7 @@ public class AuctionController { @RequestMapping("/auction/getAuctionItems") public Result getItems(@RequestParam(required = false, defaultValue = "1") Integer page, @RequestParam(required = false, defaultValue = "-1") Long userId, + @RequestParam(required = false, defaultValue = "-1") Long buyerId, @RequestParam(required = false, defaultValue = "") String itemName, @RequestParam(required = false, defaultValue = "2") Integer order, @RequestParam(required = false, defaultValue = "true") Boolean sort) throws MyException, InterruptedException { @@ -41,11 +42,13 @@ public Result getItems(@RequestParam(required = false, defaultValue = "1") Integ queryUrl.setWebUser(webUser); queryUrl.setOrder(order); queryUrl.setUserId(userId); + queryUrl.setBuyId(buyerId); queryUrl.setSort(sort); queryUrl.setPage(page); queryUrl.setName(itemName.trim()); if (temporaryUser) { queryUrl.setUserId(-1L); + queryUrl.setBuyId(-1L); } Result result = auctionLogic.getSingleResult(queryUrl); @@ -71,7 +74,7 @@ public Result getAuctionPriceOder(String itemName, queryUrl.setSort(sort); queryUrl.setName(itemName.trim()); - Result result = auctionLogic.getResultsByBatchPages(queryUrl, QueryUrl.DEFAULT_PAGES, true, 250L, priceType, sort); + Result result = auctionLogic.getResultsByBatchPages(queryUrl, QueryUrl.DEFAULT_PAGES, true, 250L, priceType, sort, null); if (webUser.isTemporaryUser()) { result.hideSensitiveInfo(); } diff --git a/src/main/java/com/xjx/ddtcrawler/controller/TemplateController.java b/src/main/java/com/xjx/ddtcrawler/controller/TemplateController.java index 7ee5071..2b28b3f 100644 --- a/src/main/java/com/xjx/ddtcrawler/controller/TemplateController.java +++ b/src/main/java/com/xjx/ddtcrawler/controller/TemplateController.java @@ -8,6 +8,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @author XieJiaxing * @date 2021/8/14 18:33 @@ -26,7 +28,6 @@ public Template getTemplateById(Long id) throws MyException { return templateLogic.getTemplateById(id); } - @RequestMapping("/template/saveTemplate") public Boolean saveTemplate(Long templateId, String templateName) throws MyException { WebUser webUser = WebUser.getSafeWebUser(); @@ -35,4 +36,14 @@ public Boolean saveTemplate(Long templateId, String templateName) throws MyExcep } return templateLogic.saveTemplate(templateId, templateName); } + + @RequestMapping("/template/listAllTemplates") + public List