Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
82522963
authored
Sep 11, 2025
by
Jony.L
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
首页统计1.0
parent
d74be380
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
524 additions
and
0 deletions
+524
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apicalllog/ApiCallLogMapper.java
+11
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiorder/ApiOrderMapper.java
+14
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicalllog/ApiCallLogService.java
+7
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicalllog/ApiCallLogServiceImpl.java
+6
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderService.java
+8
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
+5
-0
computility-module-biz/pom.xml
+12
-0
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/home/HomeIndexController.java
+60
-0
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/home/vo/HomeIndexApiCallsRespVO.java
+17
-0
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/home/vo/HomeIndexOrdersCountRespVO.java
+27
-0
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/home/vo/HomeIndexUsersCountRespVO.java
+14
-0
computility-module-biz/src/main/java/com/luhu/computility/module/biz/service/home/HomeIndexService.java
+22
-0
computility-module-biz/src/main/java/com/luhu/computility/module/biz/service/home/HomeIndexServiceImpl.java
+269
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/dal/mysql/order/TradeOrderMapper.java
+16
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/service/order/TradeOrderQueryService.java
+8
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/service/order/TradeOrderQueryServiceImpl.java
+5
-0
computility-module-member/src/main/java/com/luhu/computility/module/member/dal/mysql/user/MemberUserMapper.java
+11
-0
computility-module-member/src/main/java/com/luhu/computility/module/member/service/user/MemberUserService.java
+7
-0
computility-module-member/src/main/java/com/luhu/computility/module/member/service/user/MemberUserServiceImpl.java
+5
-0
No files found.
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apicalllog/ApiCallLogMapper.java
View file @
82522963
...
@@ -27,4 +27,14 @@ public interface ApiCallLogMapper extends BaseMapperX<ApiCallLogDO> {
...
@@ -27,4 +27,14 @@ public interface ApiCallLogMapper extends BaseMapperX<ApiCallLogDO> {
.
orderByDesc
(
ApiCallLogDO:
:
getId
));
.
orderByDesc
(
ApiCallLogDO:
:
getId
));
}
}
default
List
<
ApiCallLogDO
>
selectList
(
ApiCallLogPageReqVO
reqVO
)
{
return
selectList
(
new
LambdaQueryWrapperX
<
ApiCallLogDO
>()
.
eqIfPresent
(
ApiCallLogDO:
:
getUserId
,
reqVO
.
getUserId
())
.
eqIfPresent
(
ApiCallLogDO:
:
getApiId
,
reqVO
.
getApiId
())
.
eqIfPresent
(
ApiCallLogDO:
:
getResponseStatus
,
reqVO
.
getResponseStatus
())
.
betweenIfPresent
(
ApiCallLogDO:
:
getCallTime
,
reqVO
.
getCallTime
())
.
betweenIfPresent
(
ApiCallLogDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
orderByDesc
(
ApiCallLogDO:
:
getId
));
}
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiorder/ApiOrderMapper.java
View file @
82522963
...
@@ -22,6 +22,20 @@ import com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*;
...
@@ -22,6 +22,20 @@ import com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*;
@Mapper
@Mapper
public
interface
ApiOrderMapper
extends
BaseMapperX
<
ApiOrderDO
>
{
public
interface
ApiOrderMapper
extends
BaseMapperX
<
ApiOrderDO
>
{
default
List
<
ApiOrderDO
>
selectList
(
ApiOrderPageReqVO
reqVO
)
{
return
selectList
(
new
LambdaQueryWrapperX
<
ApiOrderDO
>()
.
eqIfPresent
(
ApiOrderDO:
:
getUserId
,
reqVO
.
getUserId
())
.
eqIfPresent
(
ApiOrderDO:
:
getApiId
,
reqVO
.
getApiId
())
.
eqIfPresent
(
ApiOrderDO:
:
getPackageId
,
reqVO
.
getPackageId
())
.
eqIfPresent
(
ApiOrderDO:
:
getOrderNo
,
reqVO
.
getOrderNo
())
.
eqIfPresent
(
ApiOrderDO:
:
getStatus
,
reqVO
.
getStatus
())
.
eqIfPresent
(
ApiOrderDO:
:
getPayOrderId
,
reqVO
.
getPayOrderId
())
.
betweenIfPresent
(
ApiOrderDO:
:
getPayTime
,
reqVO
.
getPayTime
())
.
eqIfPresent
(
ApiOrderDO:
:
getPayChannelCode
,
reqVO
.
getPayChannelCode
())
.
betweenIfPresent
(
ApiOrderDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
orderByDesc
(
ApiOrderDO:
:
getId
));
}
default
PageResult
<
ApiOrderDO
>
selectPage
(
ApiOrderPageReqVO
reqVO
)
{
default
PageResult
<
ApiOrderDO
>
selectPage
(
ApiOrderPageReqVO
reqVO
)
{
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
ApiOrderDO
>()
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
ApiOrderDO
>()
.
eqIfPresent
(
ApiOrderDO:
:
getUserId
,
reqVO
.
getUserId
())
.
eqIfPresent
(
ApiOrderDO:
:
getUserId
,
reqVO
.
getUserId
())
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicalllog/ApiCallLogService.java
View file @
82522963
...
@@ -59,4 +59,10 @@ public interface ApiCallLogService {
...
@@ -59,4 +59,10 @@ public interface ApiCallLogService {
*/
*/
PageResult
<
ApiCallLogDO
>
getApiCallLogPage
(
ApiCallLogPageReqVO
pageReqVO
);
PageResult
<
ApiCallLogDO
>
getApiCallLogPage
(
ApiCallLogPageReqVO
pageReqVO
);
/**
* 获得API 调用日志列表
* @param apiCallLogPageReqVO
* @return
*/
List
<
ApiCallLogDO
>
getApiCallLogList
(
ApiCallLogPageReqVO
apiCallLogPageReqVO
);
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicalllog/ApiCallLogServiceImpl.java
View file @
82522963
...
@@ -82,4 +82,9 @@ public class ApiCallLogServiceImpl implements ApiCallLogService {
...
@@ -82,4 +82,9 @@ public class ApiCallLogServiceImpl implements ApiCallLogService {
return
apiCallLogMapper
.
selectPage
(
pageReqVO
);
return
apiCallLogMapper
.
selectPage
(
pageReqVO
);
}
}
@Override
public
List
<
ApiCallLogDO
>
getApiCallLogList
(
ApiCallLogPageReqVO
queryVO
){
return
apiCallLogMapper
.
selectList
(
queryVO
);
}
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderService.java
View file @
82522963
...
@@ -58,6 +58,14 @@ public interface ApiOrderService {
...
@@ -58,6 +58,14 @@ public interface ApiOrderService {
ApiOrderDO
getApiOrder
(
Long
id
);
ApiOrderDO
getApiOrder
(
Long
id
);
/**
/**
* 获得api订单List
*
* @param reqVO
* @return
*/
List
<
ApiOrderDO
>
getOrderList
(
ApiOrderPageReqVO
reqVO
);
/**
* 获得api订单分页
* 获得api订单分页
*
*
* @param pageReqVO 分页查询
* @param pageReqVO 分页查询
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
View file @
82522963
...
@@ -130,6 +130,11 @@ public class ApiOrderServiceImpl implements ApiOrderService {
...
@@ -130,6 +130,11 @@ public class ApiOrderServiceImpl implements ApiOrderService {
}
}
@Override
@Override
public
List
<
ApiOrderDO
>
getOrderList
(
ApiOrderPageReqVO
reqVO
)
{
return
apiOrderMapper
.
selectList
(
reqVO
);
}
@Override
public
PageResult
<
ApiOrderDO
>
getApiOrderPage
(
ApiOrderPageReqVO
pageReqVO
)
{
public
PageResult
<
ApiOrderDO
>
getApiOrderPage
(
ApiOrderPageReqVO
pageReqVO
)
{
return
apiOrderMapper
.
selectPage
(
pageReqVO
);
return
apiOrderMapper
.
selectPage
(
pageReqVO
);
}
}
...
...
computility-module-biz/pom.xml
View file @
82522963
...
@@ -20,6 +20,18 @@
...
@@ -20,6 +20,18 @@
<dependency>
<dependency>
<groupId>
com.luhu
</groupId>
<groupId>
com.luhu
</groupId>
<artifactId>
computility-module-apihub
</artifactId>
<version>
${revision}
</version>
</dependency>
<dependency>
<groupId>
com.luhu
</groupId>
<artifactId>
computility-module-trade
</artifactId>
<version>
${revision}
</version>
</dependency>
<dependency>
<groupId>
com.luhu
</groupId>
<artifactId>
computility-module-product
</artifactId>
<artifactId>
computility-module-product
</artifactId>
<version>
${revision}
</version>
<version>
${revision}
</version>
</dependency>
</dependency>
...
...
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/home/HomeIndexController.java
0 → 100644
View file @
82522963
package
com
.
luhu
.
computility
.
module
.
biz
.
controller
.
admin
.
home
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
import
com.luhu.computility.module.apihub.service.apiorder.ApiOrderService
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexApiCallsRespVO
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexOrdersCountRespVO
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexUsersCountRespVO
;
import
com.luhu.computility.module.biz.service.home.HomeIndexService
;
import
com.luhu.computility.module.member.service.user.MemberUserService
;
import
com.luhu.computility.module.trade.service.order.TradeOrderQueryService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
/**
* @Author: jony
* @Date : 2025/9/10 16:30
* @VERSION v1.0
*/
@Tag
(
name
=
"管理后台 - 后台管理首页E-chart统计"
)
@RestController
@RequestMapping
(
"/index/count"
)
@Validated
public
class
HomeIndexController
{
@Resource
HomeIndexService
homeIndexService
;
@GetMapping
(
"/getRegisterUsersCount"
)
@Operation
(
summary
=
"获取注册用户数统计"
)
public
CommonResult
<
List
<
HomeIndexUsersCountRespVO
>>
getRegisterUsersCount
()
{
return
success
(
homeIndexService
.
getRegisterUsersCount
());
}
@GetMapping
(
"/getUsersData"
)
@Operation
(
summary
=
"获取用户数统计"
)
public
CommonResult
<
List
<
HomeIndexUsersCountRespVO
>>
getHomeIndexUsersCount
()
{
return
success
(
homeIndexService
.
getUsersData
());
}
@GetMapping
(
"/getOrdersData"
)
@Operation
(
summary
=
"获取订单数据"
)
public
CommonResult
<
List
<
HomeIndexOrdersCountRespVO
>>
getOrdersData
()
{
return
success
(
homeIndexService
.
getOrdersData
());
}
@GetMapping
(
"/getApiCallsData"
)
@Operation
(
summary
=
"获取api调用次数数据"
)
public
CommonResult
<
List
<
HomeIndexApiCallsRespVO
>>
getApiCallsData
(){
return
success
(
homeIndexService
.
getApiCallsData
());
}
}
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/home/vo/HomeIndexApiCallsRespVO.java
0 → 100644
View file @
82522963
package
com
.
luhu
.
computility
.
module
.
biz
.
controller
.
admin
.
home
.
vo
;
import
lombok.Data
;
/**
* @Author: jony
* @Date : 2025/9/11 15:06
* @VERSION v1.0
*/
@Data
public
class
HomeIndexApiCallsRespVO
{
private
String
countDate
;
private
Integer
callsCount
;
}
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/home/vo/HomeIndexOrdersCountRespVO.java
0 → 100644
View file @
82522963
package
com
.
luhu
.
computility
.
module
.
biz
.
controller
.
admin
.
home
.
vo
;
import
lombok.Data
;
/**
* @Author: jony
* @Date : 2025/9/11 10:35
* @VERSION v1.0
*/
@Data
public
class
HomeIndexOrdersCountRespVO
{
private
String
countDate
;
private
Integer
computeOrdersCount
;
//算力订单数量
private
Integer
apiOrdersCount
;
//api订单数量
private
Integer
totalOrdersCount
;
//总订单数量
private
Integer
computeOrdersAmount
;
//算力订单金额
private
Integer
apiOrdersAmount
;
//api订单金额
private
Integer
totalOrdersAmount
;
//总订单金额
}
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/home/vo/HomeIndexUsersCountRespVO.java
0 → 100644
View file @
82522963
package
com
.
luhu
.
computility
.
module
.
biz
.
controller
.
admin
.
home
.
vo
;
import
lombok.Data
;
/**
* @Author: jony
* @Date : 2025/9/10 17:00
* @VERSION v1.0
*/
@Data
public
class
HomeIndexUsersCountRespVO
{
private
Integer
usersCount
;
private
String
countDate
;
}
computility-module-biz/src/main/java/com/luhu/computility/module/biz/service/home/HomeIndexService.java
0 → 100644
View file @
82522963
package
com
.
luhu
.
computility
.
module
.
biz
.
service
.
home
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexApiCallsRespVO
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexOrdersCountRespVO
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexUsersCountRespVO
;
import
java.util.List
;
/**
* @Author: jony
* @Date : 2025/9/10 14:55
* @VERSION v1.0
*/
public
interface
HomeIndexService
{
List
<
HomeIndexUsersCountRespVO
>
getRegisterUsersCount
();
List
<
HomeIndexUsersCountRespVO
>
getUsersData
();
List
<
HomeIndexOrdersCountRespVO
>
getOrdersData
();
List
<
HomeIndexApiCallsRespVO
>
getApiCallsData
();
}
computility-module-biz/src/main/java/com/luhu/computility/module/biz/service/home/HomeIndexServiceImpl.java
0 → 100644
View file @
82522963
package
com
.
luhu
.
computility
.
module
.
biz
.
service
.
home
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.ApiCallLogPageReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.apiorder.vo.ApiOrderPageReqVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicalllog.ApiCallLogDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO
;
import
com.luhu.computility.module.apihub.enums.ApiOrderStatus
;
import
com.luhu.computility.module.apihub.service.apicalllog.ApiCallLogService
;
import
com.luhu.computility.module.apihub.service.apiorder.ApiOrderService
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexApiCallsRespVO
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexOrdersCountRespVO
;
import
com.luhu.computility.module.biz.controller.admin.home.vo.HomeIndexUsersCountRespVO
;
import
com.luhu.computility.module.member.controller.admin.user.vo.MemberUserPageReqVO
;
import
com.luhu.computility.module.member.dal.dataobject.user.MemberUserDO
;
import
com.luhu.computility.module.member.service.user.MemberUserService
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderPageReqVO
;
import
com.luhu.computility.module.trade.dal.dataobject.order.TradeOrderDO
;
import
com.luhu.computility.module.trade.enums.order.TradeOrderStatusEnum
;
import
com.luhu.computility.module.trade.service.order.TradeOrderQueryService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.validation.annotation.Validated
;
import
javax.annotation.Resource
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @Author: jony
* @Date : 2025/9/10 14:55
* @VERSION v1.0
*/
@Service
@Validated
public
class
HomeIndexServiceImpl
implements
HomeIndexService
{
@Resource
MemberUserService
memberUserService
;
@Resource
TradeOrderQueryService
tradeOrderQueryService
;
@Resource
ApiOrderService
apiOrderService
;
@Resource
ApiCallLogService
apiCallLogService
;
@Override
public
List
<
HomeIndexUsersCountRespVO
>
getRegisterUsersCount
()
{
MemberUserPageReqVO
queryVO
=
new
MemberUserPageReqVO
();
LocalDate
yesterday
=
LocalDate
.
now
().
minusDays
(
1
);
// 昨天(日期)
LocalDate
startDate
=
yesterday
.
minusDays
(
6
);
LocalDateTime
startDateTime
=
startDate
.
atStartOfDay
();
LocalDateTime
endDateTime
=
yesterday
.
atTime
(
23
,
59
,
59
,
999_999_999
);
//先查出七天的总数据
LocalDateTime
[]
dateTimePeriod
=
new
LocalDateTime
[
2
];
dateTimePeriod
[
0
]
=
startDateTime
;
dateTimePeriod
[
1
]
=
endDateTime
;
queryVO
.
setCreateTime
(
dateTimePeriod
);
PageResult
<
MemberUserDO
>
userPage
=
memberUserService
.
getUserPage
(
queryVO
);
List
<
MemberUserDO
>
userList
=
userPage
.
getList
();
Map
<
LocalDate
,
Long
>
dateCountMap
=
userList
.
stream
().
collect
(
Collectors
.
groupingBy
(
user
->
user
.
getCreateTime
().
toLocalDate
(),
Collectors
.
counting
()));
return
dateCountMap
.
entrySet
().
stream
().
map
(
entry
->
{
HomeIndexUsersCountRespVO
respVO
=
new
HomeIndexUsersCountRespVO
();
respVO
.
setUsersCount
((
int
)
(
long
)
entry
.
getValue
());
respVO
.
setCountDate
(
ObjectUtil
.
toString
(
entry
.
getKey
()));
return
respVO
;
}).
collect
(
Collectors
.
toList
());
}
@Override
public
List
<
HomeIndexUsersCountRespVO
>
getUsersData
()
{
MemberUserPageReqVO
queryVO
=
new
MemberUserPageReqVO
();
LocalDate
yesterday
=
LocalDate
.
now
().
minusDays
(
1
);
LocalDate
startDate
=
yesterday
.
minusDays
(
6
);
// 近7天:startDate 到 yesterday
// 1. 先查询截至昨天的所有用户(用于计算累计值)
LocalDateTime
[]
allTimePeriod
=
new
LocalDateTime
[
2
];
allTimePeriod
[
0
]
=
LocalDate
.
of
(
1970
,
1
,
1
).
atStartOfDay
();
// 最早时间
allTimePeriod
[
1
]
=
yesterday
.
atTime
(
23
,
59
,
59
,
999_999_999
);
// 昨天结束
queryVO
.
setCreateTime
(
allTimePeriod
);
List
<
MemberUserDO
>
allUserList
=
memberUserService
.
getUserList
(
queryVO
);
// 按日期分组:统计“截至当天”的总用户数(累计值)
Map
<
LocalDate
,
Long
>
dailyTotalMap
=
new
HashMap
<>();
// 遍历7天的每一天(从最早的一天开始)
for
(
int
i
=
0
;
i
<
7
;
i
++)
{
LocalDate
currentDate
=
startDate
.
plusDays
(
i
);
// 计算截至currentDate的总用户数:统计所有注册日期<=currentDate的用户
long
currentTotal
=
allUserList
.
stream
()
.
filter
(
user
->
user
.
getCreateTime
().
toLocalDate
().
isBefore
(
currentDate
.
plusDays
(
1
)))
.
count
();
dailyTotalMap
.
put
(
currentDate
,
currentTotal
);
}
//构建结果列表
List
<
HomeIndexUsersCountRespVO
>
resultList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
7
;
i
++)
{
LocalDate
currentDate
=
startDate
.
plusDays
(
i
);
HomeIndexUsersCountRespVO
respVO
=
new
HomeIndexUsersCountRespVO
();
respVO
.
setCountDate
(
currentDate
.
toString
());
respVO
.
setUsersCount
((
int
)
(
long
)
dailyTotalMap
.
get
(
currentDate
));
// 累计用户数
resultList
.
add
(
respVO
);
}
//按日期排序
resultList
.
sort
(
Comparator
.
comparing
(
HomeIndexUsersCountRespVO:
:
getCountDate
));
return
resultList
;
}
@Override
public
List
<
HomeIndexOrdersCountRespVO
>
getOrdersData
()
{
LocalDate
yesterday
=
LocalDate
.
now
().
minusDays
(
1
);
LocalDate
startDate
=
yesterday
.
minusDays
(
6
);
// 近7天:startDate 到 yesterday
LocalDateTime
[]
allTimePeriod
=
new
LocalDateTime
[
2
];
allTimePeriod
[
0
]
=
LocalDate
.
of
(
1970
,
1
,
1
).
atStartOfDay
();
allTimePeriod
[
1
]
=
yesterday
.
atTime
(
23
,
59
,
59
,
999_999_999
);
TradeOrderPageReqVO
allComputeQueryVO
=
new
TradeOrderPageReqVO
();
allComputeQueryVO
.
setCreateTime
(
allTimePeriod
);
allComputeQueryVO
.
setStatus
(
TradeOrderStatusEnum
.
COMPLETED
.
getStatus
());
//只统计已完成的订单
List
<
TradeOrderDO
>
allComputeOrderList
=
tradeOrderQueryService
.
getOrderList
(
allComputeQueryVO
);
ApiOrderPageReqVO
allApiQueryVO
=
new
ApiOrderPageReqVO
();
allApiQueryVO
.
setCreateTime
(
allTimePeriod
);
allApiQueryVO
.
setStatus
(
ApiOrderStatus
.
PAID
.
getValue
());
//只统计已支付的订单(似乎api订单没有已完成的状态)
List
<
ApiOrderDO
>
allApiOrderList
=
apiOrderService
.
getOrderList
(
allApiQueryVO
);
//根据日期分组订单数量
Map
<
LocalDate
,
Long
>
dailyComputeCountMap
=
groupOrderByDate
(
allComputeOrderList
);
Map
<
LocalDate
,
Long
>
dailyApiCountMap
=
groupOrderByDate
(
allApiOrderList
);
//按日期分组统计订单金额
Map
<
LocalDate
,
Integer
>
dailyComputeAmountMap
=
groupComputeOrderByAmount
(
allComputeOrderList
);
Map
<
LocalDate
,
Integer
>
dailyApiAmountMap
=
groupApiOrderByAmount
(
allApiOrderList
);
//构建完整的7天数据列表
List
<
HomeIndexOrdersCountRespVO
>
resultList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
7
;
i
++)
{
LocalDate
currentDate
=
startDate
.
plusDays
(
i
);
//订单数量统计
long
computeCount
=
dailyComputeCountMap
.
getOrDefault
(
currentDate
,
0L
);
// 算力订单数
long
apiCount
=
dailyApiCountMap
.
getOrDefault
(
currentDate
,
0L
);
// API订单数
long
totalCount
=
computeCount
+
apiCount
;
//订单金额统计
int
computeAmount
=
dailyComputeAmountMap
.
getOrDefault
(
currentDate
,
0
);
int
apiAmount
=
dailyApiAmountMap
.
getOrDefault
(
currentDate
,
0
);
int
totalAmount
=
computeAmount
+
apiAmount
;
//封装返回VO(每个日期对应一条统计数据)
HomeIndexOrdersCountRespVO
respVO
=
new
HomeIndexOrdersCountRespVO
();
respVO
.
setCountDate
(
currentDate
.
toString
());
// 日期(格式:yyyy-MM-dd)
//订单数字段
respVO
.
setComputeOrdersCount
((
int
)
computeCount
);
// 算力订单数(long转int,订单数通常不超int范围)
respVO
.
setApiOrdersCount
((
int
)
apiCount
);
// API订单数
respVO
.
setTotalOrdersCount
((
int
)
totalCount
);
// 全部订单数
// 金额字段
respVO
.
setComputeOrdersAmount
(
computeAmount
);
respVO
.
setApiOrdersAmount
(
apiAmount
);
respVO
.
setTotalOrdersAmount
(
totalAmount
);
resultList
.
add
(
respVO
);
}
//按日期升序排序(确保返回数据从“最早一天”到“昨天”的顺序)
resultList
.
sort
(
Comparator
.
comparing
(
HomeIndexOrdersCountRespVO:
:
getCountDate
));
return
resultList
;
}
@Override
public
List
<
HomeIndexApiCallsRespVO
>
getApiCallsData
()
{
LocalDate
yesterday
=
LocalDate
.
now
().
minusDays
(
1
);
LocalDate
startDate
=
yesterday
.
minusDays
(
6
);
// 近7天:startDate 到 yesterday
LocalDateTime
[]
allTimePeriod
=
new
LocalDateTime
[
2
];
allTimePeriod
[
0
]
=
LocalDate
.
of
(
1970
,
1
,
1
).
atStartOfDay
();
allTimePeriod
[
1
]
=
yesterday
.
atTime
(
23
,
59
,
59
,
999_999_999
);
ApiCallLogPageReqVO
queryVO
=
new
ApiCallLogPageReqVO
();
queryVO
.
setCreateTime
(
allTimePeriod
);
List
<
ApiCallLogDO
>
apiCallLogList
=
apiCallLogService
.
getApiCallLogList
(
queryVO
);
Map
<
LocalDate
,
Long
>
dailyApiCallsMap
=
apiCallLogList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
apiCallLog
->
apiCallLog
.
getCreateTime
().
toLocalDate
(),
Collectors
.
counting
()));
List
<
HomeIndexApiCallsRespVO
>
resultList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
7
;
i
++)
{
LocalDate
currentDate
=
startDate
.
plusDays
(
i
);
Long
apiCallsCountCurrentDay
=
dailyApiCallsMap
.
getOrDefault
(
currentDate
,
0L
);
HomeIndexApiCallsRespVO
homeIndexApiCallsRespVO
=
new
HomeIndexApiCallsRespVO
();
homeIndexApiCallsRespVO
.
setCallsCount
((
int
)(
long
)
apiCallsCountCurrentDay
);
homeIndexApiCallsRespVO
.
setCountDate
(
ObjectUtil
.
toString
(
currentDate
));
resultList
.
add
(
homeIndexApiCallsRespVO
);
}
resultList
.
sort
(
Comparator
.
comparing
(
HomeIndexApiCallsRespVO:
:
getCountDate
));
return
resultList
;
}
/**
* 通用工具方法:将订单列表按“创建日期”分组,统计每日订单数
*
* @param orderList 订单列表(支持TradeOrderDO、ApiOrderDO,只要有getCreateTime()方法)
* @return key=LocalDate(日期),value=当日订单数
*/
private
<
T
>
Map
<
LocalDate
,
Long
>
groupOrderByDate
(
List
<
T
>
orderList
)
{
// 若订单列表为空,直接返回空Map
if
(
CollectionUtils
.
isEmpty
(
orderList
))
{
return
new
HashMap
<>();
}
// 反射获取订单的“创建时间”
return
orderList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
order
->
{
try
{
// 调用订单对象的getCreateTime()方法,获取LocalDateTime
LocalDateTime
createTime
=
(
LocalDateTime
)
order
.
getClass
()
.
getMethod
(
"getCreateTime"
)
.
invoke
(
order
);
return
createTime
.
toLocalDate
();
// 提取“日期”作为分组key
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"订单日期提取失败"
,
e
);
}
},
Collectors
.
counting
()
// 统计每个日期的订单数量
));
}
/**
* 单独统计API订单金额
*/
private
Map
<
LocalDate
,
Integer
>
groupApiOrderByAmount
(
List
<
ApiOrderDO
>
orderList
)
{
if
(
CollectionUtils
.
isEmpty
(
orderList
))
{
return
new
HashMap
<>();
}
return
orderList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
order
->
order
.
getCreateTime
().
toLocalDate
(),
// 提取日期
Collectors
.
summingInt
(
ApiOrderDO:
:
getCostPrice
)
// 累加costPrice
));
}
/**
* 单独统计算力订单金额(使用TradeOrderDO的payPrice字段)
*/
private
Map
<
LocalDate
,
Integer
>
groupComputeOrderByAmount
(
List
<
TradeOrderDO
>
orderList
)
{
if
(
CollectionUtils
.
isEmpty
(
orderList
))
{
return
new
HashMap
<>();
}
return
orderList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
order
->
order
.
getCreateTime
().
toLocalDate
(),
// 提取日期
Collectors
.
summingInt
(
TradeOrderDO:
:
getPayPrice
)
// 累加payPrice
));
}
}
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/dal/mysql/order/TradeOrderMapper.java
View file @
82522963
...
@@ -24,6 +24,22 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
...
@@ -24,6 +24,22 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
.
eq
(
TradeOrderDO:
:
getId
,
id
).
eq
(
TradeOrderDO:
:
getStatus
,
status
));
.
eq
(
TradeOrderDO:
:
getId
,
id
).
eq
(
TradeOrderDO:
:
getStatus
,
status
));
}
}
default
List
<
TradeOrderDO
>
selectList
(
TradeOrderPageReqVO
reqVO
)
{
return
selectList
(
new
LambdaQueryWrapperX
<
TradeOrderDO
>()
.
likeIfPresent
(
TradeOrderDO:
:
getNo
,
reqVO
.
getNo
())
.
eqIfPresent
(
TradeOrderDO:
:
getUserId
,
reqVO
.
getUserId
())
.
eqIfPresent
(
TradeOrderDO:
:
getDeliveryType
,
reqVO
.
getDeliveryType
())
.
eqIfPresent
(
TradeOrderDO:
:
getType
,
reqVO
.
getType
())
.
eqIfPresent
(
TradeOrderDO:
:
getStatus
,
reqVO
.
getStatus
())
.
eqIfPresent
(
TradeOrderDO:
:
getPayChannelCode
,
reqVO
.
getPayChannelCode
())
.
eqIfPresent
(
TradeOrderDO:
:
getTerminal
,
reqVO
.
getTerminal
())
.
eqIfPresent
(
TradeOrderDO:
:
getLogisticsId
,
reqVO
.
getLogisticsId
())
.
inIfPresent
(
TradeOrderDO:
:
getPickUpStoreId
,
reqVO
.
getPickUpStoreIds
())
.
likeIfPresent
(
TradeOrderDO:
:
getPickUpVerifyCode
,
reqVO
.
getPickUpVerifyCode
())
.
betweenIfPresent
(
TradeOrderDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
orderByDesc
(
TradeOrderDO:
:
getId
));
}
default
TradeOrderDO
selectByIdAndUserId
(
Long
id
,
Long
userId
)
{
default
TradeOrderDO
selectByIdAndUserId
(
Long
id
,
Long
userId
)
{
return
selectOne
(
TradeOrderDO:
:
getId
,
id
,
TradeOrderDO:
:
getUserId
,
userId
);
return
selectOne
(
TradeOrderDO:
:
getId
,
id
,
TradeOrderDO:
:
getUserId
,
userId
);
}
}
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/service/order/TradeOrderQueryService.java
View file @
82522963
...
@@ -59,6 +59,14 @@ public interface TradeOrderQueryService {
...
@@ -59,6 +59,14 @@ public interface TradeOrderQueryService {
List
<
TradeOrderDO
>
getOrderList
(
Collection
<
Long
>
ids
);
List
<
TradeOrderDO
>
getOrderList
(
Collection
<
Long
>
ids
);
/**
/**
* 获得订单列表
*
* @param queryVO
* @return
*/
List
<
TradeOrderDO
>
getOrderList
(
TradeOrderPageReqVO
queryVO
);
/**
* 【管理员】获得交易订单分页
* 【管理员】获得交易订单分页
*
*
* @param reqVO 分页请求
* @param reqVO 分页请求
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/service/order/TradeOrderQueryServiceImpl.java
View file @
82522963
...
@@ -88,6 +88,11 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
...
@@ -88,6 +88,11 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
}
}
@Override
@Override
public
List
<
TradeOrderDO
>
getOrderList
(
TradeOrderPageReqVO
reqVO
)
{
return
tradeOrderMapper
.
selectList
(
reqVO
);
}
@Override
public
PageResult
<
TradeOrderDO
>
getOrderPage
(
TradeOrderPageReqVO
reqVO
)
{
public
PageResult
<
TradeOrderDO
>
getOrderPage
(
TradeOrderPageReqVO
reqVO
)
{
// 根据用户查询条件构建用户编号列表
// 根据用户查询条件构建用户编号列表
Set
<
Long
>
userIds
=
buildQueryConditionUserIds
(
reqVO
);
Set
<
Long
>
userIds
=
buildQueryConditionUserIds
(
reqVO
);
...
...
computility-module-member/src/main/java/com/luhu/computility/module/member/dal/mysql/user/MemberUserMapper.java
View file @
82522963
...
@@ -31,6 +31,17 @@ public interface MemberUserMapper extends BaseMapperX<MemberUserDO> {
...
@@ -31,6 +31,17 @@ public interface MemberUserMapper extends BaseMapperX<MemberUserDO> {
.
likeIfPresent
(
MemberUserDO:
:
getNickname
,
nickname
));
.
likeIfPresent
(
MemberUserDO:
:
getNickname
,
nickname
));
}
}
default
List
<
MemberUserDO
>
selectList
(
MemberUserPageReqVO
reqVO
){
return
selectList
(
new
LambdaQueryWrapperX
<
MemberUserDO
>()
.
likeIfPresent
(
MemberUserDO:
:
getMobile
,
reqVO
.
getMobile
())
.
betweenIfPresent
(
MemberUserDO:
:
getLoginDate
,
reqVO
.
getLoginDate
())
.
likeIfPresent
(
MemberUserDO:
:
getNickname
,
reqVO
.
getNickname
())
.
betweenIfPresent
(
MemberUserDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
eqIfPresent
(
MemberUserDO:
:
getLevelId
,
reqVO
.
getLevelId
())
.
eqIfPresent
(
MemberUserDO:
:
getGroupId
,
reqVO
.
getGroupId
())
.
orderByDesc
(
MemberUserDO:
:
getId
));
}
default
PageResult
<
MemberUserDO
>
selectPage
(
MemberUserPageReqVO
reqVO
)
{
default
PageResult
<
MemberUserDO
>
selectPage
(
MemberUserPageReqVO
reqVO
)
{
// 处理 tagIds 过滤条件
// 处理 tagIds 过滤条件
String
tagIdSql
=
""
;
String
tagIdSql
=
""
;
...
...
computility-module-member/src/main/java/com/luhu/computility/module/member/service/user/MemberUserService.java
View file @
82522963
...
@@ -83,6 +83,13 @@ public interface MemberUserService {
...
@@ -83,6 +83,13 @@ public interface MemberUserService {
List
<
MemberUserDO
>
getUserList
(
Collection
<
Long
>
ids
);
List
<
MemberUserDO
>
getUserList
(
Collection
<
Long
>
ids
);
/**
/**
* 查询用户
* @param pageReqVO
* @return
*/
List
<
MemberUserDO
>
getUserList
(
MemberUserPageReqVO
pageReqVO
);
/**
* 【会员】修改基本信息
* 【会员】修改基本信息
*
*
* @param userId 用户编号
* @param userId 用户编号
...
...
computility-module-member/src/main/java/com/luhu/computility/module/member/service/user/MemberUserServiceImpl.java
View file @
82522963
...
@@ -141,6 +141,11 @@ public class MemberUserServiceImpl implements MemberUserService {
...
@@ -141,6 +141,11 @@ public class MemberUserServiceImpl implements MemberUserService {
}
}
@Override
@Override
public
List
<
MemberUserDO
>
getUserList
(
MemberUserPageReqVO
pageReqVO
){
return
memberUserMapper
.
selectList
(
pageReqVO
);
}
@Override
public
void
updateUser
(
Long
userId
,
AppMemberUserUpdateReqVO
reqVO
)
{
public
void
updateUser
(
Long
userId
,
AppMemberUserUpdateReqVO
reqVO
)
{
MemberUserDO
updateObj
=
BeanUtils
.
toBean
(
reqVO
,
MemberUserDO
.
class
).
setId
(
userId
);
MemberUserDO
updateObj
=
BeanUtils
.
toBean
(
reqVO
,
MemberUserDO
.
class
).
setId
(
userId
);
memberUserMapper
.
updateById
(
updateObj
);
memberUserMapper
.
updateById
(
updateObj
);
...
...
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