|
|
@@ -0,0 +1,231 @@ |
|
|
|
using BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsEnergyConfig; |
|
|
|
using BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsType; |
|
|
|
using BPA.SAAS.Manage.Application.DataBase.Interface; |
|
|
|
using BPA.SAAS.Manage.Comm.Const; |
|
|
|
using BPA.SAAS.Manage.Comm.Enum; |
|
|
|
using BPA.SAAS.Manage.Core.Base; |
|
|
|
using BPA.SAAS.Manage.Core.DataBase; |
|
|
|
using NPOI.POIFS.Storage; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using System.Threading.Tasks; |
|
|
|
|
|
|
|
namespace BPA.SAAS.Manage.Application.DataBase.Services |
|
|
|
{ |
|
|
|
public class GoodsEnergyConfigService: IGoodsEnergyConfigService, ITransient |
|
|
|
{ |
|
|
|
private readonly ISqlSugarClient _db; |
|
|
|
public GoodsEnergyConfigService(ISqlSugarClient db) |
|
|
|
{ |
|
|
|
_db = db; |
|
|
|
} |
|
|
|
/// <summary> |
|
|
|
/// 分页查询 |
|
|
|
/// </summary> |
|
|
|
/// <param name="dto"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<PageUtil> GetGoodsEnergyConfigPage(GoodsEnergyConfigQueryDto dto) |
|
|
|
{ |
|
|
|
List<IConditionalModel> conModels = new List<IConditionalModel>(); |
|
|
|
//string groupId = App.User.FindFirst(ClaimConst.GroupId)?.Value; |
|
|
|
if (!string.IsNullOrEmpty(dto.Name)) |
|
|
|
{ |
|
|
|
conModels.Add(new ConditionalModel() { FieldName = "Name", ConditionalType = ConditionalType.Like, FieldValue = dto.Name }); |
|
|
|
} |
|
|
|
if (!string.IsNullOrEmpty(dto.GoodsId)) |
|
|
|
{ |
|
|
|
conModels.Add(new ConditionalModel() { FieldName = "GoodsId", ConditionalType = ConditionalType.Like, FieldValue = dto.GoodsId }); |
|
|
|
} |
|
|
|
int total = new RefAsync<int>(); |
|
|
|
var res = await _db.Queryable<BPA_GoodsEnergyConfig>() |
|
|
|
.Where(conModels) |
|
|
|
.OrderBy(a => a.CreateAt, OrderByType.Desc) |
|
|
|
.ToPageListAsync(dto.Current, dto.PageSize, total); |
|
|
|
PageUtil util = new PageUtil() |
|
|
|
{ |
|
|
|
Total = total, |
|
|
|
Data = res |
|
|
|
|
|
|
|
}; |
|
|
|
return util; |
|
|
|
} |
|
|
|
/// <summary> |
|
|
|
/// 添加 |
|
|
|
/// </summary> |
|
|
|
/// <param name="dto"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<bool> AddGoodsEnergyConfig(GoodsEnergyConfigDto dto) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
_db.Ado.BeginTran(); |
|
|
|
var resEntity = _db.Queryable<BPA_GoodsEnergyConfig>().First(it => it.Name == dto.Name && it.GoodsId == dto.GoodsId); |
|
|
|
if (resEntity != null) throw Oops.Oh("配置名称已存在"); |
|
|
|
var newType = new BPA_GoodsEnergyConfig |
|
|
|
{ |
|
|
|
GoodsId = dto.GoodsId, |
|
|
|
Name = dto.Name, |
|
|
|
Uint = dto.Uint, |
|
|
|
}; |
|
|
|
var model = await _db.Insertable(newType).CallEntityMethod(m => m.Create()).ExecuteReturnEntityAsync(); |
|
|
|
List<BPA_GoodsEnergyConfigDetails> list = new(); |
|
|
|
for (int i = 0; i < dto.Details.Count; i++) |
|
|
|
{ |
|
|
|
var model1 = new BPA_GoodsEnergyConfigDetails |
|
|
|
{ |
|
|
|
GoodsenergyconfigId = model.Id, |
|
|
|
Key = dto.Details[i].Key, |
|
|
|
Value = dto.Details[i].Value, |
|
|
|
}; |
|
|
|
list.Add(model1); |
|
|
|
} |
|
|
|
var res = await _db.Insertable(list).CallEntityMethod(m => m.Create()).ExecuteCommandAsync(); |
|
|
|
_db.Ado.CommitTran(); |
|
|
|
return res > 0; |
|
|
|
} |
|
|
|
catch (Exception e) |
|
|
|
{ |
|
|
|
_db.Ado.RollbackTran(); |
|
|
|
throw Oops.Oh("系统异常:"+ e.Message); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
/// <summary> |
|
|
|
/// 更新 |
|
|
|
/// </summary> |
|
|
|
/// <param name="dto"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<bool> UpdateGoodsEnergyConfig(GoodsEnergyConfigDto dto) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
_db.Ado.BeginTran(); |
|
|
|
// 查询数据库中是否存在未删除的商品类型 |
|
|
|
var resEntity = _db.Queryable<BPA_GoodsEnergyConfig>().First(it => it.Id == dto.Id); |
|
|
|
if (null == resEntity) throw Oops.Oh("配置不存在"); |
|
|
|
var resEntity1 = _db.Queryable<BPA_GoodsEnergyConfig>().First(it => it.Name == dto.Name && it.Id != dto.Id && it.GoodsId!= dto.GoodsId); |
|
|
|
if (resEntity1 != null) throw Oops.Oh("配置名称已存在"); |
|
|
|
resEntity.Name = dto.Name; |
|
|
|
resEntity.Uint = dto.Uint; |
|
|
|
await _db.Updateable(resEntity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
|
|
|
var model = _db.Queryable<BPA_GoodsEnergyConfigDetails>().Where(it => it.GoodsenergyconfigId == dto.Id).ToList(); |
|
|
|
if (model.Count > 0) await _db.Deleteable(model).ExecuteCommandAsync(); |
|
|
|
List<BPA_GoodsEnergyConfigDetails> list = new(); |
|
|
|
for (int i = 0; i < dto.Details.Count; i++) |
|
|
|
{ |
|
|
|
var model1 = new BPA_GoodsEnergyConfigDetails |
|
|
|
{ |
|
|
|
GoodsenergyconfigId = dto.Id, |
|
|
|
Key = dto.Details[i].Key, |
|
|
|
Value = dto.Details[i].Value, |
|
|
|
}; |
|
|
|
list.Add(model1); |
|
|
|
} |
|
|
|
var res = await _db.Insertable(list).CallEntityMethod(m => m.Create()).ExecuteCommandAsync(); |
|
|
|
_db.Ado.CommitTran(); |
|
|
|
return res > 0; |
|
|
|
} |
|
|
|
catch (Exception e) |
|
|
|
{ |
|
|
|
_db.Ado.RollbackTran(); |
|
|
|
throw Oops.Oh("系统异常,异常信息:" + e.Message); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
/// <summary> |
|
|
|
/// 删除 |
|
|
|
/// </summary> |
|
|
|
/// <param name="Id"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<bool> DelGoodsEnergyConfig(string Id) |
|
|
|
{ |
|
|
|
try |
|
|
|
{ |
|
|
|
_db.Ado.BeginTran(); |
|
|
|
// 查询数据库中是否存在未删除的商品类型 |
|
|
|
var resEntity = _db.Queryable<BPA_GoodsEnergyConfig>().First(it => it.Id == Id); |
|
|
|
if (resEntity == null) |
|
|
|
{ |
|
|
|
throw Oops.Oh("配置不存在"); |
|
|
|
} |
|
|
|
var model = _db.Queryable<BPA_GoodsEnergyConfigDetails>().Where(it => it.GoodsenergyconfigId == Id).ToList(); |
|
|
|
if (model.Count > 0) await _db.Deleteable(model).ExecuteCommandAsync(); |
|
|
|
var res = await _db.Deleteable(resEntity).ExecuteCommandAsync(); |
|
|
|
_db.Ado.CommitTran(); |
|
|
|
return res > 0; |
|
|
|
} |
|
|
|
catch (Exception e) |
|
|
|
{ |
|
|
|
|
|
|
|
_db.Ado.RollbackTran(); |
|
|
|
throw Oops.Oh("系统异常,异常信息:" + e.Message); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public async Task<List<GoodsEnergyConfigDetailsViewDto>> GetGoodsEnergyConfigDetailsList(string goodsenergyconfigId) |
|
|
|
{ |
|
|
|
|
|
|
|
int total = new RefAsync<int>(); |
|
|
|
var res = await _db.Queryable<BPA_GoodsEnergyConfigDetails>() |
|
|
|
.Where(x=>x.GoodsenergyconfigId== goodsenergyconfigId) |
|
|
|
.OrderBy(a => a.CreateAt, OrderByType.Desc) |
|
|
|
.Select(x => new GoodsEnergyConfigDetailsViewDto() { Id=x.Id,Key=x.Key,Value=x.Value}) |
|
|
|
.ToListAsync(); |
|
|
|
return res; |
|
|
|
} |
|
|
|
/// <summary> |
|
|
|
/// 添加 |
|
|
|
/// </summary> |
|
|
|
/// <param name="dto"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<bool> AddGoodsEnergyConfigDetails(GoodsEnergyConfigDetailsDto dto) |
|
|
|
{ |
|
|
|
var resEntity = _db.Queryable<BPA_GoodsEnergyConfigDetails>().First(it => it.Key == dto.Key); |
|
|
|
if(resEntity!=null) throw Oops.Oh("key已存在"); |
|
|
|
var newType = new BPA_GoodsEnergyConfigDetails |
|
|
|
{ |
|
|
|
GoodsenergyconfigId = dto.GoodsenergyconfigId, |
|
|
|
Key = dto.Key, |
|
|
|
Value = dto.Value, |
|
|
|
}; |
|
|
|
var res = await _db.Insertable(newType).CallEntityMethod(m => m.Create()).ExecuteCommandAsync(); |
|
|
|
return res > 0; |
|
|
|
} |
|
|
|
/// <summary> |
|
|
|
/// 更新 |
|
|
|
/// </summary> |
|
|
|
/// <param name="dto"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<bool> UpdateGoodsEnergyConfigDetails(GoodsEnergyConfigDetailsDto dto) |
|
|
|
{ |
|
|
|
// 查询数据库中是否存在未删除的商品类型 |
|
|
|
var resEntity = _db.Queryable<BPA_GoodsEnergyConfigDetails>().First(it => it.Id == dto.Id); |
|
|
|
if (null == resEntity) throw Oops.Oh("配置不存在"); |
|
|
|
var resEntity1 = _db.Queryable<BPA_GoodsEnergyConfigDetails>().First(it => it.Key == dto.Key && it.Id != dto.Id); |
|
|
|
if (resEntity1 != null) throw Oops.Oh("配置Key已存在"); |
|
|
|
resEntity.Key = dto.Key; |
|
|
|
resEntity.Value = dto.Value; |
|
|
|
var res = await _db.Updateable(resEntity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
|
|
|
return res > 0; |
|
|
|
} |
|
|
|
/// <summary> |
|
|
|
/// 删除 |
|
|
|
/// </summary> |
|
|
|
/// <param name="Id"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<bool> DelGoodsEnergyConfigDetails(string Id) |
|
|
|
{ |
|
|
|
// 查询数据库中是否存在未删除的商品类型 |
|
|
|
var resEntity = _db.Queryable<BPA_GoodsEnergyConfigDetails>().First(it => it.Id == Id); |
|
|
|
if (resEntity == null) |
|
|
|
{ |
|
|
|
throw Oops.Oh("配置不存在"); |
|
|
|
} |
|
|
|
var res = await _db.Deleteable(resEntity).ExecuteCommandAsync(); |
|
|
|
return res > 0; |
|
|
|
} |
|
|
|
} |
|
|
|
} |