diff --git a/Nirvana.Common/Extend/Ext.DateTime.cs b/Nirvana.Common/Extend/Ext.DateTime.cs index 1a68cf2..447e7c6 100644 --- a/Nirvana.Common/Extend/Ext.DateTime.cs +++ b/Nirvana.Common/Extend/Ext.DateTime.cs @@ -265,7 +265,11 @@ namespace Nirvana.Common int month = now.Month - birthdate.Month; return month <= 0 ? age*12 : age*12+month; } - + /// + /// 获取时间戳 + /// + /// + /// public static int GetTimeStamp(this DateTime time) { int t = Convert.ToInt32((time.ToUniversalTime().Ticks - 621355968000000000) / 10000000); diff --git a/Waste.Application/Mapper.cs b/Waste.Application/Mapper.cs index 62a044a..dfddc08 100644 --- a/Waste.Application/Mapper.cs +++ b/Waste.Application/Mapper.cs @@ -1,9 +1,11 @@ using Mapster; +using Nirvana.Common; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Waste.Application.SubscribeInfo; using Waste.Domain; namespace Waste.Application @@ -18,6 +20,9 @@ namespace Waste.Application .Map(dest=>dest.time,src=>src.CreateTime.ToString("yyyy-MM-dd")) .Map(dest=>dest.type,src=>src.WasteType) ; + config.ForType() + .Map(dest => dest.Time, src => src.Time.GetTimeStamp()) + ; } } } diff --git a/Waste.Application/ResultInfos/ResultAppService.cs b/Waste.Application/ResultInfos/ResultAppService.cs index d8eb42a..ffa32ec 100644 --- a/Waste.Application/ResultInfos/ResultAppService.cs +++ b/Waste.Application/ResultInfos/ResultAppService.cs @@ -1,18 +1,15 @@ using Furion.DynamicApiController; using Microsoft.AspNetCore.Mvc; using Nirvana.Common; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; +using Waste.Application.SubscribeInfo; namespace Waste.Application.ResultInfos { /// /// 投放记录 /// - public class ResultAppService:IDynamicApiController + public class ResultAppService : IDynamicApiController { private readonly IResultService _resultService; public ResultAppService(IResultService resultService) @@ -38,5 +35,21 @@ namespace Waste.Application.ResultInfos { return await _resultService.InsertResultAsync(myPackage); } + + /// + /// wifi模块测量结果增加 + /// + /// + /// + public async Task InsertResultByWifiAsync(WifiPackage data) + { + await _resultService.InsertResultByWifiAsync(data); + } + + public async Task RecvResult(SendMessageToThirdS2CDto data) + { + var getdata = data; + return await Task.FromResult("success"); + } } } diff --git a/Waste.Application/ResultInfos/ResultService.cs b/Waste.Application/ResultInfos/ResultService.cs index e02edd7..4171b6e 100644 --- a/Waste.Application/ResultInfos/ResultService.cs +++ b/Waste.Application/ResultInfos/ResultService.cs @@ -1,8 +1,10 @@ -using Furion; +using DotNetCore.CAP; +using Furion; using Furion.DependencyInjection; using Furion.DistributedIDGenerator; using Furion.RemoteRequest.Extensions; using Furion.TaskScheduler; +using Mapster; using Nirvana.Common; using SqlSugar; using System; @@ -10,6 +12,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Waste.Application.SubscribeInfo; using Waste.Domain; namespace Waste.Application @@ -22,16 +25,14 @@ namespace Waste.Application private readonly ISqlSugarRepository repository; private readonly SqlSugarClient dbClient; private readonly ILoggerService _loggerService; - private readonly ISuZhouService _suZhouService; - private readonly IBusinessApiService _businessApiService; + private readonly ICapPublisher _capBus; - public ResultService(ISqlSugarRepository sqlSugarRepository, ILoggerService loggerService, ISuZhouService suZhouService, IBusinessApiService businessApiService) + public ResultService(ISqlSugarRepository sqlSugarRepository, ILoggerService loggerService, ICapPublisher capPublisher) { repository = sqlSugarRepository; dbClient = repository.Context; _loggerService = loggerService; - _suZhouService = suZhouService; - _businessApiService = businessApiService; + _capBus = capPublisher; } /// /// 获取投放记录 @@ -169,15 +170,16 @@ namespace Waste.Application { isfrist = true; } + decimal currentweight= data.Weight.IsEmpty() ? 0 : data.Weight.ToDecimal(); //记录数据 await dbClient.Ado.UseStoredProcedure().ExecuteCommandAsync("Proc_InsertResult", new { deviceid = device.Id, businessid = device.Businessid, resultid = resultid, - imei = devicedata !=null?devicedata.IMSI:"", - iccid = devicedata != null?devicedata.ICCID:"", - imsi = devicedata != null?devicedata.IMSI:"", + imei = devicedata != null ? devicedata.IMSI : "", + iccid = devicedata != null ? devicedata.ICCID : "", + imsi = devicedata != null ? devicedata.IMSI : "", time = time, latitude = "", longitude = "", @@ -185,12 +187,22 @@ namespace Waste.Application city = "", area = data.trashcode, wastetype = data.WasteType, - weigth = data.Weight, + weigth = currentweight, isheart = data.IsHeart, tare = device.Tare, isfrist = isfrist }); - + if (!data.IsHeart) + { + await SendMessageToThird(new SendThirdMessageSubscribeS2SDto + { + DeviceId = device.Id, + Time = time, + TrashCode = data.trashcode, + WasteType = data.WasteType, + Weight = currentweight + }); + } } /// @@ -254,6 +266,37 @@ namespace Waste.Application tare = device.Tare, isfrist = isfrist }); + if (!myPackage.IsHeart) + { + await SendMessageToThird(new SendThirdMessageSubscribeS2SDto + { + DeviceId = device.Id, + Time = time, + TrashCode = myPackage.trashcode, + WasteType = myPackage.WasteType, + Weight = Weight + }); + } + } + /// + /// 给第三方推送消息 + /// + /// + /// + private async Task SendMessageToThird(SendThirdMessageSubscribeS2SDto input) + { + var configdata = await dbClient.Queryable().Where(x => x.DeviceId == input.DeviceId).Select(x => new W_DeviceConfig + { + Body = x.Body, + Url = x.Url + }).FirstAsync(); + if (configdata != null && !configdata.Url.IsEmpty()) + { + var senddata = input.Adapt(); + senddata.Body = configdata.Body.ToStr(); + senddata.Url = configdata.Url.ToStr(); + await _capBus.PublishAsync("third.service.sendmessage", senddata); + } } /// /// 增加测量记录 @@ -315,6 +358,7 @@ namespace Waste.Application // var areaHex = Convert.ToHexString(areaBytes); } + decimal weight = myPackage.Weight.IsEmpty() ? 0 : myPackage.Weight.ToDecimal(); //记录数据 await dbClient.Ado.UseStoredProcedure().ExecuteCommandAsync("Proc_InsertResult", new { @@ -331,7 +375,7 @@ namespace Waste.Application city = myPackage.City, area = myPackage.Area, wastetype = myPackage.WasteType, - weigth = myPackage.Weight, + weigth = weight, isheart = myPackage.IsHeart, tare = device.Tare, isfrist = isfrist @@ -358,6 +402,17 @@ namespace Waste.Application // }); // } //} + if (!myPackage.IsHeart) + { + await SendMessageToThird(new SendThirdMessageSubscribeS2SDto + { + DeviceId = device.Id, + Time = time, + TrashCode = myPackage.Area, + WasteType = myPackage.WasteType, + Weight = weight + }); + } return new ResultInfo(ResultState.SUCCESS, "success"); } diff --git a/Waste.Application/SubscribeInfo/Dtos/SubscribeDto.cs b/Waste.Application/SubscribeInfo/Dtos/SubscribeDto.cs index 46cf3f3..9916d5c 100644 --- a/Waste.Application/SubscribeInfo/Dtos/SubscribeDto.cs +++ b/Waste.Application/SubscribeInfo/Dtos/SubscribeDto.cs @@ -85,7 +85,45 @@ namespace Waste.Application.SubscribeInfo /// /// 发送第三方消息 /// - public class SendThirdMessageSubscriDto + public class SendThirdMessageSubscribeS2SDto + { + /// + /// 设备ID + /// + public Guid DeviceId { get; set; } + + /// + /// 垃圾类别 + /// + public string WasteType { get; set; } + /// + /// 重量,单位KG + /// + public decimal Weight { get; set; } + /// + /// 垃圾桶编号 + /// s + public string TrashCode { get; set; } + /// + /// 上报时间 + /// + public DateTime Time { get; set; } + } + + /// + /// 发送第三方消息 + /// + public class SendThirdMessageSubscriDto: SendMessageToThirdS2CDto + { + /// + /// 推送地址 + /// + public string Url { get; set; } + } + /// + /// 推送给第三方的信息 + /// + public class SendMessageToThirdS2CDto { /// /// 垃圾类别 @@ -104,12 +142,13 @@ namespace Waste.Application.SubscribeInfo /// public long Time { get; set; } /// - /// 推送地址 - /// - public string Url { get; set; } - /// /// 额外信息 /// public string Body { get; set; } + + /// + /// 设备ID + /// + public Guid DeviceId { get; set; } } } diff --git a/Waste.Application/SubscribeInfo/SubscribeService.cs b/Waste.Application/SubscribeInfo/SubscribeService.cs index 0859c34..98fd2a2 100644 --- a/Waste.Application/SubscribeInfo/SubscribeService.cs +++ b/Waste.Application/SubscribeInfo/SubscribeService.cs @@ -3,6 +3,7 @@ using Furion.DependencyInjection; using Furion.DistributedIDGenerator; using Furion.Logging.Extensions; using Furion.RemoteRequest.Extensions; +using Mapster; using Newtonsoft.Json; using Nirvana.Common; using SqlSugar; @@ -263,8 +264,9 @@ namespace Waste.Application.SubscribeInfo public async Task SeedThirdMessageAsync(SendThirdMessageSubscriDto data) { string errmsg = string.Empty; + var senddata = data.Adapt(); var response = await data.Url - .SetBody(data, "application/json", Encoding.UTF8) + .SetBody(senddata, "application/json", Encoding.UTF8) .OnException((res, errors) => { errmsg = errors; @@ -278,7 +280,7 @@ namespace Waste.Application.SubscribeInfo { _loggerService.AddLogger($"第三方设备消息发送失败,内容:{data.ToJson()},返回:{returnstr}", 1); } - if(returnstr.ToLower() != "success") + if (returnstr.ToLower() != "success") { _loggerService.AddLogger($"第三方设备消息发送失败,内容:{data.ToJson()},返回:{returnstr}", 1); } diff --git a/Waste.Application/Waste.Application.xml b/Waste.Application/Waste.Application.xml index ee0fa60..a964d9f 100644 --- a/Waste.Application/Waste.Application.xml +++ b/Waste.Application/Waste.Application.xml @@ -1901,6 +1901,13 @@ + + + wifi模块测量结果增加 + + + + 投放记录管理 @@ -1927,6 +1934,13 @@ + + + 给第三方推送消息 + + + + 增加测量记录 @@ -2079,37 +2093,72 @@ 版本号 - + 发送第三方消息 - + + + 设备ID + + + 垃圾类别 - + 重量,单位KG - + 垃圾桶编号 - + s - + 上报时间 + + + 发送第三方消息 + + 推送地址 - + + + 推送给第三方的信息 + + + + + 垃圾类别 + + + + + 重量,单位KG + + + + + 垃圾桶编号 + + + + + 上报时间 + + + 额外信息 diff --git a/Waste.Web.Entry/Properties/PublishProfiles/waste.ybhdmob.com.pubxml.user b/Waste.Web.Entry/Properties/PublishProfiles/waste.ybhdmob.com.pubxml.user index fa413a6..9008ced 100644 --- a/Waste.Web.Entry/Properties/PublishProfiles/waste.ybhdmob.com.pubxml.user +++ b/Waste.Web.Entry/Properties/PublishProfiles/waste.ybhdmob.com.pubxml.user @@ -5,6 +5,6 @@ https://go.microsoft.com/fwlink/?LinkID=208121. <_PublishTargetUrl>D:\webpublish\waste.ybhdmob.com - True|2022-05-19T02:00:43.2712891Z;True|2022-05-17T18:00:53.2618269+08:00;True|2022-05-17T17:55:33.2053115+08:00;True|2022-05-17T17:38:48.8279756+08:00;True|2022-05-16T16:44:49.1758100+08:00;True|2022-03-30T10:54:32.5565057+08:00;True|2022-03-30T10:53:48.9972377+08:00;True|2022-03-30T10:50:31.5745775+08:00;True|2022-03-30T10:47:50.1605527+08:00;True|2022-03-30T10:15:59.9812921+08:00;True|2022-03-29T09:29:45.1039655+08:00;True|2022-03-29T09:21:47.0149226+08:00;True|2022-03-28T10:33:44.7419612+08:00;True|2022-03-28T10:22:40.9448563+08:00;True|2022-03-28T10:19:15.1438519+08:00;True|2022-01-20T10:39:53.2000547+08:00;True|2021-11-23T17:45:59.0399234+08:00;True|2021-11-23T14:52:52.6108389+08:00;True|2021-11-23T13:47:55.8909321+08:00;True|2021-11-23T13:46:38.7796888+08:00;True|2021-11-23T13:42:14.9551976+08:00;True|2021-11-23T13:40:54.9093258+08:00;True|2021-11-23T13:31:49.0003794+08:00;True|2021-11-23T13:29:43.7414639+08:00;True|2021-10-12T15:18:06.6012215+08:00;True|2021-10-12T15:11:17.7752651+08:00;True|2021-10-12T14:54:39.0578509+08:00;True|2021-10-12T11:25:18.7098128+08:00;True|2021-09-18T15:34:20.7386778+08:00;True|2021-09-15T11:09:28.0068993+08:00;True|2021-09-07T12:19:33.4635211+08:00;True|2021-09-07T11:36:13.4563799+08:00;True|2021-09-03T15:41:46.2819586+08:00;True|2021-08-31T17:16:16.0336390+08:00;True|2021-08-31T16:05:30.7224440+08:00;True|2021-08-23T09:44:46.2114418+08:00;True|2021-08-19T20:32:56.2854974+08:00;True|2021-08-18T14:01:33.0411246+08:00;True|2021-08-17T10:05:15.4299188+08:00;True|2021-08-13T19:32:53.6307075+08:00;True|2021-08-13T19:29:50.5876782+08:00;True|2021-08-13T19:14:14.2545106+08:00;True|2021-08-13T15:24:09.4521125+08:00;True|2021-08-13T14:59:40.4579407+08:00;True|2021-08-13T10:02:29.7650246+08:00;True|2021-08-13T09:45:10.6245894+08:00;True|2021-08-12T20:11:21.5851106+08:00;True|2021-08-12T20:00:42.4820498+08:00;True|2021-08-12T18:44:08.3079650+08:00;True|2021-08-12T18:35:47.4730766+08:00;True|2021-08-12T18:32:10.9361388+08:00;True|2021-08-12T18:30:21.4006961+08:00;True|2021-08-12T18:13:00.9624470+08:00;True|2021-08-12T18:10:12.3459311+08:00;True|2021-08-12T18:09:18.8656414+08:00;True|2021-08-12T17:35:24.7213607+08:00;True|2021-08-11T07:54:57.1322848+08:00;True|2021-08-10T10:16:40.7495389+08:00;True|2021-08-03T11:16:02.7897282+08:00;True|2021-08-02T16:39:27.2332369+08:00;True|2021-08-02T15:07:40.7995318+08:00;True|2021-08-02T14:32:29.6885424+08:00;True|2021-08-02T14:31:18.6578543+08:00;True|2021-08-02T14:27:57.1301002+08:00;True|2021-08-02T10:55:40.3542370+08:00;True|2021-08-02T09:44:28.0994056+08:00;True|2021-08-01T13:49:38.4071985+08:00;True|2021-08-01T13:36:45.5372120+08:00;True|2021-08-01T11:00:19.6165520+08:00;True|2021-08-01T10:38:51.4029710+08:00;True|2021-07-31T20:27:53.6583811+08:00;True|2021-07-31T18:35:23.4214441+08:00;True|2021-07-31T17:34:14.0712243+08:00;True|2021-07-31T14:50:43.2065556+08:00;True|2021-07-30T17:59:30.2223340+08:00;True|2021-07-30T17:57:35.9412910+08:00;True|2021-07-30T17:07:58.3305971+08:00;True|2021-07-30T17:04:10.9244859+08:00;True|2021-07-30T17:02:12.1943634+08:00;True|2021-07-30T16:16:22.2838331+08:00;True|2021-07-30T15:05:26.5664155+08:00;True|2021-07-30T14:57:59.1966108+08:00;True|2021-07-30T14:54:25.8172908+08:00;True|2021-07-30T14:52:20.9209995+08:00;True|2021-07-30T14:35:29.5239463+08:00;True|2021-07-30T09:32:38.2676032+08:00;True|2021-07-30T09:14:42.6170851+08:00;True|2021-07-29T19:06:09.1449349+08:00;True|2021-06-11T08:16:29.9542894+08:00;True|2021-06-04T14:46:02.2707457+08:00;True|2021-06-02T15:08:52.8245632+08:00;True|2021-06-02T15:05:50.3614099+08:00;True|2021-06-02T14:59:32.3690948+08:00;True|2021-06-02T14:10:25.1182836+08:00;True|2021-06-02T14:09:54.9215833+08:00;True|2021-06-01T10:41:54.9488501+08:00;True|2021-06-01T10:38:56.0283198+08:00;True|2021-05-28T13:59:02.2308877+08:00;True|2021-05-28T11:56:26.6796406+08:00;True|2021-05-28T11:28:00.4087907+08:00;True|2021-05-27T16:18:09.5993838+08:00;True|2021-05-27T16:07:31.3484951+08:00;True|2021-05-27T11:30:37.9119310+08:00;True|2021-05-27T11:28:35.5374674+08:00;True|2021-05-27T08:00:09.1625592+08:00;True|2021-05-26T20:42:17.0852150+08:00;True|2021-05-26T20:36:49.7527415+08:00;True|2021-05-25T17:57:31.8791293+08:00;True|2021-05-25T13:49:29.6488978+08:00;True|2021-05-25T13:48:24.6686105+08:00;True|2021-05-25T13:25:41.2512493+08:00;True|2021-05-24T17:55:33.3800078+08:00;True|2021-05-20T14:35:30.6957985+08:00;True|2021-05-20T13:17:22.6192995+08:00;True|2021-05-20T10:51:38.1268169+08:00;True|2021-05-19T19:50:03.7000224+08:00;True|2021-05-19T19:44:27.2518811+08:00;True|2021-05-19T19:43:26.5916681+08:00;True|2021-05-19T19:36:29.3197365+08:00;True|2021-05-19T19:30:00.3802430+08:00;True|2021-05-19T17:55:23.7939835+08:00;True|2021-05-19T11:05:17.9043392+08:00;True|2021-05-19T10:19:38.4839988+08:00;True|2021-05-19T10:17:19.7430612+08:00;True|2021-05-19T10:13:23.0031721+08:00;True|2021-05-19T10:06:03.9881599+08:00;True|2021-05-18T14:39:03.8876574+08:00;True|2021-05-18T14:23:46.9818836+08:00;True|2021-05-18T14:19:56.2382079+08:00;True|2021-05-18T11:29:53.5497590+08:00;True|2021-05-18T11:16:18.0123853+08:00;True|2021-05-17T18:59:52.4159105+08:00;True|2021-05-17T18:53:37.9438984+08:00;True|2021-05-17T18:48:14.9625161+08:00;True|2021-05-17T17:46:03.7723404+08:00;True|2021-05-17T17:14:20.2312990+08:00;True|2021-05-17T16:44:34.5837616+08:00;True|2021-05-17T16:25:20.1087804+08:00;True|2021-05-17T11:35:27.9388562+08:00; + True|2022-05-19T06:38:58.4564787Z;True|2022-05-19T10:00:43.2712891+08:00;True|2022-05-17T18:00:53.2618269+08:00;True|2022-05-17T17:55:33.2053115+08:00;True|2022-05-17T17:38:48.8279756+08:00;True|2022-05-16T16:44:49.1758100+08:00;True|2022-03-30T10:54:32.5565057+08:00;True|2022-03-30T10:53:48.9972377+08:00;True|2022-03-30T10:50:31.5745775+08:00;True|2022-03-30T10:47:50.1605527+08:00;True|2022-03-30T10:15:59.9812921+08:00;True|2022-03-29T09:29:45.1039655+08:00;True|2022-03-29T09:21:47.0149226+08:00;True|2022-03-28T10:33:44.7419612+08:00;True|2022-03-28T10:22:40.9448563+08:00;True|2022-03-28T10:19:15.1438519+08:00;True|2022-01-20T10:39:53.2000547+08:00;True|2021-11-23T17:45:59.0399234+08:00;True|2021-11-23T14:52:52.6108389+08:00;True|2021-11-23T13:47:55.8909321+08:00;True|2021-11-23T13:46:38.7796888+08:00;True|2021-11-23T13:42:14.9551976+08:00;True|2021-11-23T13:40:54.9093258+08:00;True|2021-11-23T13:31:49.0003794+08:00;True|2021-11-23T13:29:43.7414639+08:00;True|2021-10-12T15:18:06.6012215+08:00;True|2021-10-12T15:11:17.7752651+08:00;True|2021-10-12T14:54:39.0578509+08:00;True|2021-10-12T11:25:18.7098128+08:00;True|2021-09-18T15:34:20.7386778+08:00;True|2021-09-15T11:09:28.0068993+08:00;True|2021-09-07T12:19:33.4635211+08:00;True|2021-09-07T11:36:13.4563799+08:00;True|2021-09-03T15:41:46.2819586+08:00;True|2021-08-31T17:16:16.0336390+08:00;True|2021-08-31T16:05:30.7224440+08:00;True|2021-08-23T09:44:46.2114418+08:00;True|2021-08-19T20:32:56.2854974+08:00;True|2021-08-18T14:01:33.0411246+08:00;True|2021-08-17T10:05:15.4299188+08:00;True|2021-08-13T19:32:53.6307075+08:00;True|2021-08-13T19:29:50.5876782+08:00;True|2021-08-13T19:14:14.2545106+08:00;True|2021-08-13T15:24:09.4521125+08:00;True|2021-08-13T14:59:40.4579407+08:00;True|2021-08-13T10:02:29.7650246+08:00;True|2021-08-13T09:45:10.6245894+08:00;True|2021-08-12T20:11:21.5851106+08:00;True|2021-08-12T20:00:42.4820498+08:00;True|2021-08-12T18:44:08.3079650+08:00;True|2021-08-12T18:35:47.4730766+08:00;True|2021-08-12T18:32:10.9361388+08:00;True|2021-08-12T18:30:21.4006961+08:00;True|2021-08-12T18:13:00.9624470+08:00;True|2021-08-12T18:10:12.3459311+08:00;True|2021-08-12T18:09:18.8656414+08:00;True|2021-08-12T17:35:24.7213607+08:00;True|2021-08-11T07:54:57.1322848+08:00;True|2021-08-10T10:16:40.7495389+08:00;True|2021-08-03T11:16:02.7897282+08:00;True|2021-08-02T16:39:27.2332369+08:00;True|2021-08-02T15:07:40.7995318+08:00;True|2021-08-02T14:32:29.6885424+08:00;True|2021-08-02T14:31:18.6578543+08:00;True|2021-08-02T14:27:57.1301002+08:00;True|2021-08-02T10:55:40.3542370+08:00;True|2021-08-02T09:44:28.0994056+08:00;True|2021-08-01T13:49:38.4071985+08:00;True|2021-08-01T13:36:45.5372120+08:00;True|2021-08-01T11:00:19.6165520+08:00;True|2021-08-01T10:38:51.4029710+08:00;True|2021-07-31T20:27:53.6583811+08:00;True|2021-07-31T18:35:23.4214441+08:00;True|2021-07-31T17:34:14.0712243+08:00;True|2021-07-31T14:50:43.2065556+08:00;True|2021-07-30T17:59:30.2223340+08:00;True|2021-07-30T17:57:35.9412910+08:00;True|2021-07-30T17:07:58.3305971+08:00;True|2021-07-30T17:04:10.9244859+08:00;True|2021-07-30T17:02:12.1943634+08:00;True|2021-07-30T16:16:22.2838331+08:00;True|2021-07-30T15:05:26.5664155+08:00;True|2021-07-30T14:57:59.1966108+08:00;True|2021-07-30T14:54:25.8172908+08:00;True|2021-07-30T14:52:20.9209995+08:00;True|2021-07-30T14:35:29.5239463+08:00;True|2021-07-30T09:32:38.2676032+08:00;True|2021-07-30T09:14:42.6170851+08:00;True|2021-07-29T19:06:09.1449349+08:00;True|2021-06-11T08:16:29.9542894+08:00;True|2021-06-04T14:46:02.2707457+08:00;True|2021-06-02T15:08:52.8245632+08:00;True|2021-06-02T15:05:50.3614099+08:00;True|2021-06-02T14:59:32.3690948+08:00;True|2021-06-02T14:10:25.1182836+08:00;True|2021-06-02T14:09:54.9215833+08:00;True|2021-06-01T10:41:54.9488501+08:00;True|2021-06-01T10:38:56.0283198+08:00;True|2021-05-28T13:59:02.2308877+08:00;True|2021-05-28T11:56:26.6796406+08:00;True|2021-05-28T11:28:00.4087907+08:00;True|2021-05-27T16:18:09.5993838+08:00;True|2021-05-27T16:07:31.3484951+08:00;True|2021-05-27T11:30:37.9119310+08:00;True|2021-05-27T11:28:35.5374674+08:00;True|2021-05-27T08:00:09.1625592+08:00;True|2021-05-26T20:42:17.0852150+08:00;True|2021-05-26T20:36:49.7527415+08:00;True|2021-05-25T17:57:31.8791293+08:00;True|2021-05-25T13:49:29.6488978+08:00;True|2021-05-25T13:48:24.6686105+08:00;True|2021-05-25T13:25:41.2512493+08:00;True|2021-05-24T17:55:33.3800078+08:00;True|2021-05-20T14:35:30.6957985+08:00;True|2021-05-20T13:17:22.6192995+08:00;True|2021-05-20T10:51:38.1268169+08:00;True|2021-05-19T19:50:03.7000224+08:00;True|2021-05-19T19:44:27.2518811+08:00;True|2021-05-19T19:43:26.5916681+08:00;True|2021-05-19T19:36:29.3197365+08:00;True|2021-05-19T19:30:00.3802430+08:00;True|2021-05-19T17:55:23.7939835+08:00;True|2021-05-19T11:05:17.9043392+08:00;True|2021-05-19T10:19:38.4839988+08:00;True|2021-05-19T10:17:19.7430612+08:00;True|2021-05-19T10:13:23.0031721+08:00;True|2021-05-19T10:06:03.9881599+08:00;True|2021-05-18T14:39:03.8876574+08:00;True|2021-05-18T14:23:46.9818836+08:00;True|2021-05-18T14:19:56.2382079+08:00;True|2021-05-18T11:29:53.5497590+08:00;True|2021-05-18T11:16:18.0123853+08:00;True|2021-05-17T18:59:52.4159105+08:00;True|2021-05-17T18:53:37.9438984+08:00;True|2021-05-17T18:48:14.9625161+08:00;True|2021-05-17T17:46:03.7723404+08:00;True|2021-05-17T17:14:20.2312990+08:00;True|2021-05-17T16:44:34.5837616+08:00;True|2021-05-17T16:25:20.1087804+08:00;True|2021-05-17T11:35:27.9388562+08:00; \ No newline at end of file