退出用户组
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 //充值
|
||||
)
|
||||
|
||||
//账单收入表
|
||||
|
||||
@@ -251,3 +251,18 @@ func (c *EventController) UpdateMessageGroup() {
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 退出用户组(踢人)
|
||||
// @Description 退出用户组(踢人)
|
||||
// @Param token header string true "认证token"
|
||||
// @Param groupID formData int true "组号"
|
||||
// @Param userID formData string true "userID"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /DeleteMessageGroup [delete]
|
||||
func (c *EventController) DeleteMessageGroup() {
|
||||
c.callDeleteMessageGroup(func(params *tEventDeleteMessageGroupParams) (retVal interface{}, errCode string, err error) {
|
||||
errCode, err = event.DeleteMessageGroup(params.Ctx, params.GroupID, params.UserID)
|
||||
return retVal, errCode, err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -142,6 +142,15 @@ func init() {
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:EventController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:EventController"],
|
||||
beego.ControllerComments{
|
||||
Method: "DeleteMessageGroup",
|
||||
Router: `/DeleteMessageGroup`,
|
||||
AllowHTTPMethods: []string{"delete"},
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:EventController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:EventController"],
|
||||
beego.ControllerComments{
|
||||
Method: "GetImMessageRecord",
|
||||
|
||||
Reference in New Issue
Block a user