package controller import ( . "app.yhyue.com/moapp/jybase/api" "context" "github.com/gogf/gf/v2/database/gdb" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/pkg/errors" "jyOrderManager/internal/jyutil" "jyOrderManager/internal/logic/order" "jyOrderManager/internal/model" ) // SaleRecordUpdateHandler 订单销售业绩更改 func SaleRecordUpdateHandler(r *ghttp.Request) { rData, err := func() (interface{}, error) { rj, err := r.GetJson() if err != nil { return nil, errors.Wrap(err, "请求参数格式异常") } var ( orderCode = rj.Get("orderCode").String() reason = rj.Get("reason").String() ctx = r.Context() uMsg = jyutil.GetUserMsgFromCtx(ctx) userName = uMsg.EntUserName ) var saleRecord []*model.SalesMoney if err := rj.Get("record").Struct(&saleRecord); err != nil { return nil, errors.Wrap(err, "格式化业绩内容异常") } if len(saleRecord) == 0 { return nil, errors.New("业绩内容空") } for _, money := range saleRecord { if money.Channel == "" { return nil, errors.New("渠道为空") } } if err := g.DB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) error { if err = order.OrderSalerChange(ctx, saleRecord, orderCode, userName, reason); err != nil { return errors.Wrap(err, "修改业绩异常") } return nil }); err != nil { return nil, err } return "success", nil }() if err != nil { g.Log().Errorf(r.Context(), "订单销售业绩更改异常 %v", err) } r.Response.WriteJson(NewResult(rData, err)) }