Files
KJD/Work/Store.Api/CloudGoodsApi.cs
T
2026-11-04 18:39:51 +08:00

56 lines
2.8 KiB
C#

using AllBase.Model.Result;
using CsharpHttpHelper;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading.Tasks;
using Work.Services;
namespace Work.Store.Api;
/// <summary>云商品接口,沿用服务端不带版本号的路由。</summary>
public sealed class CloudGoodsApi
{
private readonly ApiTransport _transport;
public CloudGoodsApi(ApiTransport transport)
=> _transport = transport ?? throw new ArgumentNullException(nameof(transport));
public Task<PageData<CloudGoods>> GetGoods(GoodsSearchRequest request)
=> Task.Run(() => _transport.GetRequired<PageData<CloudGoods>>("CloudGoods/SearchGoods", MethodType.Post, request));
public string GetGoodsDetail(long goodsId)
=> _transport.GetRequired<string>("CloudGoods/GetGoodsRawData", MethodType.Post,
query: new Dictionary<string, string> { ["goodsId"] = goodsId.ToString(CultureInfo.InvariantCulture) });
public Task<List<ReportGoodsViolationResult>> ReportViolations(List<ReportGoodsViolationItem> items)
=> Task.Run(() => _transport.GetRequired<List<ReportGoodsViolationResult>>("CloudGoods/ReportViolations", MethodType.Post, items,
timeoutMilliseconds: 5000));
public List<GoodsViolationStatus> GetViolationStatus(List<long> goodsIds)
=> _transport.GetRequired<List<GoodsViolationStatus>>("CloudGoods/GetViolationStatus", MethodType.Post, goodsIds,
timeoutMilliseconds: 5000);
public Task RecordViolationLogs(IReadOnlyList<RecordViolationLogRequest> requests)
=> Task.Run(() => _transport.Send<object>("CloudGoods/RecordViolationLog", MethodType.Post, requests,
timeoutMilliseconds: 5000));
public Task<List<CloudGoodsService.ViolationReason>> GetViolationReasons()
=> Task.Run(() => _transport.GetRequired<List<CloudGoodsService.ViolationReason>>("CloudGoods/GetViolationReasons", MethodType.Get));
public Task<List<GoodsViolationLogEntity>> GetViolationLogs(GetViolationLogsRequest request)
=> Task.Run(() => _transport.GetRequired<List<GoodsViolationLogEntity>>("CloudGoods/GetViolationLogs", MethodType.Post, request,
timeoutMilliseconds: 5000));
public Task<PageData<CloudGoods>> SearchFavorites(UserFavoritesGoodsSearchRequest request)
=> Task.Run(() => _transport.GetRequired<PageData<CloudGoods>>("CloudGoods/SearchFavorites", MethodType.Post, request));
public Task<int> Favorite(string userName, List<long> goodsIds)
=> Task.Run(() => _transport.Send<int>("CloudGoods/AddFavorite", MethodType.Post,
new { UserName = userName, GoodsIds = goodsIds }));
public Task<int> RemoveFavorites(string userName, List<long> goodsIds)
=> Task.Run(() => _transport.Send<int>("CloudGoods/RemoveFavorites", MethodType.Post,
new { UserName = userName, GoodsIds = goodsIds }));
}