diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs index 71178f4..f51502a 100644 --- a/BBWYB.Server.API/Controllers/DataRepairController.cs +++ b/BBWYB.Server.API/Controllers/DataRepairController.cs @@ -96,5 +96,9 @@ namespace BBWYB.Server.API.Controllers { dataRepairBusiness.RepairPurchaseSchemeLastPurchasePrice(); } + + [HttpPost] + public void SyncProductCategory() + { dataRepairBusiness.SyncProductCategory(); } } } diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs index 590054a..b511af3 100644 --- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs +++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs @@ -958,5 +958,49 @@ namespace BBWYB.Server.Business } Console.WriteLine(schemeGroups.Count()); } + + public void SyncProductCategory() + { + List insertList = new List(); + List deletePurchaserExtendedIdList = new List(); + + var dbCategoryList = fsql.Select() + .Where(x => x.Type == Enums.PurchaserBasicInfoType.主营类目) + .ToList(); + + var client = opPlatformClientFactory.GetClient(AdapterEnums.PlatformType.拳探); + var request = new OP_QueryProductCategoryRequest() + { + PageIndex = 1, + PageSize = 50, + AppKey = "BBWYB2023022501", + AppSecret = "3a1521deccc6819d61788a0d6baae49e9", + AppToken = "9" + }; + + var qtCategoryList = new List(); + var response = client.GetProductCategoryList(request); + if (response.Items != null) + qtCategoryList.AddRange(response.Items); + + + //找出新增的类目 + var newCategoryList = qtCategoryList.Where(c => !dbCategoryList.Any(dc => dc.Id == long.Parse(c.CategoryId))).ToList(); + if (newCategoryList.Count() > 0) + { + insertList.AddRange(newCategoryList.Select(c => new PurchaserExtendedInfo() + { + Id = long.Parse(c.CategoryId), + Name = c.CategoryName, + CreateTime = DateTime.Now, + Type = Enums.PurchaserBasicInfoType.主营类目 + }).ToList()); + } + + fsql.Insert(insertList).ExecuteAffrows(); + + //找出接口丢失的类目 + + } } } diff --git a/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs b/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs index 36b4ec9..568ea12 100644 --- a/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs +++ b/BBWYB.Server.Business/Purchaser/PurchaserBusiness.cs @@ -22,7 +22,7 @@ namespace BBWYB.Server.Business public ListResponse QueryPurchaserCategoryList(QueryPurchaserExtendedRequest request) { var list = fsql.Select() - .Where(x => x.Type == request.Type) + .WhereIf(request.Type != null, x => x.Type == request.Type) .WhereIf(!string.IsNullOrEmpty(request.Keywords), x => x.Name.Contains(request.Keywords)) .Count(out var count) .ToList(); diff --git a/BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserExtendedRequest.cs b/BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserExtendedRequest.cs index 7481987..27d0d5a 100644 --- a/BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserExtendedRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/Purchaser/QueryPurchaserExtendedRequest.cs @@ -2,7 +2,7 @@ { public class QueryPurchaserExtendedRequest { - public Enums.PurchaserBasicInfoType Type { get; set; } + public Enums.PurchaserBasicInfoType? Type { get; set; } /// /// 不传关键字默认查所有 diff --git a/BBWYB.Server.Model/Enums.cs b/BBWYB.Server.Model/Enums.cs index f55d25a..af472dc 100644 --- a/BBWYB.Server.Model/Enums.cs +++ b/BBWYB.Server.Model/Enums.cs @@ -332,7 +332,7 @@ } /// - /// 厂家经营模式 + /// 厂家经营模式 贸易 = 0, 厂家 = 1 /// public enum ManagmentMode { diff --git a/QuanTan.SDK/Client/Supplier/QuanTan_Supplier_ProductClient.cs b/QuanTan.SDK/Client/Supplier/QuanTan_Supplier_ProductClient.cs index 01770d1..23e0553 100644 --- a/QuanTan.SDK/Client/Supplier/QuanTan_Supplier_ProductClient.cs +++ b/QuanTan.SDK/Client/Supplier/QuanTan_Supplier_ProductClient.cs @@ -1,5 +1,6 @@ using BBWYB.Common.Http; using QuanTan.SDK.Model; +using QuanTan.SDK.Models; using QuanTan.SDK.Models.Supplier; namespace QuanTan.SDK.Client.Supplier @@ -24,5 +25,10 @@ namespace QuanTan.SDK.Client.Supplier { return SendRequest("api/platform/supply/product/price/change", request, appId, appSecret); } + + public QuanTanResponse> GetProductCategoryList(QuanTan_Supplier_SearchProductCategoryRequest request, string appId, string appSecret) + { + return SendRequest>("api/platform/supply/category/list", request, appId, appSecret); + } } } diff --git a/QuanTan.SDK/Models/Supplier/Request/Product/QuanTan_Supplier_SearchProductCategoryRequest.cs b/QuanTan.SDK/Models/Supplier/Request/Product/QuanTan_Supplier_SearchProductCategoryRequest.cs new file mode 100644 index 0000000..11ea8fb --- /dev/null +++ b/QuanTan.SDK/Models/Supplier/Request/Product/QuanTan_Supplier_SearchProductCategoryRequest.cs @@ -0,0 +1,13 @@ +namespace QuanTan.SDK.Models.Supplier +{ + public class QuanTan_Supplier_SearchProductCategoryRequest + { + public string storeId { get; set; } + + public string categoryIds { get; set; } + + public int pageSize { get; set; } = 20; + + public int page { get; set; } = 1; + } +} diff --git a/QuanTan.SDK/Models/Supplier/Response/Product/QuanTan_Supplier_ProductCategoryResponse.cs b/QuanTan.SDK/Models/Supplier/Response/Product/QuanTan_Supplier_ProductCategoryResponse.cs new file mode 100644 index 0000000..06a0caa --- /dev/null +++ b/QuanTan.SDK/Models/Supplier/Response/Product/QuanTan_Supplier_ProductCategoryResponse.cs @@ -0,0 +1,9 @@ +namespace QuanTan.SDK.Models.Supplier +{ + public class QuanTan_Supplier_ProductCategoryResponse + { + public string CategoryId { get; set; } + + public string CategoryName { get; set; } + } +} diff --git a/SDKAdapter/OperationPlatform/Client/Base/OP_PlatformClient.cs b/SDKAdapter/OperationPlatform/Client/Base/OP_PlatformClient.cs index 066e416..5e477ab 100644 --- a/SDKAdapter/OperationPlatform/Client/Base/OP_PlatformClient.cs +++ b/SDKAdapter/OperationPlatform/Client/Base/OP_PlatformClient.cs @@ -56,5 +56,10 @@ namespace SDKAdapter.OperationPlatform.Client { throw new NotImplementedException(); } + + public virtual OP_ListResponse GetProductCategoryList(OP_QueryProductCategoryRequest request) + { + throw new NotImplementedException(); + } } } diff --git a/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs b/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs index e0cfb85..df103e0 100644 --- a/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs +++ b/SDKAdapter/OperationPlatform/Client/Impl/OP_QuanTanClient.cs @@ -242,5 +242,23 @@ namespace SDKAdapter.OperationPlatform.Client if (qtResponse.Status != 200) throw new BusinessException(qtResponse.Message); } + + public override OP_ListResponse GetProductCategoryList(OP_QueryProductCategoryRequest request) + { + var qtResponse = supplier_ProductClient.GetProductCategoryList(new QuanTan_Supplier_SearchProductCategoryRequest() + { + page = request.PageIndex, + pageSize = request.PageSize + }, request.AppKey, request.AppSecret); + return new OP_ListResponse() + { + Count = qtResponse.Data.Count, + Items = qtResponse.Data.List != null && qtResponse.Data.List.Count() > 0 ? qtResponse.Data.List.Select(x => new OP_ProductCategoryResponse() + { + CategoryId = x.CategoryId, + CategoryName = x.CategoryName, + }).ToList() : null + }; + } } } diff --git a/SDKAdapter/OperationPlatform/Models/Request/Product/OP_QueryProductCategoryRequest.cs b/SDKAdapter/OperationPlatform/Models/Request/Product/OP_QueryProductCategoryRequest.cs new file mode 100644 index 0000000..ebed883 --- /dev/null +++ b/SDKAdapter/OperationPlatform/Models/Request/Product/OP_QueryProductCategoryRequest.cs @@ -0,0 +1,9 @@ +namespace SDKAdapter.OperationPlatform.Models +{ + public class OP_QueryProductCategoryRequest: BasePlatformRequest + { + public int PageIndex { get; set; } + + public int PageSize { get; set; } + } +} diff --git a/SDKAdapter/OperationPlatform/Models/Response/OP_ListResponse.cs b/SDKAdapter/OperationPlatform/Models/Response/OP_ListResponse.cs new file mode 100644 index 0000000..3a1870f --- /dev/null +++ b/SDKAdapter/OperationPlatform/Models/Response/OP_ListResponse.cs @@ -0,0 +1,9 @@ +namespace SDKAdapter.OperationPlatform.Models +{ + public class OP_ListResponse where T:class + { + public long Count { get; set; } + + public List Items { get; set; } + } +} diff --git a/SDKAdapter/OperationPlatform/Models/Response/Product/OP_ProductCategoryResponse.cs b/SDKAdapter/OperationPlatform/Models/Response/Product/OP_ProductCategoryResponse.cs new file mode 100644 index 0000000..999fa21 --- /dev/null +++ b/SDKAdapter/OperationPlatform/Models/Response/Product/OP_ProductCategoryResponse.cs @@ -0,0 +1,9 @@ +namespace SDKAdapter.OperationPlatform.Models +{ + public class OP_ProductCategoryResponse + { + public string CategoryId { get; set; } + + public string CategoryName { get; set; } + } +}