Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
foodNexus-admin
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
副食品筹措管理平台
foodNexus-admin
Commits
ecb916dc
Commit
ecb916dc
authored
Sep 26, 2025
by
杨浩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单进度查询
parent
71b29808
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
94 additions
and
11 deletions
+94
-11
foodnexus-module-mall/foodnexus-module-order-api/src/main/java/cn/iocoder/foodnexus/module/order/enums/CustomerOrderStatus.java
+12
-11
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/admin/customerorder/CustomerOrderController.java
+11
-0
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/admin/customerorder/vo/CustomerOrderRecordMapVO.java
+26
-0
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/app/customerOrder/AppCustomerOrderController.java
+13
-0
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/service/customerorderrecord/CustomerOrderRecordService.java
+9
-0
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/service/customerorderrecord/CustomerOrderRecordServiceImpl.java
+23
-0
No files found.
foodnexus-module-mall/foodnexus-module-order-api/src/main/java/cn/iocoder/foodnexus/module/order/enums/CustomerOrderStatus.java
View file @
ecb916dc
...
...
@@ -16,7 +16,7 @@ import java.util.Arrays;
public
enum
CustomerOrderStatus
implements
ArrayValuable
<
String
>
{
// 下单成功
ORDER_SUCCESS
(
"下单成功"
,
"ORDER_SUCCESS"
)
{
ORDER_SUCCESS
(
"下单成功"
,
"ORDER_SUCCESS"
,
0
)
{
@Override
public
String
getText
()
{
return
"您已成功下单\n"
+
...
...
@@ -24,63 +24,63 @@ public enum CustomerOrderStatus implements ArrayValuable<String> {
}
},
// 订单匹配
ORDER_MATCH
(
"订单匹配"
,
"ORDER_MATCH"
)
{
ORDER_MATCH
(
"订单匹配"
,
"ORDER_MATCH"
,
1
)
{
@Override
public
String
getText
()
{
return
"【%s】供应商 匹配成功"
;
}
},
// 供应商接单
SUPPLIER_ACCEPT_ORDER
(
"供应商接单"
,
"SUPPLIER_ACCEPT_ORDER"
)
{
SUPPLIER_ACCEPT_ORDER
(
"供应商接单"
,
"SUPPLIER_ACCEPT_ORDER"
,
2
)
{
@Override
public
String
getText
()
{
return
"【%s】供应商 已接单"
;
}
},
// 供应商发货
SUPPLIER_SHIP
(
"供应商发货"
,
"SUPPLIER_SHIP"
)
{
SUPPLIER_SHIP
(
"供应商发货"
,
"SUPPLIER_SHIP"
,
3
)
{
@Override
public
String
getText
()
{
return
"【%s】供应商 已发货"
;
}
},
// 供应商到货
SUPPLIER_ARRIVE
(
"供应商到货"
,
"SUPPLIER_ARRIVE"
)
{
SUPPLIER_ARRIVE
(
"供应商到货"
,
"SUPPLIER_ARRIVE"
,
4
)
{
@Override
public
String
getText
()
{
return
"【%s】供应商 已到货"
;
}
},
// 分仓质检
WAREHOUSE_INSPECTION
(
"分仓质检"
,
"WAREHOUSE_INSPECTION"
)
{
WAREHOUSE_INSPECTION
(
"分仓质检"
,
"WAREHOUSE_INSPECTION"
,
5
)
{
@Override
public
String
getText
()
{
return
"您的商品已到达【%s】分仓,已完成质检入库;查看质检报告【%s】"
;
}
},
// 商品分拣
SORTING
(
"商品分拣"
,
"SORTING"
)
{
SORTING
(
"商品分拣"
,
"SORTING"
,
6
)
{
@Override
public
String
getText
()
{
return
"您的商品在【%s】分仓已完成分拣,【%s】正在进行配送"
;
}
},
// 商品配送
DELIVERY
(
"商品配送"
,
"DELIVERY"
)
{
DELIVERY
(
"商品配送"
,
"DELIVERY"
,
7
)
{
@Override
public
String
getText
()
{
return
"您的商品将在16小时内完成配送,请保持电话畅通,配送员【%s】联系方式:【%s】"
;
}
},
// 商品到货
ARRIVAL
(
"商品到货"
,
"ARRIVAL"
)
{
ARRIVAL
(
"商品到货"
,
"ARRIVAL"
,
8
)
{
@Override
public
String
getText
()
{
return
"您的商品已送到收货地址,请前往签收;配送员【%s】 联系方式:【%s】"
;
}
},
// 商品签收
SIGN_RECEIPT
(
"商品签收"
,
"SIGN_RECEIPT"
)
{
SIGN_RECEIPT
(
"商品签收"
,
"SIGN_RECEIPT"
,
9
)
{
@Override
public
String
getText
()
{
return
"您的商品完成签收查看签收单【%s】"
;
...
...
@@ -88,7 +88,7 @@ public enum CustomerOrderStatus implements ArrayValuable<String> {
},
CANCEL
(
"取消订单"
,
"CANCEL"
)
{
CANCEL
(
"取消订单"
,
"CANCEL"
,
9999
)
{
@Override
public
String
getText
()
{
return
""
;
...
...
@@ -99,6 +99,7 @@ public enum CustomerOrderStatus implements ArrayValuable<String> {
private
final
String
label
;
private
final
String
key
;
private
final
int
sort
;
public
static
final
String
[]
ARRAYS
=
Arrays
.
stream
(
values
()).
map
(
CustomerOrderStatus:
:
getKey
).
toArray
(
String
[]::
new
);
...
...
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/admin/customerorder/CustomerOrderController.java
View file @
ecb916dc
...
...
@@ -3,6 +3,7 @@ package cn.iocoder.foodnexus.module.order.controller.admin.customerorder;
import
cn.iocoder.foodnexus.module.order.api.CustomerOrderApi
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorderitem.vo.CustomerOrderItemRespVO
;
import
cn.iocoder.foodnexus.module.order.service.customerorderitem.CustomerOrderItemService
;
import
cn.iocoder.foodnexus.module.order.service.customerorderrecord.CustomerOrderRecordService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
jakarta.annotation.Resource
;
...
...
@@ -45,6 +46,9 @@ public class CustomerOrderController {
@Autowired
private
CustomerOrderApi
customerOrderApi
;
@Autowired
private
CustomerOrderRecordService
customerOrderRecordService
;
/* @DeleteMapping("/delete")
@Operation(summary = "删除客户总订单")
...
...
@@ -83,6 +87,13 @@ public class CustomerOrderController {
return
success
(
BeanUtils
.
toBean
(
pageResult
,
CustomerOrderRespVO
.
class
));
}
@GetMapping
(
"/record"
)
@Operation
(
summary
=
"订单进度"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
public
CommonResult
<
List
<
CustomerOrderRecordMapVO
>>
queryRecord
(
@RequestParam
(
"id"
)
Long
id
)
{
return
success
(
customerOrderRecordService
.
queryRecordMap
(
id
));
}
@GetMapping
(
"/export-excel"
)
@Operation
(
summary
=
"导出客户总订单 Excel"
)
@PreAuthorize
(
"@ss.hasPermission('order:customer-order:export')"
)
...
...
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/admin/customerorder/vo/CustomerOrderRecordMapVO.java
0 → 100644
View file @
ecb916dc
package
cn
.
iocoder
.
foodnexus
.
module
.
order
.
controller
.
admin
.
customerorder
.
vo
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorderrecord.vo.CustomerOrderRecordRespVO
;
import
cn.iocoder.foodnexus.module.order.enums.CustomerOrderStatus
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author : yanghao
* create at: 2025/9/26 14:23
* @description: 订单进度
*/
@Data
@AllArgsConstructor
public
class
CustomerOrderRecordMapVO
{
@Schema
(
description
=
"订单状态"
)
private
CustomerOrderStatus
orderStatus
;
@Schema
(
description
=
"进度记录"
)
private
List
<
CustomerOrderRecordRespVO
>
records
;
}
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/controller/app/customerOrder/AppCustomerOrderController.java
View file @
ecb916dc
...
...
@@ -9,6 +9,7 @@ import cn.iocoder.foodnexus.framework.common.util.CommonUtil;
import
cn.iocoder.foodnexus.framework.common.util.object.BeanUtils
;
import
cn.iocoder.foodnexus.framework.excel.core.util.ExcelUtils
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderPageReqVO
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRecordMapVO
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRespVO
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderSaveReqVO
;
import
cn.iocoder.foodnexus.module.order.controller.app.customerOrder.vo.AppCustomerOrderRemarkReqVO
;
...
...
@@ -16,6 +17,7 @@ import cn.iocoder.foodnexus.module.order.controller.app.customerOrder.vo.AppCust
import
cn.iocoder.foodnexus.module.order.controller.app.customerOrder.vo.AppCustomerOrderSaveReqVO
;
import
cn.iocoder.foodnexus.module.order.dal.dataobject.customerorder.CustomerOrderDO
;
import
cn.iocoder.foodnexus.module.order.service.customerorder.CustomerOrderService
;
import
cn.iocoder.foodnexus.module.order.service.customerorderrecord.CustomerOrderRecordService
;
import
cn.iocoder.foodnexus.module.system.annotations.AppSystemAuth
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Parameter
;
...
...
@@ -23,6 +25,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import
jakarta.annotation.Resource
;
import
jakarta.servlet.http.HttpServletResponse
;
import
jakarta.validation.Valid
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -43,6 +46,8 @@ public class AppCustomerOrderController {
@Resource
private
CustomerOrderService
customerOrderService
;
@Autowired
private
CustomerOrderRecordService
customerOrderRecordService
;
@PostMapping
(
"/create"
)
@Operation
(
summary
=
"创建客户总订单"
)
...
...
@@ -97,4 +102,11 @@ public class AppCustomerOrderController {
return
success
(
BeanUtils
.
toBean
(
pageResult
,
CustomerOrderRespVO
.
class
));
}
@GetMapping
(
"/record"
)
@Operation
(
summary
=
"订单进度"
)
@Parameter
(
name
=
"id"
,
description
=
"编号"
,
required
=
true
,
example
=
"1024"
)
public
CommonResult
<
List
<
CustomerOrderRecordMapVO
>>
queryRecord
(
@RequestParam
(
"id"
)
Long
id
)
{
return
success
(
customerOrderRecordService
.
queryRecordMap
(
id
));
}
}
\ No newline at end of file
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/service/customerorderrecord/CustomerOrderRecordService.java
View file @
ecb916dc
package
cn
.
iocoder
.
foodnexus
.
module
.
order
.
service
.
customerorderrecord
;
import
java.util.*
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRecordMapVO
;
import
jakarta.validation.*
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorderrecord.vo.*
;
import
cn.iocoder.foodnexus.module.order.dal.dataobject.customerorderrecord.CustomerOrderRecordDO
;
...
...
@@ -59,4 +61,10 @@ public interface CustomerOrderRecordService {
*/
PageResult
<
CustomerOrderRecordDO
>
getCustomerOrderRecordPage
(
CustomerOrderRecordPageReqVO
pageReqVO
);
/**
* 订单进度记录
* @param id
* @return
*/
List
<
CustomerOrderRecordMapVO
>
queryRecordMap
(
Long
id
);
}
\ No newline at end of file
foodnexus-module-mall/foodnexus-module-order/src/main/java/cn/iocoder/foodnexus/module/order/service/customerorderrecord/CustomerOrderRecordServiceImpl.java
View file @
ecb916dc
package
cn
.
iocoder
.
foodnexus
.
module
.
order
.
service
.
customerorderrecord
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.iocoder.foodnexus.framework.common.util.CommonUtil
;
import
cn.iocoder.foodnexus.framework.common.util.spring.SpringUtils
;
import
cn.iocoder.foodnexus.module.erp.api.PurchaseOrderSplitEvent
;
import
cn.iocoder.foodnexus.module.order.api.CustomerOrderApi
;
import
cn.iocoder.foodnexus.module.order.api.CustomerOrderRecordApi
;
import
cn.iocoder.foodnexus.module.order.controller.admin.customerorder.vo.CustomerOrderRecordMapVO
;
import
cn.iocoder.foodnexus.module.order.dto.CustomerOrderDTO
;
import
cn.iocoder.foodnexus.module.order.dto.CustomerOrderRecordEvent
;
import
cn.iocoder.foodnexus.module.order.enums.CustomerOrderStatus
;
...
...
@@ -98,6 +100,27 @@ public class CustomerOrderRecordServiceImpl implements CustomerOrderRecordServic
return
customerOrderRecordMapper
.
selectPage
(
pageReqVO
);
}
/**
* 订单进度记录
*
* @param customerOrderId
* @return
*/
@Override
public
List
<
CustomerOrderRecordMapVO
>
queryRecordMap
(
Long
customerOrderId
)
{
List
<
CustomerOrderRecordDO
>
list
=
customerOrderRecordMapper
.
selectList
(
CustomerOrderRecordDO:
:
getCustomerOrderId
,
customerOrderId
);
Map
<
CustomerOrderStatus
,
List
<
CustomerOrderRecordDO
>>
map
=
CommonUtil
.
listConvertListMap
(
list
,
CustomerOrderRecordDO:
:
getOrderStatus
);
List
<
CustomerOrderRecordMapVO
>
result
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
CustomerOrderStatus
,
List
<
CustomerOrderRecordDO
>>
entry
:
map
.
entrySet
())
{
CustomerOrderStatus
orderStatus
=
entry
.
getKey
();
List
<
CustomerOrderRecordDO
>
records
=
entry
.
getValue
();
result
.
add
(
new
CustomerOrderRecordMapVO
(
orderStatus
,
BeanUtils
.
toBean
(
records
,
CustomerOrderRecordRespVO
.
class
)));
}
result
.
sort
(
Comparator
.
comparingInt
(
vo
->
vo
.
getOrderStatus
().
getSort
()));
return
result
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
recordEvent
(
CustomerOrderRecordEvent
event
)
{
...
...
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