Files

98 lines
2.7 KiB
Go
Raw Normal View History

2021-12-02 09:06:15 +08:00
package settled
import (
"SciencesServer/app/api/enterprise/model"
"SciencesServer/app/basic/config"
model2 "SciencesServer/app/common/model"
2022-01-27 17:12:41 +08:00
"SciencesServer/app/service"
2021-12-02 15:23:48 +08:00
"SciencesServer/app/session"
2022-01-27 17:12:41 +08:00
config2 "SciencesServer/config"
2021-12-02 09:06:15 +08:00
"errors"
2021-12-02 15:23:48 +08:00
"gorm.io/gorm"
"time"
2021-12-02 09:06:15 +08:00
)
2021-12-02 15:23:48 +08:00
// TODO入驻流程
// 2021-12-02
// 一:
2021-12-02 09:06:15 +08:00
// BasicParams 基本信息
type BasicParams struct {
2022-01-27 17:12:41 +08:00
ID uint64
2021-12-02 18:05:53 +08:00
Name, Image, Code, Mobile, Introduce string
2021-12-02 09:06:15 +08:00
config.Area
Industrys, Keywords []string
}
// filter 筛选信息
2021-12-02 15:23:48 +08:00
func (c *BasicParams) filter(identity int, where ...*model2.ModelWhere) error {
2021-12-02 09:06:15 +08:00
mSysIdentity := model.NewSysIdentity()
2021-12-02 15:23:48 +08:00
_, err := model2.FirstField(mSysIdentity.SysIdentity, []string{"id", "register_count"}, model2.NewWhere("identity", identity))
2021-12-02 09:06:15 +08:00
if err != nil {
2021-12-02 15:23:48 +08:00
return err
2021-12-02 09:06:15 +08:00
}
var iModel model2.IModel
if identity&config.TenantUserIdentityForCompany > 0 {
iModel = model2.NewUserCompany()
} else if identity&config.TenantUserIdentityForExpert > 0 {
iModel = model2.NewUserExpert()
} else if identity&config.TenantUserIdentityForResearch > 0 {
iModel = model2.NewUserResearch()
} else if identity&config.TenantUserIdentityForLaboratory > 0 {
iModel = model2.NewUserLaboratory()
} else if identity&config.TenantUserIdentityForAgent > 0 {
iModel = model2.NewUserAgent()
}
var count int64
where = append(where, model2.NewWhere("status", model2.InvalidStatusForNot))
if err = model2.Count(iModel, &count, where...); err != nil {
2021-12-02 15:23:48 +08:00
return err
2021-12-02 09:06:15 +08:00
}
if count >= int64(mSysIdentity.RegisterCount) {
2021-12-02 15:23:48 +08:00
return errors.New("操作错误,已超过当前身份最大入驻人数")
}
return nil
}
// fillIdentity 填充身份信息
2022-01-27 17:12:41 +08:00
func (c *BasicParams) fillIdentity(tx *gorm.DB, _session *session.Enterprise, identity int) error {
if _session.SelectIdentity <= 0 {
_session.SelectIdentity = identity
2021-12-02 15:23:48 +08:00
}
2022-01-27 17:12:41 +08:00
_session.Identity = _session.Identity | identity
2021-12-02 15:23:48 +08:00
mUserInstance := model.NewUserInstance()
err := model2.UpdatesWhere(mUserInstance.UserInstance, map[string]interface{}{
2022-01-27 17:12:41 +08:00
"identity": _session.Identity, "updated_at": time.Now(),
}, []*model2.ModelWhere{model2.NewWhere("uuid", _session.UID)}, tx)
2021-12-02 15:23:48 +08:00
if err != nil {
return err
2021-12-02 09:06:15 +08:00
}
2021-12-02 15:23:48 +08:00
mUserIdentity := model.NewUserIdentity()
2022-01-27 17:12:41 +08:00
var count int64
if err = model2.Count(mUserIdentity.UserIdentity, &count, model2.NewWhere("uid", _session.UID)); err != nil {
return err
}
if count <= 0 {
mUserIdentity.IsSelected = model2.UserIdentitySelectedForYes
}
mUserIdentity.UID = _session.UID
mUserIdentity.Name = _session.Name
2021-12-02 15:23:48 +08:00
mUserIdentity.Identity = identity
2022-01-27 17:12:41 +08:00
if err = model2.Create(mUserIdentity.UserIdentity, tx); err != nil {
return err
}
service.Publish(config2.EventForRedisHashProduce, config2.RedisKeyForAccountEnterprise, _session.GetStringUID(), _session)
return nil
2021-12-02 09:06:15 +08:00
}