Bladeren bron

相关接口

smj_7038 3 jaren geleden
bovenliggende
commit
10166b1dc1
26 gewijzigde bestanden met toevoegingen van 1160 en 23 verwijderingen
  1. 11 0
      Ant.Core.WebApi/Ant.Core.WebApi.csproj
  2. 28 0
      Ant.Core.WebApi/Json/JsonContentNegotiator.cs
  3. 4 4
      Ant.Core.WebApi/Model/ApiResult.cs
  4. 5 0
      Ant.Core.WebApi/packages.config
  5. 1 0
      Ant.Core/Ant.Core.csproj
  6. 66 0
      Ant.Core/Utils/IdGenerator.cs
  7. 346 3
      Central.Control.WebApi/App_Data/Central.Control.WebApi.xml
  8. 27 1
      Central.Control.WebApi/App_Start/WebApiConfig.cs
  9. 8 0
      Central.Control.WebApi/Central.Control.WebApi.csproj
  10. 48 3
      Central.Control.WebApi/Controllers/OrderController.cs
  11. 1 1
      Central.Control.WebApi/DbEntity/SYS_LoginSession.cs
  12. 10 0
      Central.Control.WebApi/DbEntity/YW_Order.cs
  13. 7 1
      Central.Control.WebApi/DbEntity/YW_OrderDetails.cs
  14. 45 0
      Central.Control.WebApi/DbEntity/YW_OrderProcess.cs
  15. 45 0
      Central.Control.WebApi/DbEntity/YW_PayCall.cs
  16. 11 1
      Central.Control.WebApi/EFDbContext/CentralControlContext.cs
  17. 46 0
      Central.Control.WebApi/Enum/OrderStatusEnum.cs
  18. 0 5
      Central.Control.WebApi/Filter/CenterControlAuthorize.cs
  19. 27 0
      Central.Control.WebApi/Models/Request/OrderProcessRequestDto.cs
  20. 36 0
      Central.Control.WebApi/Models/Request/OrderRequestDto.cs
  21. 30 0
      Central.Control.WebApi/Models/Request/PayWriteBackRequestDto.cs
  22. 22 0
      Central.Control.WebApi/Models/Response/OrderResponseDto.cs
  23. 58 0
      Central.Control.WebApi/Models/Response/QueueOrderResponseDto.cs
  24. 28 1
      Central.Control.WebApi/Service/Interface/IOrderService.cs
  25. 249 2
      Central.Control.WebApi/Service/OrderService.cs
  26. 1 1
      Central.Control.WebApi/Web.config

+ 11 - 0
Ant.Core.WebApi/Ant.Core.WebApi.csproj

@@ -31,8 +31,14 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
+    <Reference Include="System.Net.Http.Formatting, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll</HintPath>
+    </Reference>
     <Reference Include="System.Xml.Linq" />
     <Reference Include="System.Data.DataSetExtensions" />
     <Reference Include="Microsoft.CSharp" />
@@ -42,9 +48,14 @@
   </ItemGroup>
   <ItemGroup>
     <Compile Include="Enum\ApiStatusCode.cs" />
+    <Compile Include="Json\JsonContentNegotiator.cs" />
     <Compile Include="Model\ApiResult.cs" />
     <Compile Include="Model\PagedApiResult.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
+  <ItemGroup />
+  <ItemGroup>
+    <None Include="packages.config" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

+ 28 - 0
Ant.Core.WebApi/Json/JsonContentNegotiator.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Net.Http.Formatting;
+using System.Net.Http.Headers;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Ant.Core.WebApi.Json
+{
+    public class JsonContentNegotiator : IContentNegotiator
+    {
+        private readonly JsonMediaTypeFormatter _jsonFormatter;
+
+        public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
+        {
+            _jsonFormatter = formatter;
+        }
+
+        public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters)
+        {
+            var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
+            return result;
+        }
+
+    }
+}

+ 4 - 4
Ant.Core.WebApi/Model/ApiResult.cs

@@ -11,20 +11,20 @@ namespace Ant.Core.WebApi.Model
     {
         public ApiResult()
         {
-            this.ErrorCode = ApiStatusCode.Success;
+            this.Code = ApiStatusCode.Success;
             this.Message = "成功";
         }
 
         public ApiResult(ApiStatusCode errorCode, string message)
         {
-            this.ErrorCode = errorCode;
+            this.Code = errorCode;
             this.Message = message;
         }
 
         /// <summary>
         /// 返回码
         /// </summary>
-        public ApiStatusCode ErrorCode { set; get; } = ApiStatusCode.Success;
+        public ApiStatusCode Code { set; get; } = ApiStatusCode.Success;
         /// <summary>
         /// 返回消息
         /// </summary>
@@ -32,7 +32,7 @@ namespace Ant.Core.WebApi.Model
         /// <summary>
         /// 是否成功
         /// </summary>
-        public bool IsSuccess { get { return ErrorCode == ApiStatusCode.Success; } }
+        public bool IsSuccess { get { return Code == ApiStatusCode.Success; } }
     }
 
     public class ApiResult<T> : ApiResult

+ 5 - 0
Ant.Core.WebApi/packages.config

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net472" />
+  <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net472" />
+</packages>

+ 1 - 0
Ant.Core/Ant.Core.csproj

@@ -44,6 +44,7 @@
     <Compile Include="Extensions\Extensions.Convert.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Utils\ConvertHelper.cs" />
+    <Compile Include="Utils\IdGenerator.cs" />
     <Compile Include="Utils\SafeClone.cs" />
     <Compile Include="Utils\Snowflake.cs" />
   </ItemGroup>

