diff --git a/domain/model/invite_m/invite_apply.go b/domain/model/invite_m/invite_apply.go index 4b97bbaff0edfaa603e9966495a31af8bb9dc82b..311fe4498e148c53eb5a34cbc1eed25c77fedd3c 100644 --- a/domain/model/invite_m/invite_apply.go +++ b/domain/model/invite_m/invite_apply.go @@ -2,6 +2,8 @@ package invite_m import ( "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" + "gorm.io/gorm" "time" ) @@ -47,3 +49,16 @@ func GetApplyList(model *domain.Model, userIds []uint64, pageIndex, pageSize, gT } return res, count, nil } + +// 检查被邀请人是否存在 +func IsInInviteApply(model *domain.Model, userId mysql.ID) (bool, error) { + var apply InviteApply + if err := model.Db.Model(InviteApply{}).Where("new_user_id = ?", userId).First(&apply).Error; err != nil { + if err != gorm.ErrRecordNotFound { + return false, err + } + return false, nil + } + // err == nil, record exists + return true, nil +} diff --git "a/mysql/\346\226\260\344\272\272\346\264\276\345\257\271\347\224\263\350\257\267.sql" "b/mysql/\346\226\260\344\272\272\346\264\276\345\257\271\347\224\263\350\257\267.sql" index 41bf5d9fdab31f6437dba3a6e7d3cbd67daa0be0..6b3535605930ec9da7f1583135c43c363898a597 100644 --- "a/mysql/\346\226\260\344\272\272\346\264\276\345\257\271\347\224\263\350\257\267.sql" +++ "b/mysql/\346\226\260\344\272\272\346\264\276\345\257\271\347\224\263\350\257\267.sql" @@ -7,6 +7,7 @@ CREATE TABLE `invite_apply` ( `status` tinyint unsigned NOT NULL COMMENT '状态0.未审核1.已通过2.已拒绝', `level` varchar(5) NOT NULL DEFAULT '' COMMENT '申请等级(S,A,B,C)', `video_url` varchar(400) NOT NULL COMMENT '上传的视频url', + `reason` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '拒绝原因', `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), diff --git a/route/invite_r/party_invite.go b/route/invite_r/party_invite.go index ad3c2ebcfc73580e39b7e33f78e3929b4f65f2f7..d76ad346c14c1d79077d54e259f976608f81bced 100644 --- a/route/invite_r/party_invite.go +++ b/route/invite_r/party_invite.go @@ -74,15 +74,25 @@ func InviteApply(c *gin.Context) (*mycontext.MyContext, error) { model.Log.Errorf("InviteApply param:%v", param) return myCtx, bizerr.InvalidParameter } - if user.ID != myUserId && !promotion_m.IsMyPromotionManager(model, user.ID, myUserId) { + // 邀请人是否有资格邀请 + if !promotion_m.IsPromotionAgent(model, user.ID) { model.Log.Errorf("InviteApply 没有邀请资格 param:%v", param) return myCtx, bizerr.InviteApplyNoPermission } - // 邀请人是否有资格邀请 - if !promotion_m.IsPromotionAgent(model, user.ID) { + if user.ID != myUserId && !promotion_m.IsMyPromotionManager(model, user.ID, myUserId) { model.Log.Errorf("InviteApply 没有邀请资格 param:%v", param) return myCtx, bizerr.InviteApplyNoPermission } + // 被邀请人是否已经被人提交过申请 + isApply, err := invite_m.IsInInviteApply(model, newUser.ID) + if err != nil { + model.Log.Errorf("InviteApply param:%v, err:%v", param, err) + return myCtx, err + } + if isApply { + model.Log.Errorf("InviteApply 已经被别人邀请过了 param:%v", param) + return myCtx, bizerr.InviteApplyAlreadyInvited + } // 被邀请人是否符合条件 isInvite, err := promotion_m.IsPromotionInvitee(model, user.ID) if err != nil {