package manage import ( "SciencesServer/app/api/enterprise/model" "SciencesServer/app/basic/controller" model2 "SciencesServer/app/common/model" "SciencesServer/app/session" "errors" ) // Enterprise 企业管理信息 type Enterprise struct { *session.Enterprise local string } type EnterpriseHandle func(session *session.Enterprise, local string) *Enterprise type ( // EnterpriseInfo 企业信息 EnterpriseInfo struct { ID string `json:"id"` *model.UserCooperateEnterpriseInfo Papers []string `json:"papers"` Patents []string `json:"patents"` } // EnterpriseParams 企业参数信息 EnterpriseParams struct { ID uint64 Mode int Title, Name, Mobile string Papers, Patents []uint64 Content string } ) // List 列表信息 func (c *Enterprise) List(mode int, title string, page, pageSize int) (*controller.ReturnPages, error) { mUserCooperateEnterprise := model.NewUserCooperateEnterprise() where := []*model2.ModelWhere{ model2.NewWhere("mode", mode), model2.NewWhere("local", c.local), model2.NewWhere("uid", c.UID), } if title != "" { where = append(where, model2.NewWhereLike("title", title)) } var count int64 out, err := mUserCooperateEnterprise.Enterprise(page, pageSize, &count, where...) if err != nil { return nil, err } list := make([]*EnterpriseInfo, 0) for _, v := range out { list = append(list, &EnterpriseInfo{ ID: v.GetEncodeID(), UserCooperateEnterpriseInfo: v, Papers: v.GetPaperAttribute(), Patents: v.GetPatentAttribute(), }) } return &controller.ReturnPages{Data: list, Count: count}, nil } // Form 数据操作 func (c *Enterprise) Form(params *EnterpriseParams) error { mUserCooperateEnterprise := model.NewUserCooperateEnterprise() if params.ID > 0 { mUserCooperateEnterprise.ID = params.ID isExist, err := model2.FirstField(mUserCooperateEnterprise.UserCooperateEnterprise, []string{"id", "uid", "created_at"}) if err != nil { return err } else if !isExist { return errors.New("操作错误,企业信息不存在或已被删除") } else if mUserCooperateEnterprise.UID != c.UID { return errors.New("无权限操作") } } mUserCooperateEnterprise.Title = params.Title mUserCooperateEnterprise.Mode = model2.UserCooperateEnterpriseMode(params.Mode) // 已合作信息 if mUserCooperateEnterprise.Mode == model2.UserCooperateEnterpriseModeForCooperateAlready { mUserCooperateEnterprise.SetPaperAttribute(params.Papers) mUserCooperateEnterprise.SetPatentAttribute(params.Patents) // 想合作信息 } else if mUserCooperateEnterprise.Mode == model2.UserCooperateEnterpriseModeForCooperateToWant { mUserCooperateEnterprise.Name = params.Name mUserCooperateEnterprise.Mobile = params.Mobile mUserCooperateEnterprise.Content = params.Content } if mUserCooperateEnterprise.ID > 0 { return model2.Updates(mUserCooperateEnterprise.UserCooperateEnterprise, mUserCooperateEnterprise.UserCooperateEnterprise) } return model2.Create(mUserCooperateEnterprise.UserCooperateEnterprise) } // Delete 删除操作 func (c *Enterprise) Delete(id uint64) error { mUserCooperateEnterprise := model.NewUserCooperateEnterprise() mUserCooperateEnterprise.ID = id isExist, err := model2.FirstField(mUserCooperateEnterprise.UserCooperateEnterprise, []string{"id", "uid", "created_at"}) if err != nil { return err } else if !isExist { return errors.New("操作错误,企业信息不存在或已被删除") } else if mUserCooperateEnterprise.UID != c.UID { return errors.New("无权限操作") } return model2.Delete(mUserCooperateEnterprise.UserCooperateEnterprise) } func NewEnterprise() EnterpriseHandle { return func(session *session.Enterprise, local string) *Enterprise { return &Enterprise{Enterprise: session, local: local} } }