示例#1
0
        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);
        }
示例#2
0
        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);
        }