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
9c2888c7
authored
Sep 05, 2025
by
lijinqi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
api应用相关生成代码;
api信息新增、编辑、上下架接口完成 api应用市场截止到创建api交易订单
parent
9766fbf7
Show whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
1338 additions
and
15 deletions
+1338
-15
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/ApiController.java
+6
-7
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/vo/ApiPageReqVO.java
+10
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/vo/ApiRespVO.java
+17
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/vo/ApiSaveReqVO.java
+10
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apicategory/ApiCategoryController.java
+112
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apicategory/vo/ApiCategoryPageReqVO.java
+24
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apicategory/vo/ApiCategoryRespVO.java
+32
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apicategory/vo/ApiCategorySaveReqVO.java
+23
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/AppApiController.java
+92
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/vo/AppApiPackageRespVO.java
+49
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/vo/AppApiRespVO.java
+62
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apicategory/AppApiCategoryController.java
+57
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/AppApiOrderController.java
+100
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderCreateReqVO.java
+71
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderPageReqVO.java
+44
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderRespVO.java
+87
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/api/ApiDO.java
+18
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apicategory/ApiCategoryDO.java
+45
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apiorder/ApiOrderDO.java
+31
-0
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/mysql/api/ApiMapper.java
+26
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apicategory/ApiCategoryMapper.java
+34
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/redis/RedisKeyConstants.java
+26
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/redis/no/ApiOrderNoRedisDAO.java
+44
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ApiOrderRefundStatus.java
+38
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ApiOrderStatus.java
+39
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ErrorCodeConstants.java
+1
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/api/ApiService.java
+2
-1
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/api/ApiServiceImpl.java
+5
-2
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicategory/ApiCategoryService.java
+72
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicategory/ApiCategoryServiceImpl.java
+92
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderService.java
+5
-0
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
+63
-3
No files found.
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/ApiController.java
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
api
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
api
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.util.ObjectUtil
;
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.admin.apipackage.vo.ApiPackageSaveReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPackageSaveReqVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO
;
...
@@ -69,13 +70,12 @@ public class ApiController {
...
@@ -69,13 +70,12 @@ public class ApiController {
public
CommonResult
<
Boolean
>
updateApi
(
@Valid
@RequestBody
ApiSaveReqVO
updateReqVO
)
{
public
CommonResult
<
Boolean
>
updateApi
(
@Valid
@RequestBody
ApiSaveReqVO
updateReqVO
)
{
//有套餐则更新套餐
//有套餐则更新套餐
if
(!
CollectionUtil
.
isEmpty
(
updateReqVO
.
getApiPackages
()))
{
if
(!
CollectionUtil
.
isEmpty
(
updateReqVO
.
getApiPackages
()))
{
//清除已有套餐
apiPackageService
.
deleteApiPackageByApiId
(
updateReqVO
.
getId
());
//将新套餐放入
if
(!
CollectionUtil
.
isEmpty
(
updateReqVO
.
getApiPackages
()))
{
for
(
ApiPackageSaveReqVO
apiPackageSaveReqVO
:
updateReqVO
.
getApiPackages
())
{
for
(
ApiPackageSaveReqVO
apiPackageSaveReqVO
:
updateReqVO
.
getApiPackages
())
{
if
(
ObjectUtil
.
isEmpty
(
apiPackageSaveReqVO
.
getId
()))
{
apiPackageSaveReqVO
.
setApiId
(
updateReqVO
.
getId
());
apiPackageSaveReqVO
.
setApiId
(
updateReqVO
.
getId
());
apiPackageService
.
createApiPackage
(
apiPackageSaveReqVO
);
apiPackageService
.
createApiPackage
(
apiPackageSaveReqVO
);
}
else
{
apiPackageService
.
updateApiPackage
(
BeanUtils
.
toBean
(
apiPackageSaveReqVO
,
ApiPackageSaveReqVO
.
class
));
}
}
}
}
}
}
...
@@ -116,8 +116,7 @@ public class ApiController {
...
@@ -116,8 +116,7 @@ public class ApiController {
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"获得API信息分页"
)
@Operation
(
summary
=
"获得API信息分页"
)
public
CommonResult
<
PageResult
<
ApiRespVO
>>
getApiPage
(
@Valid
ApiPageReqVO
pageReqVO
)
{
public
CommonResult
<
PageResult
<
ApiRespVO
>>
getApiPage
(
@Valid
ApiPageReqVO
pageReqVO
)
{
PageResult
<
ApiDO
>
pageResult
=
apiService
.
getApiPage
(
pageReqVO
);
return
success
(
apiService
.
getApiPage
(
pageReqVO
));
return
success
(
BeanUtils
.
toBean
(
pageResult
,
ApiRespVO
.
class
));
}
}
@GetMapping
(
"/export-excel"
)
@GetMapping
(
"/export-excel"
)
...
@@ -127,7 +126,7 @@ public class ApiController {
...
@@ -127,7 +126,7 @@ public class ApiController {
public
void
exportApiExcel
(
@Valid
ApiPageReqVO
pageReqVO
,
public
void
exportApiExcel
(
@Valid
ApiPageReqVO
pageReqVO
,
HttpServletResponse
response
)
throws
IOException
{
HttpServletResponse
response
)
throws
IOException
{
pageReqVO
.
setPageSize
(
PageParam
.
PAGE_SIZE_NONE
);
pageReqVO
.
setPageSize
(
PageParam
.
PAGE_SIZE_NONE
);
List
<
Api
D
O
>
list
=
apiService
.
getApiPage
(
pageReqVO
).
getList
();
List
<
Api
RespV
O
>
list
=
apiService
.
getApiPage
(
pageReqVO
).
getList
();
// 导出 Excel
// 导出 Excel
ExcelUtils
.
write
(
response
,
"API信息.xls"
,
"数据"
,
ApiRespVO
.
class
,
ExcelUtils
.
write
(
response
,
"API信息.xls"
,
"数据"
,
ApiRespVO
.
class
,
BeanUtils
.
toBean
(
list
,
ApiRespVO
.
class
));
BeanUtils
.
toBean
(
list
,
ApiRespVO
.
class
));
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/vo/ApiPageReqVO.java
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
api
.
vo
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
api
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.*
;
import
lombok.*
;
import
java.util.*
;
import
java.util.*
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.media.Schema
;
...
@@ -19,6 +20,15 @@ public class ApiPageReqVO extends PageParam {
...
@@ -19,6 +20,15 @@ public class ApiPageReqVO extends PageParam {
@Schema
(
description
=
"状态:1=上架,0=下架"
,
example
=
"1"
)
@Schema
(
description
=
"状态:1=上架,0=下架"
,
example
=
"1"
)
private
Integer
status
;
private
Integer
status
;
@Schema
(
description
=
"API 分类"
,
example
=
"4891084201"
)
@ExcelProperty
(
"API 分类"
)
private
Long
categoryId
;
@Schema
(
description
=
"关键字查找"
,
example
=
"通用型API"
)
@ExcelProperty
(
"关键字查找"
)
private
String
searchQuery
;
@Schema
(
description
=
"创建时间"
)
@Schema
(
description
=
"创建时间"
)
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
@DateTimeFormat
(
pattern
=
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
)
private
LocalDateTime
[]
createTime
;
private
LocalDateTime
[]
createTime
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/vo/ApiRespVO.java
View file @
9c2888c7
...
@@ -26,6 +26,23 @@ public class ApiRespVO {
...
@@ -26,6 +26,23 @@ public class ApiRespVO {
@ExcelProperty
(
"API 简介"
)
@ExcelProperty
(
"API 简介"
)
private
String
description
;
private
String
description
;
@Schema
(
description
=
"API 最低价格描述"
,
example
=
"你说的对"
)
@ExcelProperty
(
"API 最低价格描述"
)
private
String
priceInfo
;
@Schema
(
description
=
"API coverimage"
,
example
=
"https://xxx.png"
)
@ExcelProperty
(
"API coverimage"
)
private
String
coverImage
;
@Schema
(
description
=
"API 分类"
,
example
=
"4891084201"
)
@ExcelProperty
(
"API 分类"
)
private
Long
categoryId
;
@Schema
(
description
=
"API 分类名称"
,
example
=
"通用api"
)
@ExcelProperty
(
"API 分类名称"
)
private
String
categoryName
;
@Schema
(
description
=
"API 详细介绍"
)
@Schema
(
description
=
"API 详细介绍"
)
@ExcelProperty
(
"API 详细介绍"
)
@ExcelProperty
(
"API 详细介绍"
)
private
String
detail
;
private
String
detail
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/api/vo/ApiSaveReqVO.java
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
api
.
vo
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
api
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPackageSaveReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPackageSaveReqVO
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
lombok.*
;
...
@@ -20,6 +21,15 @@ public class ApiSaveReqVO {
...
@@ -20,6 +21,15 @@ public class ApiSaveReqVO {
@Schema
(
description
=
"API 简介"
,
example
=
"你说的对"
)
@Schema
(
description
=
"API 简介"
,
example
=
"你说的对"
)
private
String
description
;
private
String
description
;
@Schema
(
description
=
"API 最低价格描述"
,
example
=
"你说的对"
)
private
String
priceInfo
;
@Schema
(
description
=
"API coverimage"
,
example
=
"https://xxx.png"
)
private
String
coverImage
;
@Schema
(
description
=
"API 分类"
)
private
Long
categoryId
;
@Schema
(
description
=
"API 详细介绍"
)
@Schema
(
description
=
"API 详细介绍"
)
private
String
detail
;
private
String
detail
;
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apicategory/ApiCategoryController.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apicategory
;
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.apicategory.vo.*
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
import
com.luhu.computility.module.apihub.service.apicategory.ApiCategoryService
;
@Tag
(
name
=
"管理后台 - API分类"
)
@RestController
@RequestMapping
(
"/apihub/api-category"
)
@Validated
public
class
ApiCategoryController
{
@Resource
private
ApiCategoryService
apiCategoryService
;
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建API分类"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-category:create')"
)
public
CommonResult
<
Long
>
createApiCategory
(
@Valid
@RequestBody
ApiCategorySaveReqVO
createReqVO
)
{
return
success
(
apiCategoryService
.
createApiCategory
(
createReqVO
));
}
@PutMapping
(
"/update"
)
@Operation
(
summary
=
"更新API分类"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-category:update')"
)
public
CommonResult
<
Boolean
>
updateApiCategory
(
@Valid
@RequestBody
ApiCategorySaveReqVO
updateReqVO
)
{
apiCategoryService
.
updateApiCategory
(
updateReqVO
);
return
success
(
true
);
}
@DeleteMapping
(
"/delete"
)
@Operation
(
summary
=
"删除API分类"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-category:delete')"
)
public
CommonResult
<
Boolean
>
deleteApiCategory
(
@RequestParam
(
"id"
)
Long
id
)
{
apiCategoryService
.
deleteApiCategory
(
id
);
return
success
(
true
);
}
@DeleteMapping
(
"/delete-list"
)
@Parameter
(
name
=
"ids"
,
description
=
"编号"
,
required
=
true
)
@Operation
(
summary
=
"批量删除API分类"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-category:delete')"
)
public
CommonResult
<
Boolean
>
deleteApiCategoryList
(
@RequestParam
(
"ids"
)
List
<
Long
>
ids
)
{
apiCategoryService
.
deleteApiCategoryListByIds
(
ids
);
return
success
(
true
);
}
@GetMapping
(
"/get"
)
@Operation
(
summary
=
"获得API分类"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-category:query')"
)
public
CommonResult
<
ApiCategoryRespVO
>
getApiCategory
(
@RequestParam
(
"id"
)
Long
id
)
{
ApiCategoryDO
apiCategory
=
apiCategoryService
.
getApiCategory
(
id
);
return
success
(
BeanUtils
.
toBean
(
apiCategory
,
ApiCategoryRespVO
.
class
));
}
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"获得API分类分页"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-category:query')"
)
public
CommonResult
<
PageResult
<
ApiCategoryRespVO
>>
getApiCategoryPage
(
@Valid
ApiCategoryPageReqVO
pageReqVO
)
{
PageResult
<
ApiCategoryDO
>
pageResult
=
apiCategoryService
.
getApiCategoryPage
(
pageReqVO
);
return
success
(
BeanUtils
.
toBean
(
pageResult
,
ApiCategoryRespVO
.
class
));
}
@GetMapping
(
"/list"
)
@Operation
(
summary
=
"获得API所有分类"
)
public
CommonResult
<
List
<
ApiCategoryRespVO
>>
getAllApiCategory
()
{
List
<
ApiCategoryDO
>
apiCategoryDOS
=
apiCategoryService
.
getAllApiCategory
();
return
success
(
BeanUtils
.
toBean
(
apiCategoryDOS
,
ApiCategoryRespVO
.
class
));
}
@GetMapping
(
"/export-excel"
)
@Operation
(
summary
=
"导出API分类 Excel"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api-category:export')"
)
@ApiAccessLog
(
operateType
=
EXPORT
)
public
void
exportApiCategoryExcel
(
@Valid
ApiCategoryPageReqVO
pageReqVO
,
HttpServletResponse
response
)
throws
IOException
{
pageReqVO
.
setPageSize
(
PageParam
.
PAGE_SIZE_NONE
);
List
<
ApiCategoryDO
>
list
=
apiCategoryService
.
getApiCategoryPage
(
pageReqVO
).
getList
();
// 导出 Excel
ExcelUtils
.
write
(
response
,
"API分类.xls"
,
"数据"
,
ApiCategoryRespVO
.
class
,
BeanUtils
.
toBean
(
list
,
ApiCategoryRespVO
.
class
));
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/admin/apicategory/vo/ApiCategoryPageReqVO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apicategory
.
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
=
"管理后台 - API分类分页 Request VO"
)
@Data
public
class
ApiCategoryPageReqVO
extends
PageParam
{
@Schema
(
description
=
"分类名称"
,
example
=
"张三"
)
private
String
name
;
@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/apicategory/vo/ApiCategoryRespVO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apicategory
.
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
=
"管理后台 - API分类 Response VO"
)
@Data
@ExcelIgnoreUnannotated
public
class
ApiCategoryRespVO
{
@Schema
(
description
=
"ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"4302"
)
@ExcelProperty
(
"ID"
)
private
Long
id
;
@Schema
(
description
=
"分类名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"张三"
)
@ExcelProperty
(
"分类名称"
)
private
String
name
;
@Schema
(
description
=
"分类简介"
,
example
=
"你说的对"
)
@ExcelProperty
(
"分类简介"
)
private
String
description
;
@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/apicategory/vo/ApiCategorySaveReqVO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
admin
.
apicategory
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
java.util.*
;
import
javax.validation.constraints.*
;
@Schema
(
description
=
"管理后台 - API分类新增/修改 Request VO"
)
@Data
public
class
ApiCategorySaveReqVO
{
@Schema
(
description
=
"ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"4302"
)
private
Long
id
;
@Schema
(
description
=
"分类名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"张三"
)
@NotEmpty
(
message
=
"分类名称不能为空"
)
private
String
name
;
@Schema
(
description
=
"分类简介"
,
example
=
"你说的对"
)
private
String
description
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/AppApiController.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
api
;
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.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.apipackage.vo.ApiPackageRespVO
;
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.dal.dataobject.api.ApiDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
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.apicategory.ApiCategoryService
;
import
com.luhu.computility.module.apihub.service.apipackage.ApiPackageService
;
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.annotation.security.PermitAll
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
java.io.IOException
;
import
java.util.List
;
import
static
com
.
luhu
.
computility
.
framework
.
apilog
.
core
.
enums
.
OperateTypeEnum
.
EXPORT
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
@Tag
(
name
=
"用户 - API信息"
)
@RestController
@RequestMapping
(
"/apihub/api"
)
@Validated
public
class
AppApiController
{
@Resource
private
ApiService
apiService
;
@Resource
private
ApiCategoryService
apiCategoryService
;
@Resource
private
ApiPackageService
apiPackageService
;
@GetMapping
(
"/get"
)
@Operation
(
summary
=
"获得API信息"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
@PermitAll
public
CommonResult
<
AppApiRespVO
>
getApi
(
@RequestParam
(
"id"
)
Long
id
)
{
ApiDO
api
=
apiService
.
getApi
(
id
);
ApiCategoryDO
apiCategory
=
apiCategoryService
.
getApiCategory
(
api
.
getCategoryId
());
AppApiRespVO
apiRespVO
=
BeanUtils
.
toBean
(
api
,
AppApiRespVO
.
class
);
apiRespVO
.
setCategoryName
(
apiCategory
.
getName
());
List
<
ApiPackageDO
>
apiPackageDOS
=
apiPackageService
.
selectByApiId
(
id
);
apiRespVO
.
setApiPackages
(
BeanUtils
.
toBean
(
apiPackageDOS
,
AppApiPackageRespVO
.
class
));
return
success
(
apiRespVO
);
}
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"获得API信息分页"
)
@PermitAll
public
CommonResult
<
PageResult
<
AppApiRespVO
>>
getApiPage
(
@Valid
ApiPageReqVO
pageReqVO
)
{
PageResult
<
ApiRespVO
>
pageResult
=
apiService
.
getApiPage
(
pageReqVO
);
return
success
(
BeanUtils
.
toBean
(
pageResult
,
AppApiRespVO
.
class
));
}
@GetMapping
(
"/export-excel"
)
@Operation
(
summary
=
"导出API信息 Excel"
)
@PreAuthorize
(
"@ss.hasPermission('apihub:api:export')"
)
@ApiAccessLog
(
operateType
=
EXPORT
)
public
void
exportApiExcel
(
@Valid
ApiPageReqVO
pageReqVO
,
HttpServletResponse
response
)
throws
IOException
{
pageReqVO
.
setPageSize
(
PageParam
.
PAGE_SIZE_NONE
);
List
<
ApiRespVO
>
list
=
apiService
.
getApiPage
(
pageReqVO
).
getList
();
// 导出 Excel
ExcelUtils
.
write
(
response
,
"API信息.xls"
,
"数据"
,
AppApiRespVO
.
class
,
BeanUtils
.
toBean
(
list
,
AppApiRespVO
.
class
));
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/api/vo/AppApiPackageRespVO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
api
.
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.math.BigDecimal
;
import
java.time.LocalDateTime
;
@Schema
(
description
=
"管理后台 - API 套餐 Response VO"
)
@Data
@ExcelIgnoreUnannotated
public
class
AppApiPackageRespVO
{
@Schema
(
description
=
"套餐ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1592"
)
@ExcelProperty
(
"套餐ID"
)
private
Long
id
;
@Schema
(
description
=
"关联的API ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"23999"
)
@ExcelProperty
(
"关联的API ID"
)
private
Long
apiId
;
@Schema
(
description
=
"套餐名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"芋艿"
)
@ExcelProperty
(
"套餐名称"
)
private
String
name
;
@Schema
(
description
=
"可调用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"可调用次数"
)
private
Integer
times
;
@Schema
(
description
=
"价格(元)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"9887"
)
@ExcelProperty
(
"价格(元)"
)
private
BigDecimal
price
;
@Schema
(
description
=
"有效期(天),0表示永久有效"
)
@ExcelProperty
(
"有效期(天),0表示永久有效"
)
private
Integer
validDays
;
@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/api/vo/AppApiRespVO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
api
.
vo
;
import
com.alibaba.excel.annotation.ExcelIgnoreUnannotated
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.luhu.computility.module.apihub.controller.admin.apipackage.vo.ApiPackageRespVO
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
import
java.util.List
;
@Schema
(
description
=
"用户端 - API信息 Response VO"
)
@Data
@ExcelIgnoreUnannotated
public
class
AppApiRespVO
{
@Schema
(
description
=
"API ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"11243"
)
@ExcelProperty
(
"API ID"
)
private
Long
id
;
@Schema
(
description
=
"API 名称"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"李四"
)
@ExcelProperty
(
"API 名称"
)
private
String
name
;
@Schema
(
description
=
"API 最低价格描述"
,
example
=
"你说的对"
)
@ExcelProperty
(
"API 最低价格描述"
)
private
String
priceInfo
;
@Schema
(
description
=
"API coverimage"
,
example
=
"https://xxx.png"
)
@ExcelProperty
(
"API coverimage"
)
private
String
coverImage
;
@Schema
(
description
=
"API 分类"
,
example
=
"4891084201"
)
@ExcelProperty
(
"API 分类"
)
private
Long
categoryId
;
@Schema
(
description
=
"API 分类名称"
,
example
=
"通用api"
)
@ExcelProperty
(
"API 分类名称"
)
private
String
categoryName
;
@Schema
(
description
=
"API 详细介绍"
)
@ExcelProperty
(
"API 详细介绍"
)
private
String
detail
;
@Schema
(
description
=
"接口文档内容"
)
@ExcelProperty
(
"接口文档内容"
)
private
String
doc
;
@Schema
(
description
=
"API 简介"
,
example
=
"你说的对"
)
@ExcelProperty
(
"API 简介"
)
private
String
description
;
@Schema
(
description
=
"套餐包"
,
example
=
"[{}]"
)
private
List
<
AppApiPackageRespVO
>
apiPackages
;
@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/apicategory/AppApiCategoryController.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
apicategory
;
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.module.apihub.controller.admin.apicategory.vo.ApiCategoryPageReqVO
;
import
com.luhu.computility.module.apihub.controller.admin.apicategory.vo.ApiCategoryRespVO
;
import
com.luhu.computility.module.apihub.controller.admin.apicategory.vo.ApiCategorySaveReqVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
import
com.luhu.computility.module.apihub.service.apicategory.ApiCategoryService
;
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.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
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.annotation.security.PermitAll
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
java.io.IOException
;
import
java.util.List
;
import
static
com
.
luhu
.
computility
.
framework
.
apilog
.
core
.
enums
.
OperateTypeEnum
.
EXPORT
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
@Tag
(
name
=
"用户端 - API分类"
)
@RestController
@RequestMapping
(
"/apihub/api-category"
)
@Validated
public
class
AppApiCategoryController
{
@Resource
private
ApiCategoryService
apiCategoryService
;
@GetMapping
(
"/list"
)
@Operation
(
summary
=
"获得API所有分类"
)
@PermitAll
public
CommonResult
<
List
<
ApiCategoryRespVO
>>
getAllApiCategory
()
{
List
<
ApiCategoryDO
>
apiCategoryDOS
=
apiCategoryService
.
getAllApiCategory
();
return
success
(
BeanUtils
.
toBean
(
apiCategoryDOS
,
ApiCategoryRespVO
.
class
));
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/AppApiOrderController.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
apiorder
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
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.dal.dataobject.api.ApiDO
;
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.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.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.validation.Valid
;
@Tag
(
name
=
"用户端 - api订单"
)
@RestController
@RequestMapping
(
"/apihub/api-order"
)
@Validated
public
class
AppApiOrderController
{
@Resource
private
ApiOrderService
apiOrderService
;
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建api订单"
)
public
CommonResult
<
Long
>
createApiOrder
(
@Valid
@RequestBody
AppApiOrderCreateReqVO
createReqVO
)
{
//创建订单
createReqVO
.
setUserId
(
SecurityFrameworkUtils
.
getLoginUser
().
getId
());
apiOrderService
.
createOrder
(
createReqVO
);
return
null
;
//success(apiOrderService.createApiOrder(createReqVO));
}
/*
@PutMapping("/update")
@Operation(summary = "更新api订单")
@PreAuthorize("@ss.hasPermission('apihub:api-order:update')")
public CommonResult<Boolean> updateApiOrder(@Valid @RequestBody AppApiOrderCreateReqVO updateReqVO) {
apiOrderService.updateApiOrder(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除api订单")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('apihub:api-order:delete')")
public CommonResult<Boolean> deleteApiOrder(@RequestParam("id") Long id) {
apiOrderService.deleteApiOrder(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除api订单")
@PreAuthorize("@ss.hasPermission('apihub:api-order:delete')")
public CommonResult<Boolean> deleteApiOrderList(@RequestParam("ids") List<Long> ids) {
apiOrderService.deleteApiOrderListByIds(ids);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得api订单")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('apihub:api-order:query')")
public CommonResult<AppApiOrderRespVO> getApiOrder(@RequestParam("id") Long id) {
ApiOrderDO apiOrder = apiOrderService.getApiOrder(id);
return success(BeanUtils.toBean(apiOrder, AppApiOrderRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得api订单分页")
@PreAuthorize("@ss.hasPermission('apihub:api-order:query')")
public CommonResult<PageResult<AppApiOrderRespVO>> getApiOrderPage(@Valid AppApiOrderPageReqVO pageReqVO) {
PageResult<ApiOrderDO> pageResult = apiOrderService.getApiOrderPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, AppApiOrderRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出api订单 Excel")
@PreAuthorize("@ss.hasPermission('apihub:api-order:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportApiOrderExcel(@Valid AppApiOrderPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ApiOrderDO> list = apiOrderService.getApiOrderPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "api订单.xls", "数据", AppApiOrderRespVO.class,
BeanUtils.toBean(list, AppApiOrderRespVO.class));
}*/
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderCreateReqVO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
apiorder
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.time.LocalDateTime
;
@Schema
(
description
=
"用户端 - api订单新增/修改 Request VO"
)
@Data
public
class
AppApiOrderCreateReqVO
{
@Schema
(
description
=
"订单ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"30231"
)
private
Long
id
;
@Schema
(
description
=
"下单用户ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"3895"
)
private
Long
userId
;
@Schema
(
description
=
"购买的API ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"10347"
)
@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"
)
@NotNull
(
message
=
"购买的套餐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
Long
packagePrice
;
@Schema
(
description
=
"购买的套餐有效时长"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
packageValidDays
;
@Schema
(
description
=
"订单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
orderNo
;
@Schema
(
description
=
"订单金额(元)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
Long
amount
;
@Schema
(
description
=
"订单状态:0=待支付,1=已支付,2=已取消"
,
example
=
"2"
)
private
Integer
status
;
@Schema
(
description
=
"支付订单编号"
,
example
=
"14961"
)
private
Long
payOrderId
;
@Schema
(
description
=
"订单支付时间"
)
private
LocalDateTime
payTime
;
@Schema
(
description
=
"支付成功的支付渠道"
)
private
String
payChannelCode
;
@Schema
(
description
=
"订单完成时间"
)
private
LocalDateTime
finishTime
;
@Schema
(
description
=
"订单取消时间"
)
private
LocalDateTime
cancelTime
;
@Schema
(
description
=
"备注"
,
example
=
"你说的对"
)
private
String
remark
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/controller/app/apiorder/vo/AppApiOrderPageReqVO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
apiorder
.
vo
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
javax.validation.constraints.NotNull
;
import
java.time.LocalDateTime
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
date
.
DateUtils
.
FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND
;
@Schema
(
description
=
"用户端 - api订单分页 Request VO"
)
@Data
public
class
AppApiOrderPageReqVO
extends
PageParam
{
@Schema
(
description
=
"下单用户ID"
,
example
=
"3895"
)
private
Long
userId
;
@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
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
controller
.
app
.
apiorder
.
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.math.BigDecimal
;
import
java.time.LocalDateTime
;
@Schema
(
description
=
"用户端 - api订单 Response VO"
)
@Data
@ExcelIgnoreUnannotated
public
class
AppApiOrderRespVO
{
@Schema
(
description
=
"订单ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"30231"
)
@ExcelProperty
(
"订单ID"
)
private
Long
id
;
@Schema
(
description
=
"购买的API ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"10347"
)
@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
Long
packageName
;
@Schema
(
description
=
"套餐使用次数"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Long
packageTimes
;
@Schema
(
description
=
"套餐价格"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Long
packagePrice
;
@Schema
(
description
=
"套餐有效期"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Integer
validDays
;
@Schema
(
description
=
"购买的套餐实际支出价格"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"8957"
)
private
Long
costPrice
;
@Schema
(
description
=
"订单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"订单编号"
)
private
String
orderNo
;
@Schema
(
description
=
"订单金额(元)"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@ExcelProperty
(
"订单金额(元)"
)
private
Long
amount
;
@Schema
(
description
=
"订单状态:0=待支付,1=已支付,2=已取消"
,
example
=
"2"
)
@ExcelProperty
(
"订单状态:0=待支付,1=已支付,2=已取消"
)
private
Integer
status
;
@Schema
(
description
=
"支付订单编号"
,
example
=
"14961"
)
@ExcelProperty
(
"支付订单编号"
)
private
Long
payOrderId
;
@Schema
(
description
=
"订单支付时间"
)
@ExcelProperty
(
"订单支付时间"
)
private
LocalDateTime
payTime
;
@Schema
(
description
=
"支付成功的支付渠道"
)
@ExcelProperty
(
"支付成功的支付渠道"
)
private
String
payChannelCode
;
@Schema
(
description
=
"订单完成时间"
)
@ExcelProperty
(
"订单完成时间"
)
private
LocalDateTime
finishTime
;
@Schema
(
description
=
"订单取消时间"
)
@ExcelProperty
(
"订单取消时间"
)
private
LocalDateTime
cancelTime
;
@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/dal/dataobject/api/ApiDO.java
View file @
9c2888c7
...
@@ -31,6 +31,24 @@ public class ApiDO extends BaseDO {
...
@@ -31,6 +31,24 @@ public class ApiDO extends BaseDO {
* API 名称
* API 名称
*/
*/
private
String
name
;
private
String
name
;
/**
* API 最低价格描述
*/
private
String
priceInfo
;
/**
* API coverimage
*/
private
String
coverImage
;
/**
* API 分类
*/
private
Long
categoryId
;
/**
/**
* API 简介
* API 简介
*/
*/
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apicategory/ApiCategoryDO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
dal
.
dataobject
.
apicategory
;
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
;
/**
* API分类 DO
*
* @author ljq
*/
@TableName
(
"apihub_api_category"
)
@KeySequence
(
"apihub_api_category_seq"
)
// 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ToString
(
callSuper
=
true
)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
ApiCategoryDO
extends
BaseDO
{
/**
* ID
*/
@TableId
private
Long
id
;
/**
* 分类名称
*/
private
String
name
;
/**
* 分类简介
*/
private
String
description
;
/**
* 备注
*/
private
String
remark
;
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apiorder/ApiOrderDO.java
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
dal
.
dataobject
.
apiorder
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
dal
.
dataobject
.
apiorder
;
import
com.alipay.api.domain.AlipayOpenStsTokenGetModel
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.*
;
import
lombok.*
;
import
java.util.*
;
import
java.util.*
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
...
@@ -40,6 +42,10 @@ public class ApiOrderDO extends BaseDO {
...
@@ -40,6 +42,10 @@ public class ApiOrderDO extends BaseDO {
*/
*/
private
Long
apiId
;
private
Long
apiId
;
/**
/**
* 购买的套餐名称
*/
private
String
apiName
;
/**
* 购买的套餐ID
* 购买的套餐ID
*/
*/
private
Long
packageId
;
private
Long
packageId
;
...
@@ -48,6 +54,17 @@ public class ApiOrderDO extends BaseDO {
...
@@ -48,6 +54,17 @@ public class ApiOrderDO extends BaseDO {
*/
*/
private
String
packageName
;
private
String
packageName
;
/**
/**
* 购买的套餐使用次数
*/
private
Long
packageTimes
;
/**
* 购买的套餐有效期
*/
private
Integer
validDays
;
/**
* 购买的套餐实际费用
*/
private
Long
costPrice
;
/**
* 购买的套餐单价
* 购买的套餐单价
*/
*/
private
Long
packagePrice
;
private
Long
packagePrice
;
...
@@ -88,5 +105,18 @@ public class ApiOrderDO extends BaseDO {
...
@@ -88,5 +105,18 @@ public class ApiOrderDO extends BaseDO {
*/
*/
private
String
remark
;
private
String
remark
;
/**
* ip
*/
private
String
userIp
;
/**
* 退款状态
*/
private
Integer
refundStatus
;
/**
* 退款金额,单位:分
*/
private
Integer
refundPrice
;
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/dataobject/apipackage/ApiPackageDO.java
View file @
9c2888c7
...
@@ -43,7 +43,7 @@ public class ApiPackageDO extends BaseDO {
...
@@ -43,7 +43,7 @@ public class ApiPackageDO extends BaseDO {
/**
/**
* 价格(元)
* 价格(元)
*/
*/
private
BigDecimal
price
;
private
Long
price
;
/**
/**
* 有效期(天),0表示永久有效
* 有效期(天),0表示永久有效
*/
*/
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/api/ApiMapper.java
View file @
9c2888c7
...
@@ -2,10 +2,14 @@ package com.luhu.computility.module.apihub.dal.mysql.api;
...
@@ -2,10 +2,14 @@ package com.luhu.computility.module.apihub.dal.mysql.api;
import
java.util.*
;
import
java.util.*
;
import
cn.hutool.core.util.ObjectUtil
;
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.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
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.luhu.computility.module.apihub.controller.admin.api.vo.*
;
import
com.luhu.computility.module.apihub.controller.admin.api.vo.*
;
...
@@ -21,8 +25,29 @@ public interface ApiMapper extends BaseMapperX<ApiDO> {
...
@@ -21,8 +25,29 @@ public interface ApiMapper extends BaseMapperX<ApiDO> {
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
ApiDO
>()
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
ApiDO
>()
.
likeIfPresent
(
ApiDO:
:
getName
,
reqVO
.
getName
())
.
likeIfPresent
(
ApiDO:
:
getName
,
reqVO
.
getName
())
.
eqIfPresent
(
ApiDO:
:
getStatus
,
reqVO
.
getStatus
())
.
eqIfPresent
(
ApiDO:
:
getStatus
,
reqVO
.
getStatus
())
.
eqIfPresent
(
ApiDO:
:
getCategoryId
,
reqVO
.
getCategoryId
())
.
betweenIfPresent
(
ApiDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
betweenIfPresent
(
ApiDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
orderByDesc
(
ApiDO:
:
getId
));
.
orderByDesc
(
ApiDO:
:
getId
));
}
}
default
PageResult
<
ApiRespVO
>
selectJoinPage
(
ApiPageReqVO
reqVO
)
{
return
selectJoinPage
(
reqVO
,
ApiRespVO
.
class
,
new
MPJLambdaWrapperX
<
ApiDO
>()
.
selectAll
(
ApiDO
.
class
)
.
selectAs
(
ApiCategoryDO
::
getName
,
ApiRespVO
::
getCategoryName
)
.
leftJoin
(
ApiCategoryDO
.
class
,
ApiCategoryDO:
:
getId
,
ApiDO:
:
getCategoryId
)
.
eq
(!
ObjectUtil
.
isEmpty
(
reqVO
.
getCategoryId
()),
ApiCategoryDO:
:
getId
,
reqVO
.
getCategoryId
()
)
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getSearchQuery
()),
ApiCategoryDO:
:
getName
,
reqVO
.
getSearchQuery
())
.
or
(!
StringUtils
.
isEmpty
(
reqVO
.
getSearchQuery
()))
.
like
(!
StringUtils
.
isEmpty
(
reqVO
.
getSearchQuery
()),
ApiDO:
:
getName
,
reqVO
.
getSearchQuery
())
.
orderByDesc
(
ApiDO:
:
getId
));
}
/*selectJoinPage(queryVO, ProductSkuRespVO.class, new MPJLambdaWrapperX<ProductSkuDO>()
.selectAll(ProductSkuDO.class)
.select(ProductSpuDO::getName)
.leftJoin(ProductSpuDO.class, ProductSpuDO::getId, ProductSkuDO::getSpuId)
.eq(!ObjectUtil.isEmpty(queryVO.getCategoryId()), ProductSpuDO::getCategoryId, queryVO.getCategoryId() )
.orderByDesc(ProductSkuDO::getCreator));*/
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apicategory/ApiCategoryMapper.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
dal
.
mysql
.
apicategory
;
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.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.luhu.computility.module.apihub.controller.admin.apicategory.vo.*
;
/**
* API分类 Mapper
*
* @author ljq
*/
@Mapper
public
interface
ApiCategoryMapper
extends
BaseMapperX
<
ApiCategoryDO
>
{
default
PageResult
<
ApiCategoryDO
>
selectPage
(
ApiCategoryPageReqVO
reqVO
)
{
return
selectPage
(
reqVO
,
new
LambdaQueryWrapperX
<
ApiCategoryDO
>()
.
likeIfPresent
(
ApiCategoryDO:
:
getName
,
reqVO
.
getName
())
.
betweenIfPresent
(
ApiCategoryDO:
:
getCreateTime
,
reqVO
.
getCreateTime
())
.
orderByDesc
(
ApiCategoryDO:
:
getId
));
}
default
List
<
ApiCategoryDO
>
selectAll
()
{
return
selectList
();
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/redis/RedisKeyConstants.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
dal
.
redis
;
/**
* 交易 Redis Key 枚举类
*
* @author 芋道源码
*/
public
interface
RedisKeyConstants
{
/**
* api交易序号的缓存
*
* KEY 格式:trade_no:{prefix}
* VALUE 数据格式:编号自增
*/
String
API_TRADE_NO
=
"api_trade_no:"
;
/**
* api交易序号的缓存
*
* KEY 格式:express_track:{code-logisticsNo-receiverMobile}
* VALUE 数据格式 String, 物流信息集合
*/
String
EXPRESS_TRACK
=
"express_track"
;
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/redis/no/ApiOrderNoRedisDAO.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
dal
.
redis
.
no
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
com.luhu.computility.module.apihub.dal.redis.RedisKeyConstants
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Repository
;
import
javax.annotation.Resource
;
import
java.time.Duration
;
import
java.time.LocalDateTime
;
/**
* 订单序号的 Redis DAO
*
* @author HUIHUI
*/
@Repository
public
class
ApiOrderNoRedisDAO
{
public
static
final
String
API_ORDER_NO_PREFIX
=
"a"
;
public
static
final
String
AFTER_SALE_NO_PREFIX
=
"p"
;
@Resource
private
StringRedisTemplate
stringRedisTemplate
;
/**
* 生成序号
*
* @param prefix 前缀
* @return 序号
*/
public
String
generate
(
String
prefix
)
{
// 递增序号
String
noPrefix
=
prefix
+
DateUtil
.
format
(
LocalDateTime
.
now
(),
DatePattern
.
PURE_DATETIME_PATTERN
);
String
key
=
RedisKeyConstants
.
API_TRADE_NO
+
noPrefix
;
Long
no
=
stringRedisTemplate
.
opsForValue
().
increment
(
key
);
// 设置过期时间
stringRedisTemplate
.
expire
(
key
,
Duration
.
ofMinutes
(
1L
));
return
noPrefix
+
no
;
}
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ApiOrderRefundStatus.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
enums
;
/**
* 订单退款状态
*/
public
enum
ApiOrderRefundStatus
{
// 请根据实际情况改成对应的值和备注
NONE
(
0
,
"未退款"
),
ALL
(
20
,
"全部退款"
);
private
int
value
;
private
String
remark
;
private
ApiOrderRefundStatus
(
int
value
,
String
remark
)
{
this
.
value
=
value
;
this
.
remark
=
remark
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getRemark
()
{
return
remark
;
}
public
static
ApiOrderRefundStatus
getByValue
(
int
value
)
{
for
(
ApiOrderRefundStatus
o
:
ApiOrderRefundStatus
.
values
())
{
if
(
o
.
getValue
()
==
value
)
{
return
o
;
}
}
return
null
;
}
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ApiOrderStatus.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
enums
;
/**
* 订单状态
*/
public
enum
ApiOrderStatus
{
// 请根据实际情况改成对应的值和备注
UNPAID
(
0
,
"待支付"
),
PAID
(
10
,
"已支付"
),
CANCELED
(
40
,
"已取消"
);
private
int
value
;
private
String
remark
;
private
ApiOrderStatus
(
int
value
,
String
remark
)
{
this
.
value
=
value
;
this
.
remark
=
remark
;
}
public
int
getValue
()
{
return
value
;
}
public
String
getRemark
()
{
return
remark
;
}
public
static
ApiOrderStatus
getByValue
(
int
value
)
{
for
(
ApiOrderStatus
o
:
ApiOrderStatus
.
values
())
{
if
(
o
.
getValue
()
==
value
)
{
return
o
;
}
}
return
null
;
}
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/enums/ErrorCodeConstants.java
View file @
9c2888c7
...
@@ -13,7 +13,7 @@ public interface ErrorCodeConstants {
...
@@ -13,7 +13,7 @@ public interface ErrorCodeConstants {
ErrorCode
API_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_002
,
" API 模块不存在"
);
ErrorCode
API_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_002
,
" API 模块不存在"
);
ErrorCode
API_ORDER_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_003
,
" API 订单不存在"
);
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_PACKAGE_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_004
,
" API 套餐不存在"
);
ErrorCode
API_CATEGORY_NOT_EXISTS
=
new
ErrorCode
(
1_010_001_005
,
"API分类不存在"
);
}
}
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/api/ApiService.java
View file @
9c2888c7
...
@@ -57,6 +57,6 @@ public interface ApiService {
...
@@ -57,6 +57,6 @@ public interface ApiService {
* @param pageReqVO 分页查询
* @param pageReqVO 分页查询
* @return API信息分页
* @return API信息分页
*/
*/
PageResult
<
Api
D
O
>
getApiPage
(
ApiPageReqVO
pageReqVO
);
PageResult
<
Api
RespV
O
>
getApiPage
(
ApiPageReqVO
pageReqVO
);
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/api/ApiServiceImpl.java
View file @
9c2888c7
...
@@ -78,8 +78,10 @@ public class ApiServiceImpl implements ApiService {
...
@@ -78,8 +78,10 @@ public class ApiServiceImpl implements ApiService {
}
}
@Override
@Override
public
PageResult
<
Api
D
O
>
getApiPage
(
ApiPageReqVO
pageReqVO
)
{
public
PageResult
<
Api
RespV
O
>
getApiPage
(
ApiPageReqVO
pageReqVO
)
{
return
apiMapper
.
selectPage
(
pageReqVO
);
return
apiMapper
.
select
Join
Page
(
pageReqVO
);
}
}
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicategory/ApiCategoryService.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
service
.
apicategory
;
import
java.util.*
;
import
javax.validation.*
;
import
com.luhu.computility.module.apihub.controller.admin.apicategory.vo.*
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
/**
* API分类 Service 接口
*
* @author ljq
*/
public
interface
ApiCategoryService
{
/**
* 创建API分类
*
* @param createReqVO 创建信息
* @return 编号
*/
Long
createApiCategory
(
@Valid
ApiCategorySaveReqVO
createReqVO
);
/**
* 更新API分类
*
* @param updateReqVO 更新信息
*/
void
updateApiCategory
(
@Valid
ApiCategorySaveReqVO
updateReqVO
);
/**
* 删除API分类
*
* @param id 编号
*/
void
deleteApiCategory
(
Long
id
);
/**
* 批量删除API分类
*
* @param ids 编号
*/
void
deleteApiCategoryListByIds
(
List
<
Long
>
ids
);
/**
* 获得API分类
*
* @param id 编号
* @return API分类
*/
ApiCategoryDO
getApiCategory
(
Long
id
);
/**
* 获得API分类分页
*
* @param pageReqVO 分页查询
* @return API分类分页
*/
PageResult
<
ApiCategoryDO
>
getApiCategoryPage
(
ApiCategoryPageReqVO
pageReqVO
);
/**
* 获得API分类分页
*
* @return API分类分页
*/
List
<
ApiCategoryDO
>
getAllApiCategory
();
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicategory/ApiCategoryServiceImpl.java
0 → 100644
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
service
.
apicategory
;
import
cn.hutool.core.collection.CollUtil
;
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.apicategory.vo.*
;
import
com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO
;
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.apicategory.ApiCategoryMapper
;
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
.*;
/**
* API分类 Service 实现类
*
* @author ljq
*/
@Service
@Validated
public
class
ApiCategoryServiceImpl
implements
ApiCategoryService
{
@Resource
private
ApiCategoryMapper
apiCategoryMapper
;
@Override
public
Long
createApiCategory
(
ApiCategorySaveReqVO
createReqVO
)
{
// 插入
ApiCategoryDO
apiCategory
=
BeanUtils
.
toBean
(
createReqVO
,
ApiCategoryDO
.
class
);
apiCategoryMapper
.
insert
(
apiCategory
);
// 返回
return
apiCategory
.
getId
();
}
@Override
public
void
updateApiCategory
(
ApiCategorySaveReqVO
updateReqVO
)
{
// 校验存在
validateApiCategoryExists
(
updateReqVO
.
getId
());
// 更新
ApiCategoryDO
updateObj
=
BeanUtils
.
toBean
(
updateReqVO
,
ApiCategoryDO
.
class
);
apiCategoryMapper
.
updateById
(
updateObj
);
}
@Override
public
void
deleteApiCategory
(
Long
id
)
{
// 校验存在
validateApiCategoryExists
(
id
);
// 删除
apiCategoryMapper
.
deleteById
(
id
);
}
@Override
public
void
deleteApiCategoryListByIds
(
List
<
Long
>
ids
)
{
// 删除
apiCategoryMapper
.
deleteByIds
(
ids
);
}
private
void
validateApiCategoryExists
(
Long
id
)
{
if
(
apiCategoryMapper
.
selectById
(
id
)
==
null
)
{
throw
exception
(
API_CATEGORY_NOT_EXISTS
);
}
}
@Override
public
ApiCategoryDO
getApiCategory
(
Long
id
)
{
return
apiCategoryMapper
.
selectById
(
id
);
}
@Override
public
PageResult
<
ApiCategoryDO
>
getApiCategoryPage
(
ApiCategoryPageReqVO
pageReqVO
)
{
return
apiCategoryMapper
.
selectPage
(
pageReqVO
);
}
@Override
public
List
<
ApiCategoryDO
>
getAllApiCategory
()
{
return
apiCategoryMapper
.
selectAll
();
}
}
\ No newline at end of file
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderService.java
View file @
9c2888c7
...
@@ -3,6 +3,7 @@ package com.luhu.computility.module.apihub.service.apiorder;
...
@@ -3,6 +3,7 @@ package com.luhu.computility.module.apihub.service.apiorder;
import
java.util.*
;
import
java.util.*
;
import
javax.validation.*
;
import
javax.validation.*
;
import
com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*
;
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.dal.dataobject.apiorder.ApiOrderDO
;
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.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
...
@@ -22,6 +23,10 @@ public interface ApiOrderService {
...
@@ -22,6 +23,10 @@ public interface ApiOrderService {
*/
*/
Long
createApiOrder
(
@Valid
ApiOrderSaveReqVO
createReqVO
);
Long
createApiOrder
(
@Valid
ApiOrderSaveReqVO
createReqVO
);
ApiOrderDO
createOrder
(
AppApiOrderCreateReqVO
createReqVO
);
/**
/**
* 更新api订单
* 更新api订单
*
*
...
...
computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
View file @
9c2888c7
package
com
.
luhu
.
computility
.
module
.
apihub
.
service
.
apiorder
;
package
com
.
luhu
.
computility
.
module
.
apihub
.
service
.
apiorder
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.RandomUtil
;
import
com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateReqVO
;
import
com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO
;
import
com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO
;
import
com.luhu.computility.module.apihub.dal.redis.no.ApiOrderNoRedisDAO
;
import
com.luhu.computility.module.apihub.enums.ApiOrderRefundStatus
;
import
com.luhu.computility.module.apihub.enums.ApiOrderStatus
;
import
com.luhu.computility.module.apihub.service.api.ApiService
;
import
com.luhu.computility.module.apihub.service.apipackage.ApiPackageService
;
import
com.luhu.computility.module.member.api.address.dto.MemberAddressRespDTO
;
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
;
...
@@ -10,14 +20,15 @@ import java.util.*;
...
@@ -10,14 +20,15 @@ import java.util.*;
import
com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*
;
import
com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*
;
import
com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO
;
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.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageParam
;
import
com.luhu.computility.framework.common.util.object.BeanUtils
;
import
com.luhu.computility.framework.common.util.object.BeanUtils
;
import
com.luhu.computility.module.apihub.dal.mysql.apiorder.ApiOrderMapper
;
import
com.luhu.computility.module.apihub.dal.mysql.apiorder.ApiOrderMapper
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
exception
.
util
.
ServiceExceptionUtil
.
exception
;
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
.
convertList
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
diffList
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
getSumValue
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
servlet
.
ServletUtils
.
getClientIP
;
import
static
com
.
luhu
.
computility
.
framework
.
web
.
core
.
util
.
WebFrameworkUtils
.
getTerminal
;
import
static
com
.
luhu
.
computility
.
module
.
apihub
.
enums
.
ErrorCodeConstants
.*;
import
static
com
.
luhu
.
computility
.
module
.
apihub
.
enums
.
ErrorCodeConstants
.*;
/**
/**
...
@@ -32,6 +43,19 @@ public class ApiOrderServiceImpl implements ApiOrderService {
...
@@ -32,6 +43,19 @@ public class ApiOrderServiceImpl implements ApiOrderService {
@Resource
@Resource
private
ApiOrderMapper
apiOrderMapper
;
private
ApiOrderMapper
apiOrderMapper
;
@Resource
private
ApiService
apiService
;
@Resource
private
ApiPackageService
apiPackageService
;
@Resource
private
ApiOrderNoRedisDAO
apiOrderNoRedisDAO
;
@Override
@Override
public
Long
createApiOrder
(
ApiOrderSaveReqVO
createReqVO
)
{
public
Long
createApiOrder
(
ApiOrderSaveReqVO
createReqVO
)
{
// 插入
// 插入
...
@@ -82,4 +106,39 @@ public class ApiOrderServiceImpl implements ApiOrderService {
...
@@ -82,4 +106,39 @@ public class ApiOrderServiceImpl implements ApiOrderService {
return
apiOrderMapper
.
selectPage
(
pageReqVO
);
return
apiOrderMapper
.
selectPage
(
pageReqVO
);
}
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
//@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_CREATE)
public
ApiOrderDO
createOrder
(
AppApiOrderCreateReqVO
createReqVO
)
{
// 1.构建订单
ApiOrderDO
order
=
buildApiOrder
(
createReqVO
);
// 2. 保存订单
apiOrderMapper
.
insert
(
order
);
// 3. 订单创建后的逻辑
//afterCreateApiOrder(order, createReqVO);
return
order
;
}
private
ApiOrderDO
buildApiOrder
(
AppApiOrderCreateReqVO
createReqVO
)
{
ApiDO
api
=
apiService
.
getApi
(
createReqVO
.
getApiId
());
ApiPackageDO
apiPackage
=
apiPackageService
.
getApiPackage
(
createReqVO
.
getPackageId
());
createReqVO
.
setApiName
(
api
.
getName
());
createReqVO
.
setPackageName
(
apiPackage
.
getName
());
createReqVO
.
setPackagePrice
(
apiPackage
.
getPrice
());
createReqVO
.
setPackageTimes
(
apiPackage
.
getTimes
());
createReqVO
.
setPackageValidDays
(
apiPackage
.
getValidDays
());
//业务上,订单金额=套餐金额
createReqVO
.
setAmount
(
apiPackage
.
getPrice
());
ApiOrderDO
order
=
BeanUtils
.
toBean
(
createReqVO
,
ApiOrderDO
.
class
);
order
.
setOrderNo
(
apiOrderNoRedisDAO
.
generate
(
ApiOrderNoRedisDAO
.
API_ORDER_NO_PREFIX
));
order
.
setStatus
(
ApiOrderStatus
.
UNPAID
.
getValue
());
order
.
setUserIp
(
getClientIP
());
order
.
setRefundStatus
(
ApiOrderRefundStatus
.
NONE
.
getValue
()).
setRefundPrice
(
0
);
return
order
;
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment