Browse Source

打包盒逻辑

smj_7038 3 years ago
parent
commit
840dafd15d

+ 221 - 19
Central.Control.WebApi/App_Data/Central.Control.WebApi.xml

@@ -96,6 +96,33 @@
             </summary>
             <param name="key"></param>
         </member>
+        <member name="T:Central.Control.WebApi.Controllers.DeviceController">
+            <summary>
+            设备相关接口
+            </summary>
+        </member>
+        <member name="M:Central.Control.WebApi.Controllers.DeviceController.#ctor(Central.Control.WebApi.Service.Interface.IDeviceService)">
+            <summary>
+            
+            </summary>
+            <param name="deviceService"></param>
+        </member>
+        <member name="M:Central.Control.WebApi.Controllers.DeviceController.GetDevicePackings(System.String,System.Int32,System.Int32)">
+            <summary>
+            设备包装盒表
+            </summary>
+            <param name="kw"></param>
+            <param name="skip"></param>
+            <param name="limit"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Central.Control.WebApi.Controllers.DeviceController.SaveDevicePacking(Central.Control.WebApi.Models.Request.DevicePackingRequestDto)">
+            <summary>
+            设备包装盒保存
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
         <member name="T:Central.Control.WebApi.Controllers.LoginController">
             <summary>
             登录相关
@@ -137,7 +164,12 @@
             <param name="req"></param>
             <returns></returns>
         </member>
-        <!-- Badly formed XML comment ignored for member "M:Central.Control.WebApi.Controllers.OrderController.GetQueueOrders" -->
+        <member name="M:Central.Control.WebApi.Controllers.OrderController.GetQueueOrders">
+            <summary>
+            获取待烧烤的商品列表
+            </summary>
+            <returns></returns>
+        </member>
         <member name="M:Central.Control.WebApi.Controllers.OrderController.OrderProcess(Central.Control.WebApi.Models.Request.OrderProcessRequestDto)">
             <summary>
             回写流程状态
@@ -163,12 +195,6 @@
             </summary>
             <param name="productService"></param>
         </member>
-        <member name="M:Central.Control.WebApi.Controllers.ProductController.Test">
-            <summary>
-            测试接口
-            </summary>
-            <returns></returns>
-        </member>
         <member name="M:Central.Control.WebApi.Controllers.ProductController.Query(System.String,System.Int32,System.Int32)">
             <summary>
             商品列表
@@ -208,6 +234,36 @@
             过期时间
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.DbEntity.YW_DevicePacking">
+            <summary>
+            YW_DevicePacking设备包装数量表
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_DevicePacking.Id">
+            <summary>
+            主键ID
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_DevicePacking.PackingId">
+            <summary>
+            包装表id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_DevicePacking.DeviceId">
+            <summary>
+            设备id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_DevicePacking.Capacity">
+            <summary>
+            容量
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_DevicePacking.Stock">
+            <summary>
+            库存
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.DbEntity.YW_OrderProcess">
             <summary>
             YW_OrderProcess订单制作过程表
@@ -238,6 +294,36 @@
             当前消息
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.DbEntity.YW_Packing">
+            <summary>
+            YW_Packing包装表
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_Packing.Id">
+            <summary>
+            主键ID
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_Packing.Name">
+            <summary>
+            包装名称
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_Packing.Img">
+            <summary>
+            包装图片
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_Packing.Min">
+            <summary>
+            最小可装个数
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_Packing.Max">
+            <summary>
+            最大可装个数
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.DbEntity.YW_PayCall">
             <summary>
             YW_PayCall支付回写表
@@ -483,6 +569,16 @@
             YW_OrderProcess订单制作过程表
             </summary>
         </member>
+        <member name="P:Central.Control.WebApi.EFDbContext.CentralControlContext.YW_Packing">
+            <summary>
+            YW_Packing包装表
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.EFDbContext.CentralControlContext.YW_DevicePacking">
+            <summary>
+            YW_DevicePacking设备包装数量表
+            </summary>
+        </member>
         <member name="M:Central.Control.WebApi.EFDbContext.CentralControlContext.Delete``1(System.String)">
             <summary>
             删除
