go-common/app/interface/main/activity/dao/like/mission_group.go
2019-04-22 18:49:16 +08:00

70 lines
2.0 KiB
Go

package like
import (
"context"
"database/sql"
"fmt"
l "go-common/app/interface/main/activity/model/like"
"go-common/library/xstr"
"github.com/pkg/errors"
)
const (
_likeMissionBuffSQL = "select id from like_mission_group where sid = ? and mid = ?"
_likeMissionAddSQL = "insert into like_mission_group (`sid`,`mid`,`state`) values (?,?,?)"
_likeMissionGroupSQL = "select id,sid,mid,state,ctime,mtime from like_mission_group where id in (%s)"
// MissionStateInit the init state
MissionStateInit = 0
)
// RawLikeMissionBuff get mid has .
func (d *Dao) RawLikeMissionBuff(c context.Context, sid, mid int64) (ID int64, err error) {
res := &l.MissionGroup{}
row := d.db.QueryRow(c, _likeMissionBuffSQL, sid, mid)
if err = row.Scan(&res.ID); err != nil {
if err == sql.ErrNoRows {
err = nil
} else {
err = errors.Wrap(err, "RawLikeMissionBuff:QueryRow")
return
}
}
ID = res.ID
return
}
// MissionGroupAdd add like_mission_group data .
func (d *Dao) MissionGroupAdd(c context.Context, group *l.MissionGroup) (misID int64, err error) {
var res sql.Result
if res, err = d.db.Exec(c, _likeMissionAddSQL, group.Sid, group.Mid, group.State); err != nil {
err = errors.Wrapf(err, "d.db.Exec(%s)", _likeMissionAddSQL)
return
}
return res.LastInsertId()
}
// RawMissionGroupItems get mission_group item by ids.
func (d *Dao) RawMissionGroupItems(c context.Context, lids []int64) (res map[int64]*l.MissionGroup, err error) {
res = make(map[int64]*l.MissionGroup, len(lids))
rows, err := d.db.Query(c, fmt.Sprintf(_likeMissionGroupSQL, xstr.JoinInts(lids)))
if err != nil {
err = errors.Wrapf(err, "d.db.Query(%s)", _likeMissionGroupSQL)
return
}
defer rows.Close()
for rows.Next() {
n := &l.MissionGroup{}
if err = rows.Scan(&n.ID, &n.Sid, &n.Mid, &n.State, &n.Ctime, &n.Mtime); err != nil {
err = errors.Wrapf(err, "d.db.Scan(%s)", _likeMissionGroupSQL)
return
}
res[n.ID] = n
}
if err = rows.Err(); err != nil {
err = errors.Wrap(err, "RawMissionGroupItem:rows.Err()")
}
return
}