From 88e0b69c5a1a31894a2f714c94fdb1ae29143c02 Mon Sep 17 00:00:00 2001 From: lwh <2679599887@qq.com> Date: Mon, 19 Jun 2023 21:49:53 +0800 Subject: [PATCH] =?UTF-8?q?init=20=E5=88=9D=E5=A7=8B=E5=8C=96=E8=A7=84?= =?UTF-8?q?=E6=A0=BC=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GoodsSpecs/SpecValues/SpecValueDto.cs | 47 +++++++++ .../GoodsSpecs/SpecValues/SpecValue.cs | 48 +++++++++ .../GoodsSpecs/SpecValues/SpecValueVo.cs | 36 +++++++ .../SpecValues/SpecValueRepository.cs | 20 ++++ .../GoodsSpecs/SpecValues/SpecValueService.cs | 90 +++++++++++++++++ .../SpecValues/ISpecValueService.cs | 41 ++++++++ .../SpecValues/SpecValueController.cs | 98 +++++++++++++++++++ 7 files changed, 380 insertions(+) create mode 100644 ARW.Model/Dto/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueDto.cs create mode 100644 ARW.Model/Models/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValue.cs create mode 100644 ARW.Model/Vo/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueVo.cs create mode 100644 ARW.Repository/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueRepository.cs create mode 100644 ARW.Service/Business/BusinessService/GoodsManager/GoodsSpecs/SpecValues/SpecValueService.cs create mode 100644 ARW.Service/Business/IBusinessService/GoodsManager/GoodsSpecs/SpecValues/ISpecValueService.cs create mode 100644 ARW.WebApi/Controllers/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueController.cs diff --git a/ARW.Model/Dto/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueDto.cs b/ARW.Model/Dto/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueDto.cs new file mode 100644 index 0000000..a354ee0 --- /dev/null +++ b/ARW.Model/Dto/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueDto.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using ARW.Model.Models.Business.GoodsManager.GoodsSpecs.SpecValues; + +namespace ARW.Model.Dto.Business.GoodsManager.GoodsSpecs.SpecValues +{ + /// + /// 商品规格值输入对象 + /// + /// @author 黎文豪 + /// @date 2023-06-19 + /// + public class SpecValueDto + { + + public int SpecValueId { get; set; } + + [Required(ErrorMessage = "规格组ID不能为空")] + public int SpecId { get; set; } + + [Required(ErrorMessage = "规格值名称不能为空")] + public string SpecName { get; set; } + + + + + + } + + + /// + /// 商品规格值查询对象 + /// + /// @author 黎文豪 + /// @date 2023-06-19 + /// + public class SpecValueQueryDto : PagerInfo + { + + public string ids { get; set; } + } + + + + +} diff --git a/ARW.Model/Models/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValue.cs b/ARW.Model/Models/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValue.cs new file mode 100644 index 0000000..41243d7 --- /dev/null +++ b/ARW.Model/Models/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValue.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using SqlSugar; +using OfficeOpenXml.Attributes; +using Newtonsoft.Json; + +namespace ARW.Model.Models.Business.GoodsManager.GoodsSpecs.SpecValues +{ + /// + /// 商品规格值,数据实体对象 + /// + /// @author 黎文豪 + /// @date 2023-06-19 + /// + [SugarTable("tb_spec_value")] + public class SpecValue : BusinessBase + { + + /// + /// 描述 : + /// 空值 : false + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnName = "spec_value_id")] + public int SpecValueId { get; set; } + + + /// + /// 描述 :规格组ID + /// 空值 : false + /// + [SugarColumn(ColumnName = "spec_id")] + public int SpecId { get; set; } + + + /// + /// 描述 :规格值名称 + /// 空值 : false + /// + [SugarColumn(ColumnName = "spec_name")] + public string SpecName { get; set; } + + + + + + + } +} \ No newline at end of file diff --git a/ARW.Model/Vo/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueVo.cs b/ARW.Model/Vo/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueVo.cs new file mode 100644 index 0000000..e474d30 --- /dev/null +++ b/ARW.Model/Vo/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueVo.cs @@ -0,0 +1,36 @@ +using Newtonsoft.Json; +using OfficeOpenXml.Attributes; +using SqlSugar; +using System; + +namespace ARW.Model.Vo.Business.GoodsManager.GoodsSpecs.SpecValues +{ + /// + /// 商品规格值展示对象 + /// + /// @author 黎文豪 + /// @date 2023-06-19 + /// + public class SpecValueVo + { + + + /// + /// 描述 : + /// + public int SpecValueId { get; set; } + + + /// + /// 描述 :规格组ID + /// + public int SpecId { get; set; } + + + /// + /// 描述 :规格值名称 + /// + public string SpecName { get; set; } + + } +} diff --git a/ARW.Repository/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueRepository.cs b/ARW.Repository/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueRepository.cs new file mode 100644 index 0000000..80e554b --- /dev/null +++ b/ARW.Repository/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueRepository.cs @@ -0,0 +1,20 @@ +using System; +using Infrastructure.Attribute; +using ARW.Repository.System; +using ARW.Model.Models.Business.GoodsManager.GoodsSpecs.SpecValues; + +namespace ARW.Repository.Business.GoodsManager.GoodsSpecs.SpecValues +{ + /// + /// 商品规格值仓储 + /// + /// @author 黎文豪 + /// @date 2023-06-19 + /// + [AppService(ServiceLifetime = LifeTime.Transient)] + public class SpecValueRepository : BaseRepository + { + #region 业务逻辑代码 + #endregion + } +} \ No newline at end of file diff --git a/ARW.Service/Business/BusinessService/GoodsManager/GoodsSpecs/SpecValues/SpecValueService.cs b/ARW.Service/Business/BusinessService/GoodsManager/GoodsSpecs/SpecValues/SpecValueService.cs new file mode 100644 index 0000000..253d306 --- /dev/null +++ b/ARW.Service/Business/BusinessService/GoodsManager/GoodsSpecs/SpecValues/SpecValueService.cs @@ -0,0 +1,90 @@ +using Infrastructure.Attribute; +using Microsoft.AspNetCore.Http; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Infrastructure; +using ARW.Model; +using ARW.Repository; +using ARW.Repository.Business.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Service.Business.IBusinessService.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Model.Dto.Business.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Model.Models.Business.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Model.Vo.Business.GoodsManager.GoodsSpecs.SpecValues; + +namespace ARW.Service.Business.BusinessService.GoodsManager.GoodsSpecs.SpecValues +{ + /// + /// 商品规格值接口实现类 + /// + /// @author 黎文豪 + /// @date 2023-06-19 + /// + [AppService(ServiceType = typeof(ISpecValueService), ServiceLifetime = LifeTime.Transient)] + public class SpecValueServiceImpl : BaseService, ISpecValueService + { + private readonly SpecValueRepository _SpecValueRepository; + + public SpecValueServiceImpl(SpecValueRepository SpecValueRepository) + { + this._SpecValueRepository = SpecValueRepository; + } + + #region 业务逻辑代码 + + + /// + /// 查询商品规格值分页列表 + /// + public async Task> GetSpecValueList(SpecValueQueryDto parm) + { + //开始拼装查询条件d + var predicate = Expressionable.Create(); + + var query = _SpecValueRepository + .Queryable() + .Where(predicate.ToExpression()) + .OrderBy(s => s.Create_time,OrderByType.Desc) + .Select(s => new SpecValueVo + { + SpecValueId = s.SpecValueId, + SpecId = s.SpecId, + SpecName = s.SpecName, + }); + + + return await query.ToPageAsync(parm); + } + + /// + /// 添加或修改商品规格值 + /// + public async Task AddOrUpdateSpecValue(SpecValue model) + { + if (model.SpecValueId != 0) + { + var response = await _SpecValueRepository.UpdateAsync(model); + return "修改成功!"; + } + else + { + + var response = await _SpecValueRepository.InsertReturnSnowflakeIdAsync(model); + return "添加成功!"; + } + } + + #region Excel处理 + + + #endregion + + + +#endregion + + } +} diff --git a/ARW.Service/Business/IBusinessService/GoodsManager/GoodsSpecs/SpecValues/ISpecValueService.cs b/ARW.Service/Business/IBusinessService/GoodsManager/GoodsSpecs/SpecValues/ISpecValueService.cs new file mode 100644 index 0000000..ae7161e --- /dev/null +++ b/ARW.Service/Business/IBusinessService/GoodsManager/GoodsSpecs/SpecValues/ISpecValueService.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ARW.Model; +using ARW.Model.Dto.Business.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Model.Models.Business.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Model.Vo.Business.GoodsManager.GoodsSpecs.SpecValues; + +namespace ARW.Service.Business.IBusinessService.GoodsManager.GoodsSpecs.SpecValues +{ + /// + /// 商品规格值接口类 + /// + /// @author 黎文豪 + /// @date 2023-06-19 + /// + public interface ISpecValueService : IBaseService + { + /// + /// 获取商品规格值分页列表 + /// + /// + /// + Task> GetSpecValueList(SpecValueQueryDto parm); + + + /// + /// 添加或修改商品规格值 + /// + /// + /// + Task AddOrUpdateSpecValue(SpecValue parm); + + + + + + } +} diff --git a/ARW.WebApi/Controllers/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueController.cs b/ARW.WebApi/Controllers/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueController.cs new file mode 100644 index 0000000..c5718fd --- /dev/null +++ b/ARW.WebApi/Controllers/Business/GoodsManager/GoodsSpecs/SpecValues/SpecValueController.cs @@ -0,0 +1,98 @@ +using Infrastructure; +using Infrastructure.Attribute; +using Infrastructure.Enums; +using Infrastructure.Model; +using Mapster; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using ARW.Admin.WebApi.Extensions; +using ARW.Admin.WebApi.Filters; +using ARW.Common; +using ARW.Model.Dto.Business.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Service.Business.IBusinessService.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Admin.WebApi.Controllers; +using ARW.Model.Models.Business.GoodsManager.GoodsSpecs.SpecValues; +using ARW.Model.Vo.Business.GoodsManager.GoodsSpecs.SpecValues; +using Microsoft.AspNetCore.Authorization; +using ARW.Admin.WebApi.Framework; + + +namespace ARW.WebApi.Controllers.Business.GoodsManager.GoodsSpecs.SpecValues +{ + /// + /// 商品规格值控制器 + /// + /// @author 黎文豪 + /// @date 2023-06-19 + /// + [Verify] + [Route("business/[controller]")] + public class SpecValueController : BaseController + { + private readonly ISpecValueService _SpecValueService; + + /// + /// 依赖注入 + /// + /// 商品规格值服务 + public SpecValueController(ISpecValueService SpecValueService) + { + _SpecValueService = SpecValueService; + } + + + /// + /// 获取商品规格值列表 + /// + /// 查询参数 + /// + [HttpGet("getSpecValueList")] + [ActionPermissionFilter(Permission = "business:specvalue:list")] + public async Task GetSpecValueList([FromQuery] SpecValueQueryDto parm) + { + var res = await _SpecValueService.GetSpecValueList(parm); + return SUCCESS(res); + } + + /// + /// 添加或修改商品规格值 + /// + /// + /// + [HttpPost("addOrUpdateSpecValue")] + [ActionPermissionFilter(Permission = "business:specvalue:addOrUpdate")] + [Log(Title = "添加或修改商品规格值", BusinessType = BusinessType.ADDORUPDATE)] + public async Task AddOrUpdateSpecValue([FromBody] SpecValueDto parm) + { + if (parm == null) { throw new CustomException("请求参数错误"); } + + var modal = new SpecValue(); + if (parm.SpecValueId != 0) modal = parm.Adapt().ToUpdate(HttpContext); + else modal = parm.Adapt().ToCreate(HttpContext); + + var res = await _SpecValueService.AddOrUpdateSpecValue(modal); + return SUCCESS(res); + } + + /// + /// 删除商品规格值 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:specvalue:delete")] + [Log(Title = "商品规格值删除", BusinessType = BusinessType.DELETE)] + public IActionResult Delete(string ids) + { + long[] idsArr = Tools.SpitLongArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + var response = _SpecValueService.Delete(idsArr); + return SUCCESS("删除成功!"); + } + + + + + + + } +}