AI智能工牌的建表语句

This commit is contained in:
spllzh
2025-08-07 22:31:05 +08:00
parent 6dfe402eed
commit 58a131e3c8
26 changed files with 817 additions and 42 deletions

View File

@@ -1,12 +1,10 @@
package com.cst.langchain4jheima;
package com.rj;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
@MapperScan("com.cst.langchain4jheima.mapper")
@MapperScan("com.rj.mapper")
@SpringBootApplication
public class Langchain4jHeima20250803Application {

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima.aiservice;
package com.rj.aiservice;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima.aiservice;
package com.rj.aiservice;
import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;

View File

@@ -1,14 +1,12 @@
package com.cst.langchain4jheima.config;
package com.rj.config;
import com.cst.langchain4jheima.aiservice.CstAIService;
import com.cst.langchain4jheima.repository.RedisChatMemoryStore;
import dev.langchain4j.community.store.embedding.redis.RedisEmbeddingStore;
import com.rj.aiservice.CstAIService;
import com.rj.repository.RedisChatMemoryStore;
import dev.langchain4j.memory.ChatMemory;
import dev.langchain4j.memory.chat.ChatMemoryProvider;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.service.AiServices;
import dev.langchain4j.store.memory.chat.ChatMemoryStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

View File

@@ -0,0 +1,82 @@
package com.rj.config;
//import io.swagger.models.Info;
//import io.swagger.annotations.Info;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.servers.Server;
import lombok.extern.slf4j.Slf4j;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.List;
/**
* http://localhost:9060/swagger-ui/index.html#/
* https://index.huayang-star.com/swagger-ui/index.html#/ai-card-bag-controller
*
* Author: 李中华 wx: spllzh email(qq): 28668817@qq.com
* Date: 2025/6/30 9:55
**/
@Slf4j
@Configuration
public class SwaggerOpenAPI {
@Value("${swagger.api.base-url}")
private String baseUrl;
@Value("${langchain4j.community.dashscope.chat-model.api-key}")
private String apiKey;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper()
.registerModule(new JavaTimeModule())
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
}
}
@Bean
public OpenAPI customOpenAPI() {
log.info("baseUrl = " + baseUrl);
return new OpenAPI()
.servers(List.of(new Server().url(baseUrl))) // 强制HTTPS
.info(new Info()
.title("AI Card API")
.version("1.0.0")
.description("Spring Boot 3.4 + Knife4j 集成 API")
.contact(new Contact().name("Support").email("support@huayang-star.com"))
);
}
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("public-api")
.pathsToMatch("/api/**")
.build();
}
@Bean
public GroupedOpenApi adminApi() {
return GroupedOpenApi.builder()
.group("admin-api")
.pathsToMatch("/admin/**")
.build();
}
}

View File

@@ -1,12 +1,10 @@
package com.cst.langchain4jheima.controller;
package com.rj.controller;
import com.cst.langchain4jheima.aiservice.CstAIService;
import com.cst.langchain4jheima.aiservice.CstAIStreamingService;
import com.rj.aiservice.CstAIService;
import com.rj.aiservice.CstAIStreamingService;
import dev.langchain4j.model.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima.controller;
package com.rj.controller;
import org.springframework.web.bind.annotation.RequestMapping;

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima.embedding;
package com.rj.embedding;
import dev.langchain4j.community.store.embedding.redis.RedisEmbeddingStore;
import dev.langchain4j.data.document.Document;

View File

