public async Task <IActionResult> PostTeamMemberAsync([FromBody] AddTeamMemberDto dto) { var tokenInfo = GetTokenInfo(); var openId = tokenInfo.OpenId; try { var data = await _memberServices.PostTeamMemberAsync(dto, openId); return(AddSuccessMsg()); } catch (Exception err) { _logger.Error(typeof(TeamMemberController), new Exception(err.Message)); return(FailedMsg(err.Message)); } }
/// <summary> /// 添加团队 /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task <bool> PostTeamMemberAsync(AddTeamMemberDto dto, string openId) { return(await _memberRepository.PostTeamMemberAsync(dto, openId)); }
/// <summary> /// 添加成员 /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task <bool> PostTeamMemberAsync(AddTeamMemberDto dto, string openId) { var isAny = db.Queryable <Wx_UserInfo>().Where(a => a.OpenId == openId).Any(); var result = 0; return(await Task.Run(() => { if (isAny == false) { Wx_UserInfo userInfo = iMapper.Map <Wx_UserInfo>(dto); userInfo.ID = IdHelper.CreateGuid(); userInfo.OpenId = openId; db.Insertable(userInfo).ExecuteCommand(); } //获取邀请人的UserId bool isInviterToken = _redisCacheManager.Get(dto.InviterToken); string InviterUserId = string.Empty; if (isInviterToken) { //根据邀请人Token获取到邀请人OpenId var InviterOenId = _redisCacheManager.GetValue(dto.InviterToken).ToString().Split(";")[0].Trim('"'); InviterUserId = db.Queryable <Wx_UserInfo>().Where(a => a.OpenId == InviterOenId).First()?.ID; } var UserInfo = db.Queryable <Wx_UserInfo>().Where(a => a.OpenId == openId).Select(a => new { UserId = a.ID, MobilePhone = a.MobilePhone }).First(); //找到加入人UserId、MobilePhone var roleId = db.Queryable <Role>().Where(a => a.TeamId == dto.TeamId && a.Name == AppConsts.RoleName.Ordinary).First()?.ID; var isMember = db.Queryable <TeamMember>().Where(a => a.TeamId == dto.TeamId && a.IsDeleted == false && a.JoinedUserId == UserInfo.UserId).Any(); if (isMember) { throw new Exception("成员已经加了团队,不能再次加入!"); } else { TeamMember teamMember = iMapper.Map <TeamMember>(dto); teamMember.ID = IdHelper.CreateGuid(); teamMember.TeamNickName = dto.NickName; teamMember.IsDeleted = false; teamMember.InviterUserId = InviterUserId; teamMember.JoinedUserId = UserInfo.UserId; teamMember.RoleId = roleId; result = db.Insertable(teamMember).ExecuteCommand(); if (result > 0 && UserInfo.MobilePhone != null) { db.Updateable <TeamMember>().SetColumns(a => new TeamMember() { MobilePhone = UserInfo.MobilePhone }) .Where(a => a.ID == teamMember.ID).ExecuteCommand(); } } return result > 0; })); }