You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.6 KiB
89 lines
2.6 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"fmt" |
|
|
|
"go-common/app/job/main/growup/model" |
|
"go-common/library/log" |
|
) |
|
|
|
const ( |
|
// list av_breach_record |
|
_avBreachRecordSQL = "SELECT id,av_id,mid,money,cdate,reason FROM av_breach_record WHERE cdate >= '%s' AND cdate <= '%s'" |
|
_avBreachPreSQL = "SELECT aid,mid FROM av_breach_pre WHERE cdate = '%s' AND ctype = ? AND state = ?" |
|
|
|
// insert |
|
_inAvBreachPreSQL = "INSERT INTO av_breach_pre(aid, mid, cdate, ctype, state) VALUES(%s) ON DUPLICATE KEY UPDATE state=VALUES(state)" |
|
|
|
// update |
|
_upAvBreachPresSQL = "UPDATE av_breach_pre SET state = ? WHERE aid = ? AND ctype = ? AND cdate >= '%s' AND state = 1" |
|
) |
|
|
|
// GetAvBreach get av_breach by date |
|
func (d *Dao) GetAvBreach(c context.Context, start, end string) (avs []*model.AvBreach, err error) { |
|
avs = make([]*model.AvBreach, 0) |
|
rows, err := d.db.Query(c, fmt.Sprintf(_avBreachRecordSQL, start, end)) |
|
if err != nil { |
|
log.Error("GetAvBreach d.db.Query error(%v)", err) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
list := &model.AvBreach{} |
|
err = rows.Scan(&list.ID, &list.AvID, &list.MID, &list.Money, &list.Date, &list.Reason) |
|
if err != nil { |
|
log.Error("GetAvBreach rows scan error(%v)", err) |
|
return |
|
} |
|
avs = append(avs, list) |
|
} |
|
|
|
err = rows.Err() |
|
return |
|
} |
|
|
|
// GetAvBreachPre get av breach pre by date and state |
|
func (d *Dao) GetAvBreachPre(c context.Context, ctype, state int, cdate string) (avs []*model.AvBreach, err error) { |
|
avs = make([]*model.AvBreach, 0) |
|
rows, err := d.db.Query(c, fmt.Sprintf(_avBreachPreSQL, cdate), ctype, state) |
|
if err != nil { |
|
log.Error("GetAvBreachPre d.db.Query error(%v)", err) |
|
return |
|
} |
|
defer rows.Close() |
|
for rows.Next() { |
|
list := &model.AvBreach{} |
|
err = rows.Scan(&list.AvID, &list.MID) |
|
if err != nil { |
|
log.Error("GetAvBreachPre rows scan error(%v)", err) |
|
return |
|
} |
|
avs = append(avs, list) |
|
} |
|
err = rows.Err() |
|
return |
|
} |
|
|
|
// InsertAvBreachPre insert into av_breach_pre |
|
func (d *Dao) InsertAvBreachPre(c context.Context, val string) (rows int64, err error) { |
|
if val == "" { |
|
return |
|
} |
|
res, err := d.db.Exec(c, fmt.Sprintf(_inAvBreachPreSQL, val)) |
|
if err != nil { |
|
log.Error("InsertAvBreachPre(%s) tx.Exec error(%v)", val, err) |
|
return |
|
} |
|
return res.RowsAffected() |
|
} |
|
|
|
// UpdateAvBreachPre update av breach pre |
|
func (d *Dao) UpdateAvBreachPre(c context.Context, aid, ctype int64, date string, state int) (rows int64, err error) { |
|
res, err := d.db.Exec(c, fmt.Sprintf(_upAvBreachPresSQL, date), state, aid, ctype) |
|
if err != nil { |
|
log.Error("UpdateAvBreachPre tx.Exec error(%v)", err) |
|
return |
|
} |
|
return res.RowsAffected() |
|
}
|
|
|