using AlibabaSDK.Api;
|
using AlibabaSDK.Domain;
|
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.Data;
|
using System.Linq;
|
using System.Threading.Tasks;
|
using YouZanSDKStandard.Api;
|
using YouZanSDKStandard.Api.Domain;
|
using YouZanSDKStandard.Api.Request;
|
|
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 ReAddItem([FromBody] ReAddItemRequest request)
|
{
|
var userInfo = _iloginUserInfoService.GetUserInfo();
|
var history = new DistributionHistoryDAL().ListGet(t => request.ProductId.Contains(t.ProductId) && t.IsDel == 0);
|
foreach (var his in history)
|
{
|
bool removeRes = true;
|
if (his.DisStatus == 2)
|
{
|
//先解除铺货关系
|
removeRes = _itemDistributionService.RemoveRelatProduct(his.ProductId, userInfo.AlibabaToken, userInfo.YzToken, his, userInfo.YzShopId);
|
}
|
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);
|
}
|
else
|
{
|
return Error("删除失败!");
|
}
|
}
|
bool res = _itemDistributionService.AddDistributionTask(request).Result;
|
return Success(res);
|
}
|
|
/// <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, userInfo.YzToken, his, userInfo.YzShopId);
|
}
|
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 userInfo = _iloginUserInfoService.GetUserInfo();
|
var expression = Expressionable.Create<ProductUpdateLog>().AndIF(!request.ProcessingStatus.IsNull(), t => t.ProcessingStatus == request.ProcessingStatus)
|
.AndIF(!request.ProductName.IsNullOrEmpty(), t => t.ProductTitle.Contains(request.ProductName))
|
.And(t => t.IsDel == 0)
|
.ToExpression();
|
int totalCount = 0;
|
|
var upLog = new ProductUpdateLogDAL().ListPageGet(expression, t => t.CreateTime, DbEnum.OrderType.Desc, request.PageNo, request.PageSize, ref totalCount);
|
if (totalCount > 0)
|
{
|
List<string> logAliPro = upLog.Select(t => t.ProductId).ToList();
|
var dist = new DistributionRelationDAL().ListGet(t => logAliPro.Contains(t.SourceProduct));
|
List<string> skuNoList = new List<string>();
|
foreach (var log in upLog)
|
{
|
var yzItem = dist.Where(t => t.SourceProduct == log.ProductId).ToList();
|
if (yzItem.IsNull() || yzItem.Count == 0)
|
{
|
continue;
|
}
|
List<SkuList> yzSkuList = JSONUtil.JsonToObject<List<SkuList>>(yzItem[0].YzskuInfo);
|
skuNoList.Add(yzSkuList[0].sku_no);
|
}
|
//获取有赞商品上下架状态
|
YouZanItemCommonSearchRequest yzSearchReq = new YouZanItemCommonSearchRequest()
|
{
|
page_no = 1,
|
page_size = 50
|
};
|
if (skuNoList.Count > 0)
|
{
|
yzSearchReq.sku_nos = skuNoList;
|
var yzSearchRsp = YouZanClient.Execute(yzSearchReq, userInfo.YzToken);
|
if (!yzSearchRsp.IsNull() && !yzSearchRsp.data.IsNull() && !yzSearchRsp.data.items.IsNull())
|
{
|
foreach (var item in upLog)
|
{
|
if (item.YzProductId.IsNullOrEmpty())
|
{
|
continue;
|
}
|
var disPlayItem = yzSearchRsp.data.items.Where(t => t.item_id == long.Parse(item.YzProductId)).ToList();
|
if (!disPlayItem.IsNull() && disPlayItem.Count > 0)
|
{
|
item.MsgId = disPlayItem[0].is_display.ToString();
|
}
|
}
|
}
|
}
|
}
|
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();
|
if (!request.Alias.IsNullOrEmpty())
|
{
|
return Success($"https://shop{userInfo.YzShopId}.m.youzan.com/wscgoods/detail/{request.Alias}");
|
}
|
var rela = new DistributionRelationDAL().ListGet(t => t.YzProduct == request.ProductId);
|
if (!rela.IsNull() && rela.Count > 0)
|
{
|
return Success($"https://shop{userInfo.YzShopId}.m.youzan.com/wscgoods/detail/{rela[0].YzAlias}");
|
}
|
return Error("未找到关联关系");
|
}
|
|
/// <summary>
|
/// 增量修改有赞商品信息
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult UpdateYzProduct([FromBody] UpdateYzProductRequest request)
|
{
|
var userInfo = _iloginUserInfoService.GetUserInfo();
|
if (request.UpdateType == 1 && (request.Price.IsNull()))
|
{
|
return Error("价格必传");
|
}
|
if (request.UpdateType == 0 && (request.SkuInfo.IsNull() || request.SkuInfo.Count == 0))
|
{
|
return Error("无需要修改的sku信息");
|
}
|
string beforeSku = "";
|
YouZanProductUpdateReqDomain upDomain = new YouZanProductUpdateReqDomain()
|
{
|
item_id = long.Parse(request.ItemId)
|
};
|
List<YouZanProductUpdateReqSkuList> skuList = new List<YouZanProductUpdateReqSkuList>();
|
if (request.UpdateType == 0)
|
{
|
foreach (var sku in request.SkuInfo)
|
{
|
YouZanProductUpdateReqSkuList skuItem = new YouZanProductUpdateReqSkuList();
|
skuItem.price = long.Parse((sku.Price * 100).ToString("0.#"));
|
skuItem.sku_id = long.Parse(sku.SkuId);
|
skuList.Add(skuItem);
|
}
|
}
|
else
|
{
|
////获取有赞商品详情
|
YouZanProductDetailGetRequest udetailReq = new YouZanProductDetailGetRequest()
|
{
|
item_id = long.Parse(request.ItemId)
|
};
|
var udetailRs = YouZanClient.Execute(udetailReq, userInfo.YzToken);
|
if (udetailRs.IsNull() || !udetailRs.success)
|
{
|
return Error("获取有赞商品详情失败:" + udetailRs.message);
|
}
|
foreach (var sku in udetailRs.data.sku_list)
|
{
|
YouZanProductUpdateReqSkuList skuItem = new YouZanProductUpdateReqSkuList();
|
skuItem.price = long.Parse(((decimal)request.Price * 100).ToString("0.#"));
|
skuItem.sku_id = long.Parse(sku.sku_id);
|
skuList.Add(skuItem);
|
}
|
beforeSku = JSONUtil.ObjectToJson(udetailRs.data.sku_list);
|
}
|
upDomain.sku_list = skuList;
|
|
YouZanProductUpdateRequest yzReq = new YouZanProductUpdateRequest()
|
{ param = upDomain };
|
var yzRsp = YouZanClient.Execute(yzReq, userInfo.YzToken);
|
if (yzRsp.IsNull() || !yzRsp.success)
|
{
|
return Error("有赞接口修改失败:" + yzRsp.message);
|
}
|
//获取有赞商品信息,更新最新sku
|
////获取有赞商品详情
|
YouZanProductDetailGetRequest detailReq = new YouZanProductDetailGetRequest()
|
{
|
item_id = long.Parse(request.ItemId)
|
};
|
var detailRs = YouZanClient.Execute(detailReq, userInfo.YzToken);
|
if (detailRs.IsNull() || !detailRs.success)
|
{
|
LogUtil.Info("获取有赞商品详情失败:" + detailRs.message, "商品错误");
|
}
|
else
|
{
|
//记录有赞最新sku信息
|
DistributionRelation distributionRelation = new DistributionRelation()
|
{
|
YzskuInfo = JSONUtil.ObjectToJson(detailRs.data.sku_list)
|
};
|
new DistributionRelationDAL().Update(distributionRelation, i => new { i.YzskuInfo }, t => t.YzProduct == request.ItemId);
|
if (request.UpdateType == 1)
|
{
|
//记录修改
|
BatchUpdatepriceHistory batchUpdatepriceHistory = new BatchUpdatepriceHistory()
|
{
|
Id = Guid.NewGuid().ToString(),
|
YzProductId = request.ItemId,
|
|
UpdateTime = DateTime.Now,
|
UpdateStatus = 1,
|
TaskId = "10000",
|
YzTxt = JSONUtil.ObjectToJson(detailRs.data.sku_list),
|
YzBeforeTxt = beforeSku
|
};
|
new BatchUpdatepriceHistoryDAL().Insert(batchUpdatepriceHistory);
|
}
|
}
|
return Success(true);
|
}
|
|
/// <summary>
|
/// 获取铺货数据
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult ListGetDistributionHistory([FromBody] ListGetDistributionHistoryRequest request)
|
{
|
var userInfo = _iloginUserInfoService.GetUserInfo();
|
string where = " where a.is_del=0 ";
|
if (!request.Title.IsNullOrEmpty())
|
{
|
where += $" and a.pro_title like'%{request.Title}%' ";
|
}
|
if ((!request.TagIds.IsNull() && request.TagIds.Count > 0) || !request.IsDisplay.IsNull())
|
{//根据商品分组查询
|
List<string> itemIds = _itemDistributionService.GetYzItemIdByTag(request, userInfo.YzToken);
|
if (!itemIds.IsNull() && itemIds.Count > 0)
|
{
|
string yzItemStr = string.Join(',', itemIds);
|
yzItemStr = "'" + yzItemStr.Replace(",", "','") + "'";
|
where += $" and a.yz_item_id in ({yzItemStr}) ";
|
}
|
}
|
List<ListGetDistributionHistoryResponse> response = new List<ListGetDistributionHistoryResponse>();
|
//先查总数
|
string countSql = $"select count(1) as count from distribution_history a {where}";
|
DataTable countDt = new DistributionHistoryDAL().GetDataBySql(countSql);
|
int totalCount = 0;
|
if (countDt.IsNull() || countDt.Rows.Count == 0)
|
{
|
return Success(response, request.PageNo, request.PageSize, 0);
|
}
|
totalCount = int.Parse(countDt.Rows[0]["count"].ToString());
|
string searchSql = $"SELECT a.*,b.alisku_info,b.yzsku_info from distribution_history a left JOIN distribution_relation b on a.yz_item_id=b.yz_product {where} order by a.create_time desc limit {request.PageSize} offset {(request.PageNo - 1) * request.PageSize}";
|
DataTable dt = new DistributionHistoryDAL().GetDataBySql(searchSql);
|
|
if (dt.IsNull() || dt.Rows.Count == 0)
|
{
|
return Success(response, request.PageNo, request.PageSize, 0);
|
}
|
List<string> skuNoList = new List<string>();
|
foreach (DataRow dr in dt.Rows)
|
{
|
ListGetDistributionHistoryResponse rsp = new ListGetDistributionHistoryResponse()
|
{
|
Id = dr["id"].ToString(),
|
ProductId = dr["product_id"].ToString(),
|
CreateTime = Convert.ToDateTime(dr["create_time"].ToString()),
|
DisStatus = int.Parse(dr["dis_status"].ToString()),
|
Memo = dr["memo"].ToString(),
|
YzItemId = dr["yz_item_id"].ToString(),
|
TaskId = dr["task_id"].ToString(),
|
ProTitle = dr["pro_title"].ToString(),
|
ProImg = dr["pro_img"].ToString(),
|
YzAlias = dr["yz_alias"].ToString(),
|
ProSource = int.Parse(dr["pro_source"].ToString()),
|
IsFreeShipping = int.Parse(dr["is_free_shipping"].ToString())
|
};
|
List<ProSkuItem> skuList = new List<ProSkuItem>();
|
if (dr["yzsku_info"].IsNull() || dr["yzsku_info"].ToString().IsNullOrEmpty())
|
{
|
rsp.SkuList = skuList;
|
response.Add(rsp);
|
continue;
|
}
|
List<SkuList> yzSkuList = JSONUtil.JsonToObject<List<SkuList>>(dr["yzsku_info"].ToString());
|
skuNoList.Add(yzSkuList[0].sku_no);
|
List<SkuInfosItem> aliSkuList = JSONUtil.JsonToObject<List<SkuInfosItem>>(dr["alisku_info"].ToString());
|
foreach (var sitem in yzSkuList)
|
{
|
|
var aliSku = aliSkuList.Where(t => t.skuId == long.Parse(sitem.sku_no)).ToList();
|
if (aliSku.IsNull() || aliSku.Count == 0)
|
{
|
continue;
|
}
|
List<ProSkuItemProps> propsList = new List<ProSkuItemProps>();
|
foreach (var pro in sitem.sku_props)
|
{
|
ProSkuItemProps pr = new ProSkuItemProps()
|
{
|
Name = pro.prop_name,
|
Value = pro.prop_value_name
|
};
|
propsList.Add(pr);
|
}
|
string aliSkuPrice = dr["pro_source"].ToString() == "1" ? aliSku[0].consignPrice.ToString("0.00##") : aliSku[0].retailPrice.ToString("0.00##");
|
ProSkuItem proSkuItem = new ProSkuItem()
|
{
|
YzSkuId = sitem.sku_id,
|
YzSkuPrice = (decimal.Parse(sitem.price.ToString()) / 100).ToString("0.00##"),
|
Props = propsList,
|
AliSkuId = aliSku[0].skuId.ToString(),
|
AliSkuPrice = aliSkuPrice,
|
RowCount = yzSkuList.Count,
|
YzItemId = dr["yz_item_id"].ToString()
|
};
|
skuList.Add(proSkuItem);
|
}
|
rsp.SkuList = skuList;
|
response.Add(rsp);
|
}
|
//获取有赞商品上下架状态
|
YouZanItemCommonSearchRequest yzSearchReq = new YouZanItemCommonSearchRequest()
|
{
|
page_no = 1,
|
page_size = 50
|
};
|
if (skuNoList.Count > 0)
|
{
|
yzSearchReq.sku_nos = skuNoList;
|
var yzSearchRsp = YouZanClient.Execute(yzSearchReq, userInfo.YzToken);
|
if (!yzSearchRsp.IsNull() && !yzSearchRsp.data.IsNull() && !yzSearchRsp.data.items.IsNull())
|
{
|
foreach (var item in response)
|
{
|
if (item.YzItemId.IsNullOrEmpty())
|
{
|
continue;
|
}
|
var disPlayItem = yzSearchRsp.data.items.Where(t => t.item_id == long.Parse(item.YzItemId)).ToList();
|
if (!disPlayItem.IsNull() && disPlayItem.Count > 0)
|
{
|
item.IsDisplay = disPlayItem[0].is_display == 1 ? 1 : 2;
|
item.ProTagIds = disPlayItem[0].tag_ids;
|
}
|
}
|
}
|
}
|
|
return Success(response, request.PageNo, request.PageSize, totalCount);
|
}
|
|
/// <summary>
|
/// 提交拉取分销单任务
|
/// </summary>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult AddDistributebillTask()
|
{
|
var task = new DaifaTaskDAL().ListGet(t => t.TaskStatus != 2);
|
if (!task.IsNull() && task.Count > 0)
|
{
|
return Error("当前有任务执行,请稍后提交任务!");
|
}
|
string taskId = Guid.NewGuid().ToString();
|
DaifaTask daifaTask = new DaifaTask()
|
{
|
Id = taskId,
|
CreateTime = DateTime.Now,
|
TaskStatus = 0,
|
TaskType = 1
|
};
|
new DaifaTaskDAL().Insert(daifaTask);
|
//发执行mq
|
ProductDistributionMq productDistributionMq = new ProductDistributionMq()
|
{
|
TaskId = taskId,
|
TaskType = 1
|
};
|
string ret = MQClientFullChannel.SendMessageStatic(0, "product_distribution", JSONUtil.ObjectToJson(productDistributionMq));
|
if (ret != "ok")
|
{
|
return Error("mq发送失败");
|
}
|
return Success(true);
|
}
|
|
/// <summary>
|
/// 有赞下架
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult DelingYz([FromBody] DelingYzRequset request)
|
{
|
var userInfo = _iloginUserInfoService.GetUserInfo();
|
//下架有赞商品
|
YouZanItemDelistingRequest delistingReq = new YouZanItemDelistingRequest()
|
{
|
item_id = long.Parse(request.YzProductId)
|
};
|
var delistingRsp = YouZanClient.Execute(delistingReq, userInfo.YzToken);
|
if (delistingRsp.IsNull() || !delistingRsp.success)
|
{
|
return Error("下架有赞商品失败:" + (delistingRsp.IsNull() ? "null" : delistingRsp.message));
|
}
|
//修改消息记录里的有赞状态
|
ProductUpdateLog productUpdateLog = new ProductUpdateLog()
|
{
|
Memo = "人工下架",
|
IsSystemDown = 0
|
};
|
new ProductUpdateLogDAL().Update(productUpdateLog, i => new { i.Memo, i.IsSystemDown }, t => t.YzProductId == request.YzProductId);
|
return Success(true);
|
}
|
|
/// <summary>
|
/// 有赞上架
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult UpdateListingYz([FromBody] UpdateListingYzRequest request)
|
{
|
var userInfo = _iloginUserInfoService.GetUserInfo();
|
//获取有赞对应的铺货关系
|
var relat = new DistributionRelationDAL().ListGet(t => t.YzProduct == request.YzProductId);
|
if (relat.IsNull() || relat.Count == 0)
|
{
|
return Error("获取有赞对应1688的商品关系失败!");
|
}
|
//获取商品详情
|
if (relat[0].ProSource == 0)
|
{//精选
|
List<string> ls = new List<string>();
|
ls.Add(relat[0].SourceProduct);
|
PFTProductDetailRequest pftrequest = new PFTProductDetailRequest()
|
{
|
offerIds = ls
|
};
|
var pftresponse = AliabaClient.Execute(pftrequest, userInfo.AlibabaToken);
|
if (pftresponse.IsNull() || !pftresponse.result.success || pftresponse.result.result.Count == 0)
|
{//获取商品详情失败
|
return Error("获取精选商品详情失败:" + pftresponse.result.message);
|
}
|
if (pftresponse.result.result[0].productInfo.status != "published" || !pftresponse.result.result[0].productInfo.saleInfo.supportOnlineTrade)
|
{//不可上架
|
return Error("该精选商品状态异常,不可上架");
|
}
|
}
|
else
|
{//代发
|
FenXiaoProductInfoGetRequest fxrequest = new FenXiaoProductInfoGetRequest()
|
{
|
offerId = long.Parse(relat[0].SourceProduct)
|
};
|
var fxresponse = AliabaClient.Execute(fxrequest, userInfo.AlibabaToken);
|
if (fxresponse.IsNull() || !fxresponse.Success)
|
{
|
return Error("获取代发商品详情失败:" + fxresponse.ErrorMsg);
|
}
|
if (fxresponse.productInfo.status != "published" || !fxresponse.productInfo.productSaleInfo.supportOnlineTrade)
|
{
|
return Error("该精选商品状态异常,不可上架");
|
}
|
}
|
//有赞上架
|
YouZanUpdateListingRequest yzReq = new YouZanUpdateListingRequest()
|
{
|
item_id = long.Parse(request.YzProductId)
|
};
|
var yzRsp = YouZanClient.Execute(yzReq, userInfo.YzToken);
|
if (yzRsp.IsNull() || !yzRsp.success)
|
{
|
return Error("有赞上架失败:" + yzRsp.message);
|
}
|
//修改消息记录里的有赞状态
|
ProductUpdateLog productUpdateLog = new ProductUpdateLog()
|
{
|
Memo = "人工上架",
|
IsSystemDown = 0
|
};
|
new ProductUpdateLogDAL().Update(productUpdateLog, i => new { i.Memo, i.IsSystemDown }, t => t.YzProductId == request.YzProductId);
|
return Success(true);
|
}
|
|
/// <summary>
|
/// 删除商品变更日志
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
|
[HttpPost]
|
public IActionResult BatchDeleteProductLog([FromBody] BatchDeleteProductLogRequest request)
|
{
|
var userInfo = _iloginUserInfoService.GetUserInfo();
|
ProductUpdateLog productUpdateLog = new ProductUpdateLog()
|
{
|
IsDel = 1
|
};
|
var res = new ProductUpdateLogDAL().Update(productUpdateLog, i => new { i.IsDel }, t => request.LogIds.Contains(t.Id));
|
if (request.IsDelItem)
|
{
|
var logInfo = new ProductUpdateLogDAL().ListGet(t => request.LogIds.Contains(t.Id));
|
if (!logInfo.IsNull() && logInfo.Count > 0)
|
{
|
var aliIds = logInfo.Select(t => t.ProductId).ToList();
|
var history = new DistributionHistoryDAL().ListGet(t => aliIds.Contains(t.ProductId) && t.IsDel == 0);
|
foreach (var his in history)
|
{
|
bool removeRes = true;
|
if (his.DisStatus == 2)
|
{
|
//先解除铺货关系
|
removeRes = _itemDistributionService.RemoveRelatProduct(his.ProductId, userInfo.AlibabaToken, userInfo.YzToken, his, userInfo.YzShopId);
|
}
|
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>
|
/// 更新商品sku信息
|
/// </summary>
|
/// <param name="request"></param>
|
/// <returns></returns>
|
|
[HttpPost]
|
public IActionResult UpdateYzSkuListInfo([FromBody] UpdateYzSkuListInfoRequest request)
|
{
|
return Success(true);
|
;
|
}
|
}
|
}
|