| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- /* =============================================
- -- Author: <Author,,zhangkun>
- -- Create date: <Create Date,,20200618>
- -- Description: <Description,,订单相关操作)>
- -- ============================================*/
- using System;
- using System.Collections.Generic;
- using System.Common;
- using System.IRepositories;
- using System.Linq;
- using System.Model;
- using System.Security.Claims;
- using System.Threading.Tasks;
- using Microsoft.AspNetCore.Mvc;
- using TVShoppingCallCenter_ZLJ.Models.Inputs;
- namespace TVShoppingCallCenter_ZLJ.Controllers.Order
- {
- [Route("api/[controller]")]
- public class OrderController : BaseController
- {
- IBus_OrderDetailRepository bus_OrderDetailRepository;
- IBus_OrderRepository bus_OrderRepository;
- ISys_MarketingRepository bus_MarketingRepository;
- public OrderController(IBus_OrderRepository _bus_OrderRepository, IBus_OrderDetailRepository _bus_OrderDetailRepository, ISys_MarketingRepository _bus_MarketingRepository)
- {
- bus_OrderDetailRepository = _bus_OrderDetailRepository;
- bus_OrderRepository = _bus_OrderRepository;
- bus_MarketingRepository = _bus_MarketingRepository;
- }
- [HttpPost("addorder")]
- public async Task<IActionResult> AddOrder(OrderInput input)
- {
- #region 验证参数 必填项
- if (string.IsNullOrEmpty(input.F_ADFrom))
- return Error("请输入选择广告来源");
- if (string.IsNullOrEmpty(input.F_Type))
- return Error("请输入选择订单类型");
- if (string.IsNullOrEmpty(input.F_Id))
- return Error("请输入订单编号");
- if (string.IsNullOrEmpty(input.F_Customer))
- return Error("请输入客户姓名");
- if (string.IsNullOrEmpty(input.F_CustomerPhone))
- return Error("请输入客户电话");
- #endregion
- T_Bus_Order modelOrder = new T_Bus_Order();
- //必填
- modelOrder.F_ADFrom = input.F_ADFrom;
- modelOrder.F_Type = input.F_Type;
- modelOrder.F_Id = input.F_Id;
- modelOrder.F_Customer = input.F_Customer;
- modelOrder.F_CustomerPhone = input.F_CustomerPhone;
- //选填 快递属性
- modelOrder.F_TrackingNo = input.F_TrackingNo;
- modelOrder.F_Addressee = input.F_Addressee;
- modelOrder.F_AddPhone = input.F_AddPhone;
- modelOrder.F_AddProvince = input.F_AddProvince;
- modelOrder.F_AddCity = input.F_AddCity;
- modelOrder.F_AddArea = input.F_AddArea;
- modelOrder.F_AddTown = input.F_AddTown;
- modelOrder.F_AddDes = input.F_AddDes;
- modelOrder.F_Address = input.F_Address;
- modelOrder.F_PostalCode = input.F_PostalCode;
- modelOrder.F_Express = input.F_Express;
- modelOrder.F_PayType = input.F_PayType;
- modelOrder.F_Stock = input.F_Stock;
- modelOrder.F_Remark = input.F_Remark;
- //选填 关联属性
- modelOrder.F_VipId = input.F_VipId;
- modelOrder.F_Type = input.F_Type;
- modelOrder.F_State = input.F_State;
- modelOrder.F_Status = input.F_Status;
- modelOrder.F_UseActivity = input.F_UseActivity;
- //必须属性 系统生成
- modelOrder.F_AddTime = DateTime.Now;
- modelOrder.F_AddUser = int.Parse(User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.PrimarySid).Value, 0);
- modelOrder.F_AddUserName = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name).Value;
- //计算属性 商品计算
- decimal F_Score = 0;
- decimal totle = 0.00M;
- decimal F_ShouldPrice = 0.00M; ;
- decimal F_RealPrice = 0.00M;
- List<T_Bus_OrderDetail> modelDetailList = new List<T_Bus_OrderDetail>();
- if (input.OrderDetail != null && input.OrderDetail.Count > 0)
- {
- int n = 1;
- foreach (OrderDetailInput m in input.OrderDetail)
- {
- T_Bus_OrderDetail modelDetail = new T_Bus_OrderDetail();
- modelDetail.F_ProductName = m.F_ProductName;
- modelDetail.F_ProductId = m.F_ProductId;
- modelDetail.F_Id = Guid.NewGuid().ToString().Replace("-", "");
- modelDetail.F_OrderId = input.F_Id;
- modelDetail.F_Count = m.F_Count;
- modelDetail.F_Price = m.F_Price;
- modelDetail.F_DealPrice = m.F_DealPrice;
- modelDetail.F_Sort = n;
- modelDetail.F_Remark = m.F_Remark;
- modelDetail.F_AddUser = modelOrder.F_AddUser;
- modelDetail.F_AddUserName = modelOrder.F_AddUserName;
- modelDetail.F_TotlePrice = modelDetail.F_DealPrice * modelDetail.F_Count;
- totle += modelDetail.F_TotlePrice;
- n++;
- }
- }
- F_ShouldPrice = totle;
- //计算活动 单独写个方法
- if (modelOrder.F_UseActivity > 0)
- {
- //详细活动规则
- }
- //计算结果
- modelOrder.F_Score = F_Score;
- modelOrder.F_TotlePrice = totle;
- modelOrder.F_ShouldPrice = F_ShouldPrice;
- modelOrder.F_RealPrice = F_RealPrice;
- //Expression<Func<T_Bus_Product, bool>> eq = a => a.F_ProductName == input.ProductName;
- //eq = eq.Or(b => b.F_PinyinShort == input.PinyinShort);
- //eq = eq.Or(b => b.F_ProductId == input.ProductId);
- //eq = eq.Or(b => b.F_ProductShortName == input.ProductShortName);
- //if (await _productRepository.GetCount(eq) > 0)
- //{
- // return Error("名称/条形码/简称 有重复");
- //}
- //List<ProductInput> inputlist = new List<ProductInput>();
- //inputlist.Add(input);
- if (await bus_OrderRepository.Add(modelOrder) > 0)
- {
- return Success("订单保存成功");
- }
- else
- {
- return Error("订单保存失败,请重试!");
- }
- }
- private async void UserActivity(int VipId,int ActivityId,decimal TotlePrice)
- {
- T_Sys_Marketing modelAct= await bus_MarketingRepository.GetSingle(q=>q.F_ID== ActivityId);
- // 查看活动具体细则, 把所有活动细则实现 此活动是针对订单的活动
- //活动如果针对商品的话 1.一个订单只能选一个活动还是针对商品选择活动 这种需要循环订单详情判断
- TotlePrice = 0;
- }
- }
- }
|