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
# Log file
*.log
*.log.*.gz
# BlueJ files
*.ctxt

View File

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

View File

@@ -29,6 +29,8 @@ public class DesktopApplication extends Application {
@Override
public void start(Stage primaryStage) {
// 设置窗口标题
primaryStage.setTitle("中差评采集工具");
// 添加窗口关闭事件监听器
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;
import com.fantaibao.DesktopApplication;
import javafx.application.Platform;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.fantaibao.config.GlobalConfig;
import com.fantaibao.model.LoginUserDTO;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
@@ -11,21 +13,14 @@ import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
public class LoginView {
private Stage primaryStage;
public LoginView(Stage primaryStage) {
this.primaryStage = primaryStage;
initialize();
initialize(primaryStage);
}
private void initialize() {
// 设置窗口标题
primaryStage.setTitle("中差评采集工具");
private void initialize(Stage primaryStage) {
// 创建主容器
VBox root = new VBox();
root.setAlignment(Pos.CENTER);
@@ -58,9 +53,18 @@ public class LoginView {
// 添加登录按钮事件处理
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();
}
private void navigateToPlatformSelection() {
private void navigateToPlatformSelection(Stage primaryStage) {
new PlatformSelectionView(primaryStage);
}
}

View File

@@ -11,12 +11,15 @@ module fantaibao.crawler.desktop {
requires lombok;
requires java.desktop;
requires jakarta.annotation;
requires cn.hutool;
requires fastjson;
requires java.sql;
opens com.fantaibao to spring.core, spring.beans, spring.context,
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.service to spring.core,spring.beans, spring.context;
opens com.fantaibao.page to com.alibaba.fastjson2;
exports com.fantaibao;
@@ -24,4 +27,6 @@ module fantaibao.crawler.desktop {
exports com.fantaibao.page;
exports com.fantaibao.config;
exports com.fantaibao.base;
exports com.fantaibao.model;
}