go-common/app/interface/main/creative/dao/archive/staff.go
2019-04-22 18:49:16 +08:00

64 lines
1.4 KiB
Go

package archive
import (
"context"
"go-common/app/interface/main/creative/model/archive"
"go-common/library/database/sql"
"go-common/library/log"
)
const (
_staffCountSQL = "SELECT count(*) as count FROM archive_staff_apply WHERE apply_staff_mid=? AND deal_state = 1"
_staffSQL = "SELECT id,aid,mid,staff_mid,staff_title FROM archive_staff WHERE aid=? AND state = 1"
)
// RawStaffData get staff data from db
func (d *Dao) RawStaffData(c context.Context, aid int64) (res []*archive.Staff, err error) {
rows, err := d.db.Query(c, _staffSQL, aid)
if err != nil {
log.Error("mysqlDB.Query error(%v)", err)
return
}
defer rows.Close()
res = make([]*archive.Staff, 0)
res = append(res, &archive.Staff{AID: aid})
var mid int64
for rows.Next() {
v := &archive.Staff{}
if err = rows.Scan(&v.ID, &v.AID, &v.MID, &v.StaffMID, &v.StaffTitle); err != nil {
log.Error("row.Scan error(%v)", err)
res = res[0:0]
return
}
res = append(res, v)
mid = v.MID
}
if len(res) == 1 {
return res[0:0], nil
}
for _, v := range res {
if v.MID == 0 {
v.MID = mid
v.StaffMID = mid
v.StaffTitle = "UP"
break
}
}
return
}
// CountByMID .
func (d *Dao) CountByMID(c context.Context, mid int64) (count int, err error) {
row := d.db.QueryRow(c, _staffCountSQL, mid)
if err = row.Scan(&count); err != nil {
if err == sql.ErrNoRows {
err = nil
} else {
log.Error("row.Scan error(%v)", err)
}
}
return
}