Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
huatu_API
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
liudong1993
huatu_API
Commits
dee93da5
Commit
dee93da5
authored
Mar 25, 2026
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1 提成比例调整+结团提成比例验证
parent
d60b8d6b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
237 additions
and
3 deletions
+237
-3
TravelModuleEdit.cs
REBORN.Module.DMCModule/TravelModuleEdit.cs
+60
-1
VisaModule_Part2.cs
REBORN.Module.DMCModule/VisaModule_Part2.cs
+44
-1
CustomerOrderModule.cs
REBORN.Module.SellModule/CustomerOrderModule.cs
+127
-0
MergeCommissionService.cs
REBORN.Services.CommissionService/MergeCommissionService.cs
+6
-1
No files found.
REBORN.Module.DMCModule/TravelModuleEdit.cs
View file @
dee93da5
using
Newtonsoft.Json
;
using
DapperExtensions.ValueObject
;
using
Newtonsoft.Json
;
using
Newtonsoft.Json.Linq
;
using
REBORN.CacheManager.Dmc
;
using
REBORN.CacheManager.User
;
...
...
@@ -223,6 +224,16 @@ namespace REBORN.Module.DMCModule
/// </summary>
private
readonly
RB_Travel_OrderRepository
travel_OrderRepository
=
new
RB_Travel_OrderRepository
();
/// <summary>
/// 单订单提成规则
/// </summary>
private
readonly
RB_SingleOrder_CommissionRuleRepository
singleOrder_CommissionRuleRepository
=
new
RB_SingleOrder_CommissionRuleRepository
();
/// <summary>
/// 单订单模式OP
/// </summary>
private
readonly
RB_Appoint_OPRepository
appoint_OPRepository
=
new
RB_Appoint_OPRepository
();
/// <summary>
/// 领队档期仓储层对象
/// </summary>
...
...
@@ -3529,6 +3540,54 @@ namespace REBORN.Module.DMCModule
}
}
}
//新增 结团 提成比例验证 【2026-03-25】
if
(
travelModel
.
TeamType
==
TeamTypeEnum
.
PacketGroup
)
{
var
order2List
=
travel_OrderRepository
.
GetBaseOrderList
(
new
RB_Travel_Order_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
,
TCID
=
extendModel
.
TCID
});
order2List
=
order2List
.
Where
(
x
=>
(
x
.
IsLeaderOrder
??
0
)
==
0
).
ToList
();
//查询 订单下 所有的 提成比例设置
if
(
order2List
.
Any
())
{
var
ruleList
=
singleOrder_CommissionRuleRepository
.
GetList
(
new
RB_SingleOrder_CommissionRule_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
});
foreach
(
var
item
in
ruleList
)
{
item
.
RuleList
=
JsonHelper
.
DeserializeObject
<
List
<
SingleOrderRule
>>(
item
.
Content
);
}
foreach
(
var
orderModel
in
order2List
)
{
var
ruleModel
=
ruleList
.
Where
(
x
=>
(
","
+
x
.
BranchIds
+
","
).
Contains
(
","
+
orderModel
.
RB_Branch_Id
+
","
)).
FirstOrDefault
();
if
(
ruleModel
==
null
)
{
ruleModel
=
ruleList
.
Where
(
x
=>
x
.
BranchIds
==
""
).
FirstOrDefault
();
}
int
orderT
=
2
;
if
(
travelModel
.
PriceTeamType
==
Common
.
Enum
.
Dmc
.
PriceTeamTypeEnum
.
OutTravel
)
{
orderT
=
7
;
}
var
ruleOrderModel
=
ruleModel
.
RuleList
.
Where
(
x
=>
x
.
OrderType
==
orderT
).
FirstOrDefault
();
if
(
orderModel
.
SaleRate
<=
0
)
{
orderModel
.
SaleRate
=
ruleOrderModel
?.
SaleRate
??
0
;
}
var
OPList
=
appoint_OPRepository
.
GetList
(
new
RB_Appoint_OP_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
,
ResourceType
=
Common
.
Enum
.
ResourceTypeEnum
.
TeamPrice
,
OrderId
=
orderModel
.
OrderId
});
orderModel
.
AppointOPInfoList
=
OPList
;
if
(
orderModel
.
AppointOPInfoList
!=
null
&&
orderModel
.
AppointOPInfoList
.
Any
())
{
var
opcList
=
orderModel
.
AppointOPInfoList
.
Where
(
x
=>
x
.
OPType
==
0
).
ToList
();
var
visacList
=
orderModel
.
AppointOPInfoList
.
Where
(
x
=>
x
.
OPType
==
1
).
ToList
();
if
(
opcList
.
Any
()
&&
!
opcList
.
Any
(
x
=>
x
.
CommissionRate
>
0
))
{
//赋默认值
opcList
.
FirstOrDefault
().
CommissionRate
=
ruleOrderModel
?.
OPRate
??
0
;
}
if
(
visacList
.
Any
()
&&
!
visacList
.
Any
(
x
=>
x
.
CommissionRate
>
0
))
{
//赋默认值
visacList
.
FirstOrDefault
().
CommissionRate
=
ruleOrderModel
?.
VisaRate
??
0
;
}
}
if
(
orderModel
.
SaleRate
==
Convert
.
ToDecimal
(
0.01
))
{
orderModel
.
SaleRate
=
0
;
}
if
(
orderModel
.
SaleRate
+
(
orderModel
.
AppointOPInfoList
?.
Sum
(
x
=>
x
.
CommissionRate
)
??
0
)
!=
100
)
{
return
"订单【"
+
orderModel
.
OrderId
+
"】提成比例未满100%"
;
}
}
}
}
}
#
region
验证酒店单据
日期是否每日完善
...
...
REBORN.Module.DMCModule/VisaModule_Part2.cs
View file @
dee93da5
...
...
@@ -422,7 +422,50 @@ namespace REBORN.Module.DMCModule
var
list
=
sell_VisaOrderRepository
.
GetOrderList
(
new
RB_Sell_VisaOrder_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
,
OrderIds
=
visaOrderId
});
if
(
list
!=
null
&&
list
.
Any
(
x
=>
x
.
PlatformMoney
>
0
))
{
return
"订单:"
+
string
.
Join
(
","
,
list
.
Where
(
x
=>
x
.
PlatformMoney
>
0
).
Select
(
x
=>
x
.
OrderId
))
+
"在途金额大于0"
;
return
"订单:"
+
string
.
Join
(
","
,
list
.
Where
(
x
=>
x
.
PlatformMoney
>
0
).
Select
(
x
=>
x
.
Id
))
+
"在途金额大于0"
;
}
if
(
list
.
Any
())
{
//查询OP
var
ruleList
=
singleOrder_CommissionRuleRepository
.
GetList
(
new
RB_SingleOrder_CommissionRule_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
});
foreach
(
var
item
in
ruleList
)
{
item
.
RuleList
=
JsonHelper
.
DeserializeObject
<
List
<
SingleOrderRule
>>(
item
.
Content
);
}
var
OPList
=
appointOPRepository
.
GetList
(
new
RB_Appoint_OP_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
,
ResourceType
=
Common
.
Enum
.
ResourceTypeEnum
.
Visa
,
QOrderIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
Id
))
});
string
OrderIdsMsg
=
""
;
foreach
(
var
orderModel
in
list
)
{
var
ruleModel
=
ruleList
.
Where
(
x
=>
(
","
+
x
.
BranchIds
+
","
).
Contains
(
","
+
orderModel
.
RB_Branch_Id
+
","
)).
FirstOrDefault
();
if
(
ruleModel
==
null
)
{
ruleModel
=
ruleList
.
Where
(
x
=>
x
.
BranchIds
==
""
).
FirstOrDefault
();
}
var
ruleOrderModel
=
ruleModel
.
RuleList
.
Where
(
x
=>
x
.
OrderType
==
6
).
FirstOrDefault
();
if
(
orderModel
.
SaleRate
<=
0
)
{
orderModel
.
SaleRate
=
ruleOrderModel
?.
SaleRate
??
0
;
}
var
AppointOPInfoList
=
OPList
.
Where
(
x
=>
x
.
OrderId
==
orderModel
.
Id
).
ToList
();
if
(
AppointOPInfoList
!=
null
&&
AppointOPInfoList
.
Any
())
{
var
opcList
=
AppointOPInfoList
.
Where
(
x
=>
x
.
OPType
==
0
).
ToList
();
if
(
opcList
.
Any
()
&&
!
opcList
.
Any
(
x
=>
x
.
CommissionRate
>
0
))
{
//赋默认值
opcList
.
FirstOrDefault
().
CommissionRate
=
ruleOrderModel
?.
OPRate
??
0
;
}
}
if
(
orderModel
.
SaleRate
==
Convert
.
ToDecimal
(
0.01
))
{
orderModel
.
SaleRate
=
0
;
}
if
(
orderModel
.
SaleRate
+
(
AppointOPInfoList
?.
Sum
(
x
=>
x
.
CommissionRate
)
??
0
)
!=
100
)
{
OrderIdsMsg
+=
orderModel
.
Id
+
"、"
;
}
}
if
(!
string
.
IsNullOrEmpty
(
OrderIdsMsg
))
{
return
"订单 "
+
OrderIdsMsg
+
"提成比例未满100%"
;
}
}
foreach
(
var
item
in
list
)
{
...
...
REBORN.Module.SellModule/CustomerOrderModule.cs
View file @
dee93da5
...
...
@@ -2466,6 +2466,46 @@ namespace REBORN.Module.SellModule
{
return
"订单:"
+
string
.
Join
(
","
,
list
.
Where
(
x
=>
x
.
PlatformMoney
>
0
).
Select
(
x
=>
x
.
OrderId
))
+
"在途金额大于0"
;
}
if
(
list
.
Any
())
{
//查询OP
var
ruleList
=
singleOrder_CommissionRuleRepository
.
GetList
(
new
RB_SingleOrder_CommissionRule_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
});
foreach
(
var
item
in
ruleList
)
{
item
.
RuleList
=
JsonHelper
.
DeserializeObject
<
List
<
SingleOrderRule
>>(
item
.
Content
);
}
var
OPList
=
appointOPRepository
.
GetList
(
new
RB_Appoint_OP_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
,
ResourceType
=
Common
.
Enum
.
ResourceTypeEnum
.
Hotel
,
QOrderIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderId
))
});
string
OrderIdsMsg
=
""
;
foreach
(
var
orderModel
in
list
)
{
var
ruleModel
=
ruleList
.
Where
(
x
=>
(
","
+
x
.
BranchIds
+
","
).
Contains
(
","
+
orderModel
.
EmpBranchId
+
","
)).
FirstOrDefault
();
if
(
ruleModel
==
null
)
{
ruleModel
=
ruleList
.
Where
(
x
=>
x
.
BranchIds
==
""
).
FirstOrDefault
();
}
var
ruleOrderModel
=
ruleModel
.
RuleList
.
Where
(
x
=>
x
.
OrderType
==
3
).
FirstOrDefault
();
if
(
orderModel
.
SaleRate
<=
0
)
{
orderModel
.
SaleRate
=
ruleOrderModel
?.
SaleRate
??
0
;
}
var
AppointOPInfoList
=
OPList
.
Where
(
x
=>
x
.
OrderId
==
orderModel
.
OrderId
).
ToList
();
if
(
AppointOPInfoList
!=
null
&&
AppointOPInfoList
.
Any
())
{
var
opcList
=
AppointOPInfoList
.
Where
(
x
=>
x
.
OPType
==
0
).
ToList
();
if
(
opcList
.
Any
()
&&
!
opcList
.
Any
(
x
=>
x
.
CommissionRate
>
0
))
{
//赋默认值
opcList
.
FirstOrDefault
().
CommissionRate
=
ruleOrderModel
?.
OPRate
??
0
;
}
}
if
(
orderModel
.
SaleRate
==
Convert
.
ToDecimal
(
0.01
))
{
orderModel
.
SaleRate
=
0
;
}
if
(
orderModel
.
SaleRate
+
(
AppointOPInfoList
?.
Sum
(
x
=>
x
.
CommissionRate
)
??
0
)
!=
100
)
{
OrderIdsMsg
+=
orderModel
.
OrderId
+
"、"
;
}
}
if
(!
string
.
IsNullOrEmpty
(
OrderIdsMsg
))
{
return
"订单 "
+
OrderIdsMsg
+
"提成比例未满100%"
;
}
}
foreach
(
var
item
in
list
)
{
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
...
...
@@ -4557,6 +4597,59 @@ namespace REBORN.Module.SellModule
{
return
"订单:"
+
string
.
Join
(
","
,
list
.
Where
(
x
=>
x
.
PlatformMoney
>
0
).
Select
(
x
=>
x
.
OrderId
))
+
"在途金额大于0"
;
}
if
(
list
.
Any
())
{
//查询OP
var
ruleList
=
singleOrder_CommissionRuleRepository
.
GetList
(
new
RB_SingleOrder_CommissionRule_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
});
foreach
(
var
item
in
ruleList
)
{
item
.
RuleList
=
JsonHelper
.
DeserializeObject
<
List
<
SingleOrderRule
>>(
item
.
Content
);
}
var
OPList
=
appointOPRepository
.
GetList
(
new
RB_Appoint_OP_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
,
ResourceType
=
Common
.
Enum
.
ResourceTypeEnum
.
TicketCoupons
,
QOrderIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderId
))
});
string
OrderIdsMsg
=
""
;
foreach
(
var
orderModel
in
list
)
{
var
ruleModel
=
ruleList
.
Where
(
x
=>
(
","
+
x
.
BranchIds
+
","
).
Contains
(
","
+
orderModel
.
EmpBranchId
+
","
)).
FirstOrDefault
();
if
(
ruleModel
==
null
)
{
ruleModel
=
ruleList
.
Where
(
x
=>
x
.
BranchIds
==
""
).
FirstOrDefault
();
}
var
ruleOrderModel
=
ruleModel
.
RuleList
.
Where
(
x
=>
x
.
OrderType
==
4
).
FirstOrDefault
();
if
(
orderModel
.
PlacplaceDeparture
==
2
)
{
ruleOrderModel
=
ruleModel
.
RuleList
.
Where
(
x
=>
x
.
OrderType
==
8
).
FirstOrDefault
();
}
if
(
orderModel
.
SaleRate
<=
0
)
{
orderModel
.
SaleRate
=
ruleOrderModel
?.
SaleRate
??
0
;
}
var
AppointOPInfoList
=
OPList
.
Where
(
x
=>
x
.
OrderId
==
orderModel
.
OrderId
).
ToList
();
if
(
AppointOPInfoList
!=
null
&&
AppointOPInfoList
.
Any
())
{
var
opcList
=
AppointOPInfoList
.
Where
(
x
=>
x
.
OPType
==
0
).
ToList
();
if
(
opcList
.
Any
()
&&
!
opcList
.
Any
(
x
=>
x
.
CommissionRate
>
0
))
{
//赋默认值
opcList
.
FirstOrDefault
().
CommissionRate
=
ruleOrderModel
?.
OPRate
??
0
;
}
var
opvList
=
AppointOPInfoList
.
Where
(
x
=>
x
.
OPType
==
1
).
ToList
();
if
(
opvList
.
Any
()
&&
!
opvList
.
Any
(
x
=>
x
.
CommissionRate
>
0
))
{
//赋默认值
opvList
.
FirstOrDefault
().
CommissionRate
=
ruleOrderModel
?.
VisaRate
??
0
;
}
}
if
(
orderModel
.
SaleRate
==
Convert
.
ToDecimal
(
0.01
))
{
orderModel
.
SaleRate
=
0
;
}
if
(
orderModel
.
SaleRate
+
(
AppointOPInfoList
?.
Sum
(
x
=>
x
.
CommissionRate
)
??
0
)
!=
100
)
{
OrderIdsMsg
+=
orderModel
.
OrderId
+
"、"
;
}
}
if
(!
string
.
IsNullOrEmpty
(
OrderIdsMsg
))
{
return
"订单 "
+
OrderIdsMsg
+
"提成比例未满100%"
;
}
}
foreach
(
var
item
in
list
)
{
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
...
...
@@ -6063,6 +6156,40 @@ namespace REBORN.Module.SellModule
return
"存在审核中财务单据:"
+
string
.
Join
(
","
,
flist
.
Select
(
x
=>
x
.
FrID
));
}
#
region
验证提成比例
var
AppointOPInfoList
=
appointOPRepository
.
GetList
(
new
RB_Appoint_OP_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
,
ResourceType
=
Common
.
Enum
.
ResourceTypeEnum
.
SingleTicket
,
OrderId
=
orderId
});
var
ruleList
=
singleOrder_CommissionRuleRepository
.
GetList
(
new
RB_SingleOrder_CommissionRule_Extend
()
{
RB_Group_Id
=
userInfo
.
RB_Group_id
});
foreach
(
var
item
in
ruleList
)
{
item
.
RuleList
=
JsonHelper
.
DeserializeObject
<
List
<
SingleOrderRule
>>(
item
.
Content
);
}
var
ruleModel
=
ruleList
.
Where
(
x
=>
(
","
+
x
.
BranchIds
+
","
).
Contains
(
","
+
orderModel
.
EmpBranchId
+
","
)).
FirstOrDefault
();
if
(
ruleModel
==
null
)
{
ruleModel
=
ruleList
.
Where
(
x
=>
x
.
BranchIds
==
""
).
FirstOrDefault
();
}
var
ruleOrderModel
=
ruleModel
.
RuleList
.
Where
(
x
=>
x
.
OrderType
==
1
).
FirstOrDefault
();
if
(
orderModel
.
SaleRate
<=
0
)
{
orderModel
.
SaleRate
=
ruleOrderModel
?.
SaleRate
??
0
;
}
if
(
AppointOPInfoList
!=
null
&&
AppointOPInfoList
.
Any
())
{
var
opcList
=
AppointOPInfoList
.
Where
(
x
=>
x
.
OPType
==
0
).
ToList
();
if
(
opcList
.
Any
()
&&
!
opcList
.
Any
(
x
=>
x
.
CommissionRate
>
0
))
{
//赋默认值
opcList
.
FirstOrDefault
().
CommissionRate
=
ruleOrderModel
?.
OPRate
??
0
;
}
}
if
(
orderModel
.
SaleRate
==
Convert
.
ToDecimal
(
0.01
))
{
orderModel
.
SaleRate
=
0
;
}
if
(
orderModel
.
SaleRate
+
(
AppointOPInfoList
?.
Sum
(
x
=>
x
.
CommissionRate
)
??
0
)
!=
100
)
{
return
"订单 "
+
orderModel
.
OrderId
+
"提成比例未满100%"
;
}
#
endregion
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_CRMTicket_Order_Extend
.
OrderStatus
),
(
int
)
CRMOrderStatusEnum
.
Finish
},
{
nameof
(
RB_CRMTicket_Order_Extend
.
FinishTime
),
DateTime
.
Now
},
...
...
REBORN.Services.CommissionService/MergeCommissionService.cs
View file @
dee93da5
...
...
@@ -2681,9 +2681,14 @@ namespace REBORN.Services.CommissionService
{
return
ApiResult
.
ParamIsNull
(
"合计提成比例不能超过100"
);
}
if
(
demodel
.
AppointOPInfoList
.
Where
(
x
=>
x
.
CommissionRate
<=
0
).
Any
())
{
if
(
demodel
.
AppointOPInfoList
.
Where
(
x
=>
x
.
CommissionRate
<
0
).
Any
())
{
return
ApiResult
.
ParamIsNull
(
"存在小于0的提成比例"
);
}
if
(
demodel
.
SaleRate
+
demodel
.
AppointOPInfoList
.
Sum
(
x
=>
x
.
CommissionRate
)
!=
100
)
{
return
ApiResult
.
ParamIsNull
(
"销售OP合计提成比例需等于100,请调整后再试"
);
}
string
msg
=
mergeCommissionModule
.
SetSingleOrderCommissionRate
(
demodel
,
userInfo
);
if
(
msg
==
""
)
{
return
ApiResult
.
Success
();
}
else
{
return
ApiResult
.
Failed
(
msg
);
}
...
...
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