using DataSharing.FwDataExchange;
using DataSharing.RawData;
using DataSharing.Share.Dtos;
using DataSharing.Share.Dtos.HotlineSetting;
using DataSharing.Share.Dtos.YiBin.ConvergenceMedia;
using DataSharing.Share.Enums;
using DataSharing.YiBin.ConvergenceMedia;
using DotNetCore.CAP;
using Hotline.Share.Dtos.File;
using Hotline.Share.Dtos.Order;
using MapsterMapper;
using MediatR;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using XF.Domain.Filters;
using XF.Domain.Repository;
namespace DataSharing.Host.Controllers.YiBin
{
///
/// 融媒体、I宜宾
///
public class ConvergenceMediaController : BaseController
{
#region 注入
private readonly IMapper _mapper;
private readonly IMediator _mediator;
private readonly ICapPublisher _capPublisher;
private readonly IChannelConfigurationManager _channelConfigurationManager;
private readonly IRepository _dataOrderRepository;
private readonly IRepository _dataOrderWorkFlowRepository;
private readonly IRepository _dsReceiveMediaDataRepository;
private readonly IRepository _bulletinRepository;
private readonly FwClient _fwClient;
private readonly IDsUserTokenInfoService _dsUserTokenInfoService;
///
///
///
///
///
///
///
///
///
///
///
///
///
public ConvergenceMediaController(IMapper mapper, IMediator mediator,
ICapPublisher capPublisher,
IChannelConfigurationManager channelConfigurationManager,
IRepository dataOrderRepository,
IRepository dataOrderWorkFlowRepository,
IRepository dsReceiveMediaDataRepository,
IRepository bulletinRepository,
FwClient fwClient,
IDsUserTokenInfoService dsUserTokenInfoService)
{
_mapper = mapper;
_mediator = mediator;
_capPublisher = capPublisher;
_channelConfigurationManager = channelConfigurationManager;
_dataOrderRepository = dataOrderRepository;
_dataOrderWorkFlowRepository = dataOrderWorkFlowRepository;
_dsReceiveMediaDataRepository = dsReceiveMediaDataRepository;
_bulletinRepository = bulletinRepository;
_fwClient = fwClient;
_dsUserTokenInfoService = dsUserTokenInfoService;
}
#endregion
///
/// 2.1融媒体写信
///
///
///
[HttpPost("WriteOrder")]
[AllowAnonymous]
public async Task WriteOrder([FromForm] MediaDataReceiveDto mediaDataReceiveDto)
{
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(mediaDataReceiveDto.Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List responseDtos = new()
{
new WriteOrderResponseDto() { AcceptCode = "", AcceptPwd = "", msg = "密钥错误", Code = "-900" }
};
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Failed(responseDtos, "0", "密钥错误"));
}
//验证数据
string strResult = mediaDataReceiveDto.Validate();
if (!string.IsNullOrEmpty(strResult))
{
List responseDtos = new()
{
new WriteOrderResponseDto() { AcceptCode = "", AcceptPwd = "", msg = strResult, Code = "0" }
};
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Failed(responseDtos, "0", description: strResult));
}
//写入原始数据
DsReceiveMediaData dsReceiveMediaData = new()
{
ServiceInterface = "WriteOrder",
PlatformsName = accountDto.PlatformSourceName,
ReceiveData = System.Text.Json.JsonSerializer.Serialize(mediaDataReceiveDto)
};
dsReceiveMediaData.Id = await _dsReceiveMediaDataRepository.AddAsync(dsReceiveMediaData, HttpContext.RequestAborted);
AddOrderDto data = new()
{
Title = mediaDataReceiveDto.Title,
FromName = mediaDataReceiveDto.LinkName,
Contact = mediaDataReceiveDto.Mobile,
FullAddress = mediaDataReceiveDto.Address,
Content = mediaDataReceiveDto.Content,
IsSecret = mediaDataReceiveDto.Secrecy == 0 ? false : true,
Source = (Hotline.Share.Enums.Order.ESource)Enum.Parse(typeof(Hotline.Share.Enums.Order.ESource), accountDto.PlatformSource),
FromGender = mediaDataReceiveDto.Gender switch
{
"1" => Hotline.Share.Enums.Order.EGender.Male,
"2" => Hotline.Share.Enums.Order.EGender.Female,
_ => Hotline.Share.Enums.Order.EGender.Unknown,
},
IdentityType = Hotline.Share.Enums.Order.EIdentityType.Citizen,
Transpond = false,
IsEnforcementOrder = false,
ExternalId = Guid.NewGuid().ToString()
};
switch (accountDto.PlatformSource)
{
case "ConvergenceMedia":
data.SourceChannel = "宜宾融媒体";
data.SourceChannelCode = "YBRMT";
break;
case "IYIBIN":
data.SourceChannel = "i宜宾";
data.SourceChannelCode = "IYB";
break;
default:
break;
}
switch (mediaDataReceiveDto.PurTypeID)
{
case 17:
data.AcceptType = "咨询";
data.AcceptTypeCode = "10";
break;
case 18:
data.AcceptType = "举报";
data.AcceptTypeCode = "30";
break;
case 19:
data.AcceptType = "投诉";
data.AcceptTypeCode = "35";
break;
case 20:
data.AcceptType = "求助";
data.AcceptTypeCode = "20";
break;
case 21:
data.AcceptType = "建议";
data.AcceptTypeCode = "15";
break;
case 25:
data.AcceptType = "其他";
data.AcceptTypeCode = "40";
break;
default:
data.AcceptType = "其他";
data.AcceptTypeCode = "40";
break;
}
string areaName = "";
switch (mediaDataReceiveDto.AreaID)
{
case 2:
data.AreaCode = "511504"; areaName = "叙州区";
break;
case 3:
data.AreaCode = "511503"; areaName = "翠屏区";
break;
case 4:
data.AreaCode = "511504"; areaName = "南溪区";
break;
case 5:
data.AreaCode = "511524"; areaName = "长宁县";
break;
case 6:
data.AreaCode = "511528"; areaName = "兴文县";
break;
case 7:
data.AreaCode = "511526"; areaName = "珙县";
break;
case 8:
data.AreaCode = "511525"; areaName = "高县";
break;
case 9:
data.AreaCode = "511527"; areaName = "筠连县";
break;
case 10:
data.AreaCode = "511523"; areaName = "江安县";
break;
case 11:
data.AreaCode = "511529"; areaName = "屏山县";
break;
case 12:
data.AreaCode = "511504"; areaName = "叙州区";
break;
default:
break;
}
data.Address = "四川省宜宾市" + areaName;
//调用工单创建接口
var result = await _fwClient.RequestNoTokenAsync("api/v1/Order/add-anonymous", "Post", System.Text.Json.JsonSerializer.Serialize(data));
if (result != null && result.code == 0)
{
dsReceiveMediaData.ExternalId = result.result.id;
dsReceiveMediaData.OrderCode = result.result.no;
await _dsReceiveMediaDataRepository.UpdateAsync(dsReceiveMediaData, HttpContext.RequestAborted);
List responseDtos = new()
{
new WriteOrderResponseDto() { AcceptCode = result.result.no, AcceptPwd = result.result.password, msg = "写信成功", Code = "1" }
};
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Success(responseDtos, "您已成功提交数据!"));
}
else
{
List responseDtos = new()
{
new WriteOrderResponseDto() { AcceptCode = "", AcceptPwd = "", msg = "接口调用失败", Code = "0" }
};
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Failed(responseDtos, "0", description: "接口调用失败!"));
}
}
///
/// 2.2工单列表
///
///
///
[HttpPost("GetOrderByList")]
[AllowAnonymous]
public async Task GetOrderByList([FromForm] GetOrderMediaReceiveDto dto)
{
//密钥验证
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(dto.Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List> convergenceMediaDes = new() {
new()
{
msg = "密钥错误",
code = "-900",
data = ""
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>>.Failed(convergenceMediaDes, "0", "失败"));
}
//数据处理
string AcceptTypeCode = "";
AcceptTypeCode = dto.PurTypeID switch
{
17 => "10",
18 => "30",
19 => "35",
20 => "20",
21 => "15",
25 => "40",
_ => "",
};
//数据查询
RefAsync total = 0;
var items = await _dataOrderRepository
.Queryable()
//.Where(p => p.Source == Hotline.Share.Enums.Order.ESource.ConvergenceMedia.ToString())
.Where(p => p.Source == accountDto.PlatformSource)
.WhereIF(!string.IsNullOrEmpty(dto.AcceptCode), p => p.OrderNo.Contains(dto.AcceptCode))
.WhereIF(!string.IsNullOrEmpty(dto.Title), p => p.Title.Contains(dto.Title))
.WhereIF(!string.IsNullOrEmpty(dto.Mobile), p => p.Contact.Contains(dto.Mobile))
.WhereIF(!string.IsNullOrEmpty(AcceptTypeCode), p => p.CaseTypeCode == AcceptTypeCode)
.WhereIF(!string.IsNullOrEmpty(dto.StartDate), p => p.CaseDate >= Convert.ToDateTime(dto.StartDate))
.WhereIF(!string.IsNullOrEmpty(dto.EndDate), p => p.CaseDate < Convert.ToDateTime(dto.EndDate).AddDays(1))
.Select(it => new
{
FlowID = it.Id,
RowID = SqlFunc.RowNumber($"{it.CaseDate} desc "),
Code = it.OrderNo,
it.Title,
AddDate = it.CaseDate,
FromName = it.CaseSource,
PurTypeName = it.CaseType,
ResultState = it.HandleState
})
.ToPageListAsync(dto.CurrentPage, dto.PageSize, total);
//计算总页数
int nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / dto.PageSize));
List returnData = new()
{
//处理返回
new()
{
PageCount = nPageCount,
data = _mapper.Map>(items)
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Success(returnData, "成功"));
}
///
/// 2.3 工单查询
///
///
[HttpPost("GetOrderDetail")]
[AllowAnonymous]
public async Task GetOrderDetail([FromForm] MediaOrderDetailReceiveDto dto)
{
//验证密钥
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(dto.Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List> convergenceMediaDes = new() {
new()
{
msg = "密钥错误",
code = "-900",
data = ""
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>>.Failed(convergenceMediaDes, "0", "失败"));
}
//验证数据
string strResult = dto.Validate();
if (!string.IsNullOrEmpty(strResult))
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Failed(ReturnData.ReturnDataInfo(strResult), "0", "失败"));
//查询数据
var items = await _dataOrderRepository
.Queryable()
.Where(p => p.OrderNo == dto.AcceptCode)
.Where(p => p.Password == dto.AcceptPwd)
.Where(p => p.Source == accountDto.PlatformSource)
.Select(it => new
{
FlowID = it.Id,
FlowCode = it.OrderNo,
FlowTitle = it.Title,
FlowFromName = it.CaseSource,
FlowPurTypeName = it.CaseType,
FlowConTypeName = it.HotspotName,
FlowAddDate = it.CaseDate,
FlowLKName = it.FromName,
FlowBMName = it.ActualHandleOrgName,
FlowRSFlagName = it.HandleState,
FlowContent = it.Content,
FlowResult = it.ActualOpinion,
})
.ToListAsync();
if (items == null || items.Count == 0)
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Failed(ReturnData.ReturnDataInfo("编号、密码错误!"), "0", "失败"));
else
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Success(_mapper.Map>(items), "成功"));
}
///
/// 2.4 今日受理分类统计
///
///
///
[HttpPost("GetPurTypeReport")]
[AllowAnonymous]
public async Task GetPurTypeReport([FromForm] string Code)
{
//验证密钥
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List> convergenceMediaDes = new() {
new()
{
msg = "密钥错误",
code = "-900",
data = ""
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>>.Failed(convergenceMediaDes, "0", "失败"));
}
//数据查询
var list = await _dataOrderRepository.Queryable()
.Where(p => p.CaseDate >= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")))
.Where(p => p.CaseDate <= Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")))
.Select(it => new
{
it.CaseType,
it.CaseTypeCode
})
.MergeTable()//将查询出来的结果合并成一个新表
.GroupBy(it => new { it.CaseType, it.CaseTypeCode })//对新表进行分组
.Select(it => new
{
PurTypeName = it.CaseType,
Count = SqlFunc.AggregateCount(it.CaseTypeCode)
})
.ToListAsync();
var listData = _mapper.Map>(list);
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Success(listData, "成功"));
}
///
/// 2.5 答复公开
///
///
///
[HttpPost("GetOrderByListOpen")]
[AllowAnonymous]
public async Task GetOrderByListOpen([FromForm] GetOrderMediaReceiveOpenDto dto)
{
//密钥验证
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(dto.Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List> convergenceMediaDes = new() {
new()
{
msg = "密钥错误",
code = "-900",
data = ""
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>>.Failed(convergenceMediaDes, "0", "失败"));
}
//数据处理
string AcceptTypeCode = "";
AcceptTypeCode = (object)dto.PurTypeID switch
{
17 => "10",
18 => "30",
19 => "35",
20 => "20",
21 => "15",
25 => "40",
_ => "",
};
//查询数据
RefAsync total = 0;
var items = await _dataOrderRepository
.Queryable()
.Where(p => p.IsPublish == EDsPublishState.Open)
.WhereIF(!string.IsNullOrEmpty(dto.Title), p => p.Title.Contains(dto.Title))
.WhereIF(!string.IsNullOrEmpty(AcceptTypeCode), p => p.CaseTypeCode == AcceptTypeCode)
.WhereIF(!string.IsNullOrEmpty(dto.StartDate), p => p.CaseDate >= Convert.ToDateTime(dto.StartDate).AddDays(-30))
.WhereIF(!string.IsNullOrEmpty(dto.EndDate), p => p.CaseDate < Convert.ToDateTime(dto.EndDate).AddDays(1))
.Select(it => new
{
FlowID = it.Id,
RowID = SqlFunc.RowNumber($"{it.CaseDate} desc "),
Code = it.OrderNo,
it.Title,
AddDate = it.CaseDate,
FromName = it.CaseSource,
PurTypeName = it.CaseType,
ResultState = it.HandleState
})
.ToPageListAsync(dto.CurrentPage, dto.PageSize, total);
//计算总页数
int nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / dto.PageSize));
//返回数据处理
List dataDto = new()
{
new(){ PageCount = nPageCount,
data = _mapper.Map>(items) }
};
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Success(dataDto, "成功"));
}
///
/// 2.6 办理明细
///
///
///
[HttpPost("GetOrderByRun")]
[AllowAnonymous]
public async Task GetOrderByRun([FromForm] MediaOrderDetailReceiveDto dto)
{
//密钥验证
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(dto.Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List> convergenceMediaDes = new() {
new()
{
msg = "密钥错误",
code = "-900",
data = ""
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>>.Failed(convergenceMediaDes, "0", "失败"));
}
//验证数据
string strResult = dto.Validate();
if (!string.IsNullOrEmpty(strResult))
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Failed(ReturnData.ReturnDataInfo(strResult), "0", "失败"));
//验证信件是否存在
var data = await _dataOrderRepository.GetAsync(p => p.OrderNo == dto.AcceptCode && p.Password == dto.AcceptPwd && p.Source == accountDto.PlatformSource, HttpContext.RequestAborted);
if (data == null)
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Failed(ReturnData.ReturnDataInfo("编号、密码错误!"), "0", "失败"));
//数据查询
var list = await _dataOrderWorkFlowRepository.Queryable()
.Where(p => p.OrderId == data.OrderId)
.Where(p => p.WorkflowId == data.WorkflowId)
.Select(it => new
{
BMName = it.HandlerOrgName,
TTime = it.StepExpiredTime,
DisposeDate = it.HandleTime
})
.ToListAsync();
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Success(_mapper.Map>(list), "成功"));
}
///
/// 2.1.3 上传附件
///
///
///
[HttpPost("WriteFiles")]
[AllowAnonymous]
public async Task WriteFiles([FromForm] IFormCollection formData)
{
string Code = formData["Code"];
string AcceptCode = formData["AcceptCode"];
string AcceptPwd = formData["AcceptPwd"];
//验证密钥
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List> convergenceMediaDes = new() {
new()
{
msg = "密钥错误",
code = "-900",
data = ""
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>>.Failed(convergenceMediaDes, "0", "失败"));
}
//验证数据
if (string.IsNullOrEmpty(AcceptCode) || string.IsNullOrEmpty(AcceptPwd))
return OpenResponse.Ok(ConvergenceMediaDeResponse.Failed("编号、密码不能为空!", "0", "失败"));
var dataRaw = await _dsReceiveMediaDataRepository.GetAsync(p => p.OrderCode == AcceptCode, HttpContext.RequestAborted);
if (dataRaw == null)
return OpenResponse.Ok(ConvergenceMediaDeResponse.Failed("编号、密码错误!", "0", "失败"));
IFormFileCollection files = formData.Files;//等价于Request.Form.Files
List fileDtos = new();
foreach (var item in files)
{
//这里需要上文件服务器上传
var businessFileDto = await SendFileData(item);
string strFileName = item.FileName;
string strSuffix = strFileName.LastIndexOf(".") > 0 ? strFileName.Substring(strFileName.LastIndexOf(".") + 1) : "";
string strSubFileName = strFileName.LastIndexOf(".") > 0 ? strFileName.Substring(0, strFileName.LastIndexOf(".")) : strFileName;
fileDtos.Add(new FileDto()
{
Name = strSubFileName,
Type = strSuffix,
Classify = "受理上传",
Additions = businessFileDto.id,
Path = businessFileDto.path
});
}
UpdateOrderFilesDto updateOrderFiles = new()
{
Files = fileDtos,
Id = dataRaw.ExternalId,
OrderNo = dataRaw.OrderCode
};
//推送数据
var result = await _fwClient.RequestNoTokenAsync("api/v1/Order/update-orderfiles", "Post", System.Text.Json.JsonSerializer.Serialize(updateOrderFiles));
return OpenResponse.Ok(ConvergenceMediaDeResponse.Success("", "上传成功"));
}
///
/// 2.7 新闻列表
///
///
///
[HttpPost("GetNoticeListByPage")]
[AllowAnonymous]
public async Task GetNoticeListByPage([FromForm] GetNoticeReceiveDto dto)
{
//密钥验证
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(dto.Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List> convergenceMediaDes = new() {
new()
{
msg = "密钥错误",
code = "-900",
data = ""
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>>.Failed(convergenceMediaDes, "0", "失败"));
}
int nCurrentPage = 0, nPageSize = 0;
if (true == string.IsNullOrEmpty(dto.CurrentPage))
nCurrentPage = 1;
else
nCurrentPage = Convert.ToInt32(dto.CurrentPage);
if (true == string.IsNullOrEmpty(dto.PageSize))
nPageSize = 10;
else
nPageSize = Convert.ToInt32(dto.PageSize);
switch (dto.CType)
{
case "1":
case "5":
break;
case "6":
dto.CType = "4";
break;
default:
dto.CType = "4";
break;
}
RefAsync total = 0;
var items = await _bulletinRepository
.Queryable()
.Where(p => p.LoseEfficacyTime >= DateTime.Now)
.Where(p => p.BulletinTypeId == dto.CType)
.OrderByDescending(p => p.BulletinTime)
.Select(it => new
{
Page = SqlFunc.RowNumber($"{it.BulletinTime} desc "),
NoticeID = it.Id,
NoticeTypeName = it.BulletinTypeName,
NoticeTitle = it.Title,
NoticeBMName = it.SourceOrgName,
NoticeCreateDate = it.BulletinTime
})
.ToPageListAsync(nCurrentPage, nPageSize, total);
//计算总页数
int nPageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / nPageSize));
//处理返回
List dataDto = new()
{
new(){PageCount = nPageCount,
data = _mapper.Map>(items)}
};
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Success(dataDto, "成功"));
}
///
///2.8 获取详情,修改阅读次数
///
///
///
[AllowAnonymous]
[HttpPost("NoticeDetail")]
public async Task GetArticleDetails([FromForm] MediaArticleIdDto dto)
{
//密钥验证
var accountDto = await _dsUserTokenInfoService.CheckAccountAsync(dto.Code, HttpContext.RequestAborted);
if (accountDto is null || accountDto.IsCheckAccount == false)
{
List> convergenceMediaDes = new() {
new()
{
msg = "密钥错误",
code = "-900",
data = ""
} };
return OpenResponse.Ok(ConvergenceMediaDeResponse>>.Failed(convergenceMediaDes, "0", "失败"));
}
var data = await _bulletinRepository.GetAsync(p => p.Id == dto.NoticeID, HttpContext.RequestAborted);
MediaArticleDetailsDto detailsDto = new();
if (data != null)
{
data.ReadedNum = data.ReadedNum++;
await _bulletinRepository.UpdateAsync(data, HttpContext.RequestAborted);
detailsDto.NoticeID = data.Id;
detailsDto.NoticeTypeName = data.BulletinTypeName;
detailsDto.NoticeTitle = data.Title;
detailsDto.NoticeBMName = data.SourceOrgName;
detailsDto.NoticeCreateDate = data.BulletinTime;
detailsDto.NoticeRCount = data.ReadedNum;
detailsDto.NoticeContent = data.Content;
}
List dataDto = new() { detailsDto };
return OpenResponse.Ok(ConvergenceMediaDeResponse>.Success(dataDto, "成功"));
}
#region 私有方法-将文件转化为文件流
///
/// 将文件流上传到附件服务器
///
///
///
private async Task SendFileData(IFormFile file)
{
var businessFile = _channelConfigurationManager.GetConfigurationBusinessFile();
// 文件名称
string fileName = file.FileName;
// 文件内容字节数据
using var memoryStream = new MemoryStream();
await file.CopyToAsync(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
byte[] fileContentBytes = memoryStream.ToArray();
// 构造字典文件数据
// 接口参数名称为files
CFormUpload.FileParameter fileParameter = new CFormUpload.FileParameter("fileData", fileContentBytes, fileName, "multipart/form-data");
Dictionary dicParam = new()
{
{ fileName, fileParameter }
};
string url = string.Format("{0}{1}?source={2}", businessFile.BaseUrl, businessFile.UploadUrlAddress, businessFile.Source);
var result = CFormUpload.MultipartFormDataPost(url, null, dicParam, "");
if (!string.IsNullOrEmpty(result))
{
var resultData = Newtonsoft.Json.JsonConvert.DeserializeObject(result);
if (resultData != null && resultData.code == 0)
{
return resultData.result;
}
}
return new BusinessFileDto();
}
#endregion
}
}