订单详情接口调整
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 lombok.Data;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
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;
|
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)
|
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
private LocalDateTime createTime;
|
||||||
private String createTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.tashow.cloud.ai.controller.app.dialog.vo;
|
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 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
|
* 翻译接口结果vo
|
||||||
@@ -40,8 +40,7 @@ public class TranslateRespVo {
|
|||||||
//文件时长
|
//文件时长
|
||||||
private Long contentDuration;
|
private Long contentDuration;
|
||||||
//发送时间
|
//发送时间
|
||||||
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
@JsonSerialize(using = StringLocalDateTimeSerializer.class)
|
||||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
private LocalDateTime createTime;
|
||||||
private String createTime;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
package com.tashow.cloud.ai.dal.dataobject.dialog;
|
package com.tashow.cloud.ai.dal.dataobject.dialog;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ai-对话消息 DO
|
* ai-对话消息 DO
|
||||||
*
|
*
|
||||||
@@ -89,6 +93,8 @@ public class AiDialogMessageDO {
|
|||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
@TableField(fill = FieldFill.INSERT)
|
@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;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tashow.cloud.ai.service.dialog;
|
package com.tashow.cloud.ai.service.dialog;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpRequest;
|
||||||
import cn.hutool.http.HttpUtil;
|
import cn.hutool.http.HttpUtil;
|
||||||
@@ -30,8 +31,8 @@ import javax.sound.sampled.AudioSystem;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -55,6 +56,17 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
|
|||||||
private FileApi fileApi;
|
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
|
@Override
|
||||||
public DialogResp getDialog(Long userId) {
|
public DialogResp getDialog(Long userId) {
|
||||||
AiDialogDO aiDialogDO = this.getOne(new LambdaQueryWrapper<AiDialogDO>().eq(AiDialogDO::getUserId, 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")
|
.last("limit 1")
|
||||||
);
|
);
|
||||||
messageDO.setMessageOrder(aiDialogMessageDO == null ? 1 : aiDialogMessageDO.getMessageOrder() + 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);
|
int i = messageDO.getId() == null ? aiDialogMessageMapper.insert(messageDO) : aiDialogMessageMapper.updateById(messageDO);
|
||||||
TranslateRespVo bean = BeanUtils.toBean(messageDO, TranslateRespVo.class);
|
TranslateRespVo bean = BeanUtils.toBean(messageDO, TranslateRespVo.class);
|
||||||
@@ -136,7 +148,11 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
|
|||||||
//数据解析
|
//数据解析
|
||||||
JSONObject translateResult = JSON.parseObject(result);
|
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.setTransStatus(0);
|
||||||
messageDO.setTransResult("");
|
messageDO.setTransResult("");
|
||||||
return messageDO;
|
return messageDO;
|
||||||
@@ -148,16 +164,24 @@ public class AiDialogServiceImpl extends ServiceImpl<AiDialogMapper, AiDialogDO>
|
|||||||
.getJSONObject("probabilities");
|
.getJSONObject("probabilities");
|
||||||
|
|
||||||
String resultKey = probabilities.entrySet().stream()
|
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()))
|
.max(Comparator.comparingDouble(entry -> ((Number) entry.getValue()).doubleValue()))
|
||||||
.map(Map.Entry::getKey)
|
.map(Map.Entry::getKey)
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
|
|
||||||
//返回结果
|
//返回结果
|
||||||
|
if (StrUtil.isBlank(resultKey)) {
|
||||||
|
messageDO.setTransStatus(0);
|
||||||
|
messageDO.setTransResult("");
|
||||||
|
return messageDO;
|
||||||
|
}
|
||||||
|
|
||||||
//宠物档案 todo
|
//宠物档案 todo
|
||||||
messageDO.setPetId(1l);
|
messageDO.setPetId(1l);
|
||||||
messageDO.setPetName(speciesLabels);
|
messageDO.setPetName(petName.get(speciesLabels));
|
||||||
messageDO.setPetAvatar("https://img1.baidu.com/it/u=1224902049,3440357835&fm=253&app=138&f=JPEG?w=801&h=800");
|
https:
|
||||||
|
//qcloud.dpfile.com/pc/qw4HqeQN5Af9tLaw0mx8pXQhxKUCvwHbCXmSRI-nKiW1NpX6wMdvSN80YpcTbMKw.jpg
|
||||||
|
messageDO.setPetAvatar(petAvatars.get(speciesLabels));
|
||||||
messageDO.setPetType(speciesLabels);
|
messageDO.setPetType(speciesLabels);
|
||||||
messageDO.setTransStatus(1);
|
messageDO.setTransStatus(1);
|
||||||
messageDO.setTransResult(StrUtil.isBlank(resultKey) ? "" : resultKey.split(StrUtil.UNDERLINE)[1]);
|
messageDO.setTransResult(StrUtil.isBlank(resultKey) ? "" : resultKey.split(StrUtil.UNDERLINE)[1]);
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ public class OAuth2AccessTokenDO extends TenantBaseDO {
|
|||||||
/**
|
/**
|
||||||
* 过期时间
|
* 过期时间
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private LocalDateTime expiresTime;
|
private LocalDateTime expiresTime;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ public class TradeOrderDetailRespVO {
|
|||||||
private String orderTerminal;
|
private String orderTerminal;
|
||||||
//用户信息
|
//用户信息
|
||||||
private String userInfo;
|
private String userInfo;
|
||||||
|
//用户头像
|
||||||
|
private String userAvatar;
|
||||||
|
|
||||||
//取消时间
|
//取消时间
|
||||||
private String cancelTime;
|
private String cancelTime;
|
||||||
|
|||||||
Reference in New Issue
Block a user