+ 66 - 0
Ant.Core/Utils/IdGenerator.cs

@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Ant.Core.Utils
+{
+    public class IdGenerator
+    {
+        #region Fields
+
+        private static readonly string digits = "0123456789abcdefghijklmnopqrstuvwxyz";
+
+        private static readonly char[] characters = digits.ToCharArray();
+
+        private static Random random = new Random();
+
+        private static readonly long startTicks = new DateTime(2017, 1, 1).Ticks;
+
+        #endregion Fields
+
+        /// <summary>
+        /// Generate a short id
+        /// </summary>
+        /// <returns></returns>
+        public static string NewId()
+        {
+            long current = DateTime.Now.Ticks - startTicks;
+            string strRadix = ConvertToRadix(current, characters.Length);
+
+            StringBuilder sb = new StringBuilder(strRadix);
+            for (int i = 0; i < 6; i++)
+            {
+                sb.Append(characters[random.Next(characters.Length)]);
+            }
+            return sb.ToString().ToUpper();
+        }
+
+        public static string NewId(string prefix)
+        {
+            return $"{prefix}{NewId()}";
+        }
+
+        public static Guid NewGUId()
+        {
+            return Guid.NewGuid();
+        }
+
+        public static string NewUUId()
+        {
+            return Guid.NewGuid().ToString("N");
+        }
+
+        private static string ConvertToRadix(long value, int radix)
+        {
+            StringBuilder sb = new StringBuilder();
+            while (value > 0)
+            {
+                sb.Insert(0, characters[value % radix]);
+                value /= radix;
+            }
+            return sb.ToString();
+        }
+    }
+}

+ 346 - 3
Central.Control.WebApi/App_Data/Central.Control.WebApi.xml

@@ -130,6 +130,28 @@
             </summary>
             <param name="orderService"></param>
         </member>
+        <member name="M:Central.Control.WebApi.Controllers.OrderController.Order(Central.Control.WebApi.Models.Request.OrderRequestDto)">
+            <summary>
+            下单
+            </summary>
+            <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.OrderProcess(Central.Control.WebApi.Models.Request.OrderProcessRequestDto)">
+            <summary>
+            回写流程状态
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Central.Control.WebApi.Controllers.OrderController.PayWriteBack(Central.Control.WebApi.Models.Request.PayWriteBackRequestDto)">
+            <summary>
+            支付回写(雏形,需要根据实际需要接入支付宝或微信)
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
         <member name="T:Central.Control.WebApi.Controllers.ProductController">
             <summary>
             订单相关接口
@@ -158,7 +180,7 @@
         </member>
         <member name="T:Central.Control.WebApi.DbEntity.SYS_LoginSession">
             <summary>
-            系统登录信息
+            SYS_LoginSession系统登录信息
             </summary>
         </member>
         <member name="P:Central.Control.WebApi.DbEntity.SYS_LoginSession.Id">
@@ -186,6 +208,66 @@
             过期时间
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.DbEntity.YW_OrderProcess">
+            <summary>
+            YW_OrderProcess订单制作过程表
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_OrderProcess.Id">
+            <summary>
+            主键id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_OrderProcess.OrderId">
+            <summary>
+            订单id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_OrderProcess.DeviceId">
+            <summary>
+            制作机器id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_OrderProcess.CurrentOrderStatus">
+            <summary>
+            当前进度
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_OrderProcess.Message">
+            <summary>
+            当前消息
+            </summary>
+        </member>
+        <member name="T:Central.Control.WebApi.DbEntity.YW_PayCall">
+            <summary>
+            YW_PayCall支付回写表
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_PayCall.Id">
+            <summary>
+            主键id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_PayCall.OrderId">
+            <summary>
+            订单id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_PayCall.PayStatus">
+            <summary>
+            支付状态
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_PayCall.PaySerialId">
+            <summary>
+            支付流水号
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_PayCall.PayAccount">
+            <summary>
+            支付账号
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.DbEntity.SYS_Device">
             <summary>
             设备表
@@ -241,6 +323,16 @@
             支付状态
             </summary>
         </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_Order.OrderStatus">
+            <summary>
+            订单状态
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_Order.PaySerialId">
+            <summary>
+            支付流水号
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.DbEntity.YW_OrderDetails">
             <summary>
             YW_ORDERDETAILS商品订单详细表
@@ -251,6 +343,11 @@
             主键ID
             </summary>
         </member>
+        <member name="P:Central.Control.WebApi.DbEntity.YW_OrderDetails.OrderId">
+            <summary>
+            订单id
+            </summary>
+        </member>
         <member name="P:Central.Control.WebApi.DbEntity.YW_OrderDetails.ProductId">
             <summary>
             商品id
@@ -373,7 +470,17 @@
         </member>
         <member name="P:Central.Control.WebApi.EFDbContext.CentralControlContext.SYS_LoginSession">
             <summary>
-            系统登录信息
+            SYS_LoginSession系统登录信息
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.EFDbContext.CentralControlContext.YW_PayCall">
+            <summary>
+            YW_PayCall支付回写表
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.EFDbContext.CentralControlContext.YW_OrderProcess">
+            <summary>
+            YW_OrderProcess订单制作过程表
             </summary>
         </member>
         <member name="M:Central.Control.WebApi.EFDbContext.CentralControlContext.Delete``1(System.String)">
@@ -390,6 +497,51 @@
             <typeparam name="T"></typeparam>
             <param name="id"></param>
         </member>
