93 lines
2.3 KiB
Go
93 lines
2.3 KiB
Go
package sociaty
|
|
|
|
import (
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/lego/sys/log"
|
|
"go_dreamfactory/pb"
|
|
)
|
|
|
|
// 公会申请审核-拒绝
|
|
|
|
func (this *apiComp) RefuseCheck(session comm.IUserSession, req *pb.SociatyRefuseReq) (errdata *pb.ErrorData) {
|
|
if req.Uid == "" {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_ReqParameterError,
|
|
Title: pb.ErrorCode_ReqParameterError.ToString(),
|
|
}
|
|
this.module.Error("公会申请审核-拒绝参数错误", log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "params", Value: req.String()})
|
|
}
|
|
return
|
|
}
|
|
|
|
func (this *apiComp) Refuse(session comm.IUserSession, req *pb.SociatyRefuseReq) (errdata *pb.ErrorData) {
|
|
if errdata = this.RefuseCheck(session, req); errdata != nil {
|
|
return
|
|
}
|
|
|
|
uid := session.GetUserId()
|
|
sociaty := this.module.modelSociaty.getUserSociaty(uid)
|
|
if sociaty == nil {
|
|
|
|
this.module.Error("当前玩家所在的公会未找到", log.Field{Key: "uid", Value: uid})
|
|
return
|
|
}
|
|
|
|
// 校验权限
|
|
if !this.module.modelSociaty.isRight(uid, sociaty,
|
|
pb.SociatyJob_PRESIDENT,
|
|
pb.SociatyJob_VICEPRESIDENT,
|
|
pb.SociatyJob_ADMIN) {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_SociatyNoRight,
|
|
Title: pb.ErrorCode_SociatyNoRight.ToString(),
|
|
}
|
|
return
|
|
}
|
|
|
|
// 判断改用户是否在申请记录中
|
|
var flag bool
|
|
for _, r := range sociaty.GetApplyRecord() {
|
|
if r.Uid == req.Uid {
|
|
flag = true
|
|
break
|
|
}
|
|
}
|
|
if !flag {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_SociatyApplyCancel,
|
|
Title: pb.ErrorCode_SociatyApplyCancel.ToString(),
|
|
}
|
|
return
|
|
}
|
|
|
|
// 已是公会成员
|
|
if this.module.modelSociaty.isMember(req.Uid, sociaty) {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_SociatyAdded,
|
|
Title: pb.ErrorCode_SociatyAdded.ToString(),
|
|
}
|
|
return
|
|
}
|
|
|
|
// 拒绝公会申请
|
|
if err := this.module.modelSociaty.refuse(req.Uid, sociaty); err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_SociatyRefuse,
|
|
Title: pb.ErrorCode_SociatyRefuse.ToString(),
|
|
}
|
|
this.module.Error("申请拒绝",
|
|
log.Field{Key: "uid", Value: uid},
|
|
log.Field{Key: "拒绝目标人", Value: req.Uid},
|
|
log.Field{Key: "err", Value: err.Error()},
|
|
)
|
|
return
|
|
}
|
|
|
|
rsp := &pb.SociatyRefuseResp{
|
|
Uid: req.Uid,
|
|
SociatyId: sociaty.Id,
|
|
}
|
|
session.SendMsg(string(this.module.GetType()), SociatySubTypeRefuse, rsp)
|
|
return
|
|
}
|