订单详情接口调整
This commit is contained in:
@@ -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) );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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]);
|
||||
|
||||
@@ -70,6 +70,7 @@ public class OAuth2AccessTokenDO extends TenantBaseDO {
|
||||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
|
||||
private LocalDateTime expiresTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -47,6 +47,8 @@ public class TradeOrderDetailRespVO {
|
||||
private String orderTerminal;
|
||||
//用户信息
|
||||
private String userInfo;
|
||||
//用户头像
|
||||
private String userAvatar;
|
||||
|
||||
//取消时间
|
||||
private String cancelTime;
|
||||
|
||||
Reference in New Issue
Block a user