+        <member name="T:Central.Control.WebApi.Enum.OrderStatusEnum">
+            <summary>
+            订单状态
+            </summary>
+        </member>
+        <member name="F:Central.Control.WebApi.Enum.OrderStatusEnum.UnPay">
+            <summary>
+            0未支付
+            </summary>
+        </member>
+        <member name="F:Central.Control.WebApi.Enum.OrderStatusEnum.Paid">
+            <summary>
+            1已支付
+            </summary>
+        </member>
+        <member name="F:Central.Control.WebApi.Enum.OrderStatusEnum.Cancel">
+            <summary>
+            2已取消
+            </summary>
+        </member>
+        <member name="F:Central.Control.WebApi.Enum.OrderStatusEnum.Catching">
+            <summary>
+            抓取中
+            </summary>
+        </member>
+        <member name="F:Central.Control.WebApi.Enum.OrderStatusEnum.Roasting">
+            <summary>
+            烧烤中
+            </summary>
+        </member>
+        <member name="F:Central.Control.WebApi.Enum.OrderStatusEnum.Packing">
+            <summary>
+            打包中
+            </summary>
+        </member>
+        <member name="F:Central.Control.WebApi.Enum.OrderStatusEnum.Shipped">
+            <summary>
+            6已出货
+            </summary>
+        </member>
+        <member name="F:Central.Control.WebApi.Enum.OrderStatusEnum.Error">
+            <summary>
+            99错误
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.Enum.PayStatusEnum">
             <summary>
             支付状态
@@ -494,6 +646,76 @@
             设备密码
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.Models.Request.OrderProcessRequestDto">
+            <summary>
+            订单状态
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.OrderProcessRequestDto.OrderId">
+            <summary>
+            订单id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.OrderProcessRequestDto.OrderStatus">
+            <summary>
+            回写订单状态
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.OrderProcessRequestDto.Message">
+            <summary>
+            回写信息
+            </summary>
+        </member>
+        <member name="T:Central.Control.WebApi.Models.Request.OrderRequestDto">
+            <summary>
+            下单实体
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.OrderRequestDto.OrderInfo">
+            <summary>
+            订单详情
+            </summary>
+        </member>
+        <member name="T:Central.Control.WebApi.Models.Request.OrderProductInfo">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.OrderProductInfo.ProductId">
+            <summary>
+            下单商品id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.OrderProductInfo.Count">
+            <summary>
+            下单商品id
+            </summary>
+        </member>
+        <member name="T:Central.Control.WebApi.Models.Request.PayWriteBackRequestDto">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.PayWriteBackRequestDto.PaySerialId">
+            <summary>
+            支付流水号
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.PayWriteBackRequestDto.PayStatus">
+            <summary>
+            支付流状态
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.PayWriteBackRequestDto.PayAccount">
+            <summary>
+            支付账号
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Request.PayWriteBackRequestDto.Message">
+            <summary>
+            支付信息
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.Models.Response.DeviceLoginResponseDto">
             <summary>
             
@@ -504,6 +726,21 @@
             token
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.Models.Response.OrderResponseDto">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.OrderResponseDto.OrderId">
+            <summary>
+            订单id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.OrderResponseDto.Price">
+            <summary>
+            需要支付价格
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.Models.Response.ProductResponseDto">
             <summary>
             
@@ -544,6 +781,61 @@
             库存
             </summary>
         </member>
+        <member name="T:Central.Control.WebApi.Models.Response.QueueOrderResponseDto">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderResponseDto.OrderId">
+            <summary>
+            主键id
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderResponseDto.Price">
+            <summary>
+            订单金额
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderResponseDto.OrderDetails">
+            <summary>
+            订单详情
+            </summary>
+        </member>
+        <member name="T:Central.Control.WebApi.Models.Response.QueueOrderDetailsDto">
+            <summary>
+            YW_ORDERDETAILS商品订单详细表
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderDetailsDto.Id">
+            <summary>
+            主键ID
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderDetailsDto.Name">
+            <summary>
+            商品名称
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderDetailsDto.Code">
+            <summary>
+            商品编号(唯一)
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderDetailsDto.Img">
+            <summary>
+            商品图片
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderDetailsDto.Price">
+            <summary>
+            售卖价
+            </summary>
+        </member>
+        <member name="P:Central.Control.WebApi.Models.Response.QueueOrderDetailsDto.Count">
+            <summary>
+            购买数量
+            </summary>
+        </member>
         <member name="T:Central.Control.WebApi.Service.Interface.ILoginService">
             <summary>
             
@@ -566,6 +858,28 @@
             
             </summary>
         </member>
+        <member name="M:Central.Control.WebApi.Service.Interface.IOrderService.Order(Central.Control.WebApi.Models.Request.OrderRequestDto)">
+            <summary>
+            下单
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:Central.Control.WebApi.Service.Interface.IOrderService.GetQueueOrders" -->
+        <member name="M:Central.Control.WebApi.Service.Interface.IOrderService.OrderProcess(Central.Control.WebApi.Models.Request.OrderProcessRequestDto)">
+            <summary>
+            回写流程状态
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Central.Control.WebApi.Service.Interface.IOrderService.PayWriteBack(Central.Control.WebApi.Models.Request.PayWriteBackRequestDto)">
+            <summary>
+            支付回写(雏形,需要根据实际需要接入支付宝或微信)
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
         <member name="T:Central.Control.WebApi.Service.Interface.IProductService">
             <summary>
             
