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
4355cf03
authored
Sep 10, 2025
by
Jony.L
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
发票功能1.0
parent
5251136f
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
226 additions
and
11 deletions
+226
-11
computility-framework/computility-common/src/main/java/com/luhu/computility/framework/common/exception/ServiceException.java
+6
-0
computility-module-mall/computility-module-trade-api/src/main/java/com/luhu/computility/module/trade/enums/order/TradeOrderInvoiceStatusEnum.java
+34
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/admin/order/TradeOrderController.java
+16
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java
+11
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/admin/order/vo/TradeOrderInvoiceSaveVO.java
+17
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java
+8
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/app/order/AppTradeOrderController.java
+26
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/app/order/vo/AppTradeOrderInvoiceReqVO.java
+17
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/app/order/vo/AppTradeOrderItemInvoiceInfoRespVO.java
+21
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/app/order/vo/AppTradeOrderPageRespVO.java
+6
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/convert/order/TradeOrderConvert.java
+4
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/dal/dataobject/order/TradeOrderDO.java
+10
-0
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/service/order/TradeOrderUpdateService.java
+17
-4
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/service/order/TradeOrderUpdateServiceImpl.java
+33
-7
No files found.
computility-framework/computility-common/src/main/java/com/luhu/computility/framework/common/exception/ServiceException.java
View file @
4355cf03
package
com
.
luhu
.
computility
.
framework
.
common
.
exception
;
package
com
.
luhu
.
computility
.
framework
.
common
.
exception
;
import
cn.hutool.core.util.StrUtil
;
import
com.luhu.computility.framework.common.exception.enums.ServiceErrorCodeRange
;
import
com.luhu.computility.framework.common.exception.enums.ServiceErrorCodeRange
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
...
@@ -33,6 +34,11 @@ public final class ServiceException extends RuntimeException {
...
@@ -33,6 +34,11 @@ public final class ServiceException extends RuntimeException {
this
.
message
=
errorCode
.
getMsg
();
this
.
message
=
errorCode
.
getMsg
();
}
}
public
ServiceException
(
String
message
,
Object
...
param
)
{
this
.
code
=
500
;
this
.
message
=
StrUtil
.
format
(
message
,
param
);
}
public
ServiceException
(
Integer
code
,
String
message
)
{
public
ServiceException
(
Integer
code
,
String
message
)
{
this
.
code
=
code
;
this
.
code
=
code
;
this
.
message
=
message
;
this
.
message
=
message
;
...
...
computility-module-mall/computility-module-trade-api/src/main/java/com/luhu/computility/module/trade/enums/order/TradeOrderInvoiceStatusEnum.java
0 → 100644
View file @
4355cf03
package
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
order
;
import
com.luhu.computility.framework.common.core.ArrayValuable
;
import
lombok.Getter
;
import
java.util.Arrays
;
/**
* @Author: jony
* @Date : 2025/9/9 15:15
* @VERSION v1.0
*/
@Getter
public
enum
TradeOrderInvoiceStatusEnum
implements
ArrayValuable
<
Integer
>
{
UNINVOICE
(
0
,
"未开票"
),
INVOICING
(
1
,
"开票中"
),
INVOICED
(
2
,
"已开票"
);
@Override
public
Integer
[]
array
()
{
// 遍历所有枚举常量,提取 status 组成数组
return
Arrays
.
stream
(
values
()).
map
(
TradeOrderInvoiceStatusEnum:
:
getStatus
).
toArray
(
Integer
[]::
new
);
}
TradeOrderInvoiceStatusEnum
(
Integer
status
,
String
description
){
this
.
status
=
status
;
this
.
description
=
description
;
}
private
final
Integer
status
;
private
final
String
description
;
}
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/admin/order/TradeOrderController.java
View file @
4355cf03
package
com
.
luhu
.
computility
.
module
.
trade
.
controller
.
admin
.
order
;
package
com
.
luhu
.
computility
.
module
.
trade
.
controller
.
admin
.
order
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.luhu.computility.framework.common.exception.ServiceException
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.module.member.api.user.MemberUserApi
;
import
com.luhu.computility.module.member.api.user.MemberUserApi
;
...
@@ -34,6 +36,7 @@ import static com.luhu.computility.framework.common.pojo.CommonResult.success;
...
@@ -34,6 +36,7 @@ import static com.luhu.computility.framework.common.pojo.CommonResult.success;
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
.
convertSet
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
convertSet
;
import
static
com
.
luhu
.
computility
.
framework
.
security
.
core
.
util
.
SecurityFrameworkUtils
.
getLoginUserId
;
import
static
com
.
luhu
.
computility
.
framework
.
security
.
core
.
util
.
SecurityFrameworkUtils
.
getLoginUserId
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
order
.
TradeOrderInvoiceStatusEnum
.
INVOICED
;
@Tag
(
name
=
"管理后台 - 交易订单"
)
@Tag
(
name
=
"管理后台 - 交易订单"
)
@RestController
@RestController
...
@@ -55,6 +58,19 @@ public class TradeOrderController {
...
@@ -55,6 +58,19 @@ public class TradeOrderController {
@Resource
@Resource
private
TradeOrderToResourceService
tradeOrderToResourceService
;
private
TradeOrderToResourceService
tradeOrderToResourceService
;
@PutMapping
(
"/issue-invoice"
)
@Operation
(
summary
=
"开具发票"
)
public
CommonResult
<
Boolean
>
issueInvoice
(
@RequestBody
TradeOrderInvoiceSaveVO
saveVO
){
if
(
ObjectUtil
.
isEmpty
(
saveVO
.
getInvoiceUrl
())){
throw
new
ServiceException
(
"发票图片出错!"
);
}
if
(
saveVO
.
getInvoiceStatus
().
equals
(
INVOICED
.
getStatus
())){
throw
new
ServiceException
(
"该订单已经开具发票"
);
}
return
success
(
tradeOrderUpdateService
.
updateInvoice
(
saveVO
));
}
@GetMapping
(
"/page"
)
@GetMapping
(
"/page"
)
@Operation
(
summary
=
"获得交易订单分页"
)
@Operation
(
summary
=
"获得交易订单分页"
)
@PreAuthorize
(
"@ss.hasPermission('trade:order:query')"
)
@PreAuthorize
(
"@ss.hasPermission('trade:order:query')"
)
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java
View file @
4355cf03
...
@@ -131,6 +131,17 @@ public class TradeOrderBaseVO {
...
@@ -131,6 +131,17 @@ public class TradeOrderBaseVO {
@Schema
(
description
=
"退款金额"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"100"
)
@Schema
(
description
=
"退款金额"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"100"
)
private
Integer
refundPrice
;
private
Integer
refundPrice
;
// ========== 发票基本信息 ==========
/**
* 发票图片链接
*/
private
String
invoiceUrl
;
/**
* 开票状态(0:未开票 1:已开票)
*/
private
Integer
invoiceStatus
;
// ========== 营销基本信息 ==========
// ========== 营销基本信息 ==========
@Schema
(
description
=
"优惠劵编号"
,
example
=
"1024"
)
@Schema
(
description
=
"优惠劵编号"
,
example
=
"1024"
)
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/admin/order/vo/TradeOrderInvoiceSaveVO.java
0 → 100644
View file @
4355cf03
package
com
.
luhu
.
computility
.
module
.
trade
.
controller
.
admin
.
order
.
vo
;
import
lombok.Data
;
/**
* @Author: jony
* @Date : 2025/9/9 15:04
* @VERSION v1.0
*/
@Data
public
class
TradeOrderInvoiceSaveVO
{
private
Long
id
;
private
String
invoiceUrl
;
private
Integer
invoiceStatus
;
}
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/admin/order/vo/TradeOrderItemBaseVO.java
View file @
4355cf03
...
@@ -64,4 +64,12 @@ public class TradeOrderItemBaseVO {
...
@@ -64,4 +64,12 @@ public class TradeOrderItemBaseVO {
@Schema
(
description
=
"售后状态"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1"
)
@Schema
(
description
=
"售后状态"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1"
)
private
Integer
afterSaleStatus
;
private
Integer
afterSaleStatus
;
// ========== 发票基本信息 ==========
@Schema
(
description
=
"发票链接"
,
example
=
"https://fapiao"
)
private
String
invoiceUrl
;
@Schema
(
description
=
"开票状态"
,
example
=
"0"
)
private
Integer
invoiceStatus
;
}
}
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/app/order/AppTradeOrderController.java
View file @
4355cf03
package
com
.
luhu
.
computility
.
module
.
trade
.
controller
.
app
.
order
;
package
com
.
luhu
.
computility
.
module
.
trade
.
controller
.
app
.
order
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.luhu.computility.framework.common.exception.ServiceException
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
import
com.luhu.computility.framework.common.pojo.CommonResult
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.pojo.PageResult
;
import
com.luhu.computility.framework.common.util.object.BeanUtils
;
import
com.luhu.computility.framework.common.util.object.BeanUtils
;
...
@@ -39,10 +40,13 @@ import javax.validation.Valid;
...
@@ -39,10 +40,13 @@ import javax.validation.Valid;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
pojo
.
CommonResult
.
success
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
convertSet
;
import
static
com
.
luhu
.
computility
.
framework
.
common
.
util
.
collection
.
CollectionUtils
.
convertSet
;
import
static
com
.
luhu
.
computility
.
framework
.
security
.
core
.
util
.
SecurityFrameworkUtils
.
getLoginUserId
;
import
static
com
.
luhu
.
computility
.
framework
.
security
.
core
.
util
.
SecurityFrameworkUtils
.
getLoginUserId
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
order
.
TradeOrderInvoiceStatusEnum
.
INVOICED
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
order
.
TradeOrderInvoiceStatusEnum
.
INVOICING
;
@Tag
(
name
=
"用户 App - 交易订单"
)
@Tag
(
name
=
"用户 App - 交易订单"
)
@RestController
@RestController
...
@@ -66,6 +70,18 @@ public class AppTradeOrderController {
...
@@ -66,6 +70,18 @@ public class AppTradeOrderController {
@Resource
@Resource
private
TradeOrderProperties
tradeOrderProperties
;
private
TradeOrderProperties
tradeOrderProperties
;
@PostMapping
(
"/invoiceRequest"
)
@Operation
(
summary
=
"申请开票"
)
public
CommonResult
<
Boolean
>
invoiceRequest
(
@RequestBody
AppTradeOrderInvoiceReqVO
reqVO
){
Integer
invoiceStatus
=
reqVO
.
getInvoiceStatus
();
if
(
invoiceStatus
.
equals
(
INVOICING
.
getStatus
())){
throw
new
ServiceException
(
"该订单已申请开票,请耐心等待"
);
}
if
(
invoiceStatus
.
equals
(
INVOICED
.
getStatus
())){
throw
new
ServiceException
(
"该订单已开票,请勿重复申请"
);
}
return
success
(
tradeOrderUpdateService
.
updateRequestInvoice
(
reqVO
));
}
@GetMapping
(
"/settlement"
)
@GetMapping
(
"/settlement"
)
@Operation
(
summary
=
"获得订单结算信息"
)
@Operation
(
summary
=
"获得订单结算信息"
)
...
@@ -159,6 +175,14 @@ public class AppTradeOrderController {
...
@@ -159,6 +175,14 @@ public class AppTradeOrderController {
PageResult
<
AppTradeOrderPageRespVO
>
targetPageResult
=
new
PageResult
<>();
PageResult
<
AppTradeOrderPageRespVO
>
targetPageResult
=
new
PageResult
<>();
List
<
AppTradeOrderPageRespVO
>
appTradeOrders
=
new
ArrayList
<>();
List
<
AppTradeOrderPageRespVO
>
appTradeOrders
=
new
ArrayList
<>();
Map
<
Long
,
AppTradeOrderItemInvoiceInfoRespVO
>
invoiceCollet
=
pageResult
.
getList
().
stream
()
.
collect
(
Collectors
.
toMap
(
TradeOrderDO:
:
getId
,
item
->
new
AppTradeOrderItemInvoiceInfoRespVO
(
item
.
getInvoiceUrl
(),
item
.
getInvoiceStatus
()
)
));
if
(!
CollectionUtil
.
isEmpty
(
sourcePageResult
.
getList
()))
{
if
(!
CollectionUtil
.
isEmpty
(
sourcePageResult
.
getList
()))
{
for
(
AppTradeOrderPageItemRespVO
item
:
sourcePageResult
.
getList
())
{
for
(
AppTradeOrderPageItemRespVO
item
:
sourcePageResult
.
getList
())
{
AppTradeOrderPageRespVO
appTradeOrder
=
new
AppTradeOrderPageRespVO
();
AppTradeOrderPageRespVO
appTradeOrder
=
new
AppTradeOrderPageRespVO
();
...
@@ -173,6 +197,8 @@ public class AppTradeOrderController {
...
@@ -173,6 +197,8 @@ public class AppTradeOrderController {
appTradeOrder
.
setStatus
(
item
.
getStatus
());
appTradeOrder
.
setStatus
(
item
.
getStatus
());
appTradeOrder
.
setStatusName
(
TradeOrderStatusEnum
.
getNameByStatus
(
item
.
getStatus
()));
appTradeOrder
.
setStatusName
(
TradeOrderStatusEnum
.
getNameByStatus
(
item
.
getStatus
()));
appTradeOrder
.
setProperties
(
item
.
getItems
().
get
(
0
).
getProperties
());
appTradeOrder
.
setProperties
(
item
.
getItems
().
get
(
0
).
getProperties
());
appTradeOrder
.
setInvoiceUrl
(
invoiceCollet
.
get
(
item
.
getId
()).
getInvoiceUrl
());
appTradeOrder
.
setInvoiceStatus
(
invoiceCollet
.
get
(
item
.
getId
()).
getInvoiceStatus
());
appTradeOrders
.
add
(
appTradeOrder
);
appTradeOrders
.
add
(
appTradeOrder
);
}
}
}
}
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/app/order/vo/AppTradeOrderInvoiceReqVO.java
0 → 100644
View file @
4355cf03
package
com
.
luhu
.
computility
.
module
.
trade
.
controller
.
app
.
order
.
vo
;
import
lombok.Data
;
/**
* @Author: jony
* @Date : 2025/9/10 09:53
* @VERSION v1.0
*/
@Data
public
class
AppTradeOrderInvoiceReqVO
{
private
Long
id
;
//发票图片链接
private
String
invoiceUrl
;
//开票状态
private
Integer
invoiceStatus
;
}
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/app/order/vo/AppTradeOrderItemInvoiceInfoRespVO.java
0 → 100644
View file @
4355cf03
package
com
.
luhu
.
computility
.
module
.
trade
.
controller
.
app
.
order
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Author: jony
* @Date : 2025/9/9 09:27
* @VERSION v1.0
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
AppTradeOrderItemInvoiceInfoRespVO
{
//发票图片链接
private
String
invoiceUrl
;
//开票状态
private
Integer
invoiceStatus
;
}
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/controller/app/order/vo/AppTradeOrderPageRespVO.java
View file @
4355cf03
...
@@ -36,6 +36,12 @@ public class AppTradeOrderPageRespVO {
...
@@ -36,6 +36,12 @@ public class AppTradeOrderPageRespVO {
@Schema
(
description
=
"商品类别"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"芋道源码"
)
@Schema
(
description
=
"商品类别"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"芋道源码"
)
private
String
categoryName
;
private
String
categoryName
;
@Schema
(
description
=
"发票链接"
,
example
=
"https://fapiao"
)
private
String
invoiceUrl
;
@Schema
(
description
=
"开票状态"
,
example
=
"0"
)
private
Integer
invoiceStatus
;
private
List
<
AppProductPropertyValueDetailRespVO
>
properties
;
private
List
<
AppProductPropertyValueDetailRespVO
>
properties
;
@Schema
(
description
=
"应付金额,单位:分"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1000"
)
@Schema
(
description
=
"应付金额,单位:分"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
,
example
=
"1000"
)
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/convert/order/TradeOrderConvert.java
View file @
4355cf03
...
@@ -127,6 +127,10 @@ public interface TradeOrderConvert {
...
@@ -127,6 +127,10 @@ public interface TradeOrderConvert {
orderVO
.
setUser
(
convertUser
(
memberUserMap
.
get
(
orderVO
.
getUserId
())));
orderVO
.
setUser
(
convertUser
(
memberUserMap
.
get
(
orderVO
.
getUserId
())));
// 增加推广人信息
// 增加推广人信息
orderVO
.
setBrokerageUser
(
convertUser
(
memberUserMap
.
get
(
orderVO
.
getBrokerageUserId
())));
orderVO
.
setBrokerageUser
(
convertUser
(
memberUserMap
.
get
(
orderVO
.
getBrokerageUserId
())));
// 增加发票信息
orderVO
.
setInvoiceStatus
(
order
.
getInvoiceStatus
());
orderVO
.
setInvoiceUrl
(
order
.
getInvoiceUrl
());
return
orderVO
;
return
orderVO
;
});
});
return
new
PageResult
<>(
orderVOs
,
pageResult
.
getTotal
());
return
new
PageResult
<>(
orderVOs
,
pageResult
.
getTotal
());
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/dal/dataobject/order/TradeOrderDO.java
View file @
4355cf03
...
@@ -262,6 +262,16 @@ public class TradeOrderDO extends BaseDO {
...
@@ -262,6 +262,16 @@ public class TradeOrderDO extends BaseDO {
*/
*/
private
Integer
refundPrice
;
private
Integer
refundPrice
;
// ========== 发票基本信息 ==========
/**
* 发票图片链接
*/
private
String
invoiceUrl
;
/**
* 开票状态(0:未开票 1:已开票)
*/
private
Integer
invoiceStatus
;
// ========== 营销基本信息 ==========
// ========== 营销基本信息 ==========
/**
/**
* 优惠劵编号
* 优惠劵编号
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/service/order/TradeOrderUpdateService.java
View file @
4355cf03
package
com
.
luhu
.
computility
.
module
.
trade
.
service
.
order
;
package
com
.
luhu
.
computility
.
module
.
trade
.
service
.
order
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.*
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderInvoiceReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO
;
...
@@ -149,6 +147,21 @@ public interface TradeOrderUpdateService {
...
@@ -149,6 +147,21 @@ public interface TradeOrderUpdateService {
*/
*/
TradeOrderDO
getByPickUpVerifyCode
(
String
pickUpVerifyCode
);
TradeOrderDO
getByPickUpVerifyCode
(
String
pickUpVerifyCode
);
/**
* 【管理员】开具发票
*
* @param saveVO
* @return
*/
boolean
updateInvoice
(
TradeOrderInvoiceSaveVO
saveVO
);
/**
* 【会员】 申请开票
*
* @param reqVO
* @return
*/
boolean
updateRequestInvoice
(
AppTradeOrderInvoiceReqVO
reqVO
);
// =================== Order Item ===================
// =================== Order Item ===================
/**
/**
...
...
computility-module-mall/computility-module-trade/src/main/java/com/luhu/computility/module/trade/service/order/TradeOrderUpdateServiceImpl.java
View file @
4355cf03
...
@@ -11,6 +11,7 @@ import cn.hutool.core.util.RandomUtil;
...
@@ -11,6 +11,7 @@ import cn.hutool.core.util.RandomUtil;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.extra.spring.SpringUtil
;
import
cn.hutool.extra.spring.SpringUtil
;
import
com.luhu.computility.framework.common.enums.UserTypeEnum
;
import
com.luhu.computility.framework.common.enums.UserTypeEnum
;
import
com.luhu.computility.framework.common.exception.ServiceException
;
import
com.luhu.computility.framework.common.util.json.JsonUtils
;
import
com.luhu.computility.framework.common.util.json.JsonUtils
;
import
com.luhu.computility.framework.common.util.number.MoneyUtils
;
import
com.luhu.computility.framework.common.util.number.MoneyUtils
;
import
com.luhu.computility.module.member.api.address.MemberAddressApi
;
import
com.luhu.computility.module.member.api.address.MemberAddressApi
;
...
@@ -31,11 +32,9 @@ import com.luhu.computility.module.product.api.spu.ProductSpuApi;
...
@@ -31,11 +32,9 @@ import com.luhu.computility.module.product.api.spu.ProductSpuApi;
import
com.luhu.computility.module.product.api.spu.dto.ProductSpuRespDTO
;
import
com.luhu.computility.module.product.api.spu.dto.ProductSpuRespDTO
;
import
com.luhu.computility.module.system.api.social.SocialClientApi
;
import
com.luhu.computility.module.system.api.social.SocialClientApi
;
import
com.luhu.computility.module.system.api.social.dto.SocialWxaSubscribeMessageSendReqDTO
;
import
com.luhu.computility.module.system.api.social.dto.SocialWxaSubscribeMessageSendReqDTO
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.*
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO
;
import
com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderUpdatePriceReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderInvoiceReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderSettlementReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO
;
import
com.luhu.computility.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO
;
...
@@ -83,6 +82,10 @@ import static com.luhu.computility.framework.common.util.servlet.ServletUtils.ge
...
@@ -83,6 +82,10 @@ import static com.luhu.computility.framework.common.util.servlet.ServletUtils.ge
import
static
com
.
luhu
.
computility
.
framework
.
web
.
core
.
util
.
WebFrameworkUtils
.
getTerminal
;
import
static
com
.
luhu
.
computility
.
framework
.
web
.
core
.
util
.
WebFrameworkUtils
.
getTerminal
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
ErrorCodeConstants
.*;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
ErrorCodeConstants
.*;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
MessageTemplateConstants
.
WXA_ORDER_DELIVERY
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
MessageTemplateConstants
.
WXA_ORDER_DELIVERY
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
order
.
TradeOrderInvoiceStatusEnum
.
INVOICED
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
order
.
TradeOrderInvoiceStatusEnum
.
INVOICING
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
order
.
TradeOrderStatusEnum
.
CANCELED
;
import
static
com
.
luhu
.
computility
.
module
.
trade
.
enums
.
order
.
TradeOrderStatusEnum
.
UNPAID
;
/**
/**
* 交易订单【写】Service 实现类
* 交易订单【写】Service 实现类
...
@@ -211,7 +214,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
...
@@ -211,7 +214,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
TradeOrderDO
order
=
TradeOrderConvert
.
INSTANCE
.
convert
(
userId
,
createReqVO
,
calculateRespBO
);
TradeOrderDO
order
=
TradeOrderConvert
.
INSTANCE
.
convert
(
userId
,
createReqVO
,
calculateRespBO
);
order
.
setType
(
calculateRespBO
.
getType
());
order
.
setType
(
calculateRespBO
.
getType
());
order
.
setNo
(
tradeNoRedisDAO
.
generate
(
TradeNoRedisDAO
.
TRADE_ORDER_NO_PREFIX
));
order
.
setNo
(
tradeNoRedisDAO
.
generate
(
TradeNoRedisDAO
.
TRADE_ORDER_NO_PREFIX
));
order
.
setStatus
(
TradeOrderStatusEnum
.
UNPAID
.
getStatus
());
order
.
setStatus
(
UNPAID
.
getStatus
());
order
.
setRefundStatus
(
TradeOrderRefundStatusEnum
.
NONE
.
getStatus
());
order
.
setRefundStatus
(
TradeOrderRefundStatusEnum
.
NONE
.
getStatus
());
order
.
setProductCount
(
getSumValue
(
calculateRespBO
.
getItems
(),
TradePriceCalculateRespBO
.
OrderItem
::
getCount
,
Integer:
:
sum
));
order
.
setProductCount
(
getSumValue
(
calculateRespBO
.
getItems
(),
TradePriceCalculateRespBO
.
OrderItem
::
getCount
,
Integer:
:
sum
));
order
.
setUserIp
(
getClientIP
()).
setTerminal
(
getTerminal
());
order
.
setUserIp
(
getClientIP
()).
setTerminal
(
getTerminal
());
...
@@ -571,7 +574,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
...
@@ -571,7 +574,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
throw
exception
(
ORDER_NOT_FOUND
);
throw
exception
(
ORDER_NOT_FOUND
);
}
}
// 1.2 校验状态
// 1.2 校验状态
if
(
ObjectUtil
.
notEqual
(
order
.
getStatus
(),
TradeOrderStatusEnum
.
UNPAID
.
getStatus
()))
{
if
(
ObjectUtil
.
notEqual
(
order
.
getStatus
(),
UNPAID
.
getStatus
()))
{
throw
exception
(
ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID
);
throw
exception
(
ORDER_CANCEL_FAIL_STATUS_NOT_UNPAID
);
}
}
// 1.3 校验是否支持延迟(不允许取消)
// 1.3 校验是否支持延迟(不允许取消)
...
@@ -592,7 +595,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
...
@@ -592,7 +595,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
// 1. 查询过期的待支付订单
// 1. 查询过期的待支付订单
LocalDateTime
expireTime
=
minusTime
(
tradeOrderProperties
.
getPayExpireTime
());
LocalDateTime
expireTime
=
minusTime
(
tradeOrderProperties
.
getPayExpireTime
());
List
<
TradeOrderDO
>
orders
=
tradeOrderMapper
.
selectListByStatusAndCreateTimeLt
(
List
<
TradeOrderDO
>
orders
=
tradeOrderMapper
.
selectListByStatusAndCreateTimeLt
(
TradeOrderStatusEnum
.
UNPAID
.
getStatus
(),
expireTime
);
UNPAID
.
getStatus
(),
expireTime
);
if
(
CollUtil
.
isEmpty
(
orders
))
{
if
(
CollUtil
.
isEmpty
(
orders
))
{
return
0
;
return
0
;
}
}
...
@@ -784,6 +787,29 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
...
@@ -784,6 +787,29 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
return
tradeOrderMapper
.
selectOneByPickUpVerifyCode
(
pickUpVerifyCode
);
return
tradeOrderMapper
.
selectOneByPickUpVerifyCode
(
pickUpVerifyCode
);
}
}
@Override
public
boolean
updateInvoice
(
TradeOrderInvoiceSaveVO
saveVO
)
{
TradeOrderDO
order
=
tradeOrderMapper
.
selectById
(
saveVO
.
getId
());
order
.
setInvoiceStatus
(
INVOICED
.
getStatus
());
order
.
setInvoiceUrl
(
saveVO
.
getInvoiceUrl
());
tradeOrderMapper
.
updateById
(
order
);
return
true
;
}
@Override
public
boolean
updateRequestInvoice
(
AppTradeOrderInvoiceReqVO
reqVO
)
{
TradeOrderDO
tradeOrderDO
=
tradeOrderMapper
.
selectById
(
reqVO
.
getId
());
Integer
status
=
tradeOrderDO
.
getStatus
();
//订单状态
if
(
status
.
equals
(
UNPAID
.
getStatus
())){
throw
new
ServiceException
(
"未支付的订单不能申请开票"
);
}
else
if
(
status
.
equals
(
CANCELED
.
getStatus
()))
{
throw
new
ServiceException
(
"已取消的订单不能申请开票!"
);
}
tradeOrderDO
.
setInvoiceStatus
(
INVOICING
.
getStatus
());
tradeOrderMapper
.
updateById
(
tradeOrderDO
);
return
true
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
pickUpOrder
(
Long
userId
,
TradeOrderDO
order
)
{
public
void
pickUpOrder
(
Long
userId
,
TradeOrderDO
order
)
{
if
(
order
==
null
)
{
if
(
order
==
null
)
{
...
...
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