@@ -646,6 +742,31 @@
             设备密码
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.Models.Request.DevicePackingRequestDto">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.DevicePackingRequestDto.Id">
+            <summary>
+            主键ID
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.DevicePackingRequestDto.PackingId">
+            <summary>
+            包装表id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.DevicePackingRequestDto.Capacity">
+            <summary>
+            容量
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.DevicePackingRequestDto.Stock">
+            <summary>
+            库存
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.Models.Request.OrderProcessRequestDto">
             <summary>
             订单状态
@@ -726,6 +847,51 @@
             token
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.Models.Response.DevicePackingResponseDto">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DevicePackingResponseDto.Id">
+            <summary>
+            主键ID
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DevicePackingResponseDto.PackingId">
+            <summary>
+            包装表id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DevicePackingResponseDto.PackingName">
+            <summary>
+            包装名称
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DevicePackingResponseDto.PackingImg">
+            <summary>
+            包装图片
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DevicePackingResponseDto.PackingMin">
+            <summary>
+            最小可装个数
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DevicePackingResponseDto.PackingMax">
+            <summary>
+            最大可装个数
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DevicePackingResponseDto.Capacity">
+            <summary>
+            容量
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.DevicePackingResponseDto.Stock">
+            <summary>
+            库存
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.Models.Response.OrderResponseDto">
             <summary>
             
@@ -836,6 +1002,54 @@
             购买数量
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.Service.DeviceService">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:Central.Control.WebApi.Service.DeviceService.#ctor(Central.Control.WebApi.EFDbContext.IDbContext,Central.Control.WebApi.Service.Interface.IUserService)">
+            <summary>
+            
+            </summary>
+            <param name="dbContent"></param>
+        </member>
+        <member name="M:Central.Control.WebApi.Service.DeviceService.GetDevicePackings(System.String,System.Int32,System.Int32)">
+            <summary>
+            设备包装盒表
+            </summary>
+            <param name="kw"></param>
+            <param name="skip"></param>
+            <param name="limit"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Central.Control.WebApi.Service.DeviceService.SaveDevicePacking(Central.Control.WebApi.Models.Request.DevicePackingRequestDto)">
+            <summary>
+            设备包装盒保存
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Central.Control.WebApi.Service.Interface.IDeviceService">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="M:Central.Control.WebApi.Service.Interface.IDeviceService.GetDevicePackings(System.String,System.Int32,System.Int32)">
+            <summary>
+            设备包装盒表
+            </summary>
+            <param name="kw"></param>
+            <param name="skip"></param>
+            <param name="limit"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Central.Control.WebApi.Service.Interface.IDeviceService.SaveDevicePacking(Central.Control.WebApi.Models.Request.DevicePackingRequestDto)">
+            <summary>
+            设备包装盒保存
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
         <member name="T:Central.Control.WebApi.Service.Interface.ILoginService">
             <summary>
             
@@ -885,12 +1099,6 @@
             
             </summary>
         </member>
-        <member name="M:Central.Control.WebApi.Service.Interface.IProductService.Test">
-            <summary>
-            
-            </summary>
-            <returns></returns>
-        </member>
         <member name="M:Central.Control.WebApi.Service.Interface.IProductService.Query(System.String,System.Int32,System.Int32)">
             <summary>
             商品列表
@@ -991,12 +1199,6 @@
             </summary>
             <param name="dbContent"></param>
         </member>
-        <member name="M:Central.Control.WebApi.Service.ProductService.Test">
-            <summary>
-            
-            </summary>
-            <returns></returns>
-        </member>
         <member name="M:Central.Control.WebApi.Service.ProductService.Query(System.String,System.Int32,System.Int32)">
             <summary>
             商品列表

+ 7 - 0
Central.Control.WebApi/Central.Control.WebApi.csproj

@@ -207,11 +207,14 @@
     <Compile Include="App_Start\WebApiConfig.cs" />
     <Compile Include="Cache\CacheHelper.cs" />
     <Compile Include="Cache\ICacheHelper.cs" />
+    <Compile Include="Controllers\DeviceController.cs" />
     <Compile Include="Controllers\LoginController.cs" />
     <Compile Include="Controllers\OrderController.cs" />
     <Compile Include="Controllers\ProductController.cs" />
     <Compile Include="DbEntity\SYS_LoginSession.cs" />
+    <Compile Include="DbEntity\YW_DevicePacking.cs" />
     <Compile Include="DbEntity\YW_OrderProcess.cs" />
+    <Compile Include="DbEntity\YW_Packing.cs" />
     <Compile Include="DbEntity\YW_PayCall.cs" />
     <Compile Include="EFDbContext\CentralControlContext.cs" />
     <Compile Include="EFDbContext\IDbContext.cs" />
@@ -228,14 +231,18 @@
     <Compile Include="DbEntity\YW_OrderDetails.cs" />
     <Compile Include="DbEntity\YW_Product.cs" />
     <Compile Include="Models\Request\DeviceLoginRequestDto.cs" />
+    <Compile Include="Models\Request\DevicePackingRequestDto.cs" />
     <Compile Include="Models\Request\OrderProcessRequestDto.cs" />
     <Compile Include="Models\Request\OrderRequestDto.cs" />
     <Compile Include="Models\Request\PayWriteBackRequestDto.cs" />
     <Compile Include="Models\Response\DeviceLoginResponseDto.cs" />
+    <Compile Include="Models\Response\DevicePackingResponseDto.cs" />
     <Compile Include="Models\Response\OrderResponseDto.cs" />
     <Compile Include="Models\Response\ProductResponseDto.cs" />
     <Compile Include="Models\Response\QueueOrderResponseDto.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Service\DeviceService.cs" />
+    <Compile Include="Service\Interface\IDeviceService.cs" />
     <Compile Include="Service\Interface\ILoginService.cs" />
     <Compile Include="Service\Interface\IOrderService.cs" />
     <Compile Include="Service\Interface\IProductService.cs" />

+ 57 - 0
Central.Control.WebApi/Controllers/DeviceController.cs

@@ -0,0 +1,57 @@
+using Ant.Core.WebApi.Model;
+using Central.Control.WebApi.Models.Request;
+using Central.Control.WebApi.Models.Response;
+using Central.Control.WebApi.Service.Interface;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.Http;
+
+namespace Central.Control.WebApi.Controllers
+{
+    /// <summary>
+    /// 设备相关接口
+    /// </summary>
+    [RoutePrefix("api/device")]
+    public class DeviceController : ApiController
+    {
+        private readonly IDeviceService _deviceService;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="deviceService"></param>
+        public DeviceController(IDeviceService deviceService)
+        {
+            _deviceService = deviceService;
+        }
+
+        /// <summary>
+        /// 设备包装盒表
+        /// </summary>
+        /// <param name="kw"></param>
+        /// <param name="skip"></param>
+        /// <param name="limit"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("devicepacking")]
+        public PagedApiResult<DevicePackingResponseDto> GetDevicePackings(string kw = "", int skip = 0, int limit = 1)
+        {
+            return _deviceService.GetDevicePackings(kw, skip, limit);
+        }
+
+        /// <summary>
+        /// 设备包装盒保存
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("devicepacking")]
+        public ApiResult SaveDevicePacking(DevicePackingRequestDto req)
+        {
+            return _deviceService.SaveDevicePacking(req);
+        }
+
+    }
+}

+ 1 - 0
Central.Control.WebApi/Controllers/OrderController.cs

@@ -41,6 +41,7 @@ namespace Central.Control.WebApi.Controllers
 
         /// <summary>
         /// 获取待烧烤的商品列表
+        /// </summary>
         /// <returns></returns>
         [HttpGet]
         [Route("queueorders")]

+ 0 - 12
Central.Control.WebApi/Controllers/ProductController.cs

@@ -22,17 +22,6 @@ namespace Central.Control.WebApi.Controllers
                _productService = productService;
         }
 
-        /// <summary>
-        /// 测试接口
-        /// </summary>
-        /// <returns></returns>
-        [HttpGet]
-        [Route("test11")]
-        public ApiResult<string> Test()
-        {
-            return _productService.Test();
-        }
-
         /// <summary>
         /// 商品列表
         /// </summary>
@@ -47,6 +36,5 @@ namespace Central.Control.WebApi.Controllers
             return _productService.Query(kw, skip, limit);
         }
 
-
     }
 }

+ 42 - 0
Central.Control.WebApi/DbEntity/YW_DevicePacking.cs

@@ -0,0 +1,42 @@
+using Ant.Core.SqlServer.BaseEntities;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.DbEntity
+{
+    /// <summary>
+    /// YW_DevicePacking设备包装数量表
+    /// </summary>
+    public class YW_DevicePacking : SoftBaseEntity
+    {
+        /// <summary>
+        /// 主键ID
+        /// </summary>
+        [Key]
+        [MaxLength(50)]
+        public string Id { set; get; } = string.Empty;
+        /// <summary>
+        /// 包装表id
+        /// </summary>
+        [MaxLength(50)]
+        [Required(AllowEmptyStrings = true)]
+        public string PackingId { set; get; } = string.Empty;
+        /// <summary>
+        /// 设备id
+        /// </summary>
+        [MaxLength(50)]
+        [Required(AllowEmptyStrings = true)]
+        public string DeviceId { set; get; } = string.Empty;
+        /// <summary>
+        /// 容量
+        /// </summary>
+        public int Capacity { set; get; } = 1;
+        /// <summary>
+        /// 库存
+        /// </summary>
+        public int Stock { set; get; }
+    }
+}

+ 42 - 0
Central.Control.WebApi/DbEntity/YW_Packing.cs

@@ -0,0 +1,42 @@
+using Ant.Core.SqlServer.BaseEntities;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.DbEntity
+{
+    /// <summary>
+    /// YW_Packing包装表
+    /// </summary>
+    public class YW_Packing : SoftBaseEntity
+    {
+        /// <summary>
+        /// 主键ID
+        /// </summary>
+        [Key]
+        [MaxLength(50)]
+        public string Id { set; get; } = string.Empty;
+        /// <summary>
+        /// 包装名称
+        /// </summary>
+        [MaxLength(50)]
+        [Required(AllowEmptyStrings = true)]
+        public string Name { set; get; } = string.Empty;
+        /// <summary>
+        /// 包装图片
+        /// </summary>
+        [MaxLength(200)]
+        [Required(AllowEmptyStrings = true)]
+        public string Img { set; get; } = string.Empty;
+        /// <summary>
+        /// 最小可装个数
+        /// </summary>
+        public int Min { set; get; } = 1;
+        /// <summary>
+        /// 最大可装个数
+        /// </summary>
+        public int Max { set; get; } = 1;
+    }
+}

+ 10 - 0
Central.Control.WebApi/EFDbContext/CentralControlContext.cs

@@ -55,6 +55,16 @@ namespace Central.Control.WebApi.EFDbContext
         /// </summary>
         public DbSet<YW_OrderProcess> YW_OrderProcess { get; set; }
 
+        /// <summary>
+        /// YW_Packing包装表
+        /// </summary>
+        public DbSet<YW_Packing> YW_Packing { get; set; }
+
+        /// <summary>
+        /// YW_DevicePacking设备包装数量表
+        /// </summary>
+        public DbSet<YW_DevicePacking> YW_DevicePacking { get; set; }
+
         /// <summary>
         /// 删除
         /// </summary>

+ 30 - 0
Central.Control.WebApi/Models/Request/DevicePackingRequestDto.cs

@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Models.Request
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class DevicePackingRequestDto
+    {
+        /// <summary>
+        /// 主键ID
+        /// </summary>
+        public string Id { set; get; } = string.Empty;
+        /// <summary>
+        /// 包装表id
+        /// </summary>
+        public string PackingId { set; get; } = string.Empty;
+        /// <summary>
+        /// 容量
+        /// </summary>
+        public int Capacity { set; get; } = 1;
+        /// <summary>
+        /// 库存
+        /// </summary>
+        public int Stock { set; get; }
+    }
+}

+ 46 - 0
Central.Control.WebApi/Models/Response/DevicePackingResponseDto.cs

@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Models.Response
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class DevicePackingResponseDto
+    {
+        /// <summary>
+        /// 主键ID
+        /// </summary>
+        public string Id { set; get; } = string.Empty;
+        /// <summary>
+        /// 包装表id
+        /// </summary>
+        public string PackingId { set; get; } = string.Empty;
+        /// <summary>
+        /// 包装名称
+        /// </summary>
+        public string PackingName { set; get; } = string.Empty;
+        /// <summary>
+        /// 包装图片
+        /// </summary>
+        public string PackingImg { set; get; } = string.Empty;
+        /// <summary>
+        /// 最小可装个数
+        /// </summary>
+        public int PackingMin { set; get; } = 1;
+        /// <summary>
+        /// 最大可装个数
+        /// </summary>
+        public int PackingMax { set; get; } = 1;
+        /// <summary>
+        /// 容量
+        /// </summary>
+        public int Capacity { set; get; } = 1;
+        /// <summary>
+        /// 库存
+        /// </summary>
+        public int Stock { set; get; }
+    }
+}

+ 142 - 0
Central.Control.WebApi/Service/DeviceService.cs

@@ -0,0 +1,142 @@
+using Ant.Core.SqlServer;
+using Ant.Core.Utils;
+using Ant.Core.WebApi.Enum;
+using Ant.Core.WebApi.Model;
+using Central.Control.WebApi.DbEntity;
+using Central.Control.WebApi.EFDbContext;
+using Central.Control.WebApi.Models.Request;
+using Central.Control.WebApi.Models.Response;
+using Central.Control.WebApi.Service.Interface;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Service
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class DeviceService: IDeviceService
+    {
+        private readonly IDbContext _dbContent;
+        private readonly IUserService _userService;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="dbContent"></param>
+        public DeviceService(
+            IDbContext dbContent,
+            IUserService userService)
+        {
+            _dbContent = dbContent;
+            _userService = userService;
+        }
+
+        /// <summary>
+        /// 设备包装盒表
+        /// </summary>
+        /// <param name="kw"></param>
+        /// <param name="skip"></param>
+        /// <param name="limit"></param>
+        /// <returns></returns>
+        public PagedApiResult<DevicePackingResponseDto> GetDevicePackings(string kw = "", int skip = 0, int limit = 1)
+        {
+            var session = _userService.GetLoginSession();
+
+            var query = from p in _dbContent.Set<YW_Packing>().Where(q => q.IsDelete == 0)
+                        join dp in _dbContent.Set<YW_DevicePacking>().Where(q => q.IsDelete == 0 && q.DeviceId == session.UserId) on p.Id equals dp.PackingId into temp
+                        from dpp in temp.DefaultIfEmpty()
+                        select new
+                        {
+                            Packing = p,
+                            DevicePacking = dpp
+                        };
+
+            // kw搜索
+            query = query.WhereIf(!string.IsNullOrWhiteSpace(kw), p => p.Packing.Name.Contains(kw));
+            // total
+            var total = query.Count();
+            // 查询结果
+            var queryResult = query.OrderByDescending(p => p.Packing.CreateDT).Skip(skip).Take(limit).ToList();
+
+            List<DevicePackingResponseDto> result = new List<DevicePackingResponseDto>();
+            queryResult.ForEach(item =>
+            {
+                // 图片转换
+                // current.Img = ;
+                result.Add(new DevicePackingResponseDto()
+                {
+                    Id = item.DevicePacking?.Id ?? string.Empty,
+                    PackingId = item.Packing.Id,
+                    PackingName = item.Packing.Name,
+                    PackingImg = $"{ProductService.ImagePrefix}{item.Packing.Img}",
+                    PackingMin = item.Packing.Min,
+                    PackingMax = item.Packing.Max,
+                    Capacity = item.DevicePacking?.Capacity ?? 1,
+                    Stock = item.DevicePacking?.Stock ?? 0,
+                });
+            });
+            return new PagedApiResult<DevicePackingResponseDto>(result, total, skip, limit);
+        }
+
+        /// <summary>
+        /// 设备包装盒保存
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        public ApiResult SaveDevicePacking(DevicePackingRequestDto req)
+        {
+            if (req == null
+                || string.IsNullOrWhiteSpace(req.PackingId)
+                || req.Stock < 0
+                || req.Capacity <= 0)
+            {
+                return new ApiResult(ApiStatusCode.InvalidParameter, "请求参数不正确,请检查");
+            }
+            var session = _userService.GetLoginSession();
+
+            // 每个设备,对于每一种包装只能新增一次,其余的都只能是在上面修改库存
+            var devicePacking = _dbContent.Set<YW_DevicePacking>().FirstOrDefault(p => p.IsDelete == 0 && p.DeviceId == session.UserId && p.PackingId == req.PackingId);
+
+            if (devicePacking == null && string.IsNullOrWhiteSpace(req.Id))
+            {
+                // 新增
+                var packing = _dbContent.Set<YW_Packing>().FirstOrDefault(p => p.IsDelete == 0 && p.Id == req.PackingId);
+                if (packing == null)
+                {
+                    return new ApiResult(ApiStatusCode.InvalidParameter, "您选择的包装盒数据不存在");
+                }
+                devicePacking = new YW_DevicePacking()
+                {
+                    Id = IdGenerator.NewId(),
+                    PackingId = packing.Id,
+                    DeviceId = session.UserId,
+                    Capacity = req.Capacity,
+                    Stock = req.Stock,
+                    CreateBY = session.UserId
+                };
+                _dbContent.Set<YW_DevicePacking>().Add(devicePacking);
+            }
+            else
+            {
+                // 修改
+                //var devicePacking = _dbContent.Set<YW_DevicePacking>().FirstOrDefault(p => p.IsDelete == 0 && p.Id == req.Id);
+                //if (devicePacking == null)
+                //{
+                //    return new ApiResult(ApiStatusCode.InvalidParameter, "您修改的记录不存在");
+                //}
+                devicePacking.Capacity = req.Capacity;
+                devicePacking.Stock = req.Stock;
+                devicePacking.ModifyDT = DateTime.Now;
+                devicePacking.ModifyBY = session.UserId;
+
+            }
+            // 具体执行
+            _dbContent.SaveChanges();
+            return new ApiResult();
+        }
+
+    }
+}

+ 33 - 0
Central.Control.WebApi/Service/Interface/IDeviceService.cs

@@ -0,0 +1,33 @@
+using Ant.Core.WebApi.Model;
+using Central.Control.WebApi.Models.Request;
+using Central.Control.WebApi.Models.Response;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Service.Interface
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public interface IDeviceService
+    {
+        /// <summary>
+        /// 设备包装盒表
+        /// </summary>
+        /// <param name="kw"></param>
+        /// <param name="skip"></param>
+        /// <param name="limit"></param>
+        /// <returns></returns>
+        PagedApiResult<DevicePackingResponseDto> GetDevicePackings(string kw = "", int skip = 0, int limit = 1);
+
+        /// <summary>
+        /// 设备包装盒保存
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        ApiResult SaveDevicePacking(DevicePackingRequestDto req);
+
+    }
+}

+ 0 - 6
Central.Control.WebApi/Service/Interface/IProductService.cs

@@ -13,12 +13,6 @@ namespace Central.Control.WebApi.Service.Interface
     /// </summary>
     public interface IProductService
     {
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        ApiResult<string> Test();
-
         /// <summary>
         /// 商品列表
         /// </summary>

+ 41 - 3
Central.Control.WebApi/Service/OrderService.cs

@@ -59,8 +59,46 @@ namespace Central.Control.WebApi.Service
             }
             #endregion
 
-            #region 3、库存验证
+            #region 3、包装盒库存验证
+
             var session = _userService.GetLoginSession();