@@ -626,12 +940,41 @@
             
             </summary>
         </member>
-        <member name="M:Central.Control.WebApi.Service.OrderService.#ctor(Central.Control.WebApi.EFDbContext.IDbContext)">
+        <member name="M:Central.Control.WebApi.Service.OrderService.#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.OrderService.Order(Central.Control.WebApi.Models.Request.OrderRequestDto)">
+            <summary>
+            下单
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
+        <!-- Badly formed XML comment ignored for member "M:Central.Control.WebApi.Service.OrderService.GetQueueOrders" -->
+        <member name="M:Central.Control.WebApi.Service.OrderService.OrderProcess(Central.Control.WebApi.Models.Request.OrderProcessRequestDto)">
+            <summary>
+            回写流程状态
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Central.Control.WebApi.Service.OrderService.PayWriteBack(Central.Control.WebApi.Models.Request.PayWriteBackRequestDto)">
+            <summary>
+            支付回写(雏形,需要根据实际需要接入支付宝或微信)
+            </summary>
+            <param name="req"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Central.Control.WebApi.Service.OrderService.GetStatusByPayWriteBack(System.Int32)">
+            <summary>
+            
+            </summary>
+            <param name="payStatusBack"></param>
+            <returns></returns>
+        </member>
         <member name="T:Central.Control.WebApi.Service.ProductService">
             <summary>
             

+ 27 - 1
Central.Control.WebApi/App_Start/WebApiConfig.cs

@@ -1,8 +1,12 @@
-using Central.Control.WebApi.Filter;
+using Ant.Core.WebApi.Json;
+using Central.Control.WebApi.Filter;
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Serialization;
 using Swashbuckle.Application;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Net.Http.Formatting;
 using System.Web.Http;
 
 namespace Central.Control.WebApi
@@ -31,6 +35,28 @@ namespace Central.Control.WebApi
                                        constraints: null,
                                        handler: new RedirectHandler((message => message.RequestUri.ToString()), "swagger"));
 
+            // 驼峰
+            // ConfigureJsonApi(config);
         }
+
+
+
+        public static void ConfigureJsonApi(HttpConfiguration config)
+
+        {
+            var jsonFormatter = new JsonMediaTypeFormatter();
+            var settings = jsonFormatter.SerializerSettings;
+
+            IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
+            //这里使用自定义日期格式
+            timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss";
+            settings.Converters.Add(timeConverter);
+
+
+            settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
+            config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));
+        }
+
+
     }
 }

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

@@ -211,8 +211,11 @@
     <Compile Include="Controllers\OrderController.cs" />
     <Compile Include="Controllers\ProductController.cs" />
     <Compile Include="DbEntity\SYS_LoginSession.cs" />
+    <Compile Include="DbEntity\YW_OrderProcess.cs" />
+    <Compile Include="DbEntity\YW_PayCall.cs" />
     <Compile Include="EFDbContext\CentralControlContext.cs" />
     <Compile Include="EFDbContext\IDbContext.cs" />
+    <Compile Include="Enum\OrderStatusEnum.cs" />
     <Compile Include="Enum\PayStatusEnum.cs" />
     <Compile Include="Enum\SaleEnum.cs" />
     <Compile Include="Filter\CenterControlAuthorize.cs" />
@@ -225,8 +228,13 @@
     <Compile Include="DbEntity\YW_OrderDetails.cs" />
     <Compile Include="DbEntity\YW_Product.cs" />
     <Compile Include="Models\Request\DeviceLoginRequestDto.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\OrderResponseDto.cs" />
     <Compile Include="Models\Response\ProductResponseDto.cs" />
+    <Compile Include="Models\Response\QueueOrderResponseDto.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Service\Interface\ILoginService.cs" />
     <Compile Include="Service\Interface\IOrderService.cs" />

+ 48 - 3
Central.Control.WebApi/Controllers/OrderController.cs

@@ -1,4 +1,7 @@
-using Central.Control.WebApi.Service.Interface;
+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;
@@ -24,10 +27,52 @@ namespace Central.Control.WebApi.Controllers
             _orderService = orderService;
         }
 
-        // 下单
+        /// <summary>
+        /// 下单
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("")]
+        public ApiResult<OrderResponseDto> Order(OrderRequestDto req)
+        {
+            return _orderService.Order(req);
+        }
+
+        /// <summary>
+        /// 获取待烧烤的商品列表
+        /// <returns></returns>
+        [HttpGet]
+        [Route("queueorders")]
+        public ApiResult<List<QueueOrderResponseDto>> GetQueueOrders()
+        {
+            return _orderService.GetQueueOrders();
+        }
 
-        // 
+        /// <summary>
+        /// 回写流程状态
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("orderprocess")]
+        public ApiResult OrderProcess(OrderProcessRequestDto req)
+        {
+            return _orderService.OrderProcess(req);
+        }
 
+        /// <summary>
+        /// 支付回写(雏形,需要根据实际需要接入支付宝或微信)
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        [AllowAnonymous]
+        [HttpPost]
+        [Route("paywriteback")]
+        public ApiResult PayWriteBack(PayWriteBackRequestDto req)
+        {
+            return _orderService.PayWriteBack(req);
+        }
 
     }
 }

+ 1 - 1
Central.Control.WebApi/DbEntity/SYS_LoginSession.cs

@@ -8,7 +8,7 @@ using System.Web;
 namespace Central.Control.WebApi.DbEntity
 {
     /// <summary>
-    /// 系统登录信息
+    /// SYS_LoginSession系统登录信息
     /// </summary>
     public class SYS_LoginSession: BaseEntity
     {

+ 10 - 0
Central.Control.WebApi/DbEntity/YW_Order.cs

@@ -33,5 +33,15 @@ namespace Central.Control.WebApi.DbEntity
 		/// 支付状态
 		/// </summary>
 		public PayStatusEnum PayStatus { set; get; } = PayStatusEnum.UnPay;
+		/// <summary>
+		/// 订单状态
+		/// </summary>
+		public OrderStatusEnum OrderStatus { set; get; } = OrderStatusEnum.UnPay;
+		/// <summary>
+		/// 支付流水号
+		/// </summary>
+		[MaxLength(100)]
+		[Required(AllowEmptyStrings = true)]
+		public string PaySerialId { set; get; } = string.Empty;
 	}
 }

+ 7 - 1
Central.Control.WebApi/DbEntity/YW_OrderDetails.cs

@@ -19,9 +19,15 @@ namespace Central.Control.WebApi.DbEntity
         [MaxLength(50)]
         public string Id { set; get; } = string.Empty;
         /// <summary>
+        /// 订单id
+        /// </summary>
+        [MaxLength(50)]
+        [Required(AllowEmptyStrings = true)]
+        public string OrderId { set; get; } = string.Empty;
+        /// <summary>
         /// 商品id
         /// </summary>
-        [MaxLength(100)]
+        [MaxLength(50)]
         [Required(AllowEmptyStrings = true)]
         public string ProductId { set; get; } = string.Empty;
         /// <summary>

+ 45 - 0
Central.Control.WebApi/DbEntity/YW_OrderProcess.cs

@@ -0,0 +1,45 @@
+using Ant.Core.SqlServer.BaseEntities;
+using Central.Control.WebApi.Enum;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.DbEntity
+{
+    /// <summary>
+    /// YW_OrderProcess订单制作过程表
+    /// </summary>
+    public class YW_OrderProcess: SoftBaseEntity
+	{
+		/// <summary>
+		/// 主键id
+		/// </summary>
+		[Key]
+		[MaxLength(50)]
+		public string Id { set; get; } = string.Empty;
+		/// <summary>
+		/// 订单id
+		/// </summary>
+		[MaxLength(50)]
+		[Required(AllowEmptyStrings = true)]
+		public string OrderId { set; get; } = string.Empty;
+		/// <summary>
+		/// 制作机器id
+		/// </summary>
+		[MaxLength(50)]
+		[Required(AllowEmptyStrings = true)]
+		public string DeviceId { set; get; } = string.Empty;
+		/// <summary>
+		/// 当前进度
+		/// </summary>
+		public OrderStatusEnum CurrentOrderStatus { set; get; } = OrderStatusEnum.UnPay;
+		/// <summary>
+		/// 当前消息
+		/// </summary>
+		[MaxLength(500)]
+		[Required(AllowEmptyStrings = true)]
+		public string Message { set; get; } = string.Empty;
+	}
+}

+ 45 - 0
Central.Control.WebApi/DbEntity/YW_PayCall.cs

@@ -0,0 +1,45 @@
+using Ant.Core.SqlServer.BaseEntities;
+using Central.Control.WebApi.Enum;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.DbEntity
+{
+	/// <summary>
+	/// YW_PayCall支付回写表
+	/// </summary>
+	public class YW_PayCall : SoftBaseEntity
+	{
+		/// <summary>
+		/// 主键id
+		/// </summary>
+		[Key]
+		[MaxLength(50)]
+		public string Id { set; get; } = string.Empty;
+		/// <summary>
+		/// 订单id
+		/// </summary>
+		[MaxLength(50)]
+		[Required(AllowEmptyStrings = true)]
+		public string OrderId { set; get; } = string.Empty;
+		/// <summary>
+		/// 支付状态
+		/// </summary>
+		public PayStatusEnum PayStatus { set; get; } = PayStatusEnum.UnPay;
+		/// <summary>
+		/// 支付流水号
+		/// </summary>
+		[MaxLength(100)]
+		[Required(AllowEmptyStrings = true)]
+		public string PaySerialId { set; get; } = string.Empty;
+		/// <summary>
+		/// 支付账号
+		/// </summary>
+		[MaxLength(100)]
+		[Required(AllowEmptyStrings = true)]
+		public string PayAccount { set; get; } = string.Empty;
+	}
+}

+ 11 - 1
Central.Control.WebApi/EFDbContext/CentralControlContext.cs

@@ -41,10 +41,20 @@ namespace Central.Control.WebApi.EFDbContext
         public DbSet<YW_OrderDetails> YW_ORDERDETAILS { get; set; }
 
         /// <summary>
-        /// 系统登录信息
+        /// SYS_LoginSession系统登录信息
         /// </summary>
         public DbSet<SYS_LoginSession> SYS_LoginSession { get; set; }
 
+        /// <summary>
+        /// YW_PayCall支付回写表
+        /// </summary>
+        public DbSet<YW_PayCall> YW_PayCall { get; set; }
+
+        /// <summary>
+        /// YW_OrderProcess订单制作过程表
+        /// </summary>
+        public DbSet<YW_OrderProcess> YW_OrderProcess { get; set; }
+
         /// <summary>
         /// 删除
         /// </summary>

+ 46 - 0
Central.Control.WebApi/Enum/OrderStatusEnum.cs

