using Fuel.Core;
using Fuel.Core.Models;
using Fuel.Core.Nozzle.Dto;
using FuelServer.Core.Entity;
using Org.BouncyCastle.Ocsp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Transactions;
using static FreeSql.Internal.GlobalFilter;
namespace Fuel.Application.Service
{
public class NozzleService : INozzleService
{
private readonly EntityHelper _entityHelper;
public readonly IFreeSql _fsql;
public NozzleService(EntityHelper entityHelper, IFreeSql fsql)
{
_entityHelper = entityHelper;
_fsql = fsql;
}
#region 油品
///
/// 上传油品
///
///
///
public async Task UploadProduct(UploadProduct uploadProduct)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _product = _fsql.Select().Where(_ => _.Buid == guid && _.ProductId == uploadProduct.ProductId).First();
if (_product != null)
{
return ServiceResponse.Error("油品已存在,请勿重复上传");
}
product product = new product();
product.Buid = guid;
product.ProductId = uploadProduct.ProductId;
product.ProductCode = uploadProduct.ProductCode;
product.ProductName = uploadProduct.ProductName;
product.ProductPrice = uploadProduct.ProductPrice;
int affectedRows = _fsql.Insert().AppendData(product).ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油品信息插入失败");
}
return ServiceResponse.Ok(product);
}
///
/// 更新油品信息
///
///
///
public async Task UpdateProduct(UploadProduct uploadProduct)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _product = _fsql.Select().Where(_ => _.Buid == guid && _.ProductId == uploadProduct.ProductId).First();
if (_product == null)
{
return ServiceResponse.Error("未找到油枪");
}
_product.ProductCode = uploadProduct.ProductCode;
_product.ProductName = uploadProduct.ProductName;
_product.ProductPrice = uploadProduct.ProductPrice;
int affectedRows = _fsql.Update().SetSource(_product).ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油品信息更新失败");
}
return ServiceResponse.Ok(_product);
}
///
/// 删除油品信息
///
///
///
public async Task DeleteProduct(UploadProduct uploadProduct)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _product = _fsql.Select().Where(_ => _.Buid == guid && _.ProductId == uploadProduct.ProductId).First();
if (_product == null)
{
return ServiceResponse.Error("未找到油品");
}
int affectedRows = _fsql.Delete()
.Where(p => p.ProductId == uploadProduct.ProductId)
.ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油品信息删除失败");
}
return ServiceResponse.Ok();
}
#endregion
#region 油罐
///
/// 上传油罐
///
///
///
public async Task UploadTanks(UploadTanks uploadTanks)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _tanks = _fsql.Select().Where(_ => _.Buid == guid && _.TankID == uploadTanks.TankID).First();
if (_tanks != null)
{
return ServiceResponse.Error("油灌已存在,请勿重复上传");
}
tanks tanks = new tanks();
tanks.Buid = guid;
tanks.ProductId = uploadTanks.ProductId;
tanks.TankCapacity = uploadTanks.TankCapacity;
tanks.ProductName = uploadTanks.ProductName;
tanks.TankNumber = uploadTanks.TankNumber;
int affectedRows = _fsql.Insert().AppendData(tanks).ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油灌信息插入失败");
}
return ServiceResponse.Ok(tanks);
}
///
/// 更新油罐
///
///
///
public async Task UpdateTanks(UploadTanks uploadTanks)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _tanks = _fsql.Select().Where(_ => _.Buid == guid && _.TankID == uploadTanks.TankID).First();
if (_tanks != null)
{
return ServiceResponse.Error("油灌已存在,请勿重复上传");
}
_tanks.ProductId = uploadTanks.ProductId;
_tanks.TankCapacity = uploadTanks.TankCapacity;
_tanks.ProductName = uploadTanks.ProductName;
_tanks.TankNumber = uploadTanks.TankNumber;
int affectedRows = _fsql.Update().SetSource(_tanks).ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油灌信息更新失败");
}
return ServiceResponse.Ok(_tanks);
}
///
/// 删除油罐
///
///
///
public async Task DeleteTanks(UploadTanks uploadTanks)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _tanks = _fsql.Select().Where(_ => _.Buid == guid && _.TankID == uploadTanks.TankID).First();
if (_tanks != null)
{
return ServiceResponse.Error("油灌已存在,请勿重复上传");
}
int affectedRows = _fsql.Delete()
.Where(p => p.TankID == uploadTanks.TankID)
.ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油灌信息删除失败");
}
return ServiceResponse.Ok();
}
#endregion
#region 油枪
///
/// 上传油枪
///
///
///
public async Task uploadNozzle(UploadNozzle uploadNozzle)
{
//RedisHelper.HSetAsync("Transaction", "11:22:33:44", "3232");
//RedisHelper.SetAsync("33:22:33:44", "qweqweqwe", 3600);
// var fsdds = RedisHelper.GetAsync("33:22:33:44");
//var das = RedisHelper.ExpireAsync("33:22:33:44", 10);
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _product = _fsql.Select().Where(_ => _.Buid == guid && _.ProductName == uploadNozzle.ProductName).First();
var _tanks = _fsql.Select().Where(_ => _.Buid == guid && _.TankNumber == uploadNozzle.TankNumber).First();
var isproduct = _fsql.Select().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
if (isproduct != null)
{
return ServiceResponse.Error("油枪已存在");
}
if (_product != null || _tanks != null)
{
return ServiceResponse.Error("油品或油罐信息为空");
}
nozzle _nozzle = new nozzle();
_nozzle.Buid = guid;
_nozzle.PumpId = uploadNozzle.PumpID;
_nozzle.TankId = _tanks.Id;
_nozzle.InternalGunNumber = uploadNozzle.InternalGunNumber;
_nozzle.ExternalGunNumber = uploadNozzle.ExternalGunNumber;
_nozzle.ProductID = _product.Id;
int affectedRows = _fsql.Insert().AppendData(_nozzle).ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油枪信息插入失败");
}
return ServiceResponse.Ok(_nozzle);
}
///
/// 更新油枪信息
///
///
///
public async Task UpdateNozzle(UploadNozzle uploadNozzle)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _nozzle = _fsql.Select().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
if (_nozzle == null)
{
return ServiceResponse.Error("未找到油枪");
}
_nozzle.PumpId = uploadNozzle.PumpID;
_nozzle.InternalGunNumber = uploadNozzle.InternalGunNumber;
_nozzle.ExternalGunNumber = uploadNozzle.ExternalGunNumber;
int affectedRows = _fsql.Update().SetSource(_nozzle).ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油枪信息更新失败");
}
return ServiceResponse.Ok(_nozzle);
}
///
/// 删除油枪信息
///
///
///
public async Task DeleteNozzle(UploadNozzle uploadNozzle)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
var _nozzle = _fsql.Select().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
if (_nozzle == null)
{
return ServiceResponse.Error("未找到油枪");
}
int affectedRows = _fsql.Delete()
.Where(p => p.NozzleId == uploadNozzle.NozzleId)
.ExecuteAffrows();
if (affectedRows <= 0)
{
return ServiceResponse.Error("油枪信息删除失败");
}
return ServiceResponse.Ok();
}
public async Task> GetNozzleInfo(int Nozzleid)
{
Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
return _entityHelper._fsql.Select()
.LeftJoin((a, b, c) => a.TankId == b.Id)
.LeftJoin((a, b, c) => a.ProductID == c.Id)
.Where((a, b, c) => a.Buid == guid && a.ExternalGunNumber == Nozzleid)
.ToList((a, b, c) => new NozzleInfo()
{
Nozzleid = a.ExternalGunNumber,
ProductName = c.ProductName,
ProductPrice = c.ProductPrice,
Status = a.Status,
TankNumber = b.TankNumber
});
}
#endregion
}
}