From f0203438563c067757948e747b59e1d6800f0012 Mon Sep 17 00:00:00 2001 From: wangli Date: Fri, 6 Feb 2026 00:02:02 +0800 Subject: [PATCH] init --- .../request/ProductBatchDeleteRequest.java | 17 +++++ .../dto/request/ProductDeleteRequest.java | 18 +++++ .../common/dto/response/BaseResponse.java | 6 ++ .../dto/response/BatchDeleteResponse.java | 22 ++++++ .../core/repository/ProductRepository.java | 4 ++ .../goofish/api/GoofishAbstractApi.java | 15 +++- .../goofish/api/impl/GetAccountApi.java | 11 +-- .../goofish/api/impl/GetAllItemsApi.java | 9 +-- .../goofish/api/impl/GetDisplayNameApi.java | 11 +-- .../goofish/api/impl/GetItemDescApi.java | 9 +-- .../xianyu/goofish/api/impl/GetUserIdApi.java | 17 +++-- .../goofish/api/impl/GetWsTokenApi.java | 15 ++-- .../goofish/service/BrowserService.java | 5 +- .../websocket/GoofishAccountWebsocket.java | 2 +- .../server/XianyuFreedomApplication.java | 3 +- .../server/config/GeetestConfig.java | 2 +- .../server/config/HttpClientConfig.java | 2 +- .../server/config/SecurityConfig.java | 4 +- .../server/config/ThreadPoolConfig.java | 6 +- .../server/controller/AdminController.java | 2 +- .../server/controller/AssistController.java | 4 +- .../server/controller/AuthController.java | 14 ++-- .../server/controller/CardController.java | 2 +- .../controller/DashboardController.java | 2 +- .../server/controller/GeetestController.java | 4 +- .../controller/GoofishAccountController.java | 4 +- .../server/controller/KeywordController.java | 2 +- .../server/controller/OrderController.java | 2 +- .../server/controller/ProductController.java | 71 +++++++++++++++++-- .../controller/SystemSettingController.java | 2 +- .../demo/CurrentUserDemoController.java | 4 +- .../demo/RolePermissionDemoController.java | 6 +- .../controller/demo/UserInfoController.java | 4 +- .../AuthenticationExceptionHandler.java | 2 +- .../initialization/DataInitializerLogger.java | 2 +- .../server/notice/NoticeService.java | 2 +- .../server/notice/channel/EmailChannel.java | 2 +- .../security/JwtAuthenticationFilter.java | 2 +- .../server/security/JwtUtil.java | 2 +- .../server/security/RequireSuperAdmin.java | 2 +- .../service/AdminUserDetailsService.java | 2 +- .../server/service/AuthService.java | 4 +- .../server/service/CaptchaService.java | 2 +- .../server/service/EmailService.java | 2 +- .../service/EmailVerificationService.java | 2 +- .../server/service/GeetestService.java | 4 +- .../server/util/CurrentUserUtil.java | 2 +- .../server/util/ImageUtils.java | 2 +- .../server/util/SpringContextHolder.java | 2 +- .../src/main/resources/application.yml | 6 ++ 50 files changed, 230 insertions(+), 113 deletions(-) create mode 100644 xianyu-common/src/main/java/top/biwin/xinayu/common/dto/request/ProductBatchDeleteRequest.java create mode 100644 xianyu-common/src/main/java/top/biwin/xinayu/common/dto/request/ProductDeleteRequest.java create mode 100644 xianyu-common/src/main/java/top/biwin/xinayu/common/dto/response/BatchDeleteResponse.java rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/XianyuFreedomApplication.java (88%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/config/GeetestConfig.java (96%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/config/HttpClientConfig.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/config/SecurityConfig.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/config/ThreadPoolConfig.java (85%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/AdminController.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/AssistController.java (97%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/AuthController.java (97%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/CardController.java (85%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/DashboardController.java (80%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/GeetestController.java (97%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/GoofishAccountController.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/KeywordController.java (99%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/OrderController.java (97%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/ProductController.java (53%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/SystemSettingController.java (97%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/demo/CurrentUserDemoController.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/demo/RolePermissionDemoController.java (96%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/controller/demo/UserInfoController.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/exception/AuthenticationExceptionHandler.java (97%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/initialization/DataInitializerLogger.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/notice/NoticeService.java (71%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/notice/channel/EmailChannel.java (66%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/security/JwtAuthenticationFilter.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/security/JwtUtil.java (99%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/security/RequireSuperAdmin.java (93%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/service/AdminUserDetailsService.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/service/AuthService.java (99%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/service/CaptchaService.java (99%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/service/EmailService.java (99%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/service/EmailVerificationService.java (99%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/service/GeetestService.java (98%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/util/CurrentUserUtil.java (99%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/util/ImageUtils.java (99%) rename xianyu-server/src/main/java/top/biwin/{xinayu => xianyu}/server/util/SpringContextHolder.java (97%) diff --git a/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/request/ProductBatchDeleteRequest.java b/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/request/ProductBatchDeleteRequest.java new file mode 100644 index 0000000..bd43844 --- /dev/null +++ b/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/request/ProductBatchDeleteRequest.java @@ -0,0 +1,17 @@ +package top.biwin.xinayu.common.dto.request; + +import lombok.Data; + +import java.util.List; + +/** + * TODO + * + * @author wangli + * @since 2026-02-05 23:39 + */ +@Data +public class ProductBatchDeleteRequest { + private List items; + +} diff --git a/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/request/ProductDeleteRequest.java b/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/request/ProductDeleteRequest.java new file mode 100644 index 0000000..89cf1a5 --- /dev/null +++ b/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/request/ProductDeleteRequest.java @@ -0,0 +1,18 @@ +package top.biwin.xinayu.common.dto.request; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * TODO + * + * @author wangli + * @since 2026-02-05 23:53 + */ +@Data +public class ProductDeleteRequest { + @JsonProperty("goofish_id") + private String goofishId; + @JsonProperty("item_id") + private String goofishProductId; +} diff --git a/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/response/BaseResponse.java b/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/response/BaseResponse.java index f6fc5e1..3f4e02d 100644 --- a/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/response/BaseResponse.java +++ b/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/response/BaseResponse.java @@ -18,4 +18,10 @@ import lombok.experimental.SuperBuilder; public class BaseResponse { private String message; private Boolean success; + private Object data; + + public BaseResponse(String message, Boolean success) { + this.message = message; + this.success = success; + } } diff --git a/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/response/BatchDeleteResponse.java b/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/response/BatchDeleteResponse.java new file mode 100644 index 0000000..eaa3de8 --- /dev/null +++ b/xianyu-common/src/main/java/top/biwin/xinayu/common/dto/response/BatchDeleteResponse.java @@ -0,0 +1,22 @@ +package top.biwin.xinayu.common.dto.response; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * TODO + * + * @author wangli + * @since 2026-02-05 23:41 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class BatchDeleteResponse extends BaseResponse { + private Integer count; +} diff --git a/xianyu-core/src/main/java/top/biwin/xianyu/core/repository/ProductRepository.java b/xianyu-core/src/main/java/top/biwin/xianyu/core/repository/ProductRepository.java index 3e0f674..bcb94ea 100644 --- a/xianyu-core/src/main/java/top/biwin/xianyu/core/repository/ProductRepository.java +++ b/xianyu-core/src/main/java/top/biwin/xianyu/core/repository/ProductRepository.java @@ -14,4 +14,8 @@ public interface ProductRepository extends JpaRepository { List findByGoofishId(String goofishId); Optional findByGoofishIdAndGoofishProductId(String goofishId, String itemId); + + void deleteByGoofishIdAndGoofishProductIdIn(String goofishId, List itemIds); + + void deleteByGoofishIdAndGoofishProductId(String goofishId, String itemId); } diff --git a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/GoofishAbstractApi.java b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/GoofishAbstractApi.java index d900486..7fca12b 100644 --- a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/GoofishAbstractApi.java +++ b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/GoofishAbstractApi.java @@ -24,6 +24,19 @@ public abstract class GoofishAbstractApi implements GoofishApi { return apiHostUrl + getApi() + "/" + getVersion() + "/?"; } + @Override + public abstract String getApi(); + + protected final Map buildHeaderMap(String cookieStr) { + Map headerMap = new HashMap<>(); + headerMap.put("Cookie", cookieStr); + headerMap.put("content-type", "application/x-www-form-urlencoded"); + headerMap.put("priority", "u=1, i"); + headerMap.put("dnt", "1"); + headerMap.put("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0"); + return headerMap; + } + protected Map buildQueryParams(String cookieStr, String dataStr, Map overrideMap) { Map api_query_params = new HashMap<>(); api_query_params.put("jsv", "2.7.2"); @@ -36,7 +49,7 @@ public abstract class GoofishAbstractApi implements GoofishApi { api_query_params.put("accountSite", "xianyu"); api_query_params.put("dataType", "json"); api_query_params.put("timeout", "20000"); - api_query_params.put("api", ""); + api_query_params.put("api", getApi()); api_query_params.put("sessionOption", "AutoLoginOnly"); api_query_params.put("spm_cnt", "a21ybx.account.0.0"); diff --git a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetAccountApi.java b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetAccountApi.java index 1a8aaca..b99e2a2 100644 --- a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetAccountApi.java +++ b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetAccountApi.java @@ -10,8 +10,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import top.biwin.xianyu.goofish.api.GoofishAbstractApi; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Map; /** @@ -39,18 +37,15 @@ public class GetAccountApi extends GoofishAbstractApi { } @Override - public String call(String goofishId, String cookieStr, Map data) { + public String call(String goofishId, String cookieStr, Map data) { String dataStr = JSONUtil.toJsonStr(data); String apiUrl = buildApiUrl() + HttpUtil.toParams(buildQueryParams(cookieStr, dataStr)); log.debug("【{}】获取账号名 ApiUrl: {}", goofishId, apiUrl); log.debug("【{}】获取账号名时使用的 Cookie 为: {}", goofishId, cookieStr); try (HttpResponse response = HttpRequest.post(apiUrl) - .header("Cookie", cookieStr) - .header("content-type", "application/x-www-form-urlencoded") - .header("priority", "u=1, i") - .header("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0") - .body("data=" + URLEncoder.encode(dataStr, StandardCharsets.UTF_8)) + .headerMap(buildHeaderMap(cookieStr), true) + .form("data", dataStr) .execute()) { String body = response.body(); log.info("【{}】获取账号名时,服务端返回的完整响应为: {}", goofishId, body); diff --git a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetAllItemsApi.java b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetAllItemsApi.java index ae50c32..69fac2e 100644 --- a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetAllItemsApi.java +++ b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetAllItemsApi.java @@ -16,8 +16,6 @@ import top.biwin.xianyu.core.repository.ProductRepository; import top.biwin.xianyu.goofish.api.GoofishAbstractApi; import top.biwin.xinayu.common.dto.response.GetRemoteProductApiVo; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -93,12 +91,9 @@ public class GetAllItemsApi extends GoofishAbstractApi { log.debug("【{}】获取闲鱼商品数据时使用的 Cookie 为: {}", goofishId, cookieStr); try (HttpResponse response = HttpRequest.post(apiUrl) - .header("Cookie", cookieStr) - .header("content-type", "application/x-www-form-urlencoded") - .header("priority", "u=1, i") + .headerMap(buildHeaderMap(cookieStr), true) .header("dnt", "1") - .header("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0") - .body("data=" + URLEncoder.encode(dataStr, StandardCharsets.UTF_8)) + .form("data", dataStr) .execute()) { String body = response.body(); log.info("【{}】获取闲鱼商品数据时,服务端返回的完整响应为: {}", goofishId, body); diff --git a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetDisplayNameApi.java b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetDisplayNameApi.java index b5f4c9f..34e9a35 100644 --- a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetDisplayNameApi.java +++ b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetDisplayNameApi.java @@ -10,8 +10,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import top.biwin.xianyu.goofish.api.GoofishAbstractApi; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Map; /** @@ -39,18 +37,15 @@ public class GetDisplayNameApi extends GoofishAbstractApi { } @Override - public String call(String goofishId, String cookieStr, Map data) { + public String call(String goofishId, String cookieStr, Map data) { String dataStr = JSONUtil.toJsonStr(data); String apiUrl = buildApiUrl() + HttpUtil.toParams(buildQueryParams(cookieStr, dataStr)); log.debug("【{}】获取闲鱼昵称 ApiUrl: {}", goofishId, apiUrl); log.debug("【{}】获取闲鱼昵称时使用的 Cookie 为: {}", goofishId, cookieStr); try (HttpResponse response = HttpRequest.post(apiUrl) - .header("Cookie", cookieStr) - .header("content-type", "application/x-www-form-urlencoded") - .header("priority", "u=1, i") - .header("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0") - .body("data=" + URLEncoder.encode(dataStr, StandardCharsets.UTF_8)) + .headerMap(buildHeaderMap(cookieStr), true) + .form("data", dataStr) .execute()) { String body = response.body(); log.info("【{}】获取闲鱼昵称时,服务端返回的完整响应为: {}", goofishId, body); diff --git a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetItemDescApi.java b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetItemDescApi.java index ae60b8d..a402957 100644 --- a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetItemDescApi.java +++ b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetItemDescApi.java @@ -11,8 +11,6 @@ import org.springframework.stereotype.Component; import top.biwin.xianyu.goofish.api.GoofishAbstractApi; import top.biwin.xinayu.common.dto.response.GetRemoteProductDescApiVo; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; @@ -49,12 +47,9 @@ public class GetItemDescApi extends GoofishAbstractApi { } @Override - public Long call(String goofishId, String cookieStr, Map data) { + public Long call(String goofishId, String cookieStr, Map data) { String dataStr = JSONUtil.toJsonStr(data); - String apiUrl = buildApiUrl() + HttpUtil.toParams(buildQueryParams(cookieStr, dataStr)); + // 主人,要把 data 内容也塞进 URL 参数列表里计算并传递哦! + Map queryParams = buildQueryParams(cookieStr, dataStr); + // TODO: 请在这里将 dataStr 放入 queryParams 变量中:queryParams.put("data", dataStr); + queryParams.put("data", dataStr); + String apiUrl = buildApiUrl() + HttpUtil.toParams(queryParams); log.debug("【{}】获取闲鱼用户 ID ApiUrl: {}", goofishId, apiUrl); log.debug("【{}】获取闲鱼用户 ID 时使用的 Cookie 为: {}", goofishId, cookieStr); try (HttpResponse response = HttpRequest.post(apiUrl) - .header("Cookie", cookieStr) - .header("content-type", "application/x-www-form-urlencoded") - .header("priority", "u=1, i") - .header("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0") - .body("data=" + URLEncoder.encode(dataStr, StandardCharsets.UTF_8)) + .headerMap(buildHeaderMap(cookieStr), true) + .form("data", dataStr) .execute()) { String body = response.body(); log.info("【{}】获取闲鱼用户 ID 时,服务端返回的完整响应为: {}", goofishId, body); diff --git a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetWsTokenApi.java b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetWsTokenApi.java index bcdaac4..752210e 100644 --- a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetWsTokenApi.java +++ b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/api/impl/GetWsTokenApi.java @@ -10,8 +10,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import top.biwin.xianyu.goofish.api.GoofishAbstractApi; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Map; /** @@ -39,30 +37,27 @@ public class GetWsTokenApi extends GoofishAbstractApi { } @Override - public String call(String goofishId, String cookieStr, Map data) { + public String call(String goofishId, String cookieStr, Map data) { String dataStr = JSONUtil.toJsonStr(data); String apiUrl = buildApiUrl() + HttpUtil.toParams(buildQueryParams(cookieStr, dataStr)); log.debug("【{}】获取闲鱼 WebSocket Token ApiUrl: {}", goofishId, apiUrl); log.debug("【{}】获取闲鱼 WebSocket Token 时使用的 Cookie 为: {}", goofishId, cookieStr); try (HttpResponse response = HttpRequest.post(apiUrl) - .header("Cookie", cookieStr) - .header("content-type", "application/x-www-form-urlencoded") - .header("priority", "u=1, i") - .header("user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0") - .body("data=" + URLEncoder.encode(dataStr, StandardCharsets.UTF_8)) + .headerMap(buildHeaderMap(cookieStr), true) + .form("data", dataStr) .execute()) { String body = response.body(); log.info("【{}】获取闲鱼 WebSocket Token 时,服务端返回的完整响应为: {}", goofishId, body); JSONObject resJson = JSONUtil.parseObj(body); - // 检查是否需要滑块验证 + // 检查是否需要滑块验证 if (needsCaptchaVerification(resJson)) { log.warn("【{}】检测到滑块验证要求,需要刷新Cookie", goofishId); return null; } - // 检查响应 + // 检查响应 if (resJson.containsKey("ret")) { JSONArray retArray = resJson.getJSONArray("ret"); for (int i = 0; i < retArray.size(); i++) { diff --git a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/service/BrowserService.java b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/service/BrowserService.java index e783f3f..bbdb737 100644 --- a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/service/BrowserService.java +++ b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/service/BrowserService.java @@ -8,6 +8,7 @@ import com.microsoft.playwright.Frame; import com.microsoft.playwright.Page; import com.microsoft.playwright.Playwright; import com.microsoft.playwright.options.Cookie; +import com.microsoft.playwright.options.LoadState; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import lombok.extern.slf4j.Slf4j; @@ -321,8 +322,8 @@ public class BrowserService { page.navigate("https://www.goofish.com/im"); log.debug("【{}】等待页面加载,查找登录框... url: http://www.goofish.com/im", goofishId); // 确保页面加载完成 - page.getByText("登录后可以更懂你,推荐你喜欢的商品!"); - +// page.getByText("登录后可以更懂你,推荐你喜欢的商品!"); + page.waitForLoadState(LoadState.DOMCONTENTLOADED); String cookieStr = buildCookieStr(browserContext); Long goofishUserId = goofishApiService.getUserId(goofishId, cookieStr); if (goofishUserId > 0L) { diff --git a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/websocket/GoofishAccountWebsocket.java b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/websocket/GoofishAccountWebsocket.java index 56ac66e..b1f8193 100644 --- a/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/websocket/GoofishAccountWebsocket.java +++ b/xianyu-goofish/src/main/java/top/biwin/xianyu/goofish/websocket/GoofishAccountWebsocket.java @@ -151,8 +151,8 @@ public class GoofishAccountWebsocket extends TextWebSocketHandler { BrowserContext browserContext = browserService.loadPersistentContext(account.getId(), account.getShowBrowser() == 1, 1000D, null); browserService.autoLoginUsingAccountAndPassword(browserContext, account.getUsername(), account.getPassword(), account.getShowBrowser() == 1); this.cookiesStr = buildCookieStr(browserContext); - browserContext.close(); Long goofishUserId = goofishApiService.getUserId(goofishId, cookiesStr); + browserContext.close(); if (goofishUserId > 0L) { log.debug("【{}】Cookie 刷新成功", goofishId); } else { diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/XianyuFreedomApplication.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/XianyuFreedomApplication.java similarity index 88% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/XianyuFreedomApplication.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/XianyuFreedomApplication.java index a7150bf..a39ff46 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/XianyuFreedomApplication.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/XianyuFreedomApplication.java @@ -1,9 +1,8 @@ -package top.biwin.xinayu.server; +package top.biwin.xianyu.server; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; /** diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/config/GeetestConfig.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/config/GeetestConfig.java similarity index 96% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/config/GeetestConfig.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/config/GeetestConfig.java index 15fdb07..c4fefe3 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/config/GeetestConfig.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/config/GeetestConfig.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.config; +package top.biwin.xianyu.server.config; import cn.hutool.core.util.StrUtil; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/config/HttpClientConfig.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/config/HttpClientConfig.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/config/HttpClientConfig.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/config/HttpClientConfig.java index a095368..b114c0c 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/config/HttpClientConfig.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/config/HttpClientConfig.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.config; +package top.biwin.xianyu.server.config; import com.fasterxml.jackson.databind.ObjectMapper; import okhttp3.ConnectionPool; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/config/SecurityConfig.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/config/SecurityConfig.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/config/SecurityConfig.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/config/SecurityConfig.java index b890bb4..0d5d65c 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/config/SecurityConfig.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/config/SecurityConfig.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.config; +package top.biwin.xianyu.server.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -16,7 +16,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import top.biwin.xinayu.server.security.JwtAuthenticationFilter; +import top.biwin.xianyu.server.security.JwtAuthenticationFilter; /** * Spring Security 配置类 diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/config/ThreadPoolConfig.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/config/ThreadPoolConfig.java similarity index 85% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/config/ThreadPoolConfig.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/config/ThreadPoolConfig.java index de0d2cd..6eb23c8 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/config/ThreadPoolConfig.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/config/ThreadPoolConfig.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.config; +package top.biwin.xianyu.server.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -21,7 +21,7 @@ public class ThreadPoolConfig { // 创建定时任务线程池 return Executors.newScheduledThreadPool(5, r -> { Thread t = new Thread(r); - t.setName("GAWebSocket-" + t.getId()); + t.setName("Goofish-Account-WebSocket-" + t.getId()); t.setDaemon(true); return t; }); @@ -31,7 +31,7 @@ public class ThreadPoolConfig { public ExecutorService executorService() { return Executors.newSingleThreadExecutor(r -> { Thread t = new Thread(r); - t.setName("goofish-item-refresh-" + t.getId()); + t.setName("Goofish-Item-Refresh-" + t.getId()); t.setDaemon(true); return t; }); diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AdminController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AdminController.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AdminController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AdminController.java index e6ff83b..b2ade78 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AdminController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AdminController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AssistController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AssistController.java similarity index 97% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AssistController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AssistController.java index 184359e..b3b7e0d 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AssistController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AssistController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import top.biwin.xinayu.common.dto.response.FileUploadResponse; -import top.biwin.xinayu.server.util.ImageUtils; +import top.biwin.xianyu.server.util.ImageUtils; import java.io.File; import java.io.FileOutputStream; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AuthController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AuthController.java similarity index 97% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AuthController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AuthController.java index 54757a7..4da3a6e 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/AuthController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/AuthController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import cn.hutool.core.util.StrUtil; import jakarta.servlet.http.HttpServletRequest; @@ -26,19 +26,17 @@ import top.biwin.xinayu.common.dto.response.CheckDefaultPwdResponse; import top.biwin.xinayu.common.dto.response.LoginResponse; import top.biwin.xinayu.common.dto.response.RefreshResponse; import top.biwin.xinayu.common.dto.response.SendCodeResponse; -import top.biwin.xinayu.server.security.JwtUtil; -import top.biwin.xinayu.server.service.AuthService; -import top.biwin.xinayu.server.service.CaptchaService; -import top.biwin.xinayu.server.service.EmailVerificationService; -import top.biwin.xinayu.server.util.CurrentUserUtil; +import top.biwin.xianyu.server.security.JwtUtil; +import top.biwin.xianyu.server.service.AuthService; +import top.biwin.xianyu.server.service.CaptchaService; +import top.biwin.xianyu.server.service.EmailVerificationService; +import top.biwin.xianyu.server.util.CurrentUserUtil; import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.Optional; -import static java.awt.SystemColor.info; - /** * 认证控制器 * 提供登录、刷新令牌等认证相关的 REST API diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/CardController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/CardController.java similarity index 85% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/CardController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/CardController.java index 0a77fbb..8441494 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/CardController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/CardController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/DashboardController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/DashboardController.java similarity index 80% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/DashboardController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/DashboardController.java index 9bcfd33..a5c60dc 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/DashboardController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/DashboardController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import org.springframework.web.bind.annotation.RestController; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/GeetestController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/GeetestController.java similarity index 97% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/GeetestController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/GeetestController.java index 55accf1..d5288b5 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/GeetestController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/GeetestController.java @@ -1,10 +1,10 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import top.biwin.xinayu.server.service.GeetestService; +import top.biwin.xianyu.server.service.GeetestService; import java.util.HashMap; import java.util.Map; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/GoofishAccountController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/GoofishAccountController.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/GoofishAccountController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/GoofishAccountController.java index 0d2de95..c1c8700 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/GoofishAccountController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/GoofishAccountController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -23,7 +23,7 @@ import top.biwin.xinayu.common.dto.response.BaseResponse; import top.biwin.xinayu.common.dto.response.GoofishAccountResponse; import top.biwin.xinayu.common.dto.response.GoofishQrStatusResponse; import top.biwin.xinayu.common.dto.response.QrLoginResponse; -import top.biwin.xinayu.server.util.CurrentUserUtil; +import top.biwin.xianyu.server.util.CurrentUserUtil; import java.util.ArrayList; import java.util.List; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/KeywordController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/KeywordController.java similarity index 99% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/KeywordController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/KeywordController.java index 8bb0010..0b4426f 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/KeywordController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/KeywordController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/OrderController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/OrderController.java similarity index 97% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/OrderController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/OrderController.java index c72916e..624f62b 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/OrderController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/OrderController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import cn.hutool.core.bean.BeanUtil; import org.springframework.beans.factory.annotation.Autowired; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/ProductController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/ProductController.java similarity index 53% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/ProductController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/ProductController.java index d959633..d4020d6 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/ProductController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/ProductController.java @@ -1,13 +1,20 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -15,11 +22,14 @@ import top.biwin.xianyu.core.entity.ProductEntity; import top.biwin.xianyu.core.repository.GoofishAccountRepository; import top.biwin.xianyu.core.repository.ProductRepository; import top.biwin.xianyu.goofish.service.GoofishApiService; +import top.biwin.xianyu.server.util.CurrentUserUtil; import top.biwin.xinayu.common.dto.request.FetchRemoteAllProductRequest; +import top.biwin.xinayu.common.dto.request.ProductBatchDeleteRequest; +import top.biwin.xinayu.common.dto.response.BaseResponse; +import top.biwin.xinayu.common.dto.response.BatchDeleteResponse; import top.biwin.xinayu.common.dto.response.FetchRemoteAllProductResponse; import top.biwin.xinayu.common.dto.response.GetRemoteProductApiVo; import top.biwin.xinayu.common.dto.response.GetRemoteProductDescApiVo; -import top.biwin.xinayu.server.util.CurrentUserUtil; import java.util.ArrayList; import java.util.List; @@ -76,14 +86,17 @@ public class ProductController { GetRemoteProductApiVo vo = goofishApiService.getAllItems(request.getGoofishId(), null); - // TODO 异步化 - vo.getItemIds().forEach(itemId -> { + // 异步化 + vo.getItemIds().parallelStream().forEach(itemId -> { executorService.execute(() -> { Optional productOpt = productRepository.findByGoofishIdAndGoofishProductId(request.getGoofishId(), itemId); + log.debug("【{}】完善【{}】商品的详情信息", request.getGoofishId(), itemId); productOpt.ifPresent(product -> { GetRemoteProductDescApiVo productVo = goofishApiService.getProductDesc(request.getGoofishId(), itemId, null); - product.setProductDescription(productVo.getDesc()); - product.setProductDetail(productVo.getRichTextDesc()); + product.setProductDetail(productVo.getDesc()); + product.setProductDescription(productVo.getRichTextDesc()); + product.setUserId(CurrentUserUtil.getCurrentUserId()); + log.debug("【{}】商品完整信息为: {}", request.getGoofishId(), JSONUtil.toJsonStr(product)); productRepository.saveAndFlush(product); }); }); @@ -97,4 +110,50 @@ public class ProductController { .savedCount(vo.getTotalSaved()) .build()); } + + @PutMapping("/products/{goofish_id}/{item_id}") + public ResponseEntity productUpdate(@PathVariable("goofish_id") String goofishId, + @PathVariable("item_id") String goofishProductId, + @RequestBody ProductEntity productUpdate) { + ProductEntity product = productRepository.findByGoofishIdAndGoofishProductId(goofishId, goofishProductId) + .orElseThrow(() -> new IllegalArgumentException("商品信息未找到")); + BeanUtil.copyProperties(productUpdate, product, CopyOptions.create().setIgnoreNullValue(true)); + productRepository.save(product); + return ResponseEntity.ok(BaseResponse.builder() + .success(true) + .message("商品已更新") + .data(product) + .build()); + } + + @Transactional + @DeleteMapping("/products/{goofish_id}/{item_id}") + public ResponseEntity deleteProduct(@PathVariable("goofish_id") String goofishId, + @PathVariable("item_id") String goofishProductId) { + productRepository.deleteByGoofishIdAndGoofishProductId(goofishId, goofishProductId); + return ResponseEntity.ok(BaseResponse.builder() + .success(true) + .message("商品删除成功") + .build()); + } + + @Transactional + @DeleteMapping("/products/batch") + public ResponseEntity deleteProductBatch(@RequestBody ProductBatchDeleteRequest request) { + if (CollectionUtils.isEmpty(request.getItems())) { + return ResponseEntity.ok(BatchDeleteResponse.builder() + .success(false) + .message("缺少商品数据") + .build()); + } + + request.getItems().forEach(i -> { + productRepository.deleteByGoofishIdAndGoofishProductId(i.getGoofishId(), i.getGoofishProductId()); + }); + return ResponseEntity.ok(BatchDeleteResponse.builder() + .success(true) + .message("商品批量删除成功") + .count(request.getItems().size()) + .build()); + } } diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/SystemSettingController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/SystemSettingController.java similarity index 97% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/SystemSettingController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/SystemSettingController.java index f5f1345..3111959 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/SystemSettingController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/SystemSettingController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller; +package top.biwin.xianyu.server.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/CurrentUserDemoController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/CurrentUserDemoController.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/CurrentUserDemoController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/CurrentUserDemoController.java index 1f4ba4a..150b2e3 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/CurrentUserDemoController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/CurrentUserDemoController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller.demo; +package top.biwin.xianyu.server.controller.demo; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import top.biwin.xianyu.core.entity.AdminUserEntity; import top.biwin.xinayu.common.enums.UserRole; -import top.biwin.xinayu.server.util.CurrentUserUtil; +import top.biwin.xianyu.server.util.CurrentUserUtil; import java.util.HashMap; import java.util.Map; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/RolePermissionDemoController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/RolePermissionDemoController.java similarity index 96% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/RolePermissionDemoController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/RolePermissionDemoController.java index 1e419ca..0449565 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/RolePermissionDemoController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/RolePermissionDemoController.java @@ -1,12 +1,12 @@ -package top.biwin.xinayu.server.controller.demo; +package top.biwin.xianyu.server.controller.demo; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import top.biwin.xinayu.server.security.RequireSuperAdmin; -import top.biwin.xinayu.server.util.CurrentUserUtil; +import top.biwin.xianyu.server.security.RequireSuperAdmin; +import top.biwin.xianyu.server.util.CurrentUserUtil; import java.util.HashMap; import java.util.Map; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/UserInfoController.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/UserInfoController.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/UserInfoController.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/UserInfoController.java index d1d723f..8afb1de 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/controller/demo/UserInfoController.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/controller/demo/UserInfoController.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.controller.demo; +package top.biwin.xianyu.server.controller.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import top.biwin.xianyu.core.entity.AdminUserEntity; import top.biwin.xianyu.core.repository.AdminUserRepository; -import top.biwin.xinayu.server.util.CurrentUserUtil; +import top.biwin.xianyu.server.util.CurrentUserUtil; import java.security.Principal; import java.util.HashMap; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/exception/AuthenticationExceptionHandler.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/exception/AuthenticationExceptionHandler.java similarity index 97% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/exception/AuthenticationExceptionHandler.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/exception/AuthenticationExceptionHandler.java index 81e85c3..1f9126e 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/exception/AuthenticationExceptionHandler.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/exception/AuthenticationExceptionHandler.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.exception; +package top.biwin.xianyu.server.exception; import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/initialization/DataInitializerLogger.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/initialization/DataInitializerLogger.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/initialization/DataInitializerLogger.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/initialization/DataInitializerLogger.java index e3f3554..0b3e3d1 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/initialization/DataInitializerLogger.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/initialization/DataInitializerLogger.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.initialization; +package top.biwin.xianyu.server.initialization; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/notice/NoticeService.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/notice/NoticeService.java similarity index 71% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/notice/NoticeService.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/notice/NoticeService.java index 32c54cb..dc4a092 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/notice/NoticeService.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/notice/NoticeService.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.notice; +package top.biwin.xianyu.server.notice; /** * TODO diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/notice/channel/EmailChannel.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/notice/channel/EmailChannel.java similarity index 66% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/notice/channel/EmailChannel.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/notice/channel/EmailChannel.java index fff8fd8..e2bada5 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/notice/channel/EmailChannel.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/notice/channel/EmailChannel.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.notice.channel; +package top.biwin.xianyu.server.notice.channel; /** * TODO diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/security/JwtAuthenticationFilter.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/security/JwtAuthenticationFilter.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/security/JwtAuthenticationFilter.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/security/JwtAuthenticationFilter.java index fe58dc0..8cd384d 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/security/JwtAuthenticationFilter.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/security/JwtAuthenticationFilter.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.security; +package top.biwin.xianyu.server.security; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/security/JwtUtil.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/security/JwtUtil.java similarity index 99% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/security/JwtUtil.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/security/JwtUtil.java index cf9d414..9e98ada 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/security/JwtUtil.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/security/JwtUtil.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.security; +package top.biwin.xianyu.server.security; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/security/RequireSuperAdmin.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/security/RequireSuperAdmin.java similarity index 93% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/security/RequireSuperAdmin.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/security/RequireSuperAdmin.java index 4ac019b..89ab212 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/security/RequireSuperAdmin.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/security/RequireSuperAdmin.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.security; +package top.biwin.xianyu.server.security; import org.springframework.security.access.prepost.PreAuthorize; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/AdminUserDetailsService.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/AdminUserDetailsService.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/service/AdminUserDetailsService.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/service/AdminUserDetailsService.java index b045ba9..508f10d 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/AdminUserDetailsService.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/AdminUserDetailsService.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.service; +package top.biwin.xianyu.server.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.authority.SimpleGrantedAuthority; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/AuthService.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/AuthService.java similarity index 99% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/service/AuthService.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/service/AuthService.java index 051bed5..f0a3883 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/AuthService.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/AuthService.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.service; +package top.biwin.xianyu.server.service; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -14,7 +14,7 @@ import top.biwin.xianyu.core.repository.AdminUserRepository; import top.biwin.xinayu.common.dto.request.LoginRequest; import top.biwin.xinayu.common.dto.response.LoginResponse; import top.biwin.xinayu.common.dto.response.RefreshResponse; -import top.biwin.xinayu.server.security.JwtUtil; +import top.biwin.xianyu.server.security.JwtUtil; /** * 认证服务 diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/CaptchaService.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/CaptchaService.java similarity index 99% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/service/CaptchaService.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/service/CaptchaService.java index 8ac5638..70a8bcb 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/CaptchaService.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/CaptchaService.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.service; +package top.biwin.xianyu.server.service; import cn.hutool.captcha.CaptchaUtil; import cn.hutool.captcha.LineCaptcha; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/EmailService.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/EmailService.java similarity index 99% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/service/EmailService.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/service/EmailService.java index 9fa55f2..b340c09 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/EmailService.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/EmailService.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.service; +package top.biwin.xianyu.server.service; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/EmailVerificationService.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/EmailVerificationService.java similarity index 99% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/service/EmailVerificationService.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/service/EmailVerificationService.java index dec11ca..c2839b3 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/EmailVerificationService.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/EmailVerificationService.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.service; +package top.biwin.xianyu.server.service; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/GeetestService.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/GeetestService.java similarity index 98% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/service/GeetestService.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/service/GeetestService.java index 9794b95..f6d23f1 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/service/GeetestService.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/service/GeetestService.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.service; +package top.biwin.xianyu.server.service; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.digest.DigestUtil; @@ -12,7 +12,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import top.biwin.xinayu.server.config.GeetestConfig; +import top.biwin.xianyu.server.config.GeetestConfig; import java.util.HashMap; import java.util.Map; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/util/CurrentUserUtil.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/util/CurrentUserUtil.java similarity index 99% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/util/CurrentUserUtil.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/util/CurrentUserUtil.java index bbc3687..8975ed9 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/util/CurrentUserUtil.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/util/CurrentUserUtil.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.util; +package top.biwin.xianyu.server.util; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/util/ImageUtils.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/util/ImageUtils.java similarity index 99% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/util/ImageUtils.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/util/ImageUtils.java index 41a5251..06ba013 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/util/ImageUtils.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/util/ImageUtils.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.util; +package top.biwin.xianyu.server.util; import lombok.extern.slf4j.Slf4j; diff --git a/xianyu-server/src/main/java/top/biwin/xinayu/server/util/SpringContextHolder.java b/xianyu-server/src/main/java/top/biwin/xianyu/server/util/SpringContextHolder.java similarity index 97% rename from xianyu-server/src/main/java/top/biwin/xinayu/server/util/SpringContextHolder.java rename to xianyu-server/src/main/java/top/biwin/xianyu/server/util/SpringContextHolder.java index e06185d..eb6468e 100644 --- a/xianyu-server/src/main/java/top/biwin/xinayu/server/util/SpringContextHolder.java +++ b/xianyu-server/src/main/java/top/biwin/xianyu/server/util/SpringContextHolder.java @@ -1,4 +1,4 @@ -package top.biwin.xinayu.server.util; +package top.biwin.xianyu.server.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; diff --git a/xianyu-server/src/main/resources/application.yml b/xianyu-server/src/main/resources/application.yml index 86589c9..5ad4c60 100644 --- a/xianyu-server/src/main/resources/application.yml +++ b/xianyu-server/src/main/resources/application.yml @@ -46,6 +46,12 @@ logging: org.hibernate.type.descriptor.sql: INFO # Ensure Hibernate parameter logging is not set to DEBUG/TRACE file: name: logs/backend-java.log + # 主人,在这里我们可以为日志格式“扩容”哦! + pattern: + # TODO: 请在这里配置控制台日志格式,将线程名部分([%t])改为允许更多字符,例如:console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%25t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" + console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%25t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" + # TODO: 请在这里配置日志文件格式,同样将线程名部分改为:file: "%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%25t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" + file: "%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } --- [%25t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" # JWT 配置 jwt: