支付
This commit is contained in:
@@ -118,6 +118,10 @@ FROM product_order where OrderState=20 or OrderState=90 or OrderState=40 or Orde
|
||||
public List<OrderStatisticModel> Statistics(DateTime? bTime, DateTime? eTime, int ProductId)
|
||||
{
|
||||
string where = $" (OrderState=20 or OrderState=90 or OrderState=40 or OrderState=50 or OrderState=30) ";
|
||||
// if (bTime.HasValue && eTime.HasValue)
|
||||
// {
|
||||
where += $"and UpdateTime>DATE_SUB(CURDATE(), INTERVAL 30 DAY) and UpdateTime<now()";
|
||||
// }
|
||||
if (bTime.HasValue && eTime.HasValue)
|
||||
{
|
||||
where += $"and UpdateTime>'{bTime.Value.ToString("yyyy-MM-dd")}' and UpdateTime<'{eTime.Value.ToString("yyyy-MM-dd")}'";
|
||||
@@ -235,14 +239,14 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel,
|
||||
{
|
||||
return new ApiResult<ProductOrderEntity>(ResultCode.C_INVALID_ERROR, "产品不存在或者下架");
|
||||
}
|
||||
if (productEntity.Status == 0)
|
||||
{
|
||||
return new ApiResult<ProductOrderEntity>(ResultCode.C_INVALID_ERROR, "产品不存在或者下架");
|
||||
}
|
||||
if (productEntity.Status == 0)
|
||||
{
|
||||
return new ApiResult<ProductOrderEntity>(ResultCode.C_INVALID_ERROR, "服务不在线");
|
||||
}
|
||||
// if (productEntity.Status == 0)
|
||||
// {
|
||||
// return new ApiResult<ProductOrderEntity>(ResultCode.C_INVALID_ERROR, "产品不存在或者下架");
|
||||
// }
|
||||
// if (productEntity.Status == 0)
|
||||
// {
|
||||
// return new ApiResult<ProductOrderEntity>(ResultCode.C_INVALID_ERROR, "服务不在线");
|
||||
// }
|
||||
|
||||
if (request.Account == request.Pwd)
|
||||
{
|
||||
@@ -310,7 +314,7 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel,
|
||||
|
||||
|
||||
if (packageEntity.ProductId != 23 &&packageEntity.ProductId != 22 && ProductAccountCount == 0 && request.OrderType != OrderType.News && (packageEntity.DayCount == 1||packageEntity.DayCount == 2) && request.ConnectCount == 1 && request.OrderType!=OrderType.AgainBuy&& request.OrderType!=OrderType.AgainBuys){
|
||||
price = 0.1M;
|
||||
// price = 0.1M;
|
||||
userEntity.ProductAccountCount = 1;
|
||||
await m_UserService.Update(userEntity);
|
||||
}
|
||||
@@ -824,6 +828,236 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel,
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 处理成功的订单
|
||||
/// </summary>
|
||||
/// <param name="order"></param>
|
||||
/// <returns></returns>
|
||||
public async Task ApiProcessOrderAccount(ProductOrderEntity order,string remark)
|
||||
{
|
||||
if (order.OrderState != OrderStatus.PayOk || order.Accounts == null) return;
|
||||
|
||||
var isOk = true;
|
||||
var accounts = order.Accounts.Split(',').ToList();
|
||||
accounts = accounts.Distinct().ToList();
|
||||
|
||||
var userEntity = await m_UserService.GetById(order.UserId);
|
||||
var user_remark = "";
|
||||
|
||||
if(order.ProductId == 8||order.ProductId == 7) {
|
||||
//用户信息
|
||||
user_remark = userEntity.Name.Substring(0,1) + "**" + userEntity.Phone.Substring(0,3) + "********" + userEntity.id_code.Substring(0,3)+"***************";
|
||||
|
||||
}
|
||||
|
||||
if (order.OrderType == OrderType.New || order.OrderType == OrderType.News)
|
||||
{
|
||||
var accountEntitys = new List<ProductAccountEntity>();
|
||||
|
||||
await accounts.ForEachAsync(async account =>
|
||||
{
|
||||
var accountEntity = new ProductAccountEntity()
|
||||
{
|
||||
Account = account,
|
||||
AccountType = (int)order.OrderType,
|
||||
ConnectCount = order.ConnectCount,
|
||||
StartTime = DateTime.Now,
|
||||
EndTime = DateTime.Now.AddDays(order.DayCount),
|
||||
PackageId = order.PackageId,
|
||||
PackageName = order.PackageName,
|
||||
ProductId = order.ProductId,
|
||||
ProductName = order.ProductName,
|
||||
Pwd = order.AccountPwd,
|
||||
ChargeStatus = AccountChargeStatus.Normal,
|
||||
UserId = order.UserId,
|
||||
UserCode = order.UserName,
|
||||
agent_id = order.agent_id,
|
||||
UserPhone = order.Remark,
|
||||
Remark = remark
|
||||
};
|
||||
accountEntitys.Add(accountEntity);
|
||||
});
|
||||
using (var tran2 = await m_DbContext.Database.BeginTransactionAsync())
|
||||
{
|
||||
try
|
||||
{
|
||||
await m_ProductAccountService.Adds(accountEntitys);
|
||||
order.OrderState = OrderStatus.Complete;
|
||||
order.StartTime = DateTime.Now;
|
||||
order.EndTime = DateTime.Now.AddDays(order.DayCount);
|
||||
order.Remark = remark;
|
||||
await this.Update(order);
|
||||
tran2.Commit();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error("处理订单创建账号", ex);
|
||||
isOk = false;
|
||||
tran2.Rollback();
|
||||
}
|
||||
}
|
||||
if (isOk)
|
||||
{
|
||||
var accountError = "";
|
||||
await accountEntitys.ForEachAsync(async accountEntity =>
|
||||
{
|
||||
|
||||
var ret = new ApiResult();
|
||||
if(accountEntity.PackageId.Value == 86 || accountEntity.PackageId.Value == 88){
|
||||
ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount,1,2);
|
||||
} else if(accountEntity.ProductId.Value == 8 || accountEntity.ProductId.Value == 7){
|
||||
var account_remark = accountEntity.Account + "-" + user_remark;
|
||||
ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, account_remark, accountEntity.Pwd, accountEntity.ConnectCount,1,2);
|
||||
} else if (accountEntity.PackageId.Value > 1034 && accountEntity.PackageId.Value < 1040) {
|
||||
ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount,2);
|
||||
}
|
||||
else if (accountEntity.PackageId.Value > 1040 && accountEntity.PackageId.Value < 1046) {
|
||||
ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount,3);
|
||||
}
|
||||
else {
|
||||
ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount);
|
||||
}
|
||||
|
||||
if (ret.Code != ResultCode.C_SUCCESS)
|
||||
{
|
||||
accountEntity.ChargeStatus = AccountChargeStatus.Exception;
|
||||
accountEntity.Remark = ret.Message;
|
||||
await m_ProductAccountService.Update(accountEntity);
|
||||
|
||||
}
|
||||
else if (ret.Data != null && ret.Data.ToString().Has())
|
||||
{
|
||||
accountEntity.Raw = ret.Data.ToString();
|
||||
await m_ProductAccountService.Update(accountEntity);
|
||||
}
|
||||
});
|
||||
if (accountError.Has())
|
||||
{
|
||||
order.Remark = accountError;
|
||||
await this.Update(order);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (order.OrderType == OrderType.AgainBuy || order.OrderType == OrderType.AgainBuys)
|
||||
{
|
||||
var accountEntitys = await m_ProductAccountService.Query(p => p.UserId == order.UserId && p.DeleteTag == 0 && p.ProductId == order.ProductId && accounts.Contains(p.Account)).ToListAsync();
|
||||
|
||||
accountEntitys = accountEntitys.Distinct(new AccountEntityEq()).ToList();
|
||||
|
||||
await accountEntitys.ForEachAsync(async account =>
|
||||
{
|
||||
if (account.EndTime < DateTime.Now)
|
||||
{
|
||||
account.StartTime = DateTime.Now;
|
||||
account.EndTime = DateTime.Now.AddDays(order.DayCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
account.EndTime = account.EndTime.Value.AddDays(order.DayCount);
|
||||
}
|
||||
account.PackageId = order.PackageId;
|
||||
account.PackageName = order.PackageName;
|
||||
account.ProductId = order.ProductId;
|
||||
account.ProductName = order.ProductName;
|
||||
account.AccountType = (int)order.OrderType;
|
||||
});
|
||||
using (var tran3 = await m_DbContext.Database.BeginTransactionAsync())
|
||||
{
|
||||
try
|
||||
{
|
||||
await m_ProductAccountService.Update(accountEntitys);
|
||||
order.OrderState = OrderStatus.Complete;
|
||||
order.StartTime = DateTime.Now;
|
||||
order.EndTime = DateTime.Now.AddDays(order.DayCount);
|
||||
order.Remark = remark;
|
||||
await this.Update(order);
|
||||
tran3.Commit();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error("处理续费订单", ex);
|
||||
isOk = false;
|
||||
tran3.Rollback();
|
||||
}
|
||||
}
|
||||
if (isOk)
|
||||
{
|
||||
var accountError = "";
|
||||
var product = await m_ProductService.GetById(order.ProductId);
|
||||
await accountEntitys.ForEachAsync(async accountEntity =>
|
||||
{
|
||||
var account = accountEntity.Account;
|
||||
// if (product.GroupNO == "g7") account = accountEntity.Raw;
|
||||
var ret = new ApiResult();
|
||||
if (order.PackageId == 86){
|
||||
ret = await m_AgentService.ReNewAccount(order.Id, order.PackageId, account, order.ConnectCount,2);
|
||||
} else {
|
||||
ret = await m_AgentService.ReNewAccount(order.Id, order.PackageId, account, order.ConnectCount);
|
||||
}
|
||||
if (ret.Code != ResultCode.C_SUCCESS)
|
||||
{
|
||||
accountEntity.ChargeStatus = AccountChargeStatus.Exception;
|
||||
accountEntity.Remark = ret.Message;
|
||||
await m_ProductAccountService.Update(accountEntity);
|
||||
accountError += $"{accountEntity.Account}{accountEntity.Remark},";
|
||||
}
|
||||
});
|
||||
if (accountError.Has())
|
||||
{
|
||||
order.Remark = accountError;
|
||||
await this.Update(order);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(order.agent_id != 0 && order.PaymentAmount != 0.1M){
|
||||
var agentEntity = await m_AgentUserService.Query(m => m.id == order.agent_id).FirstOrDefaultAsync();
|
||||
|
||||
//根据折扣设置价格
|
||||
var score_money = 0.00M;
|
||||
// if((userEntity.agent_id == 0||(userEntity.agent_id != 0 && userEntity.discount_id != 0)) && userEntity.discount_id >= 0){
|
||||
// //获取代理折扣
|
||||
// var discount = await m_ProductPriceSchemeService.GetById(agentEntity.discount_id);
|
||||
// var packageEntity = await m_ProductPackageService.GetById(order.PackageId);
|
||||
// var price = packageEntity.LinePrice * discount.discount / 100;
|
||||
// score_money = order.PaymentAmount - order.ConnectCount * order.AccountCount * price;
|
||||
// } else {
|
||||
// var agentPriceEntity = await m_AgentPriceService.Query(m => m.agent_id == order.agent_id && m.package_id == order.PackageId).FirstOrDefaultAsync();
|
||||
// score_money = order.PaymentAmount - order.ConnectCount * order.AccountCount * agentPriceEntity.price;
|
||||
// }
|
||||
if(agentEntity.discount_id != 0){
|
||||
//获取代理折扣
|
||||
var discount = await m_ProductPriceSchemeService.GetById(agentEntity.discount_id);
|
||||
var packageEntity = await m_ProductPackageService.GetById(order.PackageId);
|
||||
var price = packageEntity.LinePrice * discount.discount / 100;
|
||||
score_money = order.PaymentAmount - order.ConnectCount * order.AccountCount * price;
|
||||
}
|
||||
|
||||
|
||||
var agnetScoreEntity = new AgentScoreEntity()
|
||||
{
|
||||
agent_id = order.agent_id,
|
||||
order_id = order.Id,
|
||||
score_type = 1,
|
||||
score_value = score_money,
|
||||
remark = "客户购买产品" + order.Accounts,
|
||||
agent_name = agentEntity.username,
|
||||
op_user = order.UserName,
|
||||
rest_amount1 = agentEntity.account,
|
||||
rest_amount2 = agentEntity.account + score_money
|
||||
};
|
||||
|
||||
agentEntity.account += score_money;
|
||||
|
||||
await m_AgentScoreService.Add(agnetScoreEntity);
|
||||
await m_AgentUserService.Update(agentEntity);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public async Task<ApiResult> Refund(int userId, string account)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user