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
93aa47df
Commit
93aa47df
authored
Aug 14, 2020
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
c1bda959
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
206 additions
and
3 deletions
+206
-3
MallIndexStatistics.cs
Mall.Model/Extend/Statistics/MallIndexStatistics.cs
+28
-1
MiniProgramModule.cs
Mall.Module.User/MiniProgramModule.cs
+21
-1
MallStatisticsRepository.cs
Mall.Repository/User/MallStatisticsRepository.cs
+126
-1
TenantController.cs
Mall.WebApi/Controllers/User/TenantController.cs
+31
-0
No files found.
Mall.Model/Extend/Statistics/MallIndexStatistics.cs
View file @
93aa47df
...
...
@@ -100,7 +100,7 @@ namespace Mall.Model.Extend.Statistics
[
Serializable
]
[
DB
(
ConnectionName
=
"DefaultConnection"
)]
public
class
MallSalesGoodsTop
{
{
/// <summary>
/// 排名
/// </summary>
...
...
@@ -155,4 +155,31 @@ namespace Mall.Model.Extend.Statistics
public
int
SaleCount
{
get
;
set
;
}
}
/// <summary>
/// 分销用户统计
/// </summary>
[
Serializable
]
[
DB
(
ConnectionName
=
"DefaultConnection"
)]
public
class
MallDistributorTotal
{
/// <summary>
/// 分销等级
/// </summary>
public
int
FXGradeId
{
get
;
set
;
}
/// <summary>
/// 分销等级名称
/// </summary>
public
string
GradeName
{
get
;
set
;
}
/// <summary>
/// 分销等级用户数量
/// </summary>
public
int
UserCount
{
get
;
set
;
}
/// <summary>
/// 时间
/// </summary>
public
DateTime
TimeStr
{
get
;
set
;
}
}
}
Mall.Module.User/MiniProgramModule.cs
View file @
93aa47df
...
...
@@ -2008,7 +2008,7 @@ namespace Mall.Module.User
var
list
=
mallStatisticsRepository
.
MallIndexSalesStatisticsRepository
(
query
);
List
<
object
>
resultList
=
new
List
<
object
>();
List
<
MallSalesStatistics
>
subList
=
new
List
<
MallSalesStatistics
>();
if
(
query
.
SalesTimeType
==
1
||
query
.
SalesTimeType
==
0
)
if
(
query
.
SalesTimeType
==
1
||
query
.
SalesTimeType
==
0
)
{
for
(
var
i
=
0
;
i
<=
23
;
i
++)
{
...
...
@@ -2074,5 +2074,25 @@ namespace Mall.Module.User
return
mallStatisticsRepository
.
MallIndesSalesUserStatisticsRepository
(
query
);
}
#
endregion
/// <summary>
/// 分销用户总计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public
object
MallDistributorStatisticsModule
(
StatisticsQuery
query
)
{
return
mallStatisticsRepository
.
MallDistributorStatisticsRepository
(
query
);
}
/// <summary>
/// 每日用户统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public
object
MallDistributorDayStatisticsModule
(
StatisticsQuery
query
)
{
return
mallStatisticsRepository
.
MallDistributorDayStatisticsRepository
(
query
);
}
}
}
Mall.Repository/User/MallStatisticsRepository.cs
View file @
93aa47df
...
...
@@ -15,6 +15,11 @@ namespace Mall.Repository.User
/// </summary>
public
class
MallStatisticsRepository
:
BaseRepository
<
MallIndexStatistics
>
{
/// <summary>
/// 获取粉象等级
/// </summary>
private
RB_Distributor_FXGradeRepository
distributor_FXGradeRepository
=
new
RB_Distributor_FXGradeRepository
();
/// <summary>
/// 获取商城的总订单和总用户
/// </summary>
...
...
@@ -170,7 +175,7 @@ WHERE 1=1 AND A.ReOrderStatus IN(2,3,4) ");
selectFileds
=
" SUBSTR(DATE_FORMAT(CreateDate,'%Y%m%d%H'),9,2) AS TimeStr, "
;
groupFileds
=
" GROUP BY DATE_FORMAT(CreateDate,'%Y%m%d%H') "
;
}
else
else
{
selectFileds
=
" DATE_FORMAT(CreateDate,'%Y-%m-%d') AS TimeStr, "
;
groupFileds
=
" GROUP BY DATE_FORMAT(CreateDate,'%Y%m%d') "
;
...
...
@@ -319,5 +324,125 @@ GROUP BY B.UserId,C.`Name`
}
return
list
;
}
/// <summary>
/// 分销用户总计统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public
object
MallDistributorStatisticsRepository
(
StatisticsQuery
query
)
{
var
fxGradeList
=
distributor_FXGradeRepository
.
GetList
(
new
RB_Distributor_FXGrade_Extend
()
{
MallBaseId
=
query
.
MallBaseId
,
TenantId
=
query
.
TenantId
,
Status
=
0
});
string
where
=
""
;
where
+=
string
.
Format
(
" AND A.{0}={1} AND B.{0}={1} AND C.{0}={1} "
,
nameof
(
RB_Distributor_Info
.
TenantId
),
query
.
TenantId
);
where
+=
string
.
Format
(
" AND A.{0}={1} AND B.{0}={1} AND C.{0}={1} "
,
nameof
(
RB_Distributor_Info
.
MallBaseId
),
query
.
MallBaseId
);
StringBuilder
user
=
new
StringBuilder
();
user
.
AppendFormat
(
@"
SELECT B.FXGradeId,C.GradeName,COUNT(1) AS UserCount
FROM rb_member_user AS A LEFT JOIN rb_distributor_info AS B ON A.Id=B.UserId
LEFT JOIN rb_distributor_fxgrade AS C ON B.FXGradeId=C.Grade
WHERE B.`Status`=0 {0}
GROUP By B.FXGradeId,C.GradeName "
,
where
);
//总用户数量
var
tempTotalList
=
Get
<
MallDistributorTotal
>(
user
.
ToString
()).
ToList
();
int
totalUserCount
=
0
;
if
(
tempTotalList
!=
null
&&
tempTotalList
.
Count
>
0
)
{
totalUserCount
=
tempTotalList
.
Sum
(
qitem
=>
qitem
.
UserCount
);
}
StringBuilder
builder
=
new
StringBuilder
();
builder
.
AppendFormat
(
@"
SELECT B.FXGradeId,C.GradeName,COUNT(1) AS UserCount,DATE_FORMAT(A.CreateDate,'%Y-%m-%d') AS TimeStr
FROM rb_member_user AS A LEFT JOIN rb_distributor_info AS B ON A.Id=B.UserId
LEFT JOIN rb_distributor_fxgrade AS C ON B.FXGradeId=C.Grade
WHERE B.`Status`=0 {0} AND DATE_FORMAT(A.CreateDate,'%Y-%m-%d')='{1}'
GROUP By B.FXGradeId,C.GradeName "
,
where
,
DateTime
.
Now
.
ToString
(
"yyyy-MM-dd"
));
//今日用户数量
var
tempTodayList
=
Get
<
MallDistributorTotal
>(
builder
.
ToString
()).
ToList
();
List
<
MallDistributorTotal
>
totalList
=
new
List
<
MallDistributorTotal
>();
List
<
MallDistributorTotal
>
todayList
=
new
List
<
MallDistributorTotal
>();
foreach
(
var
item
in
fxGradeList
)
{
totalList
.
Add
(
new
MallDistributorTotal
()
{
GradeName
=
item
.
GradeName
,
UserCount
=
tempTotalList
?.
Where
(
qitem
=>
qitem
.
FXGradeId
==
item
.
Grade
)?.
FirstOrDefault
()?.
UserCount
??
0
});
todayList
.
Add
(
new
MallDistributorTotal
()
{
GradeName
=
item
.
GradeName
,
UserCount
=
tempTodayList
?.
Where
(
qitem
=>
qitem
.
FXGradeId
==
item
.
Grade
)?.
FirstOrDefault
()?.
UserCount
??
0
});
}
var
obj
=
new
{
totalUserCount
,
totalList
=
totalList
.
Select
(
qitem
=>
new
{
qitem
.
GradeName
,
qitem
.
UserCount
}),
todayList
=
todayList
.
Select
(
qitem
=>
new
{
qitem
.
GradeName
,
qitem
.
UserCount
})
};
return
obj
;
}
/// <summary>
/// 每日用户统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public
object
MallDistributorDayStatisticsRepository
(
StatisticsQuery
query
)
{
string
where
=
""
;
where
+=
string
.
Format
(
" AND A.{0}={1} AND B.{0}={1} AND C.{0}={1} "
,
nameof
(
RB_Distributor_Info
.
TenantId
),
query
.
TenantId
);
where
+=
string
.
Format
(
" AND A.{0}={1} AND B.{0}={1} AND C.{0}={1} "
,
nameof
(
RB_Distributor_Info
.
MallBaseId
),
query
.
MallBaseId
);
//订单来源
if
(
query
.
Source
>
0
)
{
where
+=
string
.
Format
(
" AND A.{0}={1} "
,
nameof
(
RB_Member_User_Extend
.
Source
),
(
int
)
query
.
Source
);
}
//开始时间
if
(
query
.
StartDate
!=
null
&&
!
string
.
IsNullOrWhiteSpace
(
query
.
StartDate
))
{
where
+=
string
.
Format
(
" AND A.{0}>='{1}' "
,
nameof
(
RB_Member_User_Extend
.
CreateDate
),
query
.
StartDate
);
}
//结束时间
if
(
query
.
EndDate
!=
null
&&
!
string
.
IsNullOrWhiteSpace
(
query
.
EndDate
))
{
where
+=
string
.
Format
(
" AND A.{0}<='{1} 23:59:59' "
,
nameof
(
RB_Member_User_Extend
.
CreateDate
),
query
.
EndDate
);
}
StringBuilder
build
=
new
StringBuilder
();
build
.
AppendFormat
(
@"
SELECT B.FXGradeId,C.GradeName,COUNT(1) AS UserCount,DATE_FORMAT(A.CreateDate,'%Y-%m-%d') AS TimeStr
FROM rb_member_user AS A LEFT JOIN rb_distributor_info AS B ON A.Id=B.UserId
LEFT JOIN rb_distributor_fxgrade AS C ON B.FXGradeId=C.Grade
WHERE B.`Status`=0 {0}
GROUP By B.FXGradeId,C.GradeName,DATE_FORMAT(A.CreateDate,'%Y%m%d')
"
,
where
);
List
<
object
>
resultList
=
new
List
<
object
>();
var
list
=
Get
<
MallDistributorTotal
>(
build
.
ToString
()).
ToList
();
if
(
list
!=
null
&&
list
.
Count
>
0
)
{
var
dayList
=
list
.
GroupBy
(
qitem
=>
new
{
qitem
.
TimeStr
}).
Select
(
qitem
=>
new
{
qitem
.
Key
.
TimeStr
});
foreach
(
var
dayItem
in
dayList
)
{
resultList
.
Add
(
new
{
TimeStr
=
Convert
.
ToDateTime
(
dayItem
.
TimeStr
).
ToString
(
"yyyy-MM-dd"
),
Pink
=
list
.
Where
(
qitem
=>
qitem
.
TimeStr
==
dayItem
.
TimeStr
&&
qitem
.
FXGradeId
==
1
)?.
FirstOrDefault
()?.
UserCount
??
0
,
VIP
=
list
.
Where
(
qitem
=>
qitem
.
TimeStr
==
dayItem
.
TimeStr
&&
qitem
.
FXGradeId
==
2
)?.
FirstOrDefault
()?.
UserCount
??
0
,
Silver
=
list
.
Where
(
qitem
=>
qitem
.
TimeStr
==
dayItem
.
TimeStr
&&
qitem
.
FXGradeId
==
3
)?.
FirstOrDefault
()?.
UserCount
??
0
,
Gold
=
list
.
Where
(
qitem
=>
qitem
.
TimeStr
==
dayItem
.
TimeStr
&&
qitem
.
FXGradeId
==
4
)?.
FirstOrDefault
()?.
UserCount
??
0
,
});
};
}
return
resultList
;
}
}
}
Mall.WebApi/Controllers/User/TenantController.cs
View file @
93aa47df
...
...
@@ -1754,5 +1754,36 @@ namespace Mall.WebApi.Controllers.User
return
fileStream
;
}
#
endregion
#
region
分销用户统计
/// <summary>
/// 用户数据统计
/// </summary>
/// <returns></returns>
public
ApiResult
MallDistributorStatistics
()
{
var
query
=
JsonConvert
.
DeserializeObject
<
StatisticsQuery
>(
RequestParm
.
msg
.
ToString
());
query
.
MallBaseId
=
RequestParm
.
MallBaseId
;
query
.
TenantId
=
RequestParm
.
TenantId
;
//用户数据统计
var
basicData
=
programModule
.
MallDistributorStatisticsModule
(
query
);
return
ApiResult
.
Success
(
data
:
basicData
);
}
/// <summary>
/// 每日用户统计
/// </summary>
/// <returns></returns>
public
ApiResult
MallDistributorDayStatistics
()
{
var
query
=
JsonConvert
.
DeserializeObject
<
StatisticsQuery
>(
RequestParm
.
msg
.
ToString
());
query
.
MallBaseId
=
RequestParm
.
MallBaseId
;
query
.
TenantId
=
RequestParm
.
TenantId
;
//每日用户统计
var
basicData
=
programModule
.
MallDistributorDayStatisticsModule
(
query
);
return
ApiResult
.
Success
(
data
:
basicData
);
}
#
endregion
}
}
\ No newline at end of file
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