@@ -34,13 +34,13 @@ using Microsoft.Extensions.DependencyInjection;
using SqlSugar ;
namespace CoreCms.Net.Services
namespace CoreCms.Net.Services ;
/// <summary>
/// 用户表 接口实现
/// </summary>
public class CoreCmsUserServices : BaseServices < CoreCmsUser > , ICoreCmsUserServices
{
/// <summary>
/// 用户表 接口实现
/// </summary>
public class CoreCmsUserServices : BaseServices < CoreCmsUser > , ICoreCmsUserServices
{
private readonly ICoreCmsUserRepository _dal ;
private readonly ICoreCmsUserBalanceServices _userBalanceServices ;
private readonly ICoreCmsSettingServices _settingServices ;
@@ -62,10 +62,14 @@ namespace CoreCms.Net.Services
, ICoreCmsUserRepository dal
, ICoreCmsUserBalanceServices userBalanceServices
, ICoreCmsSettingServices settingServices
, ICoreCmsUserPointLogServices userPointLogServices , ICoreCmsSmsServices smsServices , ICoreCmsUserWeChatInfoServices userWeChatInfoServices , ICoreCmsUserGradeServices userGradeServices , PermissionRequirement permissionRequirement , IHttpContextAccessor httpContextAccessor , ICoreCmsUserLogServices userLogServices , IServiceProvider serviceProvider , ICoreCmsBillPaymentsServices billPaymentsServices )
, ICoreCmsUserPointLogServices userPointLogServices , ICoreCmsSmsServices smsServices ,
ICoreCmsUserWeChatInfoServices userWeChatInfoServices , ICoreCmsUserGradeServices userGradeServices ,
PermissionRequirement permissionRequirement , IHttpContextAccessor httpContextAccessor ,
ICoreCmsUserLogServices userLogServices , IServiceProvider serviceProvider ,
ICoreCmsBillPaymentsServices billPaymentsServices )
{
this . _dal = dal ;
base . BaseDal = dal ;
_dal = dal ;
BaseDal = dal ;
_unitOfWork = unitOfWork ;
_userBalanceServices = userBalanceServices ;
_settingServices = settingServices ;
@@ -100,6 +104,7 @@ namespace CoreCms.Net.Services
jm . msg = "不存在此信息" ;
return jm ;
}
var newMoney = model . balance + money ;
var up = await _dal . UpdateAsync ( p = > new CoreCmsUser ( ) { balance = newMoney } , p = > p . id = = id ) ;
if ( up )
@@ -124,6 +129,7 @@ namespace CoreCms.Net.Services
#endregion
#region 更 新 积 分
/// <summary>
/// 更新积分
/// </summary>
@@ -160,6 +166,7 @@ namespace CoreCms.Net.Services
return jm ;
}
#endregion
#region 获 取 用 户 的 积 分
@@ -174,36 +181,42 @@ namespace CoreCms.Net.Services
/// <returns></returns>
public async Task < GetUserPointResult > GetUserPoint ( int userId , decimal orderMoney , int [ ] ids , int cartType )
{
GetUserPointResult dto = new GetUserPointResult ( ) ;
var dto = new GetUserPointResult ( ) ;
//1是2否
var allConfigs = await _settingServices . GetConfigDictionaries ( ) ;
var pointSwitch = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . PointSwitch ) . ObjectToInt ( ) ; //是否开启积分功能
var pointSwitch = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . PointSwitch )
. ObjectToInt ( ) ; //是否开启积分功能
if ( pointSwitch = = 2 )
{
dto . @switch = 2 ;
return dto ;
}
var user = await _dal . QueryByClauseAsync ( p = > p . id = = userId ) ;
if ( user ! = null )
{
dto . point = user . point ;
var pointExchangeModel = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . PointExchangeModel ) . ObjectToInt ( ) ; //判断是全局模式还是单品模式
var pointExchangeModel = CommonHelper
. GetConfigDictionary ( allConfigs , SystemSettingConstVars . PointExchangeModel )
. ObjectToInt ( ) ; //判断是全局模式还是单品模式
if ( pointExchangeModel = = 1 )
{
if ( orderMoney ! = 0 )
{
//计算可用积分//订单积分使用比例
var ordersPointProportion = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . OrdersPointProportion ) . ObjectToDecimal ( 10 ) ;
var ordersPointProportion = CommonHelper
. GetConfigDictionary ( allConfigs , SystemSettingConstVars . OrdersPointProportion )
. ObjectToDecimal ( 10 ) ;
var proportion = Math . Round ( ordersPointProportion / 100 , 4 ) ;
//最多可以抵扣的金额
var maxPointDeductedMoney = Math . Round ( orderMoney * proportion , 4 ) ;
//订单积分折现比例(多少积分可以折现1块钱)
var pointDiscountedProportion = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . PointDiscountedProportion ) . ObjectToDecimal ( 100 ) ;
var pointDiscountedProportion = CommonHelper
. GetConfigDictionary ( allConfigs , SystemSettingConstVars . PointDiscountedProportion )
. ObjectToDecimal ( 100 ) ;
//计算需要多少积分
var needsPoint = maxPointDeductedMoney * pointDiscountedProportion ;
//确定是否有那么多积分去抵扣比例计算出的能抵扣的钱
@@ -221,7 +234,8 @@ namespace CoreCms.Net.Services
var productsServices = container . ServiceProvider . GetService < ICoreCmsProductsServices > ( ) ;
//获取购物车数据
var cartProducts = await cartServices . QueryListByClauseAsync ( p = > p . type = = cartType & & p . userId = = userId & & ids . Contains ( p . id ) ) ;
var cartProducts = await cartServices . QueryListByClauseAsync ( p = >
p . type = = cartType & & p . userId = = userId & & ids . Contains ( p . id ) ) ;
if ( cartProducts . Any ( ) )
{
//获取购物车货品序列
@@ -236,14 +250,14 @@ namespace CoreCms.Net.Services
foreach ( var item in products )
{
var numObj = cartProducts . Find ( p = > p . productId = = item . id ) ;
if ( numObj ! = null )
{
money + = numObj . nums * item . pointsDeduction ;
}
if ( numObj ! = null ) money + = numObj . nums * item . pointsDeduction ;
}
//计算抵扣这么多金额需要多少积分。
//订单积分折现比例(多少积分可以折现1块钱)
var pointDiscountedProportion = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . PointDiscountedProportion ) . ObjectToInt ( 100 ) ;
var pointDiscountedProportion = CommonHelper
. GetConfigDictionary ( allConfigs , SystemSettingConstVars . PointDiscountedProportion )
. ObjectToInt ( 100 ) ;
//计算需要多少积分
var needsPoint = money * pointDiscountedProportion ;
@@ -254,14 +268,16 @@ namespace CoreCms.Net.Services
dto . pointExchangeMoney = user . point > needsPoint ? money : 0 ;
}
}
}
}
}
}
return dto ;
}
#endregion
#region 修 改 用 户 密 码 , 如 果 用 户 之 前 没 有 密 码 , 那 么 就 不 校 验 原 密 码
/// <summary>
/// 修改用户密码,如果用户之前没有密码,那么就不校验原密码
/// </summary>
@@ -307,14 +323,17 @@ namespace CoreCms.Net.Services
return jm ;
}
var bl = await _dal . UpdateAsync ( p = > new CoreCmsUser ( ) { passWord = md5Pwd , updataTime = DateTime . Now } , p = > p . id = = userId ) ;
var bl = await _dal . UpdateAsync ( p = > new CoreCmsUser ( ) { passWord = md5Pwd , updataTime = DateTime . Now } ,
p = > p . id = = userId ) ;
jm . status = bl ;
jm . msg = bl ? "密码修改成功!" : "密码修改失败!" ;
return jm ;
}
#endregion
#region 绑 定 上 级
/// <summary>
/// 绑定上级
/// </summary>
@@ -333,12 +352,14 @@ namespace CoreCms.Net.Services
jm . msg = "自己不能邀请自己" ;
return jm ;
}
var user = await _dal . QueryByIdAsync ( userId ) ;
if ( user = = null )
{
jm . msg = GlobalErrorCodeVars . Code10000 ;
return jm ;
}
if ( user . parentId ! = 0 )
{
jm . msg = "已有上级邀请,不能绑定其他的邀请" ;
@@ -365,20 +386,22 @@ namespace CoreCms.Net.Services
if ( bl )
{
var allConfigs = await _settingServices . GetConfigDictionaries ( ) ;
var inviterUserIntegral = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . InviterUserIntegral ) . ObjectToInt ( ) ; //是否开启积分功能
var inviterUserIntegral = CommonHelper
. GetConfigDictionary ( allConfigs , SystemSettingConstVars . InviterUserIntegral ) . ObjectToInt ( ) ; //是否开启积分功能
if ( inviterUserIntegral > 0 )
{
await _userPointLogServices . SetPoint ( superiorId , inviterUserIntegral , ( int ) GlobalEnumVars . UserPointSourceTypes . PointTypeInviterUser , "发展用户:" + userId + "赠送积分" ) ;
}
await _userPointLogServices . SetPoint ( superiorId , inviterUserIntegral ,
( int ) GlobalEnumVars . UserPointSourceTypes . PointTypeInviterUser , "发展用户:" + userId + "赠送积分" ) ;
}
jm . status = bl ;
jm . msg = bl ? "填写邀请码成功!" : "填写邀请码失败!" ;
return jm ;
}
#endregion
#region 获 取 我 的 上 级 邀 请 人
/// <summary>
/// 获取我的上级邀请人
/// </summary>
@@ -394,14 +417,15 @@ namespace CoreCms.Net.Services
jm . msg = GlobalErrorCodeVars . Code10000 ;
return jm ;
}
if ( user . parentId = = 0 )
{
jm . msg = "无上级邀请人" ;
return jm ;
}
var parentUser = await _dal . QueryByClauseAsync ( p = > p . id = = user . parentId ) ;
if ( parentUser ! = null )
{
jm . data = new
{
nickname = parentUser . nickName ,
@@ -409,7 +433,6 @@ namespace CoreCms.Net.Services
mobile = UserHelper . FormatMobile ( parentUser . mobile ) ,
ctime = parentUser . createTime
} ;
}
return jm ;
}
@@ -442,18 +465,16 @@ namespace CoreCms.Net.Services
else
{
if ( info . parentId = = userId )
{
return true ;
}
else
{
return IsInvited ( userId , info . parentId ) ;
}
}
}
#endregion
#region 忘 记 密 码 , 找 回 密 码
/// <summary>
/// 忘记密码,找回密码
/// </summary>
@@ -470,24 +491,28 @@ namespace CoreCms.Net.Services
jm . msg = GlobalErrorCodeVars . Code10013 ;
return jm ;
}
var smsBool = await _smsServices . Check ( mobile , code , "veri" ) ;
if ( ! smsBool )
{
jm . msg = GlobalErrorCodeVars . Code10012 ;
return jm ;
}
var userInfo = await _dal . QueryByClauseAsync ( p = > p . mobile = = mobile ) ;
if ( userInfo = = null )
{
jm . msg = "没有此手机号码" ;
return jm ;
}
return await EditPwd ( userInfo . id , newPwd , userInfo . createTime ) ;
}
#endregion
#region 修 改 密 码
/// <summary>
/// 修改密码
/// </summary>
@@ -504,6 +529,7 @@ namespace CoreCms.Net.Services
jm . msg = GlobalErrorCodeVars . Code11009 ;
return jm ;
}
var md5Pwd = CommonHelper . EnPassword ( newPwd , createTime ) ;
var up = await _dal . UpdateAsync ( p = > new CoreCmsUser ( ) { passWord = md5Pwd } , p = > p . id = = userId ) ;
if ( ! up )
@@ -512,10 +538,12 @@ namespace CoreCms.Net.Services
jm . msg = "密码修改失败" ;
return jm ;
}
jm . status = true ;
jm . msg = "密码修改成功" ;
return jm ;
}
#endregion
#region 手 机 短 信 验 证 码 登 陆 , 同 时 兼 有 手 机 短 信 注 册 的 功 能 , 还 有 第 三 方 账 户 绑 定 的 功 能
@@ -527,7 +555,9 @@ namespace CoreCms.Net.Services
/// <param name="loginType">登录方式(1普通,2短信,3微信小程序拉取手机号)</param>
/// <param name="platform"></param>
/// <returns></returns>
public async Task < WebApiCallBack > SmsLogin ( FMWxAccountCreate entity , int loginType = ( int ) GlobalEnumVars . LoginType . WeChatPhoneNumber , int platform = ( int ) GlobalEnumVars . CoreShopSystemCategory . Api )
public async Task < WebApiCallBack > SmsLogin ( FMWxAccountCreate entity ,
int loginType = ( int ) GlobalEnumVars . LoginType . WeChatPhoneNumber ,
int platform = ( int ) GlobalEnumVars . CoreShopSystemCategory . Api )
{
var jm = new WebApiCallBack ( ) ;
@@ -577,21 +607,17 @@ namespace CoreCms.Net.Services
//没有此用户,创建此用户
if ( ! string . IsNullOrEmpty ( entity . sessionAuthId ) )
{
var wxUserInfo = await _userWeChatInfoServices . QueryByClauseAsync ( p = > p . openid = = entity . sessionAuthId ) ;
var wxUserInfo =
await _userWeChatInfoServices . QueryByClauseAsync ( p = > p . openid = = entity . sessionAuthId ) ;
if ( wxUserInfo ! = null )
{
if ( string . IsNullOrEmpty ( entity . avatar ) )
{
entity . avatar = wxUserInfo . avatar ;
}
if ( string . IsNullOrEmpty ( entity . nickname ) )
{
entity . nickname = wxUserInfo . nickName ;
}
if ( string . IsNullOrEmpty ( entity . avatar ) ) entity . avatar = wxUserInfo . avatar ;
if ( string . IsNullOrEmpty ( entity . nickname ) ) entity . nickname = wxUserInfo . nickName ;
userInfo . sex = wxUserInfo ? . gender ? ? 3 ;
userInfo . userWx = wxUserInfo ? . id ? ? 0 ;
}
}
//如果没有头像和昵称,那么就取系统头像和昵称吧
if ( ! string . IsNullOrEmpty ( entity . avatar ) )
{
@@ -600,11 +626,14 @@ namespace CoreCms.Net.Services
else
{
var allConfigs = await _settingServices . GetConfigDictionaries ( ) ;
var defaultImage = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . ShopDefaultImage ) ;
var defaultImage =
CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . ShopDefaultImage ) ;
userInfo . avatarImage = defaultImage ;
}
userInfo . nickName = ! string . IsNullOrEmpty ( entity . nickname ) ? entity . nickname : UserHelper . FormatMobile ( entity . mobile ) ;
userInfo . nickName = ! string . IsNullOrEmpty ( entity . nickname )
? entity . nickname
: UserHelper . FormatMobile ( entity . mobile ) ;
if ( entity . invitecode > 0 )
{
@@ -629,6 +658,7 @@ namespace CoreCms.Net.Services
jm . msg = GlobalErrorCodeVars . Code11009 ;
return jm ;
}
userInfo . passWord = CommonHelper . EnPassword ( entity . password , userInfo . createTime ) ;
}
else
@@ -650,12 +680,14 @@ namespace CoreCms.Net.Services
if ( userId > 0 & & entity . invitecode > 0 & & userInfo . parentId > 0 )
{
var allConfigs = await _settingServices . GetConfigDictionaries ( ) ;
var inviterUserIntegral = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . InviterUserIntegral ) . ObjectToInt ( ) ; //是否开启积分功能
var inviterUserIntegral = CommonHelper
. GetConfigDictionary ( allConfigs , SystemSettingConstVars . InviterUserIntegral )
. ObjectToInt ( ) ; //是否开启积分功能
if ( inviterUserIntegral > 0 )
{
await _userPointLogServices . SetPoint ( userInfo . parentId , inviterUserIntegral , ( int ) GlobalEnumVars . UserPointSourceTypes . PointTypeInviterUser , "发展用户:" + userId + "赠送积分" ) ;
}
await _userPointLogServices . SetPoint ( userInfo . parentId , inviterUserIntegral ,
( int ) GlobalEnumVars . UserPointSourceTypes . PointTypeInviterUser , "发展用户:" + userId + "赠送积分" ) ;
}
userInfo = await _dal . QueryByIdAsync ( userId ) ;
}
else
@@ -667,6 +699,7 @@ namespace CoreCms.Net.Services
return jm ;
}
}
//判断是否是小程序里的微信登陆,如果是,就给他绑定微信账号
if ( ! string . IsNullOrEmpty ( entity . sessionAuthId ) )
{
@@ -678,14 +711,19 @@ namespace CoreCms.Net.Services
//使用新微信(B)登录,同时又授权此手机号码绑定。
//小程序内微信支付时候,因为登录的微信(B)与拉取手机号码绑定后获取到数据是(A)。
//会导致微信数据报错()
await _userWeChatInfoServices . UpdateAsync ( p = > new CoreCmsUserWeChatInfo ( ) { userId = 0 } , p = > p . openid ! = entity . sessionAuthId & & p . userId = = userInfo . id ) ;
//2023-05-05 屏蔽此代码,是为了让公众号,小程序实现多openid指向同一个账号,但是也存在问题,就是多了之后的解绑问题,应该做个登录设备管理。
//await _userWeChatInfoServices.UpdateAsync(p => new CoreCmsUserWeChatInfo() { userId = 0 }, p => p.openid != entity.sessionAuthId && p.userId == userInfo.id);
}
//如果是别的未绑定微信用户进来,则反向直接关联。
var wxUserInfo = await _userWeChatInfoServices . QueryByClauseAsync ( p = > p . openid = = entity . sessionAuthId ) ;
if ( wxUserInfo ! = null )
{
await _dal . UpdateAsync ( p = > new CoreCmsUser ( ) { userWx = wxUserInfo . id } , p = > p . id = = userInfo . id ) ;
}
}
if ( userInfo . status = = ( int ) GlobalEnumVars . UserStatus . 正 常 )
@@ -696,10 +734,13 @@ namespace CoreCms.Net.Services
if ( platform = = ( int ) GlobalEnumVars . CoreShopSystemCategory . Api )
{
var claims = new List < Claim > {
new Claim ( ClaimTypes . Name , userInfo . nickName ) ,
new Claim ( JwtRegisteredClaimNames . Jti , userInfo . id . ToString ( ) ) ,
new Claim ( ClaimTypes . Expiration , DateTime . Now . AddSeconds ( _permissionRequirement . Expiration . TotalSeconds ) . ToString ( ) ) } ;
var claims = new List < Claim >
{
new ( ClaimTypes . Name , userInfo . nickName ) ,
new ( JwtRegisteredClaimNames . Jti , userInfo . id . ToString ( ) ) ,
new ( ClaimTypes . Expiration ,
DateTime . Now . AddSeconds ( _permissionRequirement . Expiration . TotalSeconds ) . ToString ( ) )
} ;
//用户标识
var identity = new ClaimsIdentity ( JwtBearerDefaults . AuthenticationScheme ) ;
identity . AddClaims ( claims ) ;
@@ -714,9 +755,12 @@ namespace CoreCms.Net.Services
var log = new CoreCmsUserLog ( ) ;
log . userId = userInfo . id ;
log . state = isReg ? ( int ) GlobalEnumVars . UserLogTypes . 注 册 : ( int ) GlobalEnumVars . UserLogTypes . 登 录 ;
log . ip = _httpContextAccessor . HttpContext ? . Connection . RemoteIpAddress ! = null ? _httpContextAccessor . HttpContext . Connection . RemoteIpAddress . MapToIPv4 ( ) . ToString ( ) : "127.0.0.1" ;
log . ip = _httpContextAccessor . HttpContext ? . Connection . RemoteIpAddress ! = null
? _httpContextAccessor . HttpContext . Connection . RemoteIpAddress . MapToIPv4 ( ) . ToString ( )
: "127.0.0.1" ;
log . createTime = DateTime . Now ;
log . parameters = isReg ? GlobalEnumVars . UserLogTypes . 注 册 . ToString ( ) : GlobalEnumVars . UserLogTypes . 登 录 . ToString ( ) ;
log . parameters =
isReg ? GlobalEnumVars . UserLogTypes . 注 册 . ToString ( ) : GlobalEnumVars . UserLogTypes . 登 录 . ToString ( ) ;
await _userLogServices . InsertAsync ( log ) ;
}
else
@@ -724,12 +768,14 @@ namespace CoreCms.Net.Services
jm . msg = GlobalErrorCodeVars . Code11022 ;
return jm ;
}
return jm ;
}
#endregion
#region 根 据 条 件 查 询 分 页 数 据
/// <summary>
/// 根据条件查询分页数据
/// </summary>
@@ -749,6 +795,7 @@ namespace CoreCms.Net.Services
#endregion
#region 按 天 统 计 新 会 员
/// <summary>
/// 按天统计新会员
/// </summary>
@@ -757,22 +804,25 @@ namespace CoreCms.Net.Services
{
return await _dal . Statistics ( day ) ;
}
#endregion
#region 按 天 统 计 当 天 下 单 活 跃 会 员
/// <summary>
/// 按天统计当天下单活跃会员
/// </summary>
/// <returns></returns>
public async Task < List < StatisticsOut > > StatisticsOrder ( int day )
{
return await _dal . StatisticsOrder ( day ) ;
}
#endregion
#region 当 关 闭 分 销 和 代 理 的 时 候 走 个 人 邀 请 好 友 分 佣
/// <summary>
/// 当关闭分销和代理的时候走个人邀请好友分佣
/// </summary>
@@ -788,21 +838,28 @@ namespace CoreCms.Net.Services
var jm = new WebApiCallBack ( ) ;
var allConfigs = await _settingServices . GetConfigDictionaries ( ) ;
//分佣类型(1百分比/2固定金额)
var commissionType = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . CommissionType ) . ObjectToInt ( 0 ) ;
var commissionType = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . CommissionType )
. ObjectToInt ( 0 ) ;
//一级佣金
var commissionFirst = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . CommissionFirst ) . ObjectToDecimal ( 0 ) ;
var commissionFirst = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . CommissionFirst )
. ObjectToDecimal ( 0 ) ;
//二级佣金
var commissionSecond = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . CommissionSecond ) . ObjectToDecimal ( 0 ) ;
var commissionSecond = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . CommissionSecond )
. ObjectToDecimal ( 0 ) ;
//三级佣金
var commissionThird = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . CommissionFirst ) . ObjectToDecimal ( 0 ) ;
var commissionThird = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . CommissionFirst )
. ObjectToDecimal ( 0 ) ;
//是否开启三级分销(1开启,2未开启)
var openDistribution = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . OpenDistribution ) . ObjectToInt ( 0 ) ;
var openDistribution = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . OpenDistribution )
. ObjectToInt ( 0 ) ;
//是否开启代理模块(1开启,2未开启)
var isOpenAgent = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . IsOpenAgent ) . ObjectToInt ( 0 ) ;
var isOpenAgent = CommonHelper . GetConfigDictionary ( allConfigs , SystemSettingConstVars . IsOpenAgent )
. ObjectToInt ( 0 ) ;
//当分销模块和代理模块都关闭的情况下,才去计算邀请好友的操作。
if ( openDistribution ! = 2 | | isOpenAgent ! = 2 ) return jm ;
var order = await _orderServices . QueryByClauseAsync ( p = > p . orderId = = orderId & & p . status = = ( int ) GlobalEnumVars . OrderStatus . Complete ) ;
var order = await _orderServices . QueryByClauseAsync ( p = >
p . orderId = = orderId & & p . status = = ( int ) GlobalEnumVars . OrderStatus . Complete ) ;
if ( order = = null )
{
jm . msg = "订单查询失败" ;
@@ -812,7 +869,8 @@ namespace CoreCms.Net.Services
var user = await _dal . QueryByClauseAsync ( p = > p . id = = order . userId , true ) ;
// 获取付款单,我们只拿付款单的实际金额去计算,不用订单的金额。这样直接不用去计算优惠了,只看用户付了多少。从上面提佣金出来。
var billPayments = await _billPaymentsServices . QueryByClauseAsync ( p = > p . sourceId = = orderId & & p . status = = ( int ) GlobalEnumVars . BillPaymentsStatus . Payed ) ;
var billPayments = await _billPaymentsServices . QueryByClauseAsync ( p = >
p . sourceId = = orderId & & p . status = = ( int ) GlobalEnumVars . BillPaymentsStatus . Payed ) ;
if ( billPayments . money < = 0 ) return jm ;
{
//1级佣金
@@ -835,25 +893,25 @@ namespace CoreCms.Net.Services
if ( parentLevel1 = = null ) return jm ;
{
//钱挪到会员余额里面
await _userBalanceServices . Change ( user . parentId , ( int ) GlobalEnumVars . UserBalanceSourceTypes . Distribution , commissionLevel1 , orderId ) ;
await _userBalanceServices . Change ( user . parentId ,
( int ) GlobalEnumVars . UserBalanceSourceTypes . Distribution , commissionLevel1 , orderId ) ;
if ( parentLevel1 . parentId < = 0 ) return jm ;
var parentLevel2 = await _dal . QueryByClauseAsync ( p = > p . id = = parentLevel1 . parentId , true ) ;
//钱挪到会员余额里面
await _userBalanceServices . Change ( parentLevel1 . parentId , ( int ) GlobalEnumVars . UserBalanceSourceTypes . Distribution , commissionLevel2 , orderId ) ;
await _userBalanceServices . Change ( parentLevel1 . parentId ,
( int ) GlobalEnumVars . UserBalanceSourceTypes . Distribution , commissionLevel2 , orderId ) ;
if ( parentLevel2 . parentId < = 0 ) return jm ;
{
var parentLevel3 = await _dal . QueryByClauseAsync ( p = > p . id = = parentLevel2 . parentId , true ) ;
if ( parentLevel3 ! = null )
{
//钱挪到会员余额里面
await _userBalanceServices . Change ( parentLevel2 . parentId , ( int ) GlobalEnumVars . UserBalanceSourceTypes . Distribution , commissionLevel3 , orderId ) ;
}
await _userBalanceServices . Change ( parentLevel2 . parentId ,
( int ) GlobalEnumVars . UserBalanceSourceTypes . Distribution , commissionLevel3 , orderId ) ;
}
}
}
return jm ;
}
#endregion
}
#endregion
}