update
This commit is contained in:
9065
docs/model.ndm2
9065
docs/model.ndm2
File diff suppressed because it is too large
Load Diff
@@ -4,7 +4,7 @@ public class UserOrderProfile : IRegister
|
|||||||
{
|
{
|
||||||
void IRegister.Register(TypeAdapterConfig config)
|
void IRegister.Register(TypeAdapterConfig config)
|
||||||
{
|
{
|
||||||
//config.NewConfig<Source,Destination>()
|
// config.NewConfig<Source,Destination>()
|
||||||
// .Map(dest => dest.FullName, src => $"{src.Firstname} {src.Lastname}");
|
// .Map(dest => dest.FullName, src => $"{src.Firstname} {src.Lastname}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using CMSMicroservice.Domain.Enums;
|
||||||
|
|
||||||
namespace CMSMicroservice.Application.UserOrderCQ.Commands.CreateNewUserOrder;
|
namespace CMSMicroservice.Application.UserOrderCQ.Commands.CreateNewUserOrder;
|
||||||
public record CreateNewUserOrderCommand : IRequest<CreateNewUserOrderResponseDto>
|
public record CreateNewUserOrderCommand : IRequest<CreateNewUserOrderResponseDto>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
|
using CMSMicroservice.Domain.Enums;
|
||||||
using CMSMicroservice.Domain.Events;
|
using CMSMicroservice.Domain.Events;
|
||||||
|
|
||||||
namespace CMSMicroservice.Application.UserOrderCQ.Commands.SubmitShopBuyOrder;
|
namespace CMSMicroservice.Application.UserOrderCQ.Commands.SubmitShopBuyOrder;
|
||||||
public class SubmitShopBuyOrderCommandHandler : IRequestHandler<SubmitShopBuyOrderCommand, SubmitShopBuyOrderResponseDto>
|
|
||||||
|
public class
|
||||||
|
SubmitShopBuyOrderCommandHandler : IRequestHandler<SubmitShopBuyOrderCommand, SubmitShopBuyOrderResponseDto>
|
||||||
{
|
{
|
||||||
private readonly IApplicationDbContext _context;
|
private readonly IApplicationDbContext _context;
|
||||||
|
|
||||||
@@ -9,9 +13,35 @@ public class SubmitShopBuyOrderCommandHandler : IRequestHandler<SubmitShopBuyOrd
|
|||||||
_context = context;
|
_context = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<SubmitShopBuyOrderResponseDto> Handle(SubmitShopBuyOrderCommand request, CancellationToken cancellationToken)
|
public async Task<SubmitShopBuyOrderResponseDto> Handle(SubmitShopBuyOrderCommand request,
|
||||||
|
CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
//TODO: Implement your business logic
|
var user = await _context.Users
|
||||||
|
.Include(i => i.UserAddresss)
|
||||||
|
.Include(i => i.UserCartss)
|
||||||
|
.ThenInclude(i => i.Product)
|
||||||
|
.FirstOrDefaultAsync(w => w.Id == request.UserId, cancellationToken: cancellationToken);
|
||||||
|
if (user.UserCartss.Count == 0)
|
||||||
|
throw new NotFoundException("UserCart", request.UserId);
|
||||||
|
if (user.UserCartss.Sum(s => s.Count * s.Product.Price) != request.TotalAmount)
|
||||||
|
throw new Exception("مبلغ سفارش با مجموع سبد خرید مطابقت ندارد.");
|
||||||
|
|
||||||
|
await _context.UserOrders.AddAsync(new UserOrder()
|
||||||
|
{
|
||||||
|
Price = request.TotalAmount,
|
||||||
|
PaymentStatus = PaymentStatus.Success,
|
||||||
|
PaymentMethod = PaymentMethod.Wallet,
|
||||||
|
PaymentDate =DateTime.Now,
|
||||||
|
UserId = request.UserId,
|
||||||
|
UserAddressId = user.UserAddresss.First(f=>f.IsDefault).Id
|
||||||
|
}, cancellationToken);
|
||||||
|
await _context.FactorDetailss.AddRangeAsync(user.UserCartss.Select(s => new FactorDetails()
|
||||||
|
{
|
||||||
|
ProductId = s.ProductId,
|
||||||
|
Count = s.Count,
|
||||||
|
UnitPrice = s.Product.Price,
|
||||||
|
|
||||||
|
}), cancellationToken);
|
||||||
return new SubmitShopBuyOrderResponseDto();
|
return new SubmitShopBuyOrderResponseDto();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using CMSMicroservice.Domain.Enums;
|
||||||
|
|
||||||
namespace CMSMicroservice.Application.UserOrderCQ.Commands.SubmitShopBuyOrder;
|
namespace CMSMicroservice.Application.UserOrderCQ.Commands.SubmitShopBuyOrder;
|
||||||
public class SubmitShopBuyOrderResponseDto
|
public class SubmitShopBuyOrderResponseDto
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using CMSMicroservice.Domain.Enums;
|
||||||
|
|
||||||
namespace CMSMicroservice.Application.UserOrderCQ.Commands.UpdateUserOrder;
|
namespace CMSMicroservice.Application.UserOrderCQ.Commands.UpdateUserOrder;
|
||||||
public record UpdateUserOrderCommand : IRequest<Unit>
|
public record UpdateUserOrderCommand : IRequest<Unit>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using CMSMicroservice.Domain.Enums;
|
||||||
|
|
||||||
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter;
|
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter;
|
||||||
public record GetAllUserOrderByFilterQuery : IRequest<GetAllUserOrderByFilterResponseDto>
|
public record GetAllUserOrderByFilterQuery : IRequest<GetAllUserOrderByFilterResponseDto>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class GetAllUserOrderByFilterQueryHandler : IRequestHandler<GetAllUserOrd
|
|||||||
.Where(x => request.Filter.Price == null || x.Price == request.Filter.Price)
|
.Where(x => request.Filter.Price == null || x.Price == request.Filter.Price)
|
||||||
.Where(x => request.Filter.PackageId == null || x.PackageId == request.Filter.PackageId)
|
.Where(x => request.Filter.PackageId == null || x.PackageId == request.Filter.PackageId)
|
||||||
.Where(x => request.Filter.TransactionId == null || x.TransactionId == request.Filter.TransactionId)
|
.Where(x => request.Filter.TransactionId == null || x.TransactionId == request.Filter.TransactionId)
|
||||||
.Where(x => request.Filter.PaymentStatus == null || x.PaymentStatus.GetHashCode() == request.Filter.PaymentStatus)
|
.Where(x => request.Filter.PaymentStatus == null || x.PaymentStatus.GetHashCode() == request.Filter.PaymentStatus.Value.GetHashCode())
|
||||||
.Where(x => request.Filter.PaymentDate == null || x.PaymentDate == request.Filter.PaymentDate)
|
.Where(x => request.Filter.PaymentDate == null || x.PaymentDate == request.Filter.PaymentDate)
|
||||||
.Where(x => request.Filter.UserId == null || x.UserId == request.Filter.UserId)
|
.Where(x => request.Filter.UserId == null || x.UserId == request.Filter.UserId)
|
||||||
.Where(x => request.Filter.UserAddressId == null || x.UserAddressId == request.Filter.UserAddressId)
|
.Where(x => request.Filter.UserAddressId == null || x.UserAddressId == request.Filter.UserAddressId)
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using CMSMicroservice.Domain.Enums;
|
||||||
|
|
||||||
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter;
|
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter;
|
||||||
public class GetAllUserOrderByFilterResponseDto
|
public class GetAllUserOrderByFilterResponseDto
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using CMSMicroservice.Domain.Enums;
|
||||||
|
|
||||||
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetUserOrder;
|
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetUserOrder;
|
||||||
public class GetUserOrderResponseDto
|
public class GetUserOrderResponseDto
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using CMSMicroservice.Domain.Enums;
|
||||||
|
|
||||||
namespace CMSMicroservice.Domain.Entities;
|
namespace CMSMicroservice.Domain.Entities;
|
||||||
//سفارش کاربر
|
//سفارش کاربر
|
||||||
public class UserOrder : BaseAuditableEntity
|
public class UserOrder : BaseAuditableEntity
|
||||||
|
|||||||
1367
src/CMSMicroservice.Infrastructure/Persistence/Migrations/20251122183829_u09.Designer.cs
generated
Normal file
1367
src/CMSMicroservice.Infrastructure/Persistence/Migrations/20251122183829_u09.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,30 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace CMSMicroservice.Infrastructure.Persistence.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class u09 : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<int>(
|
||||||
|
name: "PaymentMethod",
|
||||||
|
schema: "CMS",
|
||||||
|
table: "UserOrders",
|
||||||
|
type: "int",
|
||||||
|
nullable: true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "PaymentMethod",
|
||||||
|
schema: "CMS",
|
||||||
|
table: "UserOrders");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -912,6 +912,9 @@ namespace CMSMicroservice.Infrastructure.Persistence.Migrations
|
|||||||
b.Property<DateTime?>("PaymentDate")
|
b.Property<DateTime?>("PaymentDate")
|
||||||
.HasColumnType("datetime2");
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<int?>("PaymentMethod")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
b.Property<int>("PaymentStatus")
|
b.Property<int>("PaymentStatus")
|
||||||
.HasColumnType("int");
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user