Browse Source

新增订单留言

yijia
shanji 2 years ago
parent
commit
49bdfb2d77
  1. 13
      BBWYB.Server.API/Controllers/BaseApiController.cs
  2. 6
      BBWYB.Server.API/Controllers/OrderController.cs
  3. 32
      BBWYB.Server.API/Controllers/OrderMessageController.cs
  4. 32
      BBWYB.Server.Business/MDS/MDSBusiness.cs
  5. 47
      BBWYB.Server.Business/Order/Message/OrderMessageBusiness.cs
  6. 8
      BBWYB.Server.Business/Order/OrderBusiness.cs
  7. 35
      BBWYB.Server.Model/Db/Order/OrderMessage.cs
  8. 15
      BBWYB.Server.Model/Dto/Request/Order/AddOrderMessageRequest.cs
  9. 11
      BBWYB.Server.Model/Dto/Response/MDS/UserInfoResponse.cs
  10. 8
      BBWYB.Server.Model/Dto/Response/Order/OrderMessageResponse.cs
  11. 2
      BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs

13
BBWYB.Server.API/Controllers/BaseApiController.cs

@ -1,5 +1,7 @@
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
namespace BBWYB.Server.API.Controllers
{
[Produces("application/json")]
@ -13,5 +15,16 @@ namespace BBWYB.Server.API.Controllers
{
this.httpContextAccessor = httpContextAccessor;
}
protected string GetUserId()
{
return httpContextAccessor?.HttpContext?.User.Claims.Where(x => x.Type == "userId")?.FirstOrDefault()?.Value;
}
protected string GetToken()
{
httpContextAccessor.HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues token);
return token;
}
}
}

6
BBWYB.Server.API/Controllers/OrderController.cs

@ -68,10 +68,8 @@ namespace BBWYB.Server.API.Controllers
[HttpPost]
public void CancelOrder([FromBody] CancelOrderRequest request)
{
if (!httpContextAccessor.HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues token))
throw new Exception("未获取到token");
orderBusiness.CancelOrder(request, token.ToString());
var token = GetToken();
orderBusiness.CancelOrder(request, token);
}
/// <summary>

32
BBWYB.Server.API/Controllers/OrderMessageController.cs

@ -0,0 +1,32 @@
using BBWYB.Server.Business;
using BBWYB.Server.Model.Dto;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace BBWYB.Server.API.Controllers
{
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class OrderMessageController : BaseApiController
{
private OrderMessageBusiness orderMessageBusiness;
public OrderMessageController(IHttpContextAccessor httpContextAccessor, OrderMessageBusiness orderMessageBusiness) : base(httpContextAccessor)
{
this.orderMessageBusiness = orderMessageBusiness;
}
[HttpPost]
public void AddOrderMessage([FromBody] AddOrderMessageRequest request)
{
var token = GetToken();
orderMessageBusiness.AddOrderMessage(request, token);
}
[HttpGet("{orderId}")]
public IList<OrderMessageResponse> GetOrderMessageList([FromRoute] string orderId)
{
return orderMessageBusiness.GetOrderMessageList(orderId);
}
}
}

32
BBWYB.Server.Business/MDS/MDSBusiness.cs

@ -0,0 +1,32 @@
using BBWYB.Common.Http;
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model.Dto;
using Newtonsoft.Json;
using Yitter.IdGenerator;
namespace BBWYB.Server.Business
{
public class MDSBusiness : BaseBusiness, IDenpendency
{
private RestApiService restApiService;
public MDSBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, RestApiService restApiService) : base(fsql, nLogManager, idGenerator)
{
this.restApiService = restApiService;
}
public UserInfoResponse GetUserInfo(string token)
{
var httpResult = restApiService.SendRequest("http://mdsapi.qiyue666.com/", "TaskList/User/GetUserInfo", null, new Dictionary<string, string>()
{
{ "Authorization",token}
}, HttpMethod.Get);
if (httpResult.StatusCode != System.Net.HttpStatusCode.OK)
throw new BusinessException($"获取用户信息失败 {httpResult.Content}");
var response = JsonConvert.DeserializeObject<ApiResponse<UserInfoResponse>>(httpResult.Content);
if (!response.Success)
throw new BusinessException($"获取用户信息失败 {response.Msg}");
return response.Data;
}
}
}

47
BBWYB.Server.Business/Order/Message/OrderMessageBusiness.cs

