退出用户组

This commit is contained in:
苏尹岚
2020-10-22 14:23:26 +08:00
parent 4fc2e9c5df
commit 777bdc6d93
4 changed files with 119 additions and 9 deletions

View File

@@ -8,6 +8,7 @@ import (
"time"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxstore/financial"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
@@ -248,6 +249,88 @@ func AddMessageGroup(ctx *jxcontext.Context, groupID int, userID string) (err er
}
func UpdateMessageGroup(ctx *jxcontext.Context, groupID int, payload map[string]interface{}) (num int64, err error) {
var (
db = dao.GetDB()
messageGroup = &model.MessageGroup{
GroupID: groupID,
}
)
if err = dao.GetEntity(db, &messageGroup, "GroupID"); err != nil {
return 0, err
}
valid := dao.StrictMakeMapByStructObject(payload, messageGroup, ctx.GetUserName())
if len(valid) > 0 {
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if num, err = dao.UpdateEntityLogically(db, messageGroup, valid, ctx.GetUserName(), nil); err != nil {
dao.Rollback(db)
return 0, err
}
dao.Commit(db)
}
return num, err
}
func DeleteMessageGroup(ctx *jxcontext.Context, groupID int, userID string) (errCode string, err error) {
var (
db = dao.GetDB()
messageGroup = &model.MessageGroup{
GroupID: groupID,
}
)
if err = dao.GetEntity(db, &messageGroup, "GroupID"); err != nil {
return errCode, err
}
//token中用户与传入user不一致就判定为踢人
if ctx.GetUserID() != userID {
if messageGroup.UserID != ctx.GetUserID() {
messageGroupMembers, err := dao.GetMessageGroupMembers(db, groupID, ctx.GetUserID())
if err != nil {
return errCode, err
}
if messageGroupMembers[0].Type == model.GroupMemberTypeNormal {
return errCode, fmt.Errorf("只有创建者和管理员才能踢人!")
}
}
messageGroupMembers, err := dao.GetMessageGroupMembers(db, groupID, userID)
if err != nil {
return errCode, err
}
messageGroupMembers[0].DeletedAt = time.Now()
messageGroupMembers[0].LastOperator = ctx.GetUserName()
dao.UpdateEntity(db, messageGroupMembers[0], "DeletedAt", "LastOperator")
} else {
quitPrice := messageGroup.QuitPrice
userBill, err := dao.GetUserBill(db, userID, "")
if err != nil {
return errCode, err
}
if userBill.AccountBalance < quitPrice {
return model.ErrCodeAccountBalanceNotEnough, err
}
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
//账户支出明细
//1、账户支出增加一条记录
if err = financial.AddBillExpend(db, userBill.BillID, model.BillTypeQuitGroup, quitPrice); err != nil {
dao.Rollback(db)
}
//2、账户表余额减少相应值
userBill.AccountBalance -= quitPrice
if _, err = dao.UpdateEntity(db, userBill, "AccountBalance"); err != nil {
dao.Rollback(db)
}
dao.Commit(db)
}
return errCode, err
}

View File

@@ -1,15 +1,18 @@
package model
const (
BillTypeDeposit = 1 //发布任务
BillTypeJob = 2 //做任务实得
BillTypeMember = 3 //开通会员
BillTypeJobCancelOverdue = 4 //任务过期或取消
BillTypeJobAuditUnPassWithCancelOverdue = 5 //任务不通过时,任务已取消或过期
BillTypeSpJob = 6 //特殊任务扣除
BillTypeDeposit = 10 //发布任务
BillTypeJob = 11 //做任务实得
BillTypeJobCancelOverdue = 12 //任务过期或取消
BillTypeJobAuditUnPassWithCancelOverdue = 13 //任务不通过时,任务已取消或过期
BillTypeSpJob = 14 //特殊任务扣除
BillTypeCash = 9 //提现
BillTypeInvest = 8 //充值
BillTypeMember = 20 //开通会员
BillTypeQuitGroup = 30 //退群
BillTypeCash = 8 //提现
BillTypeInvest = 6 //充值
)
//账单收入表