package user import ( "SciencesServer/app/api/enterprise/model" "SciencesServer/app/basic/controller" model2 "SciencesServer/app/common/model" "SciencesServer/app/session" "SciencesServer/serve/orm" "errors" "gorm.io/gorm" "time" ) type Patent struct { *session.Enterprise local string } type PatentHandle func(session *session.Enterprise, local string) *Patent type ( // PatentParams 专利参数信息 PatentParams struct { ID uint64 Title string } ) func (c *PatentParams) add() error { return nil } func (c *PatentParams) edit() error { return nil } func (c *Patent) List(kind int, title, applyCode, openCode, ipcCode string, page, pageSize int) (*controller.ReturnPages, error) { return &controller.ReturnPages{ Data: nil, Count: 0, }, nil } func (c *Patent) Form(params *PatentParams) error { if params.ID <= 0 { return params.add() } return params.edit() } // Shelf 上下架操作 func (c *Patent) Shelf(id uint64, status int) error { mUserPatent := model.NewUserPatent() mUserPatent.ID = id isExist, err := model2.FirstField(mUserPatent.UserPatent, []string{"id", "uid", "patent_id"}) if err != nil { return err } else if !isExist { return errors.New("操作错误,用户专利信息不存在或已被删除") } else if mUserPatent.UID != c.UID { return errors.New("无权限操作") } mSysPatent := model.NewSysPatent() mSysPatent.ID = mUserPatent.PatentID return model2.Updates(mSysPatent.SysPatent, map[string]interface{}{ "shelf": status, "updated_at": time.Now(), }) } // Delete 删除操作 func (c *Patent) Delete(id uint64) error { mUserPatent := model.NewUserPatent() mUserPatent.ID = id isExist, err := model2.FirstField(mUserPatent.UserPatent, []string{"id", "uid", "patent_id"}) if err != nil { return err } else if !isExist { return errors.New("操作错误,用户专利信息不存在或已被删除") } else if mUserPatent.UID != c.UID { return errors.New("无权限操作") } return orm.GetDB().Transaction(func(tx *gorm.DB) error { if err = model2.Delete(mUserPatent.UserPatent); err != nil { return err } mSysPatent := model.NewSysPatent() mSysPatent.ID = mUserPatent.PatentID return model2.Delete(mSysPatent.SysPatent) }) } func NewPatent() PatentHandle { return func(session *session.Enterprise, local string) *Patent { return &Patent{ Enterprise: session, local: local, } } }