From b8f1997ed78f33fa183bf81d3e2978f5950e68ef Mon Sep 17 00:00:00 2001 From: momo <1012651275@qq.com> Date: Mon, 16 Oct 2023 17:42:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/repositories/order.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/service/repositories/order.go b/service/repositories/order.go index 5e88c40b..325b90b8 100644 --- a/service/repositories/order.go +++ b/service/repositories/order.go @@ -816,7 +816,7 @@ func (d *defaultOrder) CreatePrePaymentByDeposit(ctx context.Context, in *Create var orderAddressByte []byte var statusLinkByte []byte - if in.DeliveryMethod == constants.DELIVERYMETHODDIRECTMAIL { + if in.DeliveryMethod == constants.DELIVERYMETHODDIRECTMAIL && in.DeliveryAddress != nil { orderAddress = &gmodel.OrderAddress{ Name: in.DeliveryAddress.Name, Mobile: in.DeliveryAddress.Mobile, @@ -830,6 +830,16 @@ func (d *defaultOrder) CreatePrePaymentByDeposit(ctx context.Context, in *Create ErrorCode: errorCode, }, err } + } else { + var orderAddress *gmodel.OrderAddress + orderAddressByte, err = json.Marshal(orderAddress) + if err != nil { + logc.Errorf(ctx, "create prePayment deposit failed orderAddressByte, err: %v", err) + errorCode = *basic.CodeServiceErr + return &CreatePrePaymentByDepositRes{ + ErrorCode: errorCode, + }, err + } } // 订单状态--链路 tPlus60Days := ntime.AddDate(0, 0, 60).UTC() @@ -845,12 +855,8 @@ func (d *defaultOrder) CreatePrePaymentByDeposit(ctx context.Context, in *Create // 更新数据库 var table = gmodel.NewAllModels(d.MysqlConn).FsOrder.TableName() - var resUpdate *gorm.DB - if in.DeliveryMethod == constants.DELIVERYMETHODDIRECTMAIL { - resUpdate = d.MysqlConn.Exec(fmt.Sprintf("UPDATE %s SET `delivery_method` = ? , `utime` = ?, `order_address` = JSON_MERGE_PATCH(`order_address`,?), `status_link` = JSON_MERGE_PATCH(`status_link`,?) WHERE `id` = ?", table), in.DeliveryMethod, ntime, orderAddressByte, statusLinkByte, orderInfo.Id) - } else { - resUpdate = d.MysqlConn.Exec(fmt.Sprintf("UPDATE %s SET `delivery_method` = ? , `utime` = ? WHERE `id` = ?", table), in.DeliveryMethod, ntime, orderInfo.Id) - } + var resUpdate = d.MysqlConn.Exec(fmt.Sprintf("UPDATE %s SET `delivery_method` = ? , `utime` = ?, `status_link` = JSON_MERGE_PATCH(`status_link`,?), `order_address` = JSON_MERGE_PATCH(`order_address`,?) WHERE `id` = ?", table), in.DeliveryMethod, ntime, statusLinkByte, orderAddressByte, orderInfo.Id) + err = resUpdate.Error if err != nil { logc.Errorf(ctx, "create prePayment deposit failed update Exec, err: %v", err)