Ejemplo n.º 1
0
        public async Task <bool> AddOrUpdate(ParamUserInfo param)
        {
            var entity = param.Id <= 0
                ? Context.Users.Attach(new User()).Entity
                : await Context.Users.SingleAsync(x => x.UserId == param.UserId && x.Id == param.Id && x.Status != 2);

            if (param.Id <= 0)
            {
                entity.Name       = param.Name;
                entity.Pwd        = BeeUtils.GetMD5(param.Pwd);
                entity.UserId     = param.UserId;
                entity.CreateDate = DateTime.Now;
                entity.LastUpdate = DateTime.Now;
                Context.Users.Add(entity);
            }
            else
            {
                entity.Name       = param.Name;
                entity.Status     = param.Status;
                entity.LastUpdate = DateTime.Now;
                Context.Users.Update(entity);
            }



            return((await Context.SaveChangesAsync()) > 0);
        }
 public async Task <IActionResult> Delete(ParamUserInfo param)
 {
     return(await ActionWrapAsync(async() =>
     {
         ResultData <bool> result = new ResultData <bool>();
         result.Data = await _userService.DeleteUser(param);
         return result;
     }));
 }
Ejemplo n.º 3
0
        public async Task <RpsData <RpsUser> > GetUserInfo(ParamUserInfo param)
        {
            var entity = param.Id > 0 ? await _context.Users.SingleAsync(x => x.Id == param.Id) :
                         await _context.Users.SingleAsync(x =>
                                                          x.OpenId == param.OpenId &&
                                                          x.GameType == param.GameType &&
                                                          x.OpenType == param.OpenType);

            return(RpsData <RpsUser> .Ok(entity.MapTo <RpsUser>()));
        }
Ejemplo n.º 4
0
        public async Task <bool> DeleteUser(ParamUserInfo param)
        {
            if (param.Id <= 0)
            {
                return(false);
            }
            var entity =
                await Context.Users.SingleAsync(x => x.UserId == param.UserId && x.Id == param.Id && x.Status != 2);

            entity.Status = 2;
            return((await Context.SaveChangesAsync()) > 0);
        }
Ejemplo n.º 5
0
 public async Task <IActionResult> GetUserInfo([FromBody] ParamUserInfo param)
 {
     return(await ActionWrapAsync(async() =>
     {
         ResultData <RpsData <RpsUser> > result = new ResultData <RpsData <RpsUser> >();
         var seeionId = HttpContext.User.GetId();
         if (param.Id != 0 && param.Id != seeionId && seeionId != 0)
         {
             throw new Exception("参数错误");
         }
         if (seeionId != 0 && param.Id == 0)
         {
             param.Id = seeionId;
         }
         result.Data = await _userService.GetUserInfo(param);
         if (result.Data.Result.Id != 0)
         {
             result.Data.Result.Token = RequestToken(result.Data.Result);
         }
         return result;
     }));
 }
Ejemplo n.º 6
0
 public async Task <bool> DeleteUser(ParamUserInfo param)
 {
     return(await _userRepository.DeleteUser(param));
 }
Ejemplo n.º 7
0
 public async Task <bool> AddOrUpdate(ParamUserInfo param)
 {
     return(await _userRepository.AddOrUpdate(param));
 }
Ejemplo n.º 8
0
 public async Task <RpsData <RpsUser> > GetUserInfo(ParamUserInfo param)
 {
     return(await _userReppository.GetUserInfo(param));
 }
Ejemplo n.º 9
0
 public async Task <RpsData <RpsUser> > AddOrUpdate(ParamUserInfo param)
 {
     return(await _userReppository.AddOrUpdate(param));
 }
