<develop>:(Web 端)<无> ShopERP 项目 WebAPI 接口代码提交。

parent 661988fe
......@@ -8,6 +8,7 @@ using CoreCms.Net.Model.ViewModels.Basics;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Model.ViewModels.DTO;
using SqlSugar;
using Microsoft.AspNetCore.Mvc;
namespace CoreCms.Net.IServices
{
......@@ -16,6 +17,11 @@ namespace CoreCms.Net.IServices
/// </summary>
public interface ICoreCmsOrderServices : IBaseServices<CoreCmsOrder>
{
Task<WebApiCallBack> CreateOrder([FromBody] CreateOrderDto inputParam);
/// <summary>
/// 查询团购秒杀下单数量
/// </summary>
......
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
......
......@@ -28,8 +28,14 @@ namespace CoreCms.Net.Model.Entities
public System.String orderId { get; set; }
/// <summary>
/// 平台订单号
/// </summary>
public System.String platOrderID { get; set; }
/// <summary>
/// 商品总价
/// </summary>
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CoreCms.Net.Model.ViewModels.DTO
{
public class CreateOrderDto
{
public int UserId { get; set; }
/// <summary>
/// 平台订单号
/// </summary>
public string platOrderID { get; set; }
public List<OrderItemDto> Items { get; set; }
public class OrderItemDto
{
public int GoodsId { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
}
}
}
......@@ -19,6 +19,8 @@ using Microsoft.Extensions.Hosting;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Microsoft.AspNetCore.Mvc;
using EnumsNET;
namespace CoreCms.Net.Services
......@@ -79,6 +81,40 @@ namespace CoreCms.Net.Services
_pinTuanRecordServices = pinTuanRecordServices;
}
/// <summary>
/// 创建订单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<WebApiCallBack> CreateOrder([FromBody] CreateOrderDto input)
{
var jm = new WebApiCallBack();
using var container = _serviceProvider.CreateScope();
var orderServices = container.ServiceProvider.GetService<ICoreCmsOrderServices>();
var productsServices = container.ServiceProvider.GetService<ICoreCmsProductsServices>();
var goodsServices = container.ServiceProvider.GetService<ICoreCmsGoodsServices>();
//获取数据
if (input.Items.Count <= 0)
{
jm.msg = "请选择货品";
return jm;
}
if (input.Items.Sum(a => a.Quantity) <= 0)
{
jm.msg = "请选择货品";
return jm;
}
return jm;
}
#region 设置购物车商品数量====================================================
/// <summary>
/// 设置购物车商品数量
......
......@@ -26,6 +26,7 @@ using Microsoft.OpenApi.Validations;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Microsoft.AspNetCore.Mvc;
namespace CoreCms.Net.Services
......@@ -127,6 +128,75 @@ namespace CoreCms.Net.Services
_redisOperationRepository = redisOperationRepository;
}
#region 创建订单
/// <summary>
/// 创建订单
/// </summary>
/// <param name="inputParam"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<WebApiCallBack> CreateOrder([FromBody] CreateOrderDto inputParam)
{
var jm = new WebApiCallBack();
jm.status = false;
jm.data = inputParam.platOrderID;
var result=_dal.QueryByClause(a=>a.platOrderID==inputParam.platOrderID);
if (result != null)
{
jm.msg = "订单号已经存在!";
return jm;
}
string orderId = CommonHelper.GetSerialNumberType((int)GlobalEnumVars.SerialNumberType.订单编号);
var orderMain = new CoreCmsOrder
{
orderId = orderId,
platOrderID = inputParam.platOrderID,
userId = inputParam.UserId,
createTime = DateTime.Now,
status = 0, // 待付款
payStatus = 0, // 未支付
shipStatus = 0, // 未发货
goodsAmount = inputParam.Items.Sum(i => i.Price * i.Quantity),
orderAmount = inputParam.Items.Sum(i => i.Price * i.Quantity)
};
var orderItems = inputParam.Items.Select(item => new CoreCmsOrderItem
{
orderId = orderId,
goodsId = item.GoodsId,
name = item.Name,
price = item.Price,
nums = item.Quantity,
imageUrl="/"
}).ToList();
try
{
await _dal.InsertAsync(orderMain);
await _orderItemServices.InsertAsync(orderItems);
jm.status = true;
}
catch
{
jm.status = false;
jm.msg = GlobalErrorCodeVars.Code10000;
}
jm.msg = GlobalConstVars.CreateSuccess;
return jm;
}
#endregion
#region 查询团购秒杀下单数量
/// <summary>
......@@ -2384,6 +2454,8 @@ namespace CoreCms.Net.Services
return jm;
}
#endregion
}
......
......@@ -28,12 +28,12 @@ namespace CoreCms.Net.Web.WebApi.Controllers
[ApiController]
public class OrderController : ControllerBase
{
private readonly ICoreOrderServices _orderServices;
private readonly ICoreCmsOrderServices _orderServices;
/// <summary>
/// 构造函数
/// </summary>
public OrderController(ICoreOrderServices orderServices)
public OrderController(ICoreCmsOrderServices orderServices)
{
_orderServices = orderServices;
}
......@@ -42,21 +42,25 @@ namespace CoreCms.Net.Web.WebApi.Controllers
/// <summary>
/// 创建订单
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<WebApiCallBack> CreateOrder([FromBody] CreateOrder entity, CancellationToken cancellationToken)
public async Task<WebApiCallBack> CreateOrder([FromBody] CreateOrderDto inpuParam)
{
var jm = new WebApiCallBack();
if (string.IsNullOrEmpty(entity.platOrderID))
if (inpuParam == null)
{
jm.data = 10000;
jm.msg = "参数不能为空!";
return jm;
}
if (string.IsNullOrEmpty(inpuParam.platOrderID))
{
jm.data = 10000;
jm.msg = "平台订单号不能为空!";
return jm;
}
jm = await _orderServices.CreateOrderAsync(entity, cancellationToken);
return jm;
return await _orderServices.CreateOrder(inpuParam);
}
#endregion
......@@ -77,9 +81,8 @@ namespace CoreCms.Net.Web.WebApi.Controllers
return jm;
}
var ids = entity.id.Split(",");
//jm = await _orderServices.CancelOrder(ids, _user.ID);
jm = await _orderServices.CancelOrder(ids);
return jm;
}
#endregion
......
......@@ -14,16 +14,15 @@
订单调用接口数据
</summary>
</member>
<member name="M:CoreCms.Net.Web.WebApi.Controllers.OrderController.#ctor(CoreCms.Net.IServices.Order.ICoreOrderServices)">
<member name="M:CoreCms.Net.Web.WebApi.Controllers.OrderController.#ctor(CoreCms.Net.IServices.ICoreCmsOrderServices)">
<summary>
构造函数
</summary>
</member>
<member name="M:CoreCms.Net.Web.WebApi.Controllers.OrderController.CreateOrder(CoreCms.Net.Model.ViewModels.DTO.CreateOrder,System.Threading.CancellationToken)">
<member name="M:CoreCms.Net.Web.WebApi.Controllers.OrderController.CreateOrder(CoreCms.Net.Model.ViewModels.DTO.CreateOrderDto)">
<summary>
创建订单
</summary>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.WebApi.Controllers.OrderController.CancelOrder(CoreCms.Net.Model.FromBody.FMStringId)">
<summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment