/// <summary> /// 注册 /// </summary> /// <param name="domainModel"></param> /// <returns></returns> public async Task <int> InsertTokenBrandAsync(RegisterRequestDomainModel domainModel) { if (domainModel == null) { return(0); } var oldTokenBrand = await GetTokenBrandAsync(domainModel.Token, domainModel.AppId?.ToString() ?? "", domainModel.DeviceId); PushTokenBrand entity = null; if (oldTokenBrand == null) { entity = _mapper.Map <RegisterRequestDomainModel, PushTokenBrand>(domainModel); entity.CreateAt = entity.UpdateAt = DateTimeHelper.GetNow(); entity.Id = _idGeneratorService.GenerateId(); int row = await _repository.InsertAsync(entity); } else { entity = oldTokenBrand; } foreach (var detail in domainModel.DeviceTokens) { detail.TokenBrandId = entity.Id; detail.CreateAt = detail.UpdateAt = DateTimeHelper.GetNow(); await _pushTokenBrandDetailService.InsertAsync(detail); } return(domainModel.DeviceTokens.Count() + 1); }
public ErrCode Register(RegisterRequestDto dto, out string retMsg) { retMsg = ""; try { int brandId; if (!_tokenBrandLogic.MatchBrandId(dto.Brand, out brandId)) { return(ErrCode.DataIsnotExist); } int systemType = brandId == APPLE_BRAND_ID ? 0 : 1; //获取通过RToken获取注册列表 var tokenBrandList = _pushTokenBrandService.GetTokenBrandListByTokenAsync(dto.Token).Result; var tokenBrands = tokenBrandList.Where(e => e.SystemType == systemType).OrderByDescending(e => e.UpdateAt).ToList(); var tokenBrand = tokenBrands.SingleOrDefault(e => e.AppId == dto.AppId && e.BrandId == brandId && e.DeviceId == dto.DeviceId); if (tokenBrands.Count() >= 3) { for (int i = 2; i < tokenBrands.Count(); i++) { int deleteRow = _pushTokenBrandService.DeleteTokenBrandByIdAsync(tokenBrands[i].Id).Result; } } //检查AppId是否存在 if (!_tokenBrandLogic.CheckAppId(dto.AppId.Value, out retMsg)) { return(ErrCode.AppNotExist); } //清除设备之前注册的用户信息,避免设备收到别的用户的消息。 _pushTokenBrandService.TryClearDeviceOldUserAsync(dto.DeviceId, dto.Token).Wait(); RegisterRequestDomainModel model = _mapper.Map <RegisterRequestDomainModel>(dto); model.SystemType = systemType; model.BrandId = brandId; var ret = _pushTokenBrandService.InsertTokenBrandAsync(model).Result; if (ret > 0) { return(ErrCode.Sucess); } return(ErrCode.Failure); } catch (Exception ex) { retMsg = ex.Message; return(ErrCode.Failure); } }