diff --git a/src/main/java/com/aida/lanecarford/controller/CustomerController.java b/src/main/java/com/aida/lanecarford/controller/CustomerController.java index 9246dbc..d348d26 100644 --- a/src/main/java/com/aida/lanecarford/controller/CustomerController.java +++ b/src/main/java/com/aida/lanecarford/controller/CustomerController.java @@ -2,6 +2,7 @@ package com.aida.lanecarford.controller; import com.aida.lanecarford.common.ApiResponse; import com.aida.lanecarford.dto.BaseRequest; +import com.aida.lanecarford.entity.Customer; import com.aida.lanecarford.service.CustomerService; import com.aida.lanecarford.vo.CustomerCheckInVO; import com.aida.lanecarford.vo.CustomerVO; @@ -25,11 +26,11 @@ public class CustomerController { @Operation( summary = "顾客入店登记", - description = "验证顾客身份并创建入店记录,如果是新顾客则自动注册到系统中。" + description = "验证顾客身份并创建入店记录" ) @GetMapping("/checkIn") - public ApiResponse customerCheckIn(@RequestParam String vipId) { - return ApiResponse.success(customerService.customerCheckIn(vipId)); + public ApiResponse customerCheckIn(@RequestParam String nickname) { + return ApiResponse.success(customerService.customerCheckIn(nickname)); } @PostMapping("/getAllCustomer") @@ -37,4 +38,15 @@ public class CustomerController { return ApiResponse.success(customerService.getAllCustomer(request)); } + @Operation( + summary = "新增顾客", + description = "根据用户提供的vipId和昵称与当前sales绑定,创建账号" + ) + @GetMapping("/createCustomer") + public ApiResponse createCustomer(@RequestParam String vipId, @RequestParam String nickname) { + return ApiResponse.success(customerService.createCustomer(vipId, nickname)); + } + + + } \ No newline at end of file diff --git a/src/main/java/com/aida/lanecarford/controller/StyleController.java b/src/main/java/com/aida/lanecarford/controller/StyleController.java index d11a982..16048be 100644 --- a/src/main/java/com/aida/lanecarford/controller/StyleController.java +++ b/src/main/java/com/aida/lanecarford/controller/StyleController.java @@ -78,4 +78,15 @@ public class StyleController { return ApiResponse.success(styleService.getOutfitResult(requestIDs)); } + @Operation( + summary = "回溯历史对话,重新生成搭配图", + description = "根据当前的穿搭结果,回溯历史穿搭请求数据及历史对话,重新生成搭配" + ) + @GetMapping("/retrieveAndRegenerate") + public ApiResponse> retrieveAndRegenerate( + @Parameter(description = "tryOn后的图片id", required = true, example = "1369") + @RequestParam Long tryOnEffectsId) { + return ApiResponse.success(styleService.retrieveAndRegenerate(tryOnEffectsId)); + } + } \ No newline at end of file diff --git a/src/main/java/com/aida/lanecarford/dto/OutfitCallbackDTO.java b/src/main/java/com/aida/lanecarford/dto/OutfitCallbackDTO.java index 275bc67..8df956b 100644 --- a/src/main/java/com/aida/lanecarford/dto/OutfitCallbackDTO.java +++ b/src/main/java/com/aida/lanecarford/dto/OutfitCallbackDTO.java @@ -16,4 +16,8 @@ public class OutfitCallbackDTO { private String path; private List> items; + + private String request_summary; + + private List occasions; } diff --git a/src/main/java/com/aida/lanecarford/dto/RequestOutfitDTO.java b/src/main/java/com/aida/lanecarford/dto/RequestOutfitDTO.java index 5cb4b5a..66bf74e 100644 --- a/src/main/java/com/aida/lanecarford/dto/RequestOutfitDTO.java +++ b/src/main/java/com/aida/lanecarford/dto/RequestOutfitDTO.java @@ -1,9 +1,12 @@ package com.aida.lanecarford.dto; +import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Data; +import java.util.List; + @Data @Schema(description = "AI穿搭推荐请求参数") @@ -59,4 +62,10 @@ public class RequestOutfitDTO { ) private String sessionId; + @Hidden + private String summary; + + @Hidden + private List occasion; + } diff --git a/src/main/java/com/aida/lanecarford/entity/Customer.java b/src/main/java/com/aida/lanecarford/entity/Customer.java index d8d94fe..2e9dcfc 100644 --- a/src/main/java/com/aida/lanecarford/entity/Customer.java +++ b/src/main/java/com/aida/lanecarford/entity/Customer.java @@ -20,6 +20,12 @@ import java.time.LocalDateTime; @TableName("customers") public class Customer extends BaseEntity { + /** + * 导购id,即user表的主键id + */ + @TableField("user_id") + private Long salesId; + /** * vip ID */ diff --git a/src/main/java/com/aida/lanecarford/entity/OutfitRequest.java b/src/main/java/com/aida/lanecarford/entity/OutfitRequest.java index 493573d..c1f8514 100644 --- a/src/main/java/com/aida/lanecarford/entity/OutfitRequest.java +++ b/src/main/java/com/aida/lanecarford/entity/OutfitRequest.java @@ -31,4 +31,9 @@ public class OutfitRequest extends BaseEntity{ * 当前任务状态 */ private int status; + + /** + * 会话记录id + */ + private Long sessionRecordId; } diff --git a/src/main/java/com/aida/lanecarford/entity/SessionRecord.java b/src/main/java/com/aida/lanecarford/entity/SessionRecord.java new file mode 100644 index 0000000..2a7281b --- /dev/null +++ b/src/main/java/com/aida/lanecarford/entity/SessionRecord.java @@ -0,0 +1,51 @@ +package com.aida.lanecarford.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = true) +@TableName("session_record") +public class SessionRecord extends BaseEntity{ + + private Long visitRecordId; + + private String sessionId; + + private String requestSummary; + + private String occasions; + + // 获取时转换为List + @JsonIgnore + public List getOccasionsList() { + if (StringUtils.isBlank(this.occasions)) { + return new ArrayList<>(); + } + // 使用特定分隔符,确保不会出现在内容中 + return Arrays.asList(this.occasions.split("\\|\\|")); + } + + // 设置时转换为String + public void setOccasionsList(List occasionsList) { + if (occasionsList == null || occasionsList.isEmpty()) { + this.occasions = null; + } else { + this.occasions = String.join("||", occasionsList); + } + } + +} diff --git a/src/main/java/com/aida/lanecarford/mapper/SessionRecordMapper.java b/src/main/java/com/aida/lanecarford/mapper/SessionRecordMapper.java new file mode 100644 index 0000000..ca8d125 --- /dev/null +++ b/src/main/java/com/aida/lanecarford/mapper/SessionRecordMapper.java @@ -0,0 +1,9 @@ +package com.aida.lanecarford.mapper; + +import com.aida.lanecarford.entity.SessionRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SessionRecordMapper extends BaseMapper { +} diff --git a/src/main/java/com/aida/lanecarford/service/CustomerService.java b/src/main/java/com/aida/lanecarford/service/CustomerService.java index bb8c215..5c48349 100644 --- a/src/main/java/com/aida/lanecarford/service/CustomerService.java +++ b/src/main/java/com/aida/lanecarford/service/CustomerService.java @@ -16,4 +16,6 @@ public interface CustomerService extends IService { IPage getAllCustomer(BaseRequest request); + Customer createCustomer(String vipId, String nickname); + } \ No newline at end of file diff --git a/src/main/java/com/aida/lanecarford/service/StyleService.java b/src/main/java/com/aida/lanecarford/service/StyleService.java index 780e462..b5e696f 100644 --- a/src/main/java/com/aida/lanecarford/service/StyleService.java +++ b/src/main/java/com/aida/lanecarford/service/StyleService.java @@ -19,4 +19,6 @@ public interface StyleService extends IService