@@ -0,0 +1,139 @@
package com.rj.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 录音管理表,含信息卡字段
* </p>
*
* @author 李中华 ,spllzh
* @since 2025-08-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("audio_management")
@Schema(description="录音管理表,含信息卡字段")
public class AudioManagement implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键UUID")
@TableId("id")
private String id;
@Schema(description = "录音名称")
@TableField("recording_name")
private String recordingName;
@Schema(description = "录音时间")
@TableField("recording_time")
private LocalDateTime recordingTime;
@Schema(description = "所属销售ID")
@TableField("sales_id")
private String salesId;
@Schema(description = "所属销售名称")
@TableField("sales_name")
private String salesName;
@Schema(description = "录音时长(分钟)")
@TableField("duration")
private BigDecimal duration;
@Schema(description = "客户ID")
@TableField("customer_id")
private String customerId;
@Schema(description = "客户姓名")
@TableField("customer_name")
private String customerName;
@Schema(description = "客户手机号")
@TableField("customer_phone")
private String customerPhone;
@Schema(description = "上传时间")
@TableField("upload_time")
private LocalDateTime uploadTime;
@Schema(description = "意向级别(高意向, 中意向 , 低意向)")
@TableField("intention_level")
private String intentionLevel;
@Schema(description = "所属门店ID")
@TableField("dealership_id")
private String dealershipId;
@Schema(description = "所属门店名称")
@TableField("dealership_name")
private String dealershipName;
@Schema(description = "所属项目ID")
@TableField("project_id")
private String projectId;
@Schema(description = "所属项目名称")
@TableField("project_name")
private String projectName;
@Schema(description = "话术模型")
@TableField("script_model")
private String scriptModel;
@Schema(description = "上传状态")
@TableField("upload_status")
private String uploadStatus;
@Schema(description = "同步状态")
@TableField("sync_status")
private String syncStatus;
@Schema(description = "是否合并(0否1是)")
@TableField("is_merged")
private Boolean isMerged;
@Schema(description = "录音备注")
@TableField("remarks")
private String remarks;
@Schema(description = "公司类型")
@TableField("company_type")
private String companyType;
@Schema(description = "编辑状态")
@TableField("edit_status")
private String editStatus;
@Schema(description = "编辑时间")
@TableField("edit_time")
private LocalDateTime editTime;
@Schema(description = "信息卡类型(如意向车型、购买情况、来访目的、试驾结果、付款方式、试驾专员等)")
@TableField("info_card_type")
private String infoCardType;
@Schema(description = "信息卡内容")
@TableField("info_card_description")
private String infoCarddescription;
@Schema(description = "创建时间")
@TableField("create_time")
private LocalDateTime createTime;
@Schema(description = "更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,77 @@
package com.rj.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 客户管理表
* </p>
*
* @author 李中华 ,spllzh
* @since 2025-08-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("customer_management")
@Schema(description="客户管理表")
public class CustomerManagement implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键UUID")
@TableId("id")
private String id;
@Schema(description = "客户姓名")
@TableField("customer_name")
private String customerName;
@Schema(description = "联系方式")
@TableField("contact")
private String contact;
@Schema(description = "所属门店ID")
@TableField("dealership_id")
private String dealershipId;
@Schema(description = "所属门店名称")
@TableField("dealership_name")
private String dealershipName;
@Schema(description = "所属销售ID")
@TableField("sales_id")
private String salesId;
@Schema(description = "所属销售名称")
@TableField("sales_name")
private String salesName;
@Schema(description = "录音条数")
@TableField("recording_count")
private Integer recordingCount;
@Schema(description = "意向车型")
@TableField("intended_model")
private String intendedModel;
@Schema(description = "信息卡")
@TableField("info_card")
private String infoCard;
@Schema(description = "创建时间")
@TableField("create_time")
private LocalDateTime createTime;
@Schema(description = "更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,86 @@
package com.rj.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 汽车经销商门店信息表
* </p>
*
* @author 李中华 ,spllzh
* @since 2025-08-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("dealership")
@Schema(description="汽车经销商门店信息表")
public class Dealership implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键UUID")
@TableId("id")
private String id;
@Schema(description = "经销商名称")
@TableField("dealership_name")
private String dealershipName;
@Schema(description = "经销商代码")
@TableField("dealership_code")
private String dealershipCode;
@Schema(description = "剩余时长(小时)")
@TableField("remaining_hours")
private BigDecimal remainingHours;
@Schema(description = "销售人员数量")
@TableField("sales_count")
private Integer salesCount;
@Schema(description = "人均录音条数")
@TableField("avg_recordings")
private Integer avgRecordings;
@Schema(description = "平均录音时长(分钟)")
@TableField("avg_recording_duration")
private BigDecimal avgRecordingDuration;
@Schema(description = "地区")
@TableField("region")
private String region;
@Schema(description = "分组")
@TableField("group_name")
private String groupName;
@Schema(description = "语言")
@TableField("language")
private String language;
@Schema(description = "经销商类型")
@TableField("dealership_type")
private String dealershipType;
@Schema(description = "状态(1正常 0停用)")
@TableField("status")
private Boolean status;
@Schema(description = "创建时间")
@TableField("create_time")
private LocalDateTime createTime;
@Schema(description = "更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,109 @@
package com.rj.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 设备管理表
* </p>
*
* @author 李中华 ,spllzh
* @since 2025-08-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("device_management")
@Schema(description="设备管理表")
public class DeviceManagement implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键UUID")
@TableId("id")
private String id;
@Schema(description = "设备编号")
@TableField("device_code")
private String deviceCode;
@Schema(description = "所属门店ID")
@TableField("dealership_id")
private String dealershipId;
@Schema(description = "所属门店名称")
@TableField("dealership_name")
private String dealershipName;
@Schema(description = "最近联网时间")
@TableField("last_online_time")
private LocalDateTime lastOnlineTime;
@Schema(description = "最近开机时间")
@TableField("last_power_on_time")
private LocalDateTime lastPowerOnTime;
@Schema(description = "最近关机时间")
@TableField("last_power_off_time")
private LocalDateTime lastPowerOffTime;
@Schema(description = "WIFI名称")
@TableField("wifi_name")
private String wifiName;
@Schema(description = "未上传数量")
@TableField("unuploaded_count")
private Integer unuploadedCount;
@Schema(description = "空间大小(M)")
@TableField("storage_size")
private String storageSize;
@Schema(description = "已用空间(M)")
@TableField("storage_used")
private String storageUsed;
@Schema(description = "剩余电量")
@TableField("remaining_battery")
private String remainingBattery;
@Schema(description = "充电状态")
@TableField("charging_status")
private String chargingStatus;
@Schema(description = "绑定用户ID")
@TableField("bind_user_id")
private String bindUserId;
@Schema(description = "绑定用户名称")
@TableField("bind_user_name")
private String bindUserName;
@Schema(description = "所属项目ID")
@TableField("project_id")
private String projectId;
@Schema(description = "所属项目名称")
@TableField("project_name")
private String projectName;
@Schema(description = "绑定状态(1已绑定 0未绑定)")
@TableField("bind_status")
private Boolean bindStatus;
@Schema(description = "创建时间")
@TableField("create_time")
private LocalDateTime createTime;
@Schema(description = "更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,82 @@
package com.rj.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 项目管理表
* </p>
*
* @author 李中华 ,spllzh
* @since 2025-08-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project_management")
@Schema(description="项目管理表")
public class ProjectManagement implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键UUID")
@TableId("id")
private String id;
@Schema(description = "所属经销商ID")
@TableField("dealership_id")
private String dealershipId;
@Schema(description = "项目名称")
@TableField("project_name")
private String projectName;
@Schema(description = "话术版本")
@TableField("script_version")
private Integer scriptVersion;
@Schema(description = "话术发布时间")
@TableField("script_publish_time")
private LocalDateTime scriptPublishTime;
@Schema(description = "销售人员数量")
@TableField("salesperson_count")
private Integer salespersonCount;
@Schema(description = "平均录音时长(分钟)")
@TableField("avg_recording_duration")
private BigDecimal avgRecordingDuration;
@Schema(description = "步骤")
@TableField("step")
private String step;
@Schema(description = "分组")
@TableField("group_name")
private String groupName;
@Schema(description = "创建时间")
@TableField("create_time")
private LocalDateTime createTime;
@Schema(description = "项目描述")
@TableField("description")
private String description;
@Schema(description = "项目状态(1启用 0停用)")
@TableField("status")
private Boolean status;
@Schema(description = "更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,98 @@
package com.rj.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 销售管理表
* </p>
*
* @author 李中华 ,spllzh
* @since 2025-08-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sales_management")
@Schema(description="销售管理表")
public class SalesManagement implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键UUID")
@TableId("id")
private String id;
@Schema(description = "销售名称")
@TableField("sales_name")
private String salesName;
@Schema(description = "登录账号")
@TableField("login_account")
private String loginAccount;
@Schema(description = "录音数")
@TableField("recording_count")
private Integer recordingCount;
@Schema(description = "平均录音时间(分钟)")
@TableField("avg_recording_duration")
private BigDecimal avgRecordingDuration;
@Schema(description = "录音总时长(小时)")
@TableField("total_recording_hours")
private BigDecimal totalRecordingHours;
@Schema(description = "所属项目ID")
@TableField("project_id")
private String projectId;
@Schema(description = "所属项目名称")
@TableField("project_name")
private String projectName;
@Schema(description = "所属门店ID")
@TableField("dealership_id")
private String dealershipId;
@Schema(description = "所属门店名称")
@TableField("dealership_name")
private String dealershipName;
@Schema(description = "角色")
@TableField("role")
private String role;
@Schema(description = "创建时间")
@TableField("create_time")
private LocalDateTime createTime;
@Schema(description = "最近录音时间")
@TableField("last_recording_time")
private LocalDateTime lastRecordingTime;
@Schema(description = "最后登录时间")
@TableField("last_login_time")
private LocalDateTime lastLoginTime;
@Schema(description = "最后登录IP")
@TableField("last_login_ip")
private String lastLoginIp;
@Schema(description = "销售状态(1启用 0停用)")
@TableField("status")
private Boolean status;
@Schema(description = "更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,82 @@
package com.rj.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 视频管理表
* </p>
*
* @author 李中华 ,spllzh
* @since 2025-08-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("video_management")
@Schema(description="视频管理表")
public class VideoManagement implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键UUID")
@TableId("id")
private String id;
@Schema(description = "视频名称")
@TableField("video_name")
private String videoName;
@Schema(description = "所属门店ID")
@TableField("dealership_id")
private String dealershipId;
@Schema(description = "所属门店名称")
@TableField("dealership_name")
private String dealershipName;
@Schema(description = "所属销售ID")
@TableField("sales_id")
private String salesId;
@Schema(description = "所属销售名称")
@TableField("sales_name")
private String salesName;
@Schema(description = "客户ID")
@TableField("customer_id")
private String customerId;
@Schema(description = "客户姓名")
@TableField("customer_name")
private String customerName;
@Schema(description = "客户手机号")
@TableField("customer_phone")
private String customerPhone;
@Schema(description = "视频时长(分钟)")
@TableField("duration")
private BigDecimal duration;
@Schema(description = "录制时间")
@TableField("record_time")
private LocalDateTime recordTime;
@Schema(description = "创建时间")
@TableField("create_time")
private LocalDateTime createTime;
@Schema(description = "更新时间")
@TableField("update_time")
private LocalDateTime updateTime;
}

View File

@@ -1,7 +1,7 @@
package com.cst.langchain4jheima.mapper;
package com.rj.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cst.langchain4jheima.pojo.Reservation;
import com.rj.pojo.Reservation;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima.pojo;
package com.rj.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima.repository;
package com.rj.repository;
import dev.langchain4j.data.message.ChatMessage;
import dev.langchain4j.data.message.ChatMessageDeserializer;

View File

@@ -1,8 +1,8 @@
package com.cst.langchain4jheima.service;
package com.rj.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cst.langchain4jheima.pojo.Reservation;
import com.rj.pojo.Reservation;
import java.util.List;

View File

@@ -1,10 +1,10 @@
package com.cst.langchain4jheima.service.impl;
package com.rj.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cst.langchain4jheima.mapper.ReservationMapper;
import com.cst.langchain4jheima.pojo.Reservation;
import com.cst.langchain4jheima.service.IReservationService;
import com.rj.mapper.ReservationMapper;
import com.rj.pojo.Reservation;
import com.rj.service.IReservationService;
import org.springframework.stereotype.Service;
import java.util.List;

View File

@@ -1,7 +1,7 @@
package com.cst.langchain4jheima.tools;
package com.rj.tools;
import com.cst.langchain4jheima.pojo.Reservation;
import com.cst.langchain4jheima.service.IReservationService;
import com.rj.pojo.Reservation;
import com.rj.service.IReservationService;
import dev.langchain4j.agent.tool.P;
import dev.langchain4j.agent.tool.Tool;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -54,4 +54,31 @@ spring:
mybatis:
configuration:
map-underscore-to-camel-case: true
map-underscore-to-camel-case: true
knife4j:
# 开启增强模式
enable: true
# 开启生产环境屏蔽
production: false
# 基础配置
basic:
enable: true
username: admin
password: 123456
springdoc:
swagger-ui:
path: /swagger-ui.html # Swagger UI 访问路径
tags-sorter: alpha # 标签排序
operations-sorter: alpha # 接口排序
api-docs:
path: /v3/api-docs # OpenAPI 描述文件路径
default-consumes-media-type: application/json
default-produces-media-type: application/json
swagger:
api:
base-url: http://localhost:9060

View File

@@ -3,7 +3,7 @@
<mapper namespace="com.rongl.mapper.ReservationMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.cst.langchain4jheima.pojo.Reservation">
<resultMap id="BaseResultMap" type="com.rj.pojo.Reservation">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="gender" property="gender" />

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima;
package com.rj;
import dev.langchain4j.model.openai.OpenAiChatModel;

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima;
package com.rj;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

View File

@@ -1,4 +1,4 @@
package com.cst.langchain4jheima.service;
package com.rj.service;
/**
* Author: 李中华 wx: spllzh email(qq): 28668817@qq.com
@@ -6,9 +6,10 @@ package com.cst.langchain4jheima.service;
**/
import com.cst.langchain4jheima.Langchain4jHeima20250803Application;
import com.cst.langchain4jheima.pojo.Reservation;
import com.rj.Langchain4jHeima20250803Application;
import com.rj.pojo.Reservation;
import com.rj.service.impl.ReservationServiceImpl;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,8 +20,6 @@ import static org.junit.jupiter.api.Assertions.*;
import java.time.LocalDateTime;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest(classes = Langchain4jHeima20250803Application.class)
class ReservationServiceTest {
@@ -58,7 +57,7 @@ class ReservationServiceTest {
reservationService.save(reservation);
// 测试根据手机号查询功能
List<Reservation> reservations = ((com.cst.langchain4jheima.service.impl.ReservationServiceImpl) reservationService)
List<Reservation> reservations = ((ReservationServiceImpl) reservationService)
.getReservationsByPhone("13900139000");
// 验证查询结果
@@ -71,7 +70,7 @@ class ReservationServiceTest {
@Test
void testGetReservationsByPhoneWithNoResults() {
// 测试查询不存在的手机号
List<Reservation> reservations = ((com.cst.langchain4jheima.service.impl.ReservationServiceImpl) reservationService)
List<Reservation> reservations = ((ReservationServiceImpl) reservationService)
.getReservationsByPhone("00000000000");
// 验证查询结果为空