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
b890eb68
Commit
b890eb68
authored
Aug 04, 2020
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
粉象返佣调整
parent
47f29904
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1410 additions
and
26 deletions
+1410
-26
RB_Vip_Buy.cs
Mall.Model/Entity/User/RB_Vip_Buy.cs
+9
-0
OrderModule.cs
Mall.Module.Product/OrderModule.cs
+161
-2
ProductModule.cs
Mall.Module.Product/ProductModule.cs
+1
-1
UserCommonModule.cs
Mall.Module.User/UserCommonModule.cs
+547
-2
UserModule.cs
Mall.Module.User/UserModule.cs
+348
-1
RB_Vip_BuyRepository.cs
Mall.Repository/User/RB_Vip_BuyRepository.cs
+12
-0
OrderController.cs
Mall.WebApi/Controllers/Product/OrderController.cs
+196
-16
UserController.cs
Mall.WebApi/Controllers/User/UserController.cs
+128
-1
UserVipController.cs
Mall.WebApi/Controllers/User/UserVipController.cs
+7
-2
FinanceModule.cs
Mall.WindowsService/Module/FinanceModule.cs
+1
-1
No files found.
Mall.Model/Entity/User/RB_Vip_Buy.cs
View file @
b890eb68
...
...
@@ -94,5 +94,14 @@ namespace Mall.Model.Entity.User
/// 创建时间
/// </summary>
public
DateTime
CreateDate
{
get
;
set
;
}
/// <summary>
/// 关联订单id
/// </summary>
public
int
?
ReOrderId
{
get
;
set
;
}
/// <summary>
/// 关联订单号
/// </summary>
public
string
ReOrderNum
{
get
;
set
;
}
}
}
Mall.Module.Product/OrderModule.cs
View file @
b890eb68
...
...
@@ -207,9 +207,17 @@ namespace Mall.Module.Product
/// </summary>
private
readonly
RB_Distributor_FXGradeRepository
distributor_FXGradeRepository
=
new
RB_Distributor_FXGradeRepository
();
/// <summary>
/// 推荐供应商返佣
/// </summary>
private
readonly
RB_Goods_OrderIntroductionRepository
goods_OrderIntroductionRepository
=
new
RB_Goods_OrderIntroductionRepository
();
/// <summary>
/// vip购买记录
/// </summary>
private
readonly
RB_Vip_BuyRepository
vip_BuyRepository
=
new
RB_Vip_BuyRepository
();
/// <summary>
/// vip购买返佣
/// </summary>
private
readonly
RB_VipBuy_CommissionRepository
vipBuy_CommissionRepository
=
new
RB_VipBuy_CommissionRepository
();
#
region
购物车
...
...
@@ -1917,7 +1925,7 @@ namespace Mall.Module.Product
};
#
endregion
return
ApiResult
.
Success
(
""
,
Robj
);
}
}
/// <summary>
/// 获取结算页面 快递修改后 快递费用
...
...
@@ -3275,6 +3283,10 @@ namespace Mall.Module.Product
var
DetailList
=
demodel
.
DetailList
.
Where
(
x
=>
x
.
CommissionPrice
>
0
).
ToList
();
foreach
(
var
item
in
DetailList
)
{
if
((
item
.
PresentFXGrade
??
0
)
>
0
)
{
//是赠送VIP等级的 暂直接表示 反购买VIP佣金 2020-08-03 ld
continue
;
}
//返佣
List
<
RB_Goods_OrderCommission
>
gocList
=
new
List
<
RB_Goods_OrderCommission
>();
List
<
FXOrderCommissionNumModel
>
fxNumList
=
new
List
<
FXOrderCommissionNumModel
>();
...
...
@@ -5066,6 +5078,79 @@ namespace Mall.Module.Product
return
list
;
}
/// <summary>
/// 获取推荐分销订单
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public
List
<
RB_Goods_Order_Extend
>
GetDistributionOrdersPageListForRecommend
(
int
pageIndex
,
int
pageSize
,
out
long
count
,
RB_Goods_Order_Extend
demodel
)
{
var
list
=
goods_OrderRepository
.
GetDistributionOrdersPageListForRecommend
(
pageIndex
,
pageSize
,
out
count
,
demodel
);
if
(
list
.
Any
())
{
//查询订单明细
var
dlist
=
goods_OrderDetailRepository
.
GetOrderDetailList
(
new
RB_Goods_OrderDetail_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
OrderIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderId
))
});
//查询图片
List
<
RB_Material_Info_Extend
>
Mlist
=
new
List
<
RB_Material_Info_Extend
>();
if
(
dlist
.
Any
())
{
foreach
(
var
item
in
dlist
)
{
item
.
CoverImagePath
=
item
.
CoverImage
;
}
}
string
areaIds1
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
Province
??
0
).
Distinct
());
string
areaIds2
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
City
??
0
).
Distinct
());
string
areaIds3
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
District
??
0
).
Distinct
());
string
areaIds
=
"0"
;
if
(!
string
.
IsNullOrEmpty
(
areaIds1
))
{
areaIds
+=
","
+
areaIds1
;
}
if
(!
string
.
IsNullOrEmpty
(
areaIds2
))
{
areaIds
+=
","
+
areaIds2
;
}
if
(!
string
.
IsNullOrEmpty
(
areaIds3
))
{
areaIds
+=
","
+
areaIds3
;
}
var
arealist
=
destinationRepository
.
GetDictvalueListForIds
(
areaIds
);
//分销情况
var
oclist
=
goods_OrderIntroductionRepository
.
GetList
(
new
RB_Goods_OrderIntroduction_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
OrderIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderId
))
});
if
(
oclist
.
Any
())
{
//获取用户
var
ulist
=
member_UserRepository
.
GetList
(
new
RB_Member_User_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
UserIds
=
string
.
Join
(
","
,
oclist
.
Select
(
x
=>
x
.
UserId
).
Distinct
())
});
//获取分销商
var
dislist
=
distributor_InfoRepository
.
GetList
(
new
RB_Distributor_Info_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
UserIds
=
string
.
Join
(
","
,
oclist
.
Select
(
x
=>
x
.
UserId
).
Distinct
())
});
foreach
(
var
item
in
oclist
)
{
var
umodel
=
ulist
.
Where
(
x
=>
x
.
Id
==
item
.
UserId
).
FirstOrDefault
();
item
.
UserName
=
umodel
?.
Name
??
""
;
item
.
Mobile
=
umodel
?.
Moblie
??
""
;
item
.
Name
=
dislist
.
Where
(
x
=>
x
.
UserId
==
item
.
UserId
).
FirstOrDefault
()?.
Name
??
""
;
}
}
foreach
(
var
item
in
list
)
{
item
.
DetailList
=
dlist
.
Where
(
x
=>
x
.
OrderId
==
item
.
OrderId
).
ToList
();
string
areaName
=
(
arealist
.
Where
(
x
=>
x
.
ID
==
item
.
Province
).
FirstOrDefault
()?.
Name
??
""
)
+
" "
+
(
arealist
.
Where
(
x
=>
x
.
ID
==
item
.
City
).
FirstOrDefault
()?.
Name
??
""
)
+
" "
+
(
arealist
.
Where
(
x
=>
x
.
ID
==
item
.
District
).
FirstOrDefault
()?.
Name
??
""
);
item
.
ShoppingAddress
=
areaName
+
" "
+
item
.
ShoppingAddress
;
foreach
(
var
qitem
in
item
.
DetailList
)
{
qitem
.
OrderIntroduction
=
oclist
.
Where
(
x
=>
x
.
OrderId
==
item
.
OrderId
&&
x
.
OrderDetailId
==
qitem
.
Id
).
FirstOrDefault
();
}
}
}
return
list
;
}
/// <summary>
/// 获取用户分销订单
/// </summary>
...
...
@@ -7155,7 +7240,7 @@ namespace Mall.Module.Product
DetailList
=
dlist
,
OrderNo
=
orderModel
.
OrderNo
};
InsertPresentFXGrade
(
demodel
,
orderModel
.
UserId
??
0
,
orderModel
.
OrderId
);
//InsertPresentFXGrade(demodel, orderModel.UserId ?? 0, orderModel.OrderId); 2020-08-03 刘东 已在付款时赠送了
}
#
endregion
...
...
@@ -7581,6 +7666,27 @@ namespace Mall.Module.Product
}
}
var
vipList
=
vip_BuyRepository
.
GetVipBuyList
(
new
RB_Vip_Buy_Extend
()
{
TenantId
=
tenantId
,
MallBaseId
=
mallBaseId
,
ReOrderId
=
model
.
OrderId
});
List
<
RB_VipBuy_Commission_Extend
>
clist
=
new
List
<
RB_VipBuy_Commission_Extend
>();
if
(
vipList
.
Any
())
{
string
vipIds
=
string
.
Join
(
","
,
vipList
.
Select
(
x
=>
x
.
Id
));
clist
=
vipBuy_CommissionRepository
.
GetList
(
new
RB_VipBuy_Commission_Extend
()
{
TenantId
=
tenantId
,
MallBaseId
=
mallBaseId
,
OrderIds
=
vipIds
});
var
FXList
=
distributor_FXGradeRepository
.
GetList
(
new
RB_Distributor_FXGrade_Extend
()
{
TenantId
=
tenantId
,
MallBaseId
=
mallBaseId
});
//获取用户
var
ulist
=
new
List
<
RB_Member_User_Extend
>();
if
(
clist
.
Any
())
{
ulist
=
member_UserRepository
.
GetList
(
new
RB_Member_User_Extend
()
{
TenantId
=
tenantId
,
MallBaseId
=
mallBaseId
,
UserIds
=
string
.
Join
(
","
,
clist
.
Select
(
x
=>
x
.
UserId
).
Distinct
())
});
foreach
(
var
qitem
in
clist
)
{
var
fxmodel
=
FXList
.
Where
(
x
=>
x
.
Id
==
qitem
.
Grade
).
FirstOrDefault
();
qitem
.
GradeDescription
=
fxmodel
.
GradeName
;
qitem
.
UserName
=
ulist
.
Where
(
x
=>
x
.
Id
==
qitem
.
UserId
).
FirstOrDefault
()?.
Name
??
""
;
}
}
}
return
ApiResult
.
Success
(
""
,
new
{
model
.
OrderId
,
...
...
@@ -7642,6 +7748,13 @@ namespace Mall.Module.Product
x
.
Mobile
,
x
.
Commission
}),
VipCommissionInfo
=
clist
.
Select
(
x
=>
new
{
x
.
Id
,
x
.
Grade
,
x
.
GradeDescription
,
x
.
UserName
,
x
.
Commission
}),
DetailList
=
model
.
DetailList
.
Select
(
x
=>
new
{
x
.
Id
,
...
...
@@ -8651,6 +8764,52 @@ namespace Mall.Module.Product
#
endregion
#
endregion
#
region
推荐供应商返佣
/// <summary>
/// 获取新增账单选择返佣订单
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public
List
<
RB_Goods_OrderDetail_Extend
>
GetRecommendOrdersCommissionPageList
(
int
pageIndex
,
int
pageSize
,
out
long
count
,
RB_Goods_OrderIntroduction_Extend
demodel
)
{
List
<
RB_Goods_OrderDetail_Extend
>
RList
=
new
List
<
RB_Goods_OrderDetail_Extend
>();
var
list
=
goods_OrderIntroductionRepository
.
GetPageList
(
pageIndex
,
pageSize
,
out
count
,
demodel
);
if
(
list
.
Any
())
{
//获取订单明细
string
DetailIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderDetailId
??
0
));
var
dlist
=
goods_OrderDetailRepository
.
GetOrderDetailList
(
new
RB_Goods_OrderDetail_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
OrderDetailIds
=
DetailIds
});
//获取订单列表
string
OrderIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderId
??
0
));
var
olist
=
goods_OrderRepository
.
GetOrderList
(
new
RB_Goods_Order_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
OrderIds
=
OrderIds
});
//获取用户
var
ulist
=
member_UserRepository
.
GetList
(
new
RB_Member_User_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
UserIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
UserId
).
Distinct
())
});
//获取分销商
var
dislist
=
distributor_InfoRepository
.
GetList
(
new
RB_Distributor_Info_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
UserIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
UserId
).
Distinct
())
});
foreach
(
var
item
in
list
)
{
var
dmodel
=
dlist
.
Where
(
x
=>
x
.
Id
==
item
.
OrderDetailId
).
FirstOrDefault
();
if
(
dmodel
!=
null
)
{
var
umodel
=
ulist
.
Where
(
x
=>
x
.
Id
==
item
.
UserId
).
FirstOrDefault
();
item
.
UserName
=
umodel
?.
Name
??
""
;
item
.
Mobile
=
umodel
?.
Moblie
??
""
;
item
.
Name
=
dislist
.
Where
(
x
=>
x
.
UserId
==
item
.
UserId
).
FirstOrDefault
()?.
Name
??
""
;
var
omodel
=
olist
.
Where
(
x
=>
x
.
OrderId
==
item
.
OrderId
).
FirstOrDefault
();
dmodel
.
OrderNo
=
omodel
?.
OrderNo
??
""
;
dmodel
.
OrderIntroduction
=
item
;
RList
.
Add
(
dmodel
);
}
}
}
return
RList
;
}
#
endregion
#
region
供应商订单商品信息
/// <summary>
/// 获取订单商品分页列表
...
...
Mall.Module.Product/ProductModule.cs
View file @
b890eb68
...
...
@@ -1268,7 +1268,7 @@ namespace Mall.Module.Product
var
disModel
=
distributor_InfoRepository
.
GetList
(
new
RB_Distributor_Info_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
,
UserId
=
UserId
,
AuditStatus
=
Common
.
Enum
.
User
.
DistributorAuditStatusEnum
.
Audited
}).
FirstOrDefault
();
if
(
disModel
!=
null
)
{
if
((
BasicsModel
?.
IsEnableFXGrade
??
2
)
==
1
)
if
((
BasicsModel
?.
IsEnableFXGrade
??
2
)
==
1
&&
(
model
.
PresentFXGrade
??
0
)
==
0
)
{
var
FXList
=
distributor_FXGradeRepository
.
GetList
(
new
RB_Distributor_FXGrade_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
if
(
FXList
.
Any
()
&&
FXList
.
Where
(
x
=>
x
.
IsGuest
==
1
).
Any
())
...
...
Mall.Module.User/UserCommonModule.cs
View file @
b890eb68
...
...
@@ -62,6 +62,10 @@ namespace Mall.Module.User
/// </summary>
private
readonly
RB_VipBuy_CommissionRepository
vipBuy_CommissionRepository
=
new
RB_VipBuy_CommissionRepository
();
/// <summary>
/// vip购买记录
/// </summary>
private
readonly
RB_Vip_BuyRepository
vip_BuyRepository
=
new
RB_Vip_BuyRepository
();
/// <summary>
/// 粉象vip购买返佣金额
/// </summary>
private
readonly
RB_Distributor_FXCommissionRepository
distributor_FXCommissionRepository
=
new
RB_Distributor_FXCommissionRepository
();
...
...
@@ -345,10 +349,12 @@ namespace Mall.Module.User
member_UserRepository
.
Update
(
keyValues1
,
wheres1
);
}
//赠送粉象等级(+VIP返佣) ld 2020-08-03
var
FXCOrder
=
oldOrder
.
RefMapperTo
<
RB_Goods_Order_Extend
>();
FXCOrder
.
DetailList
=
orderGoodsList
;
System
.
Threading
.
Tasks
.
Task
.
Run
(()
=>
InsertPresentFXGradeCommission
(
FXCOrder
,
Out_Trade_No
,
Transaction_Id
,
PayWay
,
oldOrder
.
UserId
??
0
,
oldOrder
.
OrderId
));
//发送订阅消息
string
goodsName
=
orderGoodsList
.
FirstOrDefault
().
GoodsName
;
if
(
orderGoodsList
.
Count
>
1
)
{
...
...
@@ -370,6 +376,544 @@ namespace Mall.Module.User
return
flag
;
}
/// <summary>
/// 测试
/// </summary>
/// <param name="OrderId"></param>
public
void
TestFxGradeCommission
(
int
OrderId
)
{
var
oldOrder
=
goods_OrderRepository
.
GetEntity
<
RB_Goods_Order_Extend
>(
OrderId
);
//获取订单商品
var
orderGoodsList
=
goodsOrderDetailRepository
.
GetOrderDetailList
(
new
RB_Goods_OrderDetail_Extend
{
TenantId
=
oldOrder
.
TenantId
,
MallBaseId
=
oldOrder
.
MallBaseId
,
OrderId
=
oldOrder
.
OrderId
});
oldOrder
.
DetailList
=
orderGoodsList
;
System
.
Threading
.
Tasks
.
Task
.
Run
(()
=>
InsertPresentFXGradeCommission
(
oldOrder
,
oldOrder
.
MerchantsNo
,
""
,
Common
.
Enum
.
Goods
.
OrderPayTypeEnum
.
WeChatPay
,
oldOrder
.
UserId
??
0
,
oldOrder
.
OrderId
));
}
/// <summary>
/// 赠送粉象等级(并返VIP佣金)
/// </summary>
/// <param name="demodel"></param>
/// <param name="umodel"></param>
/// <param name="OrderId"></param>
private
void
InsertPresentFXGradeCommission
(
RB_Goods_Order_Extend
demodel
,
string
Out_Trade_No
,
string
Transaction_Id
,
Common
.
Enum
.
Goods
.
OrderPayTypeEnum
PayWay
,
int
UserId
,
int
OrderId
)
{
var
basicModel
=
distributor_BasicsRepository
.
GetList
(
new
RB_Distributor_Basics_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
}).
FirstOrDefault
();
if
((
basicModel
?.
IsEnableFXGrade
??
2
)
==
1
)
{
var
disModel
=
distributor_InfoRepository
.
GetList
(
new
RB_Distributor_Info_Extend
()
{
UserId
=
UserId
,
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
AuditStatus
=
Common
.
Enum
.
User
.
DistributorAuditStatusEnum
.
Audited
}).
FirstOrDefault
();
if
(
disModel
==
null
)
{
LogHelper
.
Write
(
"该用户分销商等级不存在,UserId:"
+
UserId
);
}
if
(
demodel
.
DetailList
.
Where
(
x
=>
x
.
PresentFXGrade
>
0
).
Any
()
&&
disModel
!=
null
)
{
var
vipblist
=
vip_BuyRepository
.
GetVipBuyList
(
new
RB_Vip_Buy_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
ReOrderId
=
OrderId
});
if
(
vipblist
.
Any
())
{
//已存在返佣记录了
return
;
}
var
FXList
=
distributor_FXGradeRepository
.
GetList
(
new
RB_Distributor_FXGrade_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
});
var
VIPModel
=
FXList
.
Where
(
x
=>
x
.
IsGuest
==
3
).
FirstOrDefault
();
List
<
int
>
GradeList
=
new
List
<
int
>();
//等级列表
int
VIPMonths
=
0
;
//vip赠送月份
int
VIPBuyNum
=
0
;
//vip购买数量 返佣时 需乘以该数量
foreach
(
var
item
in
demodel
.
DetailList
)
{
if
(
item
.
PresentFXGrade
>
0
)
{
//有赠送粉象等级
GradeList
.
Add
(
item
.
PresentFXGrade
??
0
);
if
(
item
.
PresentFXGrade
==
(
VIPModel
?.
Id
??
0
))
{
VIPMonths
+=
(
item
.
PresentFXMonth
??
0
)
*
(
item
.
Number
??
0
);
VIPBuyNum
+=
(
item
.
Number
??
0
);
}
}
}
if
(
GradeList
.
Any
())
{
//判断等级 取最高级别
int
MaxGradeId
=
0
;
int
MaxGrade
=
0
;
if
(
GradeList
.
Distinct
().
Count
()
>
1
)
{
//说明有两种级别 取最高的
foreach
(
var
item
in
GradeList
.
Distinct
())
{
var
fxmodel
=
FXList
.
Where
(
x
=>
x
.
Id
==
item
).
FirstOrDefault
();
MaxGrade
=
(
fxmodel
.
Grade
??
0
)
>
MaxGrade
?
(
fxmodel
.
Grade
??
0
)
:
MaxGrade
;
}
MaxGradeId
=
FXList
.
Where
(
x
=>
x
.
Grade
==
MaxGrade
).
FirstOrDefault
()?.
Id
??
0
;
}
else
{
MaxGradeId
=
GradeList
.
FirstOrDefault
();
var
fxmodel
=
FXList
.
Where
(
x
=>
x
.
Id
==
MaxGradeId
).
FirstOrDefault
();
MaxGrade
=
(
fxmodel
.
Grade
??
0
)
>
MaxGrade
?
(
fxmodel
.
Grade
??
0
)
:
MaxGrade
;
}
var
oldGrade
=
FXList
.
Where
(
x
=>
x
.
Id
==
disModel
.
FXGradeId
).
FirstOrDefault
()?.
Grade
??
0
;
try
{
bool
UpdateGrade
=
false
;
if
(
MaxGradeId
>
0
&&
MaxGrade
>=
oldGrade
&&
MaxGradeId
==
(
VIPModel
?.
Id
??
0
))
{
UpdateGrade
=
true
;
string
MaxGradeName
=
FXList
.
Where
(
x
=>
x
.
Id
==
MaxGradeId
).
FirstOrDefault
()?.
GradeName
??
""
;
//vip
var
VipExpiryDate
=
DateTime
.
Now
.
AddMonths
(
VIPMonths
);
if
(
VIPMonths
>=
1
)
{
VipExpiryDate
=
Convert
.
ToDateTime
(
VipExpiryDate
.
AddDays
(-
1
).
ToString
(
"yyyy-MM-dd 23:59:59"
));
}
if
(
MaxGrade
==
oldGrade
&&
disModel
.
VipExpiryDate
.
HasValue
)
{
if
(
disModel
.
VipExpiryDate
>
DateTime
.
Now
)
{
VipExpiryDate
=
disModel
.
VipExpiryDate
.
Value
.
AddMonths
(
VIPMonths
);
}
}
Dictionary
<
string
,
object
>
keyValues1
=
new
Dictionary
<
string
,
object
>
{
{
nameof
(
RB_Distributor_Info_Extend
.
FXGradeId
),
MaxGradeId
},
{
nameof
(
RB_Distributor_Info_Extend
.
VipExpiryDate
),
VipExpiryDate
}
};
List
<
WhereHelper
>
wheres1
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Distributor_Info_Extend
.
Id
),
FiledValue
=
disModel
.
Id
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
bool
gflag
=
distributor_InfoRepository
.
Update
(
keyValues1
,
wheres1
);
if
(
gflag
)
{
//新增vip赠送记录表
Random
R1
=
new
Random
();
int
Rstr1
=
R1
.
Next
(
111
,
999
);
string
OrderNo1
=
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmssfff"
)
+
Rstr1
;
int
vipBuyId
=
vip_BuyRepository
.
Insert
(
new
Model
.
Entity
.
User
.
RB_Vip_Buy
()
{
CreateDate
=
DateTime
.
Now
,
ExpiryDate
=
VipExpiryDate
,
GradeId
=
MaxGradeId
,
GradeName
=
MaxGradeName
,
Id
=
0
,
MallBaseId
=
demodel
.
MallBaseId
,
MerchantsNo
=
Out_Trade_No
,
Money
=
demodel
.
Income
??
0
,
OrderNo
=
OrderNo1
,
PayState
=
1
,
PayTime
=
DateTime
.
Now
,
PayWay
=
1
,
Remark
=
"下单赠送,订单号:"
+
demodel
.
OrderNo
+
"("
+
OrderId
+
")"
,
Status
=
0
,
TenantId
=
demodel
.
TenantId
,
UserId
=
UserId
,
ReOrderId
=
OrderId
,
ReOrderNum
=
demodel
.
OrderNo
});
if
(
vipBuyId
>
0
)
{
//插入返佣信息
InsertVipBuyCommissionForPresent
(
UserId
,
vipBuyId
,
VIPBuyNum
,
disModel
,
FXList
);
}
}
}
else
if
(
MaxGradeId
>
0
&&
MaxGrade
>
oldGrade
)
{
UpdateGrade
=
true
;
string
MaxGradeName
=
FXList
.
Where
(
x
=>
x
.
Id
==
MaxGradeId
).
FirstOrDefault
()?.
GradeName
??
""
;
//比vip高级
Dictionary
<
string
,
object
>
keyValues1
=
new
Dictionary
<
string
,
object
>
{
{
nameof
(
RB_Distributor_Info_Extend
.
FXGradeId
),
MaxGradeId
}
};
List
<
WhereHelper
>
wheres1
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Distributor_Info_Extend
.
Id
),
FiledValue
=
disModel
.
Id
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
bool
gflag
=
distributor_InfoRepository
.
Update
(
keyValues1
,
wheres1
);
if
(
gflag
)
{
//新增vip赠送记录表
Random
R1
=
new
Random
();
int
Rstr1
=
R1
.
Next
(
111
,
999
);
string
OrderNo1
=
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmssfff"
)
+
Rstr1
;
int
vipBuyId
=
vip_BuyRepository
.
Insert
(
new
Model
.
Entity
.
User
.
RB_Vip_Buy
()
{
CreateDate
=
DateTime
.
Now
,
ExpiryDate
=
null
,
GradeId
=
MaxGradeId
,
GradeName
=
MaxGradeName
,
Id
=
0
,
MallBaseId
=
demodel
.
MallBaseId
,
MerchantsNo
=
Out_Trade_No
,
Money
=
demodel
.
Income
??
0
,
OrderNo
=
OrderNo1
,
PayState
=
1
,
PayTime
=
DateTime
.
Now
,
PayWay
=
1
,
Remark
=
"下单赠送,订单号:"
+
demodel
.
OrderNo
+
"("
+
OrderId
+
")"
,
Status
=
0
,
TenantId
=
demodel
.
TenantId
,
UserId
=
UserId
,
ReOrderId
=
OrderId
,
ReOrderNum
=
demodel
.
OrderNo
});
if
(
vipBuyId
>
0
)
{
//插入返佣信息
InsertVipBuyCommissionForPresent
(
UserId
,
vipBuyId
,
VIPBuyNum
,
disModel
,
FXList
);
}
}
}
else
if
(
MaxGradeId
>
0
)
{
string
MaxGradeName
=
FXList
.
Where
(
x
=>
x
.
Id
==
MaxGradeId
).
FirstOrDefault
()?.
GradeName
??
""
;
//新增vip赠送记录表
Random
R1
=
new
Random
();
int
Rstr1
=
R1
.
Next
(
111
,
999
);
string
OrderNo1
=
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmssfff"
)
+
Rstr1
;
int
vipBuyId
=
vip_BuyRepository
.
Insert
(
new
Model
.
Entity
.
User
.
RB_Vip_Buy
()
{
CreateDate
=
DateTime
.
Now
,
ExpiryDate
=
null
,
GradeId
=
MaxGradeId
,
GradeName
=
MaxGradeName
,
Id
=
0
,
MallBaseId
=
demodel
.
MallBaseId
,
MerchantsNo
=
Out_Trade_No
,
Money
=
demodel
.
Income
??
0
,
OrderNo
=
OrderNo1
,
PayState
=
1
,
PayTime
=
DateTime
.
Now
,
PayWay
=
1
,
Remark
=
"下单赠送,订单号:"
+
demodel
.
OrderNo
+
"("
+
OrderId
+
")"
,
Status
=
0
,
TenantId
=
demodel
.
TenantId
,
UserId
=
UserId
,
ReOrderId
=
OrderId
,
ReOrderNum
=
demodel
.
OrderNo
});
if
(
vipBuyId
>
0
)
{
//插入返佣信息
InsertVipBuyCommissionForPresent
(
UserId
,
vipBuyId
,
VIPBuyNum
,
disModel
,
FXList
);
}
}
if
(
UpdateGrade
)
{
FXAutoUpgradeUserDistributorGrade
(
UserId
,
demodel
.
TenantId
,
demodel
.
MallBaseId
);
}
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"InsertPresentFXGrade赠送粉象分销等级失败,OrderId:"
+
OrderId
);
}
}
}
}
}
/// <summary>
/// 下单赠送VIP返佣
/// </summary>
/// <param name="BuyUserId"></param>
/// <param name="OrderId">Vip订单id</param>
/// <param name="Out_Trade_No"></param>
/// <param name="Transaction_Id"></param>
/// <param name="PayWay"></param>
/// <param name="VIPBuyNum"></param>
/// <param name="VIPBuyId"></param>
/// <param name="disModel"></param>
/// <param name="FXList"></param>
/// <returns></returns>
public
bool
InsertVipBuyCommissionForPresent
(
int
BuyUserId
,
int
OrderId
,
int
VIPBuyNum
,
RB_Distributor_Info_Extend
disModel
,
List
<
RB_Distributor_FXGrade_Extend
>
FXList
)
{
bool
flag
=
false
;
try
{
int
TenantId
=
0
;
int
MallBaseId
=
0
;
var
uModel
=
member_UserRepository
.
GetEntity
(
BuyUserId
);
if
(
uModel
==
null
)
{
return
false
;
}
//判断订单状态是否是待支付
var
model
=
vipBuyRepository
.
GetEntity
(
OrderId
);
if
(
model
==
null
)
{
return
false
;
}
TenantId
=
model
.
TenantId
;
MallBaseId
=
model
.
MallBaseId
;
var
trans
=
vipBuyRepository
.
DbTransaction
;
//粉象等级列表
var
VipModel
=
FXList
.
Where
(
x
=>
x
.
IsGuest
==
3
).
FirstOrDefault
();
if
(
VipModel
==
null
)
{
vipBuyRepository
.
DBSession
.
Rollback
();
return
false
;
}
var
PTModel
=
FXList
.
Where
(
x
=>
x
.
IsGuest
==
1
).
FirstOrDefault
();
if
(
PTModel
==
null
)
{
vipBuyRepository
.
DBSession
.
Rollback
();
return
false
;
}
//vip购买返佣金额列表
var
FXCList
=
distributor_FXCommissionRepository
.
GetFXCommissionList
(
new
RB_Distributor_FXCommission_Extend
()
{
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
if
(
disModel
!=
null
)
{
// 2020-08-03 ld 暂屏蔽 所有人都能购买 反VIP
//if (disModel.FXGradeId != VipModel.Id && disModel.FXGradeId != PTModel.Id)
//{
// vipBuyRepository.DBSession.Rollback();
// return false;
//}
//求其上级
var
pmodel
=
member_UserRepository
.
GetEntity
(
uModel
.
SuperiorId
);
if
(
pmodel
==
null
)
{
vipBuyRepository
.
DBSession
.
Rollback
();
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
)
{
vipBuyRepository
.
DBSession
.
Rollback
();
return
false
;
}
if
(
pfxModel
.
Grade
<
VipModel
.
Grade
)
{
vipBuyRepository
.
DBSession
.
Rollback
();
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
,
AuditStatus
=
Common
.
Enum
.
User
.
DistributorAuditStatusEnum
.
Audited
,
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
())
{
//第一个人 拿直推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
=
"下单赠送VIP"
,
TenantId
=
TenantId
,
Type
=
1
,
UpdateDate
=
DateTime
.
Now
,
UserId
=
UserId
});
Num
++;
UserId
=
numodel
.
SuperiorId
??
0
;
}
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
)
{
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
)
{
if
(
MaxGrade
==
VipModel
.
Id
)
{
var
fxcModel
=
FXCList
.
Where
(
x
=>
x
.
FXGradeId
==
FXGModel
.
Id
&&
x
.
CommissionGradeId
==
MaxGradeId
&&
x
.
GradeType
==
2
).
FirstOrDefault
();
DcommionMoney
=
fxcModel
?.
CommissionPrice
??
0
;
}
else
{
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
=
"下单赠送VIP"
,
TenantId
=
TenantId
,
Type
=
1
,
UpdateDate
=
DateTime
.
Now
,
UserId
=
UserId
});
Num
++;
UserId
=
numodel
.
SuperiorId
??
0
;
}
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
;
}
}
}
}
}
}
if
(
gocList
.
Any
())
{
string
FUserIds
=
string
.
Join
(
","
,
gocList
.
Select
(
x
=>
x
.
UserId
).
Distinct
());
//最后再次查询分销商 便于返佣金
var
fdlist
=
distributor_InfoRepository
.
GetListForSingle
(
new
RB_Distributor_Info_Extend
()
{
UserIds
=
FUserIds
,
AuditStatus
=
Common
.
Enum
.
User
.
DistributorAuditStatusEnum
.
Audited
,
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
});
foreach
(
var
qitem
in
gocList
)
{
if
(
qitem
.
Commission
>
0
)
{
qitem
.
Commission
=
(
qitem
.
Commission
??
0
)
*
VIPBuyNum
;
//乘以购买的份数
flag
=
vipBuy_CommissionRepository
.
Insert
(
qitem
,
trans
)
>
0
;
if
(
flag
)
{
//分销商增加相应的佣金
var
numodel
=
ulist
.
Where
(
x
=>
x
.
Id
==
qitem
.
UserId
).
FirstOrDefault
();
var
fmodel
=
fdlist
.
Where
(
x
=>
x
.
UserId
==
(
numodel
?.
Id
??
0
)).
FirstOrDefault
();
if
(
fmodel
!=
null
)
{
//分销商增加佣金
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Distributor_Info
.
TotalCommission
),(
fmodel
.
TotalCommission
??
0
)+(
qitem
.
Commission
??
0
)},
{
nameof
(
RB_Distributor_Info
.
CommissionWithdrawal
),(
fmodel
.
CommissionWithdrawal
??
0
)+(
qitem
.
Commission
??
0
)},
};
List
<
WhereHelper
>
wheres
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Distributor_Info
.
Id
),
FiledValue
=
fmodel
.
Id
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
distributor_InfoRepository
.
Update
(
keyValues
,
wheres
,
trans
);
}
}
}
}
}
}
}
vipBuyRepository
.
DBSession
.
Commit
();
//购买vip之后 其上级验证 如果满足升级 将自动升级为更高级别的分销商
FXAutoUpgradeUserDistributorGrade
(
BuyUserId
,
TenantId
,
MallBaseId
);
return
true
;
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
"InsertVipBuyCommission2"
);
vipBuyRepository
.
DBSession
.
Rollback
();
return
false
;
}
}
#
region
VIP
购买
/// <summary>
/// 新增vip购买返佣
/// </summary>
...
...
@@ -862,5 +1406,6 @@ namespace Mall.Module.User
return
false
;
}
}
#
endregion
}
}
Mall.Module.User/UserModule.cs
View file @
b890eb68
...
...
@@ -97,6 +97,10 @@ namespace Mall.Module.User
/// </summary>
private
readonly
RB_Goods_OrderRepository
goods_OrderRepository
=
new
RB_Goods_OrderRepository
();
/// <summary>
/// 订单明细
/// </summary>
private
readonly
RB_Goods_OrderDetailRepository
goods_OrderDetailRepository
=
new
RB_Goods_OrderDetailRepository
();
/// <summary>
/// 足迹
/// </summary>
private
readonly
RB_Member_FootmarkRepository
member_FootmarkRepository
=
new
RB_Member_FootmarkRepository
();
...
...
@@ -153,6 +157,22 @@ namespace Mall.Module.User
/// 分销商日志
/// </summary>
private
RB_Distributor_LogRepository
distributor_LogRepository
=
new
RB_Distributor_LogRepository
();
/// <summary>
/// 推荐供应商返佣账单
/// </summary>
private
readonly
RB_Distributor_BillRepository
distributor_BillRepository
=
new
RB_Distributor_BillRepository
();
/// <summary>
/// 推荐供应商返佣账单明细
/// </summary>
private
readonly
RB_Distributor_BillDetailRepository
distributor_BillDetailRepository
=
new
RB_Distributor_BillDetailRepository
();
/// <summary>
/// 推荐供应商返佣
/// </summary>
private
readonly
RB_Goods_OrderIntroductionRepository
goods_OrderIntroductionRepository
=
new
RB_Goods_OrderIntroductionRepository
();
/// <summary>
/// 供应商
/// </summary>
private
readonly
RB_SupplierRepository
supplierRepository
=
new
RB_SupplierRepository
();
...
...
@@ -2400,6 +2420,111 @@ namespace Mall.Module.User
return
flag
;
}
/// <summary>
/// 推荐生成提现单据
/// </summary>
/// <returns></returns>
public
bool
OrderIncomeFinanceModuleForRecommend
(
int
UserId
,
int
BillId
,
List
<
RB_Goods_OrderIntroduction_Extend
>
list
,
int
TenantId
,
int
MallBaseId
)
{
var
flag
=
false
;
try
{
decimal
Money
=
list
.
Sum
(
x
=>
x
.
Commission
??
0
);
//查询用户
var
umodel
=
member_UserRepository
.
GetEntity
(
UserId
);
if
(
umodel
==
null
)
{
return
false
;
}
//查询分销商
var
DisModel
=
distributor_InfoRepository
.
GetList
(
new
RB_Distributor_Info_Extend
()
{
UserId
=
UserId
,
TenantId
=
TenantId
,
MallBaseId
=
MallBaseId
}).
FirstOrDefault
();
if
(
DisModel
==
null
)
{
return
false
;
}
//先查询规则
var
financeConfigurineList
=
financeConfigurineRepository
.
GetList
(
new
Model
.
Extend
.
Finance
.
RB_Finance_Configurine_Extend
{
Type
=
4
});
//根据规则中的小程序,查询订单详情信息
if
(
financeConfigurineList
!=
null
&&
financeConfigurineList
.
Any
())
{
var
item
=
financeConfigurineList
.
FirstOrDefault
();
var
detailList
=
new
List
<
object
>();
var
OrderNoList
=
list
.
Select
(
x
=>
x
.
OrderNo
).
Distinct
().
ToList
();
foreach
(
var
qitem
in
OrderNoList
)
{
var
NoList
=
list
.
Where
(
x
=>
x
.
OrderNo
==
qitem
).
ToList
();
decimal
unitmoney
=
NoList
.
Sum
(
x
=>
x
.
Commission
??
0
);
detailList
.
Add
(
new
{
CostTypeId
=
item
.
RemitCostTypeId
,
Number
=
1
,
OriginalMoney
=
unitmoney
,
UnitPrice
=
unitmoney
,
Remark
=
"订单号:"
+
(
qitem
==
""
?
"暂无"
:
qitem
)
});
}
item
.
IsPublic
=
5
;
//默认平台虚拟账户
var
financeObj
=
new
{
CreateBy
=
Config
.
ExpendDirector
,
item
.
IsPublic
,
ClientType
=
Convert
.
ToInt32
(
new
ConfigurationBuilder
().
Add
(
new
JsonConfigurationSource
{
Path
=
"appsettings.json"
}).
Build
().
GetSection
(
"FinanceSetting"
)[
"RemitTypeId"
]),
ClientID
=
Convert
.
ToInt32
(
new
ConfigurationBuilder
().
Add
(
new
JsonConfigurationSource
{
Path
=
"appsettings.json"
}).
Build
().
GetSection
(
"FinanceSetting"
)[
"RemitAccountId"
]),
item
.
CurrencyId
,
WBMoney
=
Money
,
PayDate
=
DateTime
.
Now
.
ToString
(
"yyyy-MM-dd"
),
RB_Branch_Id
=
Config
.
ExpendBranchId
,
TemplateId
=
item
.
WorkFlowId
,
OrderSource
=
16
,
OtherType
=
18
,
ReFinanceId
=
BillId
,
Remark
=
"名称:"
+
umodel
.
Name
+
"("
+
umodel
.
Id
+
")"
+
" 姓名:"
+
DisModel
.
Name
+
" 手机:"
+
DisModel
.
Mobile
+
" "
+
System
.
DateTime
.
Now
.
ToString
(
"yyyy年MM月dd日"
)
+
"自动生成财务单据"
,
detailList
,
RB_Depart_Id
=
Config
.
ExpendDepartment
};
string
sign
=
EncryptionHelper
.
AesEncrypt
(
JsonHelper
.
Serialize
(
financeObj
),
Config
.
FinanceKey
);
var
resultInfo
=
new
{
msg
=
sign
};
string
apiResult
=
Mall
.
Common
.
Plugin
.
HttpHelper
.
HttpPost
(
Config
.
PaymentFinanceApi
,
JsonHelper
.
Serialize
(
resultInfo
),
""
);
var
apir
=
JsonConvert
.
DeserializeObject
<
ApiResult
>(
apiResult
);
if
(
apir
.
resultCode
==
1
)
{
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Distributor_Bill
.
FinanceId
),
Convert
.
ToInt32
(
apir
.
data
.
ToString
())},
{
nameof
(
RB_Distributor_Bill
.
Remark
),
"自动生成财务单据:"
+
apir
.
data
.
ToString
()},
};
List
<
WhereHelper
>
wheres
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Distributor_Remit
.
Id
),
FiledValue
=
BillId
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
distributor_BillRepository
.
Update
(
keyValues
,
wheres
);
}
else
{
//记录自动生成失败,需手动新增财务单据
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Distributor_Bill
.
Remark
),
"自动生成财务单据失败,请手动添加财务单据!"
},
};
List
<
WhereHelper
>
wheres
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Distributor_Remit
.
Id
),
FiledValue
=
BillId
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
distributor_BillRepository
.
Update
(
keyValues
,
wheres
);
}
}
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
);
}
return
flag
;
}
/// <summary>
/// 设置打款备注
/// </summary>
...
...
@@ -3067,7 +3192,7 @@ namespace Mall.Module.User
{
var
gmodel
=
distributor_FXGradeRepository
.
GetEntity
((
model
.
FXGradeId
??
0
));
GradeName
=
gmodel
?.
GradeName
??
"默认等级"
;
if
(
gmodel
.
IsGuest
==
3
)
if
(
(
gmodel
?.
IsGuest
??
0
)
==
3
)
{
IsVip
=
1
;
}
...
...
@@ -5323,6 +5448,228 @@ namespace Mall.Module.User
#
endregion
#
region
推荐返佣账单
/// <summary>
/// 新增账单
/// </summary>
/// <param name="introductionIdList"></param>
/// <param name="userId"></param>
/// <param name="supplierId"></param>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <returns></returns>
public
bool
SetRecommendOrdersBillInfo
(
List
<
int
>
introductionIdList
,
int
userId
,
int
supplierId
,
int
tenantId
,
int
mallBaseId
,
int
empId
)
{
var
list
=
goods_OrderIntroductionRepository
.
GetList
(
new
RB_Goods_OrderIntroduction_Extend
()
{
TenantId
=
tenantId
,
MallBaseId
=
mallBaseId
,
IntroductionIds
=
string
.
Join
(
","
,
introductionIdList
)
});
if
(
list
.
Any
())
{
if
(
list
.
Where
(
x
=>
x
.
CommissionState
==
1
||
x
.
RemitStatus
==
1
).
Any
())
{
return
false
;
}
string
OrderIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderId
??
0
).
Distinct
());
var
olist
=
goods_OrderRepository
.
GetOrderList
(
new
RB_Goods_Order_Extend
()
{
TenantId
=
tenantId
,
MallBaseId
=
mallBaseId
,
OrderIds
=
OrderIds
});
decimal
totalMoney
=
list
.
Sum
(
x
=>
x
.
Commission
??
0
);
int
BillId
=
distributor_BillRepository
.
Insert
(
new
Model
.
Entity
.
User
.
RB_Distributor_Bill
()
{
BillState
=
1
,
CreateDate
=
DateTime
.
Now
,
EmpId
=
empId
,
Id
=
0
,
MallBaseId
=
mallBaseId
,
Money
=
totalMoney
,
Periods
=
DateTime
.
Now
.
ToString
(
"yyyyMMdd"
),
Remark
=
""
,
Status
=
0
,
SupplierId
=
supplierId
,
TenantId
=
tenantId
,
UpdateDate
=
DateTime
.
Now
,
UserId
=
userId
});
if
(
BillId
>
0
)
{
//新增账单明细
foreach
(
var
item
in
list
)
{
distributor_BillDetailRepository
.
Insert
(
new
Model
.
Entity
.
User
.
RB_Distributor_BillDetail
()
{
BillId
=
BillId
,
CommissionId
=
item
.
Id
,
Id
=
0
,
CreateDate
=
DateTime
.
Now
,
MallBaseId
=
mallBaseId
,
OrderDetailId
=
item
.
OrderDetailId
,
OrderId
=
item
.
OrderId
,
Status
=
0
,
TenantId
=
tenantId
,
UpdateDate
=
DateTime
.
Now
});
//更新返佣订单的佣金打款状态
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Goods_OrderIntroduction_Extend
.
RemitStatus
),
1
}
};
List
<
WhereHelper
>
wheres
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Goods_OrderIntroduction_Extend
.
Id
),
FiledValue
=
item
.
Id
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
goods_OrderIntroductionRepository
.
Update
(
keyValues
,
wheres
);
item
.
OrderNo
=
olist
.
Where
(
x
=>
x
.
OrderId
==
item
.
OrderId
).
FirstOrDefault
()?.
OrderNo
??
""
;
}
if
(
tenantId
==
1
)
{
//新增财务单据
OrderIncomeFinanceModuleForRecommend
(
userId
,
BillId
,
list
,
tenantId
,
mallBaseId
);
}
return
true
;
}
return
false
;
}
else
{
return
false
;
}
}
/// <summary>
/// 获取账单列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public
List
<
RB_Distributor_Bill_Extend
>
GetRecommendOrdersBillPageList
(
int
pageIndex
,
int
pageSize
,
out
long
count
,
RB_Distributor_Bill_Extend
demodel
)
{
var
list
=
distributor_BillRepository
.
GetPageList
(
pageIndex
,
pageSize
,
out
count
,
demodel
);
if
(
list
.
Any
())
{
//查询用户
string
userIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
UserId
??
0
));
var
ulist
=
member_UserRepository
.
GetList
(
new
RB_Member_User_Extend
()
{
UserIds
=
userIds
});
//查询供应商
List
<
RB_Supplier_Extend
>
supplierList
=
new
List
<
RB_Supplier_Extend
>();
if
(
list
.
Where
(
x
=>
x
.
SupplierId
>
0
).
Any
())
{
string
supplierIds
=
string
.
Join
(
","
,
list
.
Where
(
x
=>
x
.
SupplierId
>
0
).
Select
(
x
=>
x
.
SupplierId
));
supplierList
=
supplierRepository
.
GetList
(
new
RB_Supplier_Extend
()
{
SupplierIds
=
supplierIds
});
}
foreach
(
var
item
in
list
)
{
item
.
UserName
=
ulist
.
Where
(
x
=>
x
.
Id
==
item
.
UserId
).
FirstOrDefault
()?.
Name
??
""
;
item
.
SupplierName
=
supplierList
.
Where
(
x
=>
x
.
ID
==
item
.
SupplierId
).
FirstOrDefault
()?.
Name
??
""
;
}
}
return
list
;
}
/// <summary>
/// 获取账单明细列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="demodel"></param>
/// <returns></returns>
public
object
GetRecommendOrdersBillDetailList
(
RB_Distributor_BillDetail_Extend
demodel
)
{
var
bmodel
=
distributor_BillRepository
.
GetEntity
(
demodel
.
BillId
);
//获取用户 获取供应商
var
umodel
=
member_UserRepository
.
GetEntity
(
bmodel
?.
UserId
??
0
);
var
smodel
=
supplierRepository
.
GetEntity
(
bmodel
?.
SupplierId
??
0
);
List
<
object
>
RList
=
new
List
<
object
>();
var
list
=
distributor_BillDetailRepository
.
GetList
(
new
RB_Distributor_BillDetail_Extend
()
{
BillId
=
demodel
.
BillId
,
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
});
if
(
list
.
Any
())
{
//获取订单明细
string
DetailIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderDetailId
??
0
));
var
dlist
=
goods_OrderDetailRepository
.
GetOrderDetailList
(
new
RB_Goods_OrderDetail_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
OrderDetailIds
=
DetailIds
});
//获取订单列表
string
OrderIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
OrderId
??
0
));
var
olist
=
goods_OrderRepository
.
GetOrderList
(
new
RB_Goods_Order_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
OrderIds
=
OrderIds
});
//获取推荐返佣
string
IntroductionIds
=
string
.
Join
(
","
,
list
.
Select
(
x
=>
x
.
CommissionId
??
0
));
var
introductionlist
=
goods_OrderIntroductionRepository
.
GetList
(
new
RB_Goods_OrderIntroduction_Extend
()
{
TenantId
=
demodel
.
TenantId
,
MallBaseId
=
demodel
.
MallBaseId
,
IntroductionIds
=
IntroductionIds
});
decimal
TotalMoney
=
introductionlist
.
Sum
(
x
=>
x
.
Commission
??
0
);
foreach
(
var
item
in
introductionlist
)
{
var
dmodel
=
dlist
.
Where
(
x
=>
x
.
Id
==
item
.
OrderDetailId
).
FirstOrDefault
();
if
(
dmodel
!=
null
)
{
var
omodel
=
olist
.
Where
(
x
=>
x
.
OrderId
==
item
.
OrderId
).
FirstOrDefault
();
dmodel
.
OrderNo
=
omodel
?.
OrderNo
??
""
;
var
model
=
new
{
dmodel
.
OrderId
,
dmodel
.
OrderNo
,
dmodel
.
Id
,
dmodel
.
CoverImage
,
dmodel
.
GoodsName
,
SpecificationList
=
JsonConvert
.
DeserializeObject
<
List
<
string
>>(
dmodel
.
Specification
),
dmodel
.
ProductCode
,
dmodel
.
Final_Price
,
dmodel
.
Number
,
OrderIntroduction
=
new
{
IntroductionId
=
item
.
Id
,
UserName
=
item
.
UserName
??
""
,
Name
=
item
.
Name
??
""
,
Commission
=
item
.
Commission
??
0
,
CommissionState
=
item
.
CommissionState
??
1
,
}
};
RList
.
Add
(
model
);
}
}
return
new
{
TotalMoney
,
UserName
=
umodel
.
Name
,
SupplierName
=
smodel
.
Name
,
RList
};
}
return
new
{
TotalMoney
=
0
,
UserName
=
umodel
.
Name
,
SupplierName
=
smodel
.
Name
,
RList
};
}
/// <summary>
/// 取消账单
/// </summary>
/// <param name="billId"></param>
/// <param name="tenantId"></param>
/// <param name="mallBaseId"></param>
/// <param name="empId"></param>
/// <returns></returns>
public
bool
CancalRecommendOrdersBill
(
int
billId
,
int
tenantId
,
int
mallBaseId
,
int
empId
)
{
Dictionary
<
string
,
object
>
keyValues
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Distributor_Bill
.
BillState
),
3
},
{
nameof
(
RB_Distributor_Bill
.
EmpId
),
empId
},
{
nameof
(
RB_Distributor_Bill
.
UpdateDate
),
DateTime
.
Now
}
};
List
<
WhereHelper
>
wheres
=
new
List
<
WhereHelper
>()
{
new
WhereHelper
(){
FiledName
=
nameof
(
RB_Distributor_Bill
.
Id
),
FiledValue
=
billId
,
OperatorEnum
=
OperatorEnum
.
Equal
}
};
bool
flag
=
distributor_BillRepository
.
Update
(
keyValues
,
wheres
);
if
(
flag
)
{
//回滚 订单返佣状态
}
return
flag
;
}
#
endregion
#
region
会员购买
/// <summary>
...
...
Mall.Repository/User/RB_Vip_BuyRepository.cs
View file @
b890eb68
...
...
@@ -81,6 +81,10 @@ namespace Mall.Repository.User
{
builder
.
Append
(
$" AND
{
nameof
(
RB_Vip_Buy_Extend
.
UserId
)}
=
{
query
.
UserId
}
"
);
}
if
(
query
.
ReOrderId
>
0
)
{
builder
.
Append
(
$" AND
{
nameof
(
RB_Vip_Buy_Extend
.
ReOrderId
)}
=
{
query
.
ReOrderId
}
"
);
}
}
return
Get
<
RB_Vip_Buy_Extend
>(
builder
.
ToString
()).
ToList
();
}
...
...
@@ -127,6 +131,14 @@ WHERE a.{nameof(RB_Vip_Buy_Extend.Status)}=0 ");
{
builder
.
Append
(
$" AND a.
{
nameof
(
RB_Vip_Buy_Extend
.
OrderNo
)}
like '%
{
query
.
OrderNo
}
%'"
);
}
if
(
query
.
ReOrderId
>
0
)
{
builder
.
Append
(
$" AND a.
{
nameof
(
RB_Vip_Buy_Extend
.
ReOrderId
)}
=
{
query
.
ReOrderId
}
"
);
}
if
(!
string
.
IsNullOrEmpty
(
query
.
ReOrderNum
))
{
builder
.
Append
(
$" AND a.
{
nameof
(
RB_Vip_Buy_Extend
.
ReOrderNum
)}
like '%
{
query
.
ReOrderNum
}
%'"
);
}
}
builder
.
Append
(
$@" group by a.Id order by a.Id desc"
);
return
GetPage
<
RB_Vip_Buy_Extend
>(
pageIndex
,
pageSize
,
out
rowCount
,
builder
.
ToString
()).
ToList
();
...
...
Mall.WebApi/Controllers/Product/OrderController.cs
View file @
b890eb68
...
...
@@ -1557,7 +1557,7 @@ namespace Mall.WebApi.Controllers.MallBase
/// <summary>
/// 分销订单后台分页列表
///
推荐
分销订单后台分页列表
/// </summary>
/// <returns></returns>
[
HttpPost
]
...
...
@@ -1570,7 +1570,7 @@ namespace Mall.WebApi.Controllers.MallBase
demodel
.
TenantId
=
parms
.
TenantId
;
demodel
.
MallBaseId
=
parms
.
MallBaseId
;
demodel
.
Recycled
=
2
;
var
list
=
orderModule
.
GetDistributionOrdersPageList
(
pagelist
.
pageIndex
,
pagelist
.
pageSize
,
out
long
count
,
demodel
);
var
list
=
orderModule
.
GetDistributionOrdersPageList
ForRecommend
(
pagelist
.
pageIndex
,
pagelist
.
pageSize
,
out
long
count
,
demodel
);
pagelist
.
count
=
Convert
.
ToInt32
(
count
);
pagelist
.
pageData
=
list
.
Select
(
x
=>
new
{
...
...
@@ -1599,7 +1599,15 @@ namespace Mall.WebApi.Controllers.MallBase
SpecificationList
=
JsonConvert
.
DeserializeObject
<
List
<
string
>>(
y
.
Specification
),
y
.
ProductCode
,
y
.
Final_Price
,
y
.
Number
y
.
Number
,
OrderIntroduction
=
new
{
Id
=
y
.
OrderIntroduction
?.
Id
??
0
,
UserName
=
y
.
OrderIntroduction
?.
UserName
??
""
,
Name
=
y
.
OrderIntroduction
?.
Name
??
""
,
Commission
=
y
.
OrderIntroduction
?.
Commission
??
0
,
CommissionState
=
y
.
OrderIntroduction
?.
CommissionState
??
1
,
}
}),
x
.
Consignee
,
x
.
Mobile
,
...
...
@@ -1611,19 +1619,6 @@ namespace Mall.WebApi.Controllers.MallBase
PaymentTime
=
x
.
PaymentTime
.
HasValue
?
x
.
PaymentTime
.
Value
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)
:
""
,
DeliveryTime
=
x
.
DeliveryTime
.
HasValue
?
x
.
DeliveryTime
.
Value
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)
:
""
,
ReceivingTime
=
x
.
ReceivingTime
.
HasValue
?
x
.
ReceivingTime
.
Value
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)
:
""
,
x
.
IsOrderCommission
,
OrderCommissionList
=
x
.
OrderCommissionList
.
Select
(
z
=>
new
{
z
.
Id
,
z
.
Grade
,
z
.
GradeDescription
,
z
.
UserId
,
z
.
UserName
,
z
.
Mobile
,
z
.
Name
,
z
.
Commission
,
z
.
CommissionState
}),
x
.
TenantId
,
x
.
MallBaseId
,
CreateDate
=
x
.
CreateDate
.
HasValue
?
x
.
CreateDate
.
Value
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)
:
""
...
...
@@ -1631,6 +1626,191 @@ namespace Mall.WebApi.Controllers.MallBase
return
ApiResult
.
Success
(
""
,
pagelist
);
}
/// <summary>
/// 获取推荐分销订单导出选项列表
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetDistributionOrdersExportEnumListForRecommend
()
{
var
list
=
EnumHelper
.
GetEnumList
(
typeof
(
DistributionOrdersExportForRecommendEnum
));
return
ApiResult
.
Success
(
""
,
list
.
Select
(
x
=>
new
{
Name
=
x
.
Key
,
Id
=
Convert
.
ToInt32
(
x
.
Value
)
}));
}
/// <summary>
/// 推荐分销订单Excel下载
/// </summary>
[
HttpPost
]
public
FileContentResult
GetDistributionOrdersToExcelForRecommend
()
{
var
parms
=
RequestParm
;
RB_Goods_Order_Extend
demodel
=
JsonConvert
.
DeserializeObject
<
RB_Goods_Order_Extend
>(
parms
.
msg
.
ToString
());
string
ExcelName
=
"推荐返利订单"
+
DateTime
.
Now
.
ToString
(
"yyyyMMddHHmmss"
)
+
".xls"
;
List
<
ExcelDataSource
>
slist
=
new
List
<
ExcelDataSource
>();
if
(
demodel
.
ExcelEnumIds
==
null
||
!
demodel
.
ExcelEnumIds
.
Any
())
{
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
ExcelName
);
}
var
Enumlist
=
EnumHelper
.
GetEnumList
(
typeof
(
DistributionOrdersExportForRecommendEnum
));
ExcelDataSource
header
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
"序号"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
}
}
};
foreach
(
var
item
in
demodel
.
ExcelEnumIds
)
{
var
Name
=
Enumlist
.
Where
(
x
=>
x
.
Value
==
item
.
ToString
()).
FirstOrDefault
().
Key
??
""
;
header
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
Name
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
});
}
slist
.
Add
(
header
);
try
{
demodel
.
TenantId
=
Convert
.
ToInt32
(
parms
.
uid
);
demodel
.
MallBaseId
=
parms
.
MallBaseId
;
var
list
=
orderModule
.
GetDistributionOrdersPageListForRecommend
(
1
,
10000
,
out
long
count
,
demodel
);
#
region
组装数据
int
Num
=
0
;
foreach
(
var
item
in
list
)
{
foreach
(
var
item2
in
item
.
DetailList
)
{
Num
++;
ExcelDataSource
datarow
=
new
ExcelDataSource
()
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
Num
.
ToString
()){
},
},
ColumnHight
=
30
};
foreach
(
var
qitem
in
demodel
.
ExcelEnumIds
)
{
switch
(
qitem
)
{
case
1
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
OrderSource
.
GetEnumName
())
{
});
break
;
case
2
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
OrderNo
)
{
});
break
;
case
3
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
MerchantsNo
)
{
});
break
;
case
4
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
UserName
)
{
});
break
;
case
5
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item2
.
GoodsName
)
{
});
break
;
case
6
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item2
.
Specification
)
{
});
break
;
case
7
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item2
.
Number
??
0
).
ToString
())
{
});
break
;
case
8
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item2
.
ProductCode
)
{
});
break
;
case
10
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Consignee
)
{
});
break
;
case
11
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Mobile
)
{
});
break
;
case
12
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
ShoppingAddress
)
{
});
break
;
case
13
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item2
.
Original_Price
??
0
).
ToString
())
{
});
break
;
case
14
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item2
.
Final_Price
??
0
).
ToString
())
{
});
break
;
case
16
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
CreateDate
.
Value
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
))
{
});
break
;
case
17
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
OrderStatus
.
GetEnumName
())
{
});
break
;
case
18
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
PaymentWay
.
GetEnumName
())
{
});
break
;
case
19
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
OrderStatus
>
OrderStatusEnum
.
NonPayment
?
"已付款"
:
"未付款"
)
{
});
break
;
case
20
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
PaymentTime
.
HasValue
?
item
.
PaymentTime
.
Value
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)
:
""
)
{
});
break
;
case
21
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
Remark
)
{
});
break
;
case
22
:
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
BuyerMessage
)
{
});
break
;
}
}
if
(
item2
.
OrderIntroduction
!=
null
)
{
string
UserName
=
$"昵称:
{
item2
.
OrderIntroduction
.
UserName
}
,姓名:
{
item2
.
OrderIntroduction
.
Name
}
,手机号:
{
item2
.
OrderIntroduction
.
Mobile
}
"
;
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
UserName
)
{
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item2
.
OrderIntroduction
.
Commission
??
0
).
ToString
())
{
});
slist
.
Add
(
datarow
);
}
else
{
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
""
)
{
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
""
)
{
});
slist
.
Add
(
datarow
);
}
}
}
#
endregion
var
byteData
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData
,
"application/octet-stream"
,
ExcelName
);
}
catch
(
Exception
ex
)
{
LogHelper
.
Write
(
ex
,
string
.
Format
(
"GetFileFromWebApi_requestData: {0}"
,
JsonHelper
.
Serialize
(
RequestParm
)));
var
byteData1
=
ExcelTempLateHelper
.
ToExcelExtend
(
slist
);
return
File
(
byteData1
,
"application/octet-stream"
,
ExcelName
);
}
}
#
endregion
#
region
推荐供应商
/// <summary>
/// 推荐分销订单佣金分页列表
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetRecommendOrdersCommissionPageList
()
{
var
parms
=
RequestParm
;
ResultPageModel
pagelist
=
JsonConvert
.
DeserializeObject
<
ResultPageModel
>(
parms
.
msg
.
ToString
());
RB_Goods_OrderIntroduction_Extend
demodel
=
JsonConvert
.
DeserializeObject
<
RB_Goods_OrderIntroduction_Extend
>(
parms
.
msg
.
ToString
());
demodel
.
TenantId
=
parms
.
TenantId
;
demodel
.
MallBaseId
=
parms
.
MallBaseId
;
if
((
demodel
.
UserId
??
0
)
<=
0
)
{
return
ApiResult
.
Failed
(
"请选择用户id"
);
}
var
list
=
orderModule
.
GetRecommendOrdersCommissionPageList
(
pagelist
.
pageIndex
,
pagelist
.
pageSize
,
out
long
count
,
demodel
);
pagelist
.
count
=
Convert
.
ToInt32
(
count
);
pagelist
.
pageData
=
list
.
Select
(
y
=>
new
{
y
.
OrderId
,
y
.
OrderNo
,
y
.
Id
,
y
.
CoverImage
,
y
.
GoodsName
,
SpecificationList
=
JsonConvert
.
DeserializeObject
<
List
<
string
>>(
y
.
Specification
),
y
.
ProductCode
,
y
.
Final_Price
,
y
.
Number
,
OrderIntroduction
=
new
{
IntroductionId
=
y
.
OrderIntroduction
?.
Id
??
0
,
UserName
=
y
.
OrderIntroduction
?.
UserName
??
""
,
Name
=
y
.
OrderIntroduction
?.
Name
??
""
,
Commission
=
y
.
OrderIntroduction
?.
Commission
??
0
,
CommissionState
=
y
.
OrderIntroduction
?.
CommissionState
??
1
,
}
});
return
ApiResult
.
Success
(
""
,
pagelist
);
}
#
endregion
#
region
售后订单
...
...
Mall.WebApi/Controllers/User/UserController.cs
View file @
b890eb68
...
...
@@ -2621,7 +2621,7 @@ namespace Mall.WebApi.Controllers.User
if
(
UserId
<=
0
)
{
return
ApiResult
.
ParamIsNull
();
}
}
var
obj
=
userModule
.
GetHpUserDistributorInfo
(
UserId
,
req
.
TenantId
,
req
.
MallBaseId
);
return
ApiResult
.
Success
(
""
,
obj
);
...
...
@@ -2871,9 +2871,136 @@ namespace Mall.WebApi.Controllers.User
#
endregion
#
region
推荐返佣账单
/// <summary>
/// 获取账单列表
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetRecommendOrdersBillPageList
()
{
var
parms
=
RequestParm
;
ResultPageModel
pagelist
=
JsonConvert
.
DeserializeObject
<
ResultPageModel
>(
parms
.
msg
.
ToString
());
RB_Distributor_Bill_Extend
demodel
=
JsonConvert
.
DeserializeObject
<
RB_Distributor_Bill_Extend
>(
parms
.
msg
.
ToString
());
demodel
.
TenantId
=
parms
.
TenantId
;
demodel
.
MallBaseId
=
parms
.
MallBaseId
;
var
list
=
userModule
.
GetRecommendOrdersBillPageList
(
pagelist
.
pageIndex
,
pagelist
.
pageSize
,
out
long
count
,
demodel
);
pagelist
.
count
=
Convert
.
ToInt32
(
count
);
pagelist
.
pageData
=
list
.
Select
(
x
=>
new
{
x
.
Id
,
x
.
BillState
,
x
.
Money
,
x
.
Periods
,
x
.
Remark
,
x
.
SupplierId
,
x
.
SupplierName
,
x
.
UserId
,
x
.
UserName
,
UpdateDate
=
x
.
UpdateDate
.
HasValue
?
x
.
UpdateDate
.
Value
.
ToString
(
"yyyy-MM-dd"
)
:
""
});
return
ApiResult
.
Success
(
""
,
pagelist
);
}
/// <summary>
/// 新增账单
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
SetRecommendOrdersBillInfo
()
{
var
req
=
RequestParm
;
JObject
parms
=
JObject
.
Parse
(
req
.
msg
.
ToString
());
string
IntroductionIds
=
parms
.
GetStringValue
(
"IntroductionIds"
);
int
UserId
=
parms
.
GetInt
(
"UserId"
,
0
);
int
SupplierId
=
parms
.
GetInt
(
"SupplierId"
,
0
);
if
(
string
.
IsNullOrEmpty
(
IntroductionIds
))
{
return
ApiResult
.
ParamIsNull
(
"请选择返佣订单"
);
}
List
<
int
>
IntroductionIdList
=
JsonConvert
.
DeserializeObject
<
List
<
int
>>(
IntroductionIds
);
if
(!
IntroductionIdList
.
Any
())
{
return
ApiResult
.
ParamIsNull
(
"请选择返佣订单"
);
}
if
(
UserId
<=
0
)
{
return
ApiResult
.
ParamIsNull
(
"请选择用户"
);
}
bool
flag
=
userModule
.
SetRecommendOrdersBillInfo
(
IntroductionIdList
,
UserId
,
SupplierId
,
req
.
TenantId
,
req
.
MallBaseId
,
req
.
EmpId
);
if
(
flag
)
{
return
ApiResult
.
Success
();
}
else
{
return
ApiResult
.
Failed
();
}
}
/// <summary>
/// 账单取消
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
CancalRecommendOrdersBill
()
{
var
req
=
RequestParm
;
var
parms
=
JObject
.
Parse
(
req
.
msg
.
ToString
());
int
BillId
=
parms
.
GetInt
(
"BillId"
,
0
);
if
(
BillId
<=
0
)
{
return
ApiResult
.
ParamIsNull
();
}
bool
flag
=
userModule
.
CancalRecommendOrdersBill
(
BillId
,
req
.
TenantId
,
req
.
MallBaseId
,
req
.
EmpId
);
if
(
flag
)
{
return
ApiResult
.
Success
();
}
else
{
return
ApiResult
.
Failed
();
}
}
/// <summary>
/// 获取账单明细
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetRecommendOrdersBillDetailList
()
{
var
parms
=
RequestParm
;
RB_Distributor_BillDetail_Extend
demodel
=
JsonConvert
.
DeserializeObject
<
RB_Distributor_BillDetail_Extend
>(
parms
.
msg
.
ToString
());
demodel
.
TenantId
=
parms
.
TenantId
;
demodel
.
MallBaseId
=
parms
.
MallBaseId
;
if
((
demodel
.
BillId
??
0
)
<=
0
)
{
return
ApiResult
.
ParamIsNull
(
"请传递账单id"
);
}
var
Robj
=
userModule
.
GetRecommendOrdersBillDetailList
(
demodel
);
return
ApiResult
.
Success
(
""
,
Robj
);
}
#
endregion
#
region
粉象返佣金额设置
/// <summary>
/// 初始化 赠送粉象vip返佣
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
InitializeFXVIPCommission
()
{
var
req
=
RequestParm
;
JObject
parms
=
JObject
.
Parse
(
req
.
msg
.
ToString
());
int
OrderId
=
parms
.
GetInt
(
"OrderId"
,
0
);
if
(
OrderId
<=
0
)
{
return
ApiResult
.
ParamIsNull
(
"请传递参数"
);
}
new
UserCommonModule
().
TestFxGradeCommission
(
OrderId
);
return
ApiResult
.
Success
();
}
/// <summary>
/// 获取粉象分销返佣信息列表
/// </summary>
...
...
Mall.WebApi/Controllers/User/UserVipController.cs
View file @
b890eb68
...
...
@@ -169,6 +169,9 @@ namespace Mall.WebApi.Controllers.User
x
.
Money
,
x
.
GradeName
,
x
.
UserId
,
x
.
Remark
,
x
.
ReOrderId
,
x
.
ReOrderNum
,
PayTimeStr
=
x
.
PayTime
.
HasValue
?
x
.
PayTime
.
Value
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)
:
""
,
CommissionList
=
x
.
CommissionList
.
Select
(
z
=>
new
{
...
...
@@ -199,12 +202,13 @@ namespace Mall.WebApi.Controllers.User
{
ExcelRows
=
new
List
<
ExcelColumn
>(
30
)
{
new
ExcelColumn
(
value
:
"序号"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"
订单号"
)
{
CellWidth
=
25
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"
购买单号"
)
{
CellWidth
=
25
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"用户Id"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"用户名称"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"购买金额"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"等级名称"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"购买时间"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"关联订单号"
)
{
CellWidth
=
25
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"返利级别"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"昵称"
)
{
CellWidth
=
25
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
new
ExcelColumn
(
value
:
"佣金"
)
{
CellWidth
=
15
,
HAlignmentEnum
=
HAlignmentEnum
.
CENTER
,
VAlignmentEnum
=
VAlignmentEnum
.
CENTER
},
...
...
@@ -232,12 +236,13 @@ namespace Mall.WebApi.Controllers.User
ColumnHight
=
30
};
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
OrderNo
)
{
Rowspan
=
OCCount
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
OrderNo
)
{
Rowspan
=
OCCount
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
UserId
.
ToString
())
{
Rowspan
=
OCCount
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
UserName
)
{
Rowspan
=
OCCount
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
(
item
.
Money
).
ToString
())
{
Rowspan
=
OCCount
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
GradeName
)
{
Rowspan
=
OCCount
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
PayTime
.
HasValue
?
item
.
PayTime
.
Value
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)
:
""
)
{
Rowspan
=
OCCount
});
datarow
.
ExcelRows
.
Add
(
new
ExcelColumn
(
value
:
item
.
ReOrderNum
??
""
)
{
Rowspan
=
OCCount
});
bool
IsOCFirst
=
true
;
if
(
item
.
CommissionList
.
Any
())
...
...
Mall.WindowsService/Module/FinanceModule.cs
View file @
b890eb68
...
...
@@ -845,7 +845,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
DetailList
=
dlist
,
OrderNo
=
orderModel
.
OrderNo
};
InsertPresentFXGrade
(
demodel
,
orderModel
.
UserId
??
0
,
orderModel
.
OrderId
);
//InsertPresentFXGrade(demodel, orderModel.UserId ?? 0, orderModel.OrderId); 2020-08-03 ld 赠送设置为 订单付款后了
}
#
endregion
}
...
...
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