public async Task <H5ResponseViewModel <object> > H5SubmitIbc([FromBody] H5RequestViewModel Parameters) { H5ResponseViewModel <object> response = null; var sysCode = _sys.CheckParameters(Parameters.data, "H5SubmitIbc"); if (sysCode == SysCode.Ok) { string userPhone = Parameters.data.phone; string downid = Parameters.data.downid; string gameType = Parameters.data.gameType; string channelId = Parameters.data.channelId; string timesTamp = Parameters.data.timesTamp; long userId = _user.GetUserIdByPhone(userPhone); ibeaconlocus ibeaconlocu = new ibeaconlocus(); if (userId != 0) { var resignChannel = await _routine.GetUserIdChannelIdAsync(userId); ibeaconlocu.downid = downid; ibeaconlocu.userId = userId; ibeaconlocu.iBeacons = null; ibeaconlocu.phone = userPhone; ibeaconlocu.gps = null; ibeaconlocu.timestamp = timesTamp; ibeaconlocu.token = null; ibeaconlocu.userOpenid = null; ibeaconlocu.phoneType = null; ibeaconlocu.gameType = gameType; ibeaconlocu.ibcChannel = channelId; ibeaconlocu.channelId = resignChannel; ibeaconlocu.createTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); _routine.WriteIbcInfo(ibeaconlocu); } else { sysCode = SysCode.UserExist; } } response = new H5ResponseViewModel <object>(sysCode, null); return(response); }
public async Task <ResponseViewModel <object> > SubmitIbc([FromBody] RequestViewModel obj) { ResponseViewModel <object> response = null; obj = JsonHelper.DeserializeJsonToObject <RequestViewModel>(Content(User.Identity.Name).Content); var sysCode = SysCode.Ok; ibeaconlocus ibeaconlocus = new ibeaconlocus(); var channelId = obj.Client.Channel; var userOpenId = obj.HendInfo.UserOpenId; var sessionToken = obj.HendInfo.SessionToken; var timesTamp = obj.Data.timestamp; string strJson = RedisHelper.StringGet($"{CacheKey.Token}{obj.HendInfo.UserOpenId}", RedisFolderEnum.token, RedisEnum.Three); if (strJson != null) { var userLog = JsonHelper.DeserializeJsonToObject <UserLoginDto>(strJson); dynamic ibcList = obj.Data.iBeacons; string strjson = JsonHelper.SerializeObject(ibcList); string strChannels = string.Empty; bool result = false; foreach (var item in ibcList) { /*查找已经部署的ibc的渠道*/ strChannels = await _routine.GetDevicesChannelIdAsync(int.Parse((string)item.major), int.Parse((string)item.minor), (string)item.uuid); /*更新设备电量 */ // result = await _routine.UpdateIbcAsync(int.Parse((string)item.major), int.Parse((string)item.minor), (string)item.uuid, int.Parse((string)item.battery)); } _log.InfoFormat("查询设备渠道结果:{0}更新设备电量结果:{1}", strChannels, result); try { var resignChannel = await _routine.GetUserIdChannelIdAsync(userLog.Userid); var downId = obj.Data.downid; var gps = obj.Client.Gps; var userPhone = userLog.Phone; var PhoneType = obj.Data.phoneType; var gameType = obj.Data.gameType; ibeaconlocus.downid = downId; ibeaconlocus.userId = userLog.Userid; ibeaconlocus.iBeacons = JsonHelper.DeserializeJsonToObject <List <ibcinfoList> >(strjson); ibeaconlocus.phone = userPhone; ibeaconlocus.gps = gps; ibeaconlocus.timestamp = timesTamp; ibeaconlocus.token = sessionToken; ibeaconlocus.userOpenid = userOpenId; ibeaconlocus.phoneType = PhoneType; ibeaconlocus.gameType = gameType; ibeaconlocus.ibcChannel = strChannels; ibeaconlocus.channelId = resignChannel; ibeaconlocus.createTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); /* 将ibc信息写入mongo数据库*/ _routine.WriteIbcInfo(ibeaconlocus); } catch (System.Exception ex) { _log.ErrorFormat("提报ibc接口异常{0}", ex.Message); sysCode = SysCode.Err; } } else { sysCode = SysCode.UserOpenIdisNo; } response = new ResponseViewModel <object>(sysCode, null, obj.Encrypt, _sys, obj.Secret); return(response); }