Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mall.oytour.com
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
mall.oytour.com
Commits
a7a5bcdd
Commit
a7a5bcdd
authored
Jul 20, 2020
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
自动升级
parent
a8009353
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
163 additions
and
6 deletions
+163
-6
UserCommonModule.cs
Mall.Module.User/UserCommonModule.cs
+122
-0
RB_VipBuy_CommissionRepository.cs
Mall.Repository/User/RB_VipBuy_CommissionRepository.cs
+41
-6
No files found.
Mall.Module.User/UserCommonModule.cs
View file @
a7a5bcdd
...
...
@@ -686,6 +686,9 @@ namespace Mall.Module.User
}
}
}
//购买vip之后 其上级验证 如果满足升级 将自动升级为更高级别的分销商
System
.
Threading
.
Tasks
.
Task
.
Run
(()
=>
FXAutoUpgradeUserDistributorGrade
(
BuyUserId
,
TenantId
,
MallBaseId
));
}
return
true
;
}
...
...
@@ -695,5 +698,124 @@ namespace Mall.Module.User
return
false
;
}
}
/// <summary>
/// 自动升级粉象分销商等级
/// </summary>
/// <param name="BuyUserId"></param>
/// <returns></returns>
public
bool
FXAutoUpgradeUserDistributorGrade
(
int
BuyUserId
,
int
TenantId
,
int
MallBaseId
)
{
try
{
var
umodel
=
member_UserRepository
.
GetEntity
(
BuyUserId
);
if
(
umodel
==
null
)
{
return
false
;
}
if
(
umodel
.
SuperiorId
>
0
)
{
//粉象等级列表
var
FXList
=
distributor_FXGradeRepository
.
GetList
(
new
RB_Distributor_FXGrade_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
var
dispmodel
=
distributor_InfoRepository
.
GetListForSingle
(
new
RB_Distributor_Info_Extend
()
{
UserId
=
umodel
.
SuperiorId
,
AuditStatus
=
Common
.
Enum
.
User
.
DistributorAuditStatusEnum
.
Audited
,
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
}).
FirstOrDefault
();
if
(
dispmodel
==
null
)
{
return
false
;
}
var
fxpmodel
=
FXList
.
Where
(
x
=>
x
.
Id
==
(
dispmodel
.
FXGradeId
??
0
)).
FirstOrDefault
();
var
fxNext
=
FXList
.
Where
(
x
=>
x
.
Grade
>
fxpmodel
.
Grade
).
OrderBy
(
x
=>
x
.
Grade
).
FirstOrDefault
();
if
(
fxpmodel
!=
null
&&
fxNext
!=
null
&&
fxNext
.
IsUpgrade
==
1
&&
fxNext
.
UpgradeNum
>
0
&&
fxNext
.
UpgradeId
>
0
)
{
//查询当前父级用户是否满足升级
var
gmodel
=
FXList
.
Where
(
x
=>
x
.
Id
==
fxNext
.
UpgradeId
).
FirstOrDefault
();
//获取其下级数量
var
upFXList
=
FXList
.
Where
(
x
=>
x
.
Grade
>=
gmodel
.
Grade
).
ToList
();
int
MeetNum
=
0
;
//已发展等级
if
(
upFXList
.
Any
())
{
string
FXGradeIds
=
string
.
Join
(
","
,
upFXList
.
Select
(
x
=>
x
.
Id
));
MeetNum
=
member_UserRepository
.
GetUserReferralsForFX
(
new
RB_Member_User_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
,
SuperiorId
=
umodel
.
SuperiorId
,
FXGradeIds
=
FXGradeIds
});
}
if
((
fxNext
.
UpgradeNum
??
0
)
<=
MeetNum
)
{
//可以升级咯
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Distributor_Info
.
FXGradeId
),
fxNext
.
Id
},
{
nameof
(
RB_Distributor_Info
.
Remark
),
dispmodel
.
Remark
+
" 分销商满足升级条件:"
+(
fxNext
.
UpgradeNum
??
0
)+
"位"
+(
gmodel
.
GradeName
??
""
)+
"下线,已自动升级为"
+(
fxNext
.
GradeName
??
""
)},
};
List
<
WhereHelper
>
wheres
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Distributor_Info
.
Id
),
FiledValue
=
dispmodel
.
Id
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
bool
flag
=
distributor_InfoRepository
.
Update
(
keyValues
,
wheres
);
if
(
flag
)
{
//继续找其上级的上级
//查询出当前用户的所有上级
var
upmodel
=
member_UserRepository
.
GetEntity
(
umodel
.
SuperiorId
);
if
(
upmodel
.
SuperiorId
>
0
)
{
string
UserIds
=
member_UserRepository
.
GetMemberParentIdStr
(
upmodel
.
Id
);
var
ulist
=
member_UserRepository
.
GetList
(
new
RB_Member_User_Extend
()
{
UserIds
=
UserIds
,
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
//查询出用户的所有分销信息
var
dlist
=
distributor_InfoRepository
.
GetListForSingle
(
new
RB_Distributor_Info_Extend
()
{
UserIds
=
UserIds
,
AuditStatus
=
Common
.
Enum
.
User
.
DistributorAuditStatusEnum
.
Audited
,
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
int
PId
=
upmodel
.
SuperiorId
??
0
;
for
(
var
i
=
1
;
i
<
ulist
.
Count
();
i
++)
{
if
(
PId
<=
0
)
{
break
;
}
var
uppmodel
=
ulist
.
Where
(
x
=>
x
.
Id
==
PId
).
FirstOrDefault
();
if
(
uppmodel
==
null
)
{
break
;
}
var
disppmodel
=
dlist
.
Where
(
x
=>
x
.
UserId
==
uppmodel
.
Id
).
FirstOrDefault
();
if
(
disppmodel
==
null
)
{
break
;
}
var
fxppmodel
=
FXList
.
Where
(
x
=>
x
.
Id
==
(
disppmodel
.
FXGradeId
??
0
)).
FirstOrDefault
();
if
(
fxppmodel
==
null
)
{
break
;
}
var
fxpNext
=
FXList
.
Where
(
x
=>
x
.
Grade
>
fxppmodel
.
Grade
).
OrderBy
(
x
=>
x
.
Grade
).
FirstOrDefault
();
if
(
fxppmodel
!=
null
&&
fxpNext
!=
null
&&
fxpNext
.
IsUpgrade
==
1
&&
fxpNext
.
UpgradeNum
>
0
&&
fxpNext
.
UpgradeId
>
0
)
{
//查询当前父级用户是否满足升级
var
gpmodel
=
FXList
.
Where
(
x
=>
x
.
Id
==
fxpNext
.
UpgradeId
).
FirstOrDefault
();
//获取其下级数量
var
upFXpList
=
FXList
.
Where
(
x
=>
x
.
Grade
>=
gpmodel
.
Grade
).
ToList
();
int
pMeetNum
=
0
;
//已发展等级
if
(
upFXpList
.
Any
())
{
string
FXGradeIds
=
string
.
Join
(
","
,
upFXpList
.
Select
(
x
=>
x
.
Id
));
pMeetNum
=
member_UserRepository
.
GetUserReferralsForFX
(
new
RB_Member_User_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
,
SuperiorId
=
uppmodel
.
Id
,
FXGradeIds
=
FXGradeIds
});
}
if
((
fxpNext
.
UpgradeNum
??
0
)
<=
pMeetNum
)
{
//上级可以升级咯
Dictionary
<
string
,
object
>
keyValues1
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Distributor_Info
.
FXGradeId
),
fxNext
.
Id
},
{
nameof
(
RB_Distributor_Info
.
Remark
),
dispmodel
.
Remark
+
" 分销商满足升级条件:"
+(
fxpNext
.
UpgradeNum
??
0
)+
"位"
+(
gpmodel
.
GradeName
??
""
)+
"下线,已自动升级为"
+(
fxpNext
.
GradeName
??
""
)},
};
List
<
WhereHelper
>
wheres1
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Distributor_Info
.
Id
),
FiledValue
=
dispmodel
.
Id
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
distributor_InfoRepository
.
Update
(
keyValues1
,
wheres1
);
}
else
{
break
;
}
}
else
{
break
;
}
PId
=
uppmodel
.
SuperiorId
??
0
;
}
}
}
}
}
}
return
true
;
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"FXAutoUpgradeUserDistributorGrade"
);
return
false
;
}
}
}
}
Mall.Repository/User/RB_VipBuy_CommissionRepository.cs
View file @
a7a5bcdd
...
...
@@ -61,26 +61,61 @@ where {where} order by v.Id desc";
/// <param name="dmodel"></param>
/// <returns></returns>
public
List
<
RB_VipBuy_Commission_Extend
>
GetList
(
RB_VipBuy_Commission_Extend
dmodel
)
{
string
where
=
" 1=1
and b.Status =0
"
;
string
where
=
" 1=1 "
;
if
(
dmodel
.
TenantId
>
0
)
{
where
+=
$@" and
b
.
{
nameof
(
RB_VipBuy_Commission
.
TenantId
)}
=
{
dmodel
.
TenantId
}
"
;
where
+=
$@" and
v
.
{
nameof
(
RB_VipBuy_Commission
.
TenantId
)}
=
{
dmodel
.
TenantId
}
"
;
}
if
(
dmodel
.
MallBaseId
>
0
)
{
where
+=
$@" and
b
.
{
nameof
(
RB_VipBuy_Commission
.
MallBaseId
)}
=
{
dmodel
.
MallBaseId
}
"
;
where
+=
$@" and
v
.
{
nameof
(
RB_VipBuy_Commission
.
MallBaseId
)}
=
{
dmodel
.
MallBaseId
}
"
;
}
if
(
dmodel
.
Id
>
0
)
{
where
+=
$@" and b.
{
nameof
(
RB_VipBuy_Commission
.
Id
)}
=
{
dmodel
.
Id
}
"
;
where
+=
$@" and v.
{
nameof
(
RB_VipBuy_Commission
.
Id
)}
=
{
dmodel
.
Id
}
"
;
}
if
(!
string
.
IsNullOrEmpty
(
dmodel
.
VipIds
))
{
where
+=
$@" and v.
{
nameof
(
RB_VipBuy_Commission
.
Id
)}
in(
{
dmodel
.
VipIds
}
)"
;
}
if
(
dmodel
.
OrderId
>
0
)
{
where
+=
$@" and b.
{
nameof
(
RB_VipBuy_Commission
.
OrderId
)}
=
{
dmodel
.
OrderId
}
"
;
where
+=
$@" and v.
{
nameof
(
RB_VipBuy_Commission
.
OrderId
)}
=
{
dmodel
.
OrderId
}
"
;
}
if
(
dmodel
.
UserId
>
0
)
{
where
+=
$@" and v.
{
nameof
(
RB_VipBuy_Commission
.
UserId
)}
=
{
dmodel
.
UserId
}
"
;
}
if
(
dmodel
.
Type
>
0
)
{
where
+=
$@" and v.
{
nameof
(
RB_VipBuy_Commission
.
Type
)}
=
{
dmodel
.
Type
}
"
;
}
if
(
dmodel
.
IsRemit
==
2
)
{
where
+=
$@" and v.
{
nameof
(
RB_VipBuy_Commission
.
IsRemit
)}
<> 1"
;
}
string
sql
=
$@"select v.* from RB_VipBuy_Commission v where
{
where
}
order by v.Id desc"
;
string
sql
=
$@"select v.*,vb.OrderNo from RB_VipBuy_Commission v
inner join rb_vip_buy vb on v.OrderId = vb.Id
where
{
where
}
order by v.Id desc"
;
return
Get
<
RB_VipBuy_Commission_Extend
>(
sql
).
ToList
();
}
/// <summary>
/// 获取vip返佣总额
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public
decimal
getVipBuyCommissionMoney
(
int
userId
)
{
string
sql
=
$@"select SUM(v.Commission) as Commission from RB_VipBuy_Commission v where v.UserId="
+
userId
;
var
obj
=
ExecuteScalar
(
sql
);
if
(
obj
!=
null
)
{
return
Convert
.
ToDecimal
(
obj
);
}
else
{
return
0
;
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment