using AlibabaSDK.Api;
|
using AlibabaSDK.Request;
|
using CommonUtil;
|
using CommonUtil.RabbitMQ;
|
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.Linq;
|
using System.Threading.Tasks;
|
|
namespace Api.Operater.Controllers
|
{
|
[Route(TopConstants.API_ROUTE)]
|
public class ProductManageController : BaseController
|
{
|
public IItemDistributionService _itemDistributionService;
|
public ILoginUserInfoService _iloginUserInfoService;
|
public ProductManageController(IItemDistributionService itemDistributionService, ILoginUserInfoService loginUserInfoService)
|
{
|
_itemDistributionService = itemDistributionService;
|
_iloginUserInfoService = loginUserInfoService;
|
}
|
/// <summary>
|
/// 一键铺货/重新铺货
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult ProductDistribution([FromBody] ProductDistributionRequest request)
|
{
|
bool res = _itemDistributionService.AddDistributionTask(request).Result;
|
return Success(res);
|
}
|
|
/// <summary>
|
/// 查看铺货日志
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetDistributionHistory([FromBody] GetDistributionHistoryRequest request)
|
{
|
var expression = Expressionable.Create<DistributionHistory>().And(t => t.IsDel == 0)
|
.AndIF(!request.StartCreateTime.IsNull(), t => t.CreateTime >= request.StartCreateTime)
|
.AndIF(!request.DisType.IsNull(), t => t.DisStatus == request.DisType)
|
.AndIF(!request.ProductName.IsNullOrEmpty(), t => t.ProTitle.Contains(request.ProductName))
|
.AndIF(!request.EndCreateTime.IsNull(), t => t.CreateTime <= request.EndCreateTime)
|
.ToExpression();
|
int totalCount = 0;
|
var history = new DistributionHistoryDAL().ListPageGet(expression, t => t.CreateTime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalCount);
|
|
return Success(history, request.PageNo, request.PageSize, totalCount);
|
}
|
|
/// <summary>
|
/// 删除记录
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult DeleteDistributionHistory([FromBody] DeleteDistributionHistoryRequest request)
|
{
|
var userInfo = _iloginUserInfoService.GetUserInfo();
|
var history = new DistributionHistoryDAL().ListGet(t => request.Ids.Contains(t.Id));
|
foreach (var his in history)
|
{
|
bool removeRes = true;
|
if (his.DisStatus == 2)
|
{
|
//先解除铺货关系
|
removeRes = _itemDistributionService.RemoveRelatProduct(his.ProductId, userInfo.AlibabaToken);
|
}
|
if (removeRes)
|
{
|
DistributionHistory distributionHistory = new DistributionHistory()
|
{
|
IsDel = 1,
|
DeleteTime = DateTime.Now
|
};
|
new DistributionHistoryDAL().Update(distributionHistory, t => new { t.IsDel, t.DeleteTime }, t => t.Id == his.Id && t.DisStatus != 1);
|
}
|
}
|
return Success(true);
|
}
|
|
/// <summary>
|
/// 分页获取商品消息记录
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetProductUpdateLog([FromBody] GetProductUpdateLogRequest request)
|
{
|
var expression = Expressionable.Create<ProductUpdateLog>().AndIF(!request.ProcessingStatus.IsNull(), t => t.ProcessingStatus == request.ProcessingStatus)
|
.AndIF(!request.ProductName.IsNullOrEmpty(), t => t.ProductTitle.Contains(request.ProductName))
|
.ToExpression();
|
int totalCount = 0;
|
|
var upLog = new ProductUpdateLogDAL().ListPageGet(expression, t => t.CreateTime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalCount);
|
|
return Success(upLog, request.PageNo, request.PageSize, totalCount);
|
}
|
/// <summary>
|
/// 处理商品消息
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult EditProductUpdateLog([FromBody] EditProductUpdateLogRequest request)
|
{
|
ProductUpdateLog productUpdateLog = new ProductUpdateLog()
|
{
|
ProcessingStatus = request.ProcessingStatus,
|
ProcessingTime = DateTime.Now,
|
Memo = request.Memo
|
};
|
var res = new ProductUpdateLogDAL().Update(productUpdateLog, t => new { t.ProcessingStatus, t.ProcessingTime, t.Memo }, t => request.RecordIds.Contains(t.Id));
|
return Success(res > 0);
|
}
|
|
/// <summary>
|
/// 解除铺货
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult UnRelationProduct([FromBody] UnRelationProductRequest request)
|
{
|
LoginUserInfo userInfo = _iloginUserInfoService.GetUserInfo();
|
DistributionRelation distributionRelation = new DistributionRelation()
|
{
|
ReStatus = 0
|
};
|
int res = new DistributionRelationDAL().Update(distributionRelation, i => new { i.ReStatus }, t => t.SourceProduct == request.AliProductId && t.YzProduct == request.YzProductId);
|
if (res == 0)
|
{
|
return Error("没有可解除的商品!");
|
}
|
//取消关注1688商品
|
AlibabaProductUnFollowRequest aliReq = new AlibabaProductUnFollowRequest()
|
{
|
productId = long.Parse(request.AliProductId)
|
};
|
var aliRsp = AliabaClient.Execute(aliReq, userInfo.AlibabaToken);
|
if (!aliRsp.IsNull() || !aliRsp.Success)
|
{
|
return Error("取消关注商品失败:" + (aliRsp.IsNull() ? "nul;" : aliRsp.message));
|
}
|
return Success(true);
|
}
|
/// <summary>
|
/// 获取有赞商品地址
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetYzItemUrl([FromBody] GetYzItemUrlRequest request)
|
{
|
var userInfo = _iloginUserInfoService.GetUserInfo();
|
return Success($"https://shop{userInfo.YzShopId}.m.youzan.com/wscgoods/detail/{request.Alias}");
|
}
|
|
}
|
}
|