From 8d5e9fe08aea60a2579676bee49a2b8fe0358965 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E5=AF=92?= <823756726@qq.com>
Date: Mon, 19 Aug 2024 13:45:13 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=93=E4=B8=9A=E5=92=8C?=
=?UTF-8?q?=E7=B3=BB=E9=83=A8=20=E4=BF=AE=E6=94=B9=E5=85=B6=E4=BB=96bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SafeCampus.Application.xml | 144 +++++++++++++++++-
.../DepartmentService/DepartmentService.cs | 75 +++++++++
.../DepartmentService/Dto/DepartmentDto.cs | 17 +++
.../DepartmentService/Dto/DepartmentSearch.cs | 9 ++
.../DepartmentService/IDepartmentService.cs | 40 +++++
.../Business/MajorService/Dto/MajorDto.cs | 35 +++++
.../Business/MajorService/Dto/MajorSearch.cs | 17 +++
.../Business/MajorService/IMajorService.cs | 40 +++++
.../Business/MajorService/MajorService.cs | 80 ++++++++++
.../Dto/PersonSetInfoDto.cs | 10 +-
.../IPersonSetInfoService.cs | 2 +-
.../PersonSetInfoService.cs | 4 +-
.../Entity/DepartmentInfo.cs | 20 +++
.../SafeCampus.System/Entity/MajorInfo.cs | 39 +++++
.../SafeCampus.System/Entity/PersonSetInfo.cs | 12 +-
.../Entity/System/SysDict.cs | 2 -
.../SafeCampus.System/SafeCampus.System.xml | 50 ++++++
.../Components/AuthComponent.cs | 12 +-
.../Components/WebSettingsComponent.cs | 12 +-
.../Business/DepartmentController.cs | 78 ++++++++++
.../Application/Business/DfieldApi.cs | 9 +-
.../Business/DormitoryController.cs | 4 +-
.../Application/Business/Dto/DfieldInput.cs | 4 +
.../Application/Business/MajorController.cs | 77 ++++++++++
.../LargeScreen/LargeScreenController.cs | 29 +++-
.../SafeCampus.Web.Core.xml | 114 +++++++++++++-
.../PublishProfiles/FolderProfile.pubxml.user | 2 +-
27 files changed, 896 insertions(+), 41 deletions(-)
create mode 100644 SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/DepartmentService.cs
create mode 100644 SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentDto.cs
create mode 100644 SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentSearch.cs
create mode 100644 SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/IDepartmentService.cs
create mode 100644 SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorDto.cs
create mode 100644 SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorSearch.cs
create mode 100644 SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/IMajorService.cs
create mode 100644 SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/MajorService.cs
create mode 100644 SafeCampus.API/SafeCampus.System/Entity/DepartmentInfo.cs
create mode 100644 SafeCampus.API/SafeCampus.System/Entity/MajorInfo.cs
create mode 100644 SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DepartmentController.cs
create mode 100644 SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/MajorController.cs
diff --git a/SafeCampus.API/SafeCampus.Application/SafeCampus.Application.xml b/SafeCampus.API/SafeCampus.Application/SafeCampus.Application.xml
index cf583dd..6a60cc3 100644
--- a/SafeCampus.API/SafeCampus.Application/SafeCampus.Application.xml
+++ b/SafeCampus.API/SafeCampus.Application/SafeCampus.Application.xml
@@ -1020,6 +1020,67 @@
+
+
+ id
+
+
+
+
+ 院系名称
+
+
+
+
+ 院系编码
+
+
+
+
+ 院系名称
+
+
+
+
+ 添加
+
+ 添加参数
+
+
+
+
+ 修改
+
+ 添加参数
+
+
+
+
+ 获取详情
+
+
+
+
+
+
+ 删除
+
+ id
+
+
+
+
+ 获取列表
+
+
+
+
+
+ 不分页获取列表
+
+
+
+
ID
@@ -1178,6 +1239,82 @@
+
+
+ 专业名称
+
+
+
+
+ 专业编码
+
+
+
+
+ 专业简介
+
+
+
+
+ 院系id
+
+
+
+
+ 专业名称
+
+
+
+
+ 专业编码
+
+
+
+
+ 院系id
+
+
+
+
+ 添加
+
+ 添加参数
+
+
+
+
+ 修改
+
+ 添加参数
+
+
+
+
+ 获取详情
+
+
+
+
+
+
+ 删除
+
+ id
+
+
+
+
+ 获取列表
+
+
+
+
+
+ 获取列表不分页
+
+
+
+
主键Id
@@ -1460,6 +1597,11 @@
班级名称
+
+
+ 专业id
+
+
添加班级
@@ -1480,7 +1622,7 @@
-
+
获取底库列表
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/DepartmentService.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/DepartmentService.cs
new file mode 100644
index 0000000..d192df8
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/DepartmentService.cs
@@ -0,0 +1,75 @@
+namespace SafeCampus.Application.Services.Business.DepartmentService;
+
+public class DepartmentService: DbRepository, IDepartmentService
+{
+ public async Task Add(DepartmentDto input)
+ {
+ var model = input.Adapt();
+ await InsertAsync(model);
+ return true;
+ }
+
+ public async Task Update(DepartmentDto input)
+ {
+ if (!input.Id.HasValue)
+ {
+ throw Oops.Oh("请填写ID");
+ }
+ var model = await GetFirstAsync(p => p.Id == input.Id);
+ if (model == null)
+ {
+ throw Oops.Oh("信息不存在");
+ }
+ var res = input.Adapt(model);
+ await UpdateAsync(res);
+ return true;
+ }
+
+ public async Task GetInfo(long id)
+ {
+ var query = await Context.Queryable()
+ .FirstAsync(x => x.Id == id);
+ return query.Adapt();
+ }
+
+ public async Task Delete(List id)
+ {
+ var majorInfo = ChangeRepository>();//切换仓储
+
+ var model = await GetListAsync(x => id.Contains(x.Id));
+ if (!model.Any())
+ {
+ throw Oops.Oh("信息不存在");
+ }
+ foreach (var departmentInfo in model)
+ {
+ var isOK = await majorInfo.IsAnyAsync(x => x.DepId == departmentInfo.Id);
+ if (isOK)
+ {
+ throw Oops.Oh($"{departmentInfo.Name}院系下还有专业禁止删除!");
+ }
+ }
+ await DeleteAsync(model);
+ return true;
+ }
+
+ public async Task> GetPageList(DepartmentSearch search)
+ {
+ var query = Context.Queryable()
+ .WhereIF(!string.IsNullOrEmpty(search.Name), x => x.Name.Contains(search.Name));
+
+ var list = await query.OrderByDescending(x => x.Code)
+ .ToPagedListAsyncMapster(search.PageNum, search.PageSize);
+ return list;
+ }
+
+ public async Task> GetNoPageList(DepartmentSearch search)
+ {
+ var query = Context.Queryable()
+ .WhereIF(!string.IsNullOrEmpty(search.Name), x => x.Name.Contains(search.Name));
+
+ var list = await query.OrderByDescending(x => x.Code)
+ .ToListAsync();
+ return list.Adapt>();
+ }
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentDto.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentDto.cs
new file mode 100644
index 0000000..d22eabc
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentDto.cs
@@ -0,0 +1,17 @@
+namespace SafeCampus.Application.Services.Business.DepartmentService;
+
+public class DepartmentDto
+{
+ ///
+ /// id
+ ///
+ public long? Id { get; set; }
+ ///
+ /// 院系名称
+ ///
+ public string Name { get; set; }
+ ///
+ /// 院系编码
+ ///
+ public string Code { get; set; }
+}
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentSearch.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentSearch.cs
new file mode 100644
index 0000000..689692b
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/Dto/DepartmentSearch.cs
@@ -0,0 +1,9 @@
+namespace SafeCampus.Application.Services.Business.DepartmentService;
+
+public class DepartmentSearch: BasePageInput
+{
+ ///
+ /// 院系名称
+ ///
+ public string Name { get; set; }
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/IDepartmentService.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/IDepartmentService.cs
new file mode 100644
index 0000000..4894f86
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/DepartmentService/IDepartmentService.cs
@@ -0,0 +1,40 @@
+namespace SafeCampus.Application.Services.Business.DepartmentService;
+
+public interface IDepartmentService : ITransient
+{
+ ///
+ /// 添加
+ ///
+ /// 添加参数
+ ///
+ Task Add(DepartmentDto input);
+ ///
+ /// 修改
+ ///
+ /// 添加参数
+ ///
+ Task Update(DepartmentDto input);
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ Task GetInfo(long id);
+ ///
+ /// 删除
+ ///
+ /// id
+ ///
+ Task Delete(List id);
+ ///
+ /// 获取列表
+ ///
+ ///
+ Task> GetPageList(DepartmentSearch search);
+ ///
+ /// 不分页获取列表
+ ///
+ ///
+ ///
+ Task> GetNoPageList(DepartmentSearch search);
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorDto.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorDto.cs
new file mode 100644
index 0000000..fa66126
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorDto.cs
@@ -0,0 +1,35 @@
+using SafeCampus.Application.Services.Business.DepartmentService;
+
+namespace SafeCampus.Application.Services.Business.MajorService;
+
+public class MajorDto
+{
+ public long? Id { get; set; }
+ ///
+ /// 专业名称
+ ///
+ public string Name { get; set; }
+ ///
+ /// 专业编码
+ ///
+ public string Code { get; set; }
+ ///
+ /// 专业简介
+ ///
+ public string Introduce { get; set; }
+ ///
+ /// 院系id
+ ///
+ public long DepId { get; set; }
+
+ public string DepartmentName { get; set; }
+}
+
+public class MajorDtoMapper : IRegister
+{
+ public void Register(TypeAdapterConfig config)
+ {
+ config.ForType()
+ .Map(x => x.DepartmentName, x => x.DepartmentInfoItem.Name);
+ }
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorSearch.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorSearch.cs
new file mode 100644
index 0000000..3f48dfc
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/Dto/MajorSearch.cs
@@ -0,0 +1,17 @@
+namespace SafeCampus.Application.Services.Business.MajorService;
+
+public class MajorSearch:BasePageInput
+{
+ ///
+ /// 专业名称
+ ///
+ public string Name { get; set; }
+ ///
+ /// 专业编码
+ ///
+ public string Code { get; set; }
+ ///
+ /// 院系id
+ ///
+ public long? DepId { get; set; }
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/IMajorService.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/IMajorService.cs
new file mode 100644
index 0000000..0758c40
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/IMajorService.cs
@@ -0,0 +1,40 @@
+namespace SafeCampus.Application.Services.Business.MajorService;
+
+public interface IMajorService : ITransient
+{
+ ///
+ /// 添加
+ ///
+ /// 添加参数
+ ///
+ Task Add(MajorDto input);
+ ///
+ /// 修改
+ ///
+ /// 添加参数
+ ///
+ Task Update(MajorDto input);
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ Task GetInfo(long id);
+ ///
+ /// 删除
+ ///
+ /// id
+ ///
+ Task Delete(List id);
+ ///
+ /// 获取列表
+ ///
+ ///
+ Task> GetPageList(MajorSearch search);
+ ///
+ /// 获取列表不分页
+ ///
+ ///
+ ///
+ Task> GetNoPageList(MajorSearch search);
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/MajorService.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/MajorService.cs
new file mode 100644
index 0000000..3c329b1
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/MajorService/MajorService.cs
@@ -0,0 +1,80 @@
+namespace SafeCampus.Application.Services.Business.MajorService;
+
+public class MajorService: DbRepository, IMajorService
+{
+ public async Task Add(MajorDto input)
+ {
+ var model = input.Adapt();
+ await InsertAsync(model);
+ return true;
+ }
+
+ public async Task Update(MajorDto input)
+ {
+ if (!input.Id.HasValue)
+ {
+ throw Oops.Oh("请填写ID");
+ }
+ var model = await GetFirstAsync(p => p.Id == input.Id);
+ if (model == null)
+ {
+ throw Oops.Oh("信息不存在");
+ }
+ var res = input.Adapt(model);
+ await UpdateAsync(res);
+ return true;
+ }
+
+ public async Task GetInfo(long id)
+ {
+ var query = await Context.Queryable()
+ .Includes(x => x.DepartmentInfoItem)
+ .FirstAsync(x => x.Id == id);
+ return query.Adapt();
+ }
+
+ public async Task Delete(List id)
+ {
+ var personSetInfo = ChangeRepository>();//切换仓储
+ var model = await GetListAsync(x => id.Contains(x.Id));
+ if (!model.Any())
+ {
+ throw Oops.Oh("信息不存在");
+ }
+ foreach (var majorInfo in model)
+ {
+ var isOK = await personSetInfo.IsAnyAsync(x => x.MajorId == majorInfo.Id);
+ if (isOK)
+ {
+ throw Oops.Oh($"{majorInfo.Name}专业下还有班级禁止删除!");
+ }
+ }
+ await DeleteAsync(model);
+ return true;
+ }
+
+ public async Task> GetPageList(MajorSearch search)
+ {
+ var query = Context.Queryable()
+ .Includes(x=>x.DepartmentInfoItem)
+ .WhereIF(!string.IsNullOrEmpty(search.Name), x => x.Name.Contains(search.Name))
+ .WhereIF(!string.IsNullOrEmpty(search.Code),x=>x.Code.Contains(search.Code))
+ .WhereIF(search.DepId.HasValue,x=>x.DepId==search.DepId);
+
+ var list = await query.OrderByDescending(x => x.Sort)
+ .ToPagedListAsyncMapster(search.PageNum, search.PageSize);
+ return list;
+ }
+
+ public async Task> GetNoPageList(MajorSearch search)
+ {
+ var query = Context.Queryable()
+ .Includes(x => x.DepartmentInfoItem)
+ .WhereIF(!string.IsNullOrEmpty(search.Name), x => x.Name.Contains(search.Name))
+ .WhereIF(!string.IsNullOrEmpty(search.Code), x => x.Code.Contains(search.Code))
+ .WhereIF(search.DepId.HasValue, x => x.DepId == search.DepId);
+
+ var list = await query.OrderByDescending(x => x.Sort).ToListAsync();
+ return list.Adapt>();
+ }
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/Dto/PersonSetInfoDto.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/Dto/PersonSetInfoDto.cs
index 552ad75..2626c1d 100644
--- a/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/Dto/PersonSetInfoDto.cs
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/Dto/PersonSetInfoDto.cs
@@ -10,9 +10,15 @@ public class PersonSetInfoDto
/// 班级名称
///
public string PersonSetName { get; set; }
+ ///
+ /// 专业id
+ ///
+ public long MajorId { get; set; }
public string UserId { get; set; }
public string UserName { get; set; }
+ public string MajorName { get; set; }
+ public string DepartmentName { get; set; }
}
public class PersonSetInfoDtoMapper : IRegister
@@ -21,6 +27,8 @@ public class PersonSetInfoDtoMapper : IRegister
{
config.ForType()
.Map(x => x.UserId, x => x.ClassTeacherItem.UserId)
- .Map(x => x.UserName, x => x.ClassTeacherItem.SysUserItem.Name);
+ .Map(x => x.UserName, x => x.ClassTeacherItem.SysUserItem.Name)
+ .Map(x=>x.DepartmentName,x=>x.MajorInfoItem.DepartmentInfoItem.Name)
+ .Map(x=>x.MajorName,x=>x.MajorInfoItem.Name);
}
}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/IPersonSetInfoService.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/IPersonSetInfoService.cs
index f861a1e..01d60aa 100644
--- a/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/IPersonSetInfoService.cs
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/IPersonSetInfoService.cs
@@ -23,5 +23,5 @@ public interface IPersonSetInfoService:ITransient
/// 获取底库列表
///
///
- Task> GetPageList();
+ Task> GetPageList(long? majorId);
}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/PersonSetInfoService.cs b/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/PersonSetInfoService.cs
index 54fe191..8f2dda1 100644
--- a/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/PersonSetInfoService.cs
+++ b/SafeCampus.API/SafeCampus.Application/Services/Business/PersonSetInfoService/PersonSetInfoService.cs
@@ -38,10 +38,12 @@ public class PersonSetInfoService:DbRepository, IPersonSetInfoSer
return true;
}
- public async Task> GetPageList()
+ public async Task> GetPageList(long? majorId)
{
var list =await Context.Queryable()
+ .Includes(x=>x.MajorInfoItem,x=>x.DepartmentInfoItem)
.Where(x=>x.PersonSetId!=SafeCampusConst.ZDRY)
+ .WhereIF(majorId.HasValue,x=>x.MajorId==majorId)
.Includes(x => x.ClassTeacherItem, st => st.SysUserItem)
.ToListAsync();
return list.Adapt>();
diff --git a/SafeCampus.API/SafeCampus.System/Entity/DepartmentInfo.cs b/SafeCampus.API/SafeCampus.System/Entity/DepartmentInfo.cs
new file mode 100644
index 0000000..02d03d6
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.System/Entity/DepartmentInfo.cs
@@ -0,0 +1,20 @@
+namespace SafeCampus.System;
+[SugarTable("DepartmentInfo", TableDescription = "院系信息表")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+[BatchEdit]
+[CodeGen]
+//[IgnoreInitTable]
+public class DepartmentInfo : PrimaryKeyEntity
+{
+ ///
+ /// 院系名称
+ ///
+ [SugarColumn(ColumnName = "Name", ColumnDescription = "院系名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
+ public string Name { get; set; }
+ ///
+ /// 院系编码
+ ///
+ [SugarColumn(ColumnName = "Code", ColumnDescription = "院系编码", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
+ public string Code { get; set; }
+
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.System/Entity/MajorInfo.cs b/SafeCampus.API/SafeCampus.System/Entity/MajorInfo.cs
new file mode 100644
index 0000000..f4a47d1
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.System/Entity/MajorInfo.cs
@@ -0,0 +1,39 @@
+namespace SafeCampus.System;
+[SugarTable("MajorInfo", TableDescription = "专业信息表")]
+[Tenant(SqlSugarConst.DB_DEFAULT)]
+[BatchEdit]
+[CodeGen]
+//[IgnoreInitTable]
+public class MajorInfo : PrimaryKeyEntity
+{
+ ///
+ /// 专业名称
+ ///
+ [SugarColumn(ColumnName = "Name", ColumnDescription = "专业名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
+ public string Name { get; set; }
+ ///
+ /// 专业编码
+ ///
+ [SugarColumn(ColumnName = "Code", ColumnDescription = "专业编码", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
+ public string Code { get; set; }
+ ///
+ /// 专业简介
+ ///
+ [SugarColumn(ColumnName = "Introduce", ColumnDescription = "专业简介", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = true)]
+ public string Introduce { get; set; }
+ ///
+ /// 院系id
+ ///
+ [SugarColumn(ColumnName = "DepId", ColumnDescription = "院系id",IsNullable = false)]
+ public long DepId { get; set; }
+ ///
+ /// 排序
+ ///
+ [SugarColumn(ColumnName = "Sort", ColumnDescription = "排序", IsNullable = false)]
+ public int Sort { get; set; }
+ ///
+ /// 院系信息
+ ///
+ [Navigate(NavigateType.OneToOne, nameof(DepartmentInfo.Id), nameof(DepId))]
+ public DepartmentInfo DepartmentInfoItem { get; set; }
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.System/Entity/PersonSetInfo.cs b/SafeCampus.API/SafeCampus.System/Entity/PersonSetInfo.cs
index b900d26..eee9061 100644
--- a/SafeCampus.API/SafeCampus.System/Entity/PersonSetInfo.cs
+++ b/SafeCampus.API/SafeCampus.System/Entity/PersonSetInfo.cs
@@ -3,7 +3,7 @@
[Tenant(SqlSugarConst.DB_DEFAULT)]
[BatchEdit]
[CodeGen]
-[IgnoreInitTable]
+//[IgnoreInitTable]
public class PersonSetInfo
{
///
@@ -17,6 +17,16 @@ public class PersonSetInfo
[SugarColumn(ColumnName = "PersonSetName", ColumnDescription = "班级名称", ColumnDataType = StaticConfig.CodeFirst_BigString, IsNullable = false)]
public string PersonSetName { get; set; }
///
+ /// 专业id
+ ///
+ [SugarColumn(ColumnName = "MajorId", ColumnDescription = "专业id", IsNullable = false)]
+ public long MajorId { get; set; }
+ ///
+ /// 专业信息
+ ///
+ [Navigate(NavigateType.OneToOne, nameof(MajorInfo.Id), nameof(MajorId))]
+ public MajorInfo MajorInfoItem { get; set; }
+ ///
/// 班主任信息
///
[Navigate(NavigateType.OneToOne, nameof(ClassTeacher.PersonSetId),nameof(PersonSetId))]
diff --git a/SafeCampus.API/SafeCampus.System/Entity/System/SysDict.cs b/SafeCampus.API/SafeCampus.System/Entity/System/SysDict.cs
index 16d672a..f7c9a1a 100644
--- a/SafeCampus.API/SafeCampus.System/Entity/System/SysDict.cs
+++ b/SafeCampus.API/SafeCampus.System/Entity/System/SysDict.cs
@@ -37,8 +37,6 @@ public class SysDict : BaseEntity
///
[SugarColumn(ColumnName = "SortCode", ColumnDescription = "排序码")]
public int SortCode { get; set; }
-
-
///
/// 子节点
///
diff --git a/SafeCampus.API/SafeCampus.System/SafeCampus.System.xml b/SafeCampus.API/SafeCampus.System/SafeCampus.System.xml
index e373eb4..3c2c680 100644
--- a/SafeCampus.API/SafeCampus.System/SafeCampus.System.xml
+++ b/SafeCampus.API/SafeCampus.System/SafeCampus.System.xml
@@ -1071,6 +1071,16 @@
班主任信息
+
+
+ 院系名称
+
+
+
+
+ 院系编码
+
+
寝室名称
@@ -1101,6 +1111,36 @@
宿舍楼信息
+
+
+ 专业名称
+
+
+
+
+ 专业编码
+
+
+
+
+ 专业简介
+
+
+
+
+ 院系id
+
+
+
+
+ 排序
+
+
+
+
+ 院系信息
+
+
查询时间
@@ -1241,6 +1281,16 @@
班级名称
+
+
+ 专业id
+
+
+
+
+ 专业信息
+
+
班主任信息
diff --git a/SafeCampus.API/SafeCampus.Web.Core/Components/AuthComponent.cs b/SafeCampus.API/SafeCampus.Web.Core/Components/AuthComponent.cs
index cc667d3..8fdb6f7 100644
--- a/SafeCampus.API/SafeCampus.Web.Core/Components/AuthComponent.cs
+++ b/SafeCampus.API/SafeCampus.Web.Core/Components/AuthComponent.cs
@@ -1,14 +1,4 @@
-
-//
-
-
-
-
-
-
-
-
-using Microsoft.AspNetCore.Authentication.JwtBearer;
+using Microsoft.AspNetCore.Authentication.JwtBearer;
namespace SafeCampus.Web.Core;
diff --git a/SafeCampus.API/SafeCampus.Web.Core/Components/WebSettingsComponent.cs b/SafeCampus.API/SafeCampus.Web.Core/Components/WebSettingsComponent.cs
index 66e3bc6..9f95839 100644
--- a/SafeCampus.API/SafeCampus.Web.Core/Components/WebSettingsComponent.cs
+++ b/SafeCampus.API/SafeCampus.Web.Core/Components/WebSettingsComponent.cs
@@ -1,14 +1,4 @@
-
-//
-
-
-
-
-
-
-
-
-namespace SafeCampus.Web.Core;
+namespace SafeCampus.Web.Core;
///
/// Web设置组件
diff --git a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DepartmentController.cs b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DepartmentController.cs
new file mode 100644
index 0000000..a6df05f
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DepartmentController.cs
@@ -0,0 +1,78 @@
+
+using SafeCampus.Application.Services.Business.DepartmentService;
+
+namespace SafeCampus.Web.Core.Controllers.Application.Business;
+///
+///系部管理接口
+///
+[ApiDescriptionSettings(ApiGroupConsts.SYSTEM_Business, Order = 83, Tag = "系部管理")]
+[Route("/business/department")]
+[RolePermission]
+public class DepartmentController
+{
+ private readonly IDepartmentService _departmentService;
+
+ public DepartmentController(IDepartmentService departmentService)
+ {
+ _departmentService = departmentService;
+ }
+
+ ///
+ /// 添加
+ ///
+ /// 添加参数
+ ///
+ public async Task Add(DepartmentDto input)
+ {
+ return await _departmentService.Add(input);
+ }
+
+ ///
+ /// 修改
+ ///
+ /// 添加参数
+ ///
+ public async Task Update(DepartmentDto input)
+ {
+ return await _departmentService.Update(input);
+ }
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public async Task GetInfo(long id)
+ {
+ return await _departmentService.GetInfo(id);
+ }
+
+ ///
+ /// 删除
+ ///
+ /// id
+ ///
+ public async Task Delete(List id)
+ {
+ return await _departmentService.Delete(id);
+ }
+
+ ///
+ /// 获取列表
+ ///
+ ///
+ public async Task> GetPageList(DepartmentSearch search)
+ {
+ return await _departmentService.GetPageList(search);
+ }
+
+ ///
+ /// 不分页获取列表
+ ///
+ ///
+ ///
+ public async Task> GetNoPageList(DepartmentSearch search)
+ {
+ return await _departmentService.GetNoPageList(search);
+ }
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DfieldApi.cs b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DfieldApi.cs
index a8c5985..7934b6c 100644
--- a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DfieldApi.cs
+++ b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DfieldApi.cs
@@ -45,7 +45,7 @@ public class DfieldApi : IDynamicApiController
var model = JsonConvert.DeserializeObject(str);
if ((bool)model["success"])
{
- await _personSetInfoService.Add(new PersonSetInfoDto{PersonSetId = personSetId ,PersonSetName = input.Name});
+ await _personSetInfoService.Add(new PersonSetInfoDto{PersonSetId = personSetId ,PersonSetName = input.Name,MajorId = input.MagjorId});
return model["data"];
}
@@ -55,9 +55,9 @@ public class DfieldApi : IDynamicApiController
/// 查询底库列表
///
///
- public async Task QueryAll()
+ public async Task QueryAll(long? majorId)
{
- return await _personSetInfoService.GetPageList();
+ return await _personSetInfoService.GetPageList(majorId);
var appSettings = App.GetOptionsMonitor();
var str = await $"{appSettings.SXAPIURL}/dfield-api/ecology/person/set/queryAll"
.SetBody(new
@@ -151,7 +151,8 @@ public class DfieldApi : IDynamicApiController
await _personSetInfoService.Update(new PersonSetInfoDto
{
PersonSetId = input.Id,
- PersonSetName = input.Name
+ PersonSetName = input.Name,
+ MajorId = input.MagjorId
});
}
return isOk;
diff --git a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DormitoryController.cs b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DormitoryController.cs
index 07a367f..5d2839c 100644
--- a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DormitoryController.cs
+++ b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/DormitoryController.cs
@@ -112,7 +112,7 @@ public class DormitoryController
public async Task GetReturnInfo(long id,DateTime returnTime)
{
var model= await _dormitoryService.GetReturnInfo(id, returnTime);
- model.AttendanceDtos = model.AttendanceDtos?.GroupBy(x => x.PersonId).Select(x => x.FirstOrDefault()).ToList();
+ model.AttendanceDtos = model.AttendanceDtos?.GroupBy(x => x.PersonId).Select(x => x.MaxBy(xx=>xx.Tick)).ToList();
foreach (var modelPersonInfo in model.PersonInfos)
{
modelPersonInfo.Attendances = null;
@@ -145,7 +145,7 @@ public class DormitoryController
configId = queryList["data"][0]["configId"].ParseToInt();
}
var time = new { timeBegin = input.TimeBegin, timeEnd = input.TimeEnd };
- var personSetIds = await _personSetInfoService.GetPageList();
+ var personSetIds = await _personSetInfoService.GetPageList(null);
var cameras = await _cameraInfoService.GetPageList(new CameraSearch{PageSize = 1000,PageNum = 1});
var body = new
{
diff --git a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/Dto/DfieldInput.cs b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/Dto/DfieldInput.cs
index 0d5cdd5..8f9a958 100644
--- a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/Dto/DfieldInput.cs
+++ b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/Dto/DfieldInput.cs
@@ -10,6 +10,10 @@ public class ControllersNameInput
{
[IdNotNull(ErrorMessage = "name不能为空")]
public string Name { get; set; }
+ ///
+ /// 专业id
+ ///
+ public long MagjorId { get; set; }
}
public class ControllersIdInput
{
diff --git a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/MajorController.cs b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/MajorController.cs
new file mode 100644
index 0000000..b06b794
--- /dev/null
+++ b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/Business/MajorController.cs
@@ -0,0 +1,77 @@
+using SafeCampus.Application.Services.Business.MajorService;
+
+namespace SafeCampus.Web.Core.Controllers.Application.Business;
+///
+///专业管理接口
+///
+[ApiDescriptionSettings(ApiGroupConsts.SYSTEM_Business, Order = 82, Tag = "专业管理")]
+[Route("/business/major")]
+[RolePermission]
+public class MajorController
+{
+ private readonly IMajorService _majorService;
+
+ public MajorController(IMajorService majorService)
+ {
+ _majorService = majorService;
+ }
+
+ ///
+ /// 添加
+ ///
+ /// 添加参数
+ ///
+ public async Task Add(MajorDto input)
+ {
+ return await _majorService.Add(input);
+ }
+
+ ///
+ /// 修改
+ ///
+ /// 添加参数
+ ///
+ public async Task Update(MajorDto input)
+ {
+ return await _majorService.Update(input);
+ }
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public async Task GetInfo(long id)
+ {
+ return await _majorService.GetInfo(id);
+ }
+
+ ///
+ /// 删除
+ ///
+ /// id
+ ///
+ public async Task Delete(List id)
+ {
+ return await _majorService.Delete(id);
+ }
+
+ ///
+ /// 获取列表
+ ///
+ ///
+ public async Task> GetPageList(MajorSearch search)
+ {
+ return await _majorService.GetPageList(search);
+ }
+
+ ///
+ /// 获取列表不分页
+ ///
+ ///
+ ///
+ public async Task> GetNoPageList(MajorSearch search)
+ {
+ return await _majorService.GetNoPageList(search);
+ }
+}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/LargeScreen/LargeScreenController.cs b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/LargeScreen/LargeScreenController.cs
index da95022..b0f223d 100644
--- a/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/LargeScreen/LargeScreenController.cs
+++ b/SafeCampus.API/SafeCampus.Web.Core/Controllers/Application/LargeScreen/LargeScreenController.cs
@@ -13,6 +13,8 @@ using SafeCampus.Web.Core.Controllers.Application.Business;
using MoYu.RemoteRequest.Extensions;
using Newtonsoft.Json.Linq;
using SafeCampus.Application.Manager.DeepelephManager;
+using SafeCampus.Application.Services.Business.DepartmentService;
+using SafeCampus.Application.Services.Business.MajorService;
using SafeCampus.Application.Services.Business.PersonSetInfoService;
namespace SafeCampus.Web.Core.Controllers.Application.LargeScreen;
@@ -37,9 +39,11 @@ public class LargeScreenController
private readonly IClassRoomCallService _classRoomCallService;
private readonly IDeepelephManager _deepelephManager;
private readonly IPersonSetInfoService _personSetInfoService;
+ private readonly IMajorService _majorService;
+ private readonly IDepartmentService _departmentService;
- public LargeScreenController(IPersonInfoService personInfoService, ICameraGroupService cameraGroupService, IWarnInfoService warnInfoService, ISimpleCacheService simpleCacheService, IAttendanceService attendanceService, IBuildingService buildingService, IDormitoryService dormitoryService, IConfigService configService, IClassRoomCallTaskService classRoomCallTaskService, IClassRoomCallService classRoomCallService, IDeepelephManager deepelephManager, IPersonSetInfoService personSetInfoService)
+ public LargeScreenController(IPersonInfoService personInfoService, ICameraGroupService cameraGroupService, IWarnInfoService warnInfoService, ISimpleCacheService simpleCacheService, IAttendanceService attendanceService, IBuildingService buildingService, IDormitoryService dormitoryService, IConfigService configService, IClassRoomCallTaskService classRoomCallTaskService, IClassRoomCallService classRoomCallService, IDeepelephManager deepelephManager, IPersonSetInfoService personSetInfoService, IMajorService majorService, IDepartmentService departmentService)
{
_personInfoService = personInfoService;
_cameraGroupService = cameraGroupService;
@@ -53,6 +57,8 @@ public class LargeScreenController
_classRoomCallService = classRoomCallService;
_deepelephManager = deepelephManager;
_personSetInfoService = personSetInfoService;
+ _majorService = majorService;
+ _departmentService = departmentService;
}
///
@@ -302,8 +308,25 @@ public class LargeScreenController
/// 获取班级列表
///
///
- public async Task GetPersonSetNoPageList()
+ public async Task GetPersonSetNoPageList(long? majorId)
{
- return await _personSetInfoService.GetPageList();
+ return await _personSetInfoService.GetPageList(majorId);
+ }
+ ///
+ /// 获取专业
+ ///
+ /// 院系id
+ ///
+ public async Task GetMajorNoPageList(long? depId)
+ {
+ return await _majorService.GetNoPageList(new MajorSearch{DepId = depId});
+ }
+ ///
+ /// 获取院系
+ ///
+ ///
+ public async Task GetDepartment()
+ {
+ return await _departmentService.GetNoPageList(new DepartmentSearch());
}
}
\ No newline at end of file
diff --git a/SafeCampus.API/SafeCampus.Web.Core/SafeCampus.Web.Core.xml b/SafeCampus.API/SafeCampus.Web.Core/SafeCampus.Web.Core.xml
index 3d46a03..d5d602a 100644
--- a/SafeCampus.API/SafeCampus.Web.Core/SafeCampus.Web.Core.xml
+++ b/SafeCampus.API/SafeCampus.Web.Core/SafeCampus.Web.Core.xml
@@ -385,6 +385,52 @@
+
+
+ 系部管理接口
+
+
+
+
+ 添加
+
+ 添加参数
+
+
+
+
+ 修改
+
+ 添加参数
+
+
+
+
+ 获取详情
+
+
+
+
+
+
+ 删除
+
+ id
+
+
+
+
+ 获取列表
+
+
+
+
+
+ 不分页获取列表
+
+
+
+
设备管理接口
@@ -470,7 +516,7 @@
-
+
查询底库列表
@@ -791,6 +837,11 @@
结束时间
+
+
+ 专业id
+
+
人员id
@@ -882,6 +933,52 @@
删除信息
+
+
+ 专业管理接口
+
+
+
+
+ 添加
+
+ 添加参数
+
+
+
+
+ 修改
+
+ 添加参数
+
+
+
+
+ 获取详情
+
+
+
+
+
+
+ 删除
+
+ id
+
+
+
+
+ 获取列表
+
+
+
+
+
+ 获取列表不分页
+
+
+
+
客流查询接口
@@ -1128,12 +1225,25 @@
-
+
获取班级列表
+
+
+ 获取专业
+
+ 院系id
+
+
+
+
+ 获取院系
+
+
+
场景code
diff --git a/SafeCampus.API/SafeCampus.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user b/SafeCampus.API/SafeCampus.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user
index 4595f3c..406f77c 100644
--- a/SafeCampus.API/SafeCampus.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/SafeCampus.API/SafeCampus.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<_PublishTargetUrl>F:\Project\QJKJ\SafeCampus\SafeCampus.API\SafeCampus.Web.Entry\bin\Release\net6.0\publish\
- True|2024-08-12T03:27:42.2864171Z;True|2024-08-09T14:54:42.9062124+08:00;True|2024-08-09T11:49:01.0339449+08:00;True|2024-08-09T11:43:21.9947939+08:00;True|2024-08-09T10:43:25.7641675+08:00;True|2024-08-08T15:23:17.0510180+08:00;True|2024-08-08T15:20:50.3450876+08:00;True|2024-08-08T11:06:43.0783261+08:00;True|2024-08-07T17:24:03.0780935+08:00;True|2024-08-07T17:20:50.6266614+08:00;True|2024-08-07T17:18:15.6367265+08:00;True|2024-08-06T17:31:40.3452266+08:00;True|2024-07-31T16:54:03.1890463+08:00;True|2024-07-30T17:11:33.2514194+08:00;True|2024-07-30T17:08:14.5888060+08:00;True|2024-07-30T09:56:08.6349163+08:00;True|2024-07-30T09:50:02.2368269+08:00;True|2024-07-29T16:20:12.3202393+08:00;True|2024-07-29T16:16:29.9634841+08:00;True|2024-07-29T16:09:51.7696392+08:00;True|2024-07-29T16:06:49.4145658+08:00;True|2024-07-29T15:58:50.6654249+08:00;True|2024-07-29T11:32:11.6206514+08:00;True|2024-07-29T11:26:26.1574563+08:00;True|2024-07-29T11:04:41.1896705+08:00;True|2024-07-29T10:38:38.4560275+08:00;True|2024-07-29T10:33:38.5288332+08:00;False|2024-07-29T10:33:21.0642261+08:00;False|2024-07-29T10:33:00.1005216+08:00;True|2024-07-29T09:54:59.2794860+08:00;True|2024-07-29T09:08:54.4899269+08:00;True|2024-07-26T18:02:13.5407348+08:00;True|2024-07-26T17:46:06.7922851+08:00;True|2024-07-26T15:50:48.6986834+08:00;True|2024-07-26T15:11:17.1696147+08:00;True|2024-07-26T13:58:49.6884964+08:00;True|2024-07-25T17:31:33.0050952+08:00;True|2024-07-25T17:09:12.7084910+08:00;True|2024-07-25T17:02:01.2617736+08:00;True|2024-07-25T16:59:51.6271873+08:00;True|2024-07-25T16:58:05.5249148+08:00;True|2024-07-25T14:14:10.2008367+08:00;False|2024-07-25T14:13:54.0300465+08:00;True|2024-07-25T14:08:57.0244482+08:00;True|2024-07-25T13:41:48.8201522+08:00;True|2024-07-25T10:41:30.7277553+08:00;True|2024-07-25T10:16:05.9105335+08:00;True|2024-07-24T15:31:54.7914854+08:00;True|2024-07-24T09:54:17.6182454+08:00;True|2024-07-23T17:01:18.1510211+08:00;True|2024-07-23T16:41:53.3366577+08:00;True|2024-07-23T16:07:25.4129335+08:00;True|2024-07-23T15:50:42.2437488+08:00;True|2024-07-23T15:19:00.1900116+08:00;True|2024-07-23T14:59:22.8551233+08:00;True|2024-07-23T14:19:55.1193373+08:00;True|2024-07-19T18:04:32.2703039+08:00;True|2024-07-19T15:56:25.4103701+08:00;True|2024-07-19T15:09:00.9662436+08:00;True|2024-07-19T15:05:35.7255851+08:00;True|2024-07-19T13:14:42.9559521+08:00;False|2024-07-19T11:37:52.4020673+08:00;True|2024-07-19T11:10:22.8661346+08:00;True|2024-07-19T11:00:00.8819251+08:00;True|2024-07-19T10:45:46.8271770+08:00;True|2024-07-19T10:45:03.8183458+08:00;True|2024-07-18T18:04:42.1000382+08:00;True|2024-07-18T18:01:51.3964409+08:00;True|2024-07-18T17:57:50.3509206+08:00;True|2024-07-18T16:32:46.2184830+08:00;True|2024-07-18T16:00:11.1381449+08:00;True|2024-07-18T15:11:52.6472758+08:00;True|2024-07-18T11:54:49.4848006+08:00;True|2024-07-18T09:25:58.7204846+08:00;True|2024-07-17T17:29:28.6175272+08:00;True|2024-07-17T17:10:54.5184246+08:00;True|2024-07-17T16:57:59.8174060+08:00;True|2024-07-17T16:18:13.8137834+08:00;True|2024-07-17T15:59:16.2360757+08:00;True|2024-07-17T15:31:41.9159909+08:00;True|2024-07-17T14:41:14.6127340+08:00;True|2024-07-17T14:28:53.4455461+08:00;True|2024-07-17T14:09:44.1826222+08:00;True|2024-07-17T13:57:12.3372528+08:00;True|2024-07-17T11:39:19.5754602+08:00;True|2024-07-16T17:44:10.6162562+08:00;True|2024-07-16T17:13:48.3928403+08:00;True|2024-07-16T17:00:47.7458109+08:00;True|2024-07-16T14:07:19.3463408+08:00;True|2024-07-15T16:05:13.3561511+08:00;True|2024-07-15T16:03:45.7866063+08:00;True|2024-07-15T13:25:00.0791938+08:00;True|2024-07-12T13:45:20.6945520+08:00;True|2024-07-12T13:07:01.3911178+08:00;False|2024-07-12T13:06:45.7048568+08:00;True|2024-07-12T13:06:03.7557254+08:00;False|2024-07-12T11:51:55.8228106+08:00;True|2024-07-12T09:11:11.9982410+08:00;True|2024-07-12T09:10:42.9689716+08:00;True|2024-07-12T09:08:04.7560729+08:00;
+ True|2024-08-19T05:38:29.9236695Z;False|2024-08-19T13:29:18.8873264+08:00;True|2024-08-19T12:31:57.9280692+08:00;True|2024-08-19T11:50:36.7241244+08:00;True|2024-08-19T10:24:05.0018377+08:00;True|2024-08-19T10:23:30.0445364+08:00;True|2024-08-19T10:12:33.8316906+08:00;True|2024-08-19T10:10:48.0967630+08:00;True|2024-08-16T12:17:51.5743944+08:00;True|2024-08-16T11:36:15.1880346+08:00;True|2024-08-12T11:27:42.2864171+08:00;True|2024-08-09T14:54:42.9062124+08:00;True|2024-08-09T11:49:01.0339449+08:00;True|2024-08-09T11:43:21.9947939+08:00;True|2024-08-09T10:43:25.7641675+08:00;True|2024-08-08T15:23:17.0510180+08:00;True|2024-08-08T15:20:50.3450876+08:00;True|2024-08-08T11:06:43.0783261+08:00;True|2024-08-07T17:24:03.0780935+08:00;True|2024-08-07T17:20:50.6266614+08:00;True|2024-08-07T17:18:15.6367265+08:00;True|2024-08-06T17:31:40.3452266+08:00;True|2024-07-31T16:54:03.1890463+08:00;True|2024-07-30T17:11:33.2514194+08:00;True|2024-07-30T17:08:14.5888060+08:00;True|2024-07-30T09:56:08.6349163+08:00;True|2024-07-30T09:50:02.2368269+08:00;True|2024-07-29T16:20:12.3202393+08:00;True|2024-07-29T16:16:29.9634841+08:00;True|2024-07-29T16:09:51.7696392+08:00;True|2024-07-29T16:06:49.4145658+08:00;True|2024-07-29T15:58:50.6654249+08:00;True|2024-07-29T11:32:11.6206514+08:00;True|2024-07-29T11:26:26.1574563+08:00;True|2024-07-29T11:04:41.1896705+08:00;True|2024-07-29T10:38:38.4560275+08:00;True|2024-07-29T10:33:38.5288332+08:00;False|2024-07-29T10:33:21.0642261+08:00;False|2024-07-29T10:33:00.1005216+08:00;True|2024-07-29T09:54:59.2794860+08:00;True|2024-07-29T09:08:54.4899269+08:00;True|2024-07-26T18:02:13.5407348+08:00;True|2024-07-26T17:46:06.7922851+08:00;True|2024-07-26T15:50:48.6986834+08:00;True|2024-07-26T15:11:17.1696147+08:00;True|2024-07-26T13:58:49.6884964+08:00;True|2024-07-25T17:31:33.0050952+08:00;True|2024-07-25T17:09:12.7084910+08:00;True|2024-07-25T17:02:01.2617736+08:00;True|2024-07-25T16:59:51.6271873+08:00;True|2024-07-25T16:58:05.5249148+08:00;True|2024-07-25T14:14:10.2008367+08:00;False|2024-07-25T14:13:54.0300465+08:00;True|2024-07-25T14:08:57.0244482+08:00;True|2024-07-25T13:41:48.8201522+08:00;True|2024-07-25T10:41:30.7277553+08:00;True|2024-07-25T10:16:05.9105335+08:00;True|2024-07-24T15:31:54.7914854+08:00;True|2024-07-24T09:54:17.6182454+08:00;True|2024-07-23T17:01:18.1510211+08:00;True|2024-07-23T16:41:53.3366577+08:00;True|2024-07-23T16:07:25.4129335+08:00;True|2024-07-23T15:50:42.2437488+08:00;True|2024-07-23T15:19:00.1900116+08:00;True|2024-07-23T14:59:22.8551233+08:00;True|2024-07-23T14:19:55.1193373+08:00;True|2024-07-19T18:04:32.2703039+08:00;True|2024-07-19T15:56:25.4103701+08:00;True|2024-07-19T15:09:00.9662436+08:00;True|2024-07-19T15:05:35.7255851+08:00;True|2024-07-19T13:14:42.9559521+08:00;False|2024-07-19T11:37:52.4020673+08:00;True|2024-07-19T11:10:22.8661346+08:00;True|2024-07-19T11:00:00.8819251+08:00;True|2024-07-19T10:45:46.8271770+08:00;True|2024-07-19T10:45:03.8183458+08:00;True|2024-07-18T18:04:42.1000382+08:00;True|2024-07-18T18:01:51.3964409+08:00;True|2024-07-18T17:57:50.3509206+08:00;True|2024-07-18T16:32:46.2184830+08:00;True|2024-07-18T16:00:11.1381449+08:00;True|2024-07-18T15:11:52.6472758+08:00;True|2024-07-18T11:54:49.4848006+08:00;True|2024-07-18T09:25:58.7204846+08:00;True|2024-07-17T17:29:28.6175272+08:00;True|2024-07-17T17:10:54.5184246+08:00;True|2024-07-17T16:57:59.8174060+08:00;True|2024-07-17T16:18:13.8137834+08:00;True|2024-07-17T15:59:16.2360757+08:00;True|2024-07-17T15:31:41.9159909+08:00;True|2024-07-17T14:41:14.6127340+08:00;True|2024-07-17T14:28:53.4455461+08:00;True|2024-07-17T14:09:44.1826222+08:00;True|2024-07-17T13:57:12.3372528+08:00;True|2024-07-17T11:39:19.5754602+08:00;True|2024-07-16T17:44:10.6162562+08:00;True|2024-07-16T17:13:48.3928403+08:00;True|2024-07-16T17:00:47.7458109+08:00;True|2024-07-16T14:07:19.3463408+08:00;True|2024-07-15T16:05:13.3561511+08:00;
\ No newline at end of file