package sys import ( "SciencesServer/app/api/admin/model" "SciencesServer/app/basic/controller" model2 "SciencesServer/app/common/model" "SciencesServer/app/session" "errors" ) type Agreement struct { *session.Admin } type AgreementHandle func(session *session.Admin) *Agreement type ( // AgreementInfo 协议信息 AgreementInfo struct { ID string `json:"id"` TenantID string `json:"tenant_id"` Area string `json:"area"` *model2.SysAgreement } // AgreementDetailInfo 协议详细信息 AgreementDetailInfo struct { ID string `json:"id"` TenantID string `json:"tenant_id"` *model2.SysAgreement } // AgreementParams 协议参数信息 AgreementParams struct { ID, TenantID uint64 Title, Content string Status int } ) // Instance 首页信息 func (c *Agreement) Instance(tenantID uint64, title string, page, pageSize int) (*controller.ReturnPages, error) { mSysAgreement := model.NewSysAgreement() where := make([]*model2.ModelWhere, 0) if c.TenantID > 0 { where = append(where, model2.NewWhere("s.tenant_id", c.TenantID)) } if tenantID > 0 { where = append(where, model2.NewWhere("s.tenant_id", tenantID)) } if title != "" { where = append(where, model2.NewWhereLike("s.title", title)) } var count int64 out, err := mSysAgreement.Agreement(page, pageSize, &count, where...) if err != nil { return nil, err } list := make([]*AgreementInfo, 0) for _, v := range out { list = append(list, &AgreementInfo{ ID: v.GetEncodeID(), TenantID: v.GetEncodeTenantID(), Area: v.FormatBasic(), SysAgreement: v.SysAgreement, }) } return &controller.ReturnPages{Data: list, Count: count}, nil } // Detail 详细信息 func (c *Agreement) Detail(id uint64) (*AgreementDetailInfo, error) { mSysAgreement := model.NewSysAgreement() mSysAgreement.ID = id isExist, err := model2.FirstField(mSysAgreement.SysAgreement, []string{"id", "tenant_id"}) if err != nil { return nil, err } else if !isExist { return nil, errors.New("操作错误,协议信息不存在或已被删除") } return &AgreementDetailInfo{ ID: mSysAgreement.GetEncodeID(), TenantID: mSysAgreement.GetEncodeTenantID(), SysAgreement: mSysAgreement.SysAgreement, }, nil } func (c *Agreement) Form(params *AgreementParams) error { mSysAgreement := model.NewSysAgreement() if params.ID > 0 { mSysAgreement.ID = params.ID isExist, err := model2.FirstField(mSysAgreement.SysAgreement, []string{"id", "tenant_id", "created_at"}) if err != nil { return err } else if !isExist { return errors.New("操作错误,协议信息不存在或已被删除") } if c.TenantID > 0 && c.TenantID != mSysAgreement.TenantID { return errors.New("操作错误,无权限操作") } } mSysAgreement.Title = params.Title mSysAgreement.Content = params.Content mSysAgreement.Status = model2.SysAgreementStatus(params.Status) if mSysAgreement.ID > 0 { if c.TenantID <= 0 { mSysAgreement.TenantID = params.TenantID } return model2.Updates(mSysAgreement.SysAgreement, mSysAgreement.SysAgreement) } mSysAgreement.TenantID = params.TenantID if c.TenantID > 0 { mSysAgreement.TenantID = c.TenantID } return model2.Create(mSysAgreement.SysAgreement) } // Delete 删除操作 func (c *Agreement) Delete(id uint64) error { mSysAgreement := model.NewSysAgreement() mSysAgreement.ID = id isExist, err := model2.FirstField(mSysAgreement.SysAgreement, []string{"id", "tenant_id"}) if err != nil { return err } else if !isExist { return errors.New("操作错误,协议信息不存在或已被删除") } if c.TenantID > 0 && mSysAgreement.TenantID != c.TenantID { return errors.New("操作错误,无权限操作") } return model2.Delete(mSysAgreement.SysAgreement) } func NewAgreement() AgreementHandle { return func(session *session.Admin) *Agreement { return &Agreement{session} } }