feat(auth): 实现基础登录功能并配置全局网络地址新增 GlobalConfig 类用于管理全局配置,包括网络接口地址和租户标识。新增 LoginUserDTO 数据传输对象用于封装登录账号和密码。修改 LoginView 页面逻辑,实现调用后端登录接口进行认证。

更新 module-info.java 和 pom.xml 以支持新引入的依赖库(hutool、fastjson等)。升级 fastjson 版本至2.0.9 以增强安全性与稳定性。```
This commit is contained in:
wangchunxiang
2025-10-14 13:53:43 +08:00
parent 7831cba3cf
commit e0c217c5ea
7 changed files with 84 additions and 16 deletions

1
.gitignore vendored
View File

@@ -4,6 +4,7 @@
.idea .idea
# Log file # Log file
*.log *.log
*.log.*.gz
# BlueJ files # BlueJ files
*.ctxt *.ctxt

View File

@@ -56,7 +56,7 @@
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
<version>1.2.83</version> <version>2.0.9</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -29,6 +29,8 @@ public class DesktopApplication extends Application {
@Override @Override
public void start(Stage primaryStage) { public void start(Stage primaryStage) {
// 设置窗口标题
primaryStage.setTitle("中差评采集工具");
// 添加窗口关闭事件监听器 // 添加窗口关闭事件监听器
primaryStage.setOnCloseRequest(this::handleCloseEvent); primaryStage.setOnCloseRequest(this::handleCloseEvent);
// 直接启动登录界面 // 直接启动登录界面

View File

@@ -0,0 +1,39 @@
package com.fantaibao.config;
public class GlobalConfig {
/**
* 基础网络地址
*/
public static final String BASE_NET_URL = "http://127.0.0.1:9606";
/**
* 登录接口地址
*/
public static final String loginInterfaceAddress = BASE_NET_URL+"/user/login";
/**
* 更新cookie地址
*/
public static final String updateCookieInterfaceAddress = BASE_NET_URL+"/crawler/appraisal/update-user-cookie";
/**
* 租户Id标识
*/
public static String tenantId;
/**
* 美团点评评价接口地址
*/
public static String mtDianPingInterfaceAddress;
/**
* 美团大众点评评价接口地址
*/
public static String mtDaZhInterfaceAddress;
/**
* 抖音评价接口地址
*/
public static String dyPingJiaInterfaceAddress;
}

View File

@@ -0,0 +1,17 @@
package com.fantaibao.model;
import lombok.Data;
@Data
public class LoginUserDTO {
/**
* 账号
*/
private String account;
/**
* 密码
*/
private String password;
}

View File

@@ -1,7 +1,9 @@
package com.fantaibao.page; package com.fantaibao.page;
import com.fantaibao.DesktopApplication; import cn.hutool.http.HttpUtil;
import javafx.application.Platform; import com.alibaba.fastjson.JSON;
import com.fantaibao.config.GlobalConfig;
import com.fantaibao.model.LoginUserDTO;
import javafx.geometry.Insets; import javafx.geometry.Insets;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import javafx.scene.Scene; import javafx.scene.Scene;
@@ -11,21 +13,14 @@ import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
import javafx.scene.layout.VBox; import javafx.scene.layout.VBox;
import javafx.stage.Stage; import javafx.stage.Stage;
import javafx.stage.WindowEvent;
public class LoginView { public class LoginView {
private Stage primaryStage;
public LoginView(Stage primaryStage) { public LoginView(Stage primaryStage) {
this.primaryStage = primaryStage; initialize(primaryStage);
initialize();
} }
private void initialize() { private void initialize(Stage primaryStage) {
// 设置窗口标题
primaryStage.setTitle("中差评采集工具");
// 创建主容器 // 创建主容器
VBox root = new VBox(); VBox root = new VBox();
root.setAlignment(Pos.CENTER); root.setAlignment(Pos.CENTER);
@@ -58,9 +53,18 @@ public class LoginView {
// 添加登录按钮事件处理 // 添加登录按钮事件处理
loginButton.setOnAction(e -> { loginButton.setOnAction(e -> {
// 获取用户输入的账号和密码
String account = accountField.getText();
String password = passwordField.getText();
LoginUserDTO loginUserDTO = new LoginUserDTO();
loginUserDTO.setAccount(account);
loginUserDTO.setPassword(password);
String result = HttpUtil.post(GlobalConfig.loginInterfaceAddress, JSON.toJSONString(loginUserDTO));
System.out.println(result);
// 这里可以添加实际的登录验证逻辑 // 这里可以添加实际的登录验证逻辑
// 当前简化处理,直接跳转到平台选择页面 // 当前简化处理,直接跳转到平台选择页面
navigateToPlatformSelection(); navigateToPlatformSelection(primaryStage);
}); });
// 添加组件到主容器 // 添加组件到主容器
@@ -73,7 +77,7 @@ public class LoginView {
primaryStage.show(); primaryStage.show();
} }
private void navigateToPlatformSelection() { private void navigateToPlatformSelection(Stage primaryStage) {
new PlatformSelectionView(primaryStage); new PlatformSelectionView(primaryStage);
} }
} }

View File

@@ -11,17 +11,22 @@ module fantaibao.crawler.desktop {
requires lombok; requires lombok;
requires java.desktop; requires java.desktop;
requires jakarta.annotation; requires jakarta.annotation;
requires cn.hutool;
requires fastjson;
requires java.sql;
opens com.fantaibao to spring.core, spring.beans, spring.context, opens com.fantaibao to spring.core, spring.beans, spring.context,
javafx.fxml, javafx.base, javafx.graphics, spring.boot, spring.boot.autoconfigure; javafx.fxml, javafx.base, javafx.graphics, spring.boot, spring.boot.autoconfigure;
opens com.fantaibao.config to spring.core,spring.beans, spring.context; opens com.fantaibao.config to spring.core,spring.beans, spring.context;
opens com.fantaibao.service to spring.core,spring.beans, spring.context; opens com.fantaibao.service to spring.core,spring.beans, spring.context;
opens com.fantaibao.page to com.alibaba.fastjson2;
exports com.fantaibao; exports com.fantaibao;
exports com.fantaibao.service; exports com.fantaibao.service;
exports com.fantaibao.page; exports com.fantaibao.page;
exports com.fantaibao.config; exports com.fantaibao.config;
exports com.fantaibao.base; exports com.fantaibao.base;
exports com.fantaibao.model;
} }