订单详情接口调整

This commit is contained in:
2025-10-17 18:32:04 +08:00
parent 3fbb1383fd
commit 190e0e1605
7 changed files with 74 additions and 14 deletions

View File

@@ -0,0 +1,27 @@
package com.tashow.cloud.common.util.json.databind;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.time.LocalDateTime;
/**
* 基于字符串的 LocalDateTime 序列化器
*
* @author 老五
*/
public class StringLocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
public static final StringLocalDateTimeSerializer INSTANCE = new StringLocalDateTimeSerializer();
@Override
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
// 将 LocalDateTime 对象,转换为 Long 时间戳
gen.writeString(LocalDateTimeUtil.format(value, DatePattern.NORM_DATETIME_FORMATTER) );
}
}

View File

@@ -5,6 +5,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
@@ -70,7 +72,6 @@ public class AiDialogMessageRespVo {
* 创建时间
*/
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private String createTime;
private LocalDateTime createTime;
}

View File

@@ -1,11 +1,11 @@
package com.tashow.cloud.ai.controller.app.dialog.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.tashow.cloud.common.util.json.databind.StringLocalDateTimeSerializer;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import java.time.LocalDateTime;
/**
* 翻译接口结果vo
@@ -40,8 +40,7 @@ public class TranslateRespVo {
//文件时长
private Long contentDuration;
//发送时间
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private String createTime;
@JsonSerialize(using = StringLocalDateTimeSerializer.class)
private LocalDateTime createTime;
}

View File

@@ -1,10 +1,14 @@
package com.tashow.cloud.ai.dal.dataobject.dialog;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* ai-对话消息 DO
*
@@ -89,6 +93,8 @@ public class AiDialogMessageDO {
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
}

View File

@@ -1,5 +1,6 @@
package com.tashow.cloud.ai.service.dialog;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
@@ -30,8 +31,8 @@ import javax.sound.sampled.AudioSystem;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -55,6 +56,17 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
private FileApi fileApi;
private Map<String, String> petAvatars = new HashMap<>() {{
put("cat", "https://petshy.tashowz.com/admin-api/infra/file/29/get/89f4982de19aadae3248ffde37132857df255b3276de484fdf12e603e5e29a7e.png");
put("dog", "https://petshy.tashowz.com/admin-api/infra/file/29/get/175ba9f58dc812786bfe0598ca9c4a7f422fe138c1889e08d8228aebc953c1b3.png");
}};
private Map<String, String> petName = new HashMap<>() {{
put("cat", "猫猫・三胖");
put("dog", "狗狗・旺财");
}};
@Override
public DialogResp getDialog(Long userId) {
AiDialogDO aiDialogDO = this.getOne(new LambdaQueryWrapper<AiDialogDO>().eq(AiDialogDO::getUserId, userId));
@@ -108,7 +120,7 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
.last("limit 1")
);
messageDO.setMessageOrder(aiDialogMessageDO == null ? 1 : aiDialogMessageDO.getMessageOrder() + 1);
messageDO.setCreateTime(LocalDateTime.now());
messageDO.setCreateTime(LocalDateTimeUtil.now());
}
int i = messageDO.getId() == null ? aiDialogMessageMapper.insert(messageDO) : aiDialogMessageMapper.updateById(messageDO);
TranslateRespVo bean = BeanUtils.toBean(messageDO, TranslateRespVo.class);
@@ -136,7 +148,11 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
//数据解析
JSONObject translateResult = JSON.parseObject(result);
if (translateResult.isEmpty() || !translateResult.containsKey("intent_result") || !translateResult.getBoolean("is_species_sound")) {
if (translateResult.isEmpty()
|| !translateResult.containsKey("intent_result")
|| !translateResult.getBoolean("is_species_sound")
|| translateResult.getInteger("confidence") < 0.7
) {
messageDO.setTransStatus(0);
messageDO.setTransResult("");
return messageDO;
@@ -148,16 +164,24 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
.getJSONObject("probabilities");
String resultKey = probabilities.entrySet().stream()
.filter(entry -> entry.getValue() instanceof Number)
.filter(entry -> entry.getValue() instanceof Number && ((Number) entry.getValue()).doubleValue() > 0.7)
.max(Comparator.comparingDouble(entry -> ((Number) entry.getValue()).doubleValue()))
.map(Map.Entry::getKey)
.orElse(null);
//返回结果
if (StrUtil.isBlank(resultKey)) {
messageDO.setTransStatus(0);
messageDO.setTransResult("");
return messageDO;
}
//宠物档案 todo
messageDO.setPetId(1l);
messageDO.setPetName(speciesLabels);
messageDO.setPetAvatar("https://img1.baidu.com/it/u=1224902049,3440357835&fm=253&app=138&f=JPEG?w=801&h=800");
messageDO.setPetName(petName.get(speciesLabels));
https:
//qcloud.dpfile.com/pc/qw4HqeQN5Af9tLaw0mx8pXQhxKUCvwHbCXmSRI-nKiW1NpX6wMdvSN80YpcTbMKw.jpg
messageDO.setPetAvatar(petAvatars.get(speciesLabels));
messageDO.setPetType(speciesLabels);
messageDO.setTransStatus(1);
messageDO.setTransResult(StrUtil.isBlank(resultKey) ? "" : resultKey.split(StrUtil.UNDERLINE)[1]);

View File

@@ -70,6 +70,7 @@ public class OAuth2AccessTokenDO extends TenantBaseDO {
/**
* 过期时间
*/
private LocalDateTime expiresTime;
}

View File

@@ -47,6 +47,8 @@ public class TradeOrderDetailRespVO {
private String orderTerminal;
//用户信息
private String userInfo;
//用户头像
private String userAvatar;
//取消时间
private String cancelTime;