feat:完善信息,增加socket

This commit is contained in:
henry
2022-01-27 14:50:52 +08:00
parent 0368be6f11
commit 4ae37b9b4d
30 changed files with 325 additions and 92 deletions

View File

@ -88,14 +88,14 @@ func (*Manage) CompanyForm(c *gin.Context) {
func (*Manage) CompanyExamine(c *gin.Context) {
form := &struct {
manageExamineForm
Kind int `json:"kind" form:"kind" binding:"required"`
Kind int `json:"kind" form:"kind"`
}{}
if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c)
return
}
form.Identity = config.TenantUserIdentityForCompany
err := form.handle(api.GetSession()(c).(*session.Admin), map[string]interface{}{"kind": form.Kind})
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
api.APIResponse(err)(c)
}

View File

@ -27,8 +27,9 @@ type (
}
// CompanyDetail 公司企业详细信息
CompanyDetail struct {
ID string `json:"id"`
TenantID string `json:"tenant_id"`
ID string `json:"id"`
TenantID string `json:"tenant_id"`
InvitedCode string `json:"invited_code"`
*model2.ManageCompany
Industrys []*config.Industry `json:"industrys"`
Keywords []string `json:"keywords"`
@ -60,7 +61,7 @@ func (c *Company) Instance(tenantID uint64, name string, status int, page, pageS
}
var count int64
out, err := mManageCompany.Companys(page, pageSize, &count)
out, err := mManageCompany.Companys(page, pageSize, &count, where...)
if err != nil {
return nil, err
@ -117,6 +118,7 @@ func (c *Company) Form(params *BasicParams, other *config.IdentityForCompany) er
}
}
mManageCompany.TenantID = c.TenantID
mManageCompany.Kind = model2.ManageCompanyKind(other.Kind)
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,
@ -172,10 +174,12 @@ func (c *Company) Detail(id uint64) (*CompanyDetail, error) {
return &CompanyDetail{
ID: out.GetEncodeID(),
TenantID: out.GetEncodeTenantID(),
InvitedCode: (&model2.Model{ID: out.InviterID}).GetEncodeID(),
ManageCompany: out.ManageCompany,
Industrys: _industrys,
Keywords: out.GetKeywordAttribute(),
Area: out.FormatBasic(),
Directions: out.GetDirectionAttribute(),
//Area: out.FormatBasic(),
}, nil
}

View File

@ -0,0 +1 @@
package manage

View File

