步步为盈
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.

103 lines
7.6 KiB

using BBWY.Common.Models;
using BBWY.Server.Model.Db;
using BBWY.Server.Model.Dto;
using System;
using System.Collections.Generic;
using System.Text;
using Yitter.IdGenerator;
namespace BBWY.Server.Business
{
public class ServiceOrderBusiness : BaseBusiness, IDenpendency
{
public ServiceOrderBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator)
{
}
public ServiceOrderResponse GetList(ClientQueryServiceOrderRequest request)
{
if (request.EndDate != null)
request.EndDate = request.EndDate.Value.Date.AddDays(1).AddSeconds(-1);
var list = fsql.Select<ServiceOrder, Order, OrderSku>()
.InnerJoin((s, o, osku) => s.OrderId == o.Id)
.InnerJoin((s, o, osku) => s.OrderId == osku.OrderId && s.SkuId == osku.SkuId)
.Where((s, o, osku) => s.ShopId == request.ShopId)
.WhereIf(!string.IsNullOrEmpty(request.Sku), (s, o, osku) => s.SkuId == request.Sku)
.WhereIf(!string.IsNullOrEmpty(request.Spu), (s, o, osku) => s.ProductId == request.Spu)
.WhereIf(!string.IsNullOrEmpty(request.OrderId), (s, o, osku) => s.OrderId == request.OrderId)
.WhereIf(!string.IsNullOrEmpty(request.ServiceId), (s, o, osku) => s.ServiceId == request.ServiceId)
.WhereIf(request.ServiceOrderState != null, (s, o, osku) => s.Status == request.ServiceOrderState)
.WhereIf(request.ServiceOrderState == null, (s, o, osku) => s.Status != Model.Enums.ServiceOrderState.)
.WhereIf(request.ReturnDirection != null, (s, o, osku) => s.ReturnDirection == request.ReturnDirection)
.WhereIf(request.StartDate != null, (s, o, osku) => s.ApplyTime >= request.StartDate)
.WhereIf(request.EndDate != null, (s, o, osku) => s.ApplyTime <= request.EndDate)
.OrderByDescending((s, o, osku) => s.ApplyTime)
.Count(out var total)
.Page(request.PageIndex, request.PageSize)
.ToList((s, o, osku) => new ServiceOrderItemResponse
{
Id = s.Id,
ApplyTime = s.ApplyTime,
CreateTime = s.CreateTime,
ExpressName = s.ExpressName,
WayBillNo = s.WayBillNo,
ImageName = s.ImageName,
OrderId = s.OrderId,
SkuId = s.SkuId,
ProductId = s.ProductId,
ProductAppearance = s.ProductAppearance,
ProductFunction = s.ProductFunction,
ProductHealth = s.ProductHealth,
ProductPackage = s.ProductPackage,
ServiceResult = s.ServiceResult,
TransportDetails = s.TransportDetails,
WareHouseGrounpRemark = s.WareHouseGrounpRemark,
Status = s.Status,
ServiceId = s.ServiceId,
ShopId = s.ShopId,
RenewalOrderId = s.RenewalOrderId,
ReturnCheckRemark = s.ReturnCheckRemark,
Title = osku.Title,
ItemTotal = osku.ItemTotal.Value,
Logo = osku.Logo,
Price = osku.Price.Value,
SkuItemCount = osku.ItemTotal.Value,
ReturnDirection = s.ReturnDirection,
ServiceOrderRemark = s.ServiceOrderRemark,
StatusUpdateTime = s.StatusUpdateTime,
PurchaseOrderId = s.PurchaseOrderId,
PurchasePlatform = s.PurchasePlatform,
StorageType = o.StorageType
});
return new ServiceOrderResponse()
{
Count = total,
Items = list
};
}
public void EditServiceOrder(EditQueryServiceOrderRequest request)
{
fsql.Transaction(() =>
{
fsql.Update<ServiceOrder>(request.ServicePId).Set(s => s.ServiceResult, request.ServiceResult)
.Set(s => s.SDRefundFreight, request.SDRefundFreight)
.Set(s => s.ReturnDirection, request.ReturnDirection)
.Set(s => s.RenewalOrderId, request.RenewalOrderId)
.Set(s => s.ReissueAfterSaleAmount, request.ReissueAfterSaleAmount)
.Set(s => s.ReturnCheckRemark, request.ReturnCheckRemark)
.Set(s => s.RenewalType, request.RenewalType)
.Set(s => s.RenewalPurchaseOrderId, request.RenewalPurchaseOrderId)
.Set(s => s.RenewalPurchasePlatform, request.RenewalPurchasePlatform)
.Set(s => s.ReissueFreight, request.ReissueFreight)
.Set(s => s.ReissueProductAmount, request.ReissueProductAmount)
.ExecuteAffrows();
});
}
}
}