Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 添加团队
 /// </summary>
 /// <param name="dto"></param>
 /// <returns></returns>
 public async Task <bool> PostTeamMemberAsync(AddTeamMemberDto dto, string openId)
 {
     return(await _memberRepository.PostTeamMemberAsync(dto, openId));
 }
Ejemplo n.º 3
0
        /// <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;
            }));
        }