feat:完善信息

This commit is contained in:
henry
2021-10-09 17:32:23 +08:00
parent af44287b4a
commit 0dd46c0c9d
10 changed files with 199 additions and 5 deletions

View File

@ -9,10 +9,9 @@ type Area struct {
}
type (
// IdentityForCompany 公身份信息
// IdentityForCompany 公司附加信息
IdentityForCompany struct {
Name string `json:"name"` // 公司企业名称
Code string `json:"code"` // 企业代码
Area
Industry uint64 `json:"industry"`
Keywords []string `json:"keywords"`
}
)

View File

@ -66,6 +66,23 @@ const (
AccountStatusForDisable
)
// ExamineStatus 审核状态
type ExamineStatus struct {
Status ExamineStatusKind `gorm:"column:status;type:tinyint(1);default:0;comment:审核状态0审核中1审核通过2审核拒绝" json:"status"`
}
// ExamineStatusKind 审核状态
type ExamineStatusKind int
const (
// ExamineStatusForOngoing 审核中
ExamineStatusForOngoing ExamineStatusKind = iota
// ExamineStatusForAgree 审核通过
ExamineStatusForAgree
// ExamineStatusForRefuse 审核拒绝
ExamineStatusForRefuse
)
type Area struct {
Province uint64 `gorm:"column:province;type:int;default:0;comment:所在省" json:"province"`
City uint64 `gorm:"column:city;type:int;default:0;comment:所在市" json:"city"`

View File

@ -0,0 +1,37 @@
package model
import "SciencesServer/utils"
// ManageCompany 公司企业管理
type ManageCompany struct {
Model
UID uint64 `gorm:"column:uid;type:int;default:0;comment:用户uuid" json:"-"`
Name string `gorm:"column:name;type:varchar(30);default:null;comment:名称" json:"name"`
Code string `gorm:"column:code;type:varchar(30);default:null;comment:信用代码" json:"code"`
Image
Area
Industry uint64 `gorm:"column:industry;type:int(11);default:0;comment:行业领域" json:"industry"`
Keyword string `gorm:"column:keyword;type:varchar(255);default:null;comment:关键词" json:"keyword"`
Introduce string `gorm:"column:introduce;type:text;comment:介绍描述" json:"introduce"`
ExamineStatus
ModelDeleted
ModelAt
}
func (m *ManageCompany) TableName() string {
return "manage_company"
}
func (m *ManageCompany) GetKeywordAttribute() []string {
keywords := make([]string, 0)
_ = utils.FromJSON(m.Keyword, &keywords)
return keywords
}
func (m *ManageCompany) SetKeywordAttribute(keywords []string) {
m.Keyword = utils.AnyToJSON(keywords)
}
func NewManageCompany() *ManageCompany {
return &ManageCompany{}
}

View File

@ -3,7 +3,7 @@ package model
type UserTenant struct {
Model
ModelTenant
UID uint64 `gorm:"column:uid;index:idx_tenant_user_uuid;type:int;default:0;comment:用户表UUID" json:"-"`
UID uint64 `gorm:"column:uid;index:idx_user_tenant_uid;type:int;default:0;comment:用户表UUID" json:"-"`
Avatar string `gorm:"column:avatar;type:varchar(255);default:null;comment:头像" json:"avatar"`
Name string `gorm:"column:name;type:varchar(20);default:null;comment:真实姓名" json:"name"`
Email string `gorm:"column:email;type:varchar(50);default:null;comment:邮箱" json:"email"`

View File

@ -0,0 +1,19 @@
package api
import (
"SciencesServer/app/basic/api"
"SciencesServer/app/enterprise/controller/tenant"
"SciencesServer/app/service"
"github.com/gin-gonic/gin"
)
type Tenant struct{}
func (a *Tenant) SettledCompany(c *gin.Context) {
err := tenant.NewSettled()(api.GetSession()(c).(*service.SessionEnterprise)).Company(nil, nil)
api.APIResponse(err)(c)
}
func (a *Tenant) SettledExpert(c *gin.Context) {
}

View File

@ -69,6 +69,7 @@ func (c *Paper) Form(params *PaperParams) error {
return errors.New("无权限操作")
}
}
mTechnologyPaper.UID = c.UID
mTechnologyPaper.Title = params.Title
mTechnologyPaper.Ext = params.Ext
mTechnologyPaper.Author = params.Author

View File

@ -0,0 +1 @@
package tenant

View File

@ -0,0 +1,98 @@
package tenant
import (
"SciencesServer/app/basic/config"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/enterprise/model"
"SciencesServer/app/service"
"errors"
)
// Settled 入驻
type Settled struct{ *service.SessionEnterprise }
type SettledHandle func(enterprise *service.SessionEnterprise) *Settled
type SettledParams struct {
ID uint64
Image string // logo图片
Name string // 名称
Code string // 唯一编码
config.Area
Introduce string `json:"introduce"`
}
func (c *SettledParams) effect(uid uint64, iModel model2.IModel) error {
if c.ID <= 0 {
var count int64
if err := model2.Count(iModel, &count, model2.NewWhere("uid", uid)); err != nil {
return err
} else if count > 0 {
return errors.New("无权限操作,当前身份下已含有申请入驻信息")
}
return nil
}
if isExist, err := model2.FirstField(iModel, []string{"id", "uid", "status"}, model2.NewWhere("id", c.ID)); err != nil {
return err
} else if !isExist {
return errors.New("无权限操作,未知的入驻信息")
}
return nil
}
// Company 公司企业
func (c *Settled) Company(params *SettledParams, other *config.IdentityForCompany) error {
mManageCompany := model.NewManageCompany()
err := params.effect(c.UID, mManageCompany.ManageCompany)
if err != nil {
return err
}
mManageCompany.Name = params.Name
mManageCompany.Code = params.Code
mManageCompany.Image = model2.Image{Image: params.Image}
mManageCompany.Area = model2.Area{
Province: params.Area.Province, City: params.Area.City, District: params.Area.District, Address: params.Area.Address,
}
mManageCompany.Industry = other.Industry
mManageCompany.SetKeywordAttribute(other.Keywords)
mManageCompany.Introduce = params.Introduce
if mManageCompany.ID <= 0 {
return model2.Create(mManageCompany.ManageCompany)
}
if mManageCompany.UID != c.UID {
return errors.New("异常,无权限操作")
} else if mManageCompany.Status != model2.ExamineStatusForRefuse {
return errors.New("操作错误,不允许操作")
}
return model2.Updates(mManageCompany.ManageCompany, mManageCompany.ManageCompany)
}
// Expert 专家
func (c *Settled) Expert() {
}
// Research 研究机构
func (c *Settled) Research() {
}
// Laboratory 实验室
func (c *Settled) Laboratory() {
}
// Agent 经纪人
func (c *Settled) Agent() {
}
func NewSettled() SettledHandle {
return func(enterprise *service.SessionEnterprise) *Settled {
return &Settled{enterprise}
}
}

View File

@ -0,0 +1,11 @@
package model
import "SciencesServer/app/common/model"
type ManageCompany struct {
*model.ManageCompany
}
func NewManageCompany() *ManageCompany {
return &ManageCompany{}
}

View File

@ -0,0 +1,11 @@
package model
import "SciencesServer/app/common/model"
type SysTenant struct {
*model.SysTenant
}
func NewSysTenant() *SysTenant {
return &SysTenant{model.NewSysTenant()}
}