修改原始请求的信息的数据处理
This commit is contained in:
parent
ef46c30ed3
commit
758735fefc
@ -4,7 +4,6 @@ using LMS.Repository.DB;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Quartz;
|
||||
|
||||
namespace LMS.Tools.MJPackage
|
||||
@ -80,8 +79,29 @@ namespace LMS.Tools.MJPackage
|
||||
}
|
||||
task.Status = status;
|
||||
|
||||
if (properties.TryGetValue("isPartner", out var isPartner))
|
||||
{
|
||||
if ((bool)isPartner == true)
|
||||
{
|
||||
properties = ProcessPartnerTaskDataAsync(properties);
|
||||
}
|
||||
}
|
||||
else if (properties.TryGetValue("isOfficial", out var isOfficial))
|
||||
{
|
||||
if ((bool)isOfficial == true)
|
||||
{
|
||||
properties = ProcessOfficialTaskDataAsync(properties);
|
||||
}
|
||||
}
|
||||
else if (properties.TryGetValue("isYouChuan", out var isYouChuan))
|
||||
{
|
||||
if ((bool)isYouChuan == true)
|
||||
{
|
||||
properties = ProcessYouChuanTaskDataAsync(properties);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
properties = ProcessTaskDataAsync(properties);
|
||||
|
||||
if (status == MJTaskStatus.SUCCESS || status == MJTaskStatus.FAILURE || status == MJTaskStatus.CANCEL)
|
||||
{
|
||||
@ -133,60 +153,46 @@ namespace LMS.Tools.MJPackage
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单独处理生图包,将参数xie'chu'l
|
||||
/// 合作伙伴任务数据处理
|
||||
/// </summary>
|
||||
/// <param name="properties"></param>
|
||||
/// <returns></returns>
|
||||
public Dictionary<string, object> ProcessTaskDataAsync(Dictionary<string, object> properties)
|
||||
public Dictionary<string, object> ProcessPartnerTaskDataAsync(Dictionary<string, object> properties)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 转换为JObject以简化访问
|
||||
string jsonStr = JsonConvert.SerializeObject(properties);
|
||||
JObject jObj = JObject.Parse(jsonStr);
|
||||
dynamic data = JsonConvert.DeserializeObject(jsonStr) ?? new object { };
|
||||
|
||||
// 检查是否是合作伙伴任务
|
||||
bool isPartner = jObj["isPartner"]?.Value<bool>() ?? false;
|
||||
string? partnerTaskId = jObj["partnerTaskId"]?.ToString();
|
||||
// 直接用dynamic访问,不做类型判断
|
||||
bool isPartner = data?.isPartner ?? false;
|
||||
string partnerTaskId = data?.partnerTaskId ?? string.Empty;
|
||||
|
||||
if (isPartner && !string.IsNullOrEmpty(partnerTaskId))
|
||||
{
|
||||
_logger.LogInformation($"处理合作伙伴任务: {partnerTaskId}");
|
||||
|
||||
// 获取partnerTaskInfo和imgUrls
|
||||
JToken? partnerTaskInfo = jObj["partnerTaskInfo"];
|
||||
if (partnerTaskInfo != null)
|
||||
{
|
||||
if (partnerTaskInfo["imgUrls"] is JArray imgUrlsArray && imgUrlsArray.Count > 0)
|
||||
{
|
||||
// 直接遍历,让异常处理兜底
|
||||
var imageUrls = new List<object>();
|
||||
|
||||
foreach (JToken item in imgUrlsArray)
|
||||
foreach (var item in data?.partnerTaskInfo?.imgUrls ?? Array.Empty<object>())
|
||||
{
|
||||
string? url = item["url"]?.ToString();
|
||||
string url = item?.url ?? string.Empty;
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
{
|
||||
imageUrls.Add(new
|
||||
{
|
||||
url = url ?? string.Empty
|
||||
});
|
||||
imageUrls.Add(new { url });
|
||||
}
|
||||
}
|
||||
|
||||
if (imageUrls.Count > 0)
|
||||
{
|
||||
// 直接添加到原始properties字典
|
||||
properties["imgUrls"] = imageUrls;
|
||||
properties["imageUrls"] = imageUrls;
|
||||
_logger.LogInformation($"成功提取了{imageUrls.Count}个图片URL");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("未找到图片URL数组或数组为空");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("未找到partnerTaskInfo信息");
|
||||
_logger.LogInformation("未找到partnerTaskInfo或者是图片信信息");
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -202,5 +208,119 @@ namespace LMS.Tools.MJPackage
|
||||
return properties; // 返回原始数据,避免处理错误导致数据丢失
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 官方任务数据处理
|
||||
/// </summary>
|
||||
/// <param name="properties"></param>
|
||||
/// <returns></returns>
|
||||
public Dictionary<string, object> ProcessOfficialTaskDataAsync(Dictionary<string, object> properties)
|
||||
{
|
||||
try
|
||||
{
|
||||
string jsonStr = JsonConvert.SerializeObject(properties);
|
||||
dynamic data = JsonConvert.DeserializeObject(jsonStr) ?? new object { };
|
||||
|
||||
// 检查是否是合作伙伴任务
|
||||
// 直接用dynamic访问,不做类型判断
|
||||
bool isOfficial = data?.isOfficial ?? false;
|
||||
string officialTaskId = data?.officialTaskId ?? string.Empty;
|
||||
|
||||
if (isOfficial && !string.IsNullOrEmpty(officialTaskId))
|
||||
{
|
||||
_logger.LogInformation($"处理官方任务: {officialTaskId}");
|
||||
|
||||
// 直接遍历,让异常处理兜底
|
||||
var imageUrls = new List<object>();
|
||||
|
||||
foreach (var item in data?.officialTaskInfo?.imgUrls ?? Array.Empty<object>())
|
||||
{
|
||||
string url = item?.url ?? string.Empty;
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
{
|
||||
imageUrls.Add(new { url });
|
||||
}
|
||||
}
|
||||
|
||||
if (imageUrls.Count > 0)
|
||||
{
|
||||
properties["imageUrls"] = imageUrls;
|
||||
_logger.LogInformation($"成功提取了{imageUrls.Count}个图片URL");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("未找到officialTaskInfo或者是图片信信息");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation($"任务不是official任务或缺少必要信息: isOfficial={isOfficial}, officialTaskId={officialTaskId}");
|
||||
}
|
||||
|
||||
return properties;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "处理任务数据时发生错误");
|
||||
return properties; // 返回原始数据,避免处理错误导致数据丢失
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 悠船任务数据处理
|
||||
/// </summary>
|
||||
/// <param name="properties"></param>
|
||||
/// <returns></returns>
|
||||
public Dictionary<string, object> ProcessYouChuanTaskDataAsync(Dictionary<string, object> properties)
|
||||
{
|
||||
try
|
||||
{
|
||||
string jsonStr = JsonConvert.SerializeObject(properties);
|
||||
dynamic data = JsonConvert.DeserializeObject(jsonStr) ?? new object { };
|
||||
|
||||
// 检查是否是合作伙伴任务
|
||||
// 直接用dynamic访问,不做类型判断
|
||||
bool isYouChuan = data?.isYouChuan ?? false;
|
||||
string youChuanTaskId = data?.youChuanTaskId ?? string.Empty;
|
||||
|
||||
if (isYouChuan && !string.IsNullOrEmpty(youChuanTaskId))
|
||||
{
|
||||
_logger.LogInformation($"处理悠船任务: {youChuanTaskId}");
|
||||
|
||||
// 直接遍历,让异常处理兜底
|
||||
var imageUrls = new List<object>();
|
||||
|
||||
foreach (var item in data?.youChuanTaskInfo?.imgUrls ?? Array.Empty<object>())
|
||||
{
|
||||
string url = item?.url ?? string.Empty;
|
||||
if (!string.IsNullOrEmpty(url))
|
||||
{
|
||||
imageUrls.Add(new { url });
|
||||
}
|
||||
}
|
||||
|
||||
if (imageUrls.Count > 0)
|
||||
{
|
||||
properties["imageUrls"] = imageUrls;
|
||||
_logger.LogInformation($"成功提取了{imageUrls.Count}个图片URL");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("未找到youChuanTaskInfo或者是图片信信息");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation($"任务不是YouChuan任务或缺少必要信息: isYouChuan={isYouChuan}, youChuanTaskId={youChuanTaskId}");
|
||||
}
|
||||
|
||||
return properties;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "处理任务数据时发生错误");
|
||||
return properties; // 返回原始数据,避免处理错误导致数据丢失
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,9 +4,7 @@ using LMS.DAO;
|
||||
using LMS.Repository.FileUpload;
|
||||
using LMS.Repository.Models.DB;
|
||||
using LMS.service.Configuration;
|
||||
using LMS.service.Configuration.InitConfiguration;
|
||||
using LMS.service.Extensions.Middleware;
|
||||
using LMS.Tools.MJPackage;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
@ -6,7 +6,6 @@ using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.Net.Sockets;
|
||||
using System.Text.Json;
|
||||
using static Betalgo.Ranul.OpenAI.ObjectModels.StaticValues.AssistantsStatics.MessageStatics;
|
||||
|
||||
namespace LMS.service.Service.MJPackage
|
||||
{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user