// Code generated by ent, DO NOT EDIT. package ent import ( "context" "errors" "fmt" "mingyang-admin-pay/rpc/ent/paychannel" "mingyang-admin-pay/rpc/ent/paynotifytask" "mingyang-admin-pay/rpc/ent/payorder" "mingyang-admin-pay/rpc/ent/payorderextension" "mingyang-admin-pay/rpc/ent/payrefund" "mingyang-admin-pay/rpc/ent/predicate" "time" "entgo.io/ent/dialect/sql" "entgo.io/ent/dialect/sql/sqlgraph" "entgo.io/ent/schema/field" ) // PayOrderUpdate is the builder for updating PayOrder entities. type PayOrderUpdate struct { config hooks []Hook mutation *PayOrderMutation } // Where appends a list predicates to the PayOrderUpdate builder. func (_u *PayOrderUpdate) Where(ps ...predicate.PayOrder) *PayOrderUpdate { _u.mutation.Where(ps...) return _u } // SetUpdatedAt sets the "updated_at" field. func (_u *PayOrderUpdate) SetUpdatedAt(v time.Time) *PayOrderUpdate { _u.mutation.SetUpdatedAt(v) return _u } // SetStatus sets the "status" field. func (_u *PayOrderUpdate) SetStatus(v uint8) *PayOrderUpdate { _u.mutation.ResetStatus() _u.mutation.SetStatus(v) return _u } // SetNillableStatus sets the "status" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableStatus(v *uint8) *PayOrderUpdate { if v != nil { _u.SetStatus(*v) } return _u } // AddStatus adds value to the "status" field. func (_u *PayOrderUpdate) AddStatus(v int8) *PayOrderUpdate { _u.mutation.AddStatus(v) return _u } // ClearStatus clears the value of the "status" field. func (_u *PayOrderUpdate) ClearStatus() *PayOrderUpdate { _u.mutation.ClearStatus() return _u } // SetDeletedAt sets the "deleted_at" field. func (_u *PayOrderUpdate) SetDeletedAt(v time.Time) *PayOrderUpdate { _u.mutation.SetDeletedAt(v) return _u } // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableDeletedAt(v *time.Time) *PayOrderUpdate { if v != nil { _u.SetDeletedAt(*v) } return _u } // ClearDeletedAt clears the value of the "deleted_at" field. func (_u *PayOrderUpdate) ClearDeletedAt() *PayOrderUpdate { _u.mutation.ClearDeletedAt() return _u } // SetChannelID sets the "channel_id" field. func (_u *PayOrderUpdate) SetChannelID(v uint64) *PayOrderUpdate { _u.mutation.SetChannelID(v) return _u } // SetNillableChannelID sets the "channel_id" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableChannelID(v *uint64) *PayOrderUpdate { if v != nil { _u.SetChannelID(*v) } return _u } // SetUserID sets the "user_id" field. func (_u *PayOrderUpdate) SetUserID(v uint64) *PayOrderUpdate { _u.mutation.ResetUserID() _u.mutation.SetUserID(v) return _u } // SetNillableUserID sets the "user_id" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableUserID(v *uint64) *PayOrderUpdate { if v != nil { _u.SetUserID(*v) } return _u } // AddUserID adds value to the "user_id" field. func (_u *PayOrderUpdate) AddUserID(v int64) *PayOrderUpdate { _u.mutation.AddUserID(v) return _u } // SetSubject sets the "subject" field. func (_u *PayOrderUpdate) SetSubject(v string) *PayOrderUpdate { _u.mutation.SetSubject(v) return _u } // SetNillableSubject sets the "subject" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableSubject(v *string) *PayOrderUpdate { if v != nil { _u.SetSubject(*v) } return _u } // SetBody sets the "body" field. func (_u *PayOrderUpdate) SetBody(v string) *PayOrderUpdate { _u.mutation.SetBody(v) return _u } // SetNillableBody sets the "body" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableBody(v *string) *PayOrderUpdate { if v != nil { _u.SetBody(*v) } return _u } // SetNotifyURL sets the "notify_url" field. func (_u *PayOrderUpdate) SetNotifyURL(v string) *PayOrderUpdate { _u.mutation.SetNotifyURL(v) return _u } // SetNillableNotifyURL sets the "notify_url" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableNotifyURL(v *string) *PayOrderUpdate { if v != nil { _u.SetNotifyURL(*v) } return _u } // SetAmount sets the "amount" field. func (_u *PayOrderUpdate) SetAmount(v uint64) *PayOrderUpdate { _u.mutation.ResetAmount() _u.mutation.SetAmount(v) return _u } // SetNillableAmount sets the "amount" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableAmount(v *uint64) *PayOrderUpdate { if v != nil { _u.SetAmount(*v) } return _u } // AddAmount adds value to the "amount" field. func (_u *PayOrderUpdate) AddAmount(v int64) *PayOrderUpdate { _u.mutation.AddAmount(v) return _u } // SetPaySource sets the "pay_source" field. func (_u *PayOrderUpdate) SetPaySource(v string) *PayOrderUpdate { _u.mutation.SetPaySource(v) return _u } // SetNillablePaySource sets the "pay_source" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillablePaySource(v *string) *PayOrderUpdate { if v != nil { _u.SetPaySource(*v) } return _u } // ClearPaySource clears the value of the "pay_source" field. func (_u *PayOrderUpdate) ClearPaySource() *PayOrderUpdate { _u.mutation.ClearPaySource() return _u } // SetChannelFeeRate sets the "channel_fee_rate" field. func (_u *PayOrderUpdate) SetChannelFeeRate(v string) *PayOrderUpdate { _u.mutation.SetChannelFeeRate(v) return _u } // SetNillableChannelFeeRate sets the "channel_fee_rate" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableChannelFeeRate(v *string) *PayOrderUpdate { if v != nil { _u.SetChannelFeeRate(*v) } return _u } // SetChannelFee sets the "channel_fee" field. func (_u *PayOrderUpdate) SetChannelFee(v uint64) *PayOrderUpdate { _u.mutation.ResetChannelFee() _u.mutation.SetChannelFee(v) return _u } // SetNillableChannelFee sets the "channel_fee" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableChannelFee(v *uint64) *PayOrderUpdate { if v != nil { _u.SetChannelFee(*v) } return _u } // AddChannelFee adds value to the "channel_fee" field. func (_u *PayOrderUpdate) AddChannelFee(v int64) *PayOrderUpdate { _u.mutation.AddChannelFee(v) return _u } // SetOrderStatus sets the "order_status" field. func (_u *PayOrderUpdate) SetOrderStatus(v string) *PayOrderUpdate { _u.mutation.SetOrderStatus(v) return _u } // SetNillableOrderStatus sets the "order_status" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableOrderStatus(v *string) *PayOrderUpdate { if v != nil { _u.SetOrderStatus(*v) } return _u } // SetUserIP sets the "user_ip" field. func (_u *PayOrderUpdate) SetUserIP(v string) *PayOrderUpdate { _u.mutation.SetUserIP(v) return _u } // SetNillableUserIP sets the "user_ip" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableUserIP(v *string) *PayOrderUpdate { if v != nil { _u.SetUserIP(*v) } return _u } // ClearUserIP clears the value of the "user_ip" field. func (_u *PayOrderUpdate) ClearUserIP() *PayOrderUpdate { _u.mutation.ClearUserIP() return _u } // SetExpireTime sets the "expire_time" field. func (_u *PayOrderUpdate) SetExpireTime(v time.Time) *PayOrderUpdate { _u.mutation.SetExpireTime(v) return _u } // SetNillableExpireTime sets the "expire_time" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableExpireTime(v *time.Time) *PayOrderUpdate { if v != nil { _u.SetExpireTime(*v) } return _u } // SetPayNo sets the "pay_no" field. func (_u *PayOrderUpdate) SetPayNo(v string) *PayOrderUpdate { _u.mutation.SetPayNo(v) return _u } // SetNillablePayNo sets the "pay_no" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillablePayNo(v *string) *PayOrderUpdate { if v != nil { _u.SetPayNo(*v) } return _u } // SetSuccessTime sets the "success_time" field. func (_u *PayOrderUpdate) SetSuccessTime(v time.Time) *PayOrderUpdate { _u.mutation.SetSuccessTime(v) return _u } // SetNillableSuccessTime sets the "success_time" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableSuccessTime(v *time.Time) *PayOrderUpdate { if v != nil { _u.SetSuccessTime(*v) } return _u } // SetExtensionID sets the "extension_id" field. func (_u *PayOrderUpdate) SetExtensionID(v uint64) *PayOrderUpdate { _u.mutation.ResetExtensionID() _u.mutation.SetExtensionID(v) return _u } // SetNillableExtensionID sets the "extension_id" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableExtensionID(v *uint64) *PayOrderUpdate { if v != nil { _u.SetExtensionID(*v) } return _u } // AddExtensionID adds value to the "extension_id" field. func (_u *PayOrderUpdate) AddExtensionID(v int64) *PayOrderUpdate { _u.mutation.AddExtensionID(v) return _u } // ClearExtensionID clears the value of the "extension_id" field. func (_u *PayOrderUpdate) ClearExtensionID() *PayOrderUpdate { _u.mutation.ClearExtensionID() return _u } // SetTransactionID sets the "transaction_id" field. func (_u *PayOrderUpdate) SetTransactionID(v string) *PayOrderUpdate { _u.mutation.SetTransactionID(v) return _u } // SetNillableTransactionID sets the "transaction_id" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableTransactionID(v *string) *PayOrderUpdate { if v != nil { _u.SetTransactionID(*v) } return _u } // ClearTransactionID clears the value of the "transaction_id" field. func (_u *PayOrderUpdate) ClearTransactionID() *PayOrderUpdate { _u.mutation.ClearTransactionID() return _u } // SetCurrency sets the "currency" field. func (_u *PayOrderUpdate) SetCurrency(v string) *PayOrderUpdate { _u.mutation.SetCurrency(v) return _u } // SetNillableCurrency sets the "currency" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableCurrency(v *string) *PayOrderUpdate { if v != nil { _u.SetCurrency(*v) } return _u } // SetRefundPrice sets the "refund_price" field. func (_u *PayOrderUpdate) SetRefundPrice(v uint64) *PayOrderUpdate { _u.mutation.ResetRefundPrice() _u.mutation.SetRefundPrice(v) return _u } // SetNillableRefundPrice sets the "refund_price" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableRefundPrice(v *uint64) *PayOrderUpdate { if v != nil { _u.SetRefundPrice(*v) } return _u } // AddRefundPrice adds value to the "refund_price" field. func (_u *PayOrderUpdate) AddRefundPrice(v int64) *PayOrderUpdate { _u.mutation.AddRefundPrice(v) return _u } // SetChannelOrderNo sets the "channel_order_no" field. func (_u *PayOrderUpdate) SetChannelOrderNo(v string) *PayOrderUpdate { _u.mutation.SetChannelOrderNo(v) return _u } // SetNillableChannelOrderNo sets the "channel_order_no" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableChannelOrderNo(v *string) *PayOrderUpdate { if v != nil { _u.SetChannelOrderNo(*v) } return _u } // ClearChannelOrderNo clears the value of the "channel_order_no" field. func (_u *PayOrderUpdate) ClearChannelOrderNo() *PayOrderUpdate { _u.mutation.ClearChannelOrderNo() return _u } // SetChannelUserID sets the "channel_user_id" field. func (_u *PayOrderUpdate) SetChannelUserID(v string) *PayOrderUpdate { _u.mutation.SetChannelUserID(v) return _u } // SetNillableChannelUserID sets the "channel_user_id" field if the given value is not nil. func (_u *PayOrderUpdate) SetNillableChannelUserID(v *string) *PayOrderUpdate { if v != nil { _u.SetChannelUserID(*v) } return _u } // ClearChannelUserID clears the value of the "channel_user_id" field. func (_u *PayOrderUpdate) ClearChannelUserID() *PayOrderUpdate { _u.mutation.ClearChannelUserID() return _u } // SetChannel sets the "channel" edge to the PayChannel entity. func (_u *PayOrderUpdate) SetChannel(v *PayChannel) *PayOrderUpdate { return _u.SetChannelID(v.ID) } // AddOrdersExtensionIDs adds the "orders_extension" edge to the PayOrderExtension entity by IDs. func (_u *PayOrderUpdate) AddOrdersExtensionIDs(ids ...uint64) *PayOrderUpdate { _u.mutation.AddOrdersExtensionIDs(ids...) return _u } // AddOrdersExtension adds the "orders_extension" edges to the PayOrderExtension entity. func (_u *PayOrderUpdate) AddOrdersExtension(v ...*PayOrderExtension) *PayOrderUpdate { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddOrdersExtensionIDs(ids...) } // AddNotifyTaskIDs adds the "notify_task" edge to the PayNotifyTask entity by IDs. func (_u *PayOrderUpdate) AddNotifyTaskIDs(ids ...uint64) *PayOrderUpdate { _u.mutation.AddNotifyTaskIDs(ids...) return _u } // AddNotifyTask adds the "notify_task" edges to the PayNotifyTask entity. func (_u *PayOrderUpdate) AddNotifyTask(v ...*PayNotifyTask) *PayOrderUpdate { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddNotifyTaskIDs(ids...) } // AddRefundIDs adds the "refund" edge to the PayRefund entity by IDs. func (_u *PayOrderUpdate) AddRefundIDs(ids ...uint64) *PayOrderUpdate { _u.mutation.AddRefundIDs(ids...) return _u } // AddRefund adds the "refund" edges to the PayRefund entity. func (_u *PayOrderUpdate) AddRefund(v ...*PayRefund) *PayOrderUpdate { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddRefundIDs(ids...) } // Mutation returns the PayOrderMutation object of the builder. func (_u *PayOrderUpdate) Mutation() *PayOrderMutation { return _u.mutation } // ClearChannel clears the "channel" edge to the PayChannel entity. func (_u *PayOrderUpdate) ClearChannel() *PayOrderUpdate { _u.mutation.ClearChannel() return _u } // ClearOrdersExtension clears all "orders_extension" edges to the PayOrderExtension entity. func (_u *PayOrderUpdate) ClearOrdersExtension() *PayOrderUpdate { _u.mutation.ClearOrdersExtension() return _u } // RemoveOrdersExtensionIDs removes the "orders_extension" edge to PayOrderExtension entities by IDs. func (_u *PayOrderUpdate) RemoveOrdersExtensionIDs(ids ...uint64) *PayOrderUpdate { _u.mutation.RemoveOrdersExtensionIDs(ids...) return _u } // RemoveOrdersExtension removes "orders_extension" edges to PayOrderExtension entities. func (_u *PayOrderUpdate) RemoveOrdersExtension(v ...*PayOrderExtension) *PayOrderUpdate { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveOrdersExtensionIDs(ids...) } // ClearNotifyTask clears all "notify_task" edges to the PayNotifyTask entity. func (_u *PayOrderUpdate) ClearNotifyTask() *PayOrderUpdate { _u.mutation.ClearNotifyTask() return _u } // RemoveNotifyTaskIDs removes the "notify_task" edge to PayNotifyTask entities by IDs. func (_u *PayOrderUpdate) RemoveNotifyTaskIDs(ids ...uint64) *PayOrderUpdate { _u.mutation.RemoveNotifyTaskIDs(ids...) return _u } // RemoveNotifyTask removes "notify_task" edges to PayNotifyTask entities. func (_u *PayOrderUpdate) RemoveNotifyTask(v ...*PayNotifyTask) *PayOrderUpdate { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveNotifyTaskIDs(ids...) } // ClearRefund clears all "refund" edges to the PayRefund entity. func (_u *PayOrderUpdate) ClearRefund() *PayOrderUpdate { _u.mutation.ClearRefund() return _u } // RemoveRefundIDs removes the "refund" edge to PayRefund entities by IDs. func (_u *PayOrderUpdate) RemoveRefundIDs(ids ...uint64) *PayOrderUpdate { _u.mutation.RemoveRefundIDs(ids...) return _u } // RemoveRefund removes "refund" edges to PayRefund entities. func (_u *PayOrderUpdate) RemoveRefund(v ...*PayRefund) *PayOrderUpdate { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveRefundIDs(ids...) } // Save executes the query and returns the number of nodes affected by the update operation. func (_u *PayOrderUpdate) Save(ctx context.Context) (int, error) { _u.defaults() return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *PayOrderUpdate) SaveX(ctx context.Context) int { affected, err := _u.Save(ctx) if err != nil { panic(err) } return affected } // Exec executes the query. func (_u *PayOrderUpdate) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *PayOrderUpdate) ExecX(ctx context.Context) { if err := _u.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (_u *PayOrderUpdate) defaults() { if _, ok := _u.mutation.UpdatedAt(); !ok { v := payorder.UpdateDefaultUpdatedAt() _u.mutation.SetUpdatedAt(v) } } // check runs all checks and user-defined validators on the builder. func (_u *PayOrderUpdate) check() error { if _u.mutation.ChannelCleared() && len(_u.mutation.ChannelIDs()) > 0 { return errors.New(`ent: clearing a required unique edge "PayOrder.channel"`) } return nil } func (_u *PayOrderUpdate) sqlSave(ctx context.Context) (_node int, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(payorder.Table, payorder.Columns, sqlgraph.NewFieldSpec(payorder.FieldID, field.TypeUint64)) if ps := _u.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := _u.mutation.UpdatedAt(); ok { _spec.SetField(payorder.FieldUpdatedAt, field.TypeTime, value) } if value, ok := _u.mutation.Status(); ok { _spec.SetField(payorder.FieldStatus, field.TypeUint8, value) } if value, ok := _u.mutation.AddedStatus(); ok { _spec.AddField(payorder.FieldStatus, field.TypeUint8, value) } if _u.mutation.StatusCleared() { _spec.ClearField(payorder.FieldStatus, field.TypeUint8) } if value, ok := _u.mutation.DeletedAt(); ok { _spec.SetField(payorder.FieldDeletedAt, field.TypeTime, value) } if _u.mutation.DeletedAtCleared() { _spec.ClearField(payorder.FieldDeletedAt, field.TypeTime) } if value, ok := _u.mutation.UserID(); ok { _spec.SetField(payorder.FieldUserID, field.TypeUint64, value) } if value, ok := _u.mutation.AddedUserID(); ok { _spec.AddField(payorder.FieldUserID, field.TypeUint64, value) } if value, ok := _u.mutation.Subject(); ok { _spec.SetField(payorder.FieldSubject, field.TypeString, value) } if value, ok := _u.mutation.Body(); ok { _spec.SetField(payorder.FieldBody, field.TypeString, value) } if value, ok := _u.mutation.NotifyURL(); ok { _spec.SetField(payorder.FieldNotifyURL, field.TypeString, value) } if value, ok := _u.mutation.Amount(); ok { _spec.SetField(payorder.FieldAmount, field.TypeUint64, value) } if value, ok := _u.mutation.AddedAmount(); ok { _spec.AddField(payorder.FieldAmount, field.TypeUint64, value) } if value, ok := _u.mutation.PaySource(); ok { _spec.SetField(payorder.FieldPaySource, field.TypeString, value) } if _u.mutation.PaySourceCleared() { _spec.ClearField(payorder.FieldPaySource, field.TypeString) } if value, ok := _u.mutation.ChannelFeeRate(); ok { _spec.SetField(payorder.FieldChannelFeeRate, field.TypeString, value) } if value, ok := _u.mutation.ChannelFee(); ok { _spec.SetField(payorder.FieldChannelFee, field.TypeUint64, value) } if value, ok := _u.mutation.AddedChannelFee(); ok { _spec.AddField(payorder.FieldChannelFee, field.TypeUint64, value) } if value, ok := _u.mutation.OrderStatus(); ok { _spec.SetField(payorder.FieldOrderStatus, field.TypeString, value) } if value, ok := _u.mutation.UserIP(); ok { _spec.SetField(payorder.FieldUserIP, field.TypeString, value) } if _u.mutation.UserIPCleared() { _spec.ClearField(payorder.FieldUserIP, field.TypeString) } if value, ok := _u.mutation.ExpireTime(); ok { _spec.SetField(payorder.FieldExpireTime, field.TypeTime, value) } if value, ok := _u.mutation.PayNo(); ok { _spec.SetField(payorder.FieldPayNo, field.TypeString, value) } if value, ok := _u.mutation.SuccessTime(); ok { _spec.SetField(payorder.FieldSuccessTime, field.TypeTime, value) } if value, ok := _u.mutation.ExtensionID(); ok { _spec.SetField(payorder.FieldExtensionID, field.TypeUint64, value) } if value, ok := _u.mutation.AddedExtensionID(); ok { _spec.AddField(payorder.FieldExtensionID, field.TypeUint64, value) } if _u.mutation.ExtensionIDCleared() { _spec.ClearField(payorder.FieldExtensionID, field.TypeUint64) } if value, ok := _u.mutation.TransactionID(); ok { _spec.SetField(payorder.FieldTransactionID, field.TypeString, value) } if _u.mutation.TransactionIDCleared() { _spec.ClearField(payorder.FieldTransactionID, field.TypeString) } if value, ok := _u.mutation.Currency(); ok { _spec.SetField(payorder.FieldCurrency, field.TypeString, value) } if value, ok := _u.mutation.RefundPrice(); ok { _spec.SetField(payorder.FieldRefundPrice, field.TypeUint64, value) } if value, ok := _u.mutation.AddedRefundPrice(); ok { _spec.AddField(payorder.FieldRefundPrice, field.TypeUint64, value) } if value, ok := _u.mutation.ChannelOrderNo(); ok { _spec.SetField(payorder.FieldChannelOrderNo, field.TypeString, value) } if _u.mutation.ChannelOrderNoCleared() { _spec.ClearField(payorder.FieldChannelOrderNo, field.TypeString) } if value, ok := _u.mutation.ChannelUserID(); ok { _spec.SetField(payorder.FieldChannelUserID, field.TypeString, value) } if _u.mutation.ChannelUserIDCleared() { _spec.ClearField(payorder.FieldChannelUserID, field.TypeString) } if _u.mutation.ChannelCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: payorder.ChannelTable, Columns: []string{payorder.ChannelColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paychannel.FieldID, field.TypeUint64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.ChannelIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: payorder.ChannelTable, Columns: []string{payorder.ChannelColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paychannel.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.OrdersExtensionCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.OrdersExtensionTable, Columns: []string{payorder.OrdersExtensionColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payorderextension.FieldID, field.TypeUint64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedOrdersExtensionIDs(); len(nodes) > 0 && !_u.mutation.OrdersExtensionCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.OrdersExtensionTable, Columns: []string{payorder.OrdersExtensionColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payorderextension.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.OrdersExtensionIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.OrdersExtensionTable, Columns: []string{payorder.OrdersExtensionColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payorderextension.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.NotifyTaskCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.NotifyTaskTable, Columns: []string{payorder.NotifyTaskColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paynotifytask.FieldID, field.TypeUint64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedNotifyTaskIDs(); len(nodes) > 0 && !_u.mutation.NotifyTaskCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.NotifyTaskTable, Columns: []string{payorder.NotifyTaskColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paynotifytask.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.NotifyTaskIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.NotifyTaskTable, Columns: []string{payorder.NotifyTaskColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paynotifytask.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.RefundCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.RefundTable, Columns: []string{payorder.RefundColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payrefund.FieldID, field.TypeUint64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedRefundIDs(); len(nodes) > 0 && !_u.mutation.RefundCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.RefundTable, Columns: []string{payorder.RefundColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payrefund.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RefundIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.RefundTable, Columns: []string{payorder.RefundColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payrefund.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _node, err = sqlgraph.UpdateNodes(ctx, _u.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{payorder.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } _u.mutation.done = true return _node, nil } // PayOrderUpdateOne is the builder for updating a single PayOrder entity. type PayOrderUpdateOne struct { config fields []string hooks []Hook mutation *PayOrderMutation } // SetUpdatedAt sets the "updated_at" field. func (_u *PayOrderUpdateOne) SetUpdatedAt(v time.Time) *PayOrderUpdateOne { _u.mutation.SetUpdatedAt(v) return _u } // SetStatus sets the "status" field. func (_u *PayOrderUpdateOne) SetStatus(v uint8) *PayOrderUpdateOne { _u.mutation.ResetStatus() _u.mutation.SetStatus(v) return _u } // SetNillableStatus sets the "status" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableStatus(v *uint8) *PayOrderUpdateOne { if v != nil { _u.SetStatus(*v) } return _u } // AddStatus adds value to the "status" field. func (_u *PayOrderUpdateOne) AddStatus(v int8) *PayOrderUpdateOne { _u.mutation.AddStatus(v) return _u } // ClearStatus clears the value of the "status" field. func (_u *PayOrderUpdateOne) ClearStatus() *PayOrderUpdateOne { _u.mutation.ClearStatus() return _u } // SetDeletedAt sets the "deleted_at" field. func (_u *PayOrderUpdateOne) SetDeletedAt(v time.Time) *PayOrderUpdateOne { _u.mutation.SetDeletedAt(v) return _u } // SetNillableDeletedAt sets the "deleted_at" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableDeletedAt(v *time.Time) *PayOrderUpdateOne { if v != nil { _u.SetDeletedAt(*v) } return _u } // ClearDeletedAt clears the value of the "deleted_at" field. func (_u *PayOrderUpdateOne) ClearDeletedAt() *PayOrderUpdateOne { _u.mutation.ClearDeletedAt() return _u } // SetChannelID sets the "channel_id" field. func (_u *PayOrderUpdateOne) SetChannelID(v uint64) *PayOrderUpdateOne { _u.mutation.SetChannelID(v) return _u } // SetNillableChannelID sets the "channel_id" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableChannelID(v *uint64) *PayOrderUpdateOne { if v != nil { _u.SetChannelID(*v) } return _u } // SetUserID sets the "user_id" field. func (_u *PayOrderUpdateOne) SetUserID(v uint64) *PayOrderUpdateOne { _u.mutation.ResetUserID() _u.mutation.SetUserID(v) return _u } // SetNillableUserID sets the "user_id" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableUserID(v *uint64) *PayOrderUpdateOne { if v != nil { _u.SetUserID(*v) } return _u } // AddUserID adds value to the "user_id" field. func (_u *PayOrderUpdateOne) AddUserID(v int64) *PayOrderUpdateOne { _u.mutation.AddUserID(v) return _u } // SetSubject sets the "subject" field. func (_u *PayOrderUpdateOne) SetSubject(v string) *PayOrderUpdateOne { _u.mutation.SetSubject(v) return _u } // SetNillableSubject sets the "subject" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableSubject(v *string) *PayOrderUpdateOne { if v != nil { _u.SetSubject(*v) } return _u } // SetBody sets the "body" field. func (_u *PayOrderUpdateOne) SetBody(v string) *PayOrderUpdateOne { _u.mutation.SetBody(v) return _u } // SetNillableBody sets the "body" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableBody(v *string) *PayOrderUpdateOne { if v != nil { _u.SetBody(*v) } return _u } // SetNotifyURL sets the "notify_url" field. func (_u *PayOrderUpdateOne) SetNotifyURL(v string) *PayOrderUpdateOne { _u.mutation.SetNotifyURL(v) return _u } // SetNillableNotifyURL sets the "notify_url" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableNotifyURL(v *string) *PayOrderUpdateOne { if v != nil { _u.SetNotifyURL(*v) } return _u } // SetAmount sets the "amount" field. func (_u *PayOrderUpdateOne) SetAmount(v uint64) *PayOrderUpdateOne { _u.mutation.ResetAmount() _u.mutation.SetAmount(v) return _u } // SetNillableAmount sets the "amount" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableAmount(v *uint64) *PayOrderUpdateOne { if v != nil { _u.SetAmount(*v) } return _u } // AddAmount adds value to the "amount" field. func (_u *PayOrderUpdateOne) AddAmount(v int64) *PayOrderUpdateOne { _u.mutation.AddAmount(v) return _u } // SetPaySource sets the "pay_source" field. func (_u *PayOrderUpdateOne) SetPaySource(v string) *PayOrderUpdateOne { _u.mutation.SetPaySource(v) return _u } // SetNillablePaySource sets the "pay_source" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillablePaySource(v *string) *PayOrderUpdateOne { if v != nil { _u.SetPaySource(*v) } return _u } // ClearPaySource clears the value of the "pay_source" field. func (_u *PayOrderUpdateOne) ClearPaySource() *PayOrderUpdateOne { _u.mutation.ClearPaySource() return _u } // SetChannelFeeRate sets the "channel_fee_rate" field. func (_u *PayOrderUpdateOne) SetChannelFeeRate(v string) *PayOrderUpdateOne { _u.mutation.SetChannelFeeRate(v) return _u } // SetNillableChannelFeeRate sets the "channel_fee_rate" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableChannelFeeRate(v *string) *PayOrderUpdateOne { if v != nil { _u.SetChannelFeeRate(*v) } return _u } // SetChannelFee sets the "channel_fee" field. func (_u *PayOrderUpdateOne) SetChannelFee(v uint64) *PayOrderUpdateOne { _u.mutation.ResetChannelFee() _u.mutation.SetChannelFee(v) return _u } // SetNillableChannelFee sets the "channel_fee" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableChannelFee(v *uint64) *PayOrderUpdateOne { if v != nil { _u.SetChannelFee(*v) } return _u } // AddChannelFee adds value to the "channel_fee" field. func (_u *PayOrderUpdateOne) AddChannelFee(v int64) *PayOrderUpdateOne { _u.mutation.AddChannelFee(v) return _u } // SetOrderStatus sets the "order_status" field. func (_u *PayOrderUpdateOne) SetOrderStatus(v string) *PayOrderUpdateOne { _u.mutation.SetOrderStatus(v) return _u } // SetNillableOrderStatus sets the "order_status" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableOrderStatus(v *string) *PayOrderUpdateOne { if v != nil { _u.SetOrderStatus(*v) } return _u } // SetUserIP sets the "user_ip" field. func (_u *PayOrderUpdateOne) SetUserIP(v string) *PayOrderUpdateOne { _u.mutation.SetUserIP(v) return _u } // SetNillableUserIP sets the "user_ip" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableUserIP(v *string) *PayOrderUpdateOne { if v != nil { _u.SetUserIP(*v) } return _u } // ClearUserIP clears the value of the "user_ip" field. func (_u *PayOrderUpdateOne) ClearUserIP() *PayOrderUpdateOne { _u.mutation.ClearUserIP() return _u } // SetExpireTime sets the "expire_time" field. func (_u *PayOrderUpdateOne) SetExpireTime(v time.Time) *PayOrderUpdateOne { _u.mutation.SetExpireTime(v) return _u } // SetNillableExpireTime sets the "expire_time" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableExpireTime(v *time.Time) *PayOrderUpdateOne { if v != nil { _u.SetExpireTime(*v) } return _u } // SetPayNo sets the "pay_no" field. func (_u *PayOrderUpdateOne) SetPayNo(v string) *PayOrderUpdateOne { _u.mutation.SetPayNo(v) return _u } // SetNillablePayNo sets the "pay_no" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillablePayNo(v *string) *PayOrderUpdateOne { if v != nil { _u.SetPayNo(*v) } return _u } // SetSuccessTime sets the "success_time" field. func (_u *PayOrderUpdateOne) SetSuccessTime(v time.Time) *PayOrderUpdateOne { _u.mutation.SetSuccessTime(v) return _u } // SetNillableSuccessTime sets the "success_time" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableSuccessTime(v *time.Time) *PayOrderUpdateOne { if v != nil { _u.SetSuccessTime(*v) } return _u } // SetExtensionID sets the "extension_id" field. func (_u *PayOrderUpdateOne) SetExtensionID(v uint64) *PayOrderUpdateOne { _u.mutation.ResetExtensionID() _u.mutation.SetExtensionID(v) return _u } // SetNillableExtensionID sets the "extension_id" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableExtensionID(v *uint64) *PayOrderUpdateOne { if v != nil { _u.SetExtensionID(*v) } return _u } // AddExtensionID adds value to the "extension_id" field. func (_u *PayOrderUpdateOne) AddExtensionID(v int64) *PayOrderUpdateOne { _u.mutation.AddExtensionID(v) return _u } // ClearExtensionID clears the value of the "extension_id" field. func (_u *PayOrderUpdateOne) ClearExtensionID() *PayOrderUpdateOne { _u.mutation.ClearExtensionID() return _u } // SetTransactionID sets the "transaction_id" field. func (_u *PayOrderUpdateOne) SetTransactionID(v string) *PayOrderUpdateOne { _u.mutation.SetTransactionID(v) return _u } // SetNillableTransactionID sets the "transaction_id" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableTransactionID(v *string) *PayOrderUpdateOne { if v != nil { _u.SetTransactionID(*v) } return _u } // ClearTransactionID clears the value of the "transaction_id" field. func (_u *PayOrderUpdateOne) ClearTransactionID() *PayOrderUpdateOne { _u.mutation.ClearTransactionID() return _u } // SetCurrency sets the "currency" field. func (_u *PayOrderUpdateOne) SetCurrency(v string) *PayOrderUpdateOne { _u.mutation.SetCurrency(v) return _u } // SetNillableCurrency sets the "currency" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableCurrency(v *string) *PayOrderUpdateOne { if v != nil { _u.SetCurrency(*v) } return _u } // SetRefundPrice sets the "refund_price" field. func (_u *PayOrderUpdateOne) SetRefundPrice(v uint64) *PayOrderUpdateOne { _u.mutation.ResetRefundPrice() _u.mutation.SetRefundPrice(v) return _u } // SetNillableRefundPrice sets the "refund_price" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableRefundPrice(v *uint64) *PayOrderUpdateOne { if v != nil { _u.SetRefundPrice(*v) } return _u } // AddRefundPrice adds value to the "refund_price" field. func (_u *PayOrderUpdateOne) AddRefundPrice(v int64) *PayOrderUpdateOne { _u.mutation.AddRefundPrice(v) return _u } // SetChannelOrderNo sets the "channel_order_no" field. func (_u *PayOrderUpdateOne) SetChannelOrderNo(v string) *PayOrderUpdateOne { _u.mutation.SetChannelOrderNo(v) return _u } // SetNillableChannelOrderNo sets the "channel_order_no" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableChannelOrderNo(v *string) *PayOrderUpdateOne { if v != nil { _u.SetChannelOrderNo(*v) } return _u } // ClearChannelOrderNo clears the value of the "channel_order_no" field. func (_u *PayOrderUpdateOne) ClearChannelOrderNo() *PayOrderUpdateOne { _u.mutation.ClearChannelOrderNo() return _u } // SetChannelUserID sets the "channel_user_id" field. func (_u *PayOrderUpdateOne) SetChannelUserID(v string) *PayOrderUpdateOne { _u.mutation.SetChannelUserID(v) return _u } // SetNillableChannelUserID sets the "channel_user_id" field if the given value is not nil. func (_u *PayOrderUpdateOne) SetNillableChannelUserID(v *string) *PayOrderUpdateOne { if v != nil { _u.SetChannelUserID(*v) } return _u } // ClearChannelUserID clears the value of the "channel_user_id" field. func (_u *PayOrderUpdateOne) ClearChannelUserID() *PayOrderUpdateOne { _u.mutation.ClearChannelUserID() return _u } // SetChannel sets the "channel" edge to the PayChannel entity. func (_u *PayOrderUpdateOne) SetChannel(v *PayChannel) *PayOrderUpdateOne { return _u.SetChannelID(v.ID) } // AddOrdersExtensionIDs adds the "orders_extension" edge to the PayOrderExtension entity by IDs. func (_u *PayOrderUpdateOne) AddOrdersExtensionIDs(ids ...uint64) *PayOrderUpdateOne { _u.mutation.AddOrdersExtensionIDs(ids...) return _u } // AddOrdersExtension adds the "orders_extension" edges to the PayOrderExtension entity. func (_u *PayOrderUpdateOne) AddOrdersExtension(v ...*PayOrderExtension) *PayOrderUpdateOne { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddOrdersExtensionIDs(ids...) } // AddNotifyTaskIDs adds the "notify_task" edge to the PayNotifyTask entity by IDs. func (_u *PayOrderUpdateOne) AddNotifyTaskIDs(ids ...uint64) *PayOrderUpdateOne { _u.mutation.AddNotifyTaskIDs(ids...) return _u } // AddNotifyTask adds the "notify_task" edges to the PayNotifyTask entity. func (_u *PayOrderUpdateOne) AddNotifyTask(v ...*PayNotifyTask) *PayOrderUpdateOne { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddNotifyTaskIDs(ids...) } // AddRefundIDs adds the "refund" edge to the PayRefund entity by IDs. func (_u *PayOrderUpdateOne) AddRefundIDs(ids ...uint64) *PayOrderUpdateOne { _u.mutation.AddRefundIDs(ids...) return _u } // AddRefund adds the "refund" edges to the PayRefund entity. func (_u *PayOrderUpdateOne) AddRefund(v ...*PayRefund) *PayOrderUpdateOne { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.AddRefundIDs(ids...) } // Mutation returns the PayOrderMutation object of the builder. func (_u *PayOrderUpdateOne) Mutation() *PayOrderMutation { return _u.mutation } // ClearChannel clears the "channel" edge to the PayChannel entity. func (_u *PayOrderUpdateOne) ClearChannel() *PayOrderUpdateOne { _u.mutation.ClearChannel() return _u } // ClearOrdersExtension clears all "orders_extension" edges to the PayOrderExtension entity. func (_u *PayOrderUpdateOne) ClearOrdersExtension() *PayOrderUpdateOne { _u.mutation.ClearOrdersExtension() return _u } // RemoveOrdersExtensionIDs removes the "orders_extension" edge to PayOrderExtension entities by IDs. func (_u *PayOrderUpdateOne) RemoveOrdersExtensionIDs(ids ...uint64) *PayOrderUpdateOne { _u.mutation.RemoveOrdersExtensionIDs(ids...) return _u } // RemoveOrdersExtension removes "orders_extension" edges to PayOrderExtension entities. func (_u *PayOrderUpdateOne) RemoveOrdersExtension(v ...*PayOrderExtension) *PayOrderUpdateOne { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveOrdersExtensionIDs(ids...) } // ClearNotifyTask clears all "notify_task" edges to the PayNotifyTask entity. func (_u *PayOrderUpdateOne) ClearNotifyTask() *PayOrderUpdateOne { _u.mutation.ClearNotifyTask() return _u } // RemoveNotifyTaskIDs removes the "notify_task" edge to PayNotifyTask entities by IDs. func (_u *PayOrderUpdateOne) RemoveNotifyTaskIDs(ids ...uint64) *PayOrderUpdateOne { _u.mutation.RemoveNotifyTaskIDs(ids...) return _u } // RemoveNotifyTask removes "notify_task" edges to PayNotifyTask entities. func (_u *PayOrderUpdateOne) RemoveNotifyTask(v ...*PayNotifyTask) *PayOrderUpdateOne { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveNotifyTaskIDs(ids...) } // ClearRefund clears all "refund" edges to the PayRefund entity. func (_u *PayOrderUpdateOne) ClearRefund() *PayOrderUpdateOne { _u.mutation.ClearRefund() return _u } // RemoveRefundIDs removes the "refund" edge to PayRefund entities by IDs. func (_u *PayOrderUpdateOne) RemoveRefundIDs(ids ...uint64) *PayOrderUpdateOne { _u.mutation.RemoveRefundIDs(ids...) return _u } // RemoveRefund removes "refund" edges to PayRefund entities. func (_u *PayOrderUpdateOne) RemoveRefund(v ...*PayRefund) *PayOrderUpdateOne { ids := make([]uint64, len(v)) for i := range v { ids[i] = v[i].ID } return _u.RemoveRefundIDs(ids...) } // Where appends a list predicates to the PayOrderUpdate builder. func (_u *PayOrderUpdateOne) Where(ps ...predicate.PayOrder) *PayOrderUpdateOne { _u.mutation.Where(ps...) return _u } // Select allows selecting one or more fields (columns) of the returned entity. // The default is selecting all fields defined in the entity schema. func (_u *PayOrderUpdateOne) Select(field string, fields ...string) *PayOrderUpdateOne { _u.fields = append([]string{field}, fields...) return _u } // Save executes the query and returns the updated PayOrder entity. func (_u *PayOrderUpdateOne) Save(ctx context.Context) (*PayOrder, error) { _u.defaults() return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *PayOrderUpdateOne) SaveX(ctx context.Context) *PayOrder { node, err := _u.Save(ctx) if err != nil { panic(err) } return node } // Exec executes the query on the entity. func (_u *PayOrderUpdateOne) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *PayOrderUpdateOne) ExecX(ctx context.Context) { if err := _u.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (_u *PayOrderUpdateOne) defaults() { if _, ok := _u.mutation.UpdatedAt(); !ok { v := payorder.UpdateDefaultUpdatedAt() _u.mutation.SetUpdatedAt(v) } } // check runs all checks and user-defined validators on the builder. func (_u *PayOrderUpdateOne) check() error { if _u.mutation.ChannelCleared() && len(_u.mutation.ChannelIDs()) > 0 { return errors.New(`ent: clearing a required unique edge "PayOrder.channel"`) } return nil } func (_u *PayOrderUpdateOne) sqlSave(ctx context.Context) (_node *PayOrder, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(payorder.Table, payorder.Columns, sqlgraph.NewFieldSpec(payorder.FieldID, field.TypeUint64)) id, ok := _u.mutation.ID() if !ok { return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "PayOrder.id" for update`)} } _spec.Node.ID.Value = id if fields := _u.fields; len(fields) > 0 { _spec.Node.Columns = make([]string, 0, len(fields)) _spec.Node.Columns = append(_spec.Node.Columns, payorder.FieldID) for _, f := range fields { if !payorder.ValidColumn(f) { return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} } if f != payorder.FieldID { _spec.Node.Columns = append(_spec.Node.Columns, f) } } } if ps := _u.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := _u.mutation.UpdatedAt(); ok { _spec.SetField(payorder.FieldUpdatedAt, field.TypeTime, value) } if value, ok := _u.mutation.Status(); ok { _spec.SetField(payorder.FieldStatus, field.TypeUint8, value) } if value, ok := _u.mutation.AddedStatus(); ok { _spec.AddField(payorder.FieldStatus, field.TypeUint8, value) } if _u.mutation.StatusCleared() { _spec.ClearField(payorder.FieldStatus, field.TypeUint8) } if value, ok := _u.mutation.DeletedAt(); ok { _spec.SetField(payorder.FieldDeletedAt, field.TypeTime, value) } if _u.mutation.DeletedAtCleared() { _spec.ClearField(payorder.FieldDeletedAt, field.TypeTime) } if value, ok := _u.mutation.UserID(); ok { _spec.SetField(payorder.FieldUserID, field.TypeUint64, value) } if value, ok := _u.mutation.AddedUserID(); ok { _spec.AddField(payorder.FieldUserID, field.TypeUint64, value) } if value, ok := _u.mutation.Subject(); ok { _spec.SetField(payorder.FieldSubject, field.TypeString, value) } if value, ok := _u.mutation.Body(); ok { _spec.SetField(payorder.FieldBody, field.TypeString, value) } if value, ok := _u.mutation.NotifyURL(); ok { _spec.SetField(payorder.FieldNotifyURL, field.TypeString, value) } if value, ok := _u.mutation.Amount(); ok { _spec.SetField(payorder.FieldAmount, field.TypeUint64, value) } if value, ok := _u.mutation.AddedAmount(); ok { _spec.AddField(payorder.FieldAmount, field.TypeUint64, value) } if value, ok := _u.mutation.PaySource(); ok { _spec.SetField(payorder.FieldPaySource, field.TypeString, value) } if _u.mutation.PaySourceCleared() { _spec.ClearField(payorder.FieldPaySource, field.TypeString) } if value, ok := _u.mutation.ChannelFeeRate(); ok { _spec.SetField(payorder.FieldChannelFeeRate, field.TypeString, value) } if value, ok := _u.mutation.ChannelFee(); ok { _spec.SetField(payorder.FieldChannelFee, field.TypeUint64, value) } if value, ok := _u.mutation.AddedChannelFee(); ok { _spec.AddField(payorder.FieldChannelFee, field.TypeUint64, value) } if value, ok := _u.mutation.OrderStatus(); ok { _spec.SetField(payorder.FieldOrderStatus, field.TypeString, value) } if value, ok := _u.mutation.UserIP(); ok { _spec.SetField(payorder.FieldUserIP, field.TypeString, value) } if _u.mutation.UserIPCleared() { _spec.ClearField(payorder.FieldUserIP, field.TypeString) } if value, ok := _u.mutation.ExpireTime(); ok { _spec.SetField(payorder.FieldExpireTime, field.TypeTime, value) } if value, ok := _u.mutation.PayNo(); ok { _spec.SetField(payorder.FieldPayNo, field.TypeString, value) } if value, ok := _u.mutation.SuccessTime(); ok { _spec.SetField(payorder.FieldSuccessTime, field.TypeTime, value) } if value, ok := _u.mutation.ExtensionID(); ok { _spec.SetField(payorder.FieldExtensionID, field.TypeUint64, value) } if value, ok := _u.mutation.AddedExtensionID(); ok { _spec.AddField(payorder.FieldExtensionID, field.TypeUint64, value) } if _u.mutation.ExtensionIDCleared() { _spec.ClearField(payorder.FieldExtensionID, field.TypeUint64) } if value, ok := _u.mutation.TransactionID(); ok { _spec.SetField(payorder.FieldTransactionID, field.TypeString, value) } if _u.mutation.TransactionIDCleared() { _spec.ClearField(payorder.FieldTransactionID, field.TypeString) } if value, ok := _u.mutation.Currency(); ok { _spec.SetField(payorder.FieldCurrency, field.TypeString, value) } if value, ok := _u.mutation.RefundPrice(); ok { _spec.SetField(payorder.FieldRefundPrice, field.TypeUint64, value) } if value, ok := _u.mutation.AddedRefundPrice(); ok { _spec.AddField(payorder.FieldRefundPrice, field.TypeUint64, value) } if value, ok := _u.mutation.ChannelOrderNo(); ok { _spec.SetField(payorder.FieldChannelOrderNo, field.TypeString, value) } if _u.mutation.ChannelOrderNoCleared() { _spec.ClearField(payorder.FieldChannelOrderNo, field.TypeString) } if value, ok := _u.mutation.ChannelUserID(); ok { _spec.SetField(payorder.FieldChannelUserID, field.TypeString, value) } if _u.mutation.ChannelUserIDCleared() { _spec.ClearField(payorder.FieldChannelUserID, field.TypeString) } if _u.mutation.ChannelCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: payorder.ChannelTable, Columns: []string{payorder.ChannelColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paychannel.FieldID, field.TypeUint64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.ChannelIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.M2O, Inverse: false, Table: payorder.ChannelTable, Columns: []string{payorder.ChannelColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paychannel.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.OrdersExtensionCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.OrdersExtensionTable, Columns: []string{payorder.OrdersExtensionColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payorderextension.FieldID, field.TypeUint64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedOrdersExtensionIDs(); len(nodes) > 0 && !_u.mutation.OrdersExtensionCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.OrdersExtensionTable, Columns: []string{payorder.OrdersExtensionColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payorderextension.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.OrdersExtensionIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.OrdersExtensionTable, Columns: []string{payorder.OrdersExtensionColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payorderextension.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.NotifyTaskCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.NotifyTaskTable, Columns: []string{payorder.NotifyTaskColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paynotifytask.FieldID, field.TypeUint64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedNotifyTaskIDs(); len(nodes) > 0 && !_u.mutation.NotifyTaskCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.NotifyTaskTable, Columns: []string{payorder.NotifyTaskColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paynotifytask.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.NotifyTaskIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.NotifyTaskTable, Columns: []string{payorder.NotifyTaskColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(paynotifytask.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } if _u.mutation.RefundCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.RefundTable, Columns: []string{payorder.RefundColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payrefund.FieldID, field.TypeUint64), }, } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RemovedRefundIDs(); len(nodes) > 0 && !_u.mutation.RefundCleared() { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.RefundTable, Columns: []string{payorder.RefundColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payrefund.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Clear = append(_spec.Edges.Clear, edge) } if nodes := _u.mutation.RefundIDs(); len(nodes) > 0 { edge := &sqlgraph.EdgeSpec{ Rel: sqlgraph.O2M, Inverse: true, Table: payorder.RefundTable, Columns: []string{payorder.RefundColumn}, Bidi: false, Target: &sqlgraph.EdgeTarget{ IDSpec: sqlgraph.NewFieldSpec(payrefund.FieldID, field.TypeUint64), }, } for _, k := range nodes { edge.Target.Nodes = append(edge.Target.Nodes, k) } _spec.Edges.Add = append(_spec.Edges.Add, edge) } _node = &PayOrder{config: _u.config} _spec.Assign = _node.assignValues _spec.ScanValues = _node.scanValues if err = sqlgraph.UpdateNode(ctx, _u.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{payorder.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } _u.mutation.done = true return _node, nil }