diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/UpdateStaffRemarkInput.cs b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/UpdateStaffRemarkInput.cs new file mode 100644 index 00000000..53c5a346 --- /dev/null +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/Dtos/UpdateStaffRemarkInput.cs @@ -0,0 +1,10 @@ +using System; + +namespace EasyAbp.EShop.Orders.Orders.Dtos +{ + [Serializable] + public class UpdateStaffRemarkInput + { + public string StaffRemark { get; set; } + } +} \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/IOrderAppService.cs b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/IOrderAppService.cs index 3ea9ba11..5c6ae2cc 100644 --- a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/IOrderAppService.cs +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application.Contracts/EasyAbp/EShop/Orders/Orders/IOrderAppService.cs @@ -17,5 +17,7 @@ namespace EasyAbp.EShop.Orders.Orders Task CompleteAsync(Guid id); Task CancelAsync(Guid id, CancelOrderInput input); + + Task UpdateStaffRemarkAsync(Guid id, UpdateStaffRemarkInput input); } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/OrderAppService.cs b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/OrderAppService.cs index c63969f8..90f9c5c8 100644 --- a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/OrderAppService.cs +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp/EShop/Orders/Orders/OrderAppService.cs @@ -8,7 +8,6 @@ using EasyAbp.EShop.Products.Products; using EasyAbp.EShop.Products.Products.Dtos; using EasyAbp.EShop.Stores.Stores; using Microsoft.AspNetCore.Authorization; -using Microsoft.Extensions.DependencyInjection; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.Users; @@ -179,5 +178,18 @@ namespace EasyAbp.EShop.Orders.Orders return await MapToGetOutputDtoAsync(order); } + + public virtual async Task UpdateStaffRemarkAsync(Guid id, UpdateStaffRemarkInput input) + { + var order = await GetEntityByIdAsync(id); + + await CheckMultiStorePolicyAsync(order.StoreId, OrdersPermissions.Orders.Manage); + + order.SetStaffRemark(input.StaffRemark); + + await Repository.UpdateAsync(order, true); + + return await MapToGetOutputDtoAsync(order); + } } } \ No newline at end of file diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/Order.cs b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/Order.cs index 317a16dc..edd69f01 100644 --- a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/Order.cs +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp/EShop/Orders/Orders/Order.cs @@ -214,5 +214,10 @@ namespace EasyAbp.EShop.Orders.Orders TotalPrice += extraFee; ActualTotalPrice += extraFee; } + + public void SetStaffRemark(string staffRemark) + { + StaffRemark = staffRemark; + } } } diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.HttpApi/EasyAbp/EShop/Orders/Orders/OrderController.cs b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.HttpApi/EasyAbp/EShop/Orders/Orders/OrderController.cs index 7e38bc60..b109f3af 100644 --- a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.HttpApi/EasyAbp/EShop/Orders/Orders/OrderController.cs +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.HttpApi/EasyAbp/EShop/Orders/Orders/OrderController.cs @@ -74,5 +74,12 @@ namespace EasyAbp.EShop.Orders.Orders return _service.CancelAsync(id, input); } + + [HttpPut] + [Route("{id}/staff-remark")] + public virtual Task UpdateStaffRemarkAsync(Guid id, UpdateStaffRemarkInput input) + { + return _service.UpdateStaffRemarkAsync(id, input); + } } }