diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs index 5a71bf40..4f6f9513 100644 --- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs +++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs @@ -132,16 +132,6 @@ namespace BBWY.Server.Business if (orderListResponse.Data == null || orderListResponse.Data.Count == 0) return; - - if (shopId == 10388155) - { - try - { - nLogManager.GetLogger($"订单同步-{shop.ShopName}").Info(orderListApiResult.Content); - } - catch { } - } - syncOrderMethodDic[shop.PlatformId](orderListResponse.Data, shopId, relayAPIHost, shop.AppKey, shop.AppSecret, shop.AppToken, shop.PlatformCommissionRatio ?? 0.05M); } catch (Exception ex) @@ -220,10 +210,10 @@ namespace BBWY.Server.Business List insertOrderCostDetailList = new List(); List insertOrderSkuList = new List(); List insertOrderCouponList = new List(); - + List insertOrderTotalInfoList = new List(); IList> updateOrderList = new List>(); - IList> updateOrderSkuList = new List>(); + Dictionary> updateOrderSkuDictionary = new Dictionary>(); IList> updatePurchaseOrderList = new List>(); #endregion @@ -265,6 +255,12 @@ namespace BBWY.Server.Business dbOrderCostDetailList = fsql.Select().Where(ocd => interfaceCanceledOrderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList(); } + #region 优惠券/促销/拆分明细 + //var dbOrderCouponNewList = fsql.Select().Where(ocn => interfaceOrderIdList.Contains(ocn.OrderId)).ToList(); + //var dbOrderPromotionList = fsql.Select().Where(op => interfaceOrderIdList.Contains(op.OrderId)).ToList(); + var dbOrderTotalList = fsql.Select().Where(ot => interfaceOrderIdList.Contains(ot.Id)).ToList(); + #endregion + var orderSkuIds = new List(); foreach (var orderJToken in validOrders) { @@ -395,9 +391,11 @@ namespace BBWY.Server.Business var wareId = orderSkuJToken.Value("wareId"); var skuId = orderSkuJToken.Value("skuId"); var dbOsku = currentDbOrderSkuList.FirstOrDefault(osku => osku.SkuId == skuId); - if (dbOsku != null && dbOsku.ProductId != wareId) + var skuUpdateKey = $""; + if (dbOsku != null && dbOsku.ProductId != wareId && !updateOrderSkuDictionary.ContainsKey(skuUpdateKey)) { - updateOrderSkuList.Add(fsql.Update(dbOsku.Id).Set(osku => osku.ProductId, wareId)); + var update = fsql.Update(dbOsku.Id).Set(osku => osku.ProductId, wareId); + updateOrderSkuDictionary.Add(skuUpdateKey, update); } } } @@ -653,6 +651,14 @@ namespace BBWY.Server.Business catch { } #endregion + #region 优惠券/促销/拆分明细 + if (orderState != Enums.OrderState.暂停 && + orderState != Enums.OrderState.待付款 && + !dbOrderTotalList.Any(ot => ot.Id == orderId)) + { + + } + #endregion } #region 补齐sku logo @@ -717,10 +723,10 @@ namespace BBWY.Server.Business update.ExecuteAffrows(); } - if (updateOrderSkuList.Count() > 0) + if (updateOrderSkuDictionary.Keys.Count() > 0) { - foreach (var update in updateOrderSkuList) - update.ExecuteAffrows(); + foreach (var update in updateOrderSkuDictionary) + update.Value.ExecuteAffrows(); } }); } diff --git a/BBWY.Server.Model/Db/Order/OrderCoupon_New.cs b/BBWY.Server.Model/Db/Order/OrderCoupon_New.cs new file mode 100644 index 00000000..a608c5e7 --- /dev/null +++ b/BBWY.Server.Model/Db/Order/OrderCoupon_New.cs @@ -0,0 +1,76 @@ +using FreeSql.DataAnnotations; +using System; + +namespace BBWY.Server.Model.Db +{ + + [Table(Name = "ordercoupon_new", DisableSyncStructure = true)] + public partial class OrderCoupon_New + { + + [Column(DbType = "bigint", IsPrimary = true)] + public long Id { get; set; } + + /// + /// 优惠券数量/发行量 + /// + [Column(DbType = "int")] + public int? CouponNum { get; set; } = 0; + + /// + /// POP优惠券ID + /// + [Column(DbType = "int")] + public int? CouponId { get; set; } + + /// + /// 活动名称 + /// + + public string CouponName { get; set; } + + /// + /// 优惠券面额,计价单位:元 + /// + + public decimal? CouponPrice { get; set; } = 0.00M; + + /// + /// 优惠券类型,优惠券类型枚举:[京券,平台京券,限品类京券,东券,平台东券,限品类东券,店铺京券,店铺限商品京券,店铺东券,店铺限商品东券,按比例分摊平台券,自营承担平台券,商家承担平台券] + /// + + public string CouponTypeDesc { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 平台优惠券ID + /// + [Column(StringLength = 50)] + public string JdCouponId { get; set; } + + /// + /// 平台分摊金额,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? JdDivideMoney { get; set; } = 0.00M; + + /// + /// 价格分摊标识[true:有分摊金额数据 false:无分摊金额数据] + /// + + public bool? PriceDivide { get; set; } + + /// + /// 商家分摊金额,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? VenderDivideMoney { get; set; } = 0.00M; + + [Column(StringLength = 50)] + public string OrderId { get; set; } + + } + +} diff --git a/BBWY.Server.Model/Db/Order/OrderPromotion.cs b/BBWY.Server.Model/Db/Order/OrderPromotion.cs new file mode 100644 index 00000000..8b602bc4 --- /dev/null +++ b/BBWY.Server.Model/Db/Order/OrderPromotion.cs @@ -0,0 +1,59 @@ +using FreeSql.DataAnnotations; +using System; + +namespace BBWY.Server.Model.Db +{ + + /// + /// 订单促销活动表 + /// + [Table(Name = "orderpromotion", DisableSyncStructure = true)] + public partial class OrderPromotion + { + + [Column(DbType = "bigint", IsPrimary = true)] + public long Id { get; set; } + + /// + /// 活动开始时间 + /// + [Column(DbType = "datetime")] + public DateTime? BeginTime { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 活动结束时间 + /// + [Column(DbType = "datetime")] + public DateTime? EndTime { get; set; } + + [Column(StringLength = 50)] + public string OrderId { get; set; } + + /// + /// pop促销ID + /// + [Column(DbType = "int")] + public int? PromotionId { get; set; } + + /// + /// 活动名称 + /// + public string PromotionName { get; set; } + + /// + /// 优惠金额,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? SalePrice { get; set; } = 0.00M; + + /// + /// 促销类型,促销类型枚举:[满减优惠,套装优惠,闪团优惠,团购优惠,预售优惠] + /// + public string SaleTypeDesc { get; set; } + + } + +} diff --git a/BBWY.Server.Model/Db/Order/OrderSku.cs b/BBWY.Server.Model/Db/Order/OrderSku.cs index bb0165c5..a93694c1 100644 --- a/BBWY.Server.Model/Db/Order/OrderSku.cs +++ b/BBWY.Server.Model/Db/Order/OrderSku.cs @@ -1,28 +1,157 @@ -using FreeSql.DataAnnotations; +using FreeSql.DataAnnotations; +using Newtonsoft.Json; using System; namespace BBWY.Server.Model.Db { + /// + /// 订单SKU + /// [Table(Name = "ordersku", DisableSyncStructure = true)] public partial class OrderSku { + /// + /// 商家Id + /// + [Column(IsIgnore = true)] + public long ShopId { get; set; } - [Column(DbType = "bigint(1)", IsPrimary = true)] + [Column(DbType = "bigint", IsPrimary = true)] public long Id { get; set; } + /// + /// 京东支付优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? JdZhiFuYouHui { get; set; } = 0.00M; + + /// + /// plus会员95折优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? Plus95 { get; set; } = 0.00M; + + /// + /// 余额,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? Balance { get; set; } = 0.00M; + + /// + /// 基础优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? BaseDiscount { get; set; } = 0.00M; + + /// + /// 基础运费,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? BaseFee { get; set; } = 0.00M; + + /// + /// 优惠券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? Coupon { get; set; } = 0.00M; + [Column(DbType = "datetime")] public DateTime? CreateTime { get; set; } + /// + /// 东券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? DongQuan { get; set; } = 0.00M; + + /// + /// 满期赠促销 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? ExpiryGiftDiscount { get; set; } = 0.00M; + + /// + /// 全球购一般贸易税(包税),计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? GlobalGeneralIncludeTax { get; set; } = 0.00M; + + /// + /// 全球购一般贸易税,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? GlobalGeneralTax { get; set; } = 0.00M; + + /// + /// 是否退款 + /// + [JsonProperty] + public bool? IsRefund { get; set; } = false; + /// /// 销售数量 /// - [Column(DbType = "int(1)")] + [Column(DbType = "int")] public int? ItemTotal { get; set; } + /// + /// 京豆,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? JingDou { get; set; } = 0.00M; + + /// + /// 京券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? JingQuan { get; set; } = 0.00M; + + /// + /// 京享礼金(首单礼金或重逢礼金),计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? JingXiangLiJin { get; set; } = 0.00M; + + /// + /// 礼金优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? LiJinYouHui { get; set; } = 0.00M; + + /// + /// Logo + /// + [JsonProperty] + public string Logo { get; set; } + + /// + /// 落地配服务,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? LuoDiPeiService { get; set; } = 0.00M; + + /// + /// 满减,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? ManJian { get; set; } = 0.00M; + + /// + /// 代发Id + /// + [Column(DbType = "bigint")] + public long? OrderDropShippingId { get; set; } + [Column(StringLength = 50)] public string OrderId { get; set; } + /// + /// 按比例平台承担优惠券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? PingTaiChengDanYouHuiQuan { get; set; } = 0.00M; + /// /// 销售单价 /// @@ -38,32 +167,75 @@ namespace BBWY.Server.Model.Db [Column(StringLength = 50)] public string ProductNo { get; set; } + /// + /// 跨店满减促销 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? PromotionDiscount { get; set; } = 0.00M; + + /// + /// 偏远运费,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? RemoteFee { get; set; } = 0.00M; + + /// + /// 应付金额,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? ShouldPay { get; set; } = 0.00M; + [Column(StringLength = 50, IsNullable = false)] public string SkuId { get; set; } + /// + /// 超级红包,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? SuperRedEnvelope { get; set; } = 0.00M; + + /// + /// 全球购税费,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TaxFee { get; set; } = 0.00M; + /// /// Sku标题 /// - [Column(StringLength = 255)] + [JsonProperty] public string Title { get; set; } - [Column(StringLength = 255)] - public string Logo { get; set; } + /// + /// 退换货无忧,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TuiHuanHuoWuYou { get; set; } = 0.00M; /// - /// 代发信息Id + /// 商家运费,计价单位:元 /// - [Column(DbType = "bigint(1)", IsNullable = true)] - public long? OrderDropShippingId { get; set; } + [Column(DbType = "decimal(18,2)")] + public decimal? VenderFee { get; set; } = 0.00M; /// - /// 是否售后 + /// 限品类东券,计价单位:元 /// - [Column(DbType = "bit")] - public bool IsRefund { get; set; } = false; + [Column(DbType = "decimal(18,2)")] + public decimal? XianPinLeiDongQuan { get; set; } = 0.00M; + + /// + /// 限品类京券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? XianPinLeiJingQuan { get; set; } = 0.00M; + + /// + /// 支付营销优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? ZhiFuYingXiaoYouHui { get; set; } = 0.00M; - [Column(IsIgnore = true)] - public long ShopId { get; set; } } } diff --git a/BBWY.Server.Model/Db/Order/Ordertotalinfo.cs b/BBWY.Server.Model/Db/Order/Ordertotalinfo.cs new file mode 100644 index 00000000..87837842 --- /dev/null +++ b/BBWY.Server.Model/Db/Order/Ordertotalinfo.cs @@ -0,0 +1,197 @@ +using FreeSql.DatabaseModel; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; +using Newtonsoft.Json; +using FreeSql.DataAnnotations; + +namespace BBWY.Server.Model.Db +{ + + /// + /// 订单合计信息表 + /// + [Table(Name = "ordertotalinfo", DisableSyncStructure = true)] + public partial class OrderTotalInfo + { + + [Column(StringLength = 50, IsPrimary = true, IsNullable = false)] + public string Id { get; set; } + + /// + /// 合计满期赠促销 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalExpiryGiftDiscount { get; set; } = 0.00M; + + /// + /// 合计全球购一般税,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalGlobalGeneralTax { get; set; } = 0.00M; + + /// + /// 合计偏远运费,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalRemoteFee { get; set; } = 0.00M; + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + /// + /// 合计余额,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalBalance { get; set; } = 0.00M; + + /// + /// 合计基础优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalBaseDiscount { get; set; } = 0.00M; + + /// + /// 合计基础运费,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalBaseFee { get; set; } = 0.00M; + + /// + /// 合计优惠券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalCoupon { get; set; } = 0.00M; + + /// + /// 合计东券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalDongQuan { get; set; } = 0.00M; + + /// + /// 合计全球购一般包税,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalGlobalGeneralIncludeTax { get; set; } = 0.00M; + + /// + /// 合计单品金额,计价单位:元 + /// + + public decimal? TotalItemPrice { get; set; } = 0.00M; + + /// + /// 合计京东支付优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalJdZhiFuYouHui { get; set; } = 0.00M; + + /// + /// 合计京豆,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalJingDou { get; set; } = 0.00M; + + /// + /// 合计京券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalJingQuan { get; set; } = 0.00M; + + /// + /// 合计京享礼金,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalJingXiangLiJin { get; set; } = 0.00M; + + /// + /// 合计礼金优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalLiJinYouHui { get; set; } = 0.00M; + + /// + /// 合计落地配服务,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalLuoDiPeiService { get; set; } = 0.00M; + + /// + /// 合计满减,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalManJian { get; set; } = 0.00M; + + /// + /// 合计按比例平台承担优惠券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalPingTaiChengDanYouHuiQuan { get; set; } = 0.00M; + + /// + /// 合计plus会员95折优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalPlus95 { get; set; } = 0.00M; + + /// + /// 合计跨店满减促销 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalPromotionDiscount { get; set; } = 0.00M; + + /// + /// 合计应付金额,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalShouldPay { get; set; } = 0.00M; + + /// + /// 合计超级红包,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalSuperRedEnvelope { get; set; } = 0.00M; + + /// + /// 合计全球购税费,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalTaxFee { get; set; } = 0.00M; + + /// + /// 合计退换货无忧,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalTuiHuanHuoWuYou { get; set; } = 0.00M; + + /// + /// 合计商家运费,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalVenderFee { get; set; } = 0.00M; + + /// + /// 合计限品类东券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalXianPinLeiDongQuan { get; set; } = 0.00M; + + /// + /// 合计限品类京券,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalXianPinLeiJingQuan { get; set; } = 0.00M; + + /// + /// 合计支付营销优惠,计价单位:元 + /// + [Column(DbType = "decimal(18,2)")] + public decimal? TotalZhiFuYingXiaoYouHui { get; set; } = 0.00M; + + } + +} diff --git a/BBWY.Server.Model/Db/Product/Product.cs b/BBWY.Server.Model/Db/Product/Product.cs index e92d858a..704023d7 100644 --- a/BBWY.Server.Model/Db/Product/Product.cs +++ b/BBWY.Server.Model/Db/Product/Product.cs @@ -1,50 +1,59 @@ using FreeSql.DataAnnotations; +using Newtonsoft.Json; using System; namespace BBWY.Server.Model.Db { [Table(Name = "product", DisableSyncStructure = true)] - public partial class Product { - - /// - /// SPU - /// - [Column(StringLength = 50, IsPrimary = true, IsNullable = false)] - public string Id { get; set; } - - [Column(DbType = "datetime")] - public DateTime? CreateTime { get; set; } - - [Column(DbType = "int(1)", MapType = typeof(int))] - public Enums.Platform Platform { get; set; } - - /// - /// 货号 - /// - [Column(StringLength = 100)] - public string ProductItemNum { get; set; } - - - public long? ShopId { get; set; } - - /// - /// 标题 - /// - - public string Title { get; set; } - - /// - /// 主SkuId - /// - [Column(StringLength = 50)] - public string MainSkuId { get; set; } - - /// - /// 京东商品状态【-1:删除 1:从未上架 2:自主下架 4:系统下架 8:上架 513:从未上架待审 514:自主下架待审 516:系统下架待审 520:上架待审核 1028:系统下架审核失败】 - /// - public int? State { get; set; } - - } + public partial class Product + { + + /// + /// SPU + /// + [Column(StringLength = 50, IsPrimary = true, IsNullable = false)] + public string Id { get; set; } + + [Column(DbType = "datetime")] + public DateTime? CreateTime { get; set; } + + [Column(DbType = "int(1)", MapType = typeof(int))] + public Enums.Platform Platform { get; set; } + + /// + /// 货号 + /// + [Column(StringLength = 100)] + public string ProductItemNum { get; set; } + + + public long? ShopId { get; set; } + + /// + /// 标题 + /// + + public string Title { get; set; } + + /// + /// 主SkuId + /// + [Column(StringLength = 50)] + public string MainSkuId { get; set; } + + /// + /// 京东商品状态【-1:删除 1:从未上架 2:自主下架 4:系统下架 8:上架 513:从未上架待审 514:自主下架待审 516:系统下架待审 520:上架待审核 1028:系统下架审核失败】 + /// + public int? State { get; set; } + + /// + /// 商品阶段 新品款=0 成长款=1 日销款=2 TOP款=3 清仓款=4 + /// + [Column(DbType = "int", MapType = typeof(int?))] + public Enums.Stage? Stage { get; set; } = 0; + + + } } diff --git a/BBWY.Server.Model/Enums.cs b/BBWY.Server.Model/Enums.cs index 862b646e..47f8deff 100644 --- a/BBWY.Server.Model/Enums.cs +++ b/BBWY.Server.Model/Enums.cs @@ -388,5 +388,13 @@ { 可销售 = 1, 待退品 = 2, 商家预留 = 3, 仓库锁定 = 4, 临期锁定 = 5, 盘点锁定 = 6, 内配出锁定 = 7, 在途库存 = 8, VMI锁定 = 9, 质押类型 = 10, 过期锁定类型 = 11, 耗材 = 14, TC在途可售 = 15, ERP在途可售 = 16, 业务锁定 = 17, 物权变更锁定 = 18, 物权变更中库存 = 19, 流转单在途 = 20, 越库库存类型 = 21, 待质押库存类型 = 22, 采购在途 = 23 } + + /// + /// 商品阶段 新品款 = 0 成长款 = 1 日销款 = 2 TOP款 = 3 清仓款 = 4 + /// + public enum Stage + { + 新品款 = 0, 成长款 = 1, 日销款 = 2, TOP款 = 3, 清仓款 = 4 + } } }