强化配送订单合同调度约束

This commit is contained in:
czl231
2026-08-15 19:19:15 +08:00
parent 963e497bf3
commit 42a4fc2f41
15 changed files with 501 additions and 52 deletions

View File

@@ -1,6 +1,9 @@
// 功能描述:提供平台配送点资源管理与受控候选筛选。
// 版本v1.1.0
package delivery
import (
"strconv"
"strings"
"git.apinb.com/bsm-sdk/core/errcode"
@@ -11,6 +14,19 @@ import (
"github.com/gin-gonic/gin"
)
// parseDeliveryStatusFilter 解析可选的配送点通用状态筛选,拒绝归档和未知状态。
func parseDeliveryStatusFilter(value string) (*int, bool) {
value = strings.TrimSpace(value)
if value == "" {
return nil, true
}
status, err := strconv.Atoi(value)
if err != nil || !common.IsGenericRecordStatus(status) || status == common.StatusArchived {
return nil, false
}
return &status, true
}
// ListDeliveryBasic 查询配送点分页列表。
func ListDeliveryBasic(ctx *gin.Context) {
page, size := common.PageSize(ctx)
@@ -22,6 +38,11 @@ func ListDeliveryBasic(ctx *gin.Context) {
infra.Response.Error(ctx, errcode.ErrInvalidArgument)
return
}
status, ok := parseDeliveryStatusFilter(ctx.Query("status"))
if !ok {
infra.Response.Error(ctx, errcode.ErrInvalidArgument)
return
}
var list []models.DeliveryBasic
var total int64
query := common.ApplyKeywordFilter(ctx, common.ActiveRecords(impl.DBService.Model(&models.DeliveryBasic{})), &models.DeliveryBasic{})
@@ -32,6 +53,9 @@ func ListDeliveryBasic(ctx *gin.Context) {
common.StatusArchived,
)
}
if status != nil {
query = query.Where("delivery_basic.status = ?", *status)
}
if err := query.Count(&total).Error; err != nil {
infra.Response.Error(ctx, err)
return