You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
3.1 KiB

using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Business.Sync;
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;
private OrderSyncBusiness orderSyncBusiness;
private FreeSqlMultiDBManager mfsql;
public OrderMessageBusiness(IFreeSql fsql,
NLogManager nLogManager,
IIdGenerator idGenerator,
MDSBusiness mdsBusiness,
OrderSyncBusiness orderSyncBusiness,
FreeSqlMultiDBManager mfsql) : base(fsql, nLogManager, idGenerator)
{
this.mdsBusiness = mdsBusiness;
this.orderSyncBusiness = orderSyncBusiness;
this.mfsql = mfsql;
}
public void AddOrderMessage(AddOrderMessageRequest request, string token, string clientCode)
{
if (string.IsNullOrEmpty(request.Message) ||
string.IsNullOrEmpty(request.OrderId))
throw new BusinessException("留言信息不完整");
if (string.IsNullOrEmpty(clientCode))
throw new BusinessException("缺少客户端标识");
string orderSn = string.Empty;
long? shopId = null;
var order = fsql.Select<Order>(request.OrderId).ToOne();
if (order == null)
{
var bbwyPurchaseOrder = mfsql.BBWYCfsql.Ado.QuerySingle<Model.Db.BBWY.PurchaseOrderV2>($"select * from purchaseorderv2 where Id='{request.OrderId}'");
if (bbwyPurchaseOrder == null)
throw new BusinessException("订单不存在");
else
{
orderSn = bbwyPurchaseOrder.OrderSn;
shopId = bbwyPurchaseOrder.ShopId;
}
}
else
{
orderSn = order.OrderSn;
shopId = order.ShopId;
}
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 = orderSn,
ShopId = shopId,
From = clientCode
};
fsql.Insert(om).ExecuteAffrows();
}
public IList<OrderMessageResponse> GetOrderMessageList(string orderId)
{
return fsql.Select<OrderMessage>().Where(om => om.OrderId == orderId).ToList<OrderMessageResponse>();
}
public IList<OrderMessageResponse> GetOrderMessageList(string[] orderIds)
{
return fsql.Select<OrderMessage>().Where(om => orderIds.Contains(om.OrderId)).ToList<OrderMessageResponse>();
}
}
}