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
78593fde
authored
Sep 08, 2025
by
lijinqi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户端创建api订单 完成
用户端api支付 完成 用户端我的api资源包 完成 pdf预览接口 完成
parent
9c2888c7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
542 additions
and
108 deletions
+542
-108
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/config/ApiOrderConfig.java
+13
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/config/ApiOrderProperties.java
+56
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/ApiOrderController.java
+39
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/vo/ApiOrderRespVO.java
+18
-3
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/vo/ApiOrderSaveReqVO.java
+3
-3
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apipackage/vo/ApiPackageRespVO.java
+1
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apipackage/vo/ApiPackageSaveReqVO.java
+1
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/userapiusage/UserApiUsageController.java
+12
-13
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/userapiusage/vo/UserApiUsagePageReqVO.java
+7
-7
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/userapiusage/vo/UserApiUsageRespVO.java
+16
-9
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/userapiusage/vo/UserApiUsageSaveReqVO.java
+20
-3
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/AppApiOrderController.java
+35
-3
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderCreateReqVO.java
+4
-4
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderCreateRespVO.java
+16
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderPageReqVO.java
+0
-17
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderRespVO.java
+9
-9
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apiorder/ApiOrderDO.java
+9
-9
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apipackage/ApiPackageDO.java
+1
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/userapiusage/UserApiUsageDO.java
+19
-3
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiorder/ApiOrderMapper.java
+22
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/userapiusage/UserApiUsageMapper.java
+14
-7
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ApiOrderPayStatus.java
+49
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ApiOrderStatus.java
+9
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ErrorCodeConstants.java
+4
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderService.java
+20
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
+136
-7
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/userapiusage/UserApiUsageService.java
+2
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/userapiusage/UserApiUsageServiceImpl.java
+1
-1
computility-module-infra/src/main/java/com/luhu/computility/module/infra/controller/admin/file/FileController.java
+6
-5
No files found.
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/config/ApiOrderConfig.java
0 → 100644
View file @
78593fde
package
com
.
luhu
.
computility
.
module
.
apihub
.
config
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Configuration
;
/**
* @author LeeYan9
* @since 2022-09-15
*/
@Configuration
@EnableConfigurationProperties
(
ApiOrderProperties
.
class
)
public
class
ApiOrderConfig
{
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/config/ApiOrderProperties.java
0 → 100644
View file @
78593fde
package
com
.
luhu
.
computility
.
module
.
apihub
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.validation.annotation.Validated
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.time.Duration
;
/**
* 交易订单的配置项
*
* @author ljq
* @since 2025-09-07
*/
@ConfigurationProperties
(
prefix
=
"computility.api.order"
)
@Data
@Validated
public
class
ApiOrderProperties
{
private
static
final
String
PAY_APP_KEY_DEFAULT
=
"apimall"
;
/**
* 支付应用标识
*
* 在 pay 模块的 [支付管理 -> 应用信息]
*/
@NotEmpty
(
message
=
"Pay 应用标识不能为空"
)
private
String
payAppKey
=
PAY_APP_KEY_DEFAULT
;
/**
* 支付超时时间
*/
@NotNull
(
message
=
"支付超时时间不能为空"
)
private
Duration
payExpireTime
;
/**
* 收货超时时间
*/
@NotNull
(
message
=
"收货超时时间不能为空"
)
private
Duration
receiveExpireTime
;
/**
* 评论超时时间
*/
@NotNull
(
message
=
"评论超时时间不能为空"
)
private
Duration
commentExpireTime
;
/**
* 是否同步订单状态到微信小程序
*/
@NotNull
(
message
=
"是否同步订单状态到微信小程序不能为空"
)
private
Boolean
statusSyncToWxaEnable
;
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/ApiOrderController.java
View file @
78593fde
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apiorder
;
import
cn.hutool.core.date.DateUtil
;
import
com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.UserApiUsageSaveReqVO
;
import
com.luhu.computility.module.apihub.service.userapiusage.UserApiUsageService
;
import
com.luhu.computility.module.pay.api.notify.dto.PayOrderNotifyReqDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
org.springframework.validation.annotation.Validated
;
...
...
@@ -8,6 +13,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import
io.swagger.v3.oas.annotations.Parameter
;
import
io.swagger.v3.oas.annotations.Operation
;
import
javax.annotation.security.PermitAll
;
import
javax.validation.constraints.*
;
import
javax.validation.*
;
import
javax.servlet.http.*
;
...
...
@@ -33,11 +39,16 @@ import com.luhu.computility.module.apihub.service.apiorder.ApiOrderService;
@RestController
@RequestMapping
(
"/apihub/api-order"
)
@Validated
@Slf4j
public
class
ApiOrderController
{
@Resource
private
ApiOrderService
apiOrderService
;
@Resource
private
UserApiUsageService
userApiUsageService
;
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建api订单"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-order:create')"
)
...
...
@@ -101,4 +112,31 @@ public class ApiOrderController {
BeanUtils
.
toBean
(
list
,
ApiOrderRespVO
.
class
));
}
/**
* 内部支付任务回调
*/
@PostMapping
(
"/update-paid"
)
@PermitAll
public
CommonResult
<
Boolean
>
updateApiOrderPaid
(
@RequestBody
PayOrderNotifyReqDTO
notifyReqDTO
)
{
apiOrderService
.
updateApiOrderPaid
(
Long
.
valueOf
(
notifyReqDTO
.
getMerchantOrderId
()),
notifyReqDTO
.
getPayOrderId
());
log
.
error
(
"更新Api订单为已支付------------"
+
notifyReqDTO
.
getMerchantOrderId
());
ApiOrderDO
apiOrder
=
apiOrderService
.
getApiOrder
(
Long
.
parseLong
(
notifyReqDTO
.
getMerchantOrderId
()));
userApiUsageService
.
createUserApiUsage
(
new
UserApiUsageSaveReqVO
().
setApiId
(
apiOrder
.
getApiId
())
.
setApiName
(
apiOrder
.
getApiName
())
.
setPackageId
(
apiOrder
.
getPackageId
())
.
setPackageName
(
apiOrder
.
getPackageName
())
.
setPackageTimes
(
apiOrder
.
getPackageTimes
())
.
setPackageValidDays
(
apiOrder
.
getPackageValidDays
())
.
setUserId
(
apiOrder
.
getUserId
())
.
setExpireTime
(
DateUtil
.
offsetDay
(
new
Date
(),
apiOrder
.
getPackageTimes
()).
toLocalDateTime
()
)
.
setPackagePrice
(
apiOrder
.
getPackagePrice
())
);
log
.
error
(
"创建用户Api资源包数据------------"
+
notifyReqDTO
.
getMerchantOrderId
());
log
.
error
(
"内部支付任务回调 "
);
return
success
(
true
);
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/vo/ApiOrderRespVO.java
View file @
78593fde
...
...
@@ -25,17 +25,32 @@ public class ApiOrderRespVO {
@ExcelProperty
(
"购买的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
)
@ExcelProperty
(
"订单编号"
)
private
String
orderNo
;
@Schema
(
description
=
"订单
金额(元
)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"订单
金额(元
)"
)
private
BigDecimal
amount
;
@Schema
(
description
=
"订单
实际支付金额(分
)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"订单
实际支付金额(分
)"
)
private
Integer
costPrice
;
@Schema
(
description
=
"订单状态:0=待支付,1=已支付,2=已取消"
,
example
=
"2"
)
@ExcelProperty
(
"订单状态:0=待支付,1=已支付,2=已取消"
)
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apiorder/vo/ApiOrderSaveReqVO.java
View file @
78593fde
...
...
@@ -31,9 +31,9 @@ public class ApiOrderSaveReqVO {
@NotEmpty
(
message
=
"订单编号不能为空"
)
private
String
orderNo
;
@Schema
(
description
=
"订单
金额(元
)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@NotNull
(
message
=
"订单
金额(元
)不能为空"
)
private
BigDecimal
amount
;
@Schema
(
description
=
"订单
实际支付金额(分
)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@NotNull
(
message
=
"订单
实际支付金额(分
)不能为空"
)
private
Integer
costPrice
;
@Schema
(
description
=
"订单状态:0=待支付,1=已支付,2=已取消"
,
example
=
"2"
)
private
Integer
status
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apipackage/vo/ApiPackageRespVO.java
View file @
78593fde
...
...
@@ -31,7 +31,7 @@ public class ApiPackageRespVO {
@Schema
(
description
=
"价格(元)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"9887"
)
@ExcelProperty
(
"价格(元)"
)
private
BigDecimal
price
;
private
Integer
price
;
@Schema
(
description
=
"有效期(天),0表示永久有效"
)
@ExcelProperty
(
"有效期(天),0表示永久有效"
)
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apipackage/vo/ApiPackageSaveReqVO.java
View file @
78593fde
...
...
@@ -26,7 +26,7 @@ public class ApiPackageSaveReqVO {
@Schema
(
description
=
"价格(元)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"9887"
)
@NotNull
(
message
=
"价格(元)不能为空"
)
private
Long
price
;
private
Integer
price
;
@Schema
(
description
=
"有效期(天),0表示永久有效"
)
private
Integer
validDays
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/userapiusage/UserApiUsageController.java
View file @
78593fde
...
...
@@ -29,7 +29,7 @@ import com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*;
import
com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO
;
import
com.luhu.computility.module.apihub.service.userapiusage.UserApiUsageService
;
@Tag
(
name
=
"管理后台 - 用户
API 使用统计
"
)
@Tag
(
name
=
"管理后台 - 用户
API管理
"
)
@RestController
@RequestMapping
(
"/apihub/user-api-usage"
)
@Validated
...
...
@@ -39,14 +39,14 @@ public class UserApiUsageController {
private
UserApiUsageService
userApiUsageService
;
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建用户
API 使用统计
"
)
@Operation
(
summary
=
"创建用户
API管理
"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:user-api-usage:create')"
)
public
CommonResult
<
Long
>
createUserApiUsage
(
@Valid
@RequestBody
UserApiUsageSaveReqVO
createReqVO
)
{
return
success
(
userApiUsageService
.
createUserApiUsage
(
createReqVO
));
}
@PutMapping
(
"/update"
)
@Operation
(
summary
=
"更新用户
API 使用统计
"
)
@Operation
(
summary
=
"更新用户
API管理
"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:user-api-usage:update')"
)
public
CommonResult
<
Boolean
>
updateUserApiUsage
(
@Valid
@RequestBody
UserApiUsageSaveReqVO
updateReqVO
)
{
userApiUsageService
.
updateUserApiUsage
(
updateReqVO
);
...
...
@@ -54,7 +54,7 @@ public class UserApiUsageController {
}
@DeleteMapping
(
"/delete"
)
@Operation
(
summary
=
"删除用户
API 使用统计
"
)
@Operation
(
summary
=
"删除用户
API管理
"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
)
@PreAuthorize
(
"@ss.hasPermission('apihub:user-api-usage:delete')"
)
public
CommonResult
<
Boolean
>
deleteUserApiUsage
(
@RequestParam
(
"id"
)
Long
id
)
{
...
...
@@ -64,7 +64,7 @@ public class UserApiUsageController {
@DeleteMapping
(
"/delete-list"
)
@Parameter
(
name
=
"ids"
,
description
=
"编号"
,
required
=
true
)
@Operation
(
summary
=
"批量删除用户
API 使用统计
"
)
@Operation
(
summary
=
"批量删除用户
API管理
"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:user-api-usage:delete')"
)
public
CommonResult
<
Boolean
>
deleteUserApiUsageList
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
userApiUsageService
.
deleteUserApiUsageListByIds
(
ids
);
...
...
@@ -72,7 +72,7 @@ public class UserApiUsageController {
}
@GetMapping
(
"/get"
)
@Operation
(
summary
=
"获得用户
API 使用统计
"
)
@Operation
(
summary
=
"获得用户
API管理
"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:user-api-usage:query')"
)
public
CommonResult
<
UserApiUsageRespVO
>
getUserApiUsage
(
@RequestParam
(
"id"
)
Long
id
)
{
...
...
@@ -81,24 +81,22 @@ public class UserApiUsageController {
}
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"获得用户
API 使用统计
分页"
)
@Operation
(
summary
=
"获得用户
API管理
分页"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:user-api-usage:query')"
)
public
CommonResult
<
PageResult
<
UserApiUsageRespVO
>>
getUserApiUsagePage
(
@Valid
UserApiUsagePageReqVO
pageReqVO
)
{
PageResult
<
UserApiUsageDO
>
pageResult
=
userApiUsageService
.
getUserApiUsagePage
(
pageReqVO
);
return
success
(
BeanUtils
.
toBean
(
pageResult
,
UserApiUsageRespVO
.
class
));
return
success
(
userApiUsageService
.
getUserApiUsagePage
(
pageReqVO
));
}
@GetMapping
(
"/export-excel"
)
@Operation
(
summary
=
"导出用户
API 使用统计
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
);
List
<
UserApiUsageDO
>
list
=
userApiUsageService
.
getUserApiUsagePage
(
pageReqVO
).
getList
();
// 导出 Excel
ExcelUtils
.
write
(
response
,
"用户
API 使用统计
.xls"
,
"数据"
,
UserApiUsageRespVO
.
class
,
BeanUtils
.
toBean
(
list
,
UserApiUsageRespVO
.
class
));
ExcelUtils
.
write
(
response
,
"用户
API管理
.xls"
,
"数据"
,
UserApiUsageRespVO
.
class
,
userApiUsageService
.
getUserApiUsagePage
(
pageReqVO
).
getList
(
));
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/userapiusage/vo/UserApiUsagePageReqVO.java
View file @
78593fde
...
...
@@ -16,14 +16,13 @@ public class UserApiUsagePageReqVO extends PageParam {
@Schema
(
description
=
"用户ID"
,
example
=
"26592"
)
private
Long
userId
;
@Schema
(
description
=
"
API ID
"
,
example
=
"8522"
)
private
Long
apiId
;
@Schema
(
description
=
"
用户手机
"
,
example
=
"8522"
)
private
String
userMobile
;
@Schema
(
description
=
"
购买总次数
"
)
private
Integer
totalTimes
;
@Schema
(
description
=
"
api名称"
,
example
=
"8522
"
)
private
String
apiName
;
@Schema
(
description
=
"创建时间"
)
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
private
LocalDateTime
[]
createTime
;
@Schema
(
description
=
"资源包名称"
,
example
=
"8522"
)
private
String
packageName
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/userapiusage/vo/UserApiUsageRespVO.java
View file @
78593fde
...
...
@@ -16,17 +16,24 @@ public class UserApiUsageRespVO {
@ExcelProperty
(
"记录ID"
)
private
Long
id
;
@Schema
(
description
=
"用户
ID
"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"26592"
)
@ExcelProperty
(
"用户
ID
"
)
private
Long
userId
;
@Schema
(
description
=
"用户
手机号
"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"26592"
)
@ExcelProperty
(
"用户
手机号
"
)
private
String
userMobile
;
@Schema
(
description
=
"API ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8522"
)
@ExcelProperty
(
"API ID"
)
private
Long
apiId
;
@Schema
(
description
=
"购买的API 名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"10347"
)
private
String
apiName
;
@Schema
(
description
=
"购买总次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"购买总次数"
)
private
Integer
totalTimes
;
@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
(
"已使用次数"
)
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/userapiusage/vo/UserApiUsageSaveReqVO.java
View file @
78593fde
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
userapiusage
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
java.util.*
;
...
...
@@ -22,9 +23,25 @@ public class UserApiUsageSaveReqVO {
@NotNull
(
message
=
"API ID不能为空"
)
private
Long
apiId
;
@Schema
(
description
=
"购买总次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@NotNull
(
message
=
"购买总次数不能为空"
)
private
Integer
totalTimes
;
@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
=
"已使用次数不能为空"
)
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/AppApiOrderController.java
View file @
78593fde
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
apiorder
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.util.object.BeanUtils
;
import
com.luhu.computility.framework.security.core.util.SecurityFrameworkUtils
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateReqVO
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateRespVO
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderRespVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO
;
import
com.luhu.computility.module.apihub.enums.ApiOrderStatus
;
import
com.luhu.computility.module.apihub.service.api.ApiService
;
import
com.luhu.computility.module.apihub.service.apiorder.ApiOrderService
;
import
com.luhu.computility.module.apihub.service.apipackage.ApiPackageService
;
import
io.swagger.v3.oas.annotations.Operation
;
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.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
...
@@ -19,6 +29,10 @@ import org.springframework.web.bind.annotation.RestController;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
import
java.util.List
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
@Tag
(
name
=
"用户端 - api订单"
)
@RestController
@RequestMapping
(
"/apihub/api-order"
)
...
...
@@ -32,11 +46,29 @@ public class AppApiOrderController {
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建api订单"
)
public
CommonResult
<
Long
>
createApiOrder
(
@Valid
@RequestBody
AppApiOrderCreateReqVO
createReqVO
)
{
public
CommonResult
<
AppApiOrderCreateRespVO
>
createApiOrder
(
@Valid
@RequestBody
AppApiOrderCreateReqVO
createReqVO
)
{
//创建订单
createReqVO
.
setUserId
(
SecurityFrameworkUtils
.
getLoginUser
().
getId
());
apiOrderService
.
createOrder
(
createReqVO
);
return
null
;
//success(apiOrderService.createApiOrder(createReqVO));
ApiOrderDO
order
=
apiOrderService
.
createOrder
(
createReqVO
);
return
success
(
new
AppApiOrderCreateRespVO
().
setId
(
order
.
getId
()).
setPayOrderId
(
order
.
getPayOrderId
()));
}
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"获得api订单分页"
)
public
CommonResult
<
PageResult
<
AppApiOrderRespVO
>>
getApiOrderPage
(
@Valid
AppApiOrderPageReqVO
pageReqVO
)
{
PageResult
<
ApiOrderDO
>
pageResult
=
apiOrderService
.
getAppApiOrderPage
(
pageReqVO
);
PageResult
<
AppApiOrderRespVO
>
appApiOrderRespVOPageResult
=
BeanUtils
.
toBean
(
pageResult
,
AppApiOrderRespVO
.
class
);
//处理状态,这里一般是交给前端处理
List
<
AppApiOrderRespVO
>
list
=
appApiOrderRespVOPageResult
.
getList
();
if
(!
CollectionUtil
.
isEmpty
(
list
))
{
for
(
AppApiOrderRespVO
vo
:
list
)
{
vo
.
setStatusName
(
ApiOrderStatus
.
getRemarkByValue
(
vo
.
getStatus
()));
}
}
appApiOrderRespVOPageResult
.
setList
(
list
);
return
success
(
appApiOrderRespVOPageResult
);
}
/*
@PutMapping("/update")
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderCreateReqVO.java
View file @
78593fde
...
...
@@ -31,11 +31,11 @@ public class AppApiOrderCreateReqVO {
@Schema
(
description
=
"购买的套餐名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
String
packageName
;
@Schema
(
description
=
"购买的套餐
使
用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
@Schema
(
description
=
"购买的套餐
最大可
用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packageTimes
;
@Schema
(
description
=
"购买的套餐价格"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Long
packagePrice
;
private
Integer
packagePrice
;
@Schema
(
description
=
"购买的套餐有效时长"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packageValidDays
;
...
...
@@ -43,8 +43,8 @@ public class AppApiOrderCreateReqVO {
@Schema
(
description
=
"订单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
orderNo
;
@Schema
(
description
=
"订单金额(元)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
Long
amount
;
@Schema
(
description
=
"订单
实际支付
金额(元)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
Integer
costPrice
;
@Schema
(
description
=
"订单状态:0=待支付,1=已支付,2=已取消"
,
example
=
"2"
)
private
Integer
status
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderCreateRespVO.java
0 → 100644
View file @
78593fde
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
apiorder
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
@Schema
(
description
=
"用户 App - api交易订单创建 Response VO"
)
@Data
public
class
AppApiOrderCreateRespVO
{
@Schema
(
description
=
"订单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1024"
)
private
Long
id
;
@Schema
(
description
=
"支付订单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1024"
)
private
Long
payOrderId
;
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderPageReqVO.java
View file @
78593fde
...
...
@@ -20,24 +20,8 @@ public class AppApiOrderPageReqVO extends PageParam {
@Schema
(
description
=
"关键字查询"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"10347"
)
private
String
searchQuery
;
@Schema
(
description
=
"订单编号"
)
private
String
orderNo
;
@Schema
(
description
=
"订单状态:0=待支付,1=已支付,2=已取消"
,
example
=
"2"
)
private
Integer
status
;
@Schema
(
description
=
"支付订单编号"
,
example
=
"14961"
)
private
Long
payOrderId
;
@Schema
(
description
=
"订单支付时间"
)
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
private
LocalDateTime
[]
payTime
;
@Schema
(
description
=
"支付成功的支付渠道"
)
private
String
payChannelCode
;
@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/app/apiorder/vo/AppApiOrderRespVO.java
View file @
78593fde
...
...
@@ -29,27 +29,27 @@ public class AppApiOrderRespVO {
private
Long
packageId
;
@Schema
(
description
=
"购买的套餐名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Lo
ng
packageName
;
private
Stri
ng
packageName
;
@Schema
(
description
=
"套餐
使
用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Long
packageTimes
;
@Schema
(
description
=
"套餐
最大可
用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packageTimes
;
@Schema
(
description
=
"套餐价格"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Long
packagePrice
;
private
Integer
packagePrice
;
@Schema
(
description
=
"套餐有效期"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
v
alidDays
;
private
Integer
packageV
alidDays
;
@Schema
(
description
=
"购买的套餐实际支出价格"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Long
costPrice
;
private
Integer
costPrice
;
@Schema
(
description
=
"订单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"订单编号"
)
private
String
orderNo
;
@Schema
(
description
=
"订单
金额(元)
"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"订单
金额(元)
"
)
private
Long
amount
;
@Schema
(
description
=
"订单
状态
"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"订单
状态
"
)
private
String
statusName
;
@Schema
(
description
=
"订单状态:0=待支付,1=已支付,2=已取消"
,
example
=
"2"
)
@ExcelProperty
(
"订单状态:0=待支付,1=已支付,2=已取消"
)
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apiorder/ApiOrderDO.java
View file @
78593fde
...
...
@@ -54,33 +54,33 @@ public class ApiOrderDO extends BaseDO {
*/
private
String
packageName
;
/**
* 购买的套餐
使
用次数
* 购买的套餐
最大可
用次数
*/
private
Long
packageTimes
;
private
Integer
packageTimes
;
/**
* 购买的套餐有效期
*/
private
Integer
v
alidDays
;
private
Integer
packageV
alidDays
;
/**
* 购买的套餐实际费用
*/
private
Long
costPrice
;
*/
private
Integer
costPrice
;
/**
* 购买的套餐单价
*/
private
Long
packagePrice
;
private
Integer
packagePrice
;
/**
* 订单编号
*/
private
String
orderNo
;
/**
* 订单金额(元)
*/
private
BigDecimal
amount
;
/**
* 订单状态:0=待支付,1=已支付,2=已取消
*/
private
Integer
status
;
/**
* 支付状态:1=已支付,2=未支付
*/
private
Integer
payStatus
;
/**
* 支付订单编号
*/
private
Long
payOrderId
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apipackage/ApiPackageDO.java
View file @
78593fde
...
...
@@ -43,7 +43,7 @@ public class ApiPackageDO extends BaseDO {
/**
* 价格(元)
*/
private
Long
price
;
private
Integer
price
;
/**
* 有效期(天),0表示永久有效
*/
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/userapiusage/UserApiUsageDO.java
View file @
78593fde
...
...
@@ -33,13 +33,29 @@ public class UserApiUsageDO extends BaseDO {
*/
private
Long
userId
;
/**
* API ID
*
购买的
API ID
*/
private
Long
apiId
;
/**
* 购买
总次数
* 购买
的套餐名称
*/
private
Integer
totalTimes
;
private
String
apiName
;
/**
* 购买的套餐ID
*/
private
Long
packageId
;
/**
* 购买的套餐名
*/
private
String
packageName
;
/**
* 购买的套餐最大可用次数
*/
private
Long
packageTimes
;
/**
* 购买的套餐有效期
*/
private
Integer
packageValidDays
;
/**
* 已使用次数
*/
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiorder/ApiOrderMapper.java
View file @
78593fde
...
...
@@ -2,9 +2,14 @@ package com.luhu.computility.module.apihub.dal.mysql.apiorder;
import
java.util.*
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
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.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.apicategory.ApiCategoryDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*
;
...
...
@@ -31,4 +36,20 @@ public interface ApiOrderMapper extends BaseMapperX<ApiOrderDO> {
.
orderByDesc
(
ApiOrderDO:
:
getId
));
}
default
PageResult
<
ApiOrderDO
>
selectAppPage
(
AppApiOrderPageReqVO
reqVO
)
{
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
ApiOrderDO
>()
.
eqIfPresent
(
ApiOrderDO:
:
getUserId
,
reqVO
.
getUserId
())
.
eqIfPresent
(
ApiOrderDO:
:
getStatus
,
reqVO
.
getStatus
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getSearchQuery
()),
ApiOrderDO:
:
getOrderNo
,
reqVO
.
getSearchQuery
())
.
or
(!
StringUtils
.
isEmpty
(
reqVO
.
getSearchQuery
()))
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getSearchQuery
()),
ApiOrderDO:
:
getApiName
,
reqVO
.
getSearchQuery
())
.
orderByDesc
(
ApiOrderDO:
:
getId
));
}
default
int
updateByIdAndStatus
(
Long
id
,
Integer
status
,
ApiOrderDO
update
)
{
return
update
(
update
,
new
LambdaUpdateWrapper
<
ApiOrderDO
>()
.
eq
(
ApiOrderDO:
:
getId
,
id
).
eq
(
ApiOrderDO:
:
getStatus
,
status
));
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/userapiusage/UserApiUsageMapper.java
View file @
78593fde
...
...
@@ -2,10 +2,15 @@ package com.luhu.computility.module.apihub.dal.mysql.userapiusage;
import
java.util.*
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
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.dal.dataobject.api.ApiDO
;
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.member.dal.dataobject.user.MemberUserDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*
;
...
...
@@ -17,13 +22,14 @@ import com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*;
@Mapper
public
interface
UserApiUsageMapper
extends
BaseMapperX
<
UserApiUsageDO
>
{
default
PageResult
<
UserApiUsageDO
>
selectPage
(
UserApiUsagePageReqVO
reqVO
)
{
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
UserApiUsageDO
>()
.
eqIfPresent
(
UserApiUsageDO:
:
getUserId
,
reqVO
.
getUserId
())
.
eqIfPresent
(
UserApiUsageDO:
:
getApiId
,
reqVO
.
getApiId
())
.
eqIfPresent
(
UserApiUsageDO:
:
getTotalTimes
,
reqVO
.
getTotalTimes
())
.
betweenIfPresent
(
UserApiUsageDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
orderByDesc
(
UserApiUsageDO:
:
getId
));
default
PageResult
<
UserApiUsageRespVO
>
selectPage
(
UserApiUsagePageReqVO
reqVO
)
{
return
selectJoinPage
(
reqVO
,
UserApiUsageRespVO
.
class
,
new
MPJLambdaWrapperX
<
UserApiUsageDO
>()
.
selectAll
(
UserApiUsageDO
.
class
)
.
selectAs
(
MemberUserDO
::
getMobile
,
UserApiUsageRespVO
::
getUserMobile
)
.
leftJoin
(
MemberUserDO
.
class
,
MemberUserDO:
:
getId
,
UserApiUsageDO:
:
getUserId
)
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getPackageName
()),
UserApiUsageDO:
:
getPackageName
,
reqVO
.
getPackageName
())
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getApiName
()),
UserApiUsageDO:
:
getApiName
,
reqVO
.
getApiName
())
.
orderByDesc
(
UserApiUsageDO:
:
getCreateTime
));
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ApiOrderPayStatus.java
0 → 100644
View file @
78593fde
package
com
.
luhu
.
computility
.
module
.
apihub
.
enums
;
/**
* 订单支付状态
*/
public
enum
ApiOrderPayStatus
{
// 请根据实际情况改成对应的值和备注
WAITING
(
0
,
"未支付"
),
SUCCESS
(
10
,
"支付成功"
),
REFUND
(
20
,
"已退款"
),
CLOSED
(
30
,
"支付关闭"
),
// 注意:全部退款后,还是 REFUND 状态
;
private
int
value
;
private
String
remark
;
private
ApiOrderPayStatus
(
int
value
,
String
remark
)
{
this
.
value
=
value
;
this
.
remark
=
remark
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getRemark
()
{
return
remark
;
}
public
static
ApiOrderPayStatus
getByValue
(
int
value
)
{
for
(
ApiOrderPayStatus
o
:
ApiOrderPayStatus
.
values
())
{
if
(
o
.
getValue
()
==
value
)
{
return
o
;
}
}
return
null
;
}
public
static
String
getRemarkByValue
(
Integer
value
)
{
for
(
ApiOrderPayStatus
status
:
values
())
{
if
(
status
.
getValue
()
==
value
)
{
return
status
.
getRemark
();
}
}
return
null
;
}
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ApiOrderStatus.java
View file @
78593fde
...
...
@@ -36,4 +36,13 @@ public enum ApiOrderStatus {
}
return
null
;
}
public
static
String
getRemarkByValue
(
Integer
value
)
{
for
(
ApiOrderStatus
status
:
values
())
{
if
(
status
.
getValue
()
==
value
)
{
return
status
.
getRemark
();
}
}
return
null
;
}
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ErrorCodeConstants.java
View file @
78593fde
...
...
@@ -14,6 +14,9 @@ public interface ErrorCodeConstants {
ErrorCode
API_ORDER_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_003
,
" API 订单不存在"
);
ErrorCode
API_PACKAGE_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_004
,
" API 套餐不存在"
);
ErrorCode
API_CATEGORY_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_005
,
"API分类不存在"
);
ErrorCode
API_ORDER_NOT_FOUND
=
new
ErrorCode
(
1_010_001_011
,
"API订单不存在"
);
ErrorCode
API_ORDER_UPDATE_PAID_FAIL_PAY_ORDER_ID_ERROR
=
new
ErrorCode
(
1_010_001_014
,
"API订单更新支付状态失败,支付单编号不匹配"
);
ErrorCode
API_ORDER_UPDATE_PAID_FAIL_PAY_ORDER_STATUS_NOT_SUCCESS
=
new
ErrorCode
(
1_010_001_015
,
"API订单更新支付状态失败,支付单状态不是【支付成功】状态"
);
ErrorCode
API_ORDER_UPDATE_PAID_FAIL_PAY_PRICE_NOT_MATCH
=
new
ErrorCode
(
1_010_001_016
,
"API订单更新支付状态失败,支付单金额不匹配"
);
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderService.java
View file @
78593fde
...
...
@@ -4,6 +4,7 @@ import java.util.*;
import
javax.validation.*
;
import
com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateReqVO
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
...
...
@@ -64,4 +65,22 @@ public interface ApiOrderService {
*/
PageResult
<
ApiOrderDO
>
getApiOrderPage
(
ApiOrderPageReqVO
pageReqVO
);
/**
* 获得api订单分页(用户端)
*
* @param pageReqVO 分页查询
* @return api订单分页
*/
PageResult
<
ApiOrderDO
>
getAppApiOrderPage
(
AppApiOrderPageReqVO
pageReqVO
);
/**
* 更新api交易订单已支付
*
* @param merchantOrderId api交易订单id
* @param payOrderId api支付订单编号
*/
void
updateApiOrderPaid
(
Long
merchantOrderId
,
Long
payOrderId
);
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
View file @
78593fde
This diff is collapsed.
Click to expand it.
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/userapiusage/UserApiUsageService.java
View file @
78593fde
...
...
@@ -57,6 +57,6 @@ public interface UserApiUsageService {
* @param pageReqVO 分页查询
* @return 用户 API 使用统计分页
*/
PageResult
<
UserApiUsage
D
O
>
getUserApiUsagePage
(
UserApiUsagePageReqVO
pageReqVO
);
PageResult
<
UserApiUsage
RespV
O
>
getUserApiUsagePage
(
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 @
78593fde
...
...
@@ -78,7 +78,7 @@ public class UserApiUsageServiceImpl implements UserApiUsageService {
}
@Override
public
PageResult
<
UserApiUsage
D
O
>
getUserApiUsagePage
(
UserApiUsagePageReqVO
pageReqVO
)
{
public
PageResult
<
UserApiUsage
RespV
O
>
getUserApiUsagePage
(
UserApiUsagePageReqVO
pageReqVO
)
{
return
userApiUsageMapper
.
selectPage
(
pageReqVO
);
}
...
...
computility-module-infra/src/main/java/com/luhu/computility/module/infra/controller/admin/file/FileController.java
View file @
78593fde
...
...
@@ -129,21 +129,22 @@ public class FileController {
@Operation
(
summary
=
"购买PDF 文件预览"
)
@PermitAll
public
void
previewPdf
(
HttpServletResponse
response
)
throws
IOException
{
// 假设 path = /data/xxx.pdf
File
file
=
new
File
(
"/data/buy.pdf"
);
File
file
=
new
File
(
"/Users/jackey/data/code/buy.pdf"
);
if
(!
file
.
exists
())
{
response
.
setStatus
(
HttpServletResponse
.
SC_NOT_FOUND
);
return
;
}
// 设置 PDF 预览
response
.
setContentType
(
"application/pdf"
);
// inline 表示浏览器内嵌预览,attachment 表示下载
response
.
setHeader
(
"Content-Disposition"
,
"inline; filename=\""
+
file
.
getName
()
+
"\""
);
response
.
setHeader
(
"Cache-Control"
,
"no-cache, no-store, must-revalidate"
);
// 避免缓存
response
.
setHeader
(
"Pragma"
,
"no-cache"
);
response
.
setHeader
(
"Expires"
,
"0"
);
// 输出文件流
try
(
InputStream
inputStream
=
new
FileInputStream
(
file
);
OutputStream
os
=
response
.
getOutputStream
())
{
byte
[]
buffer
=
new
byte
[
4096
];
byte
[]
buffer
=
new
byte
[
8192
];
int
bytesRead
;
while
((
bytesRead
=
inputStream
.
read
(
buffer
))
!=
-
1
)
{
os
.
write
(
buffer
,
0
,
bytesRead
);
...
...
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