package service import ( "dashoo.cn/micro_libary/request" "github.com/gogf/gf/util/gconv" "lims_reservation/dao" "lims_reservation/model" ) // MeetingService 会议室服务 type MeetingService struct { Dao *dao.MeetingDao } // NewSrv 服务初始化 func NewSrv(tenant string) MeetingService { return MeetingService{dao.NewMeetingDao(tenant)} } // List 会议室列表 func (m MeetingService) List(req model.ListReq) ([]model.Meeting, error) { entityModel := m.Dao.M if req.Entity != nil { if entity, ok := req.Entity.(model.MeetingReq); ok { if entity.Name != "" { entityModel = entityModel.WhereLike(m.Dao.Columns.Name, "%"+entity.Name+"%") } if entity.Code != "" { entityModel = entityModel.WhereLike(m.Dao.Columns.Code, "%"+entity.Code+"%") } if entity.Scale != 0 { entityModel = entityModel.Where(m.Dao.Columns.Scale, entity.Scale) } if entity.Location != "" { entityModel = entityModel.WhereLike(m.Dao.Columns.Location, "%"+entity.Location+"%") } } } if req.Value != "" { entityModel = entityModel.Order(req.Value, req.Type) } res, err := entityModel.Page(req.Current, req.Size).FindAll() if err != nil { return nil, err } if res.IsEmpty() { return nil, nil } list := make([]model.Meeting, 0) res.Structs(&list) return list, nil } func (m MeetingService) Add(userInfo request.UserInfo, req model.MeetingReq) error { entity := new(model.Meeting) // 唯一校验 count, err := m.Dao.M.Fields(m.Dao.Columns.Id).Where(m.Dao.Columns.Name, req.Name).FindCount() if err != nil { return err } if count > 0 { return NameExistsErr } count, err = m.Dao.M.Fields(m.Dao.Columns.Id).Where(m.Dao.Columns.Code, req.Code).FindCount() if err != nil { return err } if count > 0 { return CodeExistsErr } gconv.Struct(req, entity) SetCreate(&userInfo, entity) _, err = m.Dao.M.Insert(entity) if err != nil { return err } return nil } func (m MeetingService) Update(userInfo request.UserInfo, req model.MeetingReq) error { entity := new(model.Meeting) // 唯一校验 count, err := m.Dao.M.Fields(m.Dao.Columns.Id). Where(m.Dao.Columns.Name, req.Name).WhereNot(m.Dao.Columns.Id, req.Id). FindCount() if err != nil { return err } if count > 0 { return NameExistsErr } count, err = m.Dao.M.Fields(m.Dao.Columns.Id). Where(m.Dao.Columns.Code, req.Code).WhereNot(m.Dao.Columns.Id, req.Id). FindCount() if err != nil { return err } if count > 0 { return CodeExistsErr } gconv.Struct(req, entity) SetCreate(&userInfo, entity) _, err = m.Dao.M.WherePri(req.Id).Update(entity) if err != nil { return err } return nil } func (m MeetingService) Get(id int) (*model.Meeting, error) { return m.Dao.WherePri(id).FindOne() } func (m MeetingService) Delete(id int) error { _, err := m.Dao.WherePri(id).Delete() if err != nil { return err } return nil }