package controller import ( . "app.yhyue.com/moapp/jybase/api" "app.yhyue.com/moapp/jybase/common" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/util/gconv" "github.com/pkg/errors" "jyOrderManager/internal/model" ) // OrderSurplusPrice 订单详情 func OrderSurplusPrice(r *ghttp.Request) { rData, err := func() (interface{}, error) { var param model.OrdersEditBatchReturn err := gconv.Struct(r.GetBody(), ¶m) if err != nil { return nil, errors.Wrap(err, "数据校验异常") } var price int for key, value := range param.OrderArr { orderData, _ := g.DB().GetOne(r.Context(), "SELECT (IFNULL(CASE WHEN a.is_backstage_order = 1 THEN a.pay_money ELSE a.order_money END, 0) - IFNULL(a.procedures_money, 0)) - (SELECT IFNULL(SUM(b.return_money), 0) FROM return_money_record b WHERE b.order_code = a.order_code AND b.state = 1) + (SELECT IFNULL(SUM(c.refund_money), 0) FROM refund_record c WHERE c.order_code = a.order_code) + (SELECT IFNULL(SUM(payMoney), 0) FROM moneyCorrection c WHERE c.orderCode = a.order_code) AS outstandingPayment, a.* FROM dataexport_order a WHERE a.id = ?", value["orderId"]) if orderData.IsEmpty() { continue } param.OrderArr[key]["money"] = common.IntAll(orderData.Map()["outstandingPayment"]) price += common.IntAll(orderData.Map()["outstandingPayment"]) } return map[string]interface{}{"status": true, "orderArr": param.OrderArr, "price": price}, nil }() if err != nil { g.Log().Errorf(r.Context(), "订单详情异常 %v", err) } r.Response.WriteJson(NewResult(rData, err)) }