@ -185,12 +185,14 @@ func (c *Examine) Launch(id uint64, identity, status int, remark string, params
}
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
values := map[string]interface{}{
//"examine_status": status,
"examine_status": status,
"examine_remark": remark, "updated_at": time.Now()}
if identity == config.TenantUserIdentityForCompany {
for k, v := range params {
values[k] = v
if params != nil && len(params) > 0 {
if identity == config.TenantUserIdentityForCompany {
for k, v := range params {
values[k] = v
}
}
}
if err = model2.Updates(data.IModel, values, tx); err != nil {

View File

@ -29,7 +29,7 @@ type (
// ManageCompanyDetail 公司企业信息
ManageCompanyDetail struct {
*model.ManageCompany
model.Area
//model.Area
}
)
@ -37,7 +37,7 @@ type (
func (m *ManageCompany) Company(id uint64) (*ManageCompanyDetail, error) {
db := orm.GetDB().Table(m.TableName()+" AS c").
Select("c.*").
Joins(fmt.Sprintf("LEFT JOIN %s AS t ON c.tenant_id = t.id", model.NewSysTenant().TableName())).
//Joins(fmt.Sprintf("LEFT JOIN %s AS t ON c.tenant_id = t.id", model.NewSysTenant().TableName())).
Where("c.id = ?", id)
out := new(ManageCompanyDetail)

View File

@ -51,7 +51,7 @@ func (c *Instance) Login() InstanceLoginCallback {
_session.Identity = params.Identity
_session.SelectIdentity = params.SelectIdentity
service.Publish(config.EventForRedisHashProduce, config.RedisKeyForAccountEnterprise, _session.UIDToString(), _session)
service.Publish(config.EventForRedisHashProduce, config.RedisKeyForAccountEnterprise, _session.GetStringUID(), _session)
return &InstanceLoginReturn{Token: token, TokenEffectTime: utils.StringToInt(config.SystemConfig[config.SysTokenEffectTime])}
}

View File

@ -4,7 +4,6 @@ import (
"SciencesServer/app/api/enterprise/model"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/handle"
"SciencesServer/config"
"SciencesServer/serve/orm"
"SciencesServer/utils"
"errors"
@ -99,7 +98,7 @@ func loginForSmsCaptcha(params *LoginParams, tenantID uint64) (*InstanceLoginPar
RETURNS:
return &InstanceLoginParams{
UID: mUserInstance.UUID,
Avatar: mUserInstance.GetAvatarAttribute(config.SystemConfig[config.SysImageDomain]), Name: mUserInstance.Name, Mobile: mUserInstance.Mobile,
Avatar: mUserInstance.Avatar, Name: mUserInstance.Name, Mobile: mUserInstance.Mobile,
Vip: mUserInstance.Vip, VipStatus: mUserInstance.VipStatus(), VipDeadline: mUserInstance.VipDeadline,
Currency: mUserAssets.Currency, Identity: mUserInstance.Identity, SelectIdentity: mUserIdentity.Identity,
Status: mUserInstance.Status,
@ -139,7 +138,7 @@ func loginForPassword(params *LoginParams, tenantID uint64) (*InstanceLoginParam
}
return &InstanceLoginParams{
UID: mUserInstance.UUID,
Avatar: mUserInstance.GetAvatarAttribute(config.SystemConfig[config.SysImageDomain]), Name: mUserInstance.Name, Mobile: mUserInstance.Mobile,
Avatar: mUserInstance.Avatar, Name: mUserInstance.Name, Mobile: mUserInstance.Mobile,
Vip: mUserInstance.Vip, VipStatus: mUserInstance.VipStatus(), VipDeadline: mUserInstance.VipDeadline,
Currency: mUserAssets.Currency, Identity: mUserInstance.Identity, SelectIdentity: mUserIdentity.Identity,
Status: mUserInstance.Status,

View File

@ -2,14 +2,9 @@ package manage
import (
"SciencesServer/app/api/enterprise/model"
"SciencesServer/app/basic/config"
"SciencesServer/app/basic/controller"
model2 "SciencesServer/app/common/model"
"SciencesServer/app/service"
"SciencesServer/app/session"
config2 "SciencesServer/config"
"errors"
"strings"
)
// Company 公司信息
@ -102,53 +97,6 @@ func (c *Company) Product(id uint64, page, pageSize int) ([]*CompanyProductInfo,
return list, nil
}
// Match 匹配信息
func (c *Company) Match(title string, industrys, keywords []string) (*controller.ReturnPages, error) {
params := strings.Join([]string{
title, strings.Join(industrys, ","), strings.Join(keywords, ","),
}, ",")
manage := service.NewESManage(
service.WithManageIdentity(config.TenantUserIdentityForCompany),
)
out, count, err := manage.Search(0, 0, map[string]interface{}{
"title": params, "industry": params, "keyword": params, "research": params,
})
if err != nil {
return nil, err
}
ids := make([]uint64, 0)
for _, v := range out.([]interface{}) {
val := v.(*service.ESManage)
ids = append(ids, val.ID)
}
mManageCompany := model.NewManageCompany()
companys := make([]*model2.ManageCompany, 0)
if err := model2.ScanFields(mManageCompany.ManageCompany, &companys, []string{"id", "kind", "name", "image", "url", "keyword"},
&model2.ModelWhereOrder{
Where: model2.NewWhereIn("id", ids),
Order: model2.NewOrder("id", model2.OrderModeToDesc),
}, &model2.ModelWhereOrder{
Where: model2.NewWhere("examine_status", model2.ExamineStatusForAgree),
}); err != nil {
return nil, err
}
list := make([]*CompanyMatchInfo, 0)
for _, v := range companys {
list = append(list, &CompanyMatchInfo{
ID: v.GetEncodeID(), Kind: v.Kind, Name: v.Name,
Image: v.Image.Analysis(config2.SystemConfig[config2.SysImageDomain]),
Url: v.Url,
Keywords: v.GetKeywordAttribute(),
})
}
return &controller.ReturnPages{Data: list, Count: count}, nil
}
func NewCompany() CompanyHandle {
return func(session *session.Enterprise) *Company {
return &Company{

View File

@ -82,6 +82,7 @@ func (c *Company) Launch(params *BasicParams, inviterID uint64, other *config.Id
}
mManageCompany.TenantID = c.tenantID
mManageCompany.InviterID = inviterID
mManageCompany.Kind = model2.ManageCompanyKind(other.Kind)
mManageCompany.Name = params.Name
mManageCompany.Code = params.Code
mManageCompany.Image = model2.Image{Image: params.Image}

View File

@ -235,7 +235,7 @@ func (c *Identity) Switch(identity int) error {
}
}
c.SelectIdentity = identity
service.Publish(config2.EventForAccountLoginProduce, config2.RedisKeyForAccountEnterprise, c.UIDToString(), c.Enterprise)
service.Publish(config2.EventForAccountLoginProduce, config2.RedisKeyForAccountEnterprise, c.GetStringUID(), c.Enterprise)
return nil
}
return errors.New("操作错误,无效的身份信息")

View File

@ -5,6 +5,7 @@ import (
model2 "SciencesServer/app/common/model"
"SciencesServer/app/handle"
"SciencesServer/app/session"
"SciencesServer/config"
"SciencesServer/utils"
"errors"
"time"
@ -36,11 +37,13 @@ type (
// Info 基本信息
func (c *Instance) Info() *InstanceInfo {
out := &InstanceInfo{Avatar: c.Avatar, Name: c.Name,
out := &InstanceInfo{
Name: c.Name,
Avatar: (&model2.UserInstance{Avatar: c.Avatar}).GetAvatarAttribute(config.SystemConfig[config.SysImageDomain]),
Currency: c.Currency,
Identity: c.Identity,
SelectIdentity: c.SelectIdentity}
SelectIdentity: c.SelectIdentity,
}
if c.IsVip() {
out.Vip = c.Vip
out.VipDays = utils.DiffTimeDays(time.Now(), c.VipDeadline)

View File

@ -48,7 +48,7 @@ func (m *UserIdentity) Expert(page, pageSize int, count *int64, where ...*model.
// LastChooseInfo 最后一次选中的信息
func (m *UserIdentity) LastChooseInfo(uid uint64) error {
_, err := model.FirstField(m.UserIdentity, []string{"id", "uuid", "identity"},
_, err := model.FirstField(m.UserIdentity, []string{"id", "identity"},
model.NewWhere("uid", uid),
model.NewWhere("is_selected", model.UserIdentitySelectedForYes))
return err

View File

@ -148,7 +148,7 @@ func paper(uids []uint64, page, pageSize int) (*controller.ReturnPages, error) {
var count int64
if err := model2.PagesFields(mTechnologyPaper.TechnologyPaper, &out, []string{"id", "title", "ext", "author", "keyword"},
if err := model2.PagesFields(mTechnologyPaper.TechnologyPaper, &out, []string{"id", "title", "ext", "author", "keyword", "remark", "publish_at"},
page, pageSize, &count, &model2.ModelWhereOrder{
Where: model2.NewWhereIn("uid", uids),
Order: model2.NewOrder("id", model2.OrderModeToDesc),
@ -234,7 +234,7 @@ func cooperateDetail(id uint64) (*CooperateDetailInfo, error) {
papers := make([]*model2.TechnologyPaper, 0)
if err = model2.ScanFields(mTechnologyPaper.TechnologyPaper, &papers, []string{"id", "title", "ext", "keyword"},
if err = model2.ScanFields(mTechnologyPaper.TechnologyPaper, &papers, []string{"id", "title", "ext", "keyword", "remark", "publish_at"},
&model2.ModelWhereOrder{
Where: model2.NewWhereIn("id", strings.Split(mManageCooperateEnterprise.Paper, ",")),
Order: model2.NewOrder("id", model2.OrderModeToDesc),
@ -244,6 +244,7 @@ func cooperateDetail(id uint64) (*CooperateDetailInfo, error) {
for _, v := range papers {
out.Paper = append(out.Paper, &technology.PaperInfo{
ID: v.GetEncodeID(), Title: v.Title, Ext: v.Ext, Keywords: v.GetKeywordAttribute(),
Remark: v.Remark, PublishAt: v.PublishAt,
})
}
return out, nil

View File

@ -1,12 +1,16 @@
package technology
import "time"
type Paper struct{}
type (
PaperInfo struct {
ID string `json:"id"`
Title string `json:"title"`
Ext string `json:"ext"`
Keywords []string `json:"keywords"`
ID string `json:"id"`
Title string `json:"title"`
Ext string `json:"ext"`
Keywords []string `json:"keywords"`
Remark string `json:"remark"`
PublishAt time.Time `json:"publish_at"`
}
)