@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Enum
+{
+    /// <summary>
+    /// 订单状态
+    /// </summary>
+    public enum OrderStatusEnum
+    {
+        /// <summary>
+        /// 0未支付
+        /// </summary>
+        UnPay = 0,
+        /// <summary>
+        /// 1已支付
+        /// </summary>
+        Paid = 1,
+        /// <summary>
+        /// 2已取消
+        /// </summary>
+        Cancel = 2,
+        /// <summary>
+        /// 抓取中
+        /// </summary>
+        Catching = 3,
+        /// <summary>
+        /// 烧烤中
+        /// </summary>
+        Roasting = 4,
+        /// <summary>
+        /// 打包中
+        /// </summary>
+        Packing = 5,
+        /// <summary>
+        /// 6已出货
+        /// </summary>
+        Shipped = 6,
+        /// <summary>
+        /// 99错误
+        /// </summary>
+        Error = 99
+    }
+}

+ 0 - 5
Central.Control.WebApi/Filter/CenterControlAuthorize.cs

@@ -55,10 +55,5 @@ namespace Central.Control.WebApi.Filter
             return isAuthorized;
         }
 
-        //public override void OnAuthorization(HttpActionContext httpContext)
-        //{
-        //    base.OnAuthorization(httpContext);
-        //}
-
     }
 }

+ 27 - 0
Central.Control.WebApi/Models/Request/OrderProcessRequestDto.cs

@@ -0,0 +1,27 @@
+using Central.Control.WebApi.Enum;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Models.Request
+{
+    /// <summary>
+    /// 订单状态
+    /// </summary>
+    public class OrderProcessRequestDto
+    {
+        /// <summary>
+        /// 订单id
+        /// </summary>
+        public string OrderId { set; get; }
+        /// <summary>
+        /// 回写订单状态
+        /// </summary>
+        public OrderStatusEnum OrderStatus { set; get; } = OrderStatusEnum.UnPay;
+        /// <summary>
+        /// 回写信息
+        /// </summary>
+        public string Message { set; get; }
+    }
+}

+ 36 - 0
Central.Control.WebApi/Models/Request/OrderRequestDto.cs

@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Models.Request
+{
+    /// <summary>
+    /// 下单实体
+    /// </summary>
+    public class OrderRequestDto
+    {
+        /// <summary>
+        /// 订单详情
+        /// </summary>
+        [Required(ErrorMessage = "OrderInfo必传")]
+        public List<OrderProductInfo> OrderInfo { set; get; } = new List<OrderProductInfo>();
+    }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public class OrderProductInfo
+    {
+        /// <summary>
+        /// 下单商品id
+        /// </summary>
+        [Required(ErrorMessage = "ProductId必传")]
+        public string ProductId { set; get; } = string.Empty;
+        /// <summary>
+        /// 下单商品id
+        /// </summary>
+        public int Count { set; get; }
+    }
+}

+ 30 - 0
Central.Control.WebApi/Models/Request/PayWriteBackRequestDto.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 PayWriteBackRequestDto
+    {
+        /// <summary>
+        /// 支付流水号
+        /// </summary>
+        public string PaySerialId { set; get; } = string.Empty;
+        /// <summary>
+        /// 支付流状态
+        /// </summary>
+        public int PayStatus { set; get; }
+        /// <summary>
+        /// 支付账号
+        /// </summary>
+        public string PayAccount { set; get; }
+        /// <summary>
+        /// 支付信息
+        /// </summary>
+        public string Message { set; get; } = string.Empty;
+    }
+}

+ 22 - 0
Central.Control.WebApi/Models/Response/OrderResponseDto.cs

@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Models.Response
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class OrderResponseDto
+    {
+        /// <summary>
+        /// 订单id
+        /// </summary>
+        public string OrderId { set; get; } = string.Empty;
+        /// <summary>
+        /// 需要支付价格
+        /// </summary>
+        public decimal Price { set; get; }
+    }
+}

+ 58 - 0
Central.Control.WebApi/Models/Response/QueueOrderResponseDto.cs

@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+
+namespace Central.Control.WebApi.Models.Response
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class QueueOrderResponseDto
+    {
+		/// <summary>
+		/// 主键id
+		/// </summary>
+		public string OrderId { set; get; } = string.Empty;
+		/// <summary>
+		/// 订单金额
+		/// </summary>
+		public decimal Price { set; get; }
+        /// <summary>
+        /// 订单详情
+        /// </summary>
+        public List<QueueOrderDetailsDto> OrderDetails { set; get; } = new List<QueueOrderDetailsDto>();
+    }
+
+    /// <summary>
+    /// YW_ORDERDETAILS商品订单详细表
+    /// </summary>
+    public class QueueOrderDetailsDto
+    {
+        /// <summary>
+        /// 主键ID
+        /// </summary>
+        public string Id { set; get; } = string.Empty;
+        /// <summary>
+        /// 商品名称
+        /// </summary>
+        public string Name { set; get; } = string.Empty;
+        /// <summary>
+        /// 商品编号(唯一)
+        /// </summary>
+        public string Code { set; get; } = string.Empty;
+        /// <summary>
+        /// 商品图片
+        /// </summary>
+        public string Img { set; get; } = string.Empty;
+        /// <summary>
+        /// 售卖价
+        /// </summary>
+        public decimal Price { set; get; }
+        /// <summary>
+        /// 购买数量
+        /// </summary>
+        public int Count { set; get; }
+    }
+
+}

+ 28 - 1
Central.Control.WebApi/Service/Interface/IOrderService.cs

@@ -1,4 +1,7 @@
-using System;
+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.Text;
@@ -11,6 +14,30 @@ namespace Central.Control.WebApi.Service.Interface
     /// </summary>
     public interface IOrderService
     {
+        /// <summary>
+        /// 下单
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        ApiResult<OrderResponseDto> Order(OrderRequestDto req);
 
+        /// <summary>
+        /// 获取待烧烤的商品列表
+        /// <returns></returns>
+        ApiResult<List<QueueOrderResponseDto>> GetQueueOrders();
+
+        /// <summary>
+        /// 回写流程状态
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        ApiResult OrderProcess(OrderProcessRequestDto req);
+
+        /// <summary>
+        /// 支付回写(雏形,需要根据实际需要接入支付宝或微信)
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        ApiResult PayWriteBack(PayWriteBackRequestDto req);
     }
 }

+ 249 - 2
Central.Control.WebApi/Service/OrderService.cs

@@ -1,4 +1,11 @@
-using Central.Control.WebApi.EFDbContext;
+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.Enum;
+using Central.Control.WebApi.Models.Request;
+using Central.Control.WebApi.Models.Response;
 using Central.Control.WebApi.Service.Interface;
 using System;
 using System.Collections.Generic;
@@ -13,19 +20,259 @@ namespace Central.Control.WebApi.Service
     public class OrderService: IOrderService
     {
         private readonly IDbContext _dbContent;
+        private readonly IUserService _userService;
 
         /// <summary>
         /// 
         /// </summary>
         /// <param name="dbContent"></param>
         public OrderService(
-            IDbContext dbContent)
+            IDbContext dbContent,
+            IUserService userService)
         {
             _dbContent = dbContent;
+            _userService = userService;
         }
 
