From 0938ba2991d65b09f3bfe37434244dd77e9da989 Mon Sep 17 00:00:00 2001 From: zhaoy <137053305@qq.com> Date: Mon, 19 Feb 2024 17:50:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E9=85=8D=E6=96=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataBase/Dtos/Goods/GoodsBomPageView.cs | 18 +++++ .../DataBase/Dtos/Goods/GoodsBomQueryDto.cs | 16 +++++ .../GoodsAttribute/GoodsBomAttributeDto.cs | 3 +- .../DataBase/GoodsServices.cs | 2 +- .../DataBase/Interface/IGoodsService.cs | 2 +- .../DataBase/Services/GoodsService.cs | 66 +++++++++++-------- .../DataBase/BPA_BomAttributeValueRe.cs | 11 +++- 7 files changed, 87 insertions(+), 31 deletions(-) create mode 100644 BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomPageView.cs create mode 100644 BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomQueryDto.cs diff --git a/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomPageView.cs b/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomPageView.cs new file mode 100644 index 0000000..a03ceca --- /dev/null +++ b/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomPageView.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BPA.SAAS.Manage.Application.DataBase.Dtos.Goods +{ + public class GoodsBomPageView + { + public string Id { get; set; } + public string Name { get; set; } + public string BomId { get; set; } + public bool IsMain { get; set; } + public string GoodsAttributeValueId { get; set; } + public string GoodsAttributeValue { get; set; } + } +} diff --git a/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomQueryDto.cs b/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomQueryDto.cs new file mode 100644 index 0000000..7d475c1 --- /dev/null +++ b/BPA.SAAS.Manage.Application/DataBase/Dtos/Goods/GoodsBomQueryDto.cs @@ -0,0 +1,16 @@ +using BPA.SAAS.Manage.Core.Base; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BPA.SAAS.Manage.Application.DataBase.Dtos.Goods +{ + public class GoodsBomQueryDto: PageInputBase + { + public string GoodsId { get; set; } + public string Name { get; set; } + public string GoodsAttributeValue { get; set; } + } +} diff --git a/BPA.SAAS.Manage.Application/DataBase/Dtos/GoodsAttribute/GoodsBomAttributeDto.cs b/BPA.SAAS.Manage.Application/DataBase/Dtos/GoodsAttribute/GoodsBomAttributeDto.cs index 065e653..8c36b42 100644 --- a/BPA.SAAS.Manage.Application/DataBase/Dtos/GoodsAttribute/GoodsBomAttributeDto.cs +++ b/BPA.SAAS.Manage.Application/DataBase/Dtos/GoodsAttribute/GoodsBomAttributeDto.cs @@ -9,7 +9,8 @@ namespace BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsAttribute public class GoodsBomAttributeDto { public string GoodsId { get; set; } - public List BomId { get; set; } + public string BomId { get; set; } + public string GoodsAttributeValue { get; set; } public string Type { get; set; } public string BomName { get; set; } public string BomType { get; set; } diff --git a/BPA.SAAS.Manage.Application/DataBase/GoodsServices.cs b/BPA.SAAS.Manage.Application/DataBase/GoodsServices.cs index e966e16..7e966c2 100644 --- a/BPA.SAAS.Manage.Application/DataBase/GoodsServices.cs +++ b/BPA.SAAS.Manage.Application/DataBase/GoodsServices.cs @@ -85,7 +85,7 @@ namespace BPA.SAAS.Manage.Application.DataBase /// /// [HttpPost("/api/goods/getgoodsbompage")] - public async Task GetGoodsBomPageAsync(OrtherGoodsQueryDto dto) + public async Task GetGoodsBomPageAsync(GoodsBomQueryDto dto) { return await _goodsService.GetGoodsBomPageAsync(dto); } diff --git a/BPA.SAAS.Manage.Application/DataBase/Interface/IGoodsService.cs b/BPA.SAAS.Manage.Application/DataBase/Interface/IGoodsService.cs index 9caf633..7d9202e 100644 --- a/BPA.SAAS.Manage.Application/DataBase/Interface/IGoodsService.cs +++ b/BPA.SAAS.Manage.Application/DataBase/Interface/IGoodsService.cs @@ -52,7 +52,7 @@ namespace BPA.SAAS.Manage.Application.DataBase.Interface /// /// /// - Task GetGoodsBomPageAsync(OrtherGoodsQueryDto dto); + Task GetGoodsBomPageAsync(GoodsBomQueryDto dto); /// /// 删除商品配方 /// diff --git a/BPA.SAAS.Manage.Application/DataBase/Services/GoodsService.cs b/BPA.SAAS.Manage.Application/DataBase/Services/GoodsService.cs index 2dd9342..bda1701 100644 --- a/BPA.SAAS.Manage.Application/DataBase/Services/GoodsService.cs +++ b/BPA.SAAS.Manage.Application/DataBase/Services/GoodsService.cs @@ -1,5 +1,6 @@ using BPA.Franchisee.Application.FranchiseeCenter.GoodsServices; using BPA.SAAS.Manage.Application.DataBase.Dtos.Batching; +using BPA.SAAS.Manage.Application.DataBase.Dtos.Bom; using BPA.SAAS.Manage.Application.DataBase.Dtos.Goods; using BPA.SAAS.Manage.Application.DataBase.Dtos.GoodsAttribute; using BPA.SAAS.Manage.Application.DataBase.Interface; @@ -252,19 +253,26 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services /// /// /// - public async Task GetGoodsBomPageAsync(OrtherGoodsQueryDto dto) + public async Task GetGoodsBomPageAsync(GoodsBomQueryDto dto) { RefAsync total = 0; - var res =await _db.Queryable((a, b) => new JoinQueryInfos( - JoinType.Left, a.Id == b.BomId + var res =await _db.Queryable((a, b) => new JoinQueryInfos( + JoinType.Left, a.Id == b.BoomId )) - .WhereIF(!string.IsNullOrWhiteSpace(dto.GoodsId), (a, b) => b.Goods_Id == dto.GoodsId) - .Select((a, b) => new + .WhereIF(!string.IsNullOrWhiteSpace(dto.GoodsId), (a, b) => b.GoodsId==dto.GoodsId) + .WhereIF(!string.IsNullOrWhiteSpace(dto.Name), (a, b) => a.Name.Contains(dto.Name)) + .WhereIF(!string.IsNullOrWhiteSpace(dto.GoodsAttributeValue), (a, b) => b.GoodsAttributeValue.Contains(dto.GoodsAttributeValue)) + .Select((a, b) => new GoodsBomPageView { Id = b.Id, Name = a.Name, - BomId= b.BomId, - IsMain = a.IsMain + BomId= b.BoomId, + IsMain = a.IsMain, + GoodsAttributeValueId=b.GoodsAttributeValueId, + }).Mapper(x => + { + var AttributeValue = _db.Queryable().Where(p => x.GoodsAttributeValueId.Contains(p.Id)).Select(p=>p.AttributeValue).ToArray(); + x.GoodsAttributeValue =string.Join("-", AttributeValue); }) .ToPageListAsync(dto.Current, dto.PageSize, total); PageUtil util = new PageUtil() @@ -281,10 +289,12 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services /// public async Task BatchDelGoodsBomAsync(string Ids) { - // var GoodsBom=_db.Queryable().Where(x => x.Id == Ids).First(); - + // var GoodsBom=_db.Queryable().Where(x => x.Id == Ids).First(); + var model=_db.Queryable().Where(x => x.Id == Ids).First(); + if(model==null) throw Oops.Oh("配方不存在"); + _db.Deleteable().Where(x => x.Goods_Id == model.GoodsId && x.BomId== model.BoomId).ExecuteCommand(); // 查询数据库中是否存在未删除的商品 - var res = _db.Deleteable().In(Ids).ExecuteCommand(); + var res = _db.Deleteable().In(Ids).ExecuteCommand(); return res > 0; } /// @@ -346,34 +356,38 @@ namespace BPA.SAAS.Manage.Application.DataBase.Services bPA_BomAttributeValueRe.GoodsId = dto.GoodsId; bPA_BomAttributeValueRe.BoomId = newbPA_BOM.Id; bPA_BomAttributeValueRe.GoodsAttributeValueId = string.Join(",", dto.Shuxing); + bPA_BomAttributeValueRe.GoodsAttributeValue = dto.GoodsAttributeValue; //添加商品配方属性关系 _db.Insertable(bPA_BomAttributeValueRe).ExecuteCommand(); } else { - if (dto.BomId.Count > 0) + if (string.IsNullOrWhiteSpace(dto.BomId)) throw Oops.Oh("请选择配方"); + if (!string.IsNullOrWhiteSpace(dto.BomId)) { - List bomlist = new(); - List bPA_BomAttributeValueRelist = new(); - for (int i = 0; i < dto.BomId.Count; i++) + var check=_db.Queryable().Where(x => x.Goods_Id == dto.GoodsId && x.BomId == dto.BomId).Any(); + if (!check) { BPA_GoodsBom bom = new BPA_GoodsBom(); bom.Goods_Id = dto.GoodsId; - bom.BomId = dto.BomId[i]; + bom.BomId = dto.BomId; bom.Status = CommonStatus.ENABLE; - bomlist.Add(bom); - BPA_BomAttributeValueRe bPA_BomAttributeValueRe = new(); - bPA_BomAttributeValueRe.Id = Guid.NewGuid().ToString(); - bPA_BomAttributeValueRe.GoodsId = dto.GoodsId; - bPA_BomAttributeValueRe.BoomId = dto.BomId[i]; - bPA_BomAttributeValueRe.GoodsAttributeValueId = string.Join(",", dto.Shuxing); - bPA_BomAttributeValueRelist.Add(bPA_BomAttributeValueRe); + //添加商品配方关系 + _db.Insertable(bom).CallEntityMethod(m => m.Create()).ExecuteCommand(); } - //添加商品配方关系 - _db.Insertable(bomlist).CallEntityMethod(m => m.Create()).ExecuteCommand(); + string vid = string.Join(",", dto.Shuxing); + var checkvid = _db.Queryable().Where(x => x.GoodsId == dto.GoodsId && x.BoomId == dto.BomId && x.GoodsAttributeValueId== vid).Any(); + if(checkvid) throw Oops.Oh("该配方已经存在"); //添加商品配方属性关系 - _db.Insertable(bPA_BomAttributeValueRelist).ExecuteCommand(); - } + BPA_BomAttributeValueRe bPA_BomAttributeValueRe = new(); + bPA_BomAttributeValueRe.Id = Guid.NewGuid().ToString(); + bPA_BomAttributeValueRe.GoodsId = dto.GoodsId; + bPA_BomAttributeValueRe.BoomId = dto.BomId; + bPA_BomAttributeValueRe.GoodsAttributeValueId = vid; + bPA_BomAttributeValueRe.GoodsAttributeValue = dto.GoodsAttributeValue; + _db.Insertable(bPA_BomAttributeValueRe).ExecuteCommand(); + } + } _db.Ado.CommitTran(); return true; diff --git a/BPA.SAAS.Manage.Core/DataBase/BPA_BomAttributeValueRe.cs b/BPA.SAAS.Manage.Core/DataBase/BPA_BomAttributeValueRe.cs index a7184f1..2660e93 100644 --- a/BPA.SAAS.Manage.Core/DataBase/BPA_BomAttributeValueRe.cs +++ b/BPA.SAAS.Manage.Core/DataBase/BPA_BomAttributeValueRe.cs @@ -1,4 +1,5 @@ -using SqlSugar; +using BPA.SAAS.Manage.Core.Base; +using SqlSugar; using System; using System.Collections.Generic; using System.Linq; @@ -11,8 +12,9 @@ namespace BPA.SAAS.Manage.Core.DataBase /// 配方商品属性关系 /// [SugarTable("bpa_bomattributevaluere")] - public class BPA_BomAttributeValueRe + public class BPA_BomAttributeValueRe:IGroupId { + [SugarColumn(IsPrimaryKey = true, ColumnDataType = "Nvarchar(64)", IsNullable = false)] public string Id { get; set; } public string GoodsId { get; set; } /// @@ -23,5 +25,10 @@ namespace BPA.SAAS.Manage.Core.DataBase /// 商品属性值id /// public string GoodsAttributeValueId { get; set; } + /// + /// 商品属性值 + /// + public string GoodsAttributeValue { get; set; } + public string GroupId { get; set; } } }