package duty import ( "dashoo.cn/micro_libary/db" "dashoo.cn/modi_webapi/app/common" "dashoo.cn/modi_webapi/app/model/duty" "database/sql" "github.com/gogf/gf/errors/gerror" "github.com/gogf/gf/os/gtime" ) // DutyService 值班定义 type DutyService struct { db.ServiceBase } // 初始化DutyService func NewDutyService(tenant string) (DutyService, error) { var service DutyService err := service.Init(tenant, duty.Table) return service, err } // 分页查询值班表 func (s DutyService) GetPageList(param *duty.SelectPageReq) (list []*duty.Entity, total int, err error) { model := s.DB.Table(duty.Table) if param != nil { if param.Title != "" { model = model.Where("Title like ?", "%"+param.Title+"%") } if param.Year != 0 { model = model.Where("Year", param.Year) } if param.Term != 0 { model = model.Where("Term", param.Term) } } // 查询总数 total, err = model.Where("isDel", 0).Count() if err != nil { return nil, -1, gerror.New("读取行数失败") } // 排序 orderby := "Id asc" // 默认排序 // 列表查询 model = model.Page(int(param.Common.Page.Current), int(param.Common.Page.PagesSize)).Order(orderby) var result []*duty.Entity err = model.Struct(&result) // 如果未查到列表返回空 if err == sql.ErrNoRows { return nil, 0, nil } return result, total, err } // 新增 func (s DutyService) Add(param *duty.Entity) (id int64, err error) { param.CreatedTime = gtime.Now() if result, err := s.SafeModel.Insert(param); err != nil { return 0, err } else { id, _ = result.LastInsertId() } return id, nil } // 获取详情 func (s DutyService) GetDutyById(id int) (res *duty.Entity, err error) { model := s.SafeModel.Where("Id", id).Where("isDel", 0) var result *duty.Entity err = model.Struct(&result) return result, nil } // 删除 func (s DutyService) DeleteById(Ids *common.DeleteIdsReq, param *common.DeleteUpdReq) error { //设置更新时间 param.UpdatedTime = gtime.Now() // 修改删除状态 param.IsDel = 1 if _, err := s.SafeModel.WherePri(Ids).Update(param); err != nil { return err } return nil } // 更新 func (s DutyService) Save(param *duty.Entity) (*duty.Entity, error) { duty, err := s.GetDutyById(param.Id) if err != nil { return nil, err } // 设置更新时间 param.UpdatedTime = gtime.Now() if _, err = s.SafeModel.Where(param.Id).Update(param); err != nil { return nil, err } return duty, nil }