From bc6759c896124917cc987550ad9983cbe6c55e73 Mon Sep 17 00:00:00 2001 From: sleepybear <569750408@qq.com> Date: Wed, 4 May 2022 03:07:52 +0800 Subject: [PATCH] =?UTF-8?q?@dev=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E3=80=81=E6=9B=B4=E6=96=B0=20readme.md=E3=80=81=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=8B=A6=E6=88=AA=E5=99=A8=E3=80=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 13 +--- readme.md | 40 +++++++++-- .../com/xjx/ddtcrawler/config/ConfigBean.java | 46 ++++++++++++ .../controller/AuctionController.java | 9 +-- .../controller/PrivilegeController.java | 22 +++--- .../controller/TemplateController.java | 15 ++-- .../xjx/ddtcrawler/cookie/UserPrivilege.java | 54 -------------- .../com/xjx/ddtcrawler/cookie/WebUser.java | 55 +++++++++++++- .../com/xjx/ddtcrawler/domain/QueryUrl.java | 4 +- .../com/xjx/ddtcrawler/domain/Template.java | 19 ----- .../com/xjx/ddtcrawler/dto/TemplateDto.java | 42 +++++++++++ .../ddtcrawler/filter/FilterRegistration.java | 20 ------ .../xjx/ddtcrawler/filter/WebUserFilter.java | 72 ------------------- .../interceptor/UserInterceptor.java | 58 +++++++++++++++ .../ddtcrawler/interceptor/WebMvcConfig.java | 24 +++++++ .../xjx/ddtcrawler/logic/AuctionLogic.java | 22 +++--- .../xjx/ddtcrawler/logic/TemplateLogic.java | 24 +++---- .../xjx/ddtcrawler/logic/WebUserLogic.java | 5 +- .../xjx/ddtcrawler/schedule/MySchedule.java | 4 +- .../ddtcrawler/service/TemplateService.java | 56 ++++++++++----- .../java/com/xjx/ddtcrawler/test/Test.java | 32 --------- ...itional-spring-configuration-metadata.json | 13 ---- src/main/resources/application.yml | 6 +- 23 files changed, 347 insertions(+), 308 deletions(-) create mode 100644 src/main/java/com/xjx/ddtcrawler/config/ConfigBean.java delete mode 100644 src/main/java/com/xjx/ddtcrawler/cookie/UserPrivilege.java create mode 100644 src/main/java/com/xjx/ddtcrawler/dto/TemplateDto.java delete mode 100644 src/main/java/com/xjx/ddtcrawler/filter/FilterRegistration.java delete mode 100644 src/main/java/com/xjx/ddtcrawler/filter/WebUserFilter.java create mode 100644 src/main/java/com/xjx/ddtcrawler/interceptor/UserInterceptor.java create mode 100644 src/main/java/com/xjx/ddtcrawler/interceptor/WebMvcConfig.java delete mode 100644 src/main/resources/META-INF/additional-spring-configuration-metadata.json diff --git a/pom.xml b/pom.xml index e15d8f8..d80807f 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.xjx ddt-crawler - 0.1.1 + 0.2.0 ddt-crawler ddt-crawler @@ -47,11 +47,6 @@ org.apache.commons commons-lang3 - - org.springframework.boot - spring-boot-configuration-processor - true - com.baomidou @@ -74,12 +69,6 @@ xstream 1.4.19 - - - com.google.guava - guava - 31.1-jre - diff --git a/readme.md b/readme.md index 2576f2f..486f51c 100644 --- a/readme.md +++ b/readme.md @@ -1,12 +1,38 @@ -## 这里是本工程的介绍 +# 介绍 +## 简介 +这个是用 Java 写的弹弹堂拍卖场列表爬取、展示的工程。直接请求拍卖场接口,获取拍卖场数据,解析价格,展示于页面。 +## 技术栈 +后盾:基于 Spring Boot 3.0.0-M2 使用 Java 17 编写。数据库方面,使用 MySQL 并使用 MyBatis-plus 工具进行连接管理。 +前端:简单的 HTML+JavaScript+CSS,没有使用其他框架;HTTP 请求使用 axios。 +## 简单的静态页面 +这个静态页面仅做展示用,没有后端的相关支撑,故无法返回相关请求。静态页面:[ddt.html](https://sleepybear1113.github.io/ddt-crawler/src/main/resources/static/ddt.html) # 部署方式 - -静态页面:[ddt.html](https://sleepybear1113.github.io/ddt-crawler/src/main/resources/static/ddt.html) - -本地部署: -1. 下载 jar 包,[releases](https://github.com/sleepybear1113/ddt-crawler/releases)。 +## 本地 Jar 包部署: +1. 下载 Jar 包,[releases](https://github.com/sleepybear1113/ddt-crawler/releases)。 2. Java 所需版本为 Java 17。 3. 执行 `java -jar 文件名` 即可启动。 +## IDEA 部署 +1. 设置 Java 版本为 Java 17。 +2. clone 代码并构建工程。 +3. 启动工程。 +## 数据库相关 +在 `src/resources/application.yml` 文件中有定义的数据库地址,需要新建名为 `ddt` 的 schema。然后新建相关数据库,如下代码: +```sql +create table template +( + id bigint not null primary key, + name varchar(255) null, + price decimal(10, 2) null, + modify_time bigint null, + constraint template_id_unique_index unique (id) +) engine = InnoDB; + +create index template_name_index on template (name); +``` +### 物品信息 +由于拍卖场物品获取到的仅为物品 id,没有物品名称,需要在数据库中手动插入物品 id 和名称的对应关系,即 `template` 数据库的作用。此处不提供该数据。 +# 使用方法 +首先需要获取拍卖场的 HTTP 请求,可以在浏览器的控制台或者抓包获取。获取到 selfid 和 key 之后,填入页面对应位置,点击保存即可,而后就能进行物品的搜索。 -其他具体部署方式待补充...... \ No newline at end of file +其中 selfid 为用户 id,不会变,key 为每次登录随机生成,下线即失效,所以需要账号一直在线才能使用。 \ No newline at end of file diff --git a/src/main/java/com/xjx/ddtcrawler/config/ConfigBean.java b/src/main/java/com/xjx/ddtcrawler/config/ConfigBean.java new file mode 100644 index 0000000..b879e34 --- /dev/null +++ b/src/main/java/com/xjx/ddtcrawler/config/ConfigBean.java @@ -0,0 +1,46 @@ +package com.xjx.ddtcrawler.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +import java.util.List; + +/** + * There is description + * + * @author sleepybear + * @date 2022/05/04 00:18 + */ +@Configuration +public class ConfigBean { + private static List adminUserIds; + private static List commonUserIds; + private static String gameUrlPrefix; + + public static List getAdminUserIds() { + return adminUserIds; + } + + @Value("${user-id.admin}") + public void setAdminUserIds(List adminUserIds) { + ConfigBean.adminUserIds = adminUserIds; + } + + public static List getCommonUserIds() { + return commonUserIds; + } + + @Value("${user-id.common}") + public void setCommonUserIds(List commonUserIds) { + ConfigBean.commonUserIds = commonUserIds; + } + + public static String getGameUrlPrefix() { + return gameUrlPrefix; + } + + @Value("${game-url.prefix}") + public void setGameUrlPrefix(String gameUrlPrefix) { + ConfigBean.gameUrlPrefix = gameUrlPrefix; + } +} diff --git a/src/main/java/com/xjx/ddtcrawler/controller/AuctionController.java b/src/main/java/com/xjx/ddtcrawler/controller/AuctionController.java index 23129f8..a68e000 100644 --- a/src/main/java/com/xjx/ddtcrawler/controller/AuctionController.java +++ b/src/main/java/com/xjx/ddtcrawler/controller/AuctionController.java @@ -1,6 +1,5 @@ package com.xjx.ddtcrawler.controller; -import com.xjx.ddtcrawler.cookie.UserPrivilege; import com.xjx.ddtcrawler.cookie.WebUser; import com.xjx.ddtcrawler.domain.QueryUrl; import com.xjx.ddtcrawler.domain.Result; @@ -21,8 +20,6 @@ public class AuctionController { @Resource private AuctionLogic auctionLogic; - @Resource - private UserPrivilege userPrivilege; @RequestMapping("/auction/getAuctionItems") public Result getItems(@RequestParam(required = false, defaultValue = "1") Integer page, @@ -49,13 +46,13 @@ public Result getItems(@RequestParam(required = false, defaultValue = "1") Integ queryUrl.setSort(sort); queryUrl.setPage(page); queryUrl.setName(itemName.trim()); - if (userPrivilege.notAdmin(webUser)) { + if (webUser.notAdmin()) { queryUrl.setUserId(-1L); queryUrl.setBuyId(-1L); } Result result = auctionLogic.getSingleResult(queryUrl); - if (userPrivilege.notAdmin(webUser)) { + if (webUser.notAdmin()) { result.hideSensitiveInfo(); } return result; @@ -78,7 +75,7 @@ public Result getAuctionPriceOder(String itemName, queryUrl.setName(itemName.trim()); Result result = auctionLogic.getResultsByBatchPages(queryUrl, QueryUrl.DEFAULT_PAGES, true, 250L, priceType, sort, null); - if (userPrivilege.notAdmin(webUser)) { + if (webUser.notAdmin()) { result.hideSensitiveInfo(); } return result; diff --git a/src/main/java/com/xjx/ddtcrawler/controller/PrivilegeController.java b/src/main/java/com/xjx/ddtcrawler/controller/PrivilegeController.java index 1b52c25..d6c7bdf 100644 --- a/src/main/java/com/xjx/ddtcrawler/controller/PrivilegeController.java +++ b/src/main/java/com/xjx/ddtcrawler/controller/PrivilegeController.java @@ -1,8 +1,7 @@ package com.xjx.ddtcrawler.controller; -import com.xjx.ddtcrawler.cookie.UserPrivilege; +import com.xjx.ddtcrawler.config.ConfigBean; import com.xjx.ddtcrawler.exception.MyException; -import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -16,31 +15,26 @@ @RestController public class PrivilegeController { - @Resource - private UserPrivilege userPrivilege; - @RequestMapping("/privilege/addCommonUserId") public List addCommonUserId(Long id) { if (id == null) { throw new MyException("错误"); } - for (Long commonUserId : userPrivilege.getCommonUserIds()) { + for (Long commonUserId : ConfigBean.getCommonUserIds()) { if (commonUserId.equals(id)) { throw new MyException("重复"); } } - userPrivilege.getCommonUserIds().add(id); - return userPrivilege.getCommonUserIds(); + ConfigBean.getCommonUserIds().add(id); + return ConfigBean.getCommonUserIds(); } @RequestMapping("/privilege/deleteCommonUserId") - public Object deleteCommonUserId(Long id) { - if (id == null) { - throw new MyException("错误"); + public List deleteCommonUserId(Long id) { + if (id != null) { + ConfigBean.getCommonUserIds().removeIf(u -> u.equals(id)); } - - userPrivilege.getCommonUserIds().removeIf(u -> u.equals(id)); - return userPrivilege.getCommonUserIds(); + return ConfigBean.getCommonUserIds(); } } diff --git a/src/main/java/com/xjx/ddtcrawler/controller/TemplateController.java b/src/main/java/com/xjx/ddtcrawler/controller/TemplateController.java index e6139ca..5f3135f 100644 --- a/src/main/java/com/xjx/ddtcrawler/controller/TemplateController.java +++ b/src/main/java/com/xjx/ddtcrawler/controller/TemplateController.java @@ -1,8 +1,7 @@ package com.xjx.ddtcrawler.controller; -import com.xjx.ddtcrawler.cookie.UserPrivilege; import com.xjx.ddtcrawler.cookie.WebUser; -import com.xjx.ddtcrawler.domain.Template; +import com.xjx.ddtcrawler.dto.TemplateDto; import com.xjx.ddtcrawler.exception.MyException; import com.xjx.ddtcrawler.logic.TemplateLogic; import jakarta.annotation.Resource; @@ -19,13 +18,11 @@ public class TemplateController { @Resource private TemplateLogic templateLogic; - @Resource - private UserPrivilege userPrivilege; @RequestMapping("/template/getTemplateById") - public Template getTemplateById(Long id) throws MyException { + public TemplateDto getTemplateById(Long id) throws MyException { WebUser webUser = WebUser.getSafeWebUser(); - if (userPrivilege.notAdmin(webUser)) { + if (webUser.notAdmin()) { throw new MyException("无权操作该接口"); } return templateLogic.getTemplateById(id); @@ -34,19 +31,19 @@ public Template getTemplateById(Long id) throws MyException { @RequestMapping("/template/saveTemplate") public Boolean saveTemplate(Long templateId, String templateName) throws MyException { WebUser webUser = WebUser.getSafeWebUser(); - if (userPrivilege.notAdmin(webUser)) { + if (webUser.notAdmin()) { throw new MyException("无权操作该接口"); } return templateLogic.saveTemplate(templateId, templateName); } @RequestMapping("/template/listAllTemplates") - public List