优化配送订单收货地址联动显示
This commit is contained in:
@@ -4,6 +4,7 @@ package user
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/errcode"
|
||||
"git.apinb.com/bsm-sdk/core/infra"
|
||||
@@ -28,6 +29,7 @@ func ListUserAddress(ctx *gin.Context) {
|
||||
var list []models.UserAddress
|
||||
var total int64
|
||||
query := common.ApplyKeywordFilter(ctx, common.ActiveRecords(impl.DBService.Model(&models.UserAddress{})), &models.UserAddress{})
|
||||
query = filterUserAddressByContract(query, ctx.Query("gasorder_contract_identity"))
|
||||
if err := query.Count(&total).Error; err != nil {
|
||||
infra.Response.Error(ctx, err)
|
||||
return
|
||||
@@ -45,6 +47,17 @@ func ListUserAddress(ctx *gin.Context) {
|
||||
infra.Response.Success(ctx, gin.H{"total": total, "list": restoreUserAddressLocations(protected, list)})
|
||||
}
|
||||
|
||||
// filterUserAddressByContract 仅返回指定配送合同签约用户的地址,避免后台下单时跨用户选择。
|
||||
func filterUserAddressByContract(query *gorm.DB, contractIdentity string) *gorm.DB {
|
||||
contractIdentity = strings.TrimSpace(contractIdentity)
|
||||
if contractIdentity == "" {
|
||||
return query
|
||||
}
|
||||
contractUser := common.ActiveRecords(impl.DBService.Model(&models.GasorderContract{})).
|
||||
Select("user_account_id").Where("identity = ?", contractIdentity)
|
||||
return query.Where("user_account_id = (?)", contractUser)
|
||||
}
|
||||
|
||||
// GetUserAddress 查询用户地址详情,并返回详情与编辑页需要的地址和坐标。
|
||||
func GetUserAddress(ctx *gin.Context) {
|
||||
var address models.UserAddress
|
||||
|
||||
Reference in New Issue
Block a user