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
4cabaec9
authored
Sep 12, 2025
by
lijinqi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
管理端-Api订单管理已完成(搜索未完成)
管理端-用户Api管理已完成 客户端-api订单已完成 客户端-api资源已完成
parent
401032c1
Show whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
922 additions
and
12 deletions
+922
-12
computility-framework/computility-spring-boot-starter-protection/pom.xml
+13
-0
computility-module-apihub/pom.xml
+6
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/ApiController.java
+15
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpoint/ApiEndpointController.java
+42
-4
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpoint/vo/ApiEndpointRespVO.java
+9
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpoint/vo/ApiEndpointSaveReqVO.java
+8
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpointapplicationrel/ApiEndpointApplicationRelController.java
+105
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpointapplicationrel/vo/ApiEndpointApplicationRelPageReqVO.java
+27
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpointapplicationrel/vo/ApiEndpointApplicationRelRespVO.java
+32
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpointapplicationrel/vo/ApiEndpointApplicationRelSaveReqVO.java
+24
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/ApiOrderController.java
+14
-4
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/vo/ApiOrderRespVO.java
+13
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/vo/ApiOrderSaveReqVO.java
+3
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/AppApiController.java
+22
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/vo/AppApiRespVO.java
+5
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/userapiusage/AppUserApiUsageController.java
+71
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/userapiusage/vo/AppUserApiUsageRespVO.java
+55
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/userapiusage/vo/UserApiUsageSaveReqVO.java
+56
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apiendpointapplicationrel/ApiEndpointApplicationRelDO.java
+41
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiendpointapplicationrel/ApiEndpointApplicationRelMapper.java
+50
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiorder/ApiOrderMapper.java
+7
-2
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/userapiusage/UserApiUsageMapper.java
+14
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ErrorCodeConstants.java
+1
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiendpointapplicationrel/ApiEndpointApplicationRelService.java
+83
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiendpointapplicationrel/ApiEndpointApplicationRelServiceImpl.java
+99
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderService.java
+1
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
+1
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/userapiusage/UserApiUsageService.java
+11
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/userapiusage/UserApiUsageServiceImpl.java
+7
-0
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/industryapplication/IndustryApplicationController.java
+10
-0
computility-module-external/src/main/java/com/luhu/computility/module/external/utils/AppKeyGenerator.java
+38
-0
computility-module-external/src/main/java/com/luhu/computility/module/external/utils/AppSecretEncrypt.java
+39
-0
No files found.
computility-framework/computility-spring-boot-starter-protection/pom.xml
View file @
4cabaec9
...
@@ -42,6 +42,19 @@
...
@@ -42,6 +42,19 @@
<artifactId>
computility-spring-boot-starter-test
</artifactId>
<artifactId>
computility-spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<scope>
test
</scope>
</dependency>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.luhu</groupId>-->
<!-- <artifactId>computility-module-external</artifactId>-->
<!-- <version>${revision}</version>-->
<!-- </dependency>-->
<dependency>
<groupId>
com.luhu
</groupId>
<artifactId>
computility-module-apihub
</artifactId>
<version>
${revision}
</version>
</dependency>
</dependencies>
</dependencies>
</project>
</project>
computility-module-apihub/pom.xml
View file @
4cabaec9
...
@@ -75,5 +75,11 @@
...
@@ -75,5 +75,11 @@
<groupId>
com.luhu
</groupId>
<groupId>
com.luhu
</groupId>
<artifactId>
computility-spring-boot-starter-excel
</artifactId>
<artifactId>
computility-spring-boot-starter-excel
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
com.luhu
</groupId>
<artifactId>
computility-module-biz
</artifactId>
<version>
${revision}
</version>
</dependency>
</dependencies>
</dependencies>
</project>
</project>
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/ApiController.java
View file @
4cabaec9
...
@@ -11,8 +11,10 @@ import com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPack
...
@@ -11,8 +11,10 @@ import com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPack
import
com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO
;
import
com.luhu.computility.module.apihub.service.apiendpoint.ApiEndpointService
;
import
com.luhu.computility.module.apihub.service.apiendpoint.ApiEndpointService
;
import
com.luhu.computility.module.apihub.service.apiendpointapplicationrel.ApiEndpointApplicationRelService
;
import
com.luhu.computility.module.apihub.service.apiendpointrel.ApiEndpointRelService
;
import
com.luhu.computility.module.apihub.service.apiendpointrel.ApiEndpointRelService
;
import
com.luhu.computility.module.apihub.service.apipackage.ApiPackageService
;
import
com.luhu.computility.module.apihub.service.apipackage.ApiPackageService
;
import
com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO
;
import
org.checkerframework.checker.units.qual.A
;
import
org.checkerframework.checker.units.qual.A
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -60,6 +62,10 @@ public class ApiController {
...
@@ -60,6 +62,10 @@ public class ApiController {
private
ApiPackageService
apiPackageService
;
private
ApiPackageService
apiPackageService
;
@Resource
private
ApiEndpointApplicationRelService
apiEndpointApplicationRelService
;
@PostMapping
(
"/create"
)
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建API信息"
)
@Operation
(
summary
=
"创建API信息"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
@@ -119,6 +125,7 @@ public class ApiController {
...
@@ -119,6 +125,7 @@ public class ApiController {
@PreAuthorize
(
"@ss.hasPermission('apihub:api:delete')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api:delete')"
)
public
CommonResult
<
Boolean
>
deleteApi
(
@RequestParam
(
"id"
)
Long
id
)
{
public
CommonResult
<
Boolean
>
deleteApi
(
@RequestParam
(
"id"
)
Long
id
)
{
apiService
.
deleteApi
(
id
);
apiService
.
deleteApi
(
id
);
apiEndpointRelService
.
deleteByApiId
(
id
);
return
success
(
true
);
return
success
(
true
);
}
}
...
@@ -128,6 +135,9 @@ public class ApiController {
...
@@ -128,6 +135,9 @@ public class ApiController {
@PreAuthorize
(
"@ss.hasPermission('apihub:api:delete')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api:delete')"
)
public
CommonResult
<
Boolean
>
deleteApiList
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
public
CommonResult
<
Boolean
>
deleteApiList
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
apiService
.
deleteApiListByIds
(
ids
);
apiService
.
deleteApiListByIds
(
ids
);
for
(
Long
id
:
ids
)
{
apiEndpointRelService
.
deleteByApiId
(
id
);
}
return
success
(
true
);
return
success
(
true
);
}
}
...
@@ -142,6 +152,11 @@ public class ApiController {
...
@@ -142,6 +152,11 @@ public class ApiController {
apiRespVO
.
setApiPackages
(
BeanUtils
.
toBean
(
apiPackageDOS
,
ApiPackageRespVO
.
class
));
apiRespVO
.
setApiPackages
(
BeanUtils
.
toBean
(
apiPackageDOS
,
ApiPackageRespVO
.
class
));
List
<
ApiEndpointRespVO
>
apiEndpointRespVOS
=
apiEndpointRelService
.
getApiEndpointByApiId
(
id
);
List
<
ApiEndpointRespVO
>
apiEndpointRespVOS
=
apiEndpointRelService
.
getApiEndpointByApiId
(
id
);
/*
for (ApiEndpointRespVO apiEndpointRespVO : apiEndpointRespVOS) {
List<IndustryApplicationRespVO> industryApplicationRespVOS = apiEndpointApplicationRelService.getApplicationByApiEndpointId(apiEndpointRespVO.getId());
apiEndpointRespVO.setIndustryApplications(industryApplicationRespVOS);
}*/
apiRespVO
.
setApiEndPoints
(
apiEndpointRespVOS
);
apiRespVO
.
setApiEndPoints
(
apiEndpointRespVOS
);
return
success
(
apiRespVO
);
return
success
(
apiRespVO
);
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpoint/ApiEndpointController.java
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpoint
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpoint
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpointapplicationrel.vo.ApiEndpointApplicationRelSaveReqVO
;
import
com.luhu.computility.module.apihub.service.apiendpointapplicationrel.ApiEndpointApplicationRelService
;
import
com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
...
@@ -38,11 +42,23 @@ public class ApiEndpointController {
...
@@ -38,11 +42,23 @@ public class ApiEndpointController {
@Resource
@Resource
private
ApiEndpointService
apiEndpointService
;
private
ApiEndpointService
apiEndpointService
;
@Resource
private
ApiEndpointApplicationRelService
apiEndpointApplicationRelService
;
@PostMapping
(
"/create"
)
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建API 接口"
)
@Operation
(
summary
=
"创建API 接口"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:create')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:create')"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
CommonResult
<
Long
>
createApiEndpoint
(
@Valid
@RequestBody
ApiEndpointSaveReqVO
createReqVO
)
{
public
CommonResult
<
Long
>
createApiEndpoint
(
@Valid
@RequestBody
ApiEndpointSaveReqVO
createReqVO
)
{
return
success
(
apiEndpointService
.
createApiEndpoint
(
createReqVO
));
Long
apiEndpointId
=
apiEndpointService
.
createApiEndpoint
(
createReqVO
);
for
(
IndustryApplicationRespVO
industryApplicationRespVO
:
createReqVO
.
getIndustryApplications
())
{
apiEndpointApplicationRelService
.
createApiEndpointApplicationRel
(
new
ApiEndpointApplicationRelSaveReqVO
()
.
setIndustryApplicationId
(
industryApplicationRespVO
.
getId
())
.
setApiEndpointId
(
apiEndpointId
));
}
return
success
(
apiEndpointId
);
}
}
@PutMapping
(
"/update"
)
@PutMapping
(
"/update"
)
...
@@ -50,6 +66,15 @@ public class ApiEndpointController {
...
@@ -50,6 +66,15 @@ public class ApiEndpointController {
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:update')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:update')"
)
public
CommonResult
<
Boolean
>
updateApiEndpoint
(
@Valid
@RequestBody
ApiEndpointSaveReqVO
updateReqVO
)
{
public
CommonResult
<
Boolean
>
updateApiEndpoint
(
@Valid
@RequestBody
ApiEndpointSaveReqVO
updateReqVO
)
{
apiEndpointService
.
updateApiEndpoint
(
updateReqVO
);
apiEndpointService
.
updateApiEndpoint
(
updateReqVO
);
//删除以前的
apiEndpointApplicationRelService
.
deleteApiEndpointApplicationRelByApiEndpointId
(
updateReqVO
.
getId
());
//插入新数据
for
(
IndustryApplicationRespVO
industryApplicationRespVO
:
updateReqVO
.
getIndustryApplications
())
{
apiEndpointApplicationRelService
.
createApiEndpointApplicationRel
(
new
ApiEndpointApplicationRelSaveReqVO
()
.
setIndustryApplicationId
(
industryApplicationRespVO
.
getId
())
.
setApiEndpointId
(
updateReqVO
.
getId
()));
}
return
success
(
true
);
return
success
(
true
);
}
}
...
@@ -59,6 +84,7 @@ public class ApiEndpointController {
...
@@ -59,6 +84,7 @@ public class ApiEndpointController {
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:delete')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:delete')"
)
public
CommonResult
<
Boolean
>
deleteApiEndpoint
(
@RequestParam
(
"id"
)
Long
id
)
{
public
CommonResult
<
Boolean
>
deleteApiEndpoint
(
@RequestParam
(
"id"
)
Long
id
)
{
apiEndpointService
.
deleteApiEndpoint
(
id
);
apiEndpointService
.
deleteApiEndpoint
(
id
);
apiEndpointApplicationRelService
.
deleteApiEndpointApplicationRelByApiEndpointId
(
id
);
return
success
(
true
);
return
success
(
true
);
}
}
...
@@ -68,6 +94,10 @@ public class ApiEndpointController {
...
@@ -68,6 +94,10 @@ public class ApiEndpointController {
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:delete')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:delete')"
)
public
CommonResult
<
Boolean
>
deleteApiEndpointList
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
public
CommonResult
<
Boolean
>
deleteApiEndpointList
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
apiEndpointService
.
deleteApiEndpointListByIds
(
ids
);
apiEndpointService
.
deleteApiEndpointListByIds
(
ids
);
//不常用,先偷懒循环delete
for
(
Long
id
:
ids
){
apiEndpointApplicationRelService
.
deleteApiEndpointApplicationRelByApiEndpointId
(
id
);
}
return
success
(
true
);
return
success
(
true
);
}
}
...
@@ -77,7 +107,10 @@ public class ApiEndpointController {
...
@@ -77,7 +107,10 @@ public class ApiEndpointController {
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:query')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:query')"
)
public
CommonResult
<
ApiEndpointRespVO
>
getApiEndpoint
(
@RequestParam
(
"id"
)
Long
id
)
{
public
CommonResult
<
ApiEndpointRespVO
>
getApiEndpoint
(
@RequestParam
(
"id"
)
Long
id
)
{
ApiEndpointDO
apiEndpoint
=
apiEndpointService
.
getApiEndpoint
(
id
);
ApiEndpointDO
apiEndpoint
=
apiEndpointService
.
getApiEndpoint
(
id
);
return
success
(
BeanUtils
.
toBean
(
apiEndpoint
,
ApiEndpointRespVO
.
class
));
ApiEndpointRespVO
apiEndpointRespVO
=
BeanUtils
.
toBean
(
apiEndpoint
,
ApiEndpointRespVO
.
class
);
List
<
IndustryApplicationRespVO
>
industryApplicationRespVOS
=
apiEndpointApplicationRelService
.
getApplicationByApiEndpointId
(
id
);
apiEndpointRespVO
.
setIndustryApplications
(
industryApplicationRespVOS
);
return
success
(
apiEndpointRespVO
);
}
}
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
...
@@ -93,8 +126,13 @@ public class ApiEndpointController {
...
@@ -93,8 +126,13 @@ public class ApiEndpointController {
@Operation
(
summary
=
"获得API 接口"
)
@Operation
(
summary
=
"获得API 接口"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:query')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint:query')"
)
public
CommonResult
<
List
<
ApiEndpointRespVO
>>
getApiEndpointPage
()
{
public
CommonResult
<
List
<
ApiEndpointRespVO
>>
getApiEndpointPage
()
{
List
<
ApiEndpointDO
>
pageResult
=
apiEndpointService
.
getApiEndpointList
();
List
<
ApiEndpointDO
>
apiEndpointDOS
=
apiEndpointService
.
getApiEndpointList
();
return
success
(
BeanUtils
.
toBean
(
pageResult
,
ApiEndpointRespVO
.
class
));
List
<
ApiEndpointRespVO
>
apiEndpointRespVOS
=
BeanUtils
.
toBean
(
apiEndpointDOS
,
ApiEndpointRespVO
.
class
);
for
(
ApiEndpointRespVO
apiEndpointRespVO
:
apiEndpointRespVOS
)
{
List
<
IndustryApplicationRespVO
>
industryApplicationRespVOS
=
apiEndpointApplicationRelService
.
getApplicationByApiEndpointId
(
apiEndpointRespVO
.
getId
());
apiEndpointRespVO
.
setIndustryApplications
(
industryApplicationRespVOS
);
}
return
success
(
apiEndpointRespVOS
);
}
}
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpoint/vo/ApiEndpointRespVO.java
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpoint
.
vo
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpoint
.
vo
;
import
com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
lombok.*
;
import
java.util.*
;
import
java.util.*
;
...
@@ -7,6 +8,8 @@ import org.springframework.format.annotation.DateTimeFormat;
...
@@ -7,6 +8,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
com.alibaba.excel.annotation.*
;
import
com.alibaba.excel.annotation.*
;
import
javax.validation.constraints.NotEmpty
;
@Schema
(
description
=
"管理后台 - API 接口 Response VO"
)
@Schema
(
description
=
"管理后台 - API 接口 Response VO"
)
@Data
@Data
@ExcelIgnoreUnannotated
@ExcelIgnoreUnannotated
...
@@ -52,4 +55,9 @@ public class ApiEndpointRespVO {
...
@@ -52,4 +55,9 @@ public class ApiEndpointRespVO {
@ExcelProperty
(
"创建时间"
)
@ExcelProperty
(
"创建时间"
)
private
LocalDateTime
createTime
;
private
LocalDateTime
createTime
;
@Schema
(
description
=
"关联行业应用"
,
example
=
"[{}]"
)
@ExcelProperty
(
"关联行业应用"
)
private
List
<
IndustryApplicationRespVO
>
industryApplications
;
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpoint/vo/ApiEndpointSaveReqVO.java
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpoint
.
vo
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpoint
.
vo
;
import
com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
lombok.*
;
import
java.util.*
;
import
java.util.*
;
...
@@ -39,4 +40,10 @@ public class ApiEndpointSaveReqVO {
...
@@ -39,4 +40,10 @@ public class ApiEndpointSaveReqVO {
@Schema
(
description
=
"备注"
,
example
=
"你说的对"
)
@Schema
(
description
=
"备注"
,
example
=
"你说的对"
)
private
String
remark
;
private
String
remark
;
@Schema
(
description
=
"关联行业应用"
,
example
=
"[{}]"
)
@NotEmpty
(
message
=
"行业应用至少填写一个"
)
private
List
<
IndustryApplicationRespVO
>
industryApplications
;
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpointapplicationrel/ApiEndpointApplicationRelController.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpointapplicationrel
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
io.swagger.v3.oas.annotations.Parameter
;
import
io.swagger.v3.oas.annotations.Operation
;
import
javax.validation.constraints.*
;
import
javax.validation.*
;
import
javax.servlet.http.*
;
import
java.util.*
;
import
java.io.IOException
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
import
com.luhu.computility.framework.common.util.object.BeanUtils
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
import
com.luhu.computility.framework.excel.core.util.ExcelUtils
;
import
com.luhu.computility.framework.apilog.core.annotation.ApiAccessLog
;
import
static
com
.
luhu
.
computility
.
framework
.
apilog
.
core
.
enums
.
OperateTypeEnum
.*;
import
com.luhu.computility.module.apihub.controller.admin.apiendpointapplicationrel.vo.*
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiendpointapplicationrel.ApiEndpointApplicationRelDO
;
import
com.luhu.computility.module.apihub.service.apiendpointapplicationrel.ApiEndpointApplicationRelService
;
@Tag
(
name
=
"管理后台 - 行业应用与接口关联"
)
@RestController
@RequestMapping
(
"/apihub/api-endpoint-application-rel"
)
@Validated
public
class
ApiEndpointApplicationRelController
{
@Resource
private
ApiEndpointApplicationRelService
apiEndpointApplicationRelService
;
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建行业应用与接口关联"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint-application-rel:create')"
)
public
CommonResult
<
Long
>
createApiEndpointApplicationRel
(
@Valid
@RequestBody
ApiEndpointApplicationRelSaveReqVO
createReqVO
)
{
return
success
(
apiEndpointApplicationRelService
.
createApiEndpointApplicationRel
(
createReqVO
));
}
@PutMapping
(
"/update"
)
@Operation
(
summary
=
"更新行业应用与接口关联"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint-application-rel:update')"
)
public
CommonResult
<
Boolean
>
updateApiEndpointApplicationRel
(
@Valid
@RequestBody
ApiEndpointApplicationRelSaveReqVO
updateReqVO
)
{
apiEndpointApplicationRelService
.
updateApiEndpointApplicationRel
(
updateReqVO
);
return
success
(
true
);
}
@DeleteMapping
(
"/delete"
)
@Operation
(
summary
=
"删除行业应用与接口关联"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint-application-rel:delete')"
)
public
CommonResult
<
Boolean
>
deleteApiEndpointApplicationRel
(
@RequestParam
(
"id"
)
Long
id
)
{
apiEndpointApplicationRelService
.
deleteApiEndpointApplicationRel
(
id
);
return
success
(
true
);
}
@DeleteMapping
(
"/delete-list"
)
@Parameter
(
name
=
"ids"
,
description
=
"编号"
,
required
=
true
)
@Operation
(
summary
=
"批量删除行业应用与接口关联"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint-application-rel:delete')"
)
public
CommonResult
<
Boolean
>
deleteApiEndpointApplicationRelList
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
apiEndpointApplicationRelService
.
deleteApiEndpointApplicationRelListByIds
(
ids
);
return
success
(
true
);
}
@GetMapping
(
"/get"
)
@Operation
(
summary
=
"获得行业应用与接口关联"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint-application-rel:query')"
)
public
CommonResult
<
ApiEndpointApplicationRelRespVO
>
getApiEndpointApplicationRel
(
@RequestParam
(
"id"
)
Long
id
)
{
ApiEndpointApplicationRelDO
apiEndpointApplicationRel
=
apiEndpointApplicationRelService
.
getApiEndpointApplicationRel
(
id
);
return
success
(
BeanUtils
.
toBean
(
apiEndpointApplicationRel
,
ApiEndpointApplicationRelRespVO
.
class
));
}
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"获得行业应用与接口关联分页"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint-application-rel:query')"
)
public
CommonResult
<
PageResult
<
ApiEndpointApplicationRelRespVO
>>
getApiEndpointApplicationRelPage
(
@Valid
ApiEndpointApplicationRelPageReqVO
pageReqVO
)
{
PageResult
<
ApiEndpointApplicationRelDO
>
pageResult
=
apiEndpointApplicationRelService
.
getApiEndpointApplicationRelPage
(
pageReqVO
);
return
success
(
BeanUtils
.
toBean
(
pageResult
,
ApiEndpointApplicationRelRespVO
.
class
));
}
@GetMapping
(
"/export-excel"
)
@Operation
(
summary
=
"导出行业应用与接口关联 Excel"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-endpoint-application-rel:export')"
)
@ApiAccessLog
(
operateType
=
EXPORT
)
public
void
exportApiEndpointApplicationRelExcel
(
@Valid
ApiEndpointApplicationRelPageReqVO
pageReqVO
,
HttpServletResponse
response
)
throws
IOException
{
pageReqVO
.
setPageSize
(
PageParam
.
PAGE_SIZE_NONE
);
List
<
ApiEndpointApplicationRelDO
>
list
=
apiEndpointApplicationRelService
.
getApiEndpointApplicationRelPage
(
pageReqVO
).
getList
();
// 导出 Excel
ExcelUtils
.
write
(
response
,
"行业应用与接口关联.xls"
,
"数据"
,
ApiEndpointApplicationRelRespVO
.
class
,
BeanUtils
.
toBean
(
list
,
ApiEndpointApplicationRelRespVO
.
class
));
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpointapplicationrel/vo/ApiEndpointApplicationRelPageReqVO.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpointapplicationrel
.
vo
;
import
lombok.*
;
import
java.util.*
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.time.LocalDateTime
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
date
.
DateUtils
.
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
;
@Schema
(
description
=
"管理后台 - 行业应用与接口关联分页 Request VO"
)
@Data
public
class
ApiEndpointApplicationRelPageReqVO
extends
PageParam
{
@Schema
(
description
=
"行业应用ID,关联 industry_application.id"
,
example
=
"3247"
)
private
Long
industryApplicationId
;
@Schema
(
description
=
"接口ID,关联 apihub_api_endpoint.id"
,
example
=
"18744"
)
private
Long
apiEndpointId
;
@Schema
(
description
=
"创建时间"
)
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
private
LocalDateTime
[]
createTime
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpointapplicationrel/vo/ApiEndpointApplicationRelRespVO.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpointapplicationrel
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
java.util.*
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.time.LocalDateTime
;
import
com.alibaba.excel.annotation.*
;
@Schema
(
description
=
"管理后台 - 行业应用与接口关联 Response VO"
)
@Data
@ExcelIgnoreUnannotated
public
class
ApiEndpointApplicationRelRespVO
{
@Schema
(
description
=
"主键"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"25217"
)
@ExcelProperty
(
"主键"
)
private
Long
id
;
@Schema
(
description
=
"行业应用ID,关联 industry_application.id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"3247"
)
@ExcelProperty
(
"行业应用ID,关联 industry_application.id"
)
private
Long
industryApplicationId
;
@Schema
(
description
=
"接口ID,关联 apihub_api_endpoint.id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"18744"
)
@ExcelProperty
(
"接口ID,关联 apihub_api_endpoint.id"
)
private
Long
apiEndpointId
;
@Schema
(
description
=
"创建时间"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"创建时间"
)
private
LocalDateTime
createTime
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiendpointapplicationrel/vo/ApiEndpointApplicationRelSaveReqVO.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiendpointapplicationrel
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
java.util.*
;
import
javax.validation.constraints.*
;
@Schema
(
description
=
"管理后台 - 行业应用与接口关联新增/修改 Request VO"
)
@Data
public
class
ApiEndpointApplicationRelSaveReqVO
{
@Schema
(
description
=
"主键"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"25217"
)
private
Long
id
;
@Schema
(
description
=
"行业应用ID,关联 industry_application.id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"3247"
)
@NotNull
(
message
=
"行业应用ID,关联 industry_application.id不能为空"
)
private
Long
industryApplicationId
;
@Schema
(
description
=
"接口ID,关联 apihub_api_endpoint.id"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"18744"
)
@NotNull
(
message
=
"接口ID,关联 apihub_api_endpoint.id不能为空"
)
private
Long
apiEndpointId
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/ApiOrderController.java
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiorder
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiorder
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.UserApiUsageSaveReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.UserApiUsageSaveReqVO
;
import
com.luhu.computility.module.apihub.enums.ApiOrderPayStatus
;
import
com.luhu.computility.module.apihub.enums.ApiOrderStatus
;
import
com.luhu.computility.module.apihub.service.userapiusage.UserApiUsageService
;
import
com.luhu.computility.module.apihub.service.userapiusage.UserApiUsageService
;
import
com.luhu.computility.module.pay.api.notify.dto.PayOrderNotifyReqDTO
;
import
com.luhu.computility.module.pay.api.notify.dto.PayOrderNotifyReqDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -95,8 +98,16 @@ public class ApiOrderController {
...
@@ -95,8 +98,16 @@ public class ApiOrderController {
@Operation
(
summary
=
"获得api订单分页"
)
@Operation
(
summary
=
"获得api订单分页"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-order:query')"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-order:query')"
)
public
CommonResult
<
PageResult
<
ApiOrderRespVO
>>
getApiOrderPage
(
@Valid
ApiOrderPageReqVO
pageReqVO
)
{
public
CommonResult
<
PageResult
<
ApiOrderRespVO
>>
getApiOrderPage
(
@Valid
ApiOrderPageReqVO
pageReqVO
)
{
PageResult
<
ApiOrderDO
>
pageResult
=
apiOrderService
.
getApiOrderPage
(
pageReqVO
);
PageResult
<
ApiOrderRespVO
>
pageResult
=
apiOrderService
.
getApiOrderPage
(
pageReqVO
);
return
success
(
BeanUtils
.
toBean
(
pageResult
,
ApiOrderRespVO
.
class
));
for
(
ApiOrderRespVO
apiOrderRespVO
:
pageResult
.
getList
())
{
apiOrderRespVO
.
setStatusName
(
ApiOrderStatus
.
getByValue
(
apiOrderRespVO
.
getStatus
()).
getRemark
());
if
(!
ObjectUtil
.
isEmpty
(
apiOrderRespVO
.
getPayStatus
()))
{
apiOrderRespVO
.
setPayStatusName
(
ApiOrderPayStatus
.
getByValue
(
apiOrderRespVO
.
getPayStatus
()).
getRemark
());
}
}
return
success
(
pageResult
);
}
}
@GetMapping
(
"/export-excel"
)
@GetMapping
(
"/export-excel"
)
...
@@ -106,10 +117,9 @@ public class ApiOrderController {
...
@@ -106,10 +117,9 @@ public class ApiOrderController {
public
void
exportApiOrderExcel
(
@Valid
ApiOrderPageReqVO
pageReqVO
,
public
void
exportApiOrderExcel
(
@Valid
ApiOrderPageReqVO
pageReqVO
,
HttpServletResponse
response
)
throws
IOException
{
HttpServletResponse
response
)
throws
IOException
{
pageReqVO
.
setPageSize
(
PageParam
.
PAGE_SIZE_NONE
);
pageReqVO
.
setPageSize
(
PageParam
.
PAGE_SIZE_NONE
);
List
<
ApiOrderDO
>
list
=
apiOrderService
.
getApiOrderPage
(
pageReqVO
).
getList
();
// 导出 Excel
// 导出 Excel
ExcelUtils
.
write
(
response
,
"api订单.xls"
,
"数据"
,
ApiOrderRespVO
.
class
,
ExcelUtils
.
write
(
response
,
"api订单.xls"
,
"数据"
,
ApiOrderRespVO
.
class
,
BeanUtils
.
toBean
(
list
,
ApiOrderRespVO
.
class
));
apiOrderService
.
getApiOrderPage
(
pageReqVO
).
getList
(
));
}
}
/**
/**
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/vo/ApiOrderRespVO.java
View file @
4cabaec9
...
@@ -21,6 +21,10 @@ public class ApiOrderRespVO {
...
@@ -21,6 +21,10 @@ public class ApiOrderRespVO {
@ExcelProperty
(
"下单用户ID"
)
@ExcelProperty
(
"下单用户ID"
)
private
Long
userId
;
private
Long
userId
;
@Schema
(
description
=
"下单用户手机号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"3895"
)
@ExcelProperty
(
"下单用户手机号"
)
private
String
userMobile
;
@Schema
(
description
=
"购买的API ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"10347"
)
@Schema
(
description
=
"购买的API ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"10347"
)
@ExcelProperty
(
"购买的API ID"
)
@ExcelProperty
(
"购买的API ID"
)
private
Long
apiId
;
private
Long
apiId
;
...
@@ -56,6 +60,15 @@ public class ApiOrderRespVO {
...
@@ -56,6 +60,15 @@ public class ApiOrderRespVO {
@ExcelProperty
(
"订单状态:0=待支付,1=已支付,2=已取消"
)
@ExcelProperty
(
"订单状态:0=待支付,1=已支付,2=已取消"
)
private
Integer
status
;
private
Integer
status
;
@Schema
(
description
=
"订单状态值:0=待支付,1=已支付,2=已取消"
,
example
=
"2"
)
private
String
statusName
;
@Schema
(
description
=
"支付状态"
,
example
=
"2"
)
private
Integer
payStatus
;
@Schema
(
description
=
"支付状态值"
,
example
=
"2"
)
private
String
payStatusName
;
@Schema
(
description
=
"支付订单编号"
,
example
=
"14961"
)
@Schema
(
description
=
"支付订单编号"
,
example
=
"14961"
)
@ExcelProperty
(
"支付订单编号"
)
@ExcelProperty
(
"支付订单编号"
)
private
Long
payOrderId
;
private
Long
payOrderId
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/vo/ApiOrderSaveReqVO.java
View file @
4cabaec9
...
@@ -53,6 +53,9 @@ public class ApiOrderSaveReqVO {
...
@@ -53,6 +53,9 @@ public class ApiOrderSaveReqVO {
@Schema
(
description
=
"订单取消时间"
)
@Schema
(
description
=
"订单取消时间"
)
private
LocalDateTime
cancelTime
;
private
LocalDateTime
cancelTime
;
@Schema
(
description
=
"支付状态"
,
example
=
"2"
)
private
Integer
payStatus
;
@Schema
(
description
=
"备注"
,
example
=
"你说的对"
)
@Schema
(
description
=
"备注"
,
example
=
"你说的对"
)
private
String
remark
;
private
String
remark
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/AppApiController.java
View file @
4cabaec9
...
@@ -8,6 +8,7 @@ import com.luhu.computility.framework.common.util.object.BeanUtils;
...
@@ -8,6 +8,7 @@ import com.luhu.computility.framework.common.util.object.BeanUtils;
import
com.luhu.computility.framework.excel.core.util.ExcelUtils
;
import
com.luhu.computility.framework.excel.core.util.ExcelUtils
;
import
com.luhu.computility.module.apihub.controller.admin.api.vo.ApiPageReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.api.vo.ApiPageReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.api.vo.ApiRespVO
;
import
com.luhu.computility.module.apihub.controller.admin.api.vo.ApiRespVO
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEndpointRespVO
;
import
com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPackageRespVO
;
import
com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPackageRespVO
;
import
com.luhu.computility.module.apihub.controller.app.api.vo.AppApiPackageRespVO
;
import
com.luhu.computility.module.apihub.controller.app.api.vo.AppApiPackageRespVO
;
import
com.luhu.computility.module.apihub.controller.app.api.vo.AppApiRespVO
;
import
com.luhu.computility.module.apihub.controller.app.api.vo.AppApiRespVO
;
...
@@ -16,7 +17,10 @@ import com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategory
...
@@ -16,7 +17,10 @@ import com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategory
import
com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO
;
import
com.luhu.computility.module.apihub.service.api.ApiService
;
import
com.luhu.computility.module.apihub.service.api.ApiService
;
import
com.luhu.computility.module.apihub.service.apicategory.ApiCategoryService
;
import
com.luhu.computility.module.apihub.service.apicategory.ApiCategoryService
;
import
com.luhu.computility.module.apihub.service.apiendpointapplicationrel.ApiEndpointApplicationRelService
;
import
com.luhu.computility.module.apihub.service.apiendpointrel.ApiEndpointRelService
;
import
com.luhu.computility.module.apihub.service.apipackage.ApiPackageService
;
import
com.luhu.computility.module.apihub.service.apipackage.ApiPackageService
;
import
com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Parameter
;
import
io.swagger.v3.oas.annotations.Parameter
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
...
@@ -53,6 +57,14 @@ public class AppApiController {
...
@@ -53,6 +57,14 @@ public class AppApiController {
@Resource
@Resource
private
ApiPackageService
apiPackageService
;
private
ApiPackageService
apiPackageService
;
@Resource
private
ApiEndpointRelService
apiEndpointRelService
;
@Resource
private
ApiEndpointApplicationRelService
apiEndpointApplicationRelService
;
@GetMapping
(
"/get"
)
@GetMapping
(
"/get"
)
@Operation
(
summary
=
"获得API信息"
)
@Operation
(
summary
=
"获得API信息"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
...
@@ -64,6 +76,16 @@ public class AppApiController {
...
@@ -64,6 +76,16 @@ public class AppApiController {
apiRespVO
.
setCategoryName
(
apiCategory
.
getName
());
apiRespVO
.
setCategoryName
(
apiCategory
.
getName
());
List
<
ApiPackageDO
>
apiPackageDOS
=
apiPackageService
.
selectByApiId
(
id
);
List
<
ApiPackageDO
>
apiPackageDOS
=
apiPackageService
.
selectByApiId
(
id
);
apiRespVO
.
setApiPackages
(
BeanUtils
.
toBean
(
apiPackageDOS
,
AppApiPackageRespVO
.
class
));
apiRespVO
.
setApiPackages
(
BeanUtils
.
toBean
(
apiPackageDOS
,
AppApiPackageRespVO
.
class
));
List
<
ApiEndpointRespVO
>
apiEndpointRespVOS
=
apiEndpointRelService
.
getApiEndpointByApiId
(
id
);
for
(
ApiEndpointRespVO
apiEndpointRespVO
:
apiEndpointRespVOS
)
{
List
<
IndustryApplicationRespVO
>
industryApplicationRespVOS
=
apiEndpointApplicationRelService
.
getApplicationByApiEndpointId
(
apiEndpointRespVO
.
getId
());
apiEndpointRespVO
.
setIndustryApplications
(
industryApplicationRespVOS
);
}
apiRespVO
.
setApiEndPoints
(
apiEndpointRespVOS
);
return
success
(
apiRespVO
);
return
success
(
apiRespVO
);
}
}
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/vo/AppApiRespVO.java
View file @
4cabaec9
...
@@ -2,6 +2,8 @@ package com.luhu.computility.module.apihub.controller.app.api.vo;
...
@@ -2,6 +2,8 @@ package com.luhu.computility.module.apihub.controller.app.api.vo;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEndpointRespVO
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEndpointSaveReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPackageRespVO
;
import
com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPackageRespVO
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -54,6 +56,9 @@ public class AppApiRespVO {
...
@@ -54,6 +56,9 @@ public class AppApiRespVO {
@Schema
(
description
=
"套餐包"
,
example
=
"[{}]"
)
@Schema
(
description
=
"套餐包"
,
example
=
"[{}]"
)
private
List
<
AppApiPackageRespVO
>
apiPackages
;
private
List
<
AppApiPackageRespVO
>
apiPackages
;
@Schema
(
description
=
""
,
example
=
"[{}]"
)
private
List
<
ApiEndpointRespVO
>
apiEndPoints
;
@Schema
(
description
=
"创建时间"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@Schema
(
description
=
"创建时间"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"创建时间"
)
@ExcelProperty
(
"创建时间"
)
private
LocalDateTime
createTime
;
private
LocalDateTime
createTime
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/userapiusage/AppUserApiUsageController.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
userapiusage
;
import
com.luhu.computility.framework.apilog.core.annotation.ApiAccessLog
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.util.object.BeanUtils
;
import
com.luhu.computility.framework.excel.core.util.ExcelUtils
;
import
com.luhu.computility.framework.security.core.util.SecurityFrameworkUtils
;
import
com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.UserApiUsagePageReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.UserApiUsageRespVO
;
import
com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO
;
import
com.luhu.computility.module.apihub.service.userapiusage.UserApiUsageService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Parameter
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.springframework.security.access.prepost.PreAuthorize
;
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.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
java.io.IOException
;
import
static
com
.
luhu
.
computility
.
framework
.
apilog
.
core
.
enums
.
OperateTypeEnum
.
EXPORT
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
@Tag
(
name
=
"用户端 - 我的资源"
)
@RestController
@RequestMapping
(
"/apihub/user-api-usage"
)
@Validated
public
class
AppUserApiUsageController
{
@Resource
private
UserApiUsageService
userApiUsageService
;
@GetMapping
(
"/get"
)
@Operation
(
summary
=
"获得资源管理"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
public
CommonResult
<
AppUserApiUsageRespVO
>
getUserApiUsage
(
@RequestParam
(
"id"
)
Long
id
)
{
UserApiUsageDO
userApiUsage
=
userApiUsageService
.
getUserApiUsage
(
id
);
return
success
(
BeanUtils
.
toBean
(
userApiUsage
,
AppUserApiUsageRespVO
.
class
));
}
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"获得资源管理分页"
)
public
CommonResult
<
PageResult
<
AppUserApiUsageRespVO
>>
getUserApiUsagePage
(
@Valid
UserApiUsagePageReqVO
pageReqVO
)
{
pageReqVO
.
setUserId
(
SecurityFrameworkUtils
.
getLoginUserId
());
return
success
(
userApiUsageService
.
getAppUserApiUsagePage
(
pageReqVO
));
}
@GetMapping
(
"/export-excel"
)
@Operation
(
summary
=
"导出用户API管理 Excel"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:user-api-usage:export')"
)
@ApiAccessLog
(
operateType
=
EXPORT
)
public
void
exportUserApiUsageExcel
(
@Valid
UserApiUsagePageReqVO
pageReqVO
,
HttpServletResponse
response
)
throws
IOException
{
pageReqVO
.
setPageSize
(
PageParam
.
PAGE_SIZE_NONE
);
// 导出 Excel
ExcelUtils
.
write
(
response
,
"用户API管理.xls"
,
"数据"
,
AppUserApiUsageRespVO
.
class
,
userApiUsageService
.
getAppUserApiUsagePage
(
pageReqVO
).
getList
());
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/userapiusage/vo/AppUserApiUsageRespVO.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
userapiusage
.
vo
;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
@Schema
(
description
=
"用户端 - 用户 API 使用统计 Response VO"
)
@Data
@ExcelIgnoreUnannotated
public
class
AppUserApiUsageRespVO
{
@Schema
(
description
=
"记录ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"2826"
)
@ExcelProperty
(
"记录ID"
)
private
Long
id
;
@Schema
(
description
=
"用户手机号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"26592"
)
@ExcelProperty
(
"用户手机号"
)
private
String
userMobile
;
@Schema
(
description
=
"购买的API 名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"10347"
)
private
String
apiName
;
@Schema
(
description
=
"购买的套餐名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
String
packageName
;
@Schema
(
description
=
"套餐最大可用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packageTimes
;
@Schema
(
description
=
"套餐价格"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packagePrice
;
@Schema
(
description
=
"套餐有效期"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packageValidDays
;
@Schema
(
description
=
"已使用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"已使用次数"
)
private
Integer
usedTimes
;
@Schema
(
description
=
"过期时间"
)
@ExcelProperty
(
"过期时间"
)
private
LocalDateTime
expireTime
;
@Schema
(
description
=
"备注"
,
example
=
"随便"
)
@ExcelProperty
(
"备注"
)
private
String
remark
;
@Schema
(
description
=
"创建时间"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"创建时间"
)
private
LocalDateTime
createTime
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/userapiusage/vo/UserApiUsageSaveReqVO.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
userapiusage
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.time.LocalDateTime
;
@Schema
(
description
=
"管理后台 - 用户 API 使用统计新增/修改 Request VO"
)
@Data
public
class
UserApiUsageSaveReqVO
{
@Schema
(
description
=
"记录ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"2826"
)
private
Long
id
;
@Schema
(
description
=
"用户ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"26592"
)
@NotNull
(
message
=
"用户ID不能为空"
)
private
Long
userId
;
@Schema
(
description
=
"API ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8522"
)
@NotNull
(
message
=
"API ID不能为空"
)
private
Long
apiId
;
@Schema
(
description
=
"购买的API 名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"10347"
)
private
String
apiName
;
@Schema
(
description
=
"购买的套餐ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
@ExcelProperty
(
"购买的套餐ID"
)
private
Long
packageId
;
@Schema
(
description
=
"购买的套餐名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
String
packageName
;
@Schema
(
description
=
"套餐可用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packageTimes
;
@Schema
(
description
=
"套餐价格"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packagePrice
;
@Schema
(
description
=
"套餐有效期"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packageValidDays
;
@Schema
(
description
=
"已使用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@NotNull
(
message
=
"已使用次数不能为空"
)
private
Integer
usedTimes
;
@Schema
(
description
=
"过期时间"
)
private
LocalDateTime
expireTime
;
@Schema
(
description
=
"备注"
,
example
=
"随便"
)
private
String
remark
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apiendpointapplicationrel/ApiEndpointApplicationRelDO.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
dal
.
dataobject
.
apiendpointapplicationrel
;
import
lombok.*
;
import
java.util.*
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.luhu.computility.framework.mybatis.core.dataobject.BaseDO
;
/**
* 行业应用与接口关联 DO
*
* @author ljq
*/
@TableName
(
"apihub_api_endpoint_application_rel"
)
@KeySequence
(
"apihub_api_endpoint_application_rel_seq"
)
// 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ToString
(
callSuper
=
true
)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
ApiEndpointApplicationRelDO
extends
BaseDO
{
/**
* 主键
*/
@TableId
private
Long
id
;
/**
* 行业应用ID,关联 industry_application.id
*/
private
Long
industryApplicationId
;
/**
* 接口ID,关联 apihub_api_endpoint.id
*/
private
Long
apiEndpointId
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiendpointapplicationrel/ApiEndpointApplicationRelMapper.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
dal
.
mysql
.
apiendpointapplicationrel
;
import
java.util.*
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX
;
import
com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX
;
import
com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEndpointRespVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiendpointapplicationrel.ApiEndpointApplicationRelDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO
;
import
com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO
;
import
com.luhu.computility.module.biz.dal.dataobject.industryapplication.IndustryApplicationDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpointapplicationrel.vo.*
;
/**
* 行业应用与接口关联 Mapper
*
* @author ljq
*/
@Mapper
public
interface
ApiEndpointApplicationRelMapper
extends
BaseMapperX
<
ApiEndpointApplicationRelDO
>
{
default
PageResult
<
ApiEndpointApplicationRelDO
>
selectPage
(
ApiEndpointApplicationRelPageReqVO
reqVO
)
{
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
ApiEndpointApplicationRelDO
>()
.
eqIfPresent
(
ApiEndpointApplicationRelDO:
:
getIndustryApplicationId
,
reqVO
.
getIndustryApplicationId
())
.
eqIfPresent
(
ApiEndpointApplicationRelDO:
:
getApiEndpointId
,
reqVO
.
getApiEndpointId
())
.
betweenIfPresent
(
ApiEndpointApplicationRelDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
orderByDesc
(
ApiEndpointApplicationRelDO:
:
getId
));
}
default
int
deleteByApiEndpointId
(
Long
apiEndpointId
)
{
return
delete
(
new
LambdaQueryWrapperX
<
ApiEndpointApplicationRelDO
>()
.
eqIfPresent
(
ApiEndpointApplicationRelDO:
:
getApiEndpointId
,
apiEndpointId
));
}
default
List
<
IndustryApplicationRespVO
>
getApiEndpointByApiId
(
Long
apiEndpointId
)
{
return
selectJoinList
(
IndustryApplicationRespVO
.
class
,
new
MPJLambdaWrapperX
<
ApiEndpointApplicationRelDO
>()
.
selectAs
(
IndustryApplicationDO:
:
getTitle
,
IndustryApplicationRespVO:
:
getTitle
)
.
selectAs
(
ApiEndpointApplicationRelDO:
:
getIndustryApplicationId
,
IndustryApplicationRespVO:
:
getId
)
.
leftJoin
(
IndustryApplicationDO
.
class
,
IndustryApplicationDO:
:
getId
,
ApiEndpointApplicationRelDO:
:
getIndustryApplicationId
)
.
eqIfPresent
(
ApiEndpointApplicationRelDO:
:
getApiEndpointId
,
apiEndpointId
)
);
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiorder/ApiOrderMapper.java
View file @
4cabaec9
...
@@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
...
@@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX
;
import
com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX
;
import
com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX
;
import
com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX
;
import
com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO
;
import
com.luhu.computility.module.member.dal.dataobject.user.MemberUserDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*
;
import
com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*
;
...
@@ -22,8 +24,11 @@ import com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*;
...
@@ -22,8 +24,11 @@ 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
PageResult
<
ApiOrderDO
>
selectPage
(
ApiOrderPageReqVO
reqVO
)
{
default
PageResult
<
ApiOrderRespVO
>
selectPage
(
ApiOrderPageReqVO
reqVO
)
{
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
ApiOrderDO
>()
return
selectJoinPage
(
reqVO
,
ApiOrderRespVO
.
class
,
new
MPJLambdaWrapperX
<
ApiOrderDO
>()
.
selectAll
(
ApiOrderDO
.
class
)
.
selectAs
(
MemberUserDO:
:
getMobile
,
ApiOrderRespVO:
:
getUserMobile
)
.
leftJoin
(
MemberUserDO
.
class
,
MemberUserDO:
:
getId
,
ApiOrderDO:
:
getUserId
)
.
eqIfPresent
(
ApiOrderDO:
:
getUserId
,
reqVO
.
getUserId
())
.
eqIfPresent
(
ApiOrderDO:
:
getUserId
,
reqVO
.
getUserId
())
.
eqIfPresent
(
ApiOrderDO:
:
getApiId
,
reqVO
.
getApiId
())
.
eqIfPresent
(
ApiOrderDO:
:
getApiId
,
reqVO
.
getApiId
())
.
eqIfPresent
(
ApiOrderDO:
:
getPackageId
,
reqVO
.
getPackageId
())
.
eqIfPresent
(
ApiOrderDO:
:
getPackageId
,
reqVO
.
getPackageId
())
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/userapiusage/UserApiUsageMapper.java
View file @
4cabaec9
...
@@ -7,6 +7,7 @@ import com.luhu.computility.framework.common.pojo.PageResult;
...
@@ -7,6 +7,7 @@ import com.luhu.computility.framework.common.pojo.PageResult;
import
com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX
;
import
com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX
;
import
com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX
;
import
com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX
;
import
com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX
;
import
com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX
;
import
com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO
;
...
@@ -29,6 +30,19 @@ public interface UserApiUsageMapper extends BaseMapperX<UserApiUsageDO> {
...
@@ -29,6 +30,19 @@ public interface UserApiUsageMapper extends BaseMapperX<UserApiUsageDO> {
.
leftJoin
(
MemberUserDO
.
class
,
MemberUserDO:
:
getId
,
UserApiUsageDO:
:
getUserId
)
.
leftJoin
(
MemberUserDO
.
class
,
MemberUserDO:
:
getId
,
UserApiUsageDO:
:
getUserId
)
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getPackageName
()),
UserApiUsageDO:
:
getPackageName
,
reqVO
.
getPackageName
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getPackageName
()),
UserApiUsageDO:
:
getPackageName
,
reqVO
.
getPackageName
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getApiName
()),
UserApiUsageDO:
:
getApiName
,
reqVO
.
getApiName
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getApiName
()),
UserApiUsageDO:
:
getApiName
,
reqVO
.
getApiName
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getUserMobile
()),
MemberUserDO:
:
getMobile
,
reqVO
.
getUserMobile
())
.
orderByDesc
(
UserApiUsageDO:
:
getCreateTime
));
}
default
PageResult
<
AppUserApiUsageRespVO
>
selectAppPage
(
UserApiUsagePageReqVO
reqVO
)
{
return
selectJoinPage
(
reqVO
,
AppUserApiUsageRespVO
.
class
,
new
MPJLambdaWrapperX
<
UserApiUsageDO
>()
.
selectAll
(
UserApiUsageDO
.
class
)
.
selectAs
(
MemberUserDO
::
getMobile
,
UserApiUsageRespVO
::
getUserMobile
)
.
leftJoin
(
MemberUserDO
.
class
,
MemberUserDO:
:
getId
,
UserApiUsageDO:
:
getUserId
)
.
eqIfPresent
(
UserApiUsageDO:
:
getUserId
,
reqVO
.
getUserId
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getPackageName
()),
UserApiUsageDO:
:
getPackageName
,
reqVO
.
getPackageName
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getApiName
()),
UserApiUsageDO:
:
getApiName
,
reqVO
.
getApiName
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getUserMobile
()),
MemberUserDO:
:
getMobile
,
reqVO
.
getUserMobile
())
.
orderByDesc
(
UserApiUsageDO:
:
getCreateTime
));
.
orderByDesc
(
UserApiUsageDO:
:
getCreateTime
));
}
}
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ErrorCodeConstants.java
View file @
4cabaec9
...
@@ -22,4 +22,5 @@ public interface ErrorCodeConstants {
...
@@ -22,4 +22,5 @@ public interface ErrorCodeConstants {
ErrorCode
API_ENDPOINT_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_017
,
"API 接口不存在"
);
ErrorCode
API_ENDPOINT_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_017
,
"API 接口不存在"
);
ErrorCode
API_ENDPOINT_REL_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_018
,
"API 应用与接口关系不存在"
);
ErrorCode
API_ENDPOINT_REL_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_018
,
"API 应用与接口关系不存在"
);
ErrorCode
APP_CREDENTIAL_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_019
,
"用户密钥信息不存在"
);
ErrorCode
APP_CREDENTIAL_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_019
,
"用户密钥信息不存在"
);
ErrorCode
API_ENDPOINT_APPLICATION_REL_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_020
,
"行业应用与接口关联不存在"
);
}
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiendpointapplicationrel/ApiEndpointApplicationRelService.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
service
.
apiendpointapplicationrel
;
import
java.util.*
;
import
javax.validation.*
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEndpointRespVO
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpointapplicationrel.vo.*
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiendpointapplicationrel.ApiEndpointApplicationRelDO
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO
;
/**
* 行业应用与接口关联 Service 接口
*
* @author ljq
*/
public
interface
ApiEndpointApplicationRelService
{
/**
* 创建行业应用与接口关联
*
* @param createReqVO 创建信息
* @return 编号
*/
Long
createApiEndpointApplicationRel
(
@Valid
ApiEndpointApplicationRelSaveReqVO
createReqVO
);
/**
* 更新行业应用与接口关联
*
* @param updateReqVO 更新信息
*/
void
updateApiEndpointApplicationRel
(
@Valid
ApiEndpointApplicationRelSaveReqVO
updateReqVO
);
/**
* 删除行业应用与接口关联
*
* @param id 编号
*/
void
deleteApiEndpointApplicationRel
(
Long
id
);
/**
* 删除行业应用与接口关联(根据接口id)
*
* @param apiEndpointId 编号
*/
void
deleteApiEndpointApplicationRelByApiEndpointId
(
Long
apiEndpointId
);
/**
* 获得行业应用 (根据接口id)
*
* @param apiEndpointId
* @return 行业应用
*/
List
<
IndustryApplicationRespVO
>
getApplicationByApiEndpointId
(
Long
apiEndpointId
);
/**
* 批量删除行业应用与接口关联
*
* @param ids 编号
*/
void
deleteApiEndpointApplicationRelListByIds
(
List
<
Long
>
ids
);
/**
* 获得行业应用与接口关联
*
* @param id 编号
* @return 行业应用与接口关联
*/
ApiEndpointApplicationRelDO
getApiEndpointApplicationRel
(
Long
id
);
/**
* 获得行业应用与接口关联分页
*
* @param pageReqVO 分页查询
* @return 行业应用与接口关联分页
*/
PageResult
<
ApiEndpointApplicationRelDO
>
getApiEndpointApplicationRelPage
(
ApiEndpointApplicationRelPageReqVO
pageReqVO
);
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiendpointapplicationrel/ApiEndpointApplicationRelServiceImpl.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
service
.
apiendpointapplicationrel
;
import
cn.hutool.core.collection.CollUtil
;
import
com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.*
;
import
com.luhu.computility.module.apihub.controller.admin.apiendpointapplicationrel.vo.*
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiendpointapplicationrel.ApiEndpointApplicationRelDO
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
com.luhu.computility.framework.common.util.object.BeanUtils
;
import
com.luhu.computility.module.apihub.dal.mysql.apiendpointapplicationrel.ApiEndpointApplicationRelMapper
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
convertList
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
diffList
;
import
static
com
.
luhu
.
computility
.
module
.
apihub
.
enums
.
ErrorCodeConstants
.*;
/**
* 行业应用与接口关联 Service 实现类
*
* @author ljq
*/
@Service
@Validated
public
class
ApiEndpointApplicationRelServiceImpl
implements
ApiEndpointApplicationRelService
{
@Resource
private
ApiEndpointApplicationRelMapper
apiEndpointApplicationRelMapper
;
@Override
public
Long
createApiEndpointApplicationRel
(
ApiEndpointApplicationRelSaveReqVO
createReqVO
)
{
// 插入
ApiEndpointApplicationRelDO
apiEndpointApplicationRel
=
BeanUtils
.
toBean
(
createReqVO
,
ApiEndpointApplicationRelDO
.
class
);
apiEndpointApplicationRelMapper
.
insert
(
apiEndpointApplicationRel
);
// 返回
return
apiEndpointApplicationRel
.
getId
();
}
@Override
public
void
updateApiEndpointApplicationRel
(
ApiEndpointApplicationRelSaveReqVO
updateReqVO
)
{
// 校验存在
validateApiEndpointApplicationRelExists
(
updateReqVO
.
getId
());
// 更新
ApiEndpointApplicationRelDO
updateObj
=
BeanUtils
.
toBean
(
updateReqVO
,
ApiEndpointApplicationRelDO
.
class
);
apiEndpointApplicationRelMapper
.
updateById
(
updateObj
);
}
@Override
public
void
deleteApiEndpointApplicationRel
(
Long
id
)
{
// 校验存在
validateApiEndpointApplicationRelExists
(
id
);
// 删除
apiEndpointApplicationRelMapper
.
deleteById
(
id
);
}
@Override
public
void
deleteApiEndpointApplicationRelListByIds
(
List
<
Long
>
ids
)
{
// 删除
apiEndpointApplicationRelMapper
.
deleteByIds
(
ids
);
}
private
void
validateApiEndpointApplicationRelExists
(
Long
id
)
{
if
(
apiEndpointApplicationRelMapper
.
selectById
(
id
)
==
null
)
{
throw
exception
(
API_ENDPOINT_APPLICATION_REL_NOT_EXISTS
);
}
}
@Override
public
ApiEndpointApplicationRelDO
getApiEndpointApplicationRel
(
Long
id
)
{
return
apiEndpointApplicationRelMapper
.
selectById
(
id
);
}
@Override
public
PageResult
<
ApiEndpointApplicationRelDO
>
getApiEndpointApplicationRelPage
(
ApiEndpointApplicationRelPageReqVO
pageReqVO
)
{
return
apiEndpointApplicationRelMapper
.
selectPage
(
pageReqVO
);
}
@Override
public
void
deleteApiEndpointApplicationRelByApiEndpointId
(
Long
apiEndpointId
)
{
// 删除
apiEndpointApplicationRelMapper
.
deleteByApiEndpointId
(
apiEndpointId
);
}
@Override
public
List
<
IndustryApplicationRespVO
>
getApplicationByApiEndpointId
(
Long
apiEndpointId
)
{
return
apiEndpointApplicationRelMapper
.
getApiEndpointByApiId
(
apiEndpointId
);
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderService.java
View file @
4cabaec9
...
@@ -63,7 +63,7 @@ public interface ApiOrderService {
...
@@ -63,7 +63,7 @@ public interface ApiOrderService {
* @param pageReqVO 分页查询
* @param pageReqVO 分页查询
* @return api订单分页
* @return api订单分页
*/
*/
PageResult
<
ApiOrder
D
O
>
getApiOrderPage
(
ApiOrderPageReqVO
pageReqVO
);
PageResult
<
ApiOrder
RespV
O
>
getApiOrderPage
(
ApiOrderPageReqVO
pageReqVO
);
/**
/**
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
View file @
4cabaec9
...
@@ -130,7 +130,7 @@ public class ApiOrderServiceImpl implements ApiOrderService {
...
@@ -130,7 +130,7 @@ public class ApiOrderServiceImpl implements ApiOrderService {
}
}
@Override
@Override
public
PageResult
<
ApiOrder
D
O
>
getApiOrderPage
(
ApiOrderPageReqVO
pageReqVO
)
{
public
PageResult
<
ApiOrder
RespV
O
>
getApiOrderPage
(
ApiOrderPageReqVO
pageReqVO
)
{
return
apiOrderMapper
.
selectPage
(
pageReqVO
);
return
apiOrderMapper
.
selectPage
(
pageReqVO
);
}
}
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/userapiusage/UserApiUsageService.java
View file @
4cabaec9
...
@@ -3,6 +3,7 @@ package com.luhu.computility.module.apihub.service.userapiusage;
...
@@ -3,6 +3,7 @@ package com.luhu.computility.module.apihub.service.userapiusage;
import
java.util.*
;
import
java.util.*
;
import
javax.validation.*
;
import
javax.validation.*
;
import
com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*
;
import
com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*
;
import
com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
...
@@ -59,4 +60,13 @@ public interface UserApiUsageService {
...
@@ -59,4 +60,13 @@ public interface UserApiUsageService {
*/
*/
PageResult
<
UserApiUsageRespVO
>
getUserApiUsagePage
(
UserApiUsagePageReqVO
pageReqVO
);
PageResult
<
UserApiUsageRespVO
>
getUserApiUsagePage
(
UserApiUsagePageReqVO
pageReqVO
);
/**
* 获得用户 API 使用统计分页
*
* @param pageReqVO 分页查询
* @return 用户 API 使用统计分页
*/
PageResult
<
AppUserApiUsageRespVO
>
getAppUserApiUsagePage
(
UserApiUsagePageReqVO
pageReqVO
);
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/userapiusage/UserApiUsageServiceImpl.java
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
apihub
.
service
.
userapiusage
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
service
.
userapiusage
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
...
@@ -82,4 +83,9 @@ public class UserApiUsageServiceImpl implements UserApiUsageService {
...
@@ -82,4 +83,9 @@ public class UserApiUsageServiceImpl implements UserApiUsageService {
return
userApiUsageMapper
.
selectPage
(
pageReqVO
);
return
userApiUsageMapper
.
selectPage
(
pageReqVO
);
}
}
@Override
public
PageResult
<
AppUserApiUsageRespVO
>
getAppUserApiUsagePage
(
UserApiUsagePageReqVO
pageReqVO
)
{
return
userApiUsageMapper
.
selectAppPage
(
pageReqVO
);
}
}
}
\ No newline at end of file
computility-module-biz/src/main/java/com/luhu/computility/module/biz/controller/admin/industryapplication/IndustryApplicationController.java
View file @
4cabaec9
...
@@ -96,6 +96,16 @@ public class IndustryApplicationController {
...
@@ -96,6 +96,16 @@ public class IndustryApplicationController {
return
success
(
respResult
);
return
success
(
respResult
);
}
}
@GetMapping
(
"/list"
)
@Operation
(
summary
=
"获得行业应用分页"
)
@PreAuthorize
(
"@ss.hasPermission('biz:industry-application:query')"
)
public
CommonResult
<
List
<
IndustryApplicationRespVO
>>
getIndustryApplicationList
()
{
List
<
IndustryApplicationDO
>
list
=
industryApplicationService
.
getAllIndustryApplication
();
// 新增Service方法
List
<
IndustryApplicationRespVO
>
result
=
BeanUtils
.
toBean
(
list
,
IndustryApplicationRespVO
.
class
);
return
success
(
result
);
}
@GetMapping
(
"/export-excel"
)
@GetMapping
(
"/export-excel"
)
@Operation
(
summary
=
"导出行业应用 Excel"
)
@Operation
(
summary
=
"导出行业应用 Excel"
)
@PreAuthorize
(
"@ss.hasPermission('biz:industry-application:export')"
)
@PreAuthorize
(
"@ss.hasPermission('biz:industry-application:export')"
)
...
...
computility-module-external/src/main/java/com/luhu/computility/module/external/utils/AppKeyGenerator.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
external
.
utils
;
import
cn.hutool.crypto.digest.DigestUtil
;
import
java.util.UUID
;
/**
* @version 1.0
* @Author ljq
* @Date 2025/9/9
* @注释
*/
public
class
AppKeyGenerator
{
/**
* 生成 appId(简单唯一标识)
*/
public
static
String
generateAppId
()
{
// 使用 UUID 去掉“-”,保证长度唯一
return
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
);
}
/**
* 生成 appSecret(保密,建议加密存储)
*/
public
static
String
generateAppSecret
()
{
// 随机 UUID + 当前时间戳 + SHA256 加密
String
raw
=
UUID
.
randomUUID
().
toString
()
+
System
.
currentTimeMillis
();
return
DigestUtil
.
sha256Hex
(
raw
);
}
public
static
void
main
(
String
[]
args
)
{
String
appId
=
generateAppId
();
String
appSecret
=
generateAppSecret
();
System
.
out
.
println
(
"appId: "
+
appId
);
System
.
out
.
println
(
"appSecret: "
+
appSecret
);
}
}
computility-module-external/src/main/java/com/luhu/computility/module/external/utils/AppSecretEncrypt.java
0 → 100644
View file @
4cabaec9
package
com
.
luhu
.
computility
.
module
.
external
.
utils
;
import
cn.hutool.crypto.Mode
;
import
cn.hutool.crypto.Padding
;
import
cn.hutool.crypto.symmetric.AES
;
import
cn.hutool.crypto.symmetric.SymmetricAlgorithm
;
/**
* @version 1.0
* @Author ljq
* @Date 2025/9/9
* @注释
*/
public
class
AppSecretEncrypt
{
// AES 对称密钥(32 字节,必须安全存储)
private
static
final
String
SECRET_KEY
=
"yoursupersecretkey123456789012"
;
private
static
final
AES
aes
=
new
AES
(
Mode
.
ECB
,
Padding
.
PKCS5Padding
,
SECRET_KEY
.
getBytes
());
/** 加密 appSecret 存入数据库 */
public
static
String
encrypt
(
String
appSecret
)
{
return
aes
.
encryptHex
(
appSecret
);
}
/** 解密数据库中的 appSecret,用于签名校验 */
public
static
String
decrypt
(
String
encryptedAppSecret
)
{
return
aes
.
decryptStr
(
encryptedAppSecret
);
}
public
static
void
main
(
String
[]
args
)
{
String
appSecret
=
"my-secret-value"
;
String
encrypted
=
encrypt
(
appSecret
);
String
decrypted
=
decrypt
(
encrypted
);
System
.
out
.
println
(
"原始: "
+
appSecret
);
System
.
out
.
println
(
"加密后: "
+
encrypted
);
System
.
out
.
println
(
"解密后: "
+
decrypted
);
}
}
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