55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
using AllBase;
|
|
using AllBase.Extension;
|
|
using NaiBa.Util.Extension;
|
|
using AllBase.Helper;
|
|
using AllBase.Model.Config;
|
|
using AllBase.Model.DBModel;
|
|
using AllBase.Model.Param.WXParam;
|
|
using AllBase.Model.Result;
|
|
using AllBase.Model.Result.PDDResult;
|
|
using AllBase.Model.Result.WXResult;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using Store.Product.Models.PublishParameters.Wx;
|
|
using Store.Product.Publish;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Drawing.Drawing2D;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Work;
|
|
|
|
namespace Store.Product.Publish.Steps.Wx;
|
|
/// <summary>
|
|
/// 由 WXDBProdUploadForm.UploadProduct 的“裂变标题”区段迁移。
|
|
/// TODO(迁移): 原区段中的 TEMUKJD/WXUpload/窗体服务引用需按 Store.Product 运行时适配逐项核对。
|
|
/// </summary>
|
|
public sealed class FissionTitleStep : WxProductPublishStepBase
|
|
{
|
|
public override string Description => "裂变标题";
|
|
|
|
protected override Task<bool> CanExecuteProvider(WXPublishContext context, CancellationToken token)
|
|
{
|
|
return Task.FromResult(CurrentUser.IsAuthorized("裂变调试") && context.Parameters.IsFissionTitle);
|
|
}
|
|
protected override Task ExecuteProvider(WXPublishContext context, CancellationToken cancellationToken)
|
|
{
|
|
var titles = context.Parameters.FissionTitles.Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
|
if (titles.Count == 0)
|
|
{
|
|
throw new Exception("裂变标题数量不足,将暂停上传");
|
|
}
|
|
context.Product.Title = titles[0];
|
|
context.Parameters.IsFissionTitle = true;
|
|
titles.RemoveAt(0);
|
|
context.Parameters.FissionTitles = string.Join("\r\n", titles);
|
|
context.Progress.Report("标题裂变成功,更改为:" + context.Product.Title);
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|