orderSaleRecordHandler.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package controller
  2. import (
  3. . "app.yhyue.com/moapp/jybase/api"
  4. "context"
  5. "github.com/gogf/gf/v2/database/gdb"
  6. "github.com/gogf/gf/v2/frame/g"
  7. "github.com/gogf/gf/v2/net/ghttp"
  8. "github.com/pkg/errors"
  9. "jyOrderManager/internal/jyutil"
  10. "jyOrderManager/internal/logic/order"
  11. "jyOrderManager/internal/model"
  12. )
  13. // SaleRecordUpdateHandler 订单销售业绩更改
  14. func SaleRecordUpdateHandler(r *ghttp.Request) {
  15. rData, err := func() (interface{}, error) {
  16. rj, err := r.GetJson()
  17. if err != nil {
  18. return nil, errors.Wrap(err, "请求参数格式异常")
  19. }
  20. var (
  21. orderCode = rj.Get("orderCode").String()
  22. reason = rj.Get("reason").String()
  23. ctx = r.Context()
  24. uMsg = jyutil.GetUserMsgFromCtx(ctx)
  25. userName = uMsg.EntUserName
  26. )
  27. var saleRecord []*model.SalesMoney
  28. if err := rj.Get("record").Struct(&saleRecord); err != nil {
  29. return nil, errors.Wrap(err, "格式化业绩内容异常")
  30. }
  31. if len(saleRecord) == 0 {
  32. return nil, errors.New("业绩内容空")
  33. }
  34. for _, money := range saleRecord {
  35. if money.Channel == "" {
  36. return nil, errors.New("渠道为空")
  37. }
  38. }
  39. if err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
  40. if err = order.OrderSalerChange(ctx, saleRecord, orderCode, userName, reason); err != nil {
  41. return errors.Wrap(err, "修改业绩异常")
  42. }
  43. return nil
  44. }); err != nil {
  45. return nil, err
  46. }
  47. return "success", nil
  48. }()
  49. if err != nil {
  50. g.Log().Errorf(r.Context(), "订单销售业绩更改异常 %v", err)
  51. }
  52. r.Response.WriteJson(NewResult(rData, err))
  53. }