完成充值功能整体开发。

This commit is contained in:
jianweie code
2023-03-27 02:43:50 +08:00
parent a44f9c8dd6
commit 565c72039d
24 changed files with 1988 additions and 49 deletions

View File

@@ -58,6 +58,8 @@ namespace CoreCms.Net.Services
private readonly ICoreCmsServicesServices _servicesServices;
private readonly ICoreCmsUserServicesOrderServices _userServicesOrderServices;
private readonly ICoreCmsUserWeChatInfoServices _userWeChatInfoServices;
private readonly ICoreCmsTopUpTypeServices _topUpTypeServices;
private readonly ICoreCmsUserPointLogServices _userPointLogServices;
private readonly WeChatOptions _weChatOptions;
@@ -75,8 +77,7 @@ namespace CoreCms.Net.Services
, IServiceProvider serviceProvider, ICoreCmsServicesServices servicesServices
, ICoreCmsUserServicesOrderServices userServicesOrderServices
, ICoreCmsUserWeChatInfoServices userWeChatInfoServices
, IOptions<WeChatOptions> weChatOptions
)
, IOptions<WeChatOptions> weChatOptions, ICoreCmsTopUpTypeServices topUpTypeServices, ICoreCmsUserPointLogServices userPointLogServices)
{
this._dal = dal;
base.BaseDal = dal;
@@ -94,6 +95,8 @@ namespace CoreCms.Net.Services
_servicesServices = servicesServices;
_userServicesOrderServices = userServicesOrderServices;
_userWeChatInfoServices = userWeChatInfoServices;
_topUpTypeServices = topUpTypeServices;
_userPointLogServices = userPointLogServices;
_weChatOptions = weChatOptions.Value;
}
@@ -152,9 +155,17 @@ namespace CoreCms.Net.Services
//充值
else if (type == (int)GlobalEnumVars.BillPaymentsType.Recharge)
{
if (@params != null && @params.ContainsKey("money"))
var typeId = Convert.ToInt16(orderId);
var typeModel = await _topUpTypeServices.QueryByClauseAsync(p => p.id == typeId, true);
if (typeModel != null)
{
dto.money = @params["money"].ObjectToDecimal(0); //充值金额
dto.rel.Add(new Rel()
{
sourceId = orderId,
money = typeModel.defaultMoney
});
dto.money += typeModel.defaultMoney;
}
else
{
@@ -162,11 +173,7 @@ namespace CoreCms.Net.Services
jm.msg = "请输入正确的充值金额";
return jm;
}
dto.rel.Add(new Rel()
{
sourceId = orderId,
money = dto.money
});
jm.status = true;
jm.data = dto;
}
@@ -310,23 +317,27 @@ namespace CoreCms.Net.Services
//充值
else if (type == (int)GlobalEnumVars.BillPaymentsType.Recharge)
{
if (@params != null && @params.ContainsKey("money"))
{
dto.money = @params["money"].ObjectToDecimal(0); //充值金额
}
else
{
jm.status = false;
jm.msg = "请输入正确的充值金额";
return jm;
}
foreach (var item in sourceStr)
{
dto.rel.Add(new Rel()
var typeId = Convert.ToInt16(item);
var typeModel = await _topUpTypeServices.QueryByClauseAsync(p => p.id == typeId, true);
if (typeModel != null)
{
sourceId = item,
money = dto.money
});
dto.rel.Add(new Rel()
{
sourceId = item,
money = typeModel.defaultMoney
});
dto.money += typeModel.defaultMoney;
}
else
{
jm.status = false;
jm.msg = "请输入正确的充值金额";
return jm;
}
}
jm.status = true;
jm.data = dto;
@@ -425,7 +436,7 @@ namespace CoreCms.Net.Services
/// <summary>
/// 支付,先生成支付单,然后去支付
/// </summary>
/// <param name="sourceStr">来源一般是订单号或者用户id,比如充值</param>
/// <param name="sourceStr">来源一般是订单号或者用户id</param>
/// <param name="paymentCode">支付方式</param>
/// <param name="userId">用户序列</param>
/// <param name="type">订单/充值/服务订单</param>
@@ -443,10 +454,10 @@ namespace CoreCms.Net.Services
var jm = new WebApiCallBack();
//如果支付类型为余额充值那么资源ID就是用户ID
if (type == (int)GlobalEnumVars.BillPaymentsType.Recharge)
{
sourceStr = userId.ToString();
}
//if (type == (int)GlobalEnumVars.BillPaymentsType.Recharge)
//{
// sourceStr = userId.ToString();
//}
//判断支付方式是否开启
var paymentInfo = await _paymentsServices.QueryByClauseAsync(p => p.code == paymentCode && p.isEnable == true);
if (paymentInfo == null)
@@ -611,6 +622,12 @@ namespace CoreCms.Net.Services
jm.data = jm.code = 10059;
jm.msg = GlobalErrorCodeVars.Code10059;
jm.otherData = new
{
sourceStrArr,
sourceStr,
paymentRelData
};
return jm;
}
//取支付标题,就不往数据库里存了吧
@@ -679,8 +696,20 @@ namespace CoreCms.Net.Services
else if (billPaymentInfo.type == (int)GlobalEnumVars.BillPaymentsType.Recharge)
{
//给用户做充值
var userId = billPaymentInfo.sourceId.ObjectToInt(0);
await _userBalanceServices.Change(userId, (int)GlobalEnumVars.UserBalanceSourceTypes.Recharge, billPaymentInfo.money, billPaymentInfo.paymentId);
var topUpTypeId = billPaymentInfo.sourceId.ObjectToInt(0);
var topUpTypeModel = await _topUpTypeServices.QueryByClauseAsync(p => p.id == topUpTypeId, true);
if (topUpTypeModel != null)
{
var topUpMoney = topUpTypeModel.defaultMoney + topUpTypeModel.giftMoney;
await _userBalanceServices.Change(billPaymentInfo.userId, (int)GlobalEnumVars.UserBalanceSourceTypes.Recharge, topUpMoney, billPaymentInfo.paymentId);
if (topUpTypeModel.giftPoint > 0)
{
await _userPointLogServices.SetPoint(billPaymentInfo.userId, topUpTypeModel.giftPoint,
(int)GlobalEnumVars.UserPointSourceTypes.PointTypeTopUp, "充值赠送积分");
}
}
}
else if (billPaymentInfo.type == (int)GlobalEnumVars.BillPaymentsType.ServiceOrder)
{