+        /// <summary>
+        /// 下单
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        public ApiResult<OrderResponseDto> Order(OrderRequestDto req)
+        {
+            #region 1、验证参数
+            if (req == null
+                || req.OrderInfo == null
+                || req.OrderInfo.Count() == 0)
+            {
+                return new ApiResult<OrderResponseDto>(ApiStatusCode.InvalidParameter, "请求参数不正确");
+            }
+            #endregion
+
+            #region 2、验证相应数据和库存
+            var productIds = req.OrderInfo.Select(p => p.ProductId).ToList();
+            var products = _dbContent.Set<YW_Product>().Where(p => p.IsDelete == 0 && p.Sale == Enum.SaleEnum.On && productIds.Contains(p.Id)).ToList();
+            if (products.Count() <= 0)
+            {
+                return new ApiResult<OrderResponseDto>(ApiStatusCode.RecordNotFound, "未找到下单的商品");
+            }
+            #endregion
+
+            #region 3、库存验证
+            var session = _userService.GetLoginSession();
+            var orderId = IdGenerator.NewId();
+            List<YW_OrderDetails> orderDetailAdds = new List<YW_OrderDetails>();
+            List<YW_OrderProcess> orderProcessAdds = new List<YW_OrderProcess>();
+
+            foreach (var o in req.OrderInfo)
+            {
+                var currentProduct = products.FirstOrDefault(p => p.Id == o.ProductId);
+                if (currentProduct == null)
+                {
+                    return new ApiResult<OrderResponseDto>(ApiStatusCode.RecordNotFound, $"{o.ProductId}商品不存在");
+                }
+                if (currentProduct.Stock < o.Count)
+                {
+                    return new ApiResult<OrderResponseDto>(ApiStatusCode.Forbidden, $"{currentProduct.Name}商品库存不足,请修改后重新下单");
+                }
+                // 扣库存
+                currentProduct.Stock = currentProduct.Stock - o.Count;
+
+                // orderDetails
+                orderDetailAdds.Add(new YW_OrderDetails()
+                {
+                    Id = IdGenerator.NewId(),
+                    OrderId = orderId,
+                    ProductId = currentProduct.Id,
+                    Name = currentProduct.Name,
+                    Code = currentProduct.Code,
+                    Img = currentProduct.Img,
+                    Info = currentProduct.Info,
+                    Price = currentProduct.Price,
+                    BuyingPrice = currentProduct.BuyingPrice,
+                    Count = o.Count,
+                    CreateBY = session.UserId
+                });
+            }
+            #endregion
+
+            #region 4、下单
+            YW_Order order = new YW_Order()
+            {
+                Id = orderId,
+                DeviceId = _userService.GetLoginSession().Id,
+                Price = orderDetailAdds.Sum(p => p.Price * p.Count),
+                PayStatus = PayStatusEnum.UnPay,
+                OrderStatus = OrderStatusEnum.UnPay,
+                PaySerialId = Snowflake.Instance().GetId().ToString(),
+                CreateBY = session.Id
+            };
+            YW_OrderProcess orderProcess = new YW_OrderProcess()
+            {
+                Id = IdGenerator.NewId(),
+                OrderId = order.Id,
+                DeviceId = session.UserId,
+                CurrentOrderStatus = OrderStatusEnum.UnPay,
+                Message = "下单成功",
+                CreateBY = session.Id
+            };
+            #endregion
+
+            #region 5、存库
+            _dbContent.Set<YW_Order>().Add(order);
+            _dbContent.Set<YW_OrderProcess>().Add(orderProcess);
+            _dbContent.Set<YW_OrderDetails>().AddRange(orderDetailAdds);
+
+            // 数据库执行 库存已经改过了,会自动保存
+            _dbContent.SaveChanges();
+            #endregion
+
+            return new ApiResult<OrderResponseDto>(new OrderResponseDto()
+            {
+                OrderId = order.Id,
+                Price = order.Price
+            });
+        }
+
+        /// <summary>
+        /// 获取待烧烤的商品列表
+        /// <returns></returns>
+        public ApiResult<List<QueueOrderResponseDto>> GetQueueOrders()
+        {
+            var orders = _dbContent.Set<YW_Order>()
+                                    .Where(p => p.IsDelete == 0
+                                                && p.PayStatus == PayStatusEnum.Paid
+                                                && p.OrderStatus == OrderStatusEnum.Paid)
+                                    .OrderBy(p => p.CreateDT).ToList();
+            var orderIds = orders.Select(p => p.Id).ToList();
+
+            var orderDetails = _dbContent.Set<YW_OrderDetails>().Where(p => p.IsDelete == 0 && orderIds.Contains(p.OrderId)).ToList();
+
+
+
+            List<QueueOrderResponseDto> result = new List<QueueOrderResponseDto>();
+            orders.ForEach(item => {
+                QueueOrderResponseDto resultItem = new QueueOrderResponseDto()
+                {
+                    OrderId = item.Id,
+                    Price = item.Price,
+                    OrderDetails = orderDetails
+                                     .Where(p => p.OrderId == item.Id)
+                                     .Select(p => SafeClone<YW_OrderDetails, QueueOrderDetailsDto>.Trans(p))
+                                     .ToList()
+                };
+                resultItem.OrderDetails?.ForEach(p => p.Img = $"{ProductService.ImagePrefix}{p.Img}");
 
+                result.Add(resultItem);
+            });
+            return new ApiResult<List<QueueOrderResponseDto>>(result);
+        }
+
+        /// <summary>
+        /// 回写流程状态
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        public ApiResult OrderProcess(OrderProcessRequestDto req)
+        {
+            if (req == null)
+            {
+                return new ApiResult(ApiStatusCode.InvalidParameter, "请求参数不正确");
+            }
+            var order = _dbContent.Set<YW_Order>().FirstOrDefault(p => p.Id == req.OrderId);
+            if (order == null)
+            {
+                return new ApiResult(ApiStatusCode.InvalidParameter, "未找到相应订单");
+            }
+            if (order.PayStatus != PayStatusEnum.Paid)
+            {
+                return new ApiResult(ApiStatusCode.InvalidParameter, "未支付订单不能回写流程");
+            }
+            if (order.OrderStatus == OrderStatusEnum.UnPay
+                || order.OrderStatus == OrderStatusEnum.Cancel)
+            {
+                return new ApiResult(ApiStatusCode.InvalidParameter, "未支付或已取消订单不能回写流程");
+            }
+            var seesion = _userService.GetLoginSession();
+            // 修改订单状态
+            order.OrderStatus = req.OrderStatus;
+            // 记录订单流程
+            YW_OrderProcess orderProcess = new YW_OrderProcess()
+            {
+                Id = IdGenerator.NewId(),
+                OrderId = req.OrderId,
+                DeviceId = seesion.UserId,
+                CurrentOrderStatus = req.OrderStatus,
+                Message = req.Message,
+                CreateBY = seesion.UserId
+            };
+            _dbContent.Set<YW_OrderProcess>().Add(orderProcess);
+            _dbContent.SaveChanges();
 
+            return new ApiResult();
+        }
+
+        /// <summary>
+        /// 支付回写(雏形,需要根据实际需要接入支付宝或微信)
+        /// </summary>
+        /// <param name="req"></param>
+        /// <returns></returns>
+        public ApiResult PayWriteBack(PayWriteBackRequestDto req)
+        {
+            if (req == null
+                || string.IsNullOrWhiteSpace(req.PaySerialId))
+            {
+                return new ApiResult(ApiStatusCode.InvalidParameter, "请求参数不正确");
+            }
+            var order = _dbContent.Set<YW_Order>().FirstOrDefault(p => p.PaySerialId == req.PaySerialId);
+            if (order == null)
+            {
+                return new ApiResult(ApiStatusCode.InvalidParameter, "未找到相应订单");
+            }
+            var status = GetStatusByPayWriteBack(req.PayStatus);
+            // 修改订单状态
+            order.PayStatus = status.Item1;
+            order.OrderStatus = status.Item2;
+            // 记录订单流程
+            YW_PayCall payCall = new YW_PayCall()
+            {
+                Id = IdGenerator.NewId(),
+                OrderId = order.Id,
+                PayStatus = status.Item1,
+                PaySerialId = req.PaySerialId,
+                PayAccount = req.PayAccount,
+                CreateBY = req.PayAccount
+            };
+            _dbContent.Set<YW_PayCall>().Add(payCall);
+            _dbContent.SaveChanges();
+
+            return new ApiResult();
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="payStatusBack"></param>
+        /// <returns></returns>
+        private Tuple<PayStatusEnum, OrderStatusEnum> GetStatusByPayWriteBack(int payStatusBack)
+        {
+            // 临时:payStatus 0失败,1成功
+            PayStatusEnum payStatus = PayStatusEnum.Fail;
+            OrderStatusEnum orderStatus = OrderStatusEnum.UnPay;
+            switch (payStatusBack)
+            {
+                case 1:// 成功
+                    payStatus = PayStatusEnum.Paid;
+                    orderStatus = OrderStatusEnum.Paid;
+                    break;
+                default:// 失败
+                    break;
+            }
+
+            return new Tuple<PayStatusEnum, OrderStatusEnum>(payStatus, orderStatus);
+        }
 
+        // public Tuple<bool,string> ProcessOrderStock(int )
     }
 }

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

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