Commit 28f4937d authored by 吴春's avatar 吴春

提交代码

parent 5f380dca
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Mall.CacheManager\Mall.CacheManager.csproj" />
<ProjectReference Include="..\Mall.Common\Mall.Common.csproj" /> <ProjectReference Include="..\Mall.Common\Mall.Common.csproj" />
<ProjectReference Include="..\Mall.DataAccess\Mall.DataAccess.csproj" /> <ProjectReference Include="..\Mall.DataAccess\Mall.DataAccess.csproj" />
<ProjectReference Include="..\Mall.Model\Mall.Model.csproj" /> <ProjectReference Include="..\Mall.Model\Mall.Model.csproj" />
......
using DapperExtensions.Lambda; using DapperExtensions.Lambda;
using Mall.CacheManager.AppletWeChat;
using Mall.Common; using Mall.Common;
using Mall.Common.Enum.Goods; using Mall.Common.Enum.Goods;
using Mall.Common.Enum.User; using Mall.Common.Enum.User;
...@@ -322,11 +323,14 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A ...@@ -322,11 +323,14 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
{ {
try try
{ {
Dictionary<string, object> keyValues = new Dictionary<string, object>() { }; string cacheOrderId = OrderPayReidsCache.Get(qitem.OrderId.ToString());
keyValues.Add(nameof(RB_Goods_Order_Extend.OrderStatus), OrderStatusEnum.Cancel); if (string.IsNullOrWhiteSpace(cacheOrderId))
keyValues.Add(nameof(RB_Goods_Order_Extend.CancelTime), DateTime.Now); {
Dictionary<string, object> keyValues = new Dictionary<string, object>() { };
keyValues.Add(nameof(RB_Goods_Order_Extend.OrderStatus), OrderStatusEnum.Cancel);
keyValues.Add(nameof(RB_Goods_Order_Extend.CancelTime), DateTime.Now);
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName=nameof(RB_Goods_Order_Extend.OrderId), FiledName=nameof(RB_Goods_Order_Extend.OrderId),
FiledValue=qitem.OrderId, FiledValue=qitem.OrderId,
...@@ -348,155 +352,156 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A ...@@ -348,155 +352,156 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
bool flag = goods_OrderRepository.Update(keyValues, wheres); bool flag = goods_OrderRepository.Update(keyValues, wheres);
if (flag) if (flag)
{
//回滚商品库存
if (true)
{ {
int tenantId = item.TenantId; //回滚商品库存
int mallBaseId = item.MallBaseId; if (true)
int TotalIntegralNumber = 0;
var detailList = goodsOrderDetailRepository.GetOrderDetailList(new RB_Goods_OrderDetail_Extend() { OrderId = qitem.OrderId, TenantId = tenantId, MallBaseId = mallBaseId });
if (detailList.Any())
{ {
string goodsIds = string.Join(",", detailList.Select(x => x.GoodsId ?? 0).Distinct()); int tenantId = item.TenantId;
var goodsList = goodsRepository.GetList(new RB_Goods_Extend() { GoodsIds = goodsIds, TenantId = tenantId, MallBaseId = mallBaseId }); int mallBaseId = item.MallBaseId;
var speciPList = goods_SpecificationPriceRepository.GetList(new RB_Goods_SpecificationPrice_Extend() { GoodsIds = goodsIds, TenantId = tenantId, MallBaseId = mallBaseId }); int TotalIntegralNumber = 0;
var detailList = goodsOrderDetailRepository.GetOrderDetailList(new RB_Goods_OrderDetail_Extend() { OrderId = qitem.OrderId, TenantId = tenantId, MallBaseId = mallBaseId });
foreach (var ditem in detailList) if (detailList.Any())
{ {
var gmodel = goodsList.Where(x => x.Id == ditem.GoodsId).FirstOrDefault(); string goodsIds = string.Join(",", detailList.Select(x => x.GoodsId ?? 0).Distinct());
if (gmodel == null) var goodsList = goodsRepository.GetList(new RB_Goods_Extend() { GoodsIds = goodsIds, TenantId = tenantId, MallBaseId = mallBaseId });
{ var speciPList = goods_SpecificationPriceRepository.GetList(new RB_Goods_SpecificationPrice_Extend() { GoodsIds = goodsIds, TenantId = tenantId, MallBaseId = mallBaseId });
continue;
} foreach (var ditem in detailList)
if (string.IsNullOrEmpty(ditem.SpecificationSort))
{ {
if (gmodel.IsCustomSpecification == 1) var gmodel = goodsList.Where(x => x.Id == ditem.GoodsId).FirstOrDefault();
if (gmodel == null)
{ {
continue; continue;
} }
} if (string.IsNullOrEmpty(ditem.SpecificationSort))
else
{
if (gmodel.IsCustomSpecification != 1)
{ {
continue; if (gmodel.IsCustomSpecification == 1)
{
continue;
}
} }
var speciPModel = speciPList.Where(x => x.GoodsId == ditem.GoodsId && x.SpecificationSort == ditem.SpecificationSort).FirstOrDefault(); else
if (speciPModel == null)
{ {
continue; if (gmodel.IsCustomSpecification != 1)
} {
//更新商品规格表库存 + 商品表总库存 continue;
Dictionary<string, object> keyValues2 = new Dictionary<string, object>() { }
var speciPModel = speciPList.Where(x => x.GoodsId == ditem.GoodsId && x.SpecificationSort == ditem.SpecificationSort).FirstOrDefault();
if (speciPModel == null)
{
continue;
}
//更新商品规格表库存 + 商品表总库存
Dictionary<string, object> keyValues2 = new Dictionary<string, object>() {
{ nameof(RB_Goods_SpecificationPrice_Extend.InventoryNum), (speciPModel.InventoryNum??0)+(ditem.Number??0)} { nameof(RB_Goods_SpecificationPrice_Extend.InventoryNum), (speciPModel.InventoryNum??0)+(ditem.Number??0)}
}; };
List<WhereHelper> wheres2 = new List<WhereHelper>() { List<WhereHelper> wheres2 = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName=nameof(RB_Goods_SpecificationPrice_Extend.Id), FiledName=nameof(RB_Goods_SpecificationPrice_Extend.Id),
FiledValue=speciPModel.Id, FiledValue=speciPModel.Id,
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
goods_SpecificationPriceRepository.Update(keyValues2, wheres2); goods_SpecificationPriceRepository.Update(keyValues2, wheres2);
} }
//更新商品表库存 //更新商品表库存
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() { Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Goods_Extend.InventoryNum), (gmodel.InventoryNum??0)+(ditem.Number??0)} { nameof(RB_Goods_Extend.InventoryNum), (gmodel.InventoryNum??0)+(ditem.Number??0)}
}; };
List<WhereHelper> wheres1 = new List<WhereHelper>() { List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName=nameof(RB_Goods_Extend.Id), FiledName=nameof(RB_Goods_Extend.Id),
FiledValue=gmodel.Id, FiledValue=gmodel.Id,
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
goodsRepository.Update(keyValues1, wheres1); goodsRepository.Update(keyValues1, wheres1);
goods_LogRepository.Insert(new Mall.Model.Entity.Product.RB_Goods_Log() goods_LogRepository.Insert(new Mall.Model.Entity.Product.RB_Goods_Log()
{ {
Id = 0, Id = 0,
Type = 2, Type = 2,
SourceId = ditem.GoodsId, SourceId = ditem.GoodsId,
Content = $"取消订单{qitem.OrderId},还原商品库存:" + ditem.Number, Content = $"取消订单{qitem.OrderId},还原商品库存:" + ditem.Number,
CreateDate = DateTime.Now, CreateDate = DateTime.Now,
MallBaseId = mallBaseId, MallBaseId = mallBaseId,
TenantId = tenantId TenantId = tenantId
}); });
if (ditem.IntegralNumber > 0) if (ditem.IntegralNumber > 0)
{ {
TotalIntegralNumber += (ditem.IntegralNumber ?? 0); TotalIntegralNumber += (ditem.IntegralNumber ?? 0);
}
} }
} }
} var umodel = member_UserRepository.GetEntity(qitem.UserId);
var umodel = member_UserRepository.GetEntity(qitem.UserId); //积分抵扣回滚
//积分抵扣回滚 if (TotalIntegralNumber > 0)
if (TotalIntegralNumber > 0) {
{ Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Member_User_Extend.Integral),umodel.Integral + TotalIntegralNumber} { nameof(RB_Member_User_Extend.Integral),umodel.Integral + TotalIntegralNumber}
}; };
List<WhereHelper> wheres1 = new List<WhereHelper>() { List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName=nameof(RB_Member_User_Extend.Id), FiledName=nameof(RB_Member_User_Extend.Id),
FiledValue=umodel.Id, FiledValue=umodel.Id,
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
bool flag2 = member_UserRepository.Update(keyValues1, wheres1); bool flag2 = member_UserRepository.Update(keyValues1, wheres1);
if (flag2) if (flag2)
{
member_IntegralRepository.Insert(new Mall.Model.Entity.User.RB_Member_Integral()
{ {
Id = 0, member_IntegralRepository.Insert(new Mall.Model.Entity.User.RB_Member_Integral()
CreateDate = DateTime.Now, {
Description = "订单取消返回积分抵扣,订单号:" + qitem.OrderNo, Id = 0,
Image = 0, CreateDate = DateTime.Now,
Integral = TotalIntegralNumber, Description = "订单取消返回积分抵扣,订单号:" + qitem.OrderNo,
MallBaseId = item.MallBaseId, Image = 0,
PlatformType = qitem.OrderSource, Integral = TotalIntegralNumber,
Remarks = "", MallBaseId = item.MallBaseId,
TenantId = item.TenantId, PlatformType = qitem.OrderSource,
Type = Common.Enum.MarketingCenter.RecordTypeEnum.Income, Remarks = "",
UserId = qitem.UserId, TenantId = item.TenantId,
OrderId = qitem.OrderId Type = Common.Enum.MarketingCenter.RecordTypeEnum.Income,
}); UserId = qitem.UserId,
OrderId = qitem.OrderId
});
}
} }
} //优惠券回滚
//优惠券回滚 if (!string.IsNullOrEmpty(qitem.CouponsIds))
if (!string.IsNullOrEmpty(qitem.CouponsIds))
{
var cList = member_CouponRepository.GetList(new RB_Member_DiscountCoupon_Extend() { UseState = 1, Ids = qitem.CouponsIds, UserId = qitem.UserId, TenantId = item.TenantId, MallBaseId = item.MallBaseId });
foreach (var citem in cList)
{ {
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() { var cList = member_CouponRepository.GetList(new RB_Member_DiscountCoupon_Extend() { UseState = 1, Ids = qitem.CouponsIds, UserId = qitem.UserId, TenantId = item.TenantId, MallBaseId = item.MallBaseId });
foreach (var citem in cList)
{
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Member_DiscountCoupon_Extend.UseState),0} { nameof(RB_Member_DiscountCoupon_Extend.UseState),0}
}; };
List<WhereHelper> wheres1 = new List<WhereHelper>() { List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName=nameof(RB_Member_DiscountCoupon_Extend.Id), FiledName=nameof(RB_Member_DiscountCoupon_Extend.Id),
FiledValue=citem.Id, FiledValue=citem.Id,
OperatorEnum=OperatorEnum.Equal OperatorEnum=OperatorEnum.Equal
} }
}; };
member_CouponRepository.Update(keyValues1, wheres1); member_CouponRepository.Update(keyValues1, wheres1);
}
} }
} //余额支付回滚
//余额支付回滚
}
goods_LogRepository.Insert(new Mall.Model.Entity.Product.RB_Goods_Log()
{
Id = 0,
Type = 1,
SourceId = qitem.OrderId,
Content = "订单超时,自动取消订单",
CreateDate = DateTime.Now,
MallBaseId = item.MallBaseId,
TenantId = item.TenantId
});
} }
goods_LogRepository.Insert(new Mall.Model.Entity.Product.RB_Goods_Log()
{
Id = 0,
Type = 1,
SourceId = qitem.OrderId,
Content = "订单超时,自动取消订单",
CreateDate = DateTime.Now,
MallBaseId = item.MallBaseId,
TenantId = item.TenantId
});
} }
} }
catch (Exception ex) catch (Exception ex)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment