using AlibabaSDK.Api; using AlibabaSDK.Domain; using AlibabaSDK.Request; using CommonUtil; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Operater.DAL; using Operater.DbModel; using Operater.DTO.System; using Operater.Service; using SqlSugar; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Threading.Tasks; namespace Api.Operater.Controllers { [Route(TopConstants.API_ROUTE)] public class ProductInfoController : BaseController { private readonly ILoginUserInfoService _loginUserInfoService; public ProductInfoController(ILoginUserInfoService loginUserInfoService) { _loginUserInfoService = loginUserInfoService; } /// /// 精选货源商品查询标获取 /// /// [HttpPost] public IActionResult GetProRules() { var userInfo = _loginUserInfoService.GetUserInfo(); PFTProductSearchTagListRequest request = new PFTProductSearchTagListRequest(); var response = AliabaClient.Execute(request, userInfo.AlibabaToken); PFTProductSearchTagListDomainItem item = new PFTProductSearchTagListDomainItem() { ruleId = 0, ruleName = "不限" }; List list = new List(); list.Add(item); list.AddRange(response.result.result); return Success(list); } /// /// 获取精品货源商品列表 /// /// /// [HttpPost] public IActionResult GetProductList([FromBody] GetProductListRequest request) { var userInfo = _loginUserInfoService.GetUserInfo(); PFTProductListRequest proReq = new PFTProductListRequest() { pageNo = request.PageNo, pageSize = request.PageSize }; if (!request.KeyWords.IsNullOrEmpty()) { proReq.keywords = request.KeyWords; } if (!request.RuleId.IsNullOrEmpty()) { proReq.ruleId = request.RuleId; } if (request.CategoryId > 0) { proReq.categoryId = request.CategoryId.ToString(); } var response = AliabaClient.Execute(proReq, userInfo.AlibabaToken); if (!response.result.success) { return Success(new List(), request.PageNo, request.PageSize, 0); } //查询已铺货的数据 var hasRelate = new DistributionRelationDAL().ListGet(t => t.ReStatus == 1); foreach (var item in response.result.result.resultList) { if (!hasRelate.IsNull() && hasRelate.Count > 0) { item.ReType = hasRelate.Any(t => t.SourceProduct == item.itemId.ToString()); } if (item.serviceList.IsNull()) { continue; } item.serviceList = item.serviceList.OrderBy(t => t.name.Length).ToList(); } return Success(response.result.result.resultList, request.PageNo, request.PageSize, response.result.result.totalRecords); } /// /// 获取商品详情 /// /// /// [HttpPost] public IActionResult GetProductDetail([FromBody] GetProductDetailRequest request) { var userInfo = _loginUserInfoService.GetUserInfo(); PFTProductDetailRequest req = new PFTProductDetailRequest() { offerIds = request.OfferIds }; var response = AliabaClient.Execute(req, userInfo.AlibabaToken); if (response.IsNull() || !response.result.success) { return Error("获取商品详情失败:" + response.result.message); } if (response.result.result[0].productInfo.skuInfos.IsNull()) { response.result.result[0].productInfo.skuInfos = new List(); } foreach (var item in response.result.result[0].productInfo.skuInfos) { var list = item.attributes.Where(t => !t.skuImageUrl.IsNullOrEmpty()).ToList(); if (!list.IsNull() && list.Count > 0) { item.attributes[0].skuImageUrl = "https://cbu01.alicdn.com/img/" + list[0].skuImageUrl; } } return Success(response.result.result[0].productInfo); } /// /// 获取商品类目 /// /// [HttpPost] public IActionResult GetCategoryList([FromBody] GetCategoryListRequest request) { var userInfo = _loginUserInfoService.GetUserInfo(); List list = new List(); var cateList = new CategoryDAL().ListGet(t => t.Parentid == request.CateId); Category nolimit = new Category() { Id = request.CateId, Name = "不限", Parentid = request.CateId }; list.Add(nolimit); if (!cateList.IsNull() && cateList.Count > 0) { list.AddRange(cateList); } return Success(list); } /// /// 获取代发方案商品列表 /// /// /// [HttpPost] public IActionResult GetDaiFaProductList([FromBody] GetDaiFaProductListRequset request) { var expression = Expressionable.Create().AndIF(!request.Title.IsNull(), t => t.Subject.Contains(request.Title)) .ToExpression(); int totalCount = new DaifaProductDAL().Count(expression); if (totalCount == 0) { return Success(new List(), request.PageNo, request.PageSize, 0); } string where = ""; if (!request.Title.IsNullOrEmpty()) { where = $" where subject like '%{request.Title}%' "; } string searchSql = $"select * from daifa_product {where} order by is_distribute asc,create_time desc limit {request.PageSize} offset {(request.PageNo - 1) * request.PageSize}"; DataTable dt = new DistributionHistoryDAL().GetDataBySql(searchSql); return Success(dt, request.PageNo, request.PageSize, totalCount); } /// /// 铺货单列表获取 /// /// [HttpPost] public IActionResult DistributebillGet() { var userInfo = _loginUserInfoService.GetUserInfo(); //接口获取可铺货单商品id AlibabaDistributebillListRequest billListRequest = new AlibabaDistributebillListRequest(); var billListResponse = AliabaClient.Execute(billListRequest, userInfo.AlibabaToken); if (billListResponse.IsNull() || !billListResponse.Success) { return Error("接口获取可铺货单商品id错误:" + (billListResponse.IsNull() ? "null" : billListResponse.ErrorMsg)); } return Success(billListResponse.result.IsNull() ? 0 : billListResponse.result.offerIds.Count); } /// /// 清空铺货单 /// /// [HttpPost] public IActionResult ClearDistributebill() { var task = new DaifaTaskDAL().ListGet(t => t.TaskStatus != 2); if (!task.IsNull() && task.Count > 0) { return Error("当前有任务执行,请稍后操作清空!"); } var userInfo = _loginUserInfoService.GetUserInfo(); //现获取现有铺货单 AlibabaDistributebillListRequest billListRequest = new AlibabaDistributebillListRequest(); var billListResponse = AliabaClient.Execute(billListRequest, userInfo.AlibabaToken); if (!billListResponse.IsNull() && billListResponse.Success && !billListResponse.result.IsNull() && !billListResponse.result.offerIds.IsNull() && billListResponse.result.offerIds.Count > 0) { LogUtil.Info(string.Join(',', billListResponse.result.offerIds), "删除前记录铺货单"); } FenXiaoDistributebillRemoveallRequest clearReq = new FenXiaoDistributebillRemoveallRequest(); var clearRsp = AliabaClient.Execute(clearReq, userInfo.AlibabaToken); if (clearRsp.IsNull() || !clearRsp.Success) { return Error("接口清空铺货单错误:" + (clearRsp.IsNull() ? "null" : clearRsp.ErrorMsg)); } return Success(true); } [HttpPost] public IActionResult GetDaiFaDetail([FromBody] GetDaiFaDetailRequset request) { var userInfo = _loginUserInfoService.GetUserInfo(); //获取商品详情 FenXiaoProductInfoGetRequest proReq = new FenXiaoProductInfoGetRequest() { offerId = long.Parse(request.ProductId) }; var proResponse = AliabaClient.Execute(proReq, userInfo.AlibabaToken); if (proResponse.IsNull() || !proResponse.Success) { return Error("获取商品详情错误:" + (proResponse.IsNull() ? "null" : proResponse.ErrorMsg)); } return Success(proResponse.productInfo); } } }