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
f883ca96
Commit
f883ca96
authored
Jul 16, 2020
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
返佣
parent
759adbfa
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
230 additions
and
3 deletions
+230
-3
UserCommonModule.cs
Mall.Module.User/UserCommonModule.cs
+230
-3
No files found.
Mall.Module.User/UserCommonModule.cs
View file @
f883ca96
...
...
@@ -53,6 +53,22 @@ namespace Mall.Module.User
/// 会员信息
/// </summary>
private
readonly
RB_Member_UserRepository
member_UserRepository
=
new
RB_Member_UserRepository
();
/// <summary>
/// 分销商
/// </summary>
private
readonly
RB_Distributor_InfoRepository
distributor_InfoRepository
=
new
RB_Distributor_InfoRepository
();
/// <summary>
/// vip购买返佣
/// </summary>
private
readonly
RB_VipBuy_CommissionRepository
vipBuy_CommissionRepository
=
new
RB_VipBuy_CommissionRepository
();
/// <summary>
/// 粉象vip购买返佣金额
/// </summary>
private
readonly
RB_Distributor_FXCommissionRepository
distributor_FXCommissionRepository
=
new
RB_Distributor_FXCommissionRepository
();
/// <summary>
/// 粉象发脓等级
/// </summary>
private
readonly
RB_Distributor_FXGradeRepository
distributor_FXGradeRepository
=
new
RB_Distributor_FXGradeRepository
();
private
readonly
MiniProgramMsgModule
appletWeChatModule
=
new
MiniProgramMsgModule
();
...
...
@@ -355,10 +371,221 @@ namespace Mall.Module.User
/// 新增vip购买返佣
/// </summary>
/// <param name="OrderId">vip购买单号id</param>
/// <param name="UserId">购买人</param>
/// <param name="
Buy
UserId">购买人</param>
/// <returns></returns>
public
bool
InsertVipBuyCommission
(
int
OrderId
,
int
UserId
)
{
return
false
;
public
bool
InsertVipBuyCommission
(
int
OrderId
,
int
BuyUserId
,
int
IsFristBuy
,
int
TenantId
,
int
MallBaseId
)
{
try
{
//获取用户当前分销商
var
basicModel
=
distributor_BasicsRepository
.
GetList
(
new
RB_Distributor_Basics_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
}).
FirstOrDefault
();
if
(
basicModel
.
IsEnableFXGrade
==
1
)
{
var
uModel
=
member_UserRepository
.
GetEntity
(
BuyUserId
);
if
(
uModel
==
null
)
{
return
false
;
}
//粉象等级列表
var
FXList
=
distributor_FXGradeRepository
.
GetList
(
new
RB_Distributor_FXGrade_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
var
VipModel
=
FXList
.
Where
(
x
=>
x
.
IsGuest
==
3
).
FirstOrDefault
();
var
PTModel
=
FXList
.
Where
(
x
=>
x
.
IsGuest
==
1
).
FirstOrDefault
();
//vip购买返佣金额列表
var
FXCList
=
distributor_FXCommissionRepository
.
GetFXCommissionList
(
new
RB_Distributor_FXCommission_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
var
disModel
=
distributor_InfoRepository
.
GetList
(
new
RB_Distributor_Info_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
,
UserId
=
BuyUserId
,
AuditStatus
=
Common
.
Enum
.
User
.
DistributorAuditStatusEnum
.
Audited
}).
FirstOrDefault
();
if
(
disModel
!=
null
)
{
if
(
disModel
.
FXGradeId
!=
VipModel
.
Id
)
{
return
false
;
}
//求其上级
var
pmodel
=
member_UserRepository
.
GetEntity
(
uModel
.
SuperiorId
);
if
(
pmodel
==
null
)
{
return
false
;
}
var
dispModel
=
distributor_InfoRepository
.
GetList
(
new
RB_Distributor_Info_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
,
UserId
=
pmodel
.
Id
,
AuditStatus
=
Common
.
Enum
.
User
.
DistributorAuditStatusEnum
.
Audited
}).
FirstOrDefault
();
if
(
dispModel
!=
null
)
{
var
pfxModel
=
FXList
.
Where
(
x
=>
x
.
Id
==
dispModel
.
FXGradeId
).
FirstOrDefault
();
if
(
pfxModel
==
null
)
{
return
false
;
}
if
(
pfxModel
.
Grade
<
VipModel
.
Grade
)
{
return
false
;
//其上级不是vip 直接后面的全部不提
}
//查询出当前用户的所有上级
string
UserIds
=
member_UserRepository
.
GetMemberParentIdStr
(
pmodel
.
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
,
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
foreach
(
var
item
in
dlist
)
{
item
.
Grade
=
FXList
.
Where
(
x
=>
x
.
Id
==
item
.
FXGradeId
).
FirstOrDefault
()?.
Grade
??
0
;
}
//返佣
List
<
RB_VipBuy_Commission
>
gocList
=
new
List
<
RB_VipBuy_Commission
>();
List
<
Model
.
Entity
.
Product
.
FXOrderCommissionNumModel
>
fxNumList
=
new
List
<
Model
.
Entity
.
Product
.
FXOrderCommissionNumModel
>();
int
UserId
=
pmodel
.
Id
;
int
Num
=
1
;
while
(
UserId
>
0
)
{
var
numodel
=
ulist
.
Where
(
x
=>
x
.
Id
==
UserId
).
FirstOrDefault
();
if
(
numodel
==
null
)
{
UserId
=
0
;
break
;
}
var
d2Model
=
dlist
.
Where
(
x
=>
x
.
UserId
==
numodel
.
Id
).
FirstOrDefault
();
if
(
d2Model
==
null
)
{
UserId
=
0
;
break
;
}
var
FXGModel
=
FXList
.
Where
(
x
=>
x
.
Id
==
d2Model
.
FXGradeId
).
FirstOrDefault
();
if
(
FXGModel
==
null
)
{
UserId
=
0
;
break
;
}
if
(!
fxNumList
.
Any
())
{
UserId
=
numodel
.
SuperiorId
??
0
;
//第一个人 拿直推vip
var
fxcModel
=
FXCList
.
Where
(
x
=>
x
.
FXGradeId
==
FXGModel
.
Id
&&
x
.
CommissionGradeId
==
VipModel
.
Id
&&
x
.
GradeType
==
1
).
FirstOrDefault
();
fxNumList
.
Add
(
new
Model
.
Entity
.
Product
.
FXOrderCommissionNumModel
()
{
GradeId
=
FXGModel
.
Id
,
Grade
=
FXGModel
.
Grade
??
0
,
Money
=
fxcModel
?.
CommissionPrice
??
0
,
Sort
=
Num
,
IsSelfBuy
=
2
});
gocList
.
Add
(
new
RB_VipBuy_Commission
()
{
Id
=
0
,
Commission
=
fxcModel
?.
CommissionPrice
??
0
,
CreateDate
=
DateTime
.
Now
,
Grade
=
FXGModel
.
Id
,
IsRemit
=
0
,
MallBaseId
=
MallBaseId
,
OrderId
=
OrderId
,
Remark
=
IsFristBuy
==
1
?
"下线购买vip返佣"
:
"下线续费vip返佣"
,
TenantId
=
TenantId
,
Type
=
1
,
UpdateDate
=
DateTime
.
Now
,
UserId
=
UserId
});
Num
++;
}
else
{
//后面的拿间接vip 或者其他
int
MaxGrade
=
fxNumList
.
Max
(
x
=>
x
.
Grade
);
if
(
FXGModel
.
Grade
<
MaxGrade
)
{
//后面的全部不返佣
UserId
=
0
;
break
;
}
int
MaxGradeNum
=
fxNumList
.
Where
(
x
=>
x
.
Grade
==
FXGModel
.
Grade
).
Count
();
int
MaxGradeId
=
fxNumList
.
Where
(
x
=>
x
.
Grade
==
MaxGrade
).
FirstOrDefault
()?.
GradeId
??
0
;
if
((
FXGModel
.
SiblingRebatesNum
??
0
)
+
1
>
MaxGradeNum
)
{
UserId
=
numodel
.
SuperiorId
??
0
;
decimal
DcommionMoney
=
0
;
if
(
MaxGradeNum
>=
1
&&
MaxGrade
==
VipModel
.
Id
)
{
//拿间接vip
var
fxcModel
=
FXCList
.
Where
(
x
=>
x
.
FXGradeId
==
FXGModel
.
Id
&&
x
.
CommissionGradeId
==
VipModel
.
Id
&&
x
.
GradeType
==
2
).
FirstOrDefault
();
DcommionMoney
=
fxcModel
?.
CommissionPrice
??
0
;
}
else
if
(
FXGModel
.
Grade
>
VipModel
.
Grade
)
{
var
fxcModel
=
FXCList
.
Where
(
x
=>
x
.
FXGradeId
==
FXGModel
.
Id
&&
x
.
CommissionGradeId
==
MaxGradeId
&&
x
.
GradeType
==
1
).
FirstOrDefault
();
DcommionMoney
=
fxcModel
?.
CommissionPrice
??
0
;
}
fxNumList
.
Add
(
new
Model
.
Entity
.
Product
.
FXOrderCommissionNumModel
()
{
GradeId
=
FXGModel
.
Id
,
Grade
=
FXGModel
.
Grade
??
0
,
Money
=
DcommionMoney
,
Sort
=
Num
,
IsSelfBuy
=
2
});
gocList
.
Add
(
new
RB_VipBuy_Commission
()
{
Id
=
0
,
Commission
=
DcommionMoney
,
CreateDate
=
DateTime
.
Now
,
Grade
=
FXGModel
.
Id
,
IsRemit
=
0
,
MallBaseId
=
MallBaseId
,
OrderId
=
OrderId
,
Remark
=
IsFristBuy
==
1
?
"下线购买vip返佣"
:
"下线续费vip返佣"
,
TenantId
=
TenantId
,
Type
=
1
,
UpdateDate
=
DateTime
.
Now
,
UserId
=
UserId
});
Num
++;
}
else
{
UserId
=
0
;
//该等级的已提完了 看是否可以直接找到下一个等级的
var
fx2List
=
dlist
.
Where
(
x
=>
x
.
Grade
>
MaxGrade
).
ToList
();
if
(
fx2List
.
Any
())
{
//说明是有下一级的
for
(
var
i
=
0
;
i
<
ulist
.
Count
;
i
++)
{
var
n1umodel
=
ulist
.
Where
(
x
=>
x
.
Id
==
(
numodel
.
SuperiorId
??
0
)).
FirstOrDefault
();
if
(
n1umodel
==
null
)
{
UserId
=
0
;
break
;
}
var
dis1Model
=
dlist
.
Where
(
x
=>
x
.
UserId
==
n1umodel
.
Id
).
FirstOrDefault
();
var
FXG2Model
=
new
RB_Distributor_FXGrade_Extend
();
if
(
dis1Model
==
null
)
{
UserId
=
0
;
break
;
}
FXG2Model
=
FXList
.
Where
(
x
=>
x
.
Id
==
dis1Model
.
FXGradeId
).
FirstOrDefault
();
if
(
FXG2Model
==
null
)
{
UserId
=
0
;
break
;
}
if
(
FXG2Model
.
Grade
<
MaxGrade
)
{
//后面的全部不返佣
UserId
=
0
;
break
;
}
else
if
(
FXG2Model
.
Grade
>
MaxGrade
)
{
//已找到上级 继续返佣
UserId
=
n1umodel
.
Id
;
break
;
}
}
}
}
}
}
foreach
(
var
qitem
in
gocList
)
{
vipBuy_CommissionRepository
.
Insert
(
qitem
);
}
}
}
}
return
true
;
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"InsertVipBuyCommission"
);
return
false
;
}
}
}
}
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