orderSurplusPrice.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package controller
  2. import (
  3. . "app.yhyue.com/moapp/jybase/api"
  4. "app.yhyue.com/moapp/jybase/common"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/net/ghttp"
  7. "github.com/gogf/gf/v2/util/gconv"
  8. "github.com/pkg/errors"
  9. "jyOrderManager/internal/model"
  10. )
  11. // OrderSurplusPrice 订单详情
  12. func OrderSurplusPrice(r *ghttp.Request) {
  13. rData, err := func() (interface{}, error) {
  14. var param model.OrdersEditBatchReturn
  15. err := gconv.Struct(r.GetBody(), &param)
  16. if err != nil {
  17. return nil, errors.Wrap(err, "数据校验异常")
  18. }
  19. var price int
  20. for key, value := range param.OrderArr {
  21. 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"])
  22. if orderData.IsEmpty() {
  23. continue
  24. }
  25. param.OrderArr[key]["money"] = common.IntAll(orderData.Map()["outstandingPayment"])
  26. price += common.IntAll(orderData.Map()["outstandingPayment"])
  27. }
  28. return map[string]interface{}{"status": true, "orderArr": param.OrderArr, "price": price}, nil
  29. }()
  30. if err != nil {
  31. g.Log().Errorf(r.Context(), "订单详情异常 %v", err)
  32. }
  33. r.Response.WriteJson(NewResult(rData, err))
  34. }