This commit is contained in:
wangchuxiao
2022-02-21 21:02:37 +08:00
parent 75590eb765
commit 55d7c6e672
3 changed files with 27 additions and 10 deletions
@@ -116,10 +116,10 @@ func DeleteGroup(groupId string) error {
return nil
}
func OperateGroupRole(userId, groupId string, roleLevel int32) error {
func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
if err != nil {
return err
return "", "", err
}
dbConn.LogMode(true)
groupMember := db.GroupMember{
@@ -133,7 +133,7 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error {
}
switch roleLevel {
case constant.GroupOwner:
return dbConn.Transaction(func(tx *gorm.DB) error {
err = dbConn.Transaction(func(tx *gorm.DB) error {
result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster).Update(&db.GroupMember{
RoleLevel: constant.GroupOrdinaryUsers,
})
@@ -153,14 +153,15 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error {
}
return nil
})
case constant.GroupOrdinaryUsers:
return dbConn.Transaction(func(tx *gorm.DB) error {
err = dbConn.Transaction(func(tx *gorm.DB) error {
result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster)
if result.Error != nil {
return result.Error
}
if result.RowsAffected == 0 {
return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId))
return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId))
}
if groupMaster.UserID == userId {
return errors.New(fmt.Sprintf("user %s is master of %s, cant set to ordinary user", userId, groupId))
@@ -170,13 +171,13 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error {
return result.Error
}
if result.RowsAffected == 0 {
return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId))
return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId))
}
}
return nil
})
}
return nil
return "", "", nil
}
func GetGroupsCountNum(group db.Group) (int32, error) {