更新购买同步物流 金额校验
This commit is contained in:
1 parent
472d052631
commit
ae1949c9c2
4 files changed
+45
-15
No files matched your search
@@ -48,7 +48,25 @@ namespace KJD_Web.Services.Users
|
||||
public UserEntity GetUserByUserName(string userName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(userName)) return null;
|
||||
return _freeSql.Select<UserEntity>().Where(a => a.UserName == userName).First();
|
||||
var user = _freeSql.Select<UserEntity>().Where(a => a.UserName == userName).First();
|
||||
if (user != null)
|
||||
{
|
||||
if (user.IsMainUser == false)
|
||||
{
|
||||
var mainUser = _freeSql.Select<UserEntity>()
|
||||
.Where(a => a.UserName == user.ParentUserName)
|
||||
.First();
|
||||
if (mainUser != null)
|
||||
{
|
||||
user.OemId = mainUser.OemId;
|
||||
user.PostagePerOrder = mainUser.PostagePerOrder;
|
||||
user.RefundPostagePerOrder = mainUser.RefundPostagePerOrder;
|
||||
user.GiftOemAmountPerOrder = mainUser.GiftOemAmountPerOrder;
|
||||
user.SyncLogisticsPerOrder = mainUser.SyncLogisticsPerOrder;
|
||||
}
|
||||
}
|
||||
}
|
||||
return user;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取用户包含子账户
|
||||
@@ -374,6 +392,23 @@ namespace KJD_Web.Services.Users
|
||||
|
||||
work.Commit();
|
||||
}
|
||||
/// <summary>
|
||||
/// 是否可以消费
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="consumeAmount"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanAfford(string userName, UserPaymentTypes type, decimal consumeAmount)
|
||||
{
|
||||
var user = GetUserByUserName(userName);
|
||||
if (user == null) return false;
|
||||
// 消费金额必须大于 0
|
||||
if (user.Balance <= 0) return false;
|
||||
if (type != UserPaymentTypes.同步单号) return false;
|
||||
consumeAmount = (user.SyncLogisticsPerOrder ?? 0m) + consumeAmount;
|
||||
return user.Balance >= consumeAmount;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户消费付款记录
|
||||
@@ -394,17 +429,6 @@ namespace KJD_Web.Services.Users
|
||||
{
|
||||
throw new Exception("用户不存在");
|
||||
}
|
||||
if (user.IsMainUser == false)
|
||||
{
|
||||
var mainUser = _freeSql.Select<UserEntity>()
|
||||
.Where(a => a.UserName == user.ParentUserName)
|
||||
.First();
|
||||
if (mainUser == null)
|
||||
{
|
||||
throw new Exception("错误的账户");
|
||||
}
|
||||
user.SyncLogisticsPerOrder = mainUser.SyncLogisticsPerOrder;
|
||||
}
|
||||
if (type != UserPaymentTypes.同步单号) throw new Exception("不支持的类型");
|
||||
var payItem = new UserPaymentRecordEntity
|
||||
{
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace Store.Contracts.User.Interfaces;
|
||||
|
||||
public interface IUserService
|
||||
{
|
||||
bool CanAfford(string userName, UserPaymentTypes type, decimal consumeAmount);
|
||||
OEMEntity GetOEMByOemId(string oemId, bool isCache = true);
|
||||
OEMEntity GetOEMByUserName(string userName, bool isCache = true);
|
||||
List<UserEntity> GetOEMUsers(string oemId, bool includeSu = true);
|
||||
|
||||
@@ -81,10 +81,15 @@ public class VirtualLogisticsService : ITransientDependency
|
||||
}
|
||||
var user = _userService.GetUserByUserName(userName);
|
||||
if (user == null) throw new Exception("错误的账号");
|
||||
if (_userService.CanAfford(userName, Contracts.User.Enums.UserPaymentTypes.同步单号, FIXEDFEES) == false)
|
||||
{
|
||||
throw new Exception("余额不足");
|
||||
}
|
||||
|
||||
//中间订单
|
||||
var middleOrder = _freeSql.Select<OrderPddBuyerOrderEntity>()
|
||||
.Where(a => a.OrderSn == orderId)
|
||||
.First();
|
||||
.Where(a => a.OrderSn == orderId)
|
||||
.First();
|
||||
if (middleOrder == null) throw new Exception("错误的订单号");
|
||||
//middleOrder.TrackingNumber = "YT0709726946568";
|
||||
var w_order = _freeSql.Select<WeiOrderEntity>()
|
||||
|
||||
@@ -96,7 +96,7 @@ internal class GiftLogisticsTest
|
||||
public void BuyTest()
|
||||
{
|
||||
var logisticsService = _container.Resolve<VirtualLogisticsService>();
|
||||
var ret = logisticsService.Buy("260923-573109716621688", "4439363558732480512", "15222220006");
|
||||
var ret = logisticsService.Buy("15222220006","260923-573109716621688", "4439363558732480512");
|
||||
if (ret != null)
|
||||
{
|
||||
Console.WriteLine(string.Join(" ", ret.Select(a => $"{a.OrderId}:{a.TrackingNumber}")));
|
||||
|
||||
Reference in new issue
Block a user