2025-04-24 18:31:27 +08:00

336 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 销售订单相关
/// </summary>
public class SalesSheetController : BaseWechatController
{
private ISalesSheetService _salesSheetService;
private ISalesSheetPayService _salesSheetPayService;
private IMemberServiceInvService _memberServiceInvService;
private IPreSalesSheetService _preSalesSheetService;
private IMemberRechargeService _memberRechargeService;
/// <summary>
///
/// </summary>
/// <param name="salesSheetService"></param>
public SalesSheetController(ISalesSheetService salesSheetService
, ISalesSheetPayService salesSheetPayService
, IMemberServiceInvService memberServiceInvService
, IPreSalesSheetService preSalesSheetService
, IMemberRechargeService memberRechargeService)
{
_preSalesSheetService = preSalesSheetService;
_salesSheetService = salesSheetService;
_salesSheetPayService = salesSheetPayService;
_memberServiceInvService = memberServiceInvService;
_memberRechargeService = memberRechargeService;
}
#region GetPageList()
/// <summary>
/// 获取门店销售订单分页列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public PageResult<SalesSheetPageListResp> GetPageList(PagedSearch<SalesSheetPageListQuery> request)
{
return _salesSheetService.GetPageList(request, this.CurrentLogin);
}
#endregion
#region
/// <summary>
/// 创建销售订单
/// </summary>
/// <param name="request"></param>
[HttpPost]
public Guid Save(SalesSheetAct request)
{
return _salesSheetService.Save(request, this.CurrentLogin);
}
#endregion
#region OnlinePay(线)
/// <summary>
/// 销售单、预售单在线扫码支付
/// </summary>
/// <param name="act"></param>
/// <returns></returns>
[HttpPost]
public string OnlinePay(SalesSheetOnlinePayAct act)
{
string ip = HttpContext.Current.Request.UserHostAddress;
return _salesSheetPayService.OnlinePay(act, this.CurrentLogin, ip);
}
#endregion
#region IfSuccess()
/// <summary>
/// 支付是否成功的查询回调(等于100支付成功)
/// </summary>
/// <param name="id">充值订单主键ID</param>
/// <param name="refType">订单来源1销售单2预售单</param>
/// <returns>等于100支付成功</returns>
[HttpGet]
public int IfSuccess(Guid id, int refType)
{
return _salesSheetPayService.IfSuccess(id, refType);
}
#endregion
#region ()
/// <summary>
/// 确认结账(现金和会员和刷卡支付)
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void ConfirmPay(SalesSheetOnlinePayAct request)
{
_salesSheetPayService.ConfirmPay(request, this.CurrentLogin);
}
#endregion
#region ()
/// <summary>
/// 确认结账(用于纯余额结账)
/// </summary>
/// <param name="request"></param>
[HttpPost]
public void BalancePay(SalesSheetOnlinePayAct request)
{
_salesSheetPayService.BalancePay(request, this.CurrentLogin);
}
#endregion
#region GetDetail()
/// <summary>
/// 获取门店销售订单详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
public SalesSheetResp GetDetail(Guid id)
{
return _salesSheetService.GetDetail(id);
}
#endregion
#region SaveReturnSheet(退退)
/// <summary>
/// 退款退货
/// </summary>
/// <param name="act"></param>
[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
/// <summary>
/// 扫门票码创建订单
/// </summary>
/// <param name="Id">扫码所得ID(即会员参与活动记录主键ID)</param>
/// <param name="ShopId">店铺ID(店长或店员可不传参)</param>
/// <returns></returns>
[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()
/// <summary>
/// 全局扫码创建订单
/// </summary>
/// <param name="act"></param>
/// <returns></returns>
[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()
/// <summary>
/// 获取买商品赠送的服务套餐列表
/// </summary>
/// <returns></returns>
[HttpGet]
public List<ServiceInvInfo> GetServiceSetList()
{
return _memberServiceInvService.GetServiceSetList(this.CurrentLogin.CustomerId);
}
#endregion
#region GetCouponListsForSalesSheet(,使)
/// <summary>
/// 销售订单获取可用优惠券列表,设置了一口价的订单不允许使用优惠券
/// </summary>
/// <param name="sheetId"></param>
/// <returns></returns>
[HttpGet]
public List<CouponList> GetCouponListsForSalesSheet(Guid sheetId)
{
return _salesSheetService.GetCouponListsForSalesSheet(sheetId);
}
#endregion
#region GetBuLuServiceSetList()
/// <summary>
/// 获取补录的服务套餐列表
/// </summary>
/// <returns></returns>
[HttpGet]
public List<ServiceInvInfo> GetBuLuServiceSetList()
{
return _memberServiceInvService.GetServiceSetList(this.CurrentLogin.CustomerId,1);
}
#endregion
//#region SaveReturnSheetTemp(临时的补退款退货单的支付表记录)
///// <summary>
///// 临时的补退款退货单的支付表记录
///// </summary>
///// <param name="days"></param>
//[HttpGet]
//[AllowAnonymous]
//public void SaveReturnSheetTemp(DateTime days)
//{
// _salesSheetPayService.SaveReturnSheetTemp(days);
//}
//#endregion
#region TuanGouConfirmPayOnline( ())
/// <summary>
/// 确认结账(用于对接了抖音的店铺团购核销码支付)
/// </summary>
/// <param name="act"> </param>
/// <returns></returns>
[HttpPost]
public Guid? TuanGouConfirmPayOnline(DouYinOnlinePayAct act)
{
act.ClerkID = this.CurrentLogin.ClerkId;
return _salesSheetPayService.TuanGouConfirmPayOnline(act, this.CurrentLogin,1);
}
#endregion
#region Cancel( )
/// <summary>
/// 用于验券错误需要撤回验券等场景, 有时间限制,验券超过一个小时就不可再撤销。同时适用于抖音团购券码与三方券码
/// </summary>
/// <param name="id">订单ID </param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public void Cancel(string id)
{
_salesSheetPayService.Cancel(id);
}
#endregion
#region Cancel( )
/// <summary>
/// 解析返回的字符串
/// </summary>
/// <param name="id">订单ID </param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public MeiTuanCommonResp<List<GetConsumeResp>> JieXi(string resultJson)
{
//resultJson = resultJson.Replace("\\\"", "'");
//LogHelper.Info(resultJson);
//resultJson = resultJson.Replace("\\", "");
//LogHelper.Info(resultJson);
MeiTuanCommonResp<List<GetConsumeResp>> douYinResp = new MeiTuanCommonResp<List<GetConsumeResp>>();
douYinResp = JsonHelper.ToObject<MeiTuanCommonResp<List<GetConsumeResp>>>(resultJson);
//_salesSheetPayService.Cancel(id);
return douYinResp;
}
#endregion
}
}