/// <summary> /// 查询当天行为统计 /// </summary> /// <param name="areaid"></param> /// <param name="type"></param> /// <param name="platForm"></param> /// <param name="uuid"></param> /// <returns></returns> public UserActionStatisticsModel QueryByContion(int areaid, int uid, int type, string platForm, string version, string uuid) { UserActionStatisticsModel model = new UserActionStatisticsModel(); if (string.IsNullOrEmpty(platForm)) { platForm = " "; } if (string.IsNullOrEmpty(version)) { version = " "; } string sql = $"select * from log_userActionStatistics where areaid={areaid} and type={type} and platForm='{platForm}' and version='{version}' and uid={uid} and uuid='{uuid}'"; try { using (_db) { model = _db.QueryFirstOrDefault <UserActionStatisticsModel>(sql); return(model); } } catch (Exception e) { _logger.LogError($"QueryByContion:{e.Message},sql语句:{sql}"); return(model); } }
public void SubscribeWithnoController(ReciveUserActionModel model) { try { List <UserActionModel> list = new List <UserActionModel>(); _logger.LogDebug($"SubscribeWithnoController:收到数据向Redis添加:{model.areaid}大厅,{model.type}类型,{model.platForm}平台,{model.version}版本,时间:{model.date},系统时间{DateTime.Now}"); //向rides list添加元素 DateTime time = model.date; //获取uuid string config = model.data; JObject jo = JsonConvert.DeserializeObject <JObject>(config); string uuid = " "; if (jo.Property("UUID") != null) { uuid = jo["UUID"].ToString(); } UserActionModel user = new UserActionModel() { id = model.id, areaid = model.areaid, date = model.date, uid = model.uid, version = model.version, uuid = uuid, platForm = model.platForm, type = model.type }; string ktime = ""; if (time.Minute > 0) { ktime = time.AddHours(1).ToString("yyyyMMddHH"); } else { ktime = time.ToString("yyyyMMddHH"); } list.Add(user); _cache._redisProvider.RPush($"{model.areaid}_t{ktime}", list); Random rand = new Random(); //7天保存 int second = 7 * ((int)KeyExpireTime.realData); _cache._redisProvider.KeyExpire($"{model.areaid}_t{ktime}", second); var checkAct = _repository.QueryByContion(model.areaid, model.uid, model.type, model.platForm, model.version, uuid); if (checkAct == null) { UserActionStatisticsModel actStat = new UserActionStatisticsModel() { areaid = model.areaid, type = model.type, platForm = model.platForm == null?" ":model.platForm, uid = model.uid, uuid = uuid, added = model.date, version = model.version == null?" ":model.version }; List <UserActionStatisticsModel> stlist = new List <UserActionStatisticsModel>(); if (!string.IsNullOrEmpty(uuid) || actStat.uid != 0) { stlist.Add(actStat); _repository.Insert(stlist); } } //List<string> keys = new List<string>(); //string configKeys; //foreach (var item in jo) //{ // keys.Add(item.Key); //} //configKeys = string.Join(",", keys); //var areaParams = _repository.GetAreaParams(model.areaid, model.type); //if (areaParams != null) //{ // if (configKeys.Equals(areaParams.configKeys)) // { // return; // } // var akeys = areaParams.configKeys.Split(','); // keys.Concat(akeys).ToList().Distinct(); // areaParams.configKeys = string.Join(",", keys); // _repository.UpdateAreaParams(areaParams); //} //else //{ // _repository.Insert(new List<AreaParamsModel>() { // new AreaParamsModel() // { // areaid=model.areaid, // configKeys=configKeys, // type=model.type // } // }); //} #region 检查版本号 //_logger.LogInformation($"SubscribeWithnoController:检查版本号"); var check = _repository.CheckAreaVersion(model.areaid, model.version.Trim()); List <AreaVersion> vs = new List <AreaVersion>() { new AreaVersion { areaid = model.areaid, version = model.version.Trim() } }; if (check.Count == 0) { var res = _repository.Insert(vs); } if (check.Count > 1) { _repository.Delete(check); _repository.Insert(vs); } #endregion } catch (Exception e) { _logger.LogError($"SubscribeWithnoController:{e.Message}"); } }