refactor: reorganize modules and add Linux build tooling
This commit is contained in:
21
module/social/group/internal/models/group_apply.go
Normal file
21
module/social/group/internal/models/group_apply.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"git.apinb.com/bsm-sdk/core/types"
|
||||
)
|
||||
|
||||
// GroupApply 入群申请
|
||||
type GroupApply struct {
|
||||
types.Std_IICUDS
|
||||
types.Std_Passport
|
||||
FromID uint `gorm:"column:from_id;not null;" json:"from_id"` //申请人id
|
||||
FromIdentity string `gorm:"column:from_identity;type:varchar(36);not null;" json:"from_identity"` //申请人identity
|
||||
GroupID uint `gorm:"column:group_id;not null;" json:"group_id"`
|
||||
GroupIdentity string `gorm:"column:group_identity;type:varchar(36);not null;" json:"group_identity"`
|
||||
Message string `gorm:"column:message;type:varchar(255);default:'';" json:"message"`
|
||||
}
|
||||
|
||||
// TableName .
|
||||
func (ga *GroupApply) TableName() string {
|
||||
return "relation_group_apply"
|
||||
}
|
||||
30
module/social/group/internal/models/group_basic.go
Normal file
30
module/social/group/internal/models/group_basic.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"git.apinb.com/bsm-sdk/core/types"
|
||||
)
|
||||
|
||||
// Group .
|
||||
type GroupBasic struct {
|
||||
types.Std_IICUDS
|
||||
types.Std_Passport
|
||||
Number int64 `gorm:"column:number;not null;" json:"number"` //群号
|
||||
Avatar string `gorm:"column:avatar;type:varchar(255);default:'';" json:"avatar"`
|
||||
Name string `gorm:"column:name;type:varchar(255);not null;" json:"name"`
|
||||
Introduce string `gorm:"column:introduce;type:text;default:'';" json:"introduce"` //简介
|
||||
MemberLimit int32 `gorm:"column:member_limit;type:smallint;default:100;" json:"member_limit"` // 最大成员数,0代表不限制
|
||||
Province int32 `gorm:"column:province;default:0;" json:"province"` // 省
|
||||
City int32 `gorm:"column:city;default:0;" json:"city"` // 市
|
||||
Area int32 `gorm:"column:area;default:0;" json:"area"` // 区
|
||||
Notice string `gorm:"column:notice;type:text;default:'';" json:"notice"` // 群公告
|
||||
Background string `gorm:"column:background;type:varchar(255);default:'';" json:"background"` // 背景
|
||||
EnableAnyJoin bool `gorm:"column:enable_any_join;" json:"enable_any_join"` // 是否开启无需验证即可加入群组
|
||||
EnableSearchByNumber bool `gorm:"column:enable_search_by_number;" json:"enable_search_by_number"` // 是否开启群号搜索
|
||||
EnableSearchByName bool `gorm:"column:enable_search_by_name;" json:"enable_search_by_name"` // 是否开启群名搜索
|
||||
MemberTotal int32 `gorm:"column:member_total;default:0;" json:"member_total"` // 群组成员数
|
||||
}
|
||||
|
||||
// TableName .
|
||||
func (group *GroupBasic) TableName() string {
|
||||
return "group_basic"
|
||||
}
|
||||
20
module/social/group/internal/models/group_member.go
Normal file
20
module/social/group/internal/models/group_member.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"git.apinb.com/bsm-sdk/core/types"
|
||||
)
|
||||
|
||||
// GroupMember 群成员
|
||||
type GroupMember struct {
|
||||
types.Std_IICUDS
|
||||
types.Std_Passport
|
||||
GroupID uint `gorm:"group_id;not null;" json:"group_id"`
|
||||
GroupIdentity string `gorm:"column:group_identity;type:varchar(36);not null;" json:"group_identity"` //group_identity
|
||||
RemarkName string `gorm:"column:remark_name;type:varchar(255);default:'';" json:"remark_name"` //昵称备注
|
||||
Role int32 `gorm:"role;type:smallint;default:0" json:"role"` //0:普通成员,1:管理员,2:超管,10:创建者
|
||||
}
|
||||
|
||||
// TableName .
|
||||
func (gm *GroupMember) TableName() string {
|
||||
return "relation_group_member"
|
||||
}
|
||||
21
module/social/group/internal/models/group_res.go
Normal file
21
module/social/group/internal/models/group_res.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"git.apinb.com/bsm-sdk/core/types"
|
||||
)
|
||||
|
||||
// GroupFiles 群文件
|
||||
type GroupRes struct {
|
||||
types.Std_IICUDS
|
||||
types.Std_Passport
|
||||
GroupID string `gorm:"column:group_id;type:varchar(50);not null;" json:"group_id"`
|
||||
Name string `gorm:"column:name;type:varchar(255);not null;" json:"name"`
|
||||
Introduce string `gorm:"column:introduce;type:varchar(255);default:'';" json:"introduce"` //简介
|
||||
URL string `gorm:"column:url;type:varchar(255);default:'';" json:"url"`
|
||||
DownloadNum int64 `gorm:"column:download_num;default:0;" json:"download_num"`
|
||||
}
|
||||
|
||||
// TableName .
|
||||
func (gf *GroupRes) TableName() string {
|
||||
return "relation_group_res"
|
||||
}
|
||||
47
module/social/group/internal/models/query.go
Normal file
47
module/social/group/internal/models/query.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"bsm/full/module/social/group/internal/impl"
|
||||
pb "bsm/full/module/social/group/pb"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func InitData() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetMyGroup(passport_id uint) (groups []*pb.GroupItem, err error) {
|
||||
|
||||
sql := `Select group.*,gm.nickname,gm.remark_name,gm.role
|
||||
From group_member as gm
|
||||
Left join group on group.id=gm.group_id
|
||||
Where passport_id=? and deleted_at is null`
|
||||
err = impl.DBService.Raw(sql, passport_id).Find(&groups).Error
|
||||
return
|
||||
}
|
||||
|
||||
func GetMasterGroup(passport_id uint) []uint {
|
||||
var ids []uint
|
||||
impl.DBService.Model(GroupMember{}).Select("group_id").Where("passport_id=? and role!=0", passport_id).Pluck("group_id", &ids)
|
||||
return ids
|
||||
}
|
||||
|
||||
func GetGroupMember(group_identity string) (members []*pb.PassportInfoSimpleCard, err error) {
|
||||
sql := `Select pe.identity,pe.nickname,pe.avatar,pe.sex,gm.remark_name,gm.role
|
||||
From group_member as gm
|
||||
Left join passport_extend as pe on pe.passport_id=gm.passport_id
|
||||
Where group_identity=? and deleted_at is null`
|
||||
err = impl.DBService.Raw(sql, group_identity).Find(&members).Error
|
||||
return
|
||||
}
|
||||
|
||||
func GetGroupEnableAnyJoin(passport_id uint, group_identity string) bool {
|
||||
var is bool = false
|
||||
impl.DBService.Model(&GroupBasic{}).Select("enable_any_join").Where("createor_id=? and identity=?", passport_id, group_identity).Scan(&is)
|
||||
return is
|
||||
}
|
||||
|
||||
func UpsetGroupMemberTotal(group_identity string, op string) {
|
||||
impl.DBService.Model(&GroupBasic{}).Where("identity=?", group_identity).UpdateColumn("member_total", gorm.Expr("member_total ? ?", op, 1))
|
||||
}
|
||||
Reference in New Issue
Block a user