This commit is contained in:
2026-02-12 16:25:01 +08:00
parent ce34e426c4
commit 2b8add736f
3 changed files with 44 additions and 5 deletions

View File

@@ -62,9 +62,16 @@ func (l *QueryDetailByOrderIdLogic) QueryDetailByOrderId(req *types.QueryDetailB
}
// 检查订单状态
if order.Status != "paid" {
// - pending未支付阻止查看
// - refunded已退款允许进入但前端只展示“查询为空订单已退款”提示不再展示报告数据
// - 其他异常状态:按未找到处理
if order.Status == "pending" {
return nil, errors.Wrapf(xerr.NewErrMsg("订单未支付,无法查看报告"), "")
}
if order.Status != "paid" && order.Status != "refunded" {
// 使用逻辑层“未找到”错误码,前端按空结果处理
return nil, errors.Wrapf(xerr.NewErrCode(xerr.LOGIC_QUERY_NOT_FOUND), "订单状态不支持查看报告, status=%s", order.Status)
}
// 获取报告信息
queryModel, err := l.svcCtx.QueryModel.FindOneByOrderId(l.ctx, req.OrderId)
@@ -105,6 +112,15 @@ func (l *QueryDetailByOrderIdLogic) QueryDetailByOrderId(req *types.QueryDetailB
}
query.ProductName = product.ProductName
query.Product = product.ProductEn
// 已退款订单:不再返回具体报告数据,仅告知前端“查询为空,订单已退款”
if order.Status == "refunded" {
query.QueryState = "failed" // 前端据此走空状态 + 退款提示
query.QueryData = []types.QueryItem{} // 不返回任何模块数据
if query.QueryParams == nil { // 参数可选保留,这里保险起见给个空 map
query.QueryParams = map[string]interface{}{}
}
}
return &types.QueryDetailByOrderIdResp{
Query: query,
}, nil

View File

@@ -53,9 +53,16 @@ func (l *QueryDetailByOrderNoLogic) QueryDetailByOrderNo(req *types.QueryDetailB
}
// 检查订单状态
if order.Status != "paid" {
// - pending未支付阻止查看
// - refunded已退款允许进入但前端只展示“查询为空订单已退款”提示不再展示报告数据
// - 其他异常状态:按未找到处理
if order.Status == "pending" {
return nil, errors.Wrapf(xerr.NewErrMsg("订单未支付,无法查看报告"), "")
}
if order.Status != "paid" && order.Status != "refunded" {
// 使用逻辑层“未找到”错误码,前端按空结果处理
return nil, errors.Wrapf(xerr.NewErrCode(xerr.LOGIC_QUERY_NOT_FOUND), "订单状态不支持查看报告, status=%s", order.Status)
}
// 获取报告信息
queryModel, err := l.svcCtx.QueryModel.FindOneByOrderId(l.ctx, order.Id)
@@ -96,6 +103,15 @@ func (l *QueryDetailByOrderNoLogic) QueryDetailByOrderNo(req *types.QueryDetailB
}
query.Product = product.ProductEn
query.ProductName = product.ProductName
// 已退款订单:不再返回具体报告数据,仅告知前端“查询为空,订单已退款”
if order.Status == "refunded" {
query.QueryState = "failed" // 前端据此走空状态 + 退款提示
query.QueryData = []types.QueryItem{} // 不返回任何模块数据
if query.QueryParams == nil { // 参数可选保留,这里保险起见给个空 map
query.QueryParams = map[string]interface{}{}
}
}
return &types.QueryDetailByOrderNoResp{
Query: query,
}, nil

View File

@@ -1306,10 +1306,17 @@ func (a *ApiRequestService) ProcessQCXGY7F2Request(params []byte) ([]byte, error
func (a *ApiRequestService) ProcessQCXG1H7YRequest(params []byte) ([]byte, error) {
vin := gjson.GetBytes(params, "vin_code")
if !vin.Exists() || vin.String() == "" {
return nil, errors.New("api请求, QCXG1H7Y, 缺少 vin_code")
plate := gjson.GetBytes(params, "car_license")
if !vin.Exists() || vin.String() == "" || !plate.Exists() || plate.String() == "" {
return nil, errors.New("api请求, QCXG1H7Y, 缺少 vin_code 或 car_license")
}
resp, err := a.tianyuanapi.CallInterface("QCXG1H7Y", map[string]interface{}{"vin_code": vin.String()})
// 天远侧字段为 vin_code + plate_no这里将前端 car_license 映射为 plate_no
body := map[string]interface{}{
"vin_code": vin.String(),
"plate_no": plate.String(),
}
logx.Infof("vehicle api request QCXG1H7Y, vin_code=%s, plate_no=%s", vin.String(), plate.String())
resp, err := a.tianyuanapi.CallInterface("QCXG1H7Y", body)
if err != nil {
return nil, err
}