123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- package model
- import (
- "database/sql"
- "errors"
- )
- type RedisCfg struct {
- Model
- }
- type RedisCfgRow struct {
- Id int64
- Address string
- Remark string
- Password string
- MaxConnectWait int64
- MaxStatusFailed int64
- MinMemoryFree int64
- StepMemoryIncrease int64
- MaxMemoryUsage int64
- MaxConnection int64
- MaxEviIncreased int64
- MaxQPS int64
- MailList string
- Disabled bool
- }
- func NewRedisCfg(db *sql.DB) *RedisCfg {
- return &RedisCfg{
- Model{
- db: db,
- },
- }
- }
- func (m *RedisCfg) Insert(row *RedisCfgRow) (int64, error) {
- if row.Address == "" {
- return 0, errors.New("Address不能为空")
- }
- disabledInt := 0
- if row.Disabled {
- disabledInt = 1
- }
- ret, err := m.db.Exec(`INSERT INTO rediscfg(
- address,
- remark,
- password,
- max_connect_wait,
- max_status_failed,
- min_memory_free,
- step_memory_increase,
- max_memory_usage,
- max_connection,
- max_evi_increased,
- max_qps,
- mail_list,
- disabled
- ) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)`,
- row.Address,
- row.Remark,
- row.Password,
- row.MaxConnectWait,
- row.MaxStatusFailed,
- row.MinMemoryFree,
- row.StepMemoryIncrease,
- row.MaxMemoryUsage,
- row.MaxConnection,
- row.MaxEviIncreased,
- row.MaxQPS,
- row.MailList,
- disabledInt,
- )
- if err != nil {
- return 0, err
- }
- return ret.LastInsertId()
- }
- func (m *RedisCfg) Update(row *RedisCfgRow) (int64, error) {
- if row.Id <= 0 {
- return 0, errors.New("ID必须是大于0的整数")
- }
- if row.Address == "" {
- return 0, errors.New("Address不能为空")
- }
- disabledInt := 0
- if row.Disabled {
- disabledInt = 1
- }
- ret, err := m.db.Exec(`UPDATE rediscfg SET
- address=?,
- remark=?,
- password=?,
- max_connect_wait=?,
- max_status_failed=?,
- min_memory_free=?,
- step_memory_increase=?,
- max_memory_usage=?,
- max_connection=?,
- max_evi_increased=?,
- max_qps=?,
- mail_list=?,
- disabled=?
- WHERE id=?`,
- row.Address,
- row.Remark,
- row.Password,
- row.MaxConnectWait,
- row.MaxStatusFailed,
- row.MinMemoryFree,
- row.StepMemoryIncrease,
- row.MaxMemoryUsage,
- row.MaxConnection,
- row.MaxEviIncreased,
- row.MaxQPS,
- row.MailList,
- disabledInt,
- row.Id,
- )
- if err != nil {
- return 0, nil
- }
- return ret.RowsAffected()
- }
- func (m *RedisCfg) Delete(id int64) (int64, error) {
- if id <= 0 {
- return 0, errors.New("ID必须是大于0的整数")
- }
- ret, err := m.db.Exec("DELETE FROM rediscfg WHERE id=?", id)
- if err != nil {
- return 0, err
- }
- return ret.RowsAffected()
- }
- func (m *RedisCfg) Get(id int64) (*RedisCfgRow, error) {
- if id <= 0 {
- return nil, errors.New("ID必须是大于0的整数")
- }
- result := m.db.QueryRow(`SELECT id,
- address,
- remark,
- password,
- max_connect_wait,
- max_status_failed,
- min_memory_free,
- step_memory_increase,
- max_memory_usage,
- max_connection,
- max_evi_increased,
- max_qps,
- mail_list,
- disabled
- FROM rediscfg WHERE id=?`,
- id,
- )
- row := RedisCfgRow{}
- err := result.Scan(
- &row.Id,
- &row.Address,
- &row.Remark,
- &row.Password,
- &row.MaxConnectWait,
- &row.MaxStatusFailed,
- &row.MinMemoryFree,
- &row.StepMemoryIncrease,
- &row.MaxMemoryUsage,
- &row.MaxConnection,
- &row.MaxEviIncreased,
- &row.MaxQPS,
- &row.MailList,
- &row.Disabled,
- )
- if err != nil {
- if err == sql.ErrNoRows {
- return nil, errors.New("记录不存在")
- } else {
- return nil, err
- }
- } else {
- return &row, nil
- }
- }
- func (m *RedisCfg) GetAll(disabledInt int) ([]*RedisCfgRow, error) {
- var sql string
- if disabledInt < 0 {
- sql = `SELECT id,
- address,
- remark,
- password,
- max_connect_wait,
- max_status_failed,
- min_memory_free,
- step_memory_increase,
- max_memory_usage,
- max_connection,
- max_evi_increased,
- max_qps,
- mail_list,
- disabled
- FROM rediscfg WHERE disabled>? ORDER BY id`
- } else {
- sql = `SELECT id,
- address,
- remark,
- password,
- max_connect_wait,
- max_status_failed,
- min_memory_free,
- step_memory_increase,
- max_memory_usage,
- max_connection,
- max_evi_increased,
- max_qps,
- mail_list,
- disabled
- FROM rediscfg WHERE disabled=? ORDER BY id`
- }
- result, err := m.db.Query(sql, disabledInt)
- if err != nil {
- return nil, err
- }
- rows := make([]*RedisCfgRow, 0)
- for result.Next() {
- row := RedisCfgRow{}
- err = result.Scan(
- &row.Id,
- &row.Address,
- &row.Remark,
- &row.Password,
- &row.MaxConnectWait,
- &row.MaxStatusFailed,
- &row.MinMemoryFree,
- &row.StepMemoryIncrease,
- &row.MaxMemoryUsage,
- &row.MaxConnection,
- &row.MaxEviIncreased,
- &row.MaxQPS,
- &row.MailList,
- &row.Disabled,
- )
- if err != nil {
- continue
- }
- rows = append(rows, &row)
- }
- return rows, nil
- }
|