+            // 修改
+            var devicePackings = _dbContent.Set<YW_DevicePacking>().Where(p => p.IsDelete == 0 && p.DeviceId == session.UserId).ToList();
+            if (devicePackings == null || devicePackings.Count() == 0)
+            {
+                return new ApiResult<OrderResponseDto>(ApiStatusCode.Forbidden, "包装盒库存不足,请联系工作人员添加包装盒");
+            }
+            int orderCount = req.OrderInfo.Sum(p => p.Count);
+            int packingCount = devicePackings.Sum(p => p.Stock * p.Capacity);
+            if (packingCount < orderCount)
+            {
+                return new ApiResult<OrderResponseDto>(ApiStatusCode.Forbidden, "包装盒库存不足,请联系工作人员添加包装盒");
+            }
+
+            // 计算使用的包装盒数量(减包装盒库存)
+            var orderCountIndex = orderCount;
+            foreach (var devicePacking in devicePackings)
+            {
+                if (orderCountIndex <= 0)
+                {
+                    break;// 数量为0了,则直接跳出循环
+                }
+                int currentPackingStock = devicePacking.Stock;
+                for (int i = 0; i < currentPackingStock; i++)
+                {
+                    // 循环库存
+                    if (orderCountIndex <= 0)
+                    {
+                        break;// 数量为0了,则直接跳出循环
+                    }
+                    orderCountIndex = orderCountIndex - devicePacking.Capacity;
+                    devicePacking.Stock--;// 减库存
+                }
+            }
+
+            #endregion
+
+            #region 4、商品库存验证
             var orderId = IdGenerator.NewId();
             List<YW_OrderDetails> orderDetailAdds = new List<YW_OrderDetails>();
             List<YW_OrderProcess> orderProcessAdds = new List<YW_OrderProcess>();
@@ -97,7 +135,7 @@ namespace Central.Control.WebApi.Service
             }
             #endregion
 
-            #region 4、下单
+            #region 5、下单
             YW_Order order = new YW_Order()
             {
                 Id = orderId,
@@ -119,7 +157,7 @@ namespace Central.Control.WebApi.Service
             };
             #endregion
 
-            #region 5、存库
+            #region 6、存库
             _dbContent.Set<YW_Order>().Add(order);
             _dbContent.Set<YW_OrderProcess>().Add(orderProcess);
             _dbContent.Set<YW_OrderDetails>().AddRange(orderDetailAdds);

+ 1 - 34
Central.Control.WebApi/Service/ProductService.cs

@@ -41,32 +41,6 @@ namespace Central.Control.WebApi.Service
             _dbContent = dbContent;
         }
 
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        public ApiResult<string> Test()
-        {
-            var ww = _dbContent.Set<SYS_Device>().FirstOrDefault(p => p.Id == "cb8b354c-b713-4dd7-9752-a6f3217004a0");
-            if (ww != null)
-            {
-                ww.Name = ww.Name + "1";
-            }
-            _dbContent.SaveChanges();
-
-            _cacheHelper.Set<string>("test01", "95990934");
-            var ss = _cacheHelper.Get<string>("test01");
-
-            _cacheHelper.Set("test02", new Test001()
-            {
-                Id = Guid.NewGuid().ToString(),
-                Token = "998097"
-            });
-            var ss1 = _cacheHelper.Get<Test001>("test02");
-
-            return new ApiResult<string>("查库得到数据:" + ww?.Name ?? "nodata");
-        }
-
         /// <summary>
         /// 商品列表
         /// </summary>
@@ -88,7 +62,7 @@ namespace Central.Control.WebApi.Service
             queryResult.ForEach(item =>
             {
                 var current = SafeClone<YW_Product, ProductResponseDto>.Trans(item);
-                // 图片转换TODO
+                // 图片转换
                 current.Img = $"{ImagePrefix}{current.Img}";
                 result.Add(current);
             });
@@ -97,11 +71,4 @@ namespace Central.Control.WebApi.Service
 
     }
 
-
-    public class Test001
-    {
-        public string Id { set; get; }
-        public string Token { set; get; }
-
-    }
 }

+ 2 - 1
Central.Control.WebApi/Web.config

@@ -16,7 +16,8 @@
     <add key="webpages:Enabled" value="false" />
     <add key="ClientValidationEnabled" value="true" />
     <add key="UnobtrusiveJavaScriptEnabled" value="true" />
-    <add key="ImagePrefix" value="http://192.168.1.6:8001/" />
+    <!--<add key="ImagePrefix" value="http://192.168.1.6:8001/" />-->
+    <add key="ImagePrefix" value="http://192.168.3.10:8001" />
   </appSettings>
   <system.web>
     <compilation debug="true" targetFramework="4.7.2" />