70 lines
2.0 KiB
Go
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
|
|
}
|