Files
StoreWeb/Modules/Store.Shops/Dtos/ShopBusinessRequests.cs
2026-10-29 11:34:35 +08:00

285 lines
10 KiB
C#

using System.ComponentModel.DataAnnotations;
namespace Store.Shops.Dtos;
/// <summary>分页与统计选项。</summary>
public class PageRequest
{
/// <summary>页码,从1开始。</summary>
public int Page { get; set; } = 1;
/// <summary>每页数量,上限500。</summary>
public int PageSize { get; set; } = 50;
/// <summary>是否跳过总数统计,跳过时总数为-1。</summary>
public bool NotCount { get; set; }
}
/// <summary>微信店铺查询。</summary>
public class ShopQueryRequest : ShopSearchRequest
{
/// <summary>是否补充ERP店铺和商户编号。</summary>
public bool IsGetErpShopId { get; set; }
/// <summary>兼容旧调用的标志,到期信息始终返回。</summary>
public bool IsShowExpire { get; set; }
}
/// <summary>按登录名定位店铺。</summary>
public class LoginRequest
{
/// <summary>店铺登录名。</summary>
[Required(ErrorMessage = "店铺登录名不能为空")]
public string LoginName { get; set; } = "";
/// <summary>可选原店铺ID。</summary>
public string? ShopId { get; set; }
/// <summary>管理员操作的目标账号,普通调用忽略。</summary>
public string? ShopUserName { get; set; }
}
/// <summary>微信店铺新增或部分更新;null保留,空串清空。</summary>
public class ShopSaveRequest : LoginRequest
{
/// <summary>登录密码。</summary>
public string? LoginPass { get; set; }
/// <summary>登录Cookie。</summary>
public string? Cookie { get; set; }
/// <summary>第二组Cookie。</summary>
public string? Cookie2 { get; set; }
/// <summary>风控参数。</summary>
public string? AntiContents { get; set; }
/// <summary>更新后的店铺ID。</summary>
public string? NewShopId { get; set; }
/// <summary>店铺名称。</summary>
public string? ShopAccount { get; set; }
/// <summary>逗号分隔的直属子账号。</summary>
public string? SubUserName { get; set; }
/// <summary>店铺分组。</summary>
public string? GroupName { get; set; }
/// <summary>备注。</summary>
public string? Notes { get; set; }
/// <summary>登录状态。</summary>
public string? LoginStatus { get; set; }
}
/// <summary>同登录名下授权店铺的登录状态更新。</summary>
public class CookieRequest
{
/// <summary>店铺登录名。</summary>
[Required(ErrorMessage = "店铺登录名不能为空")]
public string LoginName { get; set; } = "";
/// <summary>登录Cookie。</summary>
public string? Cookie { get; set; }
/// <summary>第二组Cookie。</summary>
public string? Cookie2 { get; set; }
/// <summary>登录状态。</summary>
public string? LoginStatus { get; set; }
/// <summary>第二组登录状态。</summary>
public string? LoginStatus2 { get; set; }
/// <summary>微信OpenId。</summary>
public string? Openid { get; set; }
/// <summary>拼多多用户ID。</summary>
public string? PddId { get; set; }
}
/// <summary>店铺ID批量请求。</summary>
public class ShopIdsRequest
{
/// <summary>店铺ID数组。</summary>
[Required(ErrorMessage = "店铺ID数组不能为空")]
public string[] ShopIds { get; set; } = [];
}
/// <summary>设置共享上传额度。</summary>
public class QuotaRequest : ShopIdsRequest
{
/// <summary>剩余额度,不得小于0。</summary>
public int RemainCount { get; set; }
}
/// <summary>批量分配选品操作员。</summary>
public class AssignRequest
{
/// <summary>记录ID数组,优先于登录名。</summary>
public int[]? DbIds { get; set; }
/// <summary>店铺登录名数组。</summary>
public string[]? ShopLoginNames { get; set; }
/// <summary>操作员账号,空串表示解除分配。</summary>
[Required(AllowEmptyStrings = true, ErrorMessage = "操作员账号不能为null,解除分配请传空串")]
public string OperateSubSaName { get; set; } = "";
}
/// <summary>查询授权店铺相关ERP商户。</summary>
public class ErpRequest : PageRequest
{
/// <summary>可选店铺ID。</summary>
public string? ShopId { get; set; }
/// <summary>公司账号ID。</summary>
public long? CorporateAccountUserId { get; set; }
/// <summary>管理账号ID。</summary>
public long? ManageUserId { get; set; }
}
/// <summary>维护当前用户的店铺默认地址。</summary>
public class AddressRequest : ShopIdRequest
{
/// <summary>省份。</summary>
[Required(ErrorMessage = "省份不能为空")]
public string ProvinceName { get; set; } = "";
/// <summary>城市。</summary>
[Required(ErrorMessage = "城市不能为空")]
public string CityName { get; set; } = "";
/// <summary>区县。</summary>
[Required(ErrorMessage = "区县不能为空")]
public string CountyName { get; set; } = "";
/// <summary>详细地址。</summary>
[Required(ErrorMessage = "详细地址不能为空")]
public string DetailInfo { get; set; } = "";
/// <summary>收件人电话。</summary>
[Required(ErrorMessage = "收件人电话不能为空")]
public string TelNumber { get; set; } = "";
/// <summary>收件人姓名。</summary>
[Required(ErrorMessage = "收件人姓名不能为空")]
public string Receiver { get; set; } = "";
}
/// <summary>查询本人默认地址。</summary>
public class AddressSearchRequest : PageRequest
{
/// <summary>可选店铺ID数组。</summary>
public string[]? ShopIds { get; set; }
}
/// <summary>保存订单解密地址。</summary>
public class OrderAddressRequest : ShopIdRequest
{
/// <summary>订单ID。</summary>
[Required(ErrorMessage = "订单ID不能为空")]
public string OrderId { get; set; } = "";
/// <summary>解密地址内容。</summary>
[Required(ErrorMessage = "解密地址内容不能为空")]
public string OrderAddress { get; set; } = "";
}
/// <summary>按订单查询授权店铺的数据。</summary>
public class OrderSearchRequest : PageRequest
{
/// <summary>订单ID数组,地址查询必填。</summary>
public string[]? OrderIds { get; set; }
}
/// <summary>维护主账号共享采购备注。</summary>
public class NoteRequest
{
/// <summary>商品编码。</summary>
[Required(ErrorMessage = "商品编码不能为空")]
public string SpuCode { get; set; } = "";
/// <summary>采购备注。</summary>
[Required(ErrorMessage = "采购备注不能为空")]
public string BuyUrlNotes { get; set; } = "";
/// <summary>可选目标主账号,必须匹配当前主账号。</summary>
public string? MainUserName { get; set; }
}
/// <summary>查询主账号采购备注。</summary>
public class NoteSearchRequest : PageRequest
{
/// <summary>商品编码数组。</summary>
[Required(ErrorMessage = "商品编码数组不能为空")]
public string[] SpuCodes { get; set; } = [];
/// <summary>可选目标主账号。</summary>
public string? MainUserName { get; set; }
}
/// <summary>微信侧拼多多店铺资料。</summary>
public class PddSaveRequest : ShopSaveRequest
{
/// <summary>拼多多商城ID。</summary>
public string? MallId { get; set; }
}
/// <summary>查询运单库存。</summary>
public class WaybillSearchRequest : OrderSearchRequest
{
/// <summary>状态数组:0未使用、1预占、2已使用。</summary>
public int[]? Status { get; set; }
}
/// <summary>新增本人运单库存。</summary>
public class WaybillAddRequest
{
/// <summary>物流公司编码。</summary>
[Required(ErrorMessage = "物流公司编码不能为空")]
public string DeliveryId { get; set; } = "";
/// <summary>物流公司名称。</summary>
[Required(ErrorMessage = "物流公司名称不能为空")]
public string DeliveryName { get; set; } = "";
/// <summary>运单号。</summary>
[Required(ErrorMessage = "运单号不能为空")]
public string WaybillId { get; set; } = "";
/// <summary>预绑定订单ID。</summary>
public string? BindOrderId { get; set; }
/// <summary>揽收时间,与绑定订单至少填写一个。</summary>
public DateTime? WaybillPickupTime { get; set; }
}
/// <summary>删除未使用运单。</summary>
public class WaybillDeleteRequest
{
/// <summary>运单号数组。</summary>
[Required(ErrorMessage = "运单号数组不能为空")]
public string[] WaybillIds { get; set; } = [];
}
/// <summary>为授权店铺订单分配运单。</summary>
public class WaybillSelectRequest : ShopIdRequest
{
/// <summary>订单ID。</summary>
[Required(ErrorMessage = "订单ID不能为空")]
public string OrderId { get; set; } = "";
/// <summary>订单时间,按次日揽收范围选择。</summary>
public DateTime? OrderTime { get; set; }
}
/// <summary>确认使用或释放预占运单。</summary>
public class WaybillUseRequest : WaybillSelectRequest
{
/// <summary>运单号。</summary>
[Required(ErrorMessage = "运单号不能为空")]
public string WaybillId { get; set; } = "";
/// <summary>为true时释放,仅允许预占状态释放。</summary>
public bool IsRollback { get; set; }
}
/// <summary>保存授权订单的物流优化结果。</summary>
public class OptimizeResultRequest : ShopIdRequest
{
/// <summary>订单ID。</summary>
[Required(ErrorMessage = "订单ID不能为空")]
public string OrderId { get; set; } = "";
/// <summary>补发结果。</summary>
[Required(ErrorMessage = "补发结果不能为空")]
public string OptimizeRst { get; set; } = "";
/// <summary>运单号,null保留。</summary>
public string? WaybillId { get; set; }
/// <summary>物流公司名称,null保留。</summary>
public string? DeliveryName { get; set; }
}
/// <summary>保存订单物流备注。</summary>
public class OptimizeRemarkRequest : ShopIdRequest
{
/// <summary>订单ID。</summary>
[Required(ErrorMessage = "订单ID不能为空")]
public string OrderId { get; set; } = "";
/// <summary>备注内容,空串可清空,null不允许。</summary>
[Required(AllowEmptyStrings = true, ErrorMessage = "备注不能为null,清空请传空串")]
public string Remark { get; set; } = null!;
}
/// <summary>读取共享微信令牌缓存,仅管理员可调用。</summary>
public class TokenRequest
{
/// <summary>缓存分组ID,默认1。</summary>
public int DbId { get; set; } = 1;
}