package db import ( "applet/app/db/model" "applet/app/utils/logx" "xorm.io/xorm" ) // GetFinUserFlowByID is 用户流水记录 func GetFinUserFlowByID(Db *xorm.Engine, id interface{}) (*model.FinUserFlow, error) { var m model.FinUserFlow if has, err := Db.Where("id = ?", id).Get(&m); err != nil || !has { return nil, logx.Warn(err) } return &m, nil } // GetFinUserFlowByID is 用户流水记录 func GetFinUserFlowByUIDANDOID(Db *xorm.Engine, types, uid, ordId string) (*model.FinUserFlow, error) { var m model.FinUserFlow if has, err := Db.Where("uid = ? and ord_id = ? and type = ?", uid, ordId, types).Get(&m); err != nil || !has { return nil, logx.Warn(err) } return &m, nil } func GetFinUserFlowByUIDANDOIDTOORDTYPE(Db *xorm.Engine, types, uid, ordId string) (*model.FinUserFlow, error) { var m model.FinUserFlow if has, err := Db.Where("uid = ? and ord_id = ? and ord_type = ?", uid, ordId, types).Get(&m); err != nil || !has { return nil, logx.Warn(err) } return &m, nil } // GetFinUserFlowByID is 用户流水记录 func GetFinUserFlowByOIDANDORDTYPE(Db *xorm.Engine, types, ordId, ordType string) (*model.FinUserFlow, error) { var m model.FinUserFlow if has, err := Db.Where("ord_id = ? and ord_action = ? and ord_type= ?", ordId, types, ordType).Get(&m); err != nil || !has { return nil, logx.Warn(err) } return &m, nil } //FinUserFlowInsertOne is 插入一条流水记录 func FinUserFlowInsertOne(Db *xorm.Engine, m *model.FinUserFlow) error { _, err := Db.InsertOne(m) if err != nil { return err } return nil } //FinUserFlowInsertOne is 插入一条流水记录 func FinUserFlowWithSessionInsertOne(session *xorm.Session, m *model.FinUserFlow) error { _, err := session.InsertOne(m) if err != nil { return err } return nil } // FinUserFlowByUID is 用户流水 func FinUserFlowInputByUID(Db *xorm.Engine, uid interface{}, time string, limit, start int) ([]*model.FinUserFlow, error) { var m []*model.FinUserFlow if err := Db.Where("uid = ? AND create_at like ? and (amount> ? or ord_type=?)", uid, time+"%", "0", "fast_return").In("type", "0").Desc("create_at").Limit(limit, start).Find(&m); err != nil { return nil, logx.Warn(err) } return m, nil } func FinUserFlowInputByUIDWithAmount(Db *xorm.Engine, uid interface{}, types, before_amount, after_amount string) (*model.FinUserFlow, error) { var m model.FinUserFlow if has, err := Db.Where("uid = ? and ord_type='withdraw' and ord_action = ? and before_amount= ? and after_amount = ?", uid, types, before_amount, after_amount).Get(&m); err != nil || !has { return nil, logx.Warn(err) } return &m, nil } // FinUserFlowByUIDByOrderAction is 用户流水 by OrderAction func FinUserFlowInputByUIDByOrderActionByTime(Db *xorm.Engine, uid, oa interface{}, time string, limit, start int) ([]*model.FinUserFlow, error) { var m []*model.FinUserFlow if err := Db.Where("uid = ? AND create_at like ? and amount>0", uid, time+"%").In("ord_action", oa).Desc("create_at").Limit(limit, start).Find(&m); err != nil { return nil, logx.Warn(err) } return m, nil } // FinUserFlowByUIDByOrderAction is 用户流水 by OrderAction func FinUserFlowInputByUIDByTypeByTime(Db *xorm.Engine, uid int, time string, limit, start int) ([]*model.FinUserFlow, error) { var m []*model.FinUserFlow if err := Db.Where("uid = ? AND type = 1 AND create_at like ? and (amount>0 or ord_type=? or ord_action=?)", uid, time+"%", "fast_return", 101).Desc("create_at").Limit(limit, start).Find(&m); err != nil { return nil, logx.Warn(err) } return m, nil } // 在事务中使用,插入一条流水记录 func FinUserFlowInsertOneWithSession(session *xorm.Session, m *model.FinUserFlow) error { _, err := session.InsertOne(m) if err != nil { return err } return nil }