Ejemplo n.º 10
0
        public async Task <RpsData <RpsUser> > AddOrUpdate(ParamUserInfo param)
        {
            var existEntity = param.Id > 0 ? await _context.Users.FirstOrDefaultAsync(x => x.Id == param.Id)
                : await _context.Users.FirstOrDefaultAsync(x =>
                                                           x.OpenId == param.OpenId &&
                                                           x.GameType == param.GameType &&
                                                           x.OpenType == param.OpenType);

            var entity = existEntity != null
                ? _context.Users.Attach(existEntity).Entity
                : _context.Users.Attach(new User()).Entity;


            //App段不提示用户登录直接默认一个用户,用户可以更改重新刷新信息
            if (param.OpenType == OpenTypeEnum.系统默认 && existEntity == null)
            {
                entity.OpenId   = Guid.NewGuid().ToString("N");
                entity.NickName = "游戏玩家";
                entity.Icon     = _configHelper.Config.DefaultUserIcon;
            }
            else
            {
                entity.OpenId   = param.OpenId;
                entity.NickName = param.NickName;
                entity.Icon     = param.Icon;
            }

            entity.GameType = param.GameType;
            entity.OpenType = param.OpenType;
            entity.UnionId  = param.UnionId;

            entity.UpdateDateTime = DateTime.Now;
            if (existEntity == null)
            {
                entity.CreateDateTime = DateTime.Now;
                entity.UserLoginInfo  = new UserLoginInfo()
                {
                    LatetestSignInDate = DateTime.MinValue, SignInContinuousDays = 0
                };

                if (!string.IsNullOrEmpty(param.Code) && param.GameType == GameTypeEnum.小程序)
                {
                    var haveUsed = await _context.InviteHistories.AsNoTracking().AnyAsync(x => x.Code == param.Code);

                    if (!haveUsed)
                    {
                        var inviteDto        = SecurityHelper.GetAES <InviteUserDto>(param.Code, _configHelper.Config.WXCEncryptionKey);
                        var haveInvitedCount = await _context.InviteHistories.AsNoTracking().CountAsync(x => x.UserId == inviteDto.UserId);

                        var inviteHis = new InviteHistory()
                        {
                            Code       = param.Code,
                            UserId     = inviteDto.UserId,
                            CreateDate = DateTime.Now
                        };

                        if (haveInvitedCount < _configHelper.Config.LimitInviteReward)
                        {
                            var inviteReward = await _context.InviteRewards.AsNoTracking()
                                               .WhereIf(haveInvitedCount != _configHelper.Config.LimitInviteReward - 1, x => x.AchieveInvite == false && x.Count == haveInvitedCount + 1)
                                               .WhereIf(haveInvitedCount == _configHelper.Config.LimitInviteReward - 1, x => x.AchieveInvite && x.Count == _configHelper.Config.LimitInviteReward)
                                               .ToListAsync();

                            if (inviteReward.Any(x => x.AchieveInvite))
                            {
                                var items = inviteReward.Where(x => x.AchieveInvite).Select(x => new RewardDataDto()
                                {
                                    GoodsType = x.GoodsType,
                                    Num       = x.Num,
                                    Type      = x.Type
                                }).ToList();
                                foreach (var reward in items)
                                {
                                    _context.BuyGoodHistories.Add(new BuyGoodHistory()
                                    {
                                        CreateDate = DateTime.Now,
                                        HaveGet    = false,
                                        MallId     = (int)reward.GoodsType,
                                        Num        = reward.Num,
                                        UserId     = inviteDto.UserId,
                                        Type       = reward.GoodsType > 0 ? BuyTypeEnum.购买 : BuyTypeEnum.邀请好友达标赠送
                                    });
                                }
                            }
                            if (inviteReward.Count != 0)
                            {
                                var item = inviteReward.Where(x => x.AchieveInvite == false).Select(x => new RewardDataDto()
                                {
                                    GoodsType = x.GoodsType,
                                    Num       = x.Num,
                                    Type      = x.Type
                                }).FirstOrDefault();
                                if (item != null)
                                {
                                    inviteHis.HaveReward = true;
                                    inviteHis.Data       = JsonConvert.SerializeObject(item);
                                }
                            }
                        }

                        entity.InviteHistory = inviteHis;
                    }
                }
            }

            bool result = await _context.SaveChangesAsync() > 0;

            if (result)
            {
                return(RpsData <RpsUser> .Ok(entity.MapTo <RpsUser>()));
            }
            else
            {
                return(RpsData <RpsUser> .Error("新增或修改失败"));
            }
        }