using MyCode.Project.Domain.Message.Act.Report2301; using MyCode.Project.Domain.Message.Act.SalesSheetPay; using MyCode.Project.Domain.Message.Common; using MyCode.Project.Domain.Message.Request.Act; using MyCode.Project.Domain.Message.Request.SalesSheet; using MyCode.Project.Domain.Message.Response.CouponActivity; using MyCode.Project.Domain.Message.Response.MeiTuan; using MyCode.Project.Domain.Message.Response.SalesSheet; using MyCode.Project.Domain.Message.Response.ServiceOrder; using MyCode.Project.Domain.Message.Response.User; using MyCode.Project.Infrastructure.Common; using MyCode.Project.Infrastructure.Constant; using MyCode.Project.Infrastructure.Enumeration; using MyCode.Project.Services; using System; using System.Collections.Generic; using System.Net; using System.Web; using System.Web.Http; namespace MyCode.Project.WebApi.Areas.Wechat.Controllers { /// /// 销售订单相关 /// public class SalesSheetController : BaseWechatController { private ISalesSheetService _salesSheetService; private ISalesSheetPayService _salesSheetPayService; private IMemberServiceInvService _memberServiceInvService; private IPreSalesSheetService _preSalesSheetService; private IMemberRechargeService _memberRechargeService; /// /// /// /// public SalesSheetController(ISalesSheetService salesSheetService , ISalesSheetPayService salesSheetPayService , IMemberServiceInvService memberServiceInvService , IPreSalesSheetService preSalesSheetService , IMemberRechargeService memberRechargeService) { _preSalesSheetService = preSalesSheetService; _salesSheetService = salesSheetService; _salesSheetPayService = salesSheetPayService; _memberServiceInvService = memberServiceInvService; _memberRechargeService = memberRechargeService; } #region GetPageList(获取门店销售订单分页列表) /// /// 获取门店销售订单分页列表 /// /// /// [HttpPost] public PageResult GetPageList(PagedSearch request) { return _salesSheetService.GetPageList(request, this.CurrentLogin); } #endregion #region 创建销售订单 /// /// 创建销售订单 /// /// [HttpPost] public Guid Save(SalesSheetAct request) { return _salesSheetService.Save(request, this.CurrentLogin); } #endregion #region OnlinePay(销售单、预售单在线扫码支付) /// /// 销售单、预售单在线扫码支付 /// /// /// [HttpPost] public string OnlinePay(SalesSheetOnlinePayAct act) { string ip = HttpContext.Current.Request.UserHostAddress; return _salesSheetPayService.OnlinePay(act, this.CurrentLogin, ip); } #endregion #region IfSuccess(支付是否成功的查询回调) /// /// 支付是否成功的查询回调(等于100支付成功) /// /// 充值订单主键ID /// 订单来源,1销售单,2预售单 /// 等于100支付成功 [HttpGet] public int IfSuccess(Guid id, int refType) { return _salesSheetPayService.IfSuccess(id, refType); } #endregion #region 确认结账(现金和会员和刷卡支付) /// /// 确认结账(现金和会员和刷卡支付) /// /// [HttpPost] public void ConfirmPay(SalesSheetOnlinePayAct request) { _salesSheetPayService.ConfirmPay(request, this.CurrentLogin); } #endregion #region 确认结账(用于纯余额结账) /// /// 确认结账(用于纯余额结账) /// /// [HttpPost] public void BalancePay(SalesSheetOnlinePayAct request) { _salesSheetPayService.BalancePay(request, this.CurrentLogin); } #endregion #region GetDetail(获取门店销售订单详情) /// /// 获取门店销售订单详情 /// /// /// [HttpGet] public SalesSheetResp GetDetail(Guid id) { return _salesSheetService.GetDetail(id); } #endregion #region SaveReturnSheet(退款退货) /// /// 退款退货 /// /// [HttpPost] public void SaveReturnSheet(ReturnSheetAct act) { if (act.SalesType == (int)SalesType.Sales) { _salesSheetPayService.SaveReturnSheet(act, this.CurrentLogin); } else if (act.SalesType == 2) //换货 { } else if (act.SalesType == 20) { ReturnPreSheetAct returnPreSheetAct = new ReturnPreSheetAct(); returnPreSheetAct.SheetId = act.SheetId; returnPreSheetAct.AccountType = 1; var iid = _preSalesSheetService.ReturnPreSheet(returnPreSheetAct, this.CurrentLogin); } else if (act.SalesType == 30) { _memberRechargeService.ReturnRecharge(act.SheetId, this.CurrentLogin, 1); } } #endregion #region 扫门票码创建订单 /// /// 扫门票码创建订单 /// /// 扫码所得ID(即会员参与活动记录主键ID) /// 店铺ID(店长或店员可不传参) /// [HttpGet] public ScanCodeOrderResp SaveActivityOrder(Guid Id,Guid? ShopId) { ScanCodeOrderResp result = new ScanCodeOrderResp(); ShopId = ShopId.HasValue ? ShopId.Value : this.CurrentLogin.ShopId; result = _salesSheetService.SaveActivityOrder(Id,ShopId.Value, this.CurrentLogin); if (result.Code == 0) { SalesSheetOnlinePayAct act = new SalesSheetOnlinePayAct(); act.Amount = 0; act.Balance = 0; act.CouponId = null; act.DirectAmount = 0; act.Discount = 0; act.PayMode = 0; act.RefType = 1; act.SheetId = result.Id; _salesSheetPayService.ConfirmPay(act, this.CurrentLogin); } return result; } #endregion #region SaveScanCodeOrder(全局扫码创建订单) /// /// 全局扫码创建订单 /// /// /// [HttpPost] public ScanCodeOrderResp SaveScanCodeOrder(ScanCodeOrderAct act) { var result= _salesSheetService.SaveScanCodeOrder(act.scene,this.CurrentLogin); if (result.Code == 0 && result.Id!=Guid.Empty) { SalesSheetOnlinePayAct sales = new SalesSheetOnlinePayAct(); sales.Amount = 0; sales.Balance = 0; sales.CouponId = null; sales.DirectAmount = 0; sales.Discount = 0; sales.PayMode = 0; sales.RefType = 1; sales.SheetId = result.Id; _salesSheetPayService.ConfirmPay(sales, this.CurrentLogin); } return result; } #endregion #region GetServiceSetList(获取买商品赠送的服务套餐列表) /// /// 获取买商品赠送的服务套餐列表 /// /// [HttpGet] public List GetServiceSetList() { return _memberServiceInvService.GetServiceSetList(this.CurrentLogin.CustomerId); } #endregion #region GetCouponListsForSalesSheet(销售订单获取可用优惠券列表,设置了一口价的订单不允许使用优惠券) /// /// 销售订单获取可用优惠券列表,设置了一口价的订单不允许使用优惠券 /// /// /// [HttpGet] public List GetCouponListsForSalesSheet(Guid sheetId) { return _salesSheetService.GetCouponListsForSalesSheet(sheetId); } #endregion #region GetBuLuServiceSetList(获取补录的服务套餐列表) /// /// 获取补录的服务套餐列表 /// /// [HttpGet] public List GetBuLuServiceSetList() { return _memberServiceInvService.GetServiceSetList(this.CurrentLogin.CustomerId,1); } #endregion //#region SaveReturnSheetTemp(临时的补退款退货单的支付表记录) ///// ///// 临时的补退款退货单的支付表记录 ///// ///// //[HttpGet] //[AllowAnonymous] //public void SaveReturnSheetTemp(DateTime days) //{ // _salesSheetPayService.SaveReturnSheetTemp(days); //} //#endregion #region TuanGouConfirmPayOnline( 确认结账(用于对接了抖音的店铺团购核销码支付)) /// /// 确认结账(用于对接了抖音的店铺团购核销码支付) /// /// /// [HttpPost] public Guid? TuanGouConfirmPayOnline(DouYinOnlinePayAct act) { act.ClerkID = this.CurrentLogin.ClerkId; return _salesSheetPayService.TuanGouConfirmPayOnline(act, this.CurrentLogin,1); } #endregion #region Cancel( 用于验券错误需要撤回验券等场景, 有时间限制,验券超过一个小时就不可再撤销。同时适用于抖音团购券码与三方券码) /// /// 用于验券错误需要撤回验券等场景, 有时间限制,验券超过一个小时就不可再撤销。同时适用于抖音团购券码与三方券码 /// /// 订单ID /// [HttpGet] [AllowAnonymous] public void Cancel(string id) { _salesSheetPayService.Cancel(id); } #endregion #region Cancel( 解析返回的字符串) /// /// 解析返回的字符串 /// /// 订单ID /// [HttpPost] [AllowAnonymous] public MeiTuanCommonResp> JieXi(string resultJson) { //resultJson = resultJson.Replace("\\\"", "'"); //LogHelper.Info(resultJson); //resultJson = resultJson.Replace("\\", ""); //LogHelper.Info(resultJson); MeiTuanCommonResp> douYinResp = new MeiTuanCommonResp>(); douYinResp = JsonHelper.ToObject>>(resultJson); //_salesSheetPayService.Cancel(id); return douYinResp; } #endregion } }