73 lines
2.5 KiB
Go
73 lines
2.5 KiB
Go
package service
|
|
|
|
import (
|
|
"go-common/app/admin/main/reply/model"
|
|
"go-common/library/log"
|
|
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
func (s *Service) addAdminLog(c context.Context, oid, rpID, adminID int64, typ, isNew, isReport, state int32, result, remark string, now time.Time) (err error) {
|
|
rpMap := map[int64]*model.Reply{rpID: &model.Reply{
|
|
Oid: oid,
|
|
ID: rpID,
|
|
}}
|
|
return s.addAdminLogs(c, rpMap, adminID, typ, isNew, isReport, state, result, remark, now)
|
|
}
|
|
|
|
func (s *Service) addAdminIDLogs(c context.Context, oids []int64, rpIDs []int64, adminID int64, typ, isNew, isReport, state int32, result, remark string, now time.Time) (err error) {
|
|
if _, err = s.dao.UpAdminNotNew(c, rpIDs, now); err != nil {
|
|
log.Error("s.dao.UpAdminNotNew(%v) error(%v)", rpIDs, err)
|
|
}
|
|
if _, err = s.dao.AddAdminLog(c, oids, rpIDs, adminID, typ, isNew, isReport, state, result, remark, now); err != nil {
|
|
log.Error("s.dao.AddAdminLog(admin:%d, oid:%v rpID:%v type:%d result:%s remark:%s isReport:%d state:%d) error(%v)", adminID, oids, rpIDs, typ, result, remark, isReport, state, err)
|
|
}
|
|
return
|
|
}
|
|
|
|
func (s *Service) addAdminLogs(c context.Context, rps map[int64]*model.Reply, adminID int64, typ, isNew, isReport, state int32, result, remark string, now time.Time) (err error) {
|
|
if len(rps) == 0 {
|
|
return
|
|
}
|
|
rpIDs := make([]int64, 0, len(rps))
|
|
oids := make([]int64, 0, len(rps))
|
|
for _, rp := range rps {
|
|
rpIDs = append(rpIDs, rp.ID)
|
|
oids = append(oids, rp.Oid)
|
|
}
|
|
if _, err = s.dao.UpAdminNotNew(c, rpIDs, now); err != nil {
|
|
log.Error("s.dao.UpAdminNotNew(%v) error(%v)", rpIDs, err)
|
|
}
|
|
if _, err = s.dao.AddAdminLog(c, oids, rpIDs, adminID, typ, isNew, isReport, state, result, remark, now); err != nil {
|
|
log.Error("s.dao.AddAdminLog(admin:%d, oid:%v rpID:%v type:%d result:%s remark:%s isReport:%d state:%d) error(%v)", adminID, oids, rpIDs, typ, result, remark, isReport, state, err)
|
|
}
|
|
return
|
|
}
|
|
|
|
// ReplyAdminLog ReplyAdminLog
|
|
type ReplyAdminLog struct {
|
|
model.AdminLog
|
|
AdminName string `json:"admin_name"`
|
|
}
|
|
|
|
// LogsByRpID get log by reply id.
|
|
func (s *Service) LogsByRpID(c context.Context, rpID int64) (res []ReplyAdminLog, err error) {
|
|
var resDao []*model.AdminLog
|
|
res = []ReplyAdminLog{}
|
|
if resDao, err = s.dao.AdminLogsByRpID(c, rpID); err != nil {
|
|
log.Error("s.dao.AdminLogsByRpID(%d) error(%v)", rpID, err)
|
|
return
|
|
}
|
|
admins := map[int64]string{}
|
|
for _, data := range resDao {
|
|
admins[data.AdminID] = ""
|
|
res = append(res, ReplyAdminLog{*data, ""})
|
|
}
|
|
s.dao.AdminName(c, admins)
|
|
for i := range res {
|
|
res[i].AdminName = admins[res[i].AdminID]
|
|
}
|
|
return
|
|
}
|