@ -0,0 +1,47 @@
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model.Db;
using BBWYB.Server.Model.Dto;
using Yitter.IdGenerator;
namespace BBWYB.Server.Business
{
public class OrderMessageBusiness : BaseBusiness, IDenpendency
{
private MDSBusiness mdsBusiness;
public OrderMessageBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, MDSBusiness mdsBusiness) : base(fsql, nLogManager, idGenerator)
{
this.mdsBusiness = mdsBusiness;
}
public void AddOrderMessage(AddOrderMessageRequest request, string token)
{
if (string.IsNullOrEmpty(request.Message) ||
string.IsNullOrEmpty(request.OrderId) ||
string.IsNullOrEmpty(request.OrderSn) ||
request.ShopId == null ||
request.ShopId == 0)
throw new BusinessException("留言信息不完整");
var user = mdsBusiness.GetUserInfo(token);
var om = new OrderMessage()
{
Id = idGenerator.NewLong(),
CreateTime = DateTime.Now,
CreatorId = user.Id,
CreatorName = user.UserName,
Message = request.Message,
OrderId = request.OrderId,
OrderSn = request.OrderSn,
ShopId = request.ShopId
};
fsql.Insert(om).ExecuteAffrows();
}
public IList<OrderMessageResponse> GetOrderMessageList(string orderId)
{
return fsql.Select<OrderMessage>().Where(om => om.OrderId == orderId).ToList<OrderMessageResponse>();
}
}
}

8
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -257,6 +257,12 @@ namespace BBWYB.Server.Business
}
#endregion
#region 查询订单留言
var orderMessageList = fsql.Select<OrderMessage>().Where(om => orderIdList.Contains(om.OrderId)).ToList<OrderMessageResponse>();
foreach (var order in orderList)
order.OrderMessageList = orderMessageList.Where(om => om.OrderId == order.Id).ToList();
#endregion
#region 处理订单成本明细
var orderCostDetailList = fsql.Select<OrderCostDetail>().Where(ocd => orderIdList.Contains(ocd.OrderId) && ocd.IsEnabled == true).ToList<OrderCostDetailResponse>();
foreach (var order in orderList)
@ -421,6 +427,8 @@ namespace BBWYB.Server.Business
}
#endregion
}
return new OrderListResponse()
{

35
BBWYB.Server.Model/Db/Order/OrderMessage.cs

@ -0,0 +1,35 @@
using FreeSql.DataAnnotations;
namespace BBWYB.Server.Model.Db
{
[Table(Name = "ordermessage", DisableSyncStructure = true)]
public partial class OrderMessage
{
[Column(IsPrimary = true)]
public long Id { get; set; }
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
[Column(StringLength = 50)]
public string CreatorId { get; set; }
[Column(StringLength = 50)]
public string CreatorName { get; set; }
[Column(StringLength = 500)]
public string Message { get; set; }
[Column(StringLength = 50)]
public string OrderId { get; set; }
[Column(StringLength = 50)]
public string OrderSn { get; set; }
public long? ShopId { get; set; }
}
}

15
BBWYB.Server.Model/Dto/Request/Order/AddOrderMessageRequest.cs

@ -0,0 +1,15 @@
namespace BBWYB.Server.Model.Dto
{
public class AddOrderMessageRequest
{
public DateTime? CreateTime { get; set; }
public string Message { get; set; }
public string OrderId { get; set; }
public string OrderSn { get; set; }
public long? ShopId { get; set; }
}
}

11
BBWYB.Server.Model/Dto/Response/MDS/UserInfoResponse.cs

@ -0,0 +1,11 @@
namespace BBWYB.Server.Model.Dto
{
public class UserInfoResponse
{
public string Id { get; set; }
public string UserName { get; set; }
//其余字段需要用到的时候再扩充
}
}

8
BBWYB.Server.Model/Dto/Response/Order/OrderMessageResponse.cs

@ -0,0 +1,8 @@
using BBWYB.Server.Model.Db;
namespace BBWYB.Server.Model.Dto
{
public class OrderMessageResponse : OrderMessage
{
}
}

2
BBWYB.Server.Model/Dto/Response/Order/OrderResponse.cs

@ -154,6 +154,8 @@
public Enums.IntoStoreType? IntoStoreType { get; set; }
public Enums.AutoEditOrderPriceType? IsAutoEditOrderPrice { get; set; }
public IList<OrderMessageResponse> OrderMessageList { get; set; }
}
public class OrderListResponse

Loading…
Cancel
Save