fix analysis
This commit is contained in:
@@ -142,10 +142,50 @@ func (l *PaySuccessNotifyUserHandler) ProcessTask(ctx context.Context, t *asynq.
|
||||
}
|
||||
|
||||
// 调用API请求服务
|
||||
combinedResponse, err := l.svcCtx.ApiRequestService.ProcessRequests(decryptData, product.Id)
|
||||
responseData, err := l.svcCtx.ApiRequestService.ProcessRequests(decryptData, product.Id)
|
||||
if err != nil {
|
||||
return l.handleError(ctx, err, order, query)
|
||||
}
|
||||
// responseData 对这个进行筛选筛选Success == true 的,此时调用成功的模块数据将产品关联的模块产品成本价(cost_price )累加到order.SalesCost中
|
||||
// 同时在响应数据中添加成本价信息
|
||||
for i, data := range responseData {
|
||||
if data.Success {
|
||||
// 通过API ID查找对应的feature,获取其成本价
|
||||
feature, err := l.svcCtx.FeatureModel.FindOneByApiId(ctx, data.ApiID)
|
||||
if err != nil {
|
||||
logx.Errorf("查找API ID %s 对应的feature失败: %v", data.ApiID, err)
|
||||
continue
|
||||
}
|
||||
order.SalesCost += feature.CostPrice
|
||||
|
||||
// 将成本价信息添加到响应数据中
|
||||
// 首先解析原始数据
|
||||
var originalData map[string]interface{}
|
||||
if err := json.Unmarshal(data.Data, &originalData); err != nil {
|
||||
logx.Errorf("解析API %s 的响应数据失败: %v", data.ApiID, err)
|
||||
continue
|
||||
}
|
||||
|
||||
// 添加成本价字段
|
||||
originalData["cost_price"] = feature.CostPrice
|
||||
|
||||
// 重新序列化数据
|
||||
updatedData, err := json.Marshal(originalData)
|
||||
if err != nil {
|
||||
logx.Errorf("序列化API %s 的更新后数据失败: %v", data.ApiID, err)
|
||||
continue
|
||||
}
|
||||
|
||||
// 更新responseData中的Data字段
|
||||
responseData[i].Data = json.RawMessage(updatedData)
|
||||
}
|
||||
}
|
||||
// 对返回的类型进行二进制转换
|
||||
combinedResponse, marshalErr := json.Marshal(responseData)
|
||||
if marshalErr != nil {
|
||||
err = fmt.Errorf("响应数据转 JSON 失败: %v", marshalErr)
|
||||
return l.handleError(ctx, err, order, query)
|
||||
}
|
||||
// 加密返回响应
|
||||
encryptData, aesEncryptErr := crypto.AesEncrypt(combinedResponse, key)
|
||||
if aesEncryptErr != nil {
|
||||
|
||||
Reference in New Issue
Block a user