public string Get2(string DeviceID, string card) { DeviceID = DeviceID.ToLower(); card = card.ToLower(); if (string.IsNullOrEmpty(card) || string.IsNullOrEmpty(DeviceID)) { return("请求参数存在空值" + "card" + card + "deviceid" + DeviceID); } else { var reqSeq = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds); //参数信息 Dictionary <string, string> messageDic = new Dictionary <string, string>(); messageDic.Add("reqSeq", reqSeq.ToString()); messageDic.Add("reqTime", DateTime.Now.ToString("yyyymmddhhmmss")); messageDic.Add("fjcsn", card.ToUpper()); messageDic.Add("cardNo", ""); string messageDataJson = JsonConvert.SerializeObject(messageDic); //公共请求体参数 Dictionary <string, string> openDic = new Dictionary <string, string>(); openDic.Add("appId", "PRECARD_807850581711240"); openDic.Add("method", "getIDCardTerminal"); openDic.Add("reqSeq", reqSeq.ToString()); openDic.Add("bizContent", messageDataJson); openDic.Add("sign_param", "appId,method,bizContent"); //排序 var content = SHA256WithRSA.getSignContent(openDic); //加签 openDic.Add("sign", SHA256WithRSA.Signature(content, this.private_key)); string messageJson = JsonConvert.SerializeObject(openDic); //请求响应 var data = ToHttp <IDCardTerminal> .ToPost2("https://ypay.96225.com/openapi", messageJson); if (!data.success) { return(data.respCode + ":" + data.respDesc); } var idcard = JsonConvert.DeserializeObject <IDCardValue>(data.value); //返回参数体 Dictionary <string, string> check = new Dictionary <string, string>(); check.Add("reqSeq", reqSeq.ToString()); check.Add("sign_param", "success,value"); //bool类型转为小写 check.Add("success", data.success.ToString().ToLower()); check.Add("value", data.value); check.Add("sign", data.sign); //加签字符串 var content2 = SHA256WithRSA.getSignContent(check); //var sign = SHA256WithRSA.Signature(content2, this.public_key); //验签 var result = SHA256WithRSA.rsaCheck(content2, public_key, data.sign); if (!result) { return("验签失败"); } else { //根据设备获取厢房 var room = dBtlljfl.GrabageRoom.FirstOrDefault(x => x.Facilityuuid == DeviceID); if (room == null) { return("请先将设备绑定厢房"); } var user = dBtlljfl.SystemUser.FirstOrDefault(x => x.IDCardMD5 == idcard.idcard); if (user == null) { return("此用户未绑定市民卡号"); } if (user.HomeAddressUUID == null) { return("此用户未绑定家庭码"); } var time = DateTime.Now.ToString("yyyy-MM-dd"); //当天赋分次数 var disposal = dBtlljfl.GrabageDisposal.Count(x => x.HomeAddressUUID == user.HomeAddressUUID && x.ScoreAddtime.Substring(0, 10) == time && x.IsScore == "1"); //获取设置的评分次数 var num = dBtlljfl.Overallsituation.First(); TimeSpan nowDt = DateTime.Now.TimeOfDay; TimeSpan AmstartDt = DateTime.Parse("7:00").TimeOfDay; TimeSpan AmendDt = DateTime.Parse("9:00").TimeOfDay; TimeSpan PmstartDt = DateTime.Parse("18:00").TimeOfDay; TimeSpan PmendDt = DateTime.Parse("20:00").TimeOfDay; int datediff = 10; var disposals = dBtlljfl.GrabageDisposal.Where(x => x.HomeAddressUUID == user.HomeAddressUUID && x.IsScore == "0"); if (disposals.Count() > 0) { var disposalss = disposals.OrderByDescending(x => x.ID).First(); TimeSpan a = (DateTime.Now - DateTime.Parse(disposalss.AddTime)); datediff = a.Seconds; } if (disposal >= num.SetNumber) { return("今日该家庭赋分超过" + num.SetNumber + "次"); } else if (datediff < 10) { return("间隔10秒后再赋分"); } else if ((nowDt > AmstartDt && nowDt < AmendDt) || (nowDt > PmstartDt && nowDt < PmendDt)) { //之前赋分记录 //var all = from g in _dbContext.GrabageDisposal // join sc in _dbContext.ScoreSetting // on g.ScoreSettingUuid equals sc.ScoreUuid // where g.HomeAddressUuid == huuid // select new // { // sc.Integral // }; //之前赋分分数之和 //var sum = all.Sum(x => x.Integral.Value); //获取设置的评分分数 //var scoreSetting = _dbContext.ScoreSetting.First(x => x.ScoreName == "好"); var scoreSetting = dBtlljfl.ScoreSetting.First(); //添加赋分记录 GrabageDisposal gd = new GrabageDisposal(); gd.AddTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); gd.IsDelete = "0"; gd.GarbageDisposalUUID = Guid.NewGuid(); gd.GrabageRoomID = room.GarbageRoomUUID; gd.ScoreSettingUUid = scoreSetting.ScoreUUID; gd.HomeAddressUUID = user.HomeAddressUUID; gd.SystemUserUUID = user.SystemUserUUID; gd.IsScore = "0"; gd.MarkType = "市民卡"; dBtlljfl.GrabageDisposal.Add(gd); dBtlljfl.SaveChanges(); } else { return("未在投放时间投放"); } return("投放成功"); } } }
public string Get1(string DeviceID, string Strcontent) { DeviceID = DeviceID.ToLower(); if (string.IsNullOrEmpty(DeviceID) || string.IsNullOrEmpty(Strcontent)) { return("请求参数存在空值" + "deviceid" + DeviceID + "strcontent" + Strcontent); } else { if (Strcontent.Split('_')[0] == "d") { string ddyuuid = Strcontent.Split('_')[1]; //根据设备获取厢房 var room = dBtlljfl.GrabageRoom.FirstOrDefault(x => x.Facilityuuid == DeviceID); if (room == null) { return("请先将设备绑定厢房"); } var ddyentity = dBtlljfl.GrabageRoom.FirstOrDefault(x => x.GarbageRoomUUID == room.GarbageRoomUUID && x.IsDelete != "1"); if (ddyentity == null) { return("暂无该厢房信息"); } if (Guid.Parse(ddyuuid) != room.GarbageRoomUUID) { return("您暂未拥有该厢房的赋分权限"); } var query = dBtlljfl.GrabageDisposal.Where(x => x.IsDelete != "1").OrderByDescending(x => x.ID).First(); if (query.IsScore != "0") { return("暂无赋分对象"); } //赋分前分数 var hd = dBtlljfl.HomeAddress.FirstOrDefault(x => x.HomeAddressUUID == query.HomeAddressUUID); var scoreSetting = dBtlljfl.ScoreSetting.First(); //加分 hd.Score = hd.Score + scoreSetting.Integral; query.ScoreSettingUUid = scoreSetting.ScoreUUID; query.ScoreAddtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); query.IsScore = "1"; dBtlljfl.SaveChanges(); return("赋分成功"); } else { //二维码内容校验 var arr = Strcontent.Split('_'); if (arr == null || arr.Length < 2 || arr[0].Length != 1) { return("此二维码内容有误"); } if (arr[0] == "b") { var result = arr[1]; var idcard = Common(result); var entity = dBtlljfl.SystemUser.FirstOrDefault(x => x.UserIdCard == idcard); if (entity == null) { return(idcard); } //根据设备获取厢房 var room = dBtlljfl.GrabageRoom.FirstOrDefault(x => x.Facilityuuid == DeviceID); if (room == null) { return("请先将设备绑定厢房"); } Guid puuid = entity.SystemUserUUID; Guid huuid = entity.HomeAddressUUID.Value; if (huuid == null || huuid == Guid.Empty) { return("此用户未绑定家庭码或家庭码不存在"); } var time = DateTime.Now.ToString("yyyy-MM-dd"); //当天赋分次数 var disposal = dBtlljfl.GrabageDisposal.Count(x => x.HomeAddressUUID == huuid && x.ScoreAddtime.Substring(0, 10) == time && x.IsScore == "1"); //获取设置的评分次数 var num = dBtlljfl.Overallsituation.First(); TimeSpan nowDt = DateTime.Now.TimeOfDay; TimeSpan AmstartDt = DateTime.Parse("7:00").TimeOfDay; TimeSpan AmendDt = DateTime.Parse("9:00").TimeOfDay; TimeSpan PmstartDt = DateTime.Parse("18:00").TimeOfDay; TimeSpan PmendDt = DateTime.Parse("20:00").TimeOfDay; int datediff = 10; var disposals = dBtlljfl.GrabageDisposal.Where(x => x.HomeAddressUUID == huuid && x.IsScore == "0"); if (disposals.Count() > 0) { var disposalss = disposals.OrderByDescending(x => x.ID).First(); TimeSpan a = (DateTime.Now - DateTime.Parse(disposalss.AddTime)); datediff = a.Seconds; } if (disposal >= num.SetNumber) { return("今日该家庭赋分超过" + num.SetNumber + "次"); } else if (datediff < 10) { return("间隔10秒后再赋分"); } else if ((nowDt > AmstartDt && nowDt < AmendDt) || (nowDt > PmstartDt && nowDt < PmendDt)) { var scoreSetting = dBtlljfl.ScoreSetting.First(); //添加赋分记录 GrabageDisposal gd = new GrabageDisposal(); gd.AddTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); gd.IsDelete = "0"; gd.GarbageDisposalUUID = Guid.NewGuid(); gd.GrabageRoomID = room.GarbageRoomUUID; gd.HomeAddressUUID = huuid; gd.MarkType = "百姓码"; gd.IsScore = "0"; if (puuid != Guid.Empty) { gd.SystemUserUUID = puuid; } dBtlljfl.GrabageDisposal.Add(gd); dBtlljfl.SaveChanges(); } else { return("未在投放时间投放"); } return("投放成功"); } else { //string md5 = YunSendMsg.GenerateMD5(DeviceID+Strcontent); //string md5 = YunSendMsg.GenerateMD5("deviceid" + DeviceID + "strcontent" + Strcontent + "8a261bcf2070c42865ec7619"); //md5 = YunSendMsg.GenerateMD5("deviceid" + DeviceID + "strcontent" + Strcontent+md5); //if (md5 != Sign) //{ // return ("校验失败" + md5 + ":" + Sign + "(" + "deviceid" + DeviceID + "strcontent" + Strcontent + "8a261bcf2070c42865ec7619"); // //} //根据设备获取厢房 var room = dBtlljfl.GrabageRoom.FirstOrDefault(x => x.Facilityuuid == DeviceID); if (room == null) { return("请先将设备绑定厢房"); } Guid huuid = Guid.Empty; Guid puuid = Guid.Empty; //家庭码 if (arr[0] == "h") { huuid = Guid.Parse(arr[1]); } if (arr[0] == "u") { puuid = Guid.Parse(arr[1]); huuid = dBtlljfl.SystemUser.FirstOrDefault(x => x.SystemUserUUID == Guid.Parse(arr[1])).HomeAddressUUID.Value; } var ent = dBtlljfl.HomeAddress.FirstOrDefault(x => x.HomeAddressUUID == huuid); if (huuid == null || huuid == Guid.Empty || ent == null) { return("此用户未绑定家庭码或家庭码不存在"); } var time = DateTime.Now.ToString("yyyy-MM-dd"); //当天赋分次数 var disposal = dBtlljfl.GrabageDisposal.Count(x => x.HomeAddressUUID == huuid && x.ScoreAddtime.Substring(0, 10) == time && x.IsScore == "1"); //获取设置的评分次数 var num = dBtlljfl.Overallsituation.First(); TimeSpan nowDt = DateTime.Now.TimeOfDay; TimeSpan AmstartDt = DateTime.Parse("7:00").TimeOfDay; TimeSpan AmendDt = DateTime.Parse("9:00").TimeOfDay; TimeSpan PmstartDt = DateTime.Parse("18:00").TimeOfDay; TimeSpan PmendDt = DateTime.Parse("20:00").TimeOfDay; int datediff = 10; var disposals = dBtlljfl.GrabageDisposal.Where(x => x.HomeAddressUUID == huuid && x.IsScore == "0"); if (disposals.Count() > 0) { var disposalss = disposals.OrderByDescending(x => x.ID).First(); TimeSpan a = (DateTime.Now - DateTime.Parse(disposalss.AddTime)); datediff = a.Seconds; } if (disposal >= num.SetNumber) { return("今日该家庭赋分超过" + num.SetNumber + "次"); } else if (datediff < 10) { return("间隔10秒后再赋分"); } else if ((nowDt > AmstartDt && nowDt < AmendDt) || (nowDt > PmstartDt && nowDt < PmendDt)) { //之前赋分记录 //var all = from g in dBtlljfl.GrabageDisposal // join sc in dBtlljfl.ScoreSetting // on g.ScoreSettingUuid equals sc.ScoreUuid // where g.HomeAddressUuid == huuid // select new // { // sc.Integral // }; //之前赋分分数之和 //var sum = all.Sum(x => x.Integral.Value); //获取设置的评分分数 //var scoreSetting = dBtlljfl.ScoreSetting.First(x => x.ScoreName == "好"); var scoreSetting = dBtlljfl.ScoreSetting.First(); //添加赋分记录 GrabageDisposal gd = new GrabageDisposal(); gd.AddTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); gd.IsDelete = "0"; gd.GarbageDisposalUUID = Guid.NewGuid(); gd.GrabageRoomID = room.GarbageRoomUUID; gd.ScoreSettingUUid = scoreSetting.ScoreUUID; gd.HomeAddressUUID = huuid; gd.IsScore = "0"; if (puuid != Guid.Empty) { gd.SystemUserUUID = puuid; } if (arr[0] == "h") { gd.MarkType = "家庭码"; } dBtlljfl.GrabageDisposal.Add(gd); dBtlljfl.SaveChanges(); } else { return("未在投放时间投放"); } return("投放成功"); } } return(""); } }