commit 5d773ddbe3d11420fbe5f2248d86766371dc2625 Author: huzhiyun Date: Mon Jan 26 16:18:05 2026 +0800 添加项目文件。 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d9101e2 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + // 使用 IntelliSense 找出 C# 调试存在哪些属性 + // 将悬停用于现有属性的说明 + // 有关详细信息,请访问 https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md。 + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // 如果已更改目标框架,请确保更新程序路径。 + "program": "${workspaceFolder}/LearningOfficer.OA.Mobile.Api/bin/Debug/net8.0/LearningOfficer.OA.Mobile.Api.dll", + "args": [], + "cwd": "${workspaceFolder}/LearningOfficer.OA.Mobile.Api", + "stopAtEntry": false, + // 启用在启动 ASP.NET Core 时启动 Web 浏览器。有关详细信息: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+(https?://\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..831755f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "codingcopilot.enableCompletionLanguage": {} +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..5fdb739 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,41 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/LearningOfficer.OA.API.sln b/LearningOfficer.OA.API.sln new file mode 100644 index 0000000..b902b72 --- /dev/null +++ b/LearningOfficer.OA.API.sln @@ -0,0 +1,49 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.13.35828.75 d17.13 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LearningOfficer.OA.Mobile.Api", "LearningOfficer.OA.Mobile.Api\LearningOfficer.OA.Mobile.Api.csproj", "{20E3876B-B978-4C77-AA18-3E8B1874B685}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LearningOfficer.OA.Core", "LearningOfficer.OA.Core\LearningOfficer.OA.Core.csproj", "{E805B196-4094-4A45-979D-AC908542B689}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LearningOfficer.OA.Common", "LearningOfficer.OA.Common\LearningOfficer.OA.Common.csproj", "{B40C9A23-AE9C-4AC1-9201-66B51AD0C939}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LearningOfficer.OA.Services", "LearningOfficer.OA.Services\LearningOfficer.OA.Services.csproj", "{0674EE67-0D0C-437D-A103-3BEF05BFF93F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LearningOfficer.OA.Infrastructure", "LearningOfficer.OA.Infrastructure\LearningOfficer.OA.Infrastructure.csproj", "{5716C765-0A66-44E8-ADC9-ED473267319F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {20E3876B-B978-4C77-AA18-3E8B1874B685}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20E3876B-B978-4C77-AA18-3E8B1874B685}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20E3876B-B978-4C77-AA18-3E8B1874B685}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20E3876B-B978-4C77-AA18-3E8B1874B685}.Release|Any CPU.Build.0 = Release|Any CPU + {E805B196-4094-4A45-979D-AC908542B689}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E805B196-4094-4A45-979D-AC908542B689}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E805B196-4094-4A45-979D-AC908542B689}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E805B196-4094-4A45-979D-AC908542B689}.Release|Any CPU.Build.0 = Release|Any CPU + {B40C9A23-AE9C-4AC1-9201-66B51AD0C939}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B40C9A23-AE9C-4AC1-9201-66B51AD0C939}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B40C9A23-AE9C-4AC1-9201-66B51AD0C939}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B40C9A23-AE9C-4AC1-9201-66B51AD0C939}.Release|Any CPU.Build.0 = Release|Any CPU + {0674EE67-0D0C-437D-A103-3BEF05BFF93F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0674EE67-0D0C-437D-A103-3BEF05BFF93F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0674EE67-0D0C-437D-A103-3BEF05BFF93F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0674EE67-0D0C-437D-A103-3BEF05BFF93F}.Release|Any CPU.Build.0 = Release|Any CPU + {5716C765-0A66-44E8-ADC9-ED473267319F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5716C765-0A66-44E8-ADC9-ED473267319F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5716C765-0A66-44E8-ADC9-ED473267319F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5716C765-0A66-44E8-ADC9-ED473267319F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {29280FBC-F13A-47E9-89D2-D3CB1E2AC003} + EndGlobalSection +EndGlobal diff --git a/LearningOfficer.OA.Common/Attributes/InjectServiceAttribute.cs b/LearningOfficer.OA.Common/Attributes/InjectServiceAttribute.cs new file mode 100644 index 0000000..3c620b9 --- /dev/null +++ b/LearningOfficer.OA.Common/Attributes/InjectServiceAttribute.cs @@ -0,0 +1,10 @@ +using Microsoft.Extensions.DependencyInjection; + +namespace LearningOfficer.OA.Common.Attributes +{ + [AttributeUsage(AttributeTargets.Class)] + public class InjectAttribute : Attribute + { + public ServiceLifetime Lifetime { get; set; } = ServiceLifetime.Scoped; + } +} diff --git a/LearningOfficer.OA.Common/Configs/BlueThinkConfig.cs b/LearningOfficer.OA.Common/Configs/BlueThinkConfig.cs new file mode 100644 index 0000000..e8b7ab9 --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/BlueThinkConfig.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Configs +{ + /// + /// 蓝鲸智库配置文件 + /// + public class BlueThinkConfig + { + public string Area { get; set; } + public string Signcode { get; set; } + public string PublicKey { get; set; } + public string PrivateKey { get; set; } + public long RootId { get; set; } + public string Url { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Configs/ConnectionStringsSettings.cs b/LearningOfficer.OA.Common/Configs/ConnectionStringsSettings.cs new file mode 100644 index 0000000..fd6d277 --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/ConnectionStringsSettings.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Configs +{ + public class ConnectionStringsSettings + { + public string Redis { get; set; } + public string Db { get; set; } + public string UserCenterDb { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Configs/DataCollectionConfig.cs b/LearningOfficer.OA.Common/Configs/DataCollectionConfig.cs new file mode 100644 index 0000000..258f6f8 --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/DataCollectionConfig.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Configs +{ + public class DataCollectionConfig + { + /// + /// 资料上传地址 头部 + /// + public string UpDataFileUrl { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Configs/HangFireSettings.cs b/LearningOfficer.OA.Common/Configs/HangFireSettings.cs new file mode 100644 index 0000000..d10fba6 --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/HangFireSettings.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Hangfire; + +namespace LearningOfficer.OA.Common.Configs +{ + public class HangFireSettings + { + public string ConnectionString { get; set; } + public int Db { get; set; } = 0; + public string cron { get; set; } + + public static JobStorage hangfireStorage { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Configs/ImConfig.cs b/LearningOfficer.OA.Common/Configs/ImConfig.cs new file mode 100644 index 0000000..5e21216 --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/ImConfig.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Configs +{ + public class ImConfig + { + public int SDKAppID { get; set; } + public string Key { get; set; } + public int ExpiredTime { get; set; } + /// + /// 头像默认地址 + /// + public string DefaultAvater { get; set; } + /// + /// 管理员用户 + /// + public string AdminUserId { get; set; } + /// + /// api头部地址 + /// + public string ApiHeadUrl { get; set; } + /// + /// 视频通话状态 + /// + public bool VideoCall { get; set; } + /// + /// 语音通话状态 + /// + public bool VoiceCall { get; set; } + } + public class ImConfigResult + { + + public int SDKAppID { get; set; } + /// + /// 视频通话状态 + /// + public bool VideoCall { get; set; } + /// + /// 语音通话状态 + /// + public bool VoiceCall { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Configs/JwtSettings.cs b/LearningOfficer.OA.Common/Configs/JwtSettings.cs new file mode 100644 index 0000000..8eaa017 --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/JwtSettings.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Configs +{ + public class JwtSettings + { + /// + /// AccessToken密钥 + /// + public string AccessSecret { get; set; } = string.Empty; + /// + /// 签发人 + /// + public string Issuer { get; set; } = string.Empty; + /// + /// 受众 + /// + public string Audience { get; set; } = string.Empty; + /// + /// AccessToken有效时长 + /// + public int AccessExpiration { get; set; } + /// + /// RefreshExpiration有效时长 + /// + public int RefreshExpiration { get; set; } + /// + /// 允许的时差 + /// + public int ClockSkew { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Configs/MobileToH5Config.cs b/LearningOfficer.OA.Common/Configs/MobileToH5Config.cs new file mode 100644 index 0000000..20de1dc --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/MobileToH5Config.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Configs +{ + public class MobileToH5Config + { + /// + /// H5解析地址(高中) + /// + public string HighSchoolUrl { get; set; } + /// + /// H5解析地址(初中) + /// + public string JuniorUrl { get; set; } + } + /// + /// 获取H5链接枚举 + /// + public enum MobileToH5ConfigEnum + { + /// + /// 意见反馈地址 + /// + feedback, + /// + /// 积分商城地址 + /// + points, + /// + /// 金点子榜单 + /// + ranking + + } +} diff --git a/LearningOfficer.OA.Common/Configs/NacosConfig.cs b/LearningOfficer.OA.Common/Configs/NacosConfig.cs new file mode 100644 index 0000000..38bb8ed --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/NacosConfig.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Configs +{ + public class NacosConfig + { + /// + /// Nacos命名空间 + /// + public string Namespace { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Configs/RabbitMQConfig.cs b/LearningOfficer.OA.Common/Configs/RabbitMQConfig.cs new file mode 100644 index 0000000..dca600b --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/RabbitMQConfig.cs @@ -0,0 +1,70 @@ +namespace LearningOfficer.OA.Common.Configs +{ + /// + /// RabbitMQ 配置 + /// + public class RabbitMQConfig + { + /// + /// RabbitMQ 服务器地址 + /// + public string HostName { get; set; } + + /// + /// 端口号 + /// + public int Port { get; set; } + + /// + /// 用户名 + /// + public string UserName { get; set; } + + /// + /// 密码 + /// + public string Password { get; set; } + + /// + /// 虚拟主机 + /// + public string VirtualHost { get; set; } + + /// + /// im推送mq配置 + /// + public BaseMqBusinessConfig imMq { get; set; } + } + /// + /// 对应业务的mq配置 + /// + public class BaseMqBusinessConfig + { + /// + /// 队列名称 + /// + public string QueueName { get; set; } + /// + /// 交换机名称 + /// + public string ExchangeName { get; set; } + /// + /// 路由键 + /// + public string RoutingKey { get; set; } + /// + /// 是否启用消息持久化 + /// + public bool Durable { get; set; } = true; + + /// + /// 是否自动删除队列 + /// + public bool AutoDelete { get; set; } = false; + + /// + /// 预取计数 + /// + public ushort PrefetchCount { get; set; } + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Common/Configs/UpAppVersionConfig.cs b/LearningOfficer.OA.Common/Configs/UpAppVersionConfig.cs new file mode 100644 index 0000000..0382c1b --- /dev/null +++ b/LearningOfficer.OA.Common/Configs/UpAppVersionConfig.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Configs +{ + public class UpAppVersionConfig + { + /// + /// IOS链接 + /// + public string IOSUrl { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ALiYun/CodeMsg.cs b/LearningOfficer.OA.Common/Dtos/ALiYun/CodeMsg.cs new file mode 100644 index 0000000..384e56b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ALiYun/CodeMsg.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ALiYun +{ + public class CodeMsg + { + public int Code { get; set; } + public string Data { get; set; } + public string Reson { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ALiYun/OSSConfigResult.cs b/LearningOfficer.OA.Common/Dtos/ALiYun/OSSConfigResult.cs new file mode 100644 index 0000000..8694049 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ALiYun/OSSConfigResult.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ALiYun +{ + public class OSSConfigResult + { + public string AccessKeyId { get; set; } + public string AccessKeySecret { get; set; } + public string Endpoint { get; set; } + public string BucketName { get; set; } + public long Size { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Admin/AdminDto.cs b/LearningOfficer.OA.Common/Dtos/Admin/AdminDto.cs new file mode 100644 index 0000000..38b8019 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Admin/AdminDto.cs @@ -0,0 +1,105 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Admin +{ + public class AdminAddDto + { + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + + /// + /// 备 注:密码 + /// 默认值: + /// + public string? Pwd { get; set; } + + + /// + /// 备 注:管理员名称 + /// 默认值: + /// + public string Name { get; set; } = null!; + + /// + /// 备 注:云校id + /// + public long CloudSchoolId { get; set; } + + /// + /// 备 注:管理员角色 + /// + public SysRoleEnum RoleEnum { get; set; } + + } + + public class AdminUpdateDto : AdminAddDto + { + /// + /// 备 注:管理员id + /// 默认值: + /// + public long Id { get; set; } + } + + /// + /// 管理员修改密码Dto + /// + public class AdminUpdatePasswordDto + { + public long Id { get; set; } + + public string NewPassword { get; set; } + } + + public class AdminSearchDto : PageRequest + { + /// + /// 备 注:账号 + /// 默认值: + /// + public string? Account { get; set; } + + /// + /// 备 注:管理员名称 + /// 默认值: + /// + public string? Name { get; set; } + } + + + public class AdminViewDto + { + public long Id { get; set; } + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + /// + /// 备 注:管理员名称 + /// 默认值: + /// + public string Name { get; set; } = null!; + + /// + /// 角色 + /// + public SysRoleEnum RoleEnum { get; set; } + + + public long CloudSchoolId { get; set; } + + public string CloudSchoolName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Banner/BannerDto.cs b/LearningOfficer.OA.Common/Dtos/Banner/BannerDto.cs new file mode 100644 index 0000000..7347a97 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Banner/BannerDto.cs @@ -0,0 +1,55 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Banner +{ + public class BannerAddDto + { + /// + /// 备 注:文件id + /// 默认值: + /// + public long BannerFileId { get; set; } + + /// + /// 备 注:banne名称 + /// 默认值: + /// + public string BannerName { get; set; } + } + + public class BannerUpdateDto : BannerAddDto + { + public long Id { get; set; } + } + + public class BannerViewDto + { + public long Id { get; set; } + /// + /// 备 注:文件id + /// 默认值: + /// + public long BannerFileId { get; set; } + + /// + /// 备 注:banne名称 + /// 默认值: + /// + public string BannerName { get; set; } + + /// + /// 备 注:文件地址 + /// + public string BannerFileUrl { get; set; } + + /// + /// 文件名称 + /// + public string BannerFileName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Banner/BannerResult.cs b/LearningOfficer.OA.Common/Dtos/Banner/BannerResult.cs new file mode 100644 index 0000000..7b91739 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Banner/BannerResult.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Banner +{ + public class BannerResult + { + /// + /// id + /// + public long Id { get; set; } + + /// + /// 备 注:文件id + /// 默认值: + /// + public long BannerFileId { get; set; } + /// + /// 备 注:banne名称 + /// 默认值: + /// + public string BannerName { get; set; } + + /// + /// 备 注:文件地址 + /// + public string BannerFileUrl { get; set; } + + /// + /// 文件名称 + /// + public string BannerFileName { get; set; } + /// + /// 文件大小 + /// + public long? BannerFileSize { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassSub/ClassSubRequest.cs b/LearningOfficer.OA.Common/Dtos/ClassSub/ClassSubRequest.cs new file mode 100644 index 0000000..d5213c1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassSub/ClassSubRequest.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassSub +{ + public class ClassSubRequest + { + /// + /// 班级id + /// + public long Class_id { get; set; } = 0; + /// + /// 科目id + /// + public long Sub_id { get; set; } = 0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassSub/ClassSubResult.cs b/LearningOfficer.OA.Common/Dtos/ClassSub/ClassSubResult.cs new file mode 100644 index 0000000..19ec062 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassSub/ClassSubResult.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassSub +{ + /// + /// 工作台-班级科目绑定表 + /// + public class ClassSubResult + { + public long? Id { get; set; } = 0; + /// + /// 班级名称 + /// + public string ClassName { get; set; } = null!; + /// + /// 科目名称 + /// + public string SubName { get; set; } = null!; + /// + /// 班级Id + /// + public long ClassId { get; set; } = 0; + /// + /// 科目Id + /// + public long SubId { get; set; } = 0; + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/CheckListTaskTypeResult.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/CheckListTaskTypeResult.cs new file mode 100644 index 0000000..a3f5d18 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/CheckListTaskTypeResult.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + /// + /// 指标任务完成情况 + /// + public class CheckListTaskTypeResult + { + + /// + /// 备 注:年份 + /// 默认值: + /// + public int Year { get; set; } + + + /// + /// 备 注:月份 + /// 默认值: + /// + public int Month { get; set; } + + + /// + /// 备 注:指标任务类型 + /// 默认值: + /// + public int TypeEnum { get; set; } + + + /// + /// 备 注:任务指标数 + /// 默认值: + /// + public int CheckCount { get; set; } + + + /// + /// 备 注:任务已完成数 + /// 默认值: + /// + public int TaskCountEnd { get; set; } + + + /// + /// 备 注:任务逾期数 + /// 默认值: + /// + public int TaskCountOverdue { get; set; } + + + + /// + /// 备 注:用户id + /// 默认值: + /// + public long TaskUserId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/ClassManageTaskListResult.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassManageTaskListResult.cs new file mode 100644 index 0000000..8e7d9c7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassManageTaskListResult.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + public class ClassManageTaskListResult + { + /// + /// 通用工作指标清单列表 + /// + public List taskChecklistUser { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/ClassManager_Task_checklistRequest.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassManager_Task_checklistRequest.cs new file mode 100644 index 0000000..4d0e181 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassManager_Task_checklistRequest.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + public class ClassManager_Task_checklistRequest + { + /// + /// 新增为null + /// + public long? Id { get; set; } + + /// + /// 备 注:任务类型id + /// 默认值: + /// + public long Task_type_enum { get; set; } + /// + /// 备 注:任务指标数 + /// 默认值: + /// + public int Target_number { get; set; } + + /// + /// 备 注:班级/通用任务类型 1班级;2通用 + /// 默认值: + /// + public int Task_type { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskChecklistResult.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskChecklistResult.cs new file mode 100644 index 0000000..a9a9b86 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskChecklistResult.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + /// + /// 班级工作任务指标清单 + /// + public class ClassesTaskChecklistResult + { + public long Id { get; set; } + /// + /// 备 注:班级任务类型枚举值 + /// 默认值: + /// + public long TaskTypeEnum { get; set; } + /// + /// 备 注:任务类型名称 + /// + public string TaskTypeEnumName { get; set; } = null!; + + + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassesId { get; set; } + + /// + /// 备 注:任务达标数 + /// 默认值: + /// + public int TargetNumber { get; set; } + /// + /// 备 注:班级/通用任务类型 1班级;2通用 + /// 默认值: + /// + public int TaskType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskChecklistUserResult.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskChecklistUserResult.cs new file mode 100644 index 0000000..fc5b0d6 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskChecklistUserResult.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + /// + /// 通用工作任务指标清单 + /// + public class ClassesTaskChecklistUserResult + { + public long Id { get; set; } + + /// + /// 备 注:任务类型枚举值 + /// 默认值: + /// + public long TaskTypeEnum { get; set; } + /// + /// 备 注:任务类型名称 + /// + public string TaskTypeEnumName { get; set; } + + /// + /// 备 注:任务接受人id + /// 默认值: + /// + public long TaskUserId { get; set; } + + /// + /// 备 注:任务达标数 + /// 默认值: + /// + public int TargetNumber { get; set; } + /// + /// 备 注:班级/通用任务类型 1班级;2通用 + /// 默认值: + /// + public int TaskType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskListResult.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskListResult.cs new file mode 100644 index 0000000..a4792d1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/ClassesTaskListResult.cs @@ -0,0 +1,102 @@ +using LearningOfficer.OA.Common.Dtos.Classes; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + /// + /// 任务列表 + /// + public class ClassesTaskListResult + { + public long Id { get; set; } + + + /// + /// 备 注:任务状态 0:未开始 1:进行中 2:已结束 3:问题待处理(仅用于双师跟课) 4:已逾期 + /// 默认值: + /// + public int Status { get; set; } + + + /// + /// 班级基本信息 + /// + public List? classesInfoResults { get; set; } + + + /// + /// 备 注:是否长期性工作 + /// 默认值: + /// + public ulong IsLongwork { get; set; } + + + /// + /// 备 注:参数表 枚举值,任务类型 + /// 默认值: + /// + public int TaskTypeEnum { get; set; } + + + /// + /// 备 注:任务标题后缀,用于展示 + /// 默认值: + /// + public string TaskTitleSuffix { get; set; } = null!; + /// + /// 备 注:开始日期 + /// 默认值: + /// + public DateTime? StartDate { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束日期 + /// 默认值: + /// + public DateTime? EndDate { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + /// + /// 备 注:任务指标类型-1班级;2通用; 班级时,classes_id不为空;通用时,执行人id不为空 + /// 默认值: + /// + public int TaskIndexType { get; set; } + /// + /// 备 注:是否是布置任务。0否(默认);1是; + /// 默认值: + /// + public int? IsSuperiorTask { get; set; } + /// + /// 备 注:任务执行人id + /// + public long? TaskUserId { get; set; } + /// + /// 备 注:创建人id + /// 默认值: + /// + public long CreaterUid { get; set; } + + + + + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/Index_ClassesTaskCheckList.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/Index_ClassesTaskCheckList.cs new file mode 100644 index 0000000..45e1a63 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/Index_ClassesTaskCheckList.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + /// + /// 首页班级任务清单列表 + /// + public class Index_ClassesTaskCheckList + { + /// + /// 任务类型枚举 + /// + public long Task_Type_Enum { get; set; } = 0; + /// + /// 任务类型枚举-名称 + /// + public string Task_Type_Name { get; set; } + /// + /// 已创建任务数量 + /// + public int CreateTaskCount { get; set; } = 0; + /// + /// 已完成任务数量 + /// + public int OkTaskCount { get; set; } = 0; + /// + /// 应完成任务数量 + /// + public int ShouldTaskCount { get; set; } = 0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/Index_ClassesTaskCheckList_User.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/Index_ClassesTaskCheckList_User.cs new file mode 100644 index 0000000..09a04de --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/Index_ClassesTaskCheckList_User.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + /// + /// 通用首页任务清单用户信息 + /// + public class Index_ClassesTaskCheckList_User + { + /// + /// 任务类型枚举 + /// + public long Task_Type_Enum { get; set; } = 0; + /// + /// 任务类型枚举-名称 + /// + public string Task_Type_Name { get; set; } + /// + /// 已创建任务数量 + /// + public int CreateTaskCount { get; set; } = 0; + /// + /// 已完成任务数量 + /// + public int OkTaskCount { get; set; } = 0; + /// + /// 应完成任务数量 + /// + public int ShouldTaskCount { get; set; } = 0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/TaskLoginfoResult.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/TaskLoginfoResult.cs new file mode 100644 index 0000000..5f69be5 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/TaskLoginfoResult.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + public class TaskLoginfoResult + { + /// + /// 任务id + /// + public long TaskId { get; set; } + + + /// + /// 备 注:子任务id + /// 默认值: + /// + public long SunTaskId { get; set; } + + + /// + /// 备 注:操作日期 + /// 默认值: + /// + public DateTime AddDate { get; set; } + + + /// + /// 备 注:操作类型。1新增,2推进,3完成任务 + /// 默认值: + /// + public int LogType { get; set; } + /// + /// 当天操作记录数量 + /// + public int LogCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/Task_checklistRequest.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/Task_checklistRequest.cs new file mode 100644 index 0000000..656edc6 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/Task_checklistRequest.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + public class Task_checklistRequest + { + /// + /// 新增为null,编辑时传Id + /// + public long? Id { get; set; } + /// + /// 备 注:任务类型id + /// 默认值: + /// + public long Task_type_enum { get; set; } + /// + /// 备 注:任务指标数 + /// 默认值: + /// + public int Target_number { get; set; } + + /// + /// 备 注:班级/通用任务类型 1班级;2通用 + /// 默认值: + /// + public int Task_type { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/Teacher_behavior_questionRequest.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/Teacher_behavior_questionRequest.cs new file mode 100644 index 0000000..dea58e7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/Teacher_behavior_questionRequest.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + public class Teacher_behavior_questionRequest + { + /// + /// 观察记录id + /// + public long TBId { get; set; } + /// + /// 预习安排问题,参数id,多个用英文逗号分割 + /// + public string? PreviewId { get; set; } + /// + /// 预习安排-预习方式问题,参数id,多个用英文逗号分割 + /// + public string? PreviewTypeId { get; set; } + /// + /// 预习安排-检查方式: 1课前检查;2课间检查;3全面检查;4未检查 + /// + public int? Inspect_type_enum { get; set; } + /// + /// 预习安排-预习效果;参数id + /// + public int? Preview_result_enum { get; set; } + /// + /// 备 注:课堂配合,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string? Cooperation_id { get; set; } + /// + /// 备 注:课堂配合-巡视频率,1好;2中;3低 + /// 默认值: + /// + public int? Cooperation_inspection_enum { get; set; } + /// + /// 备 注:课后观察,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string? After_class_id { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTask/WorkCompletionResult.cs b/LearningOfficer.OA.Common/Dtos/ClassTask/WorkCompletionResult.cs new file mode 100644 index 0000000..206629b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTask/WorkCompletionResult.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTask +{ + /// + /// 工作完成情况 + /// + public class WorkCompletionResult + { + /// + /// 用户id + /// + public long UserId { get; set; } + /// + /// 所属月份 + /// + public string WorkDate { get; set; } + /// + /// 完成率 + /// + public double CompletionRate { get; set; } + /// + /// 任务完成情况列表 + /// + public List TaskCompletionInfos { get; set; } + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherAddOrUpdateDto.cs b/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherAddOrUpdateDto.cs new file mode 100644 index 0000000..1a27345 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherAddOrUpdateDto.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Common.Dtos.ClassTeacher +{ + /// + /// 班级教师添加或更新数据传输对象 + /// + public class ClassTeacherAddOrUpdateDto + { + /// + /// 新增时不需要传Id,更新时需要传Id + /// + public long Id { get; set; } + + public long ClassId { get; set; } + public string TeacherName { get; set; } + + /// + /// 0=班主任,>1=科任教师 + /// + public int SubId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherRequest.cs b/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherRequest.cs new file mode 100644 index 0000000..f155e0c --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherRequest.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTeacher +{ + public class ClassTeacherRequest + { + /// + /// 班级Id + /// + public long ClassId { get; set; } + /// + /// 教师名称 + /// + public string TeacherName { get; set; } = null!; + /// + /// 科目Id,0时为班主任(此id从班级里面的科目读取) + /// + public long SubId { get; set; } = 0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherResult.cs b/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherResult.cs new file mode 100644 index 0000000..0d41d02 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ClassTeacher/ClassTeacherResult.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ClassTeacher +{ + /// + /// 工作台-班级教师 + /// + public class ClassTeacherResult + { + /// + /// 教师id + /// + public long TeacherId { get; set; } + /// + /// 教师名称 + /// + public string TeacherName { get; set; } = null!; + /// + /// 科目Id + /// + public long SubId { get; set; } = 0; + /// + /// 科目名称 + /// + public string SubName { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/AddOrUpdateLearningOfficeDto.cs b/LearningOfficer.OA.Common/Dtos/Classes/AddOrUpdateLearningOfficeDto.cs new file mode 100644 index 0000000..7e445ff --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/AddOrUpdateLearningOfficeDto.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class AddOrUpdateLearningOfficeDto + { + public long UserId { get; set; } + public long ClassesId { get; set; } + public long SchoolId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassDataListResult.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassDataListResult.cs new file mode 100644 index 0000000..62a9a69 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassDataListResult.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Enums; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassDataListResult + { + public long Id { get; set; } + + /// + /// 备 注:名称 + /// 默认值: + /// + public string ClassName { get; set; } = null!; + + /// + /// 备 注:学校编号 + /// 默认值: + /// + public long SchoolId { get; set; } + /// + /// 学校名称 + /// + public string SchoolName { get; set; } + + /// + /// 备 注:年级 + /// 默认值: + /// + public string GradeLevel { get; set; } = null!; + + /// + /// 备 注:所属届 + /// 默认值: + /// + public int GraduationYear { get; set; } + + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime CreateTime { get; set; } = DateTime.Now; + + /// + /// 备 注:创建者部门Id + /// 默认值: + /// + public long? CreatePositionId { get; set; } = 0; + + /// + /// 备 注:删除状态 + /// 默认值: + /// + public bool DeleteState { get; set; } + + /// + /// 备 注:班级类型 + /// 默认值: + /// + public ClassTypeEnum Type { get; set; } = ClassTypeEnum.云校班; + + /// + /// 备 注:教学层级 1:普通本科 2:重点本科 默认0未设置 + /// 默认值: + /// + public Enums.TeachingLevelEnum TeachingLevel { get; set; } + + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassDetailResult.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassDetailResult.cs new file mode 100644 index 0000000..7519e06 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassDetailResult.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassDetailResult + { + + public long Id { get; set; } + /// + /// 班级名称 + /// + public string Name { get; set; } = null!; + /// + /// 备 注:年级 + /// 默认值: + /// + public string GradeLevel { get; set; } + + /// + /// 备 注:学生人数 + /// 默认值: + /// + public int StudentCount { get; set; } + /// + /// 备 注:所属届 + /// 默认值: + /// + public int GraduationYear { get; set; } + /// + /// 学校ID + /// + public long SchoolId { get; set; } + /// + /// 学校名称 + /// + public string SchoolName { get; set; } + /// + /// 选修课指标1 + /// + public int? Elective1 { get; set; } + /// + /// 选修课指标1名称 + /// + public string? Elective1Name { get; set; } + /// + /// 选修课指标2 + /// + public int? Elective2 { get; set; } + /// + /// 选修课指标2名称 + /// + public string? Elective2Name { get; set; } + /// + /// 选修课指标3 + /// + public int? Elective3 { get; set; } + /// + /// 选修课指标3名称 + /// + public string? Elective3Name { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassDto.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassDto.cs new file mode 100644 index 0000000..66009c7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassDto.cs @@ -0,0 +1,113 @@ +using LearningOfficer.OA.Common.Enums; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.Json.Serialization; +using System.Threading.Tasks; +using UserCenter.Model.Common; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassAddDto + { + /// + /// 备 注:名称 + /// 默认值: + /// + public string ClassName { get; set; } = null!; + + /// + /// 备 注:学校id + /// 默认值: + /// + public long SchoolId { get; set; } + + ///// + ///// 备 注:年级 + ///// 默认值: + ///// + //public string Grade { get; set; } = null!; + + /// + /// 备 注:届 + /// 默认值: + /// + public int GraduationYear { get; set; } + + /// + /// 备 注:学段: 初、高 + /// 默认值: + /// + public string GradeLevel { get; set; } = null!; + + /// + /// 备 注:教学层级 1:普通本科 2:重点本科 + /// 默认值: + /// + public TeachingLevelEnum TeachingLevel { get; set; } + + ///// + ///// 获取年级信息 + ///// + //[JsonIgnore] + //public GradeModel GradeInfo + //{ + // get + // { + // return GradeHelper.GetStudentGradeBaseByGrade(Grade); + // } + //} + + } + + public class ClassesUpdateDto + { + /// + /// 备 注:班级Id + /// 默认值: + /// + public long Id { get; set; } + + /// + /// 备 注:名称 + /// 默认值: + /// + public string ClassName { get; set; } = null!; + + /// + /// 备 注:届 + /// 默认值: + /// + public int GraduationYear { get; set; } + + /// + /// 备 注:学段: 初、高 + /// 默认值: + /// + public string GradeLevel { get; set; } = null!; + + + ///// + ///// 备 注:年级 + ///// 默认值: + ///// + //public string Grade { get; set; } = null!; + + + ///// + ///// 获取年级信息 + ///// + //[JsonIgnore] + //public GradeModel GradeInfo + //{ + // get + // { + // return GradeHelper.GetStudentGradeBaseByGrade(Grade); + // } + //} + + public TeachingLevelEnum TeachingLevel { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassStudentDto.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassStudentDto.cs new file mode 100644 index 0000000..ab6a327 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassStudentDto.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassStudentViewDto + { + public long Id { get; set; } + public string RealName { get; set; } + } + + public class ClassStudentUpdateDto + { + public long Id { get; set; } + public string RealName { get; set; } + } + + + public class ClassStudentAddDto + { + public string RealName { get; set; } + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassStudentSearchDto.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassStudentSearchDto.cs new file mode 100644 index 0000000..0d9d489 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassStudentSearchDto.cs @@ -0,0 +1,16 @@ +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassStudentSearchDto : PageRequest + { + public long ClassesId { get; set; } + public string? StudentName { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassesAndFollowResult.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassesAndFollowResult.cs new file mode 100644 index 0000000..09ed753 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassesAndFollowResult.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassesAndFollowResult + { + + public long Id { get; set; } + /// + /// 班级id + /// + public string Name { get; set; } = null!; + /// + /// 备 注:年级 + /// 默认值: + /// + public string GradeLevel { get; set; } + + /// + /// 备 注:所属届 + /// 默认值: + /// + public int GraduationYear { get; set; } + /// + /// 学习官名称 + /// + public string FollowName { get; set; } = null!; + /// + /// 学习官id + /// + public long FollowId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassesResult.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassesResult.cs new file mode 100644 index 0000000..67428a2 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassesResult.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassesResult + { + public long Id { get; set; } + /// + /// 班级名称 + /// + public string Name { get; set; } = null!; + /// + /// 备 注:年级 + /// 默认值: + /// + public string GradeLevel { get; set; } + + /// + /// 备 注:所属届 + /// 默认值: + /// + public int GraduationYear { get; set; } + /// + /// 备 注:学校id + /// 默认值: + /// + public long SchoolId { get; set; } + /// + /// 学校名称 + /// + public string SchoolName + { + get; set; + + } + } + /// + /// 备 注:班级信息返回实体 + /// + public class ClassesInfoResult + { + /// + /// 备 注:班级id(班级任务) + /// 默认值: + /// + public long? ClassesId { get; set; } + /// + /// 备 注:班级名称 + /// + public string ClassesName { get; set; } = null!; + /// + /// 备 注:年级 + /// 默认值: + /// + public string? GradeLevel { get; set; } + + /// + /// 备 注:所属届 + /// 默认值: + /// + public int? GraduationYear { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassesSearchDto.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassesSearchDto.cs new file mode 100644 index 0000000..cc67487 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassesSearchDto.cs @@ -0,0 +1,38 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassesSearchDto : PageRequest + { + /// + /// 学校id + /// + public long SchoolId { get; set; } + + /// + /// 班级名称 + /// + public string? ClassName { get; set; } + + /// + /// 班级层次 + /// + public TeachingLevelEnum? TeachingLevel { get; set; } + + /// + /// 年级 + /// + public string GradeLevel { get; set; } + + /// + /// 毕业届 + /// + public int GradeYear { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/ClassesViewDto.cs b/LearningOfficer.OA.Common/Dtos/Classes/ClassesViewDto.cs new file mode 100644 index 0000000..865563e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/ClassesViewDto.cs @@ -0,0 +1,83 @@ +using LearningOfficer.OA.Common.Enums; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model.Common; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class ClassesViewDto + { + public long Id { get; set; } + /// + /// 备 注:名称 + /// 默认值: + /// + public string ClassName { get; set; } = null!; + + /// + /// 备 注:年级 + /// 默认值: + /// + public string GradeLevel { get; set; } = null!; + + /// + /// 备 注:所属届 + /// 默认值: + /// + public int GraduationYear { get; set; } + + + /// + /// 学校Id + /// + public long SchoolId { get; set; } + + /// + /// 学校名称 + /// + public string SchoolName { get; set; } + + + /// + /// 教学层级 1:普通本科 2:重点本科 + /// + public TeachingLevelEnum TeachingLevel { get; set; } + + + /// + /// 学习官组长Id + /// + public long LearningOfficeLeaderId { get; set; } + + /// + /// 学习官组长名称 + /// + public string LearningOfficeLeaderName { get; set; } + + + /// + /// 学习官Id + /// + public long LearningOfficeId { get; set; } + + /// + /// 学习官名称 + /// + public string LearningOfficeName { get; set; } + + /// + /// 当前所属年级 + /// + public string GradeString + { + get + { + return GradeHelper.GetGrade(GradeLevel, GraduationYear); + } + } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/SchoolGradeModel.cs b/LearningOfficer.OA.Common/Dtos/Classes/SchoolGradeModel.cs new file mode 100644 index 0000000..9fa4194 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/SchoolGradeModel.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model.Common; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class SchoolGradeModel : GradeModel + { + /// + /// 꼶ʾ + /// + public string GradeDisplayName + { + get + { + return GradeHelper.GetGrade(GradeLevel, GradeYear); + } + } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/TransferClassRequest.cs b/LearningOfficer.OA.Common/Dtos/Classes/TransferClassRequest.cs new file mode 100644 index 0000000..83cf6ef --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/TransferClassRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + public class TransferClassRequest + { + + /// + /// 学生id + /// + public long UserId { get; set; } + /// + /// 原班级id + /// + public long OldClassId { get; set; } + /// + /// 班级id(目标班级id) + /// + public long ToClassId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Classes/UnboundManageClassSearchDto.cs b/LearningOfficer.OA.Common/Dtos/Classes/UnboundManageClassSearchDto.cs new file mode 100644 index 0000000..b26b392 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Classes/UnboundManageClassSearchDto.cs @@ -0,0 +1,30 @@ +using LearningOfficer.OA.Common.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Classes +{ + /// + /// 未绑定的班级搜索参数 + /// + public class UnboundManageClassSearchDto + { + /// + /// 学校id + /// + public long SchoolId { get; set; } + + /// + /// 年级 + /// + public string GradeLevel { get; set; } + + /// + /// 毕业届 + /// + public int GradeYear { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/CloudSchool/CloudSchoolDto.cs b/LearningOfficer.OA.Common/Dtos/CloudSchool/CloudSchoolDto.cs new file mode 100644 index 0000000..127388f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/CloudSchool/CloudSchoolDto.cs @@ -0,0 +1,59 @@ +using LearningOfficer.OA.Common.Dtos.School; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.CloudSchool +{ + public class CloudSchoolAddDto + { + /// + /// 备 注:云校名称 + /// 默认值: + /// + public string Name { get; set; } = null!; + + /// + /// 备 注:启用状态 + /// 默认值: + /// + public bool Enable { get; set; } + + ///// + ///// 学校集合 + ///// + //public List SchoolIds { get; set; } + } + + public class CloudSchoolUpdateDto : CloudSchoolAddDto + { + public long Id { get; set; } + } + + public class CloudSchoolViewDto + { + public long Id { get; set; } + + /// + /// 备 注:云校名称 + /// 默认值: + /// + public string Name { get; set; } = null!; + + /// + /// 备 注:启用状态 + /// 默认值: + /// + public bool Enable { get; set; } + + /// + /// 关联学习官部长名称 + /// + public string MinisterName { get; set; } + + public List Schools { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/CloudSchool/CloudSchoolResult.cs b/LearningOfficer.OA.Common/Dtos/CloudSchool/CloudSchoolResult.cs new file mode 100644 index 0000000..1bafd38 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/CloudSchool/CloudSchoolResult.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.CloudSchool +{ + public class CloudSchoolResult + { + /// + /// 云校名称 + /// + public string CloudName { get; set; } + /// + /// 云校ID + /// + public long CloudId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Comment/CommentInfoRequest.cs b/LearningOfficer.OA.Common/Dtos/Comment/CommentInfoRequest.cs new file mode 100644 index 0000000..b21aab3 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Comment/CommentInfoRequest.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Comment +{ + public class CommentInfoRequest + { + /// + /// 备 注:所属类型(1:工作任务、2:日报、3:周报、4:月报) + /// 默认值: + /// + public int ComType { get; set; } + /// + /// 备 注:任务/总结 id + /// 默认值: + /// + public long SourceId { get; set; } + + /// + /// 备 注:评论内容 + /// 默认值: + /// + public string ComContent { get; set; } = null!; + + + /// + /// 备 注:父级id(子评论),(默认0为一级评论,回复的评论则传对应评论id) + /// 默认值: + /// + public long PId { get; set; } + + + /// + /// 备 注:根id(一级为0,一级下面的所有评论均传第一级评论的id) + /// 默认值: + /// + public long RootId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Comment/CommentInfoResult.cs b/LearningOfficer.OA.Common/Dtos/Comment/CommentInfoResult.cs new file mode 100644 index 0000000..d7939d7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Comment/CommentInfoResult.cs @@ -0,0 +1,86 @@ +using LearningOfficer.OA.Common.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Comment +{ + public class CommentInfoResult + { + public long Id { get; set; } + /// + /// 备 注:所属类型(1:工作任务、2:日报、3:周报、4:月报) + /// 默认值: + /// + public int ComType { get; set; } + + + /// + /// 备 注:任务/总结 id + /// 默认值: + /// + public long SourceId { get; set; } + + + /// + /// 备 注:评论人姓名 + /// 默认值: + /// + public string AddUsername { get; set; } = null!; + + + + /// + /// 备 注:评论人 + /// 默认值: + /// + public long AddUserid { get; set; } + + + /// + /// 备 注:评论时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + + + /// + /// 备 注:评论内容 + /// 默认值: + /// + public string ComContent { get; set; } = null!; + + + /// + /// 备 注:父级id(子评论),默认0为一级评论 + /// 默认值: + /// + public long PId { get; set; } + + + /// + /// 备 注:根id(0) + /// 默认值: + /// + public long RootId { get; set; } + + /// + /// 根下评论数量 + /// + public int ChildrenCount { get; set; } = 0; + /// + /// 评论人头像 + /// + public string? HeadImage { get; set; } + /// + /// 评论人角色枚举 1000:总部长 1001:部长 1002:组长 1003:学习官 + /// + public SysRoleEnum RoleEnum { get; set; } + /// + /// 回复人名称 + /// + public string ReplyUserName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumHeadtimeRequest.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumHeadtimeRequest.cs new file mode 100644 index 0000000..a4b38de --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumHeadtimeRequest.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class CurriculumHeadtimeRequest + { + /// + /// 备 注:第几节 + /// 默认值: + /// + public int WhichSection { get; set; } + + /// + /// 周类型(0普通课表,1单周,2双周) + /// + public int WeekType { get; set; } + + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:班级id + /// 默认值: + /// + public long Classid { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumHeadtimeResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumHeadtimeResult.cs new file mode 100644 index 0000000..e8d21b9 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumHeadtimeResult.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class CurriculumHeadtimeResult + { + public long Id { get; set; } + + /// + /// 备 注:第几节 + /// 默认值: + /// + public int WhichSection { get; set; } + + + /// + /// 周类型(0普通课表,1单周,2双周) + /// + public int WeekType { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:班级id + /// 默认值: + /// + public long Classid { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumInfoDetailRequest.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumInfoDetailRequest.cs new file mode 100644 index 0000000..c497169 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumInfoDetailRequest.cs @@ -0,0 +1,113 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class CurriculumInfoDetailRequest + { + /// + /// 修改传入Id,新增传null或不传 + /// + public long? Id { get; set; } + + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + + + + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + public int SectionCount { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:该班级科目教师表id + /// 默认值: + /// + public long SubTeacherId { get; set; } + + + + /// + /// 备 注:模板id + /// 默认值: + /// + public long ModelId { get; set; } + + + } + + public class UpdateCurriculumInfoDetail + { + /// + /// 生效模式,1马上生效,2下周一生效 + /// + public int EffectiveMode { get; set; } + ///// + ///// 要修改的明细 + ///// + //public List? Details { get; set; } + /// + /// 要添加的明细 + /// + public List? AddDetails { get; set; } + ///// + /////要删除的id集合,可空 + ///// + //public List? DeleteIds { get; set; } + } + public class CurriculumInfoDetailInfo + { + + /// + /// 修改传入Id,新增传null或不传 + /// + public long? Id { get; set; } + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + /// + /// 备 注:模板id + /// 默认值: + /// + public long ModelId { get; set; } + /// + /// 备 注:该班级科目教师表id + /// 默认值: + /// + public long SubTeacherId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumInfoDetailResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumInfoDetailResult.cs new file mode 100644 index 0000000..3c1e323 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumInfoDetailResult.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + /// + /// 课程模板的课程详情 + /// + public class CurriculumInfoDetailResult + { + public long Id { get; set; } + + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + + + + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + public int SectionCount { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:该班级科目教师表id + /// 默认值: + /// + public long SubTeacherId { get; set; } + + /// + /// 备 注:科目id + /// + public long? SubjectId { get; set; } + /// + /// 备 注:科目名称 + /// + public string SubjectName { get; set; } + /// + /// 备 注:教师id + /// + public long? TeacherId { get; set; } + /// + /// 备 注:教师名称 + /// + public string? TeacherName { get; set; } + + + /// + /// 备 注:批次id + /// 默认值: + /// + public long BatchId { get; set; } + + + /// + /// 备 注:模板id + /// 默认值: + /// + public long ModelId { get; set; } + + + /// + /// 备 注:周类型(0普通课表-不分单双周,1单周,2双周) + /// 默认值: + /// + public int WeekType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumModelDtos.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumModelDtos.cs new file mode 100644 index 0000000..808d6f6 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumModelDtos.cs @@ -0,0 +1,136 @@ +using System.ComponentModel.DataAnnotations; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + /// + /// 创建 CurriculumModel 的参数模型。 + /// + public class CurriculumModelCreateDto + { + /// + /// 班级标识。 + /// + public long ClassId { get; set; } + + /// + /// 模板类型(1单周-普通,2单双周)。 + /// + public int ModelType { get; set; } + + /// + /// 模板周类型(0普通,1单周,2双周)。 + /// + public int WeekType { get; set; } + /// + /// 一共几节课(默认0) + /// + public int SectionAllCount { get; set; } + /// + /// 课程模板通用课时信息。 + /// + public List curriculumHeadtimeRequest { get; set; } + /// + /// 课程模板特殊周安排。 + /// + public List curriculumSpecialWeekRequests { get; set; } + /// + /// 课程模板通用信息。 + /// + public List curriculumModelInfoCreateDtos { get; set; } + /// + /// 课程模板特殊课时间安排。 + /// + public List curriculumModelSpecialCreateDtos { get; set; } + } + + /// + /// 更新 CurriculumModel 的参数模型。 + /// + public class CurriculumModelUpdateDto : CurriculumModelCreateDto + { + public long Id { get; set; } + } + /// + /// 课程模板课程信息。 + /// + public class CurriculumModelInfoRequest + { + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + public int SectionCount { get; set; } + + + /// + /// 备 注:通用开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:通用结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:模板周类型(0普通课表-不分单双周,1单周,2双周) + /// 默认值: + /// + public int WeekType { get; set; } + + + } + /// + /// 课程模板特殊课时间安排。 + /// + public class CurriculumModelSpecialRequest + { + + + /// + /// 备 注:周几 + /// 默认值: + /// + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + public int SectionCount { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:模板周类型(0普通课表-不分单双周,1单周,2双周) + /// 默认值: + /// + public int WeekType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumModelResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumModelResult.cs new file mode 100644 index 0000000..eae655b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumModelResult.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class CurriculumModelDetailResult + { + /// + /// 课程模板基本信息 + /// + public CurriculumModelResult curriculumModelResult { get; set; } + /// + /// 模板课配置信息 + /// + public List curriculumModelInfoResults { get; set; } + /// + /// 模板课配置信息(特殊课时) + /// + public List curriculumModelSpecialResults { get; set; } + } + public class ClassCurriculumModelListResult + { + + /// + /// 备 注:学校编号 + /// 默认值: + /// + public long SchoolId { get; set; } + /// + /// 学校名称 + /// + public string SchoolName { get; set; } + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + /// + /// 备 注:班级名称 + /// + public string ClassName { get; set; } + /// + /// 备 注:届 + /// 默认值: + /// + public int GraduationYear { get; set; } + + /// + /// 备 注:学段: 初、高 + /// 默认值: + /// + public string GradeLevel { get; set; } = null!; + /// + /// 课程模板信息 + /// + public List curriculumModelResults { get; set; } + + } + /// + /// 课程模板基本信息。 + /// + public class CurriculumModelResult + { + + public long Id { get; set; } + + /// + /// 备 注:模板类型(1:单周(普通周);2单双周) + /// 默认值: + /// + public int ModelType { get; set; } + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + /// + /// 备 注:班级名称 + /// + public string ClassName { get; set; } + /// + /// 备 注:届 + /// 默认值: + /// + public int GraduationYear { get; set; } + + /// + /// 备 注:学段: 初、高 + /// 默认值: + /// + public string GradeLevel { get; set; } = null!; + + + /// + /// 备 注:模板周类型(0普通课表-不分单双周,1单周,2双周) + /// ModelType=1时该字段值为0;ModelType=2时该字段值为1或2 + /// 默认值: + /// + public int WeekType { get; set; } + + + /// + /// 备 注:批次id + /// 默认值: + /// + public long BatchId { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime Addtime { get; set; } + + + /// + /// 一共几节课(默认0) + /// + public int SectionAllCount { get; set; } + + + /// + /// 备 注:定位周开始时间 + /// 默认值: + /// + public DateTime? PositionWeekStart { get; set; } + + + /// + /// 备 注:定位周结束时间 + /// 默认值: + /// + public DateTime? PostionWeekEnd { get; set; } + + + /// + /// 备 注:定位周类型,model_type为2时有效(1单周,2双周) + /// 默认值: + /// + public int? PostionWeekType { get; set; } + } + /// + /// 模板课配置信息 + /// + public class CurriculumModelInfoResult + { + public long Id { get; set; } + + /// + /// 备 注:模板id + /// 默认值: + /// + public long ModelId { get; set; } + + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + public int SectionCount { get; set; } + + + /// + /// 备 注:通用开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:通用结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:模板周类型(0普通课表-不分单双周,1单周,2双周) + /// 默认值: + /// + public int WeekType { get; set; } + + + /// + /// 备 注:0正常 1删除 + /// 默认值: + /// + public int Isdel { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumPostionResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumPostionResult.cs new file mode 100644 index 0000000..e8f83b1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumPostionResult.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + /// + /// 课程定位结果。 + /// + public class CurriculumPostionResult + { + public long Id { get; set; } + + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + + + /// + /// 备 注:定位周开始时间 + /// 默认值: + /// + public DateTime? PositionWeekStart { get; set; } + + + /// + /// 备 注:定位周结束时间 + /// 默认值: + /// + public DateTime? PostionWeekEnd { get; set; } + + + /// + /// 备 注:定位周类型(0普通-不区分单双周,1单周,2双周) + /// 默认值: + /// + public int PostionWeekType { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime Addtime { get; set; } + + + /// + /// 备 注:添加人id + /// 默认值: + /// + public long Userid { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSpecialWeekRequest.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSpecialWeekRequest.cs new file mode 100644 index 0000000..61ea97e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSpecialWeekRequest.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class CurriculumSpecialWeekRequest + { + + /// + /// 备 注:班级id + /// 默认值: + /// + public long Classid { get; set; } + + /// + /// 周类型(0普通课表,1单周,2双周) + /// + public int WeekType { get; set; } + + + + /// + /// 备 注:周几 + /// 默认值: + /// + public int WeekCount { get; set; } + + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSpecialWeekResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSpecialWeekResult.cs new file mode 100644 index 0000000..9dabf45 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSpecialWeekResult.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class CurriculumSpecialWeekResult + { + public long Id { get; set; } + + /// + /// 备 注:班级id + /// 默认值: + /// + public long Classid { get; set; } + /// + /// 周类型(0普通课表,1单周,2双周) + /// + public int WeekType { get; set; } + + + + /// + /// 备 注:周几 + /// 默认值: + /// + public int WeekCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSubTeacherRequest.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSubTeacherRequest.cs new file mode 100644 index 0000000..faa8f78 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSubTeacherRequest.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + /// + /// 课程模板科目教师信息。 + /// + public class CurriculumSubTeacherRequest + { + + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + + + /// + /// 备 注:科目id + /// 默认值: + /// + public long SubId { get; set; } + + + /// + /// 备 注:科目名称 + /// 默认值: + /// + public string SubName { get; set; } = null!; + + + /// + /// 备 注:教师id + /// 默认值: + /// + public long TeacherId { get; set; } + + + /// + /// 备 注:教师名称 + /// 默认值: + /// + public string TeacherName { get; set; } = null!; + } + /// + /// 修改课程模板科目教师信息。 + /// + public class UpdateCurriculumSubTeacherRequest + { + /// + /// 备 注:修改传id,新增不传 + /// + public long? Id { get; set; } + + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + + + /// + /// 备 注:科目id + /// 默认值: + /// + public long SubId { get; set; } + + + /// + /// 备 注:科目名称 + /// 默认值: + /// + public string SubName { get; set; } = null!; + + + /// + /// 备 注:教师id + /// 默认值: + /// + public long TeacherId { get; set; } + + + /// + /// 备 注:教师名称 + /// 默认值: + /// + public string TeacherName { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSubTeacherResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSubTeacherResult.cs new file mode 100644 index 0000000..2e072ad --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumSubTeacherResult.cs @@ -0,0 +1,46 @@ +using System.ComponentModel.DataAnnotations; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + /// + /// 课程科目教师结果模型。 + /// + public class CurriculumSubTeacherResult + { + public long Id { get; set; } + /// + /// 备 注:班级id + /// 默认值: + /// + public int ClassId { get; set; } + + + /// + /// 备 注:科目id + /// 默认值: + /// + public long SubId { get; set; } + + + /// + /// 备 注:科目名称 + /// 默认值: + /// + public string SubName { get; set; } = null!; + + + /// + /// 备 注:教师id + /// 默认值: + /// + public long TeacherId { get; set; } + + + /// + /// 备 注:教师名称 + /// 默认值: + /// + public string TeacherName { get; set; } = null!; + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimeTableMobilResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimeTableMobilResult.cs new file mode 100644 index 0000000..66106c6 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimeTableMobilResult.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class CurriculumTimeTableMobilResult + { + /// + /// 最大节数 + /// + public int MaxSectionCount { get; set; } + /// + /// 日期列表 + /// + public List Dates { get; set; } + /// + /// 具体课表信息 + /// + public List TimetableList { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimeTableUpdateRequest.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimeTableUpdateRequest.cs new file mode 100644 index 0000000..94132ce --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimeTableUpdateRequest.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class MobileCurriculumTimeTableUpdateRequest + { + /// + /// 新增为null,修改传入Id + /// + public long ClassCourseId { get; set; } + /// + ///科目 + /// + public int SubId { get; set; } + + } + public class CurriculumTimeTableUpdateRequest + { + /// + /// 新增为null,修改传入Id + /// + public long? Id { get; set; } + + /// + /// 备 注:该班级科目教师表id(选科目) + /// 默认值: + /// + public long SubTeacherId { get; set; } + + + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + + + /// + /// 备 注:日期 + /// 默认值: + /// + public DateTime Date { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + public int SectionCount { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimetableResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimetableResult.cs new file mode 100644 index 0000000..69bf983 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/CurriculumTimetableResult.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class CurriculumTimetableAndHeadResponse + { + /// + /// 课表时间段信息 + /// + public List curriculumHeadtimeResults { get; set; } + /// + /// 特殊周几 + /// + public List curriculumSpecialWeekResults { get; set; } + /// + /// 具体课表信息 + /// + public List TimetableList { get; set; } + } + /// + /// 课表信息 + /// + public class CurriculumTimetableResult + { + + public long Id { get; set; } + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + /// + /// 备 注:班级名称 + /// + public string ClassName { get; set; } + + /// + /// 备 注:届 + /// 默认值: + /// + public int GraduationYear { get; set; } + + /// + /// 备 注:学段: 初、高 + /// 默认值: + /// + public string GradeLevel { get; set; } = null!; + + /// + /// 备 注:日期 + /// 默认值: + /// + public DateTime Date { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:该班级科目教师表id + /// 默认值: + /// + public long SubTeacherId { get; set; } + + + /// + /// 备 注:科目id + /// + public long? SubjectId { get; set; } + /// + /// 备 注:科目名称 + /// + public string SubjectName { get; set; } + /// + /// 备 注:教师id + /// + public long? TeacherId { get; set; } + /// + /// 备 注:教师名称 + /// + public string? TeacherName { get; set; } + + /// + /// 备 注:云学校教师id + /// + public long? CloudSchoolTeacherId { get; set; } + /// + /// 备 注:云学校教师名称 + /// + public string? CloudSchoolTeacherName { get; set; } + + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + public int SectionCount { get; set; } + + + + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/ThrerModelDetailResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/ThrerModelDetailResult.cs new file mode 100644 index 0000000..9746376 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/ThrerModelDetailResult.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class ThrerModelDetailResult + { + /// + /// 课表时间段信息 + /// + public List curriculumHeadtimeResults { get; set; } + /// + /// 特殊周几 + /// + public List curriculumSpecialWeekResults { get; set; } + /// + /// 模板课程信息 + /// + public List curriculumInfoDetails { get; set; } + + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Curriculum/WeekInfoResult.cs b/LearningOfficer.OA.Common/Dtos/Curriculum/WeekInfoResult.cs new file mode 100644 index 0000000..aa925fb --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Curriculum/WeekInfoResult.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Curriculum +{ + public class WeekInfoResult + { + /// + /// 开始日期 + /// + public DateTime StartDate { get; set; } + /// + /// 结束日期 + /// + public DateTime EndDate { get; set; } + /// + /// 周类型(0普通课表-不分单双周,1单周,2双周) + /// + public int WeekType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/AdminExportVM.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/AdminExportVM.cs new file mode 100644 index 0000000..43d182b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/AdminExportVM.cs @@ -0,0 +1,76 @@ +using LearningOfficer.OA.Common.Enums; +using MiniExcelLibs.Attributes; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack +{ + public class AdminExportVM + { + /// + /// 备 注:建议类型(字典表-枚举值) + /// 默认值: + /// + [SugarColumn(ColumnName = "feedback_type")] + public long FeedbackType { get; set; } + /// + /// 备 注:提议时间 + /// 默认值: + /// + [ExcelColumnName("提议时间")] + [ExcelColumnWidth(20)] + public DateTime AddTime { get; set; } + /// + /// 建议类型中文 + /// + [ExcelColumnName("提议类型")] + [ExcelColumnWidth(20)] + public string FeedbackTypeName { get; set; } = null!; + /// + /// 备 注:现状描述 + /// 默认值: + /// + [ExcelColumnName("现状描述")] + [ExcelColumnWidth(60)] + public string Remark { get; set; } = null!; + /// + /// 备 注:优化方案 + /// 默认值: + /// + [ExcelColumnWidth(60)] + [ExcelColumnName("优化方案")] + public string? OptimizationPlan { get; set; } + /// + /// 云校名称 + /// + [ExcelColumnName("所在云校")] + public string CloudSchoolName { get; set; } + /// + /// 所在学校 + /// + [ExcelColumnName("所在学校")] + public string SchoolName { get; set; } + /// + /// 提议人联系电话 + /// + //[ExcelColumnName("提议人联系电话")] + public string AddUserPhone { get; set; } + /// + /// 提议人姓名 + /// + [ExcelColumnName("提议人姓名")] + [ExcelColumnWidth(20)] + public string AddUserName { get; set; } + /// + /// 备 注:状态(默认0未确认、1已采纳、2不采纳、3重复建议) + /// 默认值: + /// + [ExcelColumnName("状态")] + [ExcelColumnWidth(20)] + public FeedBackInfoStatusEnum Status { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/AdminQueryPageDto.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/AdminQueryPageDto.cs new file mode 100644 index 0000000..6cf48e4 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/AdminQueryPageDto.cs @@ -0,0 +1,49 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack +{ + /// + /// 管理端分页dto + /// + public class AdminQueryPageDto : PageRequest + { + /// + /// 备 注:建议类型 传0或null,表示所有 + /// 默认值: + /// + public long? FeedbackType { get; set; } + + /// + /// 备 注:状态 默认null,表示所有 + /// 默认值: + /// + public FeedBackInfoStatusEnum? Status { get; set; } + /// + /// 开始时间 默认null, 表示所有 + /// + public DateTime? BeginTime { get; set; } + /// + /// 结束时间 默认null,表示所有 + /// + public DateTime? EndTime { get; set; } + /// + /// 云校Id 默认null,表示所有 + /// + public long? CloudSchoolId { get; set; } + /// + /// 学校Id 默认null,表示所有 + /// + public long? SchoolId { get; set; } + /// + /// 提议人 + /// + public string? AddUserName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/AdminQueryPageVM.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/AdminQueryPageVM.cs new file mode 100644 index 0000000..e5f46d7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/AdminQueryPageVM.cs @@ -0,0 +1,98 @@ +using LearningOfficer.OA.Common.Enums; +using Masuit.Tools.Systems; +using MiniExcelLibs.Attributes; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack +{ + public class AdminQueryPageVM + { + /// + /// 主键 + /// + [SugarColumn(ColumnName = "Id")] + public long Id { get; set; } + /// + /// 备 注:建议类型(字典表-枚举值) + /// 默认值: + /// + [SugarColumn(ColumnName = "feedback_type")] + public long FeedbackType { get; set; } + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "add_userid")] + public long AddUserid { get; set; } + + /// + /// 备 注:提议时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time")] + public DateTime AddTime { get; set; } + + /// + /// 建议类型中文 + /// + public string FeedbackTypeName { get; set; } = null!; + /// + /// 备 注:最后操作时间(如修改状态需要修改本时间) + /// 默认值: + /// + [SugarColumn(ColumnName = "adopt_time")] + public DateTime AdoptTime { get; set; } + + /// + /// 备 注:现状描述 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark")] + public string Remark { get; set; } = null!; + + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } + /// + /// 所在学校 + /// + public string SchoolName { get; set; } + /// + /// 提议人联系电话 + /// + public string AddUserPhone { get; set; } + /// + /// 提议人姓名 + /// + public string AddUserName { get; set; } + /// + /// 备 注:状态(默认0未确认、1已采纳、2不采纳、3重复建议) + /// 默认值: + /// + [SugarColumn(ColumnName = "status")] + public FeedBackInfoStatusEnum Status { get; set; } + /// + /// 获得积分 + /// + [SugarColumn(ColumnName = "Earn_points")] + public int EarnPoints { get; set; } = 0; + /// + /// 采纳状态中文 示例:已被采纳 + /// + [SugarColumn(IsIgnore = true)] + public string StatusName + { + get + { + return Status.GetEnumDescription().Description; + } + } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/BatchEditStatusDto.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/BatchEditStatusDto.cs new file mode 100644 index 0000000..59665cd --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/BatchEditStatusDto.cs @@ -0,0 +1,28 @@ +using LearningOfficer.OA.Common.Enums; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack +{ + /// + /// 处理 + /// + public class BatchEditStatusDto + { + + /// + /// 备 注:处理状态(默认0未确认、1已采纳、2不采纳、3重复建议) + /// 默认值: + /// + [SugarColumn(ColumnName = "status")] + public FeedBackInfoStatusEnum Status { get; set; } + /// + /// 处理的数据Id + /// + public List Ids { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/FeedBackInfoAddDto.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/FeedBackInfoAddDto.cs new file mode 100644 index 0000000..f899052 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/FeedBackInfoAddDto.cs @@ -0,0 +1,42 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack +{ + /// + /// 提交建议 + /// + public class FeedBackInfoAddDto + { + /// + /// 备 注:建议类型(字典表-枚举值) + /// 默认值: + /// + [SugarColumn(ColumnName = "feedback_type")] + public long FeedbackType { get; set; } + + + /// + /// 备 注:现状描述 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark")] + public string Remark { get; set; } = null!; + + /// + /// 备 注:优化方案 + /// 默认值: + /// + [SugarColumn(ColumnName = "optimization_plan")] + public string OptimizationPlan { get; set; } = null!; + + /// + /// 附件ID + /// + public List? FileIds { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/GetFeedBackInfoSingleVM.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/GetFeedBackInfoSingleVM.cs new file mode 100644 index 0000000..527d9da --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/GetFeedBackInfoSingleVM.cs @@ -0,0 +1,97 @@ +using LearningOfficer.OA.Common.Dtos.SysFile; +using LearningOfficer.OA.Common.Enums; +using Masuit.Tools.Systems; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack +{ + public class GetFeedBackInfoSingleVM + { + /// + /// + /// + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + /// + /// 备 注:建议类型(字典表-枚举值) + /// 默认值: + /// + public long FeedbackType { get; set; } + + /// + /// 备 注:用户id + /// 默认值: + /// + public long AddUserid { get; set; } + + /// + /// 备 注:提议时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + + + /// + /// 备 注:现状描述 + /// 默认值: + /// + public string Remark { get; set; } = null!; + + /// + /// 备 注:优化方案 + /// 默认值: + /// + public string OptimizationPlan { get; set; } = null!; + + /// + /// 备 注:状态(默认0未确认、1已采纳、2不采纳、3重复建议) + /// 默认值: + /// + public FeedBackInfoStatusEnum Status { get; set; } + /// + /// 获得积分 + /// + public int EarnPoints { get; set; } = 0; + /// + /// 建议类型中文 + /// + public string FeedbackTypeName { get; set; } = null!; + /// + /// 采纳状态中文 示例:已被采纳 + /// + [SugarColumn(IsIgnore = true)] + public string StatusName + { + get + { + return Status.GetEnumDescription().Description; + } + } + /// + /// 文件信息 + /// + public List files { get; set; } + + /// + /// 所在云校 + /// + public string CloudSchoolName { get; set; } + /// + /// 所在学校 + /// + public string SchoolName { get; set; } + /// + /// 提议人联系电话 + /// + public string AddUserPhone { get; set; } + /// + /// 提议人 + /// + public string AddUserName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5QueryPageDto.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5QueryPageDto.cs new file mode 100644 index 0000000..2cfae51 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5QueryPageDto.cs @@ -0,0 +1,14 @@ +using LearningOfficer.OA.Common.Request; +using RestSharp; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack.H5 +{ + public class H5QueryPageDto:PageRequest + { + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5ThisMonthFeedBackVM.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5ThisMonthFeedBackVM.cs new file mode 100644 index 0000000..3cb213c --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5ThisMonthFeedBackVM.cs @@ -0,0 +1,57 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack.H5 +{ + /// + /// 本月金点子 + /// + public class H5ThisMonthFeedBackVM + { + /// + /// + /// + public long Id { get; set; } + /// + /// 姓名 + /// + public string RealName { get; set; } + /// + /// 用户Id + /// + public long UserId { get; set; } + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } + /// + /// 云校ID + /// + public long CloundSchoolId { get; set; } + /// + /// 备 注:建议类型(字典表-枚举值) + /// 默认值: + /// + public long FeedbackType { get; set; } + /// + /// 建议类型中文 + /// + public string FeedbackTypeName { get; set; } = null!; + + /// + /// 备 注:优化方案 + /// 默认值: + /// + public string OptimizationPlan { get; set; } = null!; + /// + /// 备 注:头像 + /// 默认值: + /// + public string HeadImage { get; set; } = ""; + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5TopIdeasRankingVM.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5TopIdeasRankingVM.cs new file mode 100644 index 0000000..5b3310f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/H5/H5TopIdeasRankingVM.cs @@ -0,0 +1,42 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack.H5 +{ + public class H5TopIdeasRankingVM + { + /// + /// 姓名 + /// + public string RealName { get; set; } + /// + /// 备 注:头像 + /// 默认值: + /// + public string HeadImage { get; set; } = ""; + /// + /// 用户Id + /// + public long UserId { get; set; } + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } + /// + /// 云校ID + /// + public long CloundSchoolId { get; set; } + /// + /// 被采纳建议条数 + /// + public int Count { get; set; } + /// + /// 最后一条建议的提交时间 + /// + public DateTime LastAddTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/FeedBack/PreviousOrNextDto.cs b/LearningOfficer.OA.Common/Dtos/FeedBack/PreviousOrNextDto.cs new file mode 100644 index 0000000..907e252 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/FeedBack/PreviousOrNextDto.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.FeedBack +{ + public class PreviousOrNextDto + { + /// + /// 当前详细id + /// + public long Id { get; set; } + /// + /// 1:上一条 2:下一条 + /// + public int Mark { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Financial/FinancialClassRequest.cs b/LearningOfficer.OA.Common/Dtos/Financial/FinancialClassRequest.cs new file mode 100644 index 0000000..a69b1cc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Financial/FinancialClassRequest.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Financial +{ + /// + /// 添加班级使用经费记录 + /// + public class FinancialClassRequest + { + /// + /// 班级id + /// + public long Class_Id { get; set; } + /// + /// 用途 + /// + public string Remark { get; set; } + /// + /// 元 + /// + public decimal Money { get; set; } + /// + /// 使用时间 + /// + public DateTime FinancialTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Financial/FinancialClassResult.cs b/LearningOfficer.OA.Common/Dtos/Financial/FinancialClassResult.cs new file mode 100644 index 0000000..799c7a3 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Financial/FinancialClassResult.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Financial +{ + public class FinancialClassSumResult + { + /// + /// 经费标准信息 + /// + public FinancialIndicatorsResult financialIndicatorsResult { get; set; } + /// + /// 累计金额 + /// + public decimal SumMoney { get; set; } + /// + /// 使用经费 + /// + public List financialClassResults { get; set; } + } + public class FinancialIndicatorsResult { + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:本时段经费金额 + /// 默认值: + /// + public decimal Money { get; set; } + } + public class FinancialClassResult + { + /// + /// 经费使用记录Id + /// + public long Id { get; set; } + /// + /// 备 注:使用时间 + /// 默认值: + /// + public DateTime FinancialTime { get; set; } + /// + /// 用途 + /// + public string Remark { get; set; } + /// + /// 消费费用(元) + /// + public decimal Money { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Financial/FinancialIndicatorsDto.cs b/LearningOfficer.OA.Common/Dtos/Financial/FinancialIndicatorsDto.cs new file mode 100644 index 0000000..5e0441d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Financial/FinancialIndicatorsDto.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Financial +{ + public class FinancialIndicatorsCreateDto + { + public DateTime StartTime { get; set; } + public DateTime EndTime { get; set; } + public decimal Money { get; set; } + } + + public class FinancialIndicatorsUpdateDto: FinancialIndicatorsCreateDto + { + public long Id { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Index/RedPoint.cs b/LearningOfficer.OA.Common/Dtos/Index/RedPoint.cs new file mode 100644 index 0000000..2fa077f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Index/RedPoint.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Index +{ + public class RedPoint + { + /// + /// 工作台待办数量 + /// + public int WorkBenchNonCount { get; set; } + /// + /// 资料收集待提交数量 + /// + public int DataCollectionNonSubCount { get; set; } + /// + /// 收到的布置工作数量 + /// + public int SuperiorCount { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginAdmin/LoginAdminDto.cs b/LearningOfficer.OA.Common/Dtos/LoginAdmin/LoginAdminDto.cs new file mode 100644 index 0000000..0c4a727 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginAdmin/LoginAdminDto.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginAdmin +{ + public class LoginAdminDto + { + public string Account { get; set; } + + public string Pwd { get; set; } + } + + /// + /// 管理员登录返回结果 + /// + public class LoginAdminDtoResult + { + public string Token { get; set; } + + public string Name { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginCodeRequest.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginCodeRequest.cs new file mode 100644 index 0000000..aa1b762 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginCodeRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class LoginCodeRequest + { + /// + /// 电话 + /// + public string Phone { get; set; } + /// + /// 验证码 + /// + public string Code { get; set; } + + /// + /// 登录类型 1:Android;2Ios;3扫码;4:H5 + /// + public int loginType { get; set; } = 1; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginMobileDto.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginMobileDto.cs new file mode 100644 index 0000000..262060f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginMobileDto.cs @@ -0,0 +1,17 @@ +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + /// + /// 登录手机Dto + /// + public class LoginMobileDto + { + /// + /// 手机号 + /// + public string Phone { get; set; } + /// + /// 验证码 + /// + public string Code { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginRequest.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginRequest.cs new file mode 100644 index 0000000..ba362e7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginRequest.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class LoginRequest + { + /// + /// 用户名 + /// + public string username { get; set; } + /// + /// 密码 + /// + public string Pwd { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginResetPwdRequest.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginResetPwdRequest.cs new file mode 100644 index 0000000..089d8fa --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/LoginResetPwdRequest.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class LoginResetPwdRequest + { + /// + /// 电话 + /// + public string Phone { get; set; } + /// + /// 验证码 + /// + public string Code { get; set; } + /// + /// 新密码 + /// + public string Password { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/MobileTokenInfo.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/MobileTokenInfo.cs new file mode 100644 index 0000000..39dc545 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/MobileTokenInfo.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class MobileTokenInfo + { + /// + /// 用户Id + /// + public string UserId { get; set; } + /// + /// 用户类型(1高中,2初中) + /// + public string UserType { get; set; } + /// + /// 用户名称 + /// + public string UserName { get; set; } + /// + /// 角色枚举值 + /// + public string RoleEnum { get; set; } + /// + /// 账号名称 + /// + public string Account { get; set; } + /// + /// Jwt_id + /// + public string Jwt_id { get; set; } + /// + /// 1:Android;2:Ios + /// + public string loginType { get; set; } = "1"; + /// + /// 角色名称 + /// + public string Role_Name { get; set; } + /// + /// 电话 + /// + public string Phone { get; set; } + /// + /// 学校 + /// + public string School_Name { get; set; } + /// + /// 云校id + /// + public string Cloud_id { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/MyInfoResetPwdRequest.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/MyInfoResetPwdRequest.cs new file mode 100644 index 0000000..59258fc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/MyInfoResetPwdRequest.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + /// + /// 修改密码 + /// + public class MyInfoResetPwdRequest + { + /// + /// 用户id + /// + public long Id { get; set; } + /// + /// 原密码 + /// + public string Password { get; set; } + /// + /// 新密码 + /// + public string New_password { get; set; } + } + public class MyUpdateNewPwdRequest + { + /// + /// 验证码 + /// + public string Code { get; set; } + /// + /// 新密码 + /// + public string NewPassword { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/MyPhoneBindRequest.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/MyPhoneBindRequest.cs new file mode 100644 index 0000000..fd8bc74 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/MyPhoneBindRequest.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + /// + /// 换绑电话 + /// + public class MyPhoneBindRequest + { + /// + /// 电话 + /// + public string Phone { get; set; } + /// + /// 验证码 + /// + public string Phone_Code { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/RefreshTokenRequest.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/RefreshTokenRequest.cs new file mode 100644 index 0000000..9b787e4 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/RefreshTokenRequest.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class RefreshTokenRequest + { + /// + /// 过期的token + /// + public string Token { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/RegisterRequest.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/RegisterRequest.cs new file mode 100644 index 0000000..4d08b68 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/RegisterRequest.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class RegisterRequest + { + /// + /// 账号 + /// + public string account { get; set; } + /// + /// 密码 + /// + public string password { get; set; } + public string userName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/UserResult.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/UserResult.cs new file mode 100644 index 0000000..2284876 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/UserResult.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Enums; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class UserResult + { + /// + /// 备 注:用户中心id + /// 默认值: + /// + public long Id { get; set; } + /// + /// 用户类型(1高中,2初中) + /// + public long UserType { get; set; } + /// + /// 备 注:姓名 + /// 默认值: + /// + public string RealName { get; set; } = null!; + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + /// + /// 角色枚举 + /// + public SysRoleEnum RoleEnum { get; set; } + /// + /// 云校id + /// + public long? Cloud_id { get; set; } + /// + /// 角色名称 + /// + public string? Role_Name { get; set; } + /// + /// 备 注:云校名称 + /// 默认值: + /// + public string? CloudName { get; set; } + /// + /// 备 注:手机号 + /// 默认值: + /// + public string? Phone { get; set; } + /// + /// 头像URL + /// + public string HeadImage { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/testAccountResult.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/testAccountResult.cs new file mode 100644 index 0000000..83da443 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/testAccountResult.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class testAccountResult + { + /// + /// 账号 + /// + public string username { get; set; } + /// + /// 密码 + /// + public string Pwd { get; set; } + /// + /// 是否开启测试 + /// + public bool isOpenTest { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/userLoginRequest.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/userLoginRequest.cs new file mode 100644 index 0000000..273cdc7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/userLoginRequest.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class userLoginRequest + { + /// + /// 电话 + /// + public string Phone { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/LoginMobile/userLoginResult.cs b/LearningOfficer.OA.Common/Dtos/LoginMobile/userLoginResult.cs new file mode 100644 index 0000000..4ca6879 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/LoginMobile/userLoginResult.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.LoginMobile +{ + public class userLoginResult + { + /// + /// Token + /// + public string token { get; set; } + /// + /// 用户信息 + /// + public UserResult userInfo { get; set; } + /// + /// UserSig + /// + public string UserSig { get; set; } + /// + /// 用户类型(1:高中用户、2:初中用户) + /// + public int userType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Menus/MenuAddDto.cs b/LearningOfficer.OA.Common/Dtos/Menus/MenuAddDto.cs new file mode 100644 index 0000000..7f9e0ed --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Menus/MenuAddDto.cs @@ -0,0 +1,130 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Menus +{ + public class MenuAddDto + { + /// + /// 备 注:菜单名称 + /// 默认值: + /// + public string Title { get; set; } = null!; + + + /// + /// 备 注:父级菜单id + /// 默认值: + /// + public long ParentId { get; set; } + + + /// + /// 备 注:序号 + /// 默认值: + /// + public int Sort { get; set; } + + + /// + /// 备 注:路由路径 + /// 默认值: + /// + public string Path { get; set; } = null!; + + + /// + /// 备 注:菜单图标 + /// 默认值: + /// + public string Icon { get; set; } = null!; + + + /// 备 注:组件 + /// 默认值: + /// + public string Component { get; set; } = null!; + } + + public class MenuUpdateDto : MenuAddDto + { + /// + /// 备 注:菜单id + /// 默认值: + /// + public long Id { get; set; } + } + + public class MenuFrontEndDto + { + public long Id { get; set; } + /// + /// 备 注:菜单名称 + /// 默认值: + /// + public string Title { get; set; } = null!; + + + /// + /// 备 注:父级菜单id + /// 默认值: + /// + public long ParentId { get; set; } + + + /// + /// 备 注:序号 + /// 默认值: + /// + public int Sort { get; set; } + + + /// + /// 备 注:路由路径 + /// 默认值: + /// + public string Path { get; set; } = null!; + + + /// + /// 备 注:菜单图标 + /// 默认值: + /// + public string Icon { get; set; } = null!; + + + /// 备 注:组件 + /// 默认值: + /// + public string Component { get; set; } = null!; + + public MenuMeta Meta + { + get + { + return new MenuMeta + { + Title = this.Title, + Icon = this.Icon + }; + } + } + + public List Children { get; set; } + } + + public class MenuMeta + { + /// + /// 备 注:菜单名称 + /// 默认值: + /// + public string Title { get; set; } = null!; + + public string Icon { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionDetailResult.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionDetailResult.cs new file mode 100644 index 0000000..e9b14b1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionDetailResult.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + public class DataConllectionDetailResult + { + public long Id { get; set; } + /// + /// 备 注:收集主题 + /// 默认值: + /// + public string Title { get; set; } = null!; + /// + /// 备 注:收集要求 + /// 默认值: + /// + public string Remark { get; set; } = null!; + + /// + /// 备 注:模板文件id + /// 默认值: + /// + public long? FileId { get; set; } + + /// + /// 备 注:模板文件路径 + /// + public string? FilePath { get; set; } + + /// + /// 备 注:模板文件名称 + /// + public string? FileName { get; set; } + + /// + /// 备 注:模板文件大小 + /// + public long? FileSize { get; set; } + /// + /// 备 注:提交时间 + /// 默认值: + /// + public DateTime Endtime { get; set; } + /// + /// 备 注:状态:1:已创建(未发布);2:进行中(已发布);3:已完成;4:已关闭 + /// 默认值: + /// + public int? Status { get; set; } + /// + /// 提交人员数据信息 + /// + public List dataConllectionSubFileDetailResults { get; set; } + } + + public class DataConllectionSubFileDetailResult + { + public long DataConllectionId { get; set; } + /// + /// 提交人 + /// + public string UserName { get; set; } + /// + /// 已提交文件id(空则未提交) + /// + public long? SubFileId { get; set; } + /// + /// 备 注:提交文件路径 + /// + public string? SubFilePath { get; set; } + /// + /// 备 注:提交文件名称 + /// + public string? SubFileName { get; set; } + /// + /// 备 注:提交文件大小 + /// + public long? SubFileSize { get; set; } + /// + /// 备 注:提交时间 + /// + public DateTime? SubAddtime { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionListResult.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionListResult.cs new file mode 100644 index 0000000..2605991 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionListResult.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + public class DataConllectionListResult + { + public long Id { get; set; } + /// + /// 备 注:收集主题 + /// 默认值: + /// + public string Title { get; set; } = null!; + + + /// + /// 备 注:需要提交时间 + /// 默认值: + /// + public DateTime Endtime { get; set; } + + /// + /// 已提交文件id(空则未提交) + /// + public long? FileId { get; set; } + /// + /// 备 注:状态:1:已创建(未发布);2:进行中(已发布);3:已完成;4:已关闭 + /// 默认值: + /// + public int Status { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionUpFileRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionUpFileRequest.cs new file mode 100644 index 0000000..200fd2d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DataConllectionUpFileRequest.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + /// + /// 数据采集上传文件 + /// + public class DataConllectionUpFileRequest + { + /// + /// 资料收集id + /// + public long DataCollectionId { get; set; } + /// + /// 文件id + /// + public long FileId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DesktopDataConllectionUpFileRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DesktopDataConllectionUpFileRequest.cs new file mode 100644 index 0000000..d004fa3 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/DesktopDataConllectionUpFileRequest.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + /// + /// 电脑端上传采集文件 + /// + public class DesktopDataConllectionUpFileRequest + { + /// + /// 加密数据 + /// + public string sign { get; set; } + + /// + /// 文件id + /// + public long FileId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionDetailResult.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionDetailResult.cs new file mode 100644 index 0000000..918018f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionDetailResult.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + /// + /// 管理数据采集详情结果 + /// + public class ManagerDataCollectionDetailResult + { + /// + /// id + /// + public long Id { get; set; } + + /// + /// 备 注:收集主题 + /// 默认值: + /// + public string Title { get; set; } = null!; + + /// + /// 备 注:收集要求 + /// 默认值: + /// + public string Remark { get; set; } = null!; + + /// + /// 备 注:模板文件id + /// 默认值: + /// + public long? FileId { get; set; } + + /// + /// 备 注:模板文件路径 + /// + public string? FilePath { get; set; } + + /// + /// 备 注:模板文件名称 + /// + public string? FileName { get; set; } + + /// + /// 备 注:模板文件大小 + /// + public long? FileSize { get; set; } + + /// + /// 备 注:提交时间 + /// 默认值: + /// + public DateTime Endtime { get; set; } + + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime Addtime { get; set; } + + + /// + /// 备 注:收集对象个数 + /// 默认值: + /// + public int? FileCount { get; set; } + + /// + /// 备 注:已提交个数 + /// + public int SubmitCount { get; set; } + + /// + /// 备 注:状态:1:已创建(未发布);2:进行中(已发布);3:已完成;4:已关闭 + /// 默认值: + /// + public int? Status { get; set; } + + /// + /// 收集文件用户列表 + /// + public List managerDataCollectionUserFiles { get; set; } + + /// + /// 未提交用户列表 + /// + public List managerDataCollectionNonUsers { get; set; } + } + public class ManagerDataCollectionNonUser + { + /// + /// 用户id + /// + public long UserId { get; set; } + /// + /// 用户名称 + /// + public string UserName { get; set; } = null!; + } + public class ManagerDataCollectionUserFile + { + /// + /// 用户头像 + /// + public string UserHeadImage { get; set; } + /// + /// 用户id + /// + public long UserId { get; set; } + /// + /// 用户名称 + /// + public string UserName { get; set; } = null!; + /// + /// 提交的文件id + /// + public long? FileId { get; set; } + /// + /// 提交的文件路径 + /// + public string? FilePath { get; set; } + /// + /// 提交的文件名称 + /// + public string? FileName { get; set; } + /// + /// 提交的文件大小 + /// + public long? FileSize { get; set; } + /// + /// 提交时间 + /// + public DateTime? AddFileTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionModelRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionModelRequest.cs new file mode 100644 index 0000000..bd754e0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionModelRequest.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + /// + /// 资料收集模板上传 + /// + public class ManagerDataCollectionModelRequest + { + /// + /// 资料收集主题ID + /// + public long DataCollectionId { get; set; } + /// + /// 模板文件ID + /// + public long FileId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionRequest.cs new file mode 100644 index 0000000..349c9ea --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionRequest.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + /// + /// 资料收集 + /// + public class ManagerDataCollectionRequest + { + /// + /// 备 注:收集主题 + /// 默认值: + /// + public string Title { get; set; } = null!; + + + /// + /// 备 注:收集要求 + /// 默认值: + /// + public string Remark { get; set; } = null!; + + + /// + /// 备 注:模板文件id(直接手机传则传id,电脑传则为null) + /// 默认值: + /// + public long? FileId { get; set; } + + + /// + /// 备 注:提交时间 + /// 默认值: + /// + public DateTime Endtime { get; set; } + /// + /// 备 注:收集对象,用户集合 + /// + public List Users { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionResult.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionResult.cs new file mode 100644 index 0000000..6034e52 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerDataCollectionResult.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + /// + /// 管理数据采集结果 + /// + public class ManagerDataCollectionResult + { + + /// + /// id + /// + public long Id { get; set; } + + /// + /// 备 注:收集主题 + /// 默认值: + /// + public string Title { get; set; } = null!; + + + /// + /// 备 注:提交时间 + /// 默认值: + /// + public DateTime Endtime { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime Addtime { get; set; } + + + /// + /// 备 注:收集对象个数 + /// 默认值: + /// + public int? FileCount { get; set; } + + /// + /// 备 注:已提交个数 + /// + public int SubmitCount { get; set; } = 0; + + + /// + /// 备 注:状态:1:已创建(未发布);2:进行中(已发布);3:已完成;4:已关闭 + /// 默认值: + /// + public int Status { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerUserInfoDetailResult.cs b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerUserInfoDetailResult.cs new file mode 100644 index 0000000..bb77901 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/ManagerData/ManagerUserInfoDetailResult.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.Classes; +using LearningOfficer.OA.Common.Dtos.School; +using LearningOfficer.OA.Common.Dtos.User; +using LearningOfficer.OA.Common.Enums; + +namespace LearningOfficer.OA.Common.Dtos.OA.ManagerData +{ + public class ManagerUserInfoDetailResult + { + /// + /// 用户基础信息情况 + /// + public UserDetailInfo userDetailInfo { get; set; } + /// + /// 管理学校 + /// + public List? schoolResults { get; set; } + /// + /// 管理学习官 + /// + public List? manageUserResults { get; set; } + /// + /// 管理班级 + /// + public List? classesResults { get; set; } + /// + /// 用户绩效信息(近半年) + /// + public List? performances { get; set; } + + } + /// + /// 用户绩效信息 + /// + public class Performance + { + /// + /// 月份 + /// + public string monthDate { get; set; } + /// + /// 完成率 + /// + public int completionRate { get; set; } + } + public class UserDetailInfo + { + + /// + /// 用户ID + /// + public long userId { get; set; } + /// + /// 用户姓名 + /// + public string userName { get; set; } + /// + /// 用户角色 + /// + public SysRoleEnum roleEnum { get; set; } + /// + /// 云校id + /// + public long cloudSchoolId { get; set; } + /// + /// 云校名称 + /// + public string cloudSchoolName { get; set; } + /// + /// 管理学校 + /// + public List schoolResults { get; set; } + /// + /// 头像URL + /// + public string HeadImage { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/AddDaySummarizeRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/AddDaySummarizeRequest.cs new file mode 100644 index 0000000..9140e9c --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/AddDaySummarizeRequest.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class SummarizeDayRequest + { + /// + /// 备 注:工作总结日期 + /// 默认值: + /// + public DateTime WorkDate { get; set; } + + + /// + /// 备 注:问题反馈 + /// 默认值: + /// + public string QuestContent { get; set; } = null!; + + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + public string NextTimeContent { get; set; } + + /// + /// 备 注:明日计划-文件id集合,多个英文逗号隔开 + /// + public string? FileId { get; set; } + + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/AssistUserResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/AssistUserResult.cs new file mode 100644 index 0000000..9bc87b0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/AssistUserResult.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + /// + /// 人员基本信息 + /// + public class AssistUserResult + { + /// + /// Id + /// + public long Id { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskAddResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskAddResult.cs new file mode 100644 index 0000000..b0df127 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskAddResult.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class BaseTaskAddResult + { + /// + /// 新增后返回的任务id + /// + public long id { get; set; } + /// + /// 任务子表的id(例:新增学习习惯全面抽查,此id则为抽查工作记录id,也就是SpotId) + /// 也可能是0,为0时,说明没有子表数据,以任务id为主 + /// + public long SunClassTaskId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskClassRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskClassRequest.cs new file mode 100644 index 0000000..785098d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskClassRequest.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class BaseTaskClassRequest + { + /// + /// 任务id(新增时为null,修改时必传) + /// + public long? Id { get; set; } + /// + /// 班级id(班级任务时,classes_id不为空;通用任务时,班级id为空 null) + /// + public List? ClassesId { get; set; } + /// + /// 任务类型id + /// + public int TaskTypeEnum { get; set; } + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + /// + /// 任务后缀 + /// + public string? TaskTitleSuffix { get; set; } = ""; + + /// + /// 备 注:是否是布置任务。0否(默认);1是; + /// 默认值: + /// + public int IsSuperiorTask { get; set; } = 0; + /// + /// 备 注:布置任务id,如果是布置任务才需要传 + /// 默认值: + /// + public long? Superior_Id { get; set; } + /// + /// 学校ID + /// + public long SchoolId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskClassResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskClassResult.cs new file mode 100644 index 0000000..e4b41fa --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/BaseTaskClassResult.cs @@ -0,0 +1,104 @@ +using LearningOfficer.OA.Common.Dtos.Classes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class BaseTaskClassResult + { + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 任务状态 0:未开始 1:进行中 2:已结束 3:问题待处理(仅用于双师跟课) 4:已逾期 + /// + public int Status { get; set; } + + /// + /// 班级基本信息 + /// + public List? classesInfoResults { get; set; } + + /// + /// 备 注:参数表 枚举值,任务类型 + /// 默认值: + /// + public int TaskTypeEnum { get; set; } + /// + /// 备 注:任务类型名称(用于展示) + /// + public string TaskTypeName { get; set; } = null!; + + /// + /// 备 注:任务标题后缀,用于展示(有值时,将任务类型名称 和该字段用 “-”连接) + /// 默认值: + /// + public string TaskTitleSuffix { get; set; } = null!; + + /// + /// 备 注:开始日期 + /// 默认值: + /// + public DateTime? StartDate { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束日期 + /// 默认值: + /// + public DateTime? EndDate { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + + + /// + /// 备 注:是否长期性工作(0否,1是) + /// 默认值: + /// + public ulong IsLongwork { get; set; } + + + /// + /// 备 注:任务完成日期 + /// 默认值: + /// + public DateTime? Finish_date { get; set; } + /// + /// 备 注:任务完成时间 + /// 默认值: + /// + public DateTime? Finish_datetime { get; set; } + + + /// + /// 备 注:执行人id(通用任务才有) + /// 默认值: + /// + public long? Task_user_id { get; set; } + /// + /// 备 注:任务指标类型-1班级;2通用; 班级时,classes_id不为空;通用时,执行人id不为空 + /// 默认值: + /// + public int Task_index_type { get; set; } + /// + /// 学校id + /// + public long? SchoolId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingFinishRequest.cs new file mode 100644 index 0000000..ed600bc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingFinishRequest.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class ClassCadreMeetingFinishRequest + { + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 班干部会议ID + /// + public long ClassCadreId { get; set; } + /// + /// 会议纪要 + /// + public string Remark { get; set; } + /// + /// 文件 + /// + public List? files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingRequest.cs new file mode 100644 index 0000000..ffbfa6e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + /// + /// 开展班干部会议请求参数 + /// + public class ClassCadreMeetingRequest : BaseTaskClassRequest + { + /// + /// id(新增时为null,修改时必传) + /// + public long? ClassCadreId { get; set; } + /// + /// 会议主题 + /// + public string MeetingTitle { get; set; } = null!; + /// + /// 参会人员id + /// + public List UserIds { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingResult.cs new file mode 100644 index 0000000..77cea34 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassCadreMeetingResult.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class ClassCadreMeetingResult + { + /// + /// 班干部会议记录ID + /// + public long ClassCadreId { get; set; } + /// + /// 会议标题 + /// + public string MeetingTitle { get; set; } + /// + /// 会议纪要 + /// + public string Remark { get; set; } + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 关联用户 + /// + public List sunTaskUserResults { get; set; } + /// + /// 关联文件 + /// + public List SunTaskFileResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingFinishRequest.cs new file mode 100644 index 0000000..3f7c738 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingFinishRequest.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class ClassMeetingFinishRequest + { + + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 班级会议ID + /// + public long ClassMeetingId { get; set; } + /// + /// 会议纪要 + /// + public string Remark { get; set; } + /// + /// 文件 + /// + public List? files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingRequest.cs new file mode 100644 index 0000000..70972dc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingRequest.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class ClassMeetingRequest : BaseTaskClassRequest + { + /// + /// id(新增时为null,修改时必传) + /// + public long? ClassMeetingId { get; set; } + /// + /// 会议主题 + /// + public string MeetingTitle { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingResult.cs new file mode 100644 index 0000000..e88060f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassMeetingResult.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class ClassMeetingResult + { + + /// + /// 班级会议记录ID + /// + public long ClassMeetingId { get; set; } + /// + /// 会议标题 + /// + public string MeetingTitle { get; set; } + /// + /// 会议纪要 + /// + public string MeetingContent { get; set; } + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 关联文件 + /// + public List SunTaskFileResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityFinishRequest.cs new file mode 100644 index 0000000..e31d9c5 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityFinishRequest.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class ClassesActivityFinishRequest + { + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 班级活动ID + /// + public long ActivityId { get; set; } + /// + /// 活动记录 + /// + public string Remark { get; set; } + /// + /// 文件 + /// + public List? files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityRequest.cs new file mode 100644 index 0000000..62b680b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityRequest.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class ClassesActivityRequest : BaseTaskClassRequest + { + /// + /// 活动id(新增时为null,修改时必传) + /// + public long? ActivityId { get; set; } + + + /// + /// 备 注:活动主题 + /// 默认值: + /// + public string ActivityTitle { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityResult.cs new file mode 100644 index 0000000..c2fd22d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/ClassesActivityResult.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class ClassesActivityResult + { + /// + /// 活动id + /// + public long ActivityId { get; set; } + + /// + /// 备 注:活动主题 + /// 默认值: + /// + public string ActivityTitle { get; set; } + + + /// + /// 备 注:活动记录 + /// 默认值: + /// + public string? Remark { get; set; } + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 关联文件 + /// + public List SunTaskFileResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Classes_Task_ListDetailResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Classes_Task_ListDetailResult.cs new file mode 100644 index 0000000..0e73758 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Classes_Task_ListDetailResult.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class Classes_Task_ListDetailResult + { + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoFinishRequest.cs new file mode 100644 index 0000000..e26213e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoFinishRequest.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class CoachSubInfoFinishRequest + { + /// + /// 新增为null,编辑时传Id + /// + public long Id { get; set; } + + /// + /// 备 注:学科辅助任务Id + /// 默认值: + /// + public long CoachId { get; set; } + /// + /// 备 注:辅导内容 + /// 默认值: + /// + public string CoachContent { get; set; } + + public List? files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoRequest.cs new file mode 100644 index 0000000..38ffd95 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoRequest.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class CoachSubInfoRequest : BaseTaskClassRequest + { + /// + /// 辅导表id(新增时为null,修改时必传) + /// + public long? CoachId { get; set; } + /// + /// 科目id + /// + public long CoachSubId { get; set; } + /// + /// 科目名称 + /// + public string CoachSubName { get; set; } + /// + /// 参会人员 + /// + public List UserId { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoResult.cs new file mode 100644 index 0000000..50153ec --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CoachSubInfoResult.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class CoachSubInfoResult + { + /// + /// 学科辅助ID + /// + public long CoachId { get; set; } + /// + /// 学科辅助科目id + /// + public long CoachSubId { get; set; } + /// + /// 学科辅助科目名称 + /// + public string CoachSubName { get; set; } + /// + /// 学科辅助内容 + /// + public string CoachContent { get; set; } + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 关联用户 + /// + public List sunTaskUserResults { get; set; } + /// + /// 关联文件 + /// + public List SunTaskFileResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalDetailResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalDetailResult.cs new file mode 100644 index 0000000..7540fc5 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalDetailResult.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class CulturalDetailResult + { + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + + /// + /// 文创id + /// + public long CulturalId { get; set; } + /// + /// 文创标题 + /// + public string CulturalTitle { get; set; } + + /// + /// 备 注:更新说明 + /// 默认值: + /// + public string? Remark { get; set; } + /// + /// 文创文件信息 + /// + public List sunTaskFileResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalFinishRequest.cs new file mode 100644 index 0000000..431857d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalFinishRequest.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class CulturalFinishRequest + { + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 文创ID + /// + public long CulturalId { get; set; } + /// + /// 工作内容 + /// + public string Remark { get; set; } + /// + /// 文创文件 + /// + public List files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalRequest.cs new file mode 100644 index 0000000..1fbbfea --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/CulturalRequest.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class CulturalRequest : BaseTaskClassRequest + { + /// + /// 文创id 新增不传,修改必传 + /// + public long? CulturalId { get; set; } + /// + /// 文创标题 + /// + public string CulturalTitle { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectFileRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectFileRequest.cs new file mode 100644 index 0000000..f7080ec --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectFileRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class DataCollectFileRequest + { + + /// + /// 关联表id(非任务主表id) + /// + public long ClassesTaskId { get; set; } + /// + /// 文件id + /// + public long FileId { get; set; } + /// + /// 用户ID + /// + public long UserId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectFinishRequest.cs new file mode 100644 index 0000000..61103d7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectFinishRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class DataCollectFinishRequest + { + + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 采集ID + /// + public long CollectId { get; set; } + /// + /// 分析总结 + /// + public string Remark { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectRequest.cs new file mode 100644 index 0000000..0d3ca17 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectRequest.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class DataCollectRequest : BaseTaskClassRequest + { + /// + /// 数据采集任务ID(新增时为null,修改时必传) + /// + public long? DataCollectId { get; set; } + /// + /// 数据采集标题 + /// + public string CollectTitle { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectResult.cs new file mode 100644 index 0000000..9a5c88c --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectResult.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class DataCollectResult + { + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 采集ID + /// + public long CollectId { get; set; } + /// + /// 采集主题 + /// + public string CollectTitle { get; set; } + /// + /// 分析总结 + /// + public string Remark { get; set; } + /// + /// 已采集用户列表 + /// + public List CollectUsers { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectUserResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectUserResult.cs new file mode 100644 index 0000000..417cb68 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/DataCollectUserResult.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class DataCollectUserResult + { + /// + /// 用户ID + /// + public long UserId { get; set; } + /// + /// 用户名 + /// + public string UserName { get; set; } + /// + /// 采集文件数量 + /// + public int FileCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowAbsenceUserRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowAbsenceUserRequest.cs new file mode 100644 index 0000000..44dced5 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowAbsenceUserRequest.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowAbsenceUserRequest + { + /// + /// 双师课堂记录表id + /// + public long FollowId { get; set; } + /// + /// 用户id + /// + public long UserId { get; set; } + /// + /// 处理状态 默认0 0未处理 1忽略 2发起谈话 + /// + public long HandleState { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowAbsenceUserResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowAbsenceUserResult.cs new file mode 100644 index 0000000..d421220 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowAbsenceUserResult.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowAbsenceUserResult + { + public long Id { get; set; } + /// + /// 跟课id + /// + public long FollowId { get; set; } + /// + /// 用户id + /// + public long UserId { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoFinishRequest.cs new file mode 100644 index 0000000..8c6154f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoFinishRequest.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowInfoFinishRequest + { + + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 备 注:跟课id + /// + public long FollowId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoRequest.cs new file mode 100644 index 0000000..a43dd60 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoRequest.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowInfoRequest : BaseTaskClassRequest + { + /// + /// 备 注:课程id + /// 默认值: + /// + public long ClassCourseId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoResult.cs new file mode 100644 index 0000000..9b43fdb --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowInfoResult.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowInfoResult + { + + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 落地老师问题 + /// + public List FollowTeachersituations { get; set; } + /// + /// 跟课缺席用户列表 + /// + public List followAbsenceUserResults { get; set; } + /// + /// 重点学生列表 + /// + public List followKeynoteUserResults { get; set; } + /// + /// 跟课ID + /// + public long FollowId { get; set; } + + /// + /// 备 注:课程id + /// 默认值: + /// + public long ClassCourseId { get; set; } + + + /// + /// 备 注:跟课方式1:直播;2:录播; + /// 默认值: + /// + public int? ClassesFollowMethod { get; set; } + + + /// + /// 备 注:信号是否稳定;0否;1:是; + /// 默认值: + /// + public int? ClassesSignalStability { get; set; } + /// + /// 备 注:整体活跃度,参数id + /// 默认值: + /// + public int? ConcentrationActivityEnum { get; set; } + /// + /// 备 注:整体专注度,参数id + /// 默认值: + /// + public int? ConcentrationLevelEnum { get; set; } + /// + /// 备 注:整体问题回答正确率/知识掌握程度,参数id + /// 默认值: + /// + public int? MasteryLevelEnum { get; set; } + /// + /// 其他 + /// + public string Remark { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowKeyNoteUserRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowKeyNoteUserRequest.cs new file mode 100644 index 0000000..419c383 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowKeyNoteUserRequest.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowKeyNoteUserRequest + { + + /// + /// 备 注:跟课id + /// 默认值: + /// + public long FollowId { get; set; } + + + /// + /// 备 注:重点学生用户id + /// 默认值: + /// + public long UserId { get; set; } + + + /// + /// 备 注:注意力与专注力,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string AttentionFocus { get; set; } + + + /// + /// 备 注:参与度与积极性,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string ParticipationEnthusiasm { get; set; } + /// + /// 备 注:行为规范与纪律,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string BehaviorNormsDiscipline { get; set; } + + + /// + /// 备 注:学习效果与理解困难,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string ComprehensionDifficulties { get; set; } + + + /// + /// 备 注:情绪与心理状态,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string PsychologicalState { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowKeynoteUserResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowKeynoteUserResult.cs new file mode 100644 index 0000000..fa865fa --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowKeynoteUserResult.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowKeynoteUserResult + { + /// + /// 重点学生id + /// + public long Id { get; set; } + /// + /// 跟课id + /// + public long FollowId { get; set; } + /// + /// 重点学生id + /// + public long UserId { get; set; } + /// + /// 重点学生姓名 + /// + public string UserName { get; set; } + + /// + /// 备 注:注意力与专注力,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string AttentionFocus { get; set; } = null!; + + + /// + /// 备 注:参与度与积极性,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string ParticipationEnthusiasm { get; set; } = null!; + + /// + /// 备 注:行为规范与纪律,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string BehaviorNormsDiscipline { get; set; } = null!; + + + /// + /// 备 注:学习效果与理解困难,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string ComprehensionDifficulties { get; set; } = null!; + + + /// + /// 备 注:情绪与心理状态,参数id,多个用英文逗号分割 + /// 默认值: + /// + public string PsychologicalState { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowTeachersituationRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowTeachersituationRequest.cs new file mode 100644 index 0000000..8f7437f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowTeachersituationRequest.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowQuestionRequest + { + /// + /// 备 注:跟课id + /// + public long FollowId { get; set; } + /// + /// 落地老师的问题列表 + /// + public List? FollowTeachersituations { get; set; } + + /// + /// 备 注:跟课方式1:直播;2:录播; 3:自讲; + /// 默认值: + /// + public int? ClassesFollowMethod { get; set; } + + + /// + /// 备 注:信号是否稳定;0否;1:是; + /// 默认值: + /// + public int? ClassesSignalStability { get; set; } + /// + /// 备 注:整体活跃度,参数id + /// 默认值: + /// + public int? ConcentrationActivityEnum { get; set; } + /// + /// 备 注:整体专注度,参数id + /// 默认值: + /// + public int? ConcentrationLevelEnum { get; set; } + /// + /// 备 注:整体问题回答正确率/知识掌握程度,参数id + /// 默认值: + /// + public int? MasteryLevelEnum { get; set; } + /// + /// 其他 + /// + public string? Remark { get; set; } + + + } + public class FollowTeachersituationRequest + { + + /// + /// 备 注:跟课id + /// 默认值: + /// + public long FollowId { get; set; } + + /// + /// 备 注:落地老师-问题类型,字典表 + /// 默认值: + /// + public long ParamId { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowTeachersituationResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowTeachersituationResult.cs new file mode 100644 index 0000000..3a13c31 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowTeachersituationResult.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowTeachersituationResult + { + public long Id { get; set; } + /// + /// 跟课id + /// + public long FollowId { get; set; } + /// + /// 落地老师-问题类型,字典表 + /// + public long ParamId { get; set; } + /// + /// 问题描述 + /// + public string ParamName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpAbsenceUserRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpAbsenceUserRequest.cs new file mode 100644 index 0000000..a6b13e7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpAbsenceUserRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + /// + /// 处理缺勤学生的问题 + /// + public class FollowUpAbsenceUserRequest + { + /// + /// 备 注:跟课id + /// + public long FollowId { get; set; } + /// + /// 备 注:学生id + /// + public long StudentUserId { get; set; } + /// + /// 备 注:处理状态 默认0未处理 1忽略 2发起谈话 + /// + public int HandleState { get; set; } = 0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpKeyNoteStudentRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpKeyNoteStudentRequest.cs new file mode 100644 index 0000000..b2175c4 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpKeyNoteStudentRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + /// + /// 处理重点学生的问题 + /// + public class FollowUpKeyNoteStudentRequest + { + /// + /// 备 注:跟课id + /// + public long FollowId { get; set; } + /// + /// 备 注:学生id + /// + public long StudentUserId { get; set; } + /// + /// 备 注:处理状态 默认0未处理 1忽略 2发起谈话 + /// + public int HandleState { get; set; } = 0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpTeachersituationRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpTeachersituationRequest.cs new file mode 100644 index 0000000..e575b01 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/FollowUpTeachersituationRequest.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class FollowUpTeachersituationRequest + { + /// + /// 备 注:处理落地老师的问题Id + /// + public long Id { get; set; } + /// + /// 备 注:跟课id + /// + public long FollowId { get; set; } + + /// + /// 备 注:落地老师-问题类型,字典表 + /// 默认值: + /// + public long ParamId { get; set; } + /// + /// 备 注:处理状态 默认0未处理 1忽略 2发起谈话 + /// 默认值: + /// + public int HandleState { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoFinishRequest.cs new file mode 100644 index 0000000..7c2ac5a --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoFinishRequest.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class MeetingInfoFinishRequest + { + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 会议ID + /// + public long MeetingId { get; set; } + /// + /// 会议纪要 + /// + public string Remark { get; set; } + public List? files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoRequest.cs new file mode 100644 index 0000000..fcd50b1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class MeetingInfoRequest : BaseTaskClassRequest + { + /// + /// 会议任务id(新增时为null,修改时必传) + /// + public long? MeetingId { get; set; } + /// + /// 会议主题 + /// + public string MeetingTitle { get; set; } + /// + /// 参会人员 + /// + public string MeetingUsername { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoResult.cs new file mode 100644 index 0000000..f57f570 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/MeetingInfoResult.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class MeetingInfoResult + { + /// + /// 会议ID + /// + public long MeetingId { get; set; } + /// + /// 会议主题 + /// + public string MeetingTitle { get; set; } + /// + /// 会议纪要 + /// + public string Remark { get; set; } + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 参会人员 + /// + public string MeetingUsername { get; set; } = null!; + /// + /// 关联文件 + /// + public List SunTaskFileResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoFinishRequest.cs new file mode 100644 index 0000000..0897812 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoFinishRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class OtherInfoFinishRequest + { + + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 其他ID + /// + public long OtherId { get; set; } + /// + /// 工作内容 + /// + public string Remark { get; set; } + public List? files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoRequest.cs new file mode 100644 index 0000000..8b58bf4 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoRequest.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class OtherInfoRequest : BaseTaskClassRequest + { + + /// + /// id(新增时为null,修改时必传) + /// + public long? OtherId { get; set; } + /// + /// 任务描述 + /// + public string OtherTitle { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoResult.cs new file mode 100644 index 0000000..ecf277a --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/OtherInfoResult.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class OtherInfoResult + { + + /// + /// 班干部会议记录ID + /// + public long OtherId { get; set; } + /// + /// 工作描述 + /// + public string OtherTitle { get; set; } + /// + /// 工作内容 + /// + public string Remark { get; set; } + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 关联文件 + /// + public List SunTaskFileResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskFinishRequest.cs new file mode 100644 index 0000000..bc11ecf --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskFinishRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + /// + /// 学习行为习惯全面抽查任务完成请求类 + /// + public class SpotTaskFinishRequest + { + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 抽查记录表id + /// + public long SpotId { get; set; } + /// + /// 反馈/反思 + /// + public string Remark { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskRequest.cs new file mode 100644 index 0000000..5616ae9 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskRequest.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + /// + /// 学习行为习惯全面抽查任务请求类 + /// + public class SpotTaskRequest : BaseTaskClassRequest + { + /// + /// 抽查任务id(新增时为null,修改时必传) + /// + public long? SpotId { get; set; } + /// + /// 备 注:抽查项目id + /// 默认值: + /// + public long CheckProjectid { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskResult.cs new file mode 100644 index 0000000..2a53d08 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskResult.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + /// + /// 学习行为习惯全面抽查任务结果类 + /// + public class SpotTaskResult + { + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 抽查任务id + /// + public long SpotId { get; set; } + /// + /// 任务id + /// + public long ClassesTaskId { get; set; } + /// + /// 抽查项目id + /// + public long CheckProjectid { get; set; } + /// + /// 抽查项目名称 + /// + public string CheckProjectName { get; set; } + /// + /// 反馈/反思 + /// + public string? Remark { get; set; } + /// + /// 抽查人员列表 + /// + public List spotTaskUserResults { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskUserRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskUserRequest.cs new file mode 100644 index 0000000..839280f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskUserRequest.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + /// + /// 学习行为习惯全面抽查任务-抽查人员请求类 + /// + public class SpotTaskUserRequest + { + /// + /// 抽查记录表id + /// + public long SpotId { get; set; } + /// + /// 抽查人员id + /// + public long UserId { get; set; } + /// + /// 分值 + /// + public int ValueTotal { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskUserResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskUserResult.cs new file mode 100644 index 0000000..839e470 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SpotTaskUserResult.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class SpotTaskUserResult + { + /// + /// id + /// + public long Id { get; set; } + /// + /// 抽查记录表id + /// + public long SpotId { get; set; } + /// + /// 抽查人员id + /// + public long UserId { get; set; } + /// + /// 得分 + /// + public decimal ValueTotal { get; set; } + /// + /// 抽查人员名称 + /// + public string UserName { get; set; } = null!; + /// + /// 添加时间 + /// + public DateTime AddTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/CreatSummarizPlanRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/CreatSummarizPlanRequest.cs new file mode 100644 index 0000000..f211b17 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/CreatSummarizPlanRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class CreatSummarizPlanRequest + { + /// + /// 总结id + /// + public long SumId { get; set; } + /// + /// 报告类型 1:日报;2:周报;3:月报; + /// + public int SumTypeEnum { get; set; } = 1; + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + public string NextTimeContent { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/EvaluationSumRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/EvaluationSumRequest.cs new file mode 100644 index 0000000..3c7db2e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/EvaluationSumRequest.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class EvaluationSumRequest + { + /// + /// 总结报告id + /// + public long Id { get; set; } + /// + /// 评论内容 + /// + public string Content { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/ReadSummarizRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/ReadSummarizRequest.cs new file mode 100644 index 0000000..743593f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/ReadSummarizRequest.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class ReadSummarizRequest + { + /// + /// 总结id + /// + public long SumId { get; set; } + /// + /// 总结类型 1日报 2周报 3月报 + /// + public int SumType { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizDayResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizDayResult.cs new file mode 100644 index 0000000..4db36c0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizDayResult.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizDayResult + { + /// + /// 任务列表 + /// + public List TaskList { get; set; } + /// + /// 日报信息 + /// + public SummarizDayTaskResult summarizDay { get; set; } + } + public class SummarizDayTaskResult + { + public long Id { get; set; } + /// + /// 用户角色枚举 + /// + public int UserEnum { get; set; } + /// + /// 用户Id + /// + public long UserId { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + /// + /// 工作总结日期 + /// + public DateTime WorkDate { get; set; } + /// + /// 问题反馈 + /// + public string QuestContent { get; set; } = null!; + /// + /// 创建时间 + /// + public DateTime AddTime { get; set; } + /// + /// 组长评价 + /// + public string SuperiorEvaluation { get; set; } + /// + /// 组长用户Id + /// + public long? SuperiorUserId { get; set; } + /// + /// 组长用户名 + /// + public string SuperiorUserName { get; set; } + /// + /// 部长评价 + /// + public string MinisterEvaluation { get; set; } + /// + /// 部长用户Id + /// + public long? MinisterUserId { get; set; } + /// + /// 部长用户名 + /// + public string MinisterUserName { get; set; } + /// + /// 总部长评价 + /// + public string GeneralEvaluation { get; set; } + /// + /// 总部长用户Id + /// + public long? GeneralUserId { get; set; } + /// + /// 总部长用户名 + /// + public string GeneralUserName { get; set; } + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + public string NextTimeContent { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeDayListResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeDayListResult.cs new file mode 100644 index 0000000..bea8ca1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeDayListResult.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Enums; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeDayListResult + { + /// + /// 日报Id + /// + public long Id { get; set; } + /// + /// 备 注:工作总结日期 + /// 默认值: + /// + public DateTime WorkDate { get; set; } + /// + /// 备 注:问题反馈 + /// 默认值: + /// + public string QuestContent { get; set; } + /// + /// 用户id + /// + public long UserId { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + /// + /// 用户头像地址 + /// + public string UserHeadImage { get; set; } + /// + /// 备 注:用户角色枚举(如果是组长,只有部长评价,如果是学习官,有部长和组长评价) + /// 默认值: + /// + public int UserEnum { get; set; } + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + /// + /// 备 注:组长评价 + /// 默认值: + /// + public string? SuperiorEvaluation { get; set; } + /// + /// 备 注:组长评价人id + /// 默认值: + /// + public long? SuperiorUserId { get; set; } + /// + /// 备 注:组长评价人 + /// 默认值: + /// + public string? SuperiorUserName { get; set; } + /// + /// 备 注:部长评价 + /// 默认值: + /// + public string? MinisterEvaluation { get; set; } + /// + /// 备 注:部长评价人id + /// 默认值: + /// + public long? MinisterUserId { get; set; } + /// + /// 备 注:部长评价人 + /// 默认值: + /// + public string? MinisterUserName { get; set; } + + /// + /// 总部长评价 + /// + public string GeneralEvaluation { get; set; } + /// + /// 总部长用户Id + /// + public long? GeneralUserId { get; set; } + /// + /// 总部长用户名 + /// + public string GeneralUserName { get; set; } + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + public string NextTimeContent { get; set; } = null!; + /// + /// 已读id(如果null则未读) + /// + public long? ReadId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthListResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthListResult.cs new file mode 100644 index 0000000..9caa9c6 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthListResult.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeMonthListResult + { + + /// + /// 任务列表信息 + /// + public SummarizeMonthStandardResult TaskInfo { get; set; } + /// + /// 月报结果 + /// + public SummarizeMonthTaskResult summarizMonthTaskResult { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthRequest.cs new file mode 100644 index 0000000..242b569 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthRequest.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeMonthRequest + { + + + + /// + /// 备 注:工作年份 + /// 默认值: + /// + public int? WorkYear { get; set; } + + + /// + /// 备 注:工作月份 + /// 默认值: + /// + public int WorkMonth { get; set; } + + + /// + /// 备 注:问题反馈 + /// 默认值: + /// + public string QuestContent { get; set; } = null!; + + + /// + /// 备 注:本月总结 + /// 默认值: + /// + public string MonthContent { get; set; } = null!; + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + public string NextTimeContent { get; set; } = null!; + + /// + /// 备 注:明日计划-文件id集合,多个英文逗号隔开 + /// + public string? FileId { get; set; } + + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthStandardResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthStandardResult.cs new file mode 100644 index 0000000..71fa20b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthStandardResult.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeMonthStandardResult + { + /// + /// 通用任务列表 + /// + public List generalTasks { get; set; } + /// + /// 其他工作完成情况 + /// + public List taskFinishLists { get; set; } + /// + /// 布置任务完成情况 + /// + public List taskSuperiorTaskLists { get; set; } + + } + public class SummarizMonthCheckList + { + + /// + /// 任务类型枚举 + /// + public long TaskTypeEnum { get; set; } = 0; + /// + /// 任务类型枚举-名称 + /// + public string TaskTypeName { get; set; } + /// + /// 已完成任务数量 + /// + public int OkTaskCount { get; set; } = 0; + /// + /// 应完成任务数量(为0时,代表是指标之外的) + /// + public long ShouldTaskCount { get; set; } = 0; + } + public class ClassTaskFinishList + { + /// + /// 学校名称 + /// + public string SchoolName { get; set; } = null!; + /// + /// 班级ID + /// + public long ClassesId { get; set; } = 0; + /// + /// 班级名称 + /// + public string ClassesName { get; set; } = null!; + /// + /// 年级 + /// + + public string GradeLevel { get; set; } = null!; + /// + /// 所属届 + /// + + public int GraduationYear { get; set; } + /// + /// 任务完成列表 + /// + public List TaskFinishLists { get; set; } + + } + public class TaskFinishList + { + /// + /// 任务类型枚举 + /// + public long TaskTypeEnum { get; set; } = 0; + /// + /// 任务类型枚举-名称 + /// + public string TaskTypeName { get; set; } + /// + /// 任务数量 + /// + public int TaskCount { get; set; } = 0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthTaskResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthTaskResult.cs new file mode 100644 index 0000000..0bdf4c5 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeMonthTaskResult.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeMonthTaskResult + { + + public long Id { get; set; } + + /// + /// 备 注:用户id + /// 默认值: + /// + public long UserId { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + /// + /// 用户头像地址 + /// + public string UserHeadImage { get; set; } + + + /// + /// 备 注:用户角色枚举(如果是组长,只有部长评价,如果是学习官,有部长和组长评价) + /// 默认值: + /// + public int UserEnum { get; set; } + + + /// + /// 备 注:工作年份 + /// 默认值: + /// + public int? WorkYear { get; set; } + + + /// + /// 备 注:工作月份 + /// 默认值: + /// + public int WorkMonth { get; set; } + + + /// + /// 备 注:问题反馈 + /// 默认值: + /// + public string QuestContent { get; set; } = null!; + + + /// + /// 备 注:本月总结 + /// 默认值: + /// + public string MonthContent { get; set; } = null!; + + + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + + + /// + /// 备 注:组长评价 + /// 默认值: + /// + public string? SuperiorEvaluation { get; set; } + + + /// + /// 备 注:组长评价人id + /// 默认值: + /// + public long? SuperiorUserId { get; set; } + + + /// + /// 备 注:组长评价时间 + /// 默认值: + /// + public DateTime? SuperiorAddtime { get; set; } + + /// + /// 组长用户名 + /// + public string? SuperiorUserName { get; set; } + + + + /// + /// 备 注:部长评价 + /// 默认值: + /// + public string? MinisterEvaluation { get; set; } + + + /// + /// 备 注:部长评价人id + /// 默认值: + /// + public long? MinisterUserId { get; set; } + + + /// + /// 备 注:部长评价时间 + /// 默认值: + /// + public DateTime? MinisterAddtime { get; set; } + /// + /// 部长用户名 + /// + public string? MinisterUserName { get; set; } + /// + /// 总部长评价 + /// + public string GeneralEvaluation { get; set; } + /// + /// 总部长用户Id + /// + public long? GeneralUserId { get; set; } + /// + /// 总部长用户名 + /// + public string GeneralUserName { get; set; } + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + public string NextTimeContent { get; set; } = null!; + /// + /// 已读id(如果null则未读) + /// + public long? ReadId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeNoReadResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeNoReadResult.cs new file mode 100644 index 0000000..26d57a1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeNoReadResult.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeNoReadResult + { + /// + /// 未读消息数量 + /// + public int NoReadCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeReadRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeReadRequest.cs new file mode 100644 index 0000000..f045ffb --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeReadRequest.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeReadRequest + { + /// + /// 总结ID + /// + public long SummarizeId { get; set; } + /// + /// 总结类型 1日报 2周报 3月报 + /// + public int SummarizeType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeTaskResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeTaskResult.cs new file mode 100644 index 0000000..ea58edf --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeTaskResult.cs @@ -0,0 +1,99 @@ +using LearningOfficer.OA.Common.Dtos.Classes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeTaskResult + { + public long Id { get; set; } + + + /// + /// 备 注:任务状态 0:未开始 1:进行中 2:已结束 3:问题待处理(仅用于双师跟课) 4:已逾期 + /// 默认值: + /// + public int Status { get; set; } + /// + /// 班级基本信息 + /// + public List? classesInfoResults { get;set; } + + /// + /// 备 注:参数表 枚举值,任务类型 + /// 默认值: + /// + public int TaskTypeEnum { get; set; } + /// + /// 备 注:任务类型名称 + /// + public string TaskTypeName { get; set; } = null!; + + + /// + /// 备 注:任务标题后缀,用于展示 + /// 默认值: + /// + public string TaskTitleSuffix { get; set; } = null!; + /// + /// 备 注:开始日期 + /// 默认值: + /// + public DateTime? StartDate { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束日期 + /// 默认值: + /// + public DateTime? EndDate { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + /// + /// 备 注:任务指标类型-1班级;2通用; 班级时,classes_id不为空;通用时,执行人id不为空 + /// 默认值: + /// + public int Task_index_type { get; set; } + /// + /// 备 注:任务完成日期 + /// 默认值: + /// + public DateTime? FinishDate { get; set; } + + + /// + /// 备 注:任务完成时间 + /// 默认值: + /// + public DateTime? FinishDatetime { get; set; } + + /// + /// 备 注:任务首次操作时间 + /// 默认值: + /// + public DateTime? TaskWorkTime { get; set; } + + + /// + /// 备 注:任务首次操作日期 + /// 默认值: + /// + public DateTime? TaskWorkDate { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeWeekListResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeWeekListResult.cs new file mode 100644 index 0000000..17a5610 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeWeekListResult.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeWeekListResult + { + /// + /// 任务列表 + /// + public List TaskList { get; set; } + /// + /// 周报结果 + /// + public SummarizWeekTaskResult summarizWeekTaskResult { get; set; } + } + public class SummarizWeekTaskResult + { + public long Id { get; set; } + /// + /// 用户角色枚举 + /// + public int UserEnum { get; set; } + /// + /// 用户Id + /// + public long UserId { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + /// + /// 用户头像地址 + /// + public string UserHeadImage { get; set; } + /// + /// 总结年份 + /// + public int WorkYear { get; set; } + /// + /// 总结月份 + /// + public int WorkMonth { get; set; } + /// + /// 总结周 + /// + public int WorkWeek { get; set; } + /// + /// 开始日期 + /// + public DateTime? BeginDate { get; set; } + /// + /// 结束日期 + /// + public DateTime? EndDate { get; set; } + /// + /// 问题反馈 + /// + public string QuestContent { get; set; } + + /// + /// 创建时间 + /// + public DateTime AddTime { get; set; } + /// + /// 组长评价 + /// + public string? SuperiorEvaluation { get; set; } + /// + /// 组长用户Id + /// + public long? SuperiorUserId { get; set; } + /// + /// 备 注:组长评价时间 + /// 默认值: + /// + public DateTime? SuperiorAddtime { get; set; } + /// + /// 组长用户名 + /// + public string? SuperiorUserName { get; set; } + /// + /// 部长评价 + /// + public string? MinisterEvaluation { get; set; } + /// + /// 部长用户Id + /// + public long? MinisterUserId { get; set; } + /// + /// 备 注:部长评价时间 + /// 默认值: + /// + public DateTime? MinisterAddtime { get; set; } + /// + /// 部长用户名 + /// + public string? MinisterUserName { get; set; } + /// + /// 总部长评价 + /// + public string GeneralEvaluation { get; set; } + /// + /// 总部长用户Id + /// + public long? GeneralUserId { get; set; } + /// + /// 总部长用户名 + /// + public string GeneralUserName { get; set; } + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + public string NextTimeContent { get; set; } = null!; + /// + /// 已读id(如果null则未读) + /// + public long? ReadId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeWeekRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeWeekRequest.cs new file mode 100644 index 0000000..959b02b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Summarize/SummarizeWeekRequest.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.Summarize +{ + public class SummarizeWeekRequest + { + /// + /// 备 注:工作年份 + /// 默认值: + /// + public int WorkYear { get; set; } + + + /// + /// 备 注:工作月份 + /// 默认值: + /// + public int WorkMonth { get; set; } + + + /// + /// 备 注:工作周报 + /// 默认值: + /// + public int WorkWeek { get; set; } + + + /// + /// 备 注:工作总结日期-开始 + /// 默认值: + /// + public DateTime BeginDate { get; set; } + + + /// + /// 备 注:工作总结日期-结束 + /// 默认值: + /// + public DateTime EndDate { get; set; } + + + /// + /// 备 注:问题反馈 + /// 默认值: + /// + public string QuestContent { get; set; } = null!; + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + public string NextTimeContent { get; set; } = null!; + + /// + /// 备 注:明日计划-文件id集合,多个英文逗号隔开 + /// + public string? FileId { get; set; } + + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/BaseTaskFileRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/BaseTaskFileRequest.cs new file mode 100644 index 0000000..47df672 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/BaseTaskFileRequest.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser +{ + public class BaseTaskFileRequest + { + /// + /// 关联表id(非任务主表id) + /// + public long ClassesTaskId { get; set; } + /// + /// 文件id + /// + public long FileId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/SunTaskFileResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/SunTaskFileResult.cs new file mode 100644 index 0000000..6bfcd52 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/SunTaskFileResult.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser +{ + /// + /// 任务关联文件 + /// + public class SunTaskFileResult + { + /// + /// 文件关联表的id + /// + public long Id { get; set; } + /// + /// 子任务关联表id + /// + public long SunTaskId { get; set; } + /// + /// 文件id + /// + public long FileId { get; set; } + + /// + /// 备 注:文件路径 + /// + public string FilePath { get; set; } + /// + /// 备 注:文件大小(文件大小-kb,不足1kb为1kb) + /// 默认值: + /// + public long? FileSize { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/SunTaskUserResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/SunTaskUserResult.cs new file mode 100644 index 0000000..56e6811 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/SunTaskFileAndUser/SunTaskUserResult.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser +{ + /// + /// 任务关联用户 + /// + public class SunTaskUserResult + { + /// + /// 用户关联表的id + /// + public long Id { get; set; } + /// + /// 子任务关联表id + /// + public long SunTaskId { get; set; } + /// + /// + /// + public long UserId { get; set; } + + /// + /// 备 注:文件路径 + /// + public string UserName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TalkInfoResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TalkInfoResult.cs new file mode 100644 index 0000000..2bb0d73 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TalkInfoResult.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TalkInfoRequest : BaseTaskClassRequest + { + /// + /// 谈话记录表id(新增时为null,修改时必传) + /// + public long? TalkId { get; set; } + /// + /// 被谈话人id + /// + + public long QuiltUserid { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/BaseFollowModel.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/BaseFollowModel.cs new file mode 100644 index 0000000..98feab4 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/BaseFollowModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow +{ + public class BaseFollowModel + { + public string message { get; set; } + public int code { get; set; } + public T? data { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassCourseTableRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassCourseTableRequest.cs new file mode 100644 index 0000000..15c45d1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassCourseTableRequest.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow +{ + /// + /// 班级课程表请求参数 + /// + public class ClassCourseTableRequest + { + /// + /// 课程id + /// + public long ClassCourseId { get; set; } + /// + /// 班级课表id + /// + public long ClassCourseTableId { get; set; } + /// + /// 周id + /// + public long ClassCourseWeekId { get; set; } + /// + /// 课节详情id + /// + public long CoursesSectionDetailId { get; set; } + /// + /// 名称 + /// + public string? Name { get; set; } = ""; + /// + /// 周几 + /// + public int Week { get; set; } + /// + /// 科目id + /// + public int Subject { get; set; } + /// + /// 计划上课时间 + /// + public DateTime PlanStartTime { get; set; } + /// + /// 计划下课时间 + /// + public DateTime PlanEndTime { get; set; } + } + /// + /// 修改班级任务信息请求参数 + /// + public class ClassClassTaskInfoRequest + { + /// + /// 课程id + /// + public long ClassCourseId { get; set; } + /// + /// 科目 + /// + public int SubId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassCourseTableSetting.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassCourseTableSetting.cs new file mode 100644 index 0000000..2753ba7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassCourseTableSetting.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow +{ + public class ClassCourseTableSetting + { + public string UrlHead { get; set; } = string.Empty; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassTeachersResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassTeachersResult.cs new file mode 100644 index 0000000..7cd0538 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/ClassTeachersResult.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow +{ + public class ClassTeachersResult + { + /// + /// subId + /// + public int subject { get; set; } + /// + /// 科目名称 + /// + public string subjectName { get; set; } + ///// + ///// 云端教师id + ///// + //public long teacherId { get; set; } + /// + /// 落地老师id + /// + public long landingTeacherId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/CourseWeekDetailOutput.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/CourseWeekDetailOutput.cs new file mode 100644 index 0000000..505598e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/CourseWeekDetailOutput.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow +{ + + public class CourseWeekDetailOutput + { + /// + /// 课程id + /// + public long classCourseId { get; set; } + /// + /// 科目id + /// + public int subject { get; set; } + /// + /// 科目名称 + /// + public string subjectName { get; set; } + /// + /// 云校老师 + /// + public string teacherName { get; set; } + /// + /// 云校老师 + /// + public long teacherId { get; set; } + /// + /// 落地老师 + /// + public long landingTeacherId { get; set; } + /// + /// 落地老师 + /// + public string landingTeacherName { get; set; } + /// + /// 上课时间 + /// + public DateTime planStartTime { get; set; } + /// + /// 下课时间 + /// + public DateTime planEndTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/WeekModel.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/WeekModel.cs new file mode 100644 index 0000000..1bcf566 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskFollow/WeekModel.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow +{ + public class WeekModel + { + /// + /// 周 + /// + public int week { get; set; } + + /// + /// + /// + public DateTime weekDay { get; set; } + /// + /// + /// + public List weekDayDetails { get; set; } + } + public class weekDayDetail + { + /// + /// 课程id + /// + public long classCourseId { get; set; } + /// + /// 周ID + /// + public long classCourseWeekId { get; set; } + /// + /// 班级课表ID + /// + public long classCourseTableId { get; set; } + /// + /// 课节详情ID + /// + public long coursesSectionDetailId { get; set; } + /// + /// 名称 + /// + public string name { get; set; } + /// + /// 周类型 + /// + public int week { get; set; } + /// + /// 科目id + /// + public int subject { get; set; } + /// + /// 科目名称 + /// + public string subjectName { get; set; } + /// + /// 云校老师 + /// + public string teacherName { get; set; } + /// + /// 云校老师id + /// + public long teacherId { get; set; } + /// + /// 落地老师 + /// + public long landingTeacherId { get; set; } + /// + /// 落地老师 + /// + public string landingTeacherName { get; set; } + /// + /// 上课时间 + /// + public DateTime planStartTime { get; set; } + /// + /// 下课时间 + /// + public DateTime planEndTime { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkCountResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkCountResult.cs new file mode 100644 index 0000000..430b63e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkCountResult.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TaskTalkCountResult + { + /// + /// 被谈话人id + /// + public long QuiltUserid { get; set; } + /// + /// 谈话次数 + /// + public int Count { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkFinishRequest.cs new file mode 100644 index 0000000..1f9d7a9 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkFinishRequest.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TaskTalkFinishRequest + { + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 谈话表id + /// + public long TalkId { get; set; } + /// + /// 谈话纪要 + /// + public string Remark { get; set; } + public List? files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkResult.cs new file mode 100644 index 0000000..65baddb --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTalkResult.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TaskTalkResult + { + /// + /// 谈话表id + /// + public long TalkId { get; set; } + /// + /// 谈话纪要 + /// + public string Remark { get; set; } + /// + /// 用户id + /// + public long UserId { get; set; } + /// + /// 用户名称 + /// + public string UserName { get; set; } + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 关联文件 + /// + public List SunTaskFileResults { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTeacherBehaviorResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTeacherBehaviorResult.cs new file mode 100644 index 0000000..24513a7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TaskTeacherBehaviorResult.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TaskTeacherBehaviorResult + { + /// + /// 观察记录id + /// + public long TBId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Task_checklistResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Task_checklistResult.cs new file mode 100644 index 0000000..3a196de --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/Task_checklistResult.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class Task_checklistResult + { + public long Id { get; set; } + /// + /// 任务类型id + /// + public long TaskTypeEnum { get; set; } + /// + /// 备 注:任务类型名称 + /// + public string TaskTypeEnumName { get; set; } = null!; + /// + /// 备 注:用户id + /// 默认值: + /// + public long? TaskUserId { get; set; } + /// + /// 备 注:任务指标数 + /// 默认值: + /// + public int TargetNumber { get; set; } + /// + /// 备 注:班级/通用任务类型 1班级;2通用 + /// 默认值: + /// + public int TaskType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorFinishRequest.cs new file mode 100644 index 0000000..16532dc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorFinishRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TeacherBehaviorFinishRequest + { + + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 观察表id + /// + public long TBId { get; set; } + /// + /// 分析/总结 + /// + public string Remark { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorQuestionNumResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorQuestionNumResult.cs new file mode 100644 index 0000000..276c346 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorQuestionNumResult.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TeacherBehaviorQuestionNumResult + { + /// + /// 问题id + /// + public long questionId { get; set; } + /// + /// 问题个数 + /// + public int num { get; set; } + /// + /// 记录时间 + /// + public DateTime AddTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorQuestionResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorQuestionResult.cs new file mode 100644 index 0000000..10695f0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorQuestionResult.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TeacherBehaviorQuestionResult + { + /// + /// 预习安排 + /// + public string PreviewString { get; set; } + /// + /// 预习方式 + /// + public string PreviewTypeString { get; set; } + /// + /// 检查方式 + /// + public string CheckTypeString { get; set; } + /// + /// 预习效果 + /// + public string PreviewResultString { get; set; } + /// + /// 课堂配合 + /// + public string CooperationString { get; set; } + /// + /// 巡查频率 + /// + public string PatrolRate { get; set; } + /// + /// 课后观察 + /// + public string AfterString { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorRequest.cs new file mode 100644 index 0000000..0ba3ffb --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorRequest.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TeacherBehaviorRequest : BaseTaskClassRequest + { + /// + /// 教师行为规范id(新增时为null,修改时必传) + /// + public long? TBId { get; set; } + /// + /// 观察对象姓名 + /// + public string BehaviorUser_Name { get; set; } + /// + /// 观察对象Id + /// + public long BehaviorUserId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorResult.cs new file mode 100644 index 0000000..5a77cec --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherBehaviorResult.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TeacherBehaviorResult + { + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 观察表id + /// + public long TBId { get; set; } + /// + /// 观察对象名称 + /// + public string BehaviorUserName { get; set; } + /// + /// 反馈反思 + /// + public string? Remark { get; set; } + /// + /// 观察记录列表 + /// + public List teacherBehaviorQuestionNumResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoFinishRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoFinishRequest.cs new file mode 100644 index 0000000..045026a --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoFinishRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TeacherTalkInfoFinishRequest + { + + /// + /// 任务id + /// + public long Id { get; set; } + /// + /// 谈话ID + /// + public long TeacherTalkId { get; set; } + /// + /// 谈话纪要 + /// + public string Remark { get; set; } + public List? files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoRequest.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoRequest.cs new file mode 100644 index 0000000..c68a66b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoRequest.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TeacherTalkInfoRequest : BaseTaskClassRequest + { + + /// + /// id(新增时为null,修改时必传) + /// + public long? TeacherTalkId { get; set; } + /// + /// 被谈话老师用户姓名 + /// + public string QuiltUserName { get; set; } + /// + /// 备 注:被谈话老师用户id + /// 默认值: + /// + public long QuiltUserId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoResult.cs b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoResult.cs new file mode 100644 index 0000000..b97bced --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/OA/WorkProcess/TeacherTalkInfoResult.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.SunTaskFileAndUser; + +namespace LearningOfficer.OA.Common.Dtos.OA.WorkProcess +{ + public class TeacherTalkInfoResult + { + + /// + /// 谈话记录ID + /// + public long TalkId { get; set; } + /// + /// 备 注:被谈话老师用户id + /// 默认值: + /// + public long QuiltUserId { get; set; } + /// + /// 被谈话老师用户姓名 + /// + public string QuiltUserName { get; set; } + /// + /// 谈话纪要 + /// + public string Remark { get; set; } + /// + /// 任务信息 + /// + public BaseTaskClassResult taskInfo { get; set; } + /// + /// 关联文件 + /// + public List SunTaskFileResults { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/EditPointsReq.cs b/LearningOfficer.OA.Common/Dtos/Points/EditPointsReq.cs new file mode 100644 index 0000000..e9a7f7b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/EditPointsReq.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class EditPointsReq + { + public long UserId { get; set; } + public int Points { get; set; } + public string Remark { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/EditPointsUserInfoReq.cs b/LearningOfficer.OA.Common/Dtos/Points/EditPointsUserInfoReq.cs new file mode 100644 index 0000000..abad0f9 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/EditPointsUserInfoReq.cs @@ -0,0 +1,42 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class EditPointsUserInfoReq + { + /// + /// 用户id + /// + public long Userid { get; set; } + + /// + /// 积分规则id + /// + public long RulesId { get; set; } + + /// + /// 操作类型(0人为、1程序) + /// + public int IsAuto { get; set; } + + /// + /// 相关业务id,没有就不传 + /// 默认值: + /// + public long? SourceId { get; set; } + + /// + /// 变化积分 可以正数也可以负数 + /// + public int? ChangePoints { get; set; } + /// + /// 事项名称 RulesId不穿的时候使用这个 + /// + public string? DetailName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/GetPointsAdminListReq.cs b/LearningOfficer.OA.Common/Dtos/Points/GetPointsAdminListReq.cs new file mode 100644 index 0000000..4c75823 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/GetPointsAdminListReq.cs @@ -0,0 +1,19 @@ +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + + public class GetPointsAdminListReq : PageRequest + { + public string? Account { get; set; } + + public string? RealName { get; set; } + + public string? Phone { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/GetPointsAdminListRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/GetPointsAdminListRsp.cs new file mode 100644 index 0000000..78d8b92 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/GetPointsAdminListRsp.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class GetPointsAdminListRsp + { + public string Id { get; set; } + public string Account { get; set; } + public string RealName { get; set; } + public string? Phone { get; set; } + public int? TotalPoints { get; set; } + public int? AvailablePoints { get; set; } + public DateTime? LastUpdatedTime { get; set; } + public int? RoleEnum { get; set; } + public string? RoleEnumName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/OperateGoodsReq.cs b/LearningOfficer.OA.Common/Dtos/Points/OperateGoodsReq.cs new file mode 100644 index 0000000..e90c490 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/OperateGoodsReq.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class OperateGoodsReq + { + /// + /// 操作类型,0下架、1上架 + /// + public int OperateType { get; set; } + + /// + /// 商品id + /// + public long GoodsId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsDetailListRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsDetailListRsp.cs new file mode 100644 index 0000000..87007dc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsDetailListRsp.cs @@ -0,0 +1,30 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsDetailListRsp + { + /// + /// 备 注:积分规则名称 + /// 默认值: + /// + public string RulesName { get; set; } + + /// + /// 备 注:变化积分(可正可负)(当时的执行规则的积分) + /// 默认值: + /// + public int ChangePoints { get; set; } + + /// + /// 备 注:发生时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAddReq.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAddReq.cs new file mode 100644 index 0000000..b291d3c --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAddReq.cs @@ -0,0 +1,36 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsGoodsAddReq + { + public long Id { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string GoodsName { get; set; } + + /// + /// 备 注:所需积分(价格) + /// 默认值: + /// + public int GoodsPointsCount { get; set; } = 0; + + /// + /// 商品数量 + /// + public int GoodsCount { get; set; } = 0; + + /// + /// 备 注:文件id + /// + public long? FileId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminListRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminListRsp.cs new file mode 100644 index 0000000..ff19bb9 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminListRsp.cs @@ -0,0 +1,71 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsGoodsAdminListRsp + { + public long Id { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string GoodsName { get; set; } = null!; + + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + + /// + /// 备 注:所需积分(价格) + /// 默认值: + /// + public int GoodsPointsCount { get; set; } + + /// + /// 备 注:状态(默认0下架、1上架) + /// 默认值: + /// + public int GoodsStatus { get; set; } + + /// + /// 备 注:状态(默认0下架、1上架) + /// 默认值: + /// + public string GoodsStatusName { get; set; } + + /// + /// 备 注:库存 + /// 默认值: + /// + public int GoodsCount { get; set; } + + /// + /// 备 注:市场价值 + /// 默认值: + /// + public decimal GoodsMoney { get; set; } + + /// + /// 备 注:最后一次修改时间 + /// 默认值: + /// + public DateTime UpdateTime { get; set; } + + /// + /// 文件id + /// + public long? FileId { get; set; } + + public string? FileName { get; set; } + + public string? FileUrl { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminRsp.cs new file mode 100644 index 0000000..bee84d0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminRsp.cs @@ -0,0 +1,36 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsGoodsAdminRsp + { + public long Id { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string GoodsName { get; set; } + + /// + /// 备 注:所需积分(价格) + /// 默认值: + /// + public int GoodsPointsCount { get; set; } = 0; + + /// + /// 商品数量 + /// + public int GoodsCount { get; set; } = 0; + + /// + /// 备 注:文件id + /// + public long FileId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminSearchReq.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminSearchReq.cs new file mode 100644 index 0000000..734bdd7 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsAdminSearchReq.cs @@ -0,0 +1,29 @@ +using LearningOfficer.OA.Common.Request; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsGoodsAdminSearchReq : PageRequest + { + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string? GoodsName { get; set; } + + /// + /// 积分区间起 + /// + public int? PointsStart { get; set; } + + /// + /// 积分区间止 + /// + public int? PointsEnd { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsInventoryAdminRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsInventoryAdminRsp.cs new file mode 100644 index 0000000..77b39ee --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsInventoryAdminRsp.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsGoodsInventoryAdminRsp + { + /// + /// 备 注:商品id + /// 默认值: + /// + public long GoodsId { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string GoodsName { get; set; } + + /// + /// 备 注:库存数量 + /// 默认值: + /// + public int GoodsCount { get; set; } + + public List InventoryList { get; set; } + } + + public class PointsGoodsInventoryList + { + /// + /// 备 注:变化类型(默认0用户兑换、1管理添加) + /// 默认值: + /// + public int ChangeType { get; set; } + + /// + /// 备 注:变化类型名称 + /// 默认值: + /// + public string ChangeTypeName { get; set; } + + /// + /// 备 注:库存变化数量(正负区分出入库) + /// 默认值: + /// + public int ChangeCount { get; set; } + + + /// + /// 备 注:商品库存变化后的数目 + /// 默认值: + /// + public int GoodsCount { get; set; } + + + /// + /// 备 注:时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsListRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsListRsp.cs new file mode 100644 index 0000000..ddf6462 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsListRsp.cs @@ -0,0 +1,67 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsGoodsListRsp + { + /// + /// 备 注:兑换商品id + /// 默认值: + /// + public long GoodsId { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string GoodsName { get; set; } + + /// + /// 备 注:所需积分(价格) + /// 默认值: + /// + public int GoodsPointsCount { get; set; } + + /// + /// 图片资源 + /// + public List files { get; set; } + } + public class PointsGoodsListFileInfoRsp + { + /// + /// 备 注:兑换商品id + /// 默认值: + /// + public long GoodsId { get; set; } + /// + /// 文件ID + /// + public long File_Id { get; set; } + /// + /// 备 注:原文件名 + /// 默认值: + /// + public string? FileName { get; set; } + + + /// + /// 备 注:文件所在路径 + /// 默认值: + /// + public string? FilePath { get; set; } + + + /// + /// 备 注:文件类型 + /// 默认值: + /// + public string? FileType { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsRsp.cs new file mode 100644 index 0000000..99b8667 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsGoodsRsp.cs @@ -0,0 +1,49 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsGoodsDetailsRsp + { + /// + /// 备 注:兑换商品id + /// 默认值: + /// + public long GoodsId { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string GoodsName { get; set; } + + /// + /// 备 注:所需积分(价格) + /// 默认值: + /// + public int GoodsPointsCount { get; set; } + /// + /// 备 注:库存 + /// 默认值: + /// + public int GoodsCount { get; set; } + /// + /// 备 注:文件id + /// 默认值: + /// + public long FileId { get; set; } + + /// + /// 默认收货地址 + /// + public UserAddressRsp UserAddress { get; set; } + /// + /// 图片资源 + /// + public List files { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersAdminListRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersAdminListRsp.cs new file mode 100644 index 0000000..869f5b6 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersAdminListRsp.cs @@ -0,0 +1,132 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsOrdersAdminListRsp + { + public long Id { get; set; } + + /// + /// 兑换人 + /// + public string RealName { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string GoodsName { get; set; } + + /// + /// 备 注:兑换数量 + /// 默认值: + /// + public int GoodsCount { get; set; } + + /// + /// 备 注:兑换时间 + /// 默认值: + /// + public DateTime ConvertTime { get; set; } + + /// + /// 备 注:所需积分(价格) + /// 默认值: + /// + public int GoodsPointsCount { get; set; } + + /// + /// 备 注:状态(默认0下架、1上架) + /// 默认值: + /// + public int Status { get; set; } + + /// + /// 备 注:状态(默认0下架、1上架) + /// 默认值: + /// + public string StatusName { get; set; } + + /// + /// 备 注:收货地址 + /// 默认值: + /// + public string? UserAddress { get; set; } + + /// + /// 备 注:快递单号(发货后) + /// 默认值: + /// + public string? TrackingNumber { get; set; } + + + /// + /// 备 注:手机号 + /// 默认值: + /// + [SugarColumn(ColumnName = "user_phone")] + public string? UserPhone { get; set; } + + /// + /// 备 注:收货人,下单时写入收货地址表的收货人姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "consignee")] + public string? Consignee { get; set; } + + } + + + public class PointsOrdersAdminExport + { + [Column("订单ID")] + public long Id { get; set; } + + /// + /// 兑换人 + /// + [Column("姓名")] + public string RealName { get; set; } + + /// + /// 手机号 + /// + [Column("手机号")] + public string PhoneNum { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + [Column("商品")] + public string GoodsName { get; set; } + + /// + /// 备 注:兑换数量 + /// 默认值: + /// + [Column("数量")] + public int GoodsCount { get; set; } + + /// + /// 备 注:收货地址 + /// 默认值: + /// + [Column("收货地址")] + public string? UserAddress { get; set; } + + /// + /// 备 注:快递单号(发货后) + /// 默认值: + /// + [Column("快递单号")] + public string? TrackingNumber { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersAdminSearchReq.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersAdminSearchReq.cs new file mode 100644 index 0000000..79f9004 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersAdminSearchReq.cs @@ -0,0 +1,39 @@ +using LearningOfficer.OA.Common.Request; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsOrdersAdminSearchReq : PageRequest + { + /// + /// 备 注:兑换人 + /// 默认值: + /// + public string? ConvertUserName { get; set; } + + /// + /// 积分商品 + /// + public string? GoodsName { get; set; } + + /// + /// 兑换时间 起 + /// + public DateTime? PointsTimeStart { get; set; } + + /// + /// 兑换时间 止 + /// + public DateTime? PointsTimeEnd { get; set; } + + /// + /// 状态 0待发货、1已发货 + /// + public int? Status { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersListRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersListRsp.cs new file mode 100644 index 0000000..897cdd5 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersListRsp.cs @@ -0,0 +1,100 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsOrdersListRsp + { + + /// + /// 备 注:兑换商品id + /// 默认值: + /// + public long GoodsId { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + public string GoodsName { get; set; } = null!; + + /// + /// 备 注:兑换数量 + /// 默认值: + /// + public int GoodsCount { get; set; } + + /// + /// 备 注:共计花费积分数 + /// 默认值: + /// + public int ChangePoints { get; set; } + + /// + /// 备 注:兑换时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + + /// + /// 备 注:发货状态(0待发货、1已发货) + /// 默认值: + /// + public int Status { get; set; } + + /// + /// 备 注:快递单号(发货后) + /// 默认值: + /// + public string? TrackingNumber { get; set; } + + /// + /// 备 注:图片信息 + /// 默认值: + /// + public List? files { get; set; } + + /// + /// 备 注:图片地址 + /// 默认值: + /// + public string? FilePath { get; set; } + } + + public class PointsOrdersListtFileInfoRsp + { + /// + /// 备 注:兑换商品id + /// 默认值: + /// + public long GoodsId { get; set; } + /// + /// 文件ID + /// + public long File_Id { get; set; } + /// + /// 备 注:原文件名 + /// 默认值: + /// + public string? FileName { get; set; } + + + /// + /// 备 注:文件所在路径 + /// 默认值: + /// + public string? FilePath { get; set; } + + + /// + /// 备 注:文件类型 + /// 默认值: + /// + public string? FileType { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersReq.cs b/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersReq.cs new file mode 100644 index 0000000..38f64ed --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/PointsOrdersReq.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class PointsOrdersReq + { + /// + /// 商品id + /// + public long GoodsId { get; set; } + + /// + /// 收货地址id + /// + public long UserAddressId { get; set; } + + /// + /// 购买数量 + /// + public int BuyCount { get; set; }=0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/UserAddressIdReq.cs b/LearningOfficer.OA.Common/Dtos/Points/UserAddressIdReq.cs new file mode 100644 index 0000000..6b03df0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/UserAddressIdReq.cs @@ -0,0 +1,14 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class UserAddressIdReq + { + public long Id { get; set; } = 0; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/UserAddressReq.cs b/LearningOfficer.OA.Common/Dtos/Points/UserAddressReq.cs new file mode 100644 index 0000000..60c0e91 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/UserAddressReq.cs @@ -0,0 +1,49 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class UserAddressReq + { + public long Id { get; set; } = 0; + + /// + /// 备 注:收货人姓名 + /// + public string UserName { get; set; } + + /// + /// 备 注:收货人电话 + /// + public string UserPhone { get; set; } + + /// + /// 备 注:是否默认(0否、1是) 一个人只有一个地址是默认 + /// + public int IsDefault { get; set; } + + /// + /// 备 注:省id + /// + public int ProvinceId { get; set; } + + /// + /// 备 注:城市id + /// + public int CityId { get; set; } + + /// + /// 备 注:地区id + /// + public int RegionId { get; set; } + + /// + /// 备 注:详细地址 + /// + public string Address { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Points/UserAddressRsp.cs b/LearningOfficer.OA.Common/Dtos/Points/UserAddressRsp.cs new file mode 100644 index 0000000..4eacf78 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Points/UserAddressRsp.cs @@ -0,0 +1,49 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Points +{ + public class UserAddressRsp + { + public long Id { get; set; } = 0; + + /// + /// 备 注:收货人姓名 + /// + public string UserName { get; set; } + + /// + /// 备 注:收货人电话 + /// + public string UserPhone { get; set; } + + /// + /// 备 注:是否默认(0否、1是) 一个人只有一个地址是默认 + /// + public int IsDefault { get; set; } + + /// + /// 备 注:省id + /// + public int ProvinceId { get; set; } + + /// + /// 备 注:城市id + /// + public int CityId { get; set; } + + /// + /// 备 注:地区id + /// + public int RegionId { get; set; } + + /// + /// 备 注:详细地址 + /// + public string Address { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/QRCode/QRCodeResult.cs b/LearningOfficer.OA.Common/Dtos/QRCode/QRCodeResult.cs new file mode 100644 index 0000000..0e0378b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/QRCode/QRCodeResult.cs @@ -0,0 +1,26 @@ +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.QRCode +{ + public class QRCodeResult + { + /// + /// 扫码状态(0失败,1成功,2过期, 3已扫码) + /// + public int CodeState { get; set; } + ///// + ///// 成功时返回的token + ///// + //public string token { get; set; } + + /// + /// 用户信息 + /// + public userLoginResult userInfo { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/RabbitMQ/RabbitMQMessageDto.cs b/LearningOfficer.OA.Common/Dtos/RabbitMQ/RabbitMQMessageDto.cs new file mode 100644 index 0000000..eede908 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/RabbitMQ/RabbitMQMessageDto.cs @@ -0,0 +1,59 @@ +using System.Text.Json.Serialization; + +namespace LearningOfficer.OA.Common.Dtos.RabbitMQ +{ + /// + /// RabbitMQ 消息传输对象 - 用于持续监听场景 + /// + public class RabbitMQMessageDto + { + /// + /// 消息唯一标识符 (Id)不传则由系统生成 + /// + public long? Id { get; set; } + + /// + /// 消息类型 (业务标识) + /// im.push + /// + public RabbitMQMessageTypeEnum MessageType { get; set; } + + /// + /// 交换机名称 + /// + public string ExchangeName { get; set; } = "oa_junior_exchange"; + + /// + /// 路由键 + /// + public string RoutingKey { get; set; } = "oa.junior.routing"; + + /// + /// 消息数据 (泛型数据容器) + /// + public object Data { get; set; } = new object(); + + /// + /// 消息创建时间 (UTC) + /// + public DateTime CreatedAt { get; set; } = DateTime.UtcNow; + + + /// + /// 关联ID (用于消息关联追踪) + /// + public string CorrelationId { get; set; } = string.Empty; + + } + /// + /// 业务消息类型枚举 + /// + public enum RabbitMQMessageTypeEnum + { + /// + /// Im消息 + /// + [EnumDescription("im推送消息")] + IMMsg =1, + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Common/Dtos/Role/RoleDtos.cs b/LearningOfficer.OA.Common/Dtos/Role/RoleDtos.cs new file mode 100644 index 0000000..e8f711e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Role/RoleDtos.cs @@ -0,0 +1,32 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Role +{ + public class RoleAddDto + { + + /// + /// 备 注:角色名称 + /// 默认值: + /// + public string RoleName { get; set; } = null!; + + + /// + /// 备 注:角色枚举值 + /// 默认值: + /// + public int RoleEnum { get; set; } + + } + + public class RoleUpdateDto : RoleAddDto + { + public long Id { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/School/GradeResult.cs b/LearningOfficer.OA.Common/Dtos/School/GradeResult.cs new file mode 100644 index 0000000..7dc431b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/School/GradeResult.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.School +{ + public class GradeResult + { + + /// + /// id + /// + public int gradeId { get; set; } + /// + /// 名称(例:高三) + /// + public string value1 { get; set; } + /// + /// 级数(例:高2026) + /// + public string value2 { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/School/SchoolDto.cs b/LearningOfficer.OA.Common/Dtos/School/SchoolDto.cs new file mode 100644 index 0000000..b17a40f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/School/SchoolDto.cs @@ -0,0 +1,130 @@ +using LearningOfficer.OA.Common.Dtos.CloudSchool; +using LearningOfficer.OA.Common.Request; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Common.Dtos.School +{ + public class SchoolAddDto + { + /// + /// 备 注:名称 + /// 默认值: + /// + public string Name { get; set; } = null!; + + + /// + /// 备 注:省Id + /// 默认值: + /// + public int Pid { get; set; } = 0; + + /// + /// 备 注:Pname + /// 默认值: + /// + public string Pname { get; set; } = ""; + + /// + /// 备 注:市Id + /// 默认值: + /// + public int Cid { get; set; } = 0; + + /// + /// 备 注: + /// 默认值: + /// + public string Cname { get; set; } = ""; + + /// + /// 备 注:区Id + /// 默认值: + /// + public int Rid { get; set; } = 0; + + /// + /// 备 注: + /// 默认值: + /// + public string Rname { get; set; } = ""; + + /// + /// 备 注:启用状态 + /// 默认值: + /// + public bool Enable { get; set; } + + /// + /// 备 注:学校类型 + /// 初高中6年制 = 0, + /// 初中3年制 = 100, + /// 高中3年制 = 300, + /// 小学6年制 = 200 + /// + public SchoolTypeEnum Type { get; set; } = 0; + + + /// + /// 云校id + /// + public long CloudSchoolId { get; set; } + /// + /// 云校名称 + /// + public string? CloudSchoolName { get; set; } + + } + + public class SchoolUpdateDto : SchoolAddDto + { + public long Id { get; set; } + } + + public class SchoolViewDto : SchoolAddDto + { + public long Id { get; set; } + + + + + /// + /// 学习官组长Id + /// + public long LearningOfficerLeaderId { get; set; } + /// + /// 学习官组长名称 + /// + public string LearningOfficerLeaderName { get; set; } + + } + public class SchoolSimpleDto + { + /// + /// 学校id + /// + public long SchhoolId { get; set; } + /// + /// 学习官组长Id + /// + public long LearningOfficerLeaderId { get; set; } + /// + /// 学习官组长名称 + /// + public string LearningOfficerLeaderName { get; set; } + } + + public class SchoolSearchDto : PageRequest + { + public string? SchoolName { get; set; } + + public long? CloudSchoolId { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/School/SchoolResult.cs b/LearningOfficer.OA.Common/Dtos/School/SchoolResult.cs new file mode 100644 index 0000000..a83f6d0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/School/SchoolResult.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.School +{ + public class SchoolResult + { + public long Id { get; set; } + public string SchoolName { get; set; } = null!; + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/School/SchoolTree.cs b/LearningOfficer.OA.Common/Dtos/School/SchoolTree.cs new file mode 100644 index 0000000..faba279 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/School/SchoolTree.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess; + +namespace LearningOfficer.OA.Common.Dtos.School +{ + public class SchoolTree + { + public long Id { get; set; } + public string SchoolName { get; set; } + public int Count { get; set; } = 0; + public List? Users { get; set; } + public List? Children { get; set; } + } + public class SchoolInfo + { + public long Id { get; set; } + /// + /// 学校名称 + /// + public string SchoolName { get; set; } + /// + /// 云校id + /// + public long CloudSchoolId { get; set; } + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } + + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/School/UserBooksResult.cs b/LearningOfficer.OA.Common/Dtos/School/UserBooksResult.cs new file mode 100644 index 0000000..cfa138b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/School/UserBooksResult.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Enums; + +namespace LearningOfficer.OA.Common.Dtos.School +{ + public class UserBooksResult + { + + /// + /// Id + /// + public long Id { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + /// + /// 头像 + /// + public string HeadImage { get; set; } + /// + /// 角色枚举 + /// + public SysRoleEnum RoleEnum { get; set; } + /// + /// 电话 + /// + public string Phone { get; set; } + /// + /// 管理班级数量 + /// + public int ClassNum { get; set; } + /// + /// 账号所属云校id + /// + public long? CloudSchoolId { get; set; } + } + public class UserSchoolLikeBooksResult + { + /// + /// 学校信息 + /// + public List schoolInfos { get; set; } + /// + /// 用户 + /// + public List likeUserBooksResults { get; set; } + } + public class LikeUserBooksResult + { + + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } + /// + /// Id + /// + public long Id { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + /// + /// 角色枚举 + /// + public SysRoleEnum RoleEnum { get; set; } + /// + /// 头像 + /// + public string HeadImage { get; set; } + /// + /// 电话 + /// + public string Phone { get; set; } + /// + /// 管理班级数量 + /// + public int ClassNum { get; set; } + + } + public class SchoolUserBooksResult + { + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } + /// + /// 学校名称 + /// + public string SchoolName { get; set; } + /// + /// Id + /// + public long Id { get; set; } + /// + /// 用户姓名 + /// + public string UserName { get; set; } + /// + /// 头像 + /// + public string HeadImage { get; set; } + /// + /// 角色枚举 + /// + public SysRoleEnum RoleEnum { get; set; } + /// + /// 电话 + /// + public string Phone { get; set; } + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/Solution/ProblemSemesterViewDto.cs b/LearningOfficer.OA.Common/Dtos/Solution/ProblemSemesterViewDto.cs new file mode 100644 index 0000000..92914d1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Solution/ProblemSemesterViewDto.cs @@ -0,0 +1,33 @@ +using LearningOfficer.OA.Common.Enums; +using Masuit.Tools.Systems; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Solution +{ + public class ProblemSemesterViewDto + { + /// + /// 备 注:解决方案学期阶段枚举 初一上上半期 = 71, 初一上下半期 = 72, 初一下上半期 = 73, 初一下下半期 = 74, 初二上上半期 = 81, 初二上下半期 = 82, 初二下上半期 = 83, 初二下下半期 = 84, 初三上上半期 = 91, 初三上下半期 = 92, 初三下上半期 = 93, 初三下下半期 = 94, 高一上上半期 = 101, 高一上下半期 = 102, 高一下上半期 = 103, 高一下下半期 = 104, 高二上上半期 = 111, 高二上下半期 = 112, 高二下上半期 = 113, 高二下下半期 = 114, 高三上上半期 = 121, 高三上下半期 = 122, 高三下上半期 = 123, 高三下下半期 = 124 + /// 默认值: + /// + public SolutionSemesterEnum SolutionSemesterEnum { get; set; } + + /// + /// 解决方案枚举名称 + /// + public string SolutionSemesterName + { + get + { + return SolutionSemesterEnum.GetEnumDescription().Description; + } + } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Solution/ProblemTaskTypeViewDto.cs b/LearningOfficer.OA.Common/Dtos/Solution/ProblemTaskTypeViewDto.cs new file mode 100644 index 0000000..1c563ce --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Solution/ProblemTaskTypeViewDto.cs @@ -0,0 +1,33 @@ +using LearningOfficer.OA.Common.Enums; +using Masuit.Tools.Systems; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Solution +{ + public class ProblemTaskTypeViewDto + { + + + /// + /// 备 注:任务类型枚举关联 + /// 默认值: + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + + /// + /// 任务类型枚举名称 + /// + public string TaskTypeEnumName + { + get + { + return TaskTypeEnum.GetEnumDescription().Description; + } + } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Solution/QuestionDateResult.cs b/LearningOfficer.OA.Common/Dtos/Solution/QuestionDateResult.cs new file mode 100644 index 0000000..2c65937 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Solution/QuestionDateResult.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Solution +{ + public class QuestionDateResult + { + /// + /// 年 + /// + public int DataYear { get; set; } + /// + /// 月 + /// + public int DataMonth { get; set; } + /// + /// 数据条数 + /// + public int DataCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Solution/QuestionInfoResult.cs b/LearningOfficer.OA.Common/Dtos/Solution/QuestionInfoResult.cs new file mode 100644 index 0000000..61b9726 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Solution/QuestionInfoResult.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Solution +{ + public class SumQuestionInfoByTypeResult + { + public List questionInfoByTypeResult { get; set; } + /// + /// 总条数 + /// + public int SumQuestionCount { get; set; } + } + public class QuestionInfoByTypeResult + { + /// + /// 任务类型枚举 + /// + public int TaskEnum { get; set; } + /// + /// 问题类型枚举 + /// + public int QuestionType { get; set; } + /// + /// 问题具体信息 + /// + public long QuestionPValue { get; set; } + /// + /// 父级问题类型 + /// + public string FatherQuestionName { get; set; } + /// + /// 问题类型 + /// + public string QuestionName { get; set; } + /// + /// 首页本月条数/类型总条数 + /// + public int QuestionCount { get; set; } + + } + public class QuestionInfoByTaskEnumResult + { + /// + /// 父级问题类型 + /// + public string FatherQuestionName { get; set; } + /// + /// 问题类型 + /// + public string QuestionName { get; set; } + /// + /// 条数 + /// + public int QuestionCount { get; set; } + /// + /// 环比 + /// + public string QuestionChain { get; set; } + /// + /// 问题列表 + /// + public List questionInfoResults { get; set; } + } + /// + /// 问题列表 + /// + public class QuestionInfoResult + { + /// + /// 问题人id + /// + public long QuestionUserId { get; set; } + /// + /// 问题人 + /// + public string QuestionUserName { get; set; } + /// + /// 问题时间 + /// + public DateTime AddTime { get; set; } + /// + /// 任务类型枚举 + /// + public int TaskEnum { get; set; } + /// + /// 任务id + /// + public long TaskId { get; set; } + /// + /// 问题具体value + /// + public long QuestionPValue { get; set; } + /// + /// 父级问题类型 + /// + public string FatherQuestionName { get; set; } + /// + /// 问题类型 + /// + public string QuestionName { get; set; } + /// + /// 问题类型 1:学生;2:老师; + /// + public int QuestionType { get; set; } + /// + /// 学生问题时所属班级id + /// + public long? QuestionClassId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Solution/SolutionDto.cs b/LearningOfficer.OA.Common/Dtos/Solution/SolutionDto.cs new file mode 100644 index 0000000..a982e51 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Solution/SolutionDto.cs @@ -0,0 +1,242 @@ +using LearningOfficer.OA.Common.Dtos.ToolKit; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Solution +{ + public class SolutionAddDto + { + /// + /// 备 注:问题描述 + /// 默认值: + /// + public string ProblemTitle { get; set; } = null!; + + + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + public ToolObjectType ProblemObj { get; set; } + + + /// + /// 备 注:问题显著现象 + /// 默认值: + /// + public string ProblemPhenomenon { get; set; } = null!; + + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + public ToolClassType ToolClassType { get; set; } + + /// + /// 备 注:解决方案文本描述 + /// 默认值: + /// + public string SolutionContent { get; set; } = null!; + + /// + /// 工具包ID列表 + /// + public List ProblemTools { get; set; } + + /// + /// 关联任务类型枚举列表 + /// + public List ProblemTaskType { get; set; } + + /// + /// 关联学段枚举列表 + /// + public List ProblemSemesters { get; set; } + } + + public class SolutionUpdateDto : SolutionAddDto + { + /// + /// 备 注:主键ID + /// 默认值: + /// + public long Id { get; set; } + } + + public class SolutionSearchMobileDto : PageRequest + { + /// + /// 备 注:问题描述 + /// 默认值: + /// + public string? ProblemTitle { get; set; } + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + public ToolObjectType? ProblemObj { get; set; } + /// + /// 备 注:问题显著现象 + /// 默认值: + /// + public string? ProblemPhenomenon { get; set; } = null!; + /// + /// 班级id(必传) + /// + public long ClassesId { get; set; } + + /// + /// 任务类型枚举列表 + /// + public SysTaskTypeEnums? ProblemTaskType { get; set; } + } + public class SolutionListViewMobileDto + { + public long Id { get; set; } + /// + /// 备 注:问题描述 + /// 默认值: + /// + public string ProblemTitle { get; set; } = null!; + /// + /// 最后修改时间 + /// + public DateTime UpTime { get; set; } + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + public ToolObjectType ProblemObj { get; set; } + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + public ToolClassType ToolClassType { get; set; } + + /// + /// 备 注:问题显著现象 + /// 默认值: + /// + public string ProblemPhenomenon { get; set; } = null!; + /// + /// 关联学段枚举列表 + /// + public List ProblemSemesters { get; set; } + + } + public class SolutionListViewDto + { + public long Id { get; set; } + /// + /// 备 注:问题描述 + /// 默认值: + /// + public string ProblemTitle { get; set; } = null!; + /// + /// 最后修改时间 + /// + public DateTime UpTime { get; set; } + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + public ToolObjectType ProblemObj { get; set; } + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + public ToolClassType ToolClassType { get; set; } + /// + /// 关联学段枚举列表 + /// + public List ProblemSemesters { get; set; } + + } + + public class SolutionSearchDto : PageRequest + { + /// + /// 备 注:问题描述 + /// 默认值: + /// + public string? ProblemTitle { get; set; } + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + public ToolObjectType? ProblemObj { get; set; } + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + public ToolClassType? ToolClassType { get; set; } + + /// + /// 关联年级枚举列表 + /// + public List? SolutionSemesterEnums { get; set; } + + ///// + ///// 任务类型枚举列表 + ///// + //public List? ProblemTaskType { get; set; } + } + + public class SolutionDetailViewDto + { + public long Id { get; set; } + /// + /// 备 注:问题描述 + /// 默认值: + /// + public string ProblemTitle { get; set; } = null!; + /// + /// 最后修改时间 + /// + public DateTime UpTime { get; set; } + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + public ToolObjectType ProblemObj { get; set; } + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + public ToolClassType ToolClassType { get; set; } + /// + /// 关联学段枚举列表 + /// + public List ProblemSemesters { get; set; } + + /// + /// 备 注:问题显著现象 + /// 默认值: + /// + public string ProblemPhenomenon { get; set; } = null!; + + /// + /// 备 注:解决方案文本描述 + /// 默认值: + /// + public string SolutionContent { get; set; } = null!; + + + /// + /// 关联任务类型枚举列表 + /// + public List ProblemTaskTypes { get; set; } + + /// + /// 解决方案工具列表 + /// + public List ToolKits { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Student/StudentDetailInfo.cs b/LearningOfficer.OA.Common/Dtos/Student/StudentDetailInfo.cs new file mode 100644 index 0000000..a3a1b86 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Student/StudentDetailInfo.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Common.Dtos.Student +{ + public class StudentDetailInfoResult + { + public long Id { get; set; } + /// + /// 学校id + /// + public long SchoolId { get; set; } + /// + /// 备 注:学校名称 + /// 默认值: + /// + public string SchoolName { get; set; } + /// + /// 班级id + /// + public long ClassId { get; set; } + /// + /// 备 注:班级名称 + /// 默认值: + /// + public string ClassName { get; set; } + /// + /// 姓名 + /// + public string UserName { get; set; } = null!; + /// + /// 备注 + /// + public string Remark { get; set; } = null!; + + /// + /// 备 注:年级 + /// 默认值: + /// + public string GradeLevel { get; set; } + + /// + /// 备 注:所属届 + /// 默认值: + /// + public int GraduationYear { get; set; } + /// + /// 学生状态 1在读 0转班 10退学 + /// + public PositionRelationStatusEnum Status { get; set; } + + public List? StudentParents { get; set; } + + } + public class StudentParentInfoResult + { + public long id { get; set; } + /// + /// 家长姓名 + /// + public string ParentName { get; set; } = null!; + /// + /// 字典表-关系 + /// + public long ParentRelation { get; set; } + /// + /// 字典表-关系名称 + /// + public string? ParentRelationName { get; set; } + /// + /// 电话 + /// + public string ParentPhone { get; set; } = null!; + } + public class GetStudentClassesInfoResult + { + /// + /// 班级id + /// + public long Id { get; set; } + /// + /// 备 注:班级名称 + /// 默认值: + /// + public string ClassName { get; set; } = null!; + /// + /// 学校id + /// + public long SchoolId { get; set; } + /// + /// 备 注:学校名称 + /// 默认值: + /// + public string SchoolName { get; set; } = null!; + + /// + /// 备 注:年级 + /// 默认值: + /// + public string GradeLevel { get; set; } = null!; + + /// + /// 备 注:所属届 + /// 默认值: + /// + public int GraduationYear { get; set; } + /// + /// 学生状态 1在读 0转班 10退学 + /// + public PositionRelationStatusEnum Status { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskDetailResult.cs b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskDetailResult.cs new file mode 100644 index 0000000..1ba0500 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskDetailResult.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.School; +using LearningOfficer.OA.Common.Dtos.User; + +namespace LearningOfficer.OA.Common.Dtos.Superior +{ + /// + /// 任务详细返回基本信息 + /// + public class SuperiorTaskResult + { + public long Id { get; set; } + /// + /// 备 注:任务类型枚举 + /// 默认值: + /// + public int TaskEnum { get; set; } + + + /// + /// 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; + /// 默认值: + /// + public int TaskStatus { get; set; } + + + /// + /// 备 注:布置时间 + /// 默认值: + /// + public DateTime TaskAddtime { get; set; } + + + /// + /// 备 注:布置人id + /// 默认值: + /// + public long TaskAdduser { get; set; } + + /// + /// 备 注:布置人姓名 + /// + + public string TaskAddUserName { get; set; } + + + /// + /// 备 注:1:单人任务;2多人任务 + /// 默认值: + /// + public int TaskWorkType { get; set; } + + /// + /// 备 注:完成时间 + /// 默认值: + /// + public DateTime TaskEndTime { get; set; } + + /// + /// 备 注:备注 + /// 默认值: + /// + public string? Remark { get; set; } + + /// + /// 备 注:布置对象 + /// 默认值: + /// + public string TaskUserNames { get; set; } = null!; + + /// + /// 备 注:接受任务人数 + /// 默认值: + /// + public int TaskUserNum { get; set; } + + /// + /// 备 注:最后一次更新时间 + /// 默认值: + /// + public DateTime? UpdateTime { get; set; } + + } + /// + /// 任务详情返回结果 + /// + public class SuperiorTaskDetailResult : SuperiorTaskResult + { + + /// + /// 备 注:完成任务人数(多人才有,单人默认为0) + /// + public int FinishUserNum { get; set; } = 0; + /// + /// 任务接收人详情列表 + /// + public List? superiorTaskInfoUserDetailResults { get; set; } + /// + /// 任务完成流程记录 + /// + public List? superiorTaskInfoProcessResult { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskInfoProcessResult.cs b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskInfoProcessResult.cs new file mode 100644 index 0000000..668c15d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskInfoProcessResult.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Superior +{ + public class SuperiorTaskInfoProcessResult + { + public long Id { get; set; } + + /// + /// 备 注:布置任务id + /// 默认值: + /// + public long? SuperiorId { get; set; } + + + /// + /// 备 注:任务id + /// 默认值: + /// + public long? TaskId { get; set; } + + + /// + /// 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; + /// 默认值: + /// + public long? TaskStatus { get; set; } + + + /// + /// 备 注:时间 + /// 默认值: + /// + public DateTime? TaskTime { get; set; } + + + /// + /// 备 注:任务接收人id + /// 默认值: + /// + public long? TaskUserId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskInfoUserDetailResult.cs b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskInfoUserDetailResult.cs new file mode 100644 index 0000000..6f5b781 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskInfoUserDetailResult.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Superior +{ + public class SuperiorTaskInfoUserDetailResult + { + public long Id { get; set; } + /// + /// 备 注:布置任务id + /// 默认值: + /// + public long? SuperiorId { get; set; } + /// + /// 任务接收人id + /// + public long TaskUserId { get; set; } + /// + /// 用户名称 + /// + public string UserName { get; set; } + /// + /// 用户头像 + /// + public string HeadImage { get; set; } + /// + /// 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; + /// + public int UserTaskStatus { get; set; } + /// + /// 备 注:创建任务id + /// + public long? TaskId { get; set; } + /// + /// 备 注:最后更新时间 + /// + public DateTime UpdateTime { get; set; } + } + public class SuperiorTaskInfoUserListCountResult + { + /// + /// 未响应 + /// + public int NotResponseCount { get; set; } + /// + /// 已创建 + /// + public int CreatedCount { get; set; } + /// + /// 进行中 + /// + public int InProgressCount { get; set; } + /// + /// 已完成 + /// + public int CompletedCount { get; set; } + /// + /// 已逾期 + /// + public int OverdueCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskListResult.cs b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskListResult.cs new file mode 100644 index 0000000..fbd5df3 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskListResult.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Superior +{ + public class SuperiorTaskListResult + { + public long Id { get; set; } + + /// + /// 备 注:任务类型枚举 + /// 默认值: + /// + public int TaskEnum { get; set; } + + + /// + /// 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; + /// 默认值: + /// + public int TaskStatus { get; set; } + + + /// + /// 备 注:布置时间 + /// 默认值: + /// + public DateTime TaskAddtime { get; set; } + + + /// + /// 备 注:布置人id + /// 默认值: + /// + public long TaskAdduser { get; set; } + /// + /// 备 注:布置人姓名 + /// 默认值: + /// + public string TaskAdduserName { get; set; } + + + /// + /// 备 注:1:单人任务;2多人任务 + /// 默认值: + /// + public int TaskWorkType { get; set; } + + + /// + /// 备 注:接受任务人数 + /// 默认值: + /// + public int TaskUserNum { get; set; } + + + /// + /// 备 注:用户姓名 + /// 默认值: + /// + public string TaskUserNames { get; set; } = null!; + + + /// + /// 备 注:完成时间 + /// 默认值: + /// + public DateTime TaskEndTime { get; set; } + + /// + /// 完成人数 + /// + public int? FinishCount { get; set; } + + + /// + /// 备 注:备注 + /// 默认值: + /// + public string? Remark { get; set; } + /// + /// 备 注:最后一次更新时间 + /// 默认值: + /// + public DateTime? UpdateTime { get; set; } + /// + /// 备 注:布置对象头像列表 + /// + public string? UserHeadImage { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskRequest.cs b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskRequest.cs new file mode 100644 index 0000000..e287966 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskRequest.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Superior +{ + /// + /// 布置任务请求参数 + /// + public class SuperiorTaskRequest + { + /// + /// 布置对象 + /// + public List users { get; set; } + /// + /// 任务类型枚举 + /// + public int TaskEnum { get; set; } + /// + /// 完成时间 + /// + public DateTime TaskEndTime { get; set; } + /// + /// 备注 + /// + public string? Remark { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskUserCountDetailResult.cs b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskUserCountDetailResult.cs new file mode 100644 index 0000000..53564d2 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Superior/SuperiorTaskUserCountDetailResult.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Superior +{ + /// + /// 上级布置任务-用户任务数量明细结果 + /// + public class SuperiorTaskUserCountDetailResult + { + /// + /// 布置id + /// + public long SuperiorId { get; set; } + + /// + /// 未响应数量 + /// + public int NotResponseCount { get; set; } + + /// + /// 已创建数量 + /// + public int CreatedCount { get; set; } + + /// + /// 进行中数量 + /// + public int InProgressCount { get; set; } + + /// + /// 已完成数量 + /// + public int CompletedCount { get; set; } + + /// + /// 已逾期数量 + /// + public int OverdueCount { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/SysFile/OssSignResult.cs b/LearningOfficer.OA.Common/Dtos/SysFile/OssSignResult.cs new file mode 100644 index 0000000..47054fe --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/SysFile/OssSignResult.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.SysFile +{ + public class OssSignResult + { + /// + /// 上传路径 + /// + public string filePath { get; set; } + /// + /// 文件限制大小 + /// + public long fileSize { get; set; } + + /// + /// 上传URL + /// + public string UploadUrl { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/SysFile/SysFileViewDto.cs b/LearningOfficer.OA.Common/Dtos/SysFile/SysFileViewDto.cs new file mode 100644 index 0000000..4d41306 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/SysFile/SysFileViewDto.cs @@ -0,0 +1,40 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.SysFile +{ + public class SysFileViewDto + { + public long Id { get; set; } + /// + /// 备 注:原文件名 + /// 默认值: + /// + public string? FileName { get; set; } + + + /// + /// 备 注:文件所在路径 + /// 默认值: + /// + public string? FilePath { get; set; } + + + /// + /// 备 注:文件类型 + /// 默认值: + /// + public string? FileType { get; set; } + + + /// + /// 备 注:上传时间 + /// 默认值: + /// + public DateTime? Addtime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/SysFile/System_filesRequest.cs b/LearningOfficer.OA.Common/Dtos/SysFile/System_filesRequest.cs new file mode 100644 index 0000000..f6f04bb --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/SysFile/System_filesRequest.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.SysFile +{ + public class System_filesRequest + { + + /// + /// 备 注:原文件名包括后缀例如【111.txt】 + /// 默认值: + /// + public string? File_name { get; set; } + + /// + /// 备 注:文件Url路径 + /// 默认值: + /// + public string? File_path { get; set; } + + /// + /// 备 注:文件类型(文件后缀名,不带.) + /// 默认值: + /// + public string? File_type { get; set; } + /// + /// 备 注:文件大小(文件大小-kb,不足1kb为1kb) + /// 默认值: + /// + public long? File_size { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/SysParameter/SysParameterAddDto.cs b/LearningOfficer.OA.Common/Dtos/SysParameter/SysParameterAddDto.cs new file mode 100644 index 0000000..ae30418 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/SysParameter/SysParameterAddDto.cs @@ -0,0 +1,73 @@ +using LearningOfficer.OA.Common.Enums; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.SysParameter +{ + public class SysParameterAddDto + { + /// + /// 备 注:父级id,默认0,0时无父级 + /// 默认值: + /// + public long Pid { get; set; } + + + /// + /// 备 注:参数名称 + /// 默认值: + /// + public string PName { get; set; } = null!; + + + /// + /// 备 注:枚举值,不可重复,自定义 或 直接生成,后续业务关联也是关联此字段 + /// 默认值: + /// + public long PValue { get; set; } + + + /// + /// 备 注:排序,默认0 + /// 默认值: + /// + public int Sort { get; set; } + + /// + /// 备 注:是否纳入问题记录。0否,1是 + /// 默认值: + /// + public bool IsQuestion { get; set; } + + + /// + /// 备 注:问题类别。0无(不是问题时默认0),1学生、2教师 + /// 默认值: + /// + public QuestionType QuestionType { get; set; } + + /// + /// 备 注:null为否,非null为是,并且值1=单选,2=多选 + /// 默认值: + /// + public int? SelectionMode { get; set; } + + /// + /// 备 注:是否必填项 + /// 默认值: + /// + public bool IsRequiredSelection { get; set; } + + + } + + public class SysParameterUpdateDto : SysParameterAddDto + { + public long Id { get; set; } + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/SysParameter/SysParameterOtherResult.cs b/LearningOfficer.OA.Common/Dtos/SysParameter/SysParameterOtherResult.cs new file mode 100644 index 0000000..ca4a9fd --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/SysParameter/SysParameterOtherResult.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.SysParameter +{ + public class SysParameterOtherResult + { + public long Id { get; set; } + /// + /// 备 注:父级id。0为顶级 对应p_value + /// 默认值: + /// + public long Pid { get; set; } + + + /// + /// 备 注:参数名称 + /// 默认值: + /// + public string PName { get; set; } = null!; + + + /// + /// 备 注:枚举值 + /// 默认值: + /// + public long PValue { get; set; } + + + /// + /// 备 注:排序 + /// 默认值: + /// + public int Sort { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/SystemInfo/SysParameterOtherDto.cs b/LearningOfficer.OA.Common/Dtos/SystemInfo/SysParameterOtherDto.cs new file mode 100644 index 0000000..ca58298 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/SystemInfo/SysParameterOtherDto.cs @@ -0,0 +1,48 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.SystemInfo +{ + public class SysParameterOtherAddDto + { + /// + /// 备 注:父级id。0为顶级 + /// 默认值: + /// + [SugarColumn(ColumnName = "pid")] + public long Pid { get; set; } + + /// + /// 备 注:参数名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "p_name")] + public string PName { get; set; } = null!; + + /// + /// 备 注:枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "p_value")] + public long PValue { get; set; } + + /// + /// 备 注:排序 + /// 默认值: + /// + [SugarColumn(ColumnName = "sort")] + public int Sort { get; set; } + + } + public class SysParameterOtherUpdateDto: SysParameterOtherAddDto + { + /// + /// 主键 + /// + public long Id { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/TaskType/TaskTypeDto.cs b/LearningOfficer.OA.Common/Dtos/TaskType/TaskTypeDto.cs new file mode 100644 index 0000000..b37f76d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/TaskType/TaskTypeDto.cs @@ -0,0 +1,30 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.TaskType +{ + public class TaskTypeAddDto + { + /// + /// 备 注:枚举值 + /// 默认值: + /// + public int EnumValue { get; set; } + + + /// + /// 备 注:类型名称 + /// 默认值: + /// + public string TypeName { get; set; } = null!; + } + + public class TaskTypeUpdateDto : TaskTypeAddDto + { + public long Id { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/TencentIM/Account_importModel.cs b/LearningOfficer.OA.Common/Dtos/TencentIM/Account_importModel.cs new file mode 100644 index 0000000..6a9b48b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/TencentIM/Account_importModel.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.TencentIM +{ + public class Account_importModel + { + /// + /// 用户ID + /// + public string? UserID { get; set; } + /// + /// 昵称(姓名) + /// + public string? Nick { get; set; } + /// + /// 头像地址 + /// + public string? FaceUrl { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/TencentIM/SendMsgReques.cs b/LearningOfficer.OA.Common/Dtos/TencentIM/SendMsgReques.cs new file mode 100644 index 0000000..ab6263b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/TencentIM/SendMsgReques.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.TencentIM +{ + public class MsgContent + { + /// + /// 消息内容。当接收方为 iOS 或 Android 后台在线时,作为离线推送的文本展示。 + /// + public string Text { get; set; } + } + + public class MsgBody + { + /// + /// 消息元素类别;目前支持的消息对象包括:TIMTextElem(文本消息),TIMLocationElem(位置消息),TIMFaceElem(表情消息),TIMCustomElem(自定义消息),TIMSoundElem(语音消息),TIMImageElem(图像消息),TIMFileElem(文件消息),TIMVideoFileElem(视频消息)。 + /// + public string MsgType { get; set; } = "TIMCustomElem";// "TIMTextElem"; + /// + /// + /// + public MsgContent MsgContent { get; set; } + } + + public class SendMsgReques + { + /// + /// 1消息同步至发送方 2消息不同步至发送方 + /// + public int SyncOtherMachine { get; set; } + /// + /// 消息接收方 UserID + /// + public string To_Account { get; set; } + /// + /// 消息发送方 UserID null表示管理员 发送 + /// + public string? From_Account { get; set; } + /// + /// + /// + public int MsgSeq { get; set; } + /// + /// + /// + public long MsgRandom { get; set; } + /// + /// 消息内容 + /// + public List MsgBody { get; set; } + /// + /// + /// + public string? CloudCustomData { get; set; } + /// + /// 是否支持消息扩展 0为不支持 1为支持 + /// + public int? SupportMessageExtension { get; set; } + /// + /// 离线推送信息 + /// + public OfflinePushInfo offlinePushInfo { get; set; } + } + /// + /// 离线推送信息 + /// + public class OfflinePushInfo + { + /// + /// 0:表示推送 1:表示不离线推送 + /// + public int PushFlag { get; set; } = 0; + /// + /// 离线推送标题。 + /// + public string Title { get; set; } + /// + /// 离线推送内容 + /// + public string Desc { get; set; } + /// + /// 离线推送透传内容。由于国内各 Android 手机厂商的推送平台要求各不一样,请保证此字段为 JSON 格式,否则可能会导致收不到某些厂商的离线推送。 + /// + public string Ext { get; set; } + } + /// + /// 发送到手机的消息内容 + /// + public class SendMsgToMobileContent + { + /// + /// 标题 + /// + public string title { get; set; } + /// + /// SendMsgToMobileContentType枚举ToString() + /// + public string type { get; set; } + /// + /// 内容描述 + /// + public string desc { get; set; } + /// + /// 跳转路径 + /// + public string path { get; set; } + /// + /// 是否http链接 + /// + public bool ishttp { get; set; } + /// + /// + /// + public string summaryAbbr { get; set; } + /// + /// + /// + public string summary { get; set; } + + } + /// + /// 枚举值大于100的为http链接类型 + /// + public enum SendMsgToMobileContentType + { + /// + /// 邀请入群 + /// + invite_to_group = 0, + /// + /// 用户资料卡片 + /// + user_card = 1, + /// + /// 工作记录 + /// + history_work_record = 2, + /// + /// 协助申请 + /// + assistance_application = 3, + /// + /// 通用聊天中部提示文字 + /// + center_tip = 4, + /// + /// 布置工作提醒 + /// + assigned_work_reminders = 5, + /// + /// 工作任务评论 + /// + work_task_comment = 6, + /// + /// 日报评论 + /// + daily_report_comment = 7, + /// + /// 周报评论 + /// + week_report_comment = 8, + /// + /// 月报评论 + /// + month_report_comment = 9, + /// + /// 意见反馈 + /// + feed_back = 101, + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/TencentIM/TenantUserInfoModel.cs b/LearningOfficer.OA.Common/Dtos/TencentIM/TenantUserInfoModel.cs new file mode 100644 index 0000000..37a762c --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/TencentIM/TenantUserInfoModel.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.TencentIM +{ + public class TenantUserInfoModel + { + /// + /// 请求检查的账号的 UserID + /// + public string UserID { get; set; } + + /// + /// 单个账号的检查结果: + ///0:表示成功 + ///非0:表示失败 + /// + public int ResultCode { get; set; } + /// + /// 单个账号检查失败时的错误描述信息 + /// + public string ResultInfo { get; set; } + + /// + /// 单个账号的导入状态:Imported 表示已导入,NotImported 表示未导入 + /// + public string AccountStatus { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/TencentIM/TencentResult.cs b/LearningOfficer.OA.Common/Dtos/TencentIM/TencentResult.cs new file mode 100644 index 0000000..27e84bc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/TencentIM/TencentResult.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.TencentIM +{ + public class TencentResult + { + /// + /// 请求处理的结果: + /// OK:表示处理成功 + /// FAIL:表示失败 + /// + public string ActionStatus { get; set; } + /// + /// 错误码 + /// 0:表示成功 + /// 非0:表示失败 + /// + public int ErrorCode { get; set; } + /// + /// 详细错误信息 + /// + public string ErrorInfo { get; set; } + /// + /// 详细的客户端展示信息 + /// + public string? ErrorDisplay { get; set; } + } + + public class TenantItemResult: TencentResult + { + public List ResultItem { get; set; } + } + public class SendMsgResult : TencentResult + { + /// + /// 消息时间戳 + /// + public long MsgTime { get; set; } + /// + /// 消息唯一标识 + /// + public string MsgKey { get; set; } + /// + /// 客户端唯一标识 + /// + public string MsgId { get; set; } + /// + /// 部分发送失败的用户列表 + /// + public List? ErrorList { get; set; } + } + public class ErrorListResult + { + /// + /// 目标用户帐号 + /// + public string To_Account { get; set; } + /// + /// 错误码 + /// + public int ErrorCode { get; set; } + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/TencentIM/TencentSettingModel.cs b/LearningOfficer.OA.Common/Dtos/TencentIM/TencentSettingModel.cs new file mode 100644 index 0000000..98b6195 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/TencentIM/TencentSettingModel.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.TencentIM +{ + + public class TencentSettingModel + { + /// + /// 昵称 + /// + public string? Tag_Profile_IM_Nick { get; set; } + /// + /// 头像地址 + /// + public string? Tag_Profile_IM_Image { get; set; } + /// + /// 角色-枚举 + /// + public int? Tag_Profile_IM_Role { get; set; } + /// + /// 云校 + /// + public string? Tag_Profile_Custom_CSchool { get; set; } + /// + /// 学校 + /// + public string? Tag_Profile_Custom_School { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ToolKit/SolutionGradeViewDto.cs b/LearningOfficer.OA.Common/Dtos/ToolKit/SolutionGradeViewDto.cs new file mode 100644 index 0000000..c4f1108 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ToolKit/SolutionGradeViewDto.cs @@ -0,0 +1,35 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ToolKit +{ + public class SolutionGradeViewDto + { + /// + /// 备 注:年级名称 + /// 默认值: + /// + public string GradeName { get; set; } + + /// + /// 备 注:年级名称后缀 + /// 默认值: + /// + public string GradeNameSuffix { get; set; } + + /// + /// 年级显示名称,格式为“年级名称+年级名称后缀” + /// + public string GradeDisplayName + { + get + { + return $@"{GradeName}{GradeNameSuffix}"; + } + } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ToolKit/ToolGradeViewDto.cs b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolGradeViewDto.cs new file mode 100644 index 0000000..4941a32 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolGradeViewDto.cs @@ -0,0 +1,38 @@ +using LearningOfficer.OA.Common.Enums; +using Masuit.Tools.Systems; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ToolKit +{ + /// + /// 工具包学期视图数据传输对象 + /// + public class ToolKitSemesterViewDto + { + public long Id { get; set; } + /// + /// 备 注:工具包Id + /// 默认值: + /// + public long ToolKitId { get; set; } + + /// + /// 备 注:年级阶段 + /// 默认值: + /// + public SolutionSemesterEnum SolutionSemesterEnum { get; set; } + + public string SolutionSemesterName + { + get + { + return SolutionSemesterEnum.GetEnumDescription().Description; + } + } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadCountDto.cs b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadCountDto.cs new file mode 100644 index 0000000..72527b9 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadCountDto.cs @@ -0,0 +1,31 @@ +using AngleSharp.Io; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using Oracle.ManagedDataAccess.Client; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ToolKit +{ + /// + /// 工具包下载次数统计 + /// + public class ToolKitDownloadCountDto:PageRequest + { + + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值:null,表示全部 + /// + public ToolObjectType? ProblemObj { get; set; } + /// + /// 备 注:解决方案学期阶段枚举 初一上上半期 = 71, 初一上下半期 = 72, 初一下上半期 = 73, 初一下下半期 = 74, 初二上上半期 = 81, 初二上下半期 = 82, 初二下上半期 = 83, 初二下下半期 = 84, 初三上上半期 = 91, 初三上下半期 = 92, 初三下上半期 = 93, 初三下下半期 = 94, 高一上上半期 = 101, 高一上下半期 = 102, 高一下上半期 = 103, 高一下下半期 = 104, 高二上上半期 = 111, 高二上下半期 = 112, 高二下上半期 = 113, 高二下下半期 = 114, 高三上上半期 = 121, 高三上下半期 = 122, 高三下上半期 = 123, 高三下下半期 = 124 + /// 默认值:null 表示全部 + /// + public SolutionSemesterEnum? SolutionSemesterEnum { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadCountViewDto.cs b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadCountViewDto.cs new file mode 100644 index 0000000..503666e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadCountViewDto.cs @@ -0,0 +1,47 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ToolKit +{ + public class ToolKitDownloadCountViewDto + { + /// + /// 解决方案ID + /// + public long ProId { get; set; } + /// + /// 解决方案问题描述 + /// + public string ProblemTitle { get; set; } = null!; + /// + /// 该方案下工具包 + /// + public List ToolDetails { get; set; } + } + public class ToolKitDownloadCountDetailsViewDto + { + /// + /// 工具Id + /// + public long ToolId { get; set; } + + /// + /// 备 注:工具名称 + /// + public string ToolName { get; set; } = null!; + /// + /// 备 注:工具格式 文件后缀名 + /// 默认值: + /// + public string ToolType { get; set; } = null!; + /// + /// 下载次数 + /// + public int DownloadCount { get; set; } = 0; + } + +} diff --git a/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadLogsDto.cs b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadLogsDto.cs new file mode 100644 index 0000000..6d11418 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadLogsDto.cs @@ -0,0 +1,41 @@ +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ToolKit +{ + /// + /// 工具包下载记录 + /// + public class ToolKitDownloadLogsDto:PageRequest + { + /// + /// 解决方案ID + /// + public long ProId { get; set; } + /// + /// 工具Id + /// + public long ToolId { get; set; } + /// + /// 云校ID 默认null 表示不限 + /// + public long? CloudSchoolId { get; set; } + + /// + /// 学校ID 默认null 表示不限 + /// + public long? SchoolId { get; set; } + /// + /// 开始时间 默认null 表示不限 + /// + public DateTime? BeginTime { get; set; } + /// + /// 结束时间 默认null 表示不限 + /// + public DateTime? EndTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadLogsViewDto.cs b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadLogsViewDto.cs new file mode 100644 index 0000000..8209dcc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDownloadLogsViewDto.cs @@ -0,0 +1,36 @@ +using LearningOfficer.OA.Common.Response; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ToolKit +{ + public class ToolKitDownloadLogsViewDto + { + /// + /// 工具包名称 + /// + public string ToolName { get; set; } = null!; + /// + /// 隶属方案 + /// + public string ProblemTitle { get; set; } = null!; + /// + /// 下载记录 + /// + public PageResponse result { get; set; } + } + public class ToolKitDownloadLogsDetailsViewDto + { + /// + /// 下载人名称 + /// + public string DownloadUserName { get; set; } = null!; + /// + /// 下载时间 + /// + public DateTime DowloadTime { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDto.cs b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDto.cs new file mode 100644 index 0000000..f091305 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitDto.cs @@ -0,0 +1,124 @@ +using LearningOfficer.OA.Common.Dtos.Solution; +using LearningOfficer.OA.Common.Dtos.SysFile; +using LearningOfficer.OA.Common.Enums; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.ToolKit +{ + public class ToolKitAddDto + { + /// + /// 解决方案学期阶段枚举集合 + /// + public List SolutionSemesters { get; set; } + + /// + /// 备 注:工具名称 + /// 默认值: + /// + public string ToolName { get; set; } = null!; + + /// + /// 备 注:工具格式 文件后缀名 + /// 默认值: + /// + public string ToolType { get; set; } = null!; + + /// + /// 备 注:文件上传后的id + /// 默认值: + /// + public long SysFileId { get; set; } + + /// + /// 备 注:大小 kb + /// 默认值: + /// + public int ToolSize { get; set; } + + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + public ToolObjectType ProblemObj { get; set; } + + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + public ToolClassType ToolClassType { get; set; } + } + + public class ToolKitUpdateDto : ToolKitAddDto + { + /// + /// 备 注:工具Id + /// 默认值: + /// + public long Id { get; set; } + } + + public class ToolKitViewDto + { + public long Id { get; set; } + /// + /// 备 注:工具名称 + /// 默认值: + /// + public string ToolName { get; set; } = null!; + + /// + /// 备 注:工具格式 文件后缀名 + /// 默认值: + /// + public string ToolType { get; set; } = null!; + + /// + /// 备 注:大小 kb + /// 默认值: + /// + public int ToolSize { get; set; } + + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + public ToolObjectType ProblemObj { get; set; } + + /// + /// 备 注:最后更新时间 + /// 默认值: + /// + public DateTime UpTime { get; set; } + + /// + /// 文件信息 + /// + public SysFileViewDto Fileinfo { get; set; } + + /// + /// 备 注:添加时间 + /// 默认值: + /// + public DateTime AddTime { get; set; } + + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + public ToolClassType ToolClassType { get; set; } + + public List ToolKitSemesters { get; set; } + + + /// + /// 关联解决方案列表 + /// + public List SolutionLists { get; set; } = new(); + } +} diff --git a/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitSearchDto.cs b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitSearchDto.cs new file mode 100644 index 0000000..1d7aed0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/ToolKit/ToolKitSearchDto.cs @@ -0,0 +1,30 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Core.Entities.OA.Tool +{ + public class ToolKitSearchDto : PageRequest + { + /// + /// 工具包类型 + /// + public ToolClassType? ToolClassType { get; set; } + + /// + /// 工具包对象 + /// + public ToolObjectType? ToolObjectType { get; set; } + + /// + /// 解决方案年级id集合 + /// + public List? SolutionSemesterEnums { get; set; } + + public string? ToolName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateAppRequest.cs b/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateAppRequest.cs new file mode 100644 index 0000000..8c133bc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateAppRequest.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.UpdateApp +{ + public class UpdateAppRequest + { + + /// + /// 备 注:版本 + /// 默认值: + /// + public int Version { get; set; } + /// + /// 版本号名称 + /// + public string VersionName { get; set; } + /// + /// 版本说明 + /// + public string? Remark { get; set; } + /// + /// 备 注:文件id + /// 默认值: + /// + public long? Fileid { get; set; } + /// + /// 1:安卓APP,2:IOS APP + /// + public int? Updatetype { get; set; } + /// + /// 文件网络路径 + /// + public string? File_Path { get; set; } + /// + /// 备 注:版本是否强制升级 + /// 默认值: + /// + public bool Isforce { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateDto.cs b/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateDto.cs new file mode 100644 index 0000000..c93bd68 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateDto.cs @@ -0,0 +1,128 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.UpdateApp +{ + public class UpdateAppAddDto + { + /// + /// 备 注:版本 + /// 默认值: + /// + public int Version { get; set; } + + /// + /// 备 注:1启用 0停用 + /// 默认值: + /// + public int IsActive { get; set; } + + /// + /// 备 注:文件id + /// 默认值: + /// + public long Fileid { get; set; } + + /// + /// 文件Url + /// + public string? FileUrl { get; set; } + + + /// + /// 备 注:1:安卓APP,2:IOS APP + /// 默认值: + /// + public int Updatetype { get; set; } + + + /// + /// 备 注:版本名称 + /// 默认值: + /// + public string VersionName { get; set; } = null!; + + + /// + /// 备 注:版本说明 + /// 默认值: + /// + public string? Remark { get; set; } + + + /// + /// 备 注:版本是否强制升级 + /// 默认值: + /// + public bool Isforce { get; set; } + + } + + + public class UpdateAppUpdateDto : UpdateAppAddDto + { + public long Id { get; set; } + } + + public class UpdateAppViewDto + { + public long Id { get; set; } + + /// + /// 备 注:版本 + /// 默认值: + /// + public int Version { get; set; } + + /// + /// 备 注:1启用 0停用 + /// 默认值: + /// + public int IsActive { get; set; } + + /// + /// 备 注:文件id + /// 默认值: + /// + public long Fileid { get; set; } + + /// + /// 文件Url + /// + public string? FileUrl { get; set; } + + + /// + /// 备 注:1:安卓APP,2:IOS APP + /// 默认值: + /// + public int Updatetype { get; set; } + + + /// + /// 备 注:版本名称 + /// 默认值: + /// + public string VersionName { get; set; } = null!; + + + /// + /// 备 注:版本说明 + /// 默认值: + /// + public string? Remark { get; set; } + + + /// + /// 备 注:版本是否强制升级 + /// 默认值: + /// + public bool Isforce { get; set; } + } + + +} diff --git a/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateappResult.cs b/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateappResult.cs new file mode 100644 index 0000000..ac64b7e --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/UpdateApp/UpdateappResult.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.UpdateApp +{ + public class UpdateappResult + { + /// + /// 备 注: + /// 默认值: + /// + public long Id { get; set; } + + /// + /// 备 注:版本 + /// 默认值: + /// + public int Version { get; set; } + /// + /// 版本号 + /// + public string VersionName { get; set; } + /// + /// 版本说明 + /// + public string? Remark { get; set; } + /// + /// 二维码图片:base64 + /// + public string? Image_Base { get; set; } + /// + /// 1:安卓APP,2: IOS + /// + public int? Updatetype { get; set; } + /// + /// 1启用 0停用 + /// + public int? is_active { get; set; } + + /// + /// 备 注:文件id + /// 默认值: + /// + public long? Fileid { get; set; } + /// + /// 原文件名 + /// + public string? FileName { get; set; } + /// + /// 文件路径 + /// + public string? FilePath { get; set; } + /// + /// 备 注:文件大小(文件大小-kb,不足1kb为1kb) + /// 默认值: + /// + public long? File_size { get; set; } + /// + /// 备 注:版本是否强制升级 + /// 默认值: + /// + public bool Isforce { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/ExcelImportUserDto.cs b/LearningOfficer.OA.Common/Dtos/User/ExcelImportUserDto.cs new file mode 100644 index 0000000..a7c3ee5 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/ExcelImportUserDto.cs @@ -0,0 +1,50 @@ +using MiniExcelLibs.Attributes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + /// + /// 学习官批量导入转换对象 + /// + public class ExcelImportUserDto + { + [ExcelColumnName("姓名")] + public string RealName { get; set; } + + + [ExcelColumnName("账号")] + public string Account { get; set; } + + + [ExcelColumnName("手机号")] + public string? Phone { get; set; } + + + [ExcelColumnName("密码")] + public string Password { get; set; } + + + [ExcelColumnName("学校")] + public string SchoolName { get; set; } + + + [ExcelColumnName("学段")] + public string GradeLevel { get; set; } + + + [ExcelColumnName("毕业年份")] + public int GraduationYear { get; set; } + + + [ExcelColumnName("班级名称")] + public string ClassName { get; set; } + + + [ExcelColumnName("导入结果")] + public string ImportResult { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/FollowClassesDto.cs b/LearningOfficer.OA.Common/Dtos/User/FollowClassesDto.cs new file mode 100644 index 0000000..91cc091 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/FollowClassesDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + public class FollowClassesDto + { + public long ClassesId { get; set; } + public long SchoolId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/LearningOfficeUserDto.cs b/LearningOfficer.OA.Common/Dtos/User/LearningOfficeUserDto.cs new file mode 100644 index 0000000..f001e85 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/LearningOfficeUserDto.cs @@ -0,0 +1,202 @@ +using LearningOfficer.OA.Common.Dtos.Classes; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + /// + /// 学习官用户数据传输对象 + /// + public class LearningOfficeUserAddDto + { + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + + /// + /// 备 注:密码 + /// 默认值: + /// + public string Password { get; set; } = null!; + + /// + /// 备 注:姓名 + /// 默认值: + /// + public string RealName { get; set; } = null!; + + /// + /// 备 注:电话号码 + /// 默认值: + /// + public string? Phone { get; set; } + + /// + /// 云校id + /// + public long CloudSchoolId { get; set; } + + + /// + /// 备 注:账户状态 0禁用 1正常 + /// + public int State { get; set; } = 1; + + /// + /// 是否学习官组长 + /// + public bool IsTeamLeader { get; set; } + + /// + /// 服务班级id + /// + public List FollowClassId { get; set; } + + /// + /// 管理班级id + /// + public List ManageClassId { get; set; } + } + + /// + /// 学习官用户更新对象 + /// + public class LearningOfficeUserUpdateDto + { + public long Id { get; set; } + + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + + /// + /// 备 注:姓名 + /// 默认值: + /// + public string RealName { get; set; } = null!; + + /// + /// 备 注:电话号码 + /// 默认值: + /// + public string? Phone { get; set; } + + /// + /// 云校id + /// + public long CloudSchoolId { get; set; } + + + /// + /// 备 注:账户状态 0禁用 1正常 + /// + public int State { get; set; } = 1; + + /// + /// 是否学习官组长 + /// + public bool IsTeamLeader { get; set; } + + /// + /// 服务班级id + /// + public List FollowClassId { get; set; } + /// + /// 管理班级id + /// + public List ManageClassId { get; set; } + } + + public class LearningOfficeUserPasswordDto + { + public long Id { get; set; } + public string NewPassword { get; set; } + } + + public class LearningOfficeUserViewDto + { + public long Id { get; set; } + + + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + /// + /// 备 注:姓名 + /// 默认值: + /// + public string RealName { get; set; } = null!; + + /// + /// 备 注:电话号码 + /// 默认值: + /// + public string? Phone { get; set; } + + /// + /// 云校id + /// + public long CloudSchoolId { get; set; } + + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } + + + /// + /// 备 注:账户状态 0禁用 1正常 + /// + public int State { get; set; } = 1; + + /// + /// 是否学习官组长 + /// + public bool IsTeamLeader { get; set; } + + /// + /// 管理班级集合 + /// + public List ManageClassList { get; set; } + + /// + /// 跟课班级集合 + /// + public List FollowClassList { get; set; } + /// + /// 跟课班级数量 + /// + public int FollowClassCount { get; set; } + + /// + /// 是否导入IM + /// + public bool ImImport { get; set; } + } + + public class LearningOfficeUserSearchDto : PageRequest + { + public string? Name { get; set; } + + public string? Account { get; set; } + + /// + /// 筛选启用的账号 + /// + public bool? Enable { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/LearningOfficeUserImportDto.cs b/LearningOfficer.OA.Common/Dtos/User/LearningOfficeUserImportDto.cs new file mode 100644 index 0000000..cba2f82 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/LearningOfficeUserImportDto.cs @@ -0,0 +1,14 @@ +using Microsoft.AspNetCore.Http; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + public class LearningOfficeUserImportDto + { + public IFormFile file { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/ManageClassesDto.cs b/LearningOfficer.OA.Common/Dtos/User/ManageClassesDto.cs new file mode 100644 index 0000000..4b6bd98 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/ManageClassesDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + public class ManageClassesDto + { + public long ClassesId { get; set; } + public long SchoolId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/MinisterUserDto.cs b/LearningOfficer.OA.Common/Dtos/User/MinisterUserDto.cs new file mode 100644 index 0000000..5f9f048 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/MinisterUserDto.cs @@ -0,0 +1,143 @@ +using LearningOfficer.OA.Common.Enums; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + /// + /// 部长新增 + /// + public class MinisterUserAddDto + { + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + + /// + /// 备 注:密码 + /// 默认值: + /// + public string Password { get; set; } + + /// + /// 备 注:姓名 + /// 默认值: + /// + public string RealName { get; set; } = null!; + + /// + /// 备 注:电话号码 + /// 默认值: + /// + public string? Phone { get; set; } + + ///// + ///// 云校id + ///// + //public long CloudSchoolId { get; set; } + /// + /// 云校id + /// + public List CloudSchoolIds { get; set; } = null!; + + /// + /// 类型 + /// + public SysRoleEnum RoleEnum { get; set; } + } + + public class MinisterUserUpdateDto + { + public long Id { get; set; } + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + + + /// + /// 备 注:姓名 + /// 默认值: + /// + public string RealName { get; set; } = null!; + + /// + /// 备 注:电话号码 + /// 默认值: + /// + public string? Phone { get; set; } + + ///// + ///// 云校id + ///// + //public long CloudSchoolId { get; set; } + /// + /// 云校id + /// + public List CloudSchoolIds { get; set; } = null!; + } + + + public class MinisterUserViewDto + { + public long Id { get; set; } + + + /// + /// 备 注:账号 + /// 默认值: + /// + public string Account { get; set; } = null!; + + + /// + /// 备 注:姓名 + /// 默认值: + /// + public string RealName { get; set; } = null!; + + + /// + /// 备 注:电话号码 + /// 默认值: + /// + public string? Phone { get; set; } + + /// + /// 云校id(部长),只在列表用一下 + /// + public long CloudSchoolId { get; set; } + /// + /// 云校id + /// + public List CloudSchoolIds { get; set; }=new List(); + /// + /// 类型 + /// + public SysRoleEnum RoleEnum { get; set; } + /// + /// 云校名称(部长与总部长的) + /// + public List CloudSchoolNames { get; set; } = new List(); + //public string CloudSchoolName { get; set; } + /// + /// 是否导入IM + /// + public bool ImImport { get; set; } + } + + public class MinisterUserPasswordDto + { + public long Id { get; set; } + public string NewPassword { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/QueryAllCitiesResult.cs b/LearningOfficer.OA.Common/Dtos/User/QueryAllCitiesResult.cs new file mode 100644 index 0000000..b1be1c0 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/QueryAllCitiesResult.cs @@ -0,0 +1,74 @@ + +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + /// + /// 省市区返回结果 + /// + public class QueryAllCitiesResult + { + /// + /// 省ID + /// + public string ProvinceName { get; set; } + /// + /// 备 注:省Id + /// + public int Pid { get; set; } + /// + /// 市 + /// + public List citys { get; set; } + } + /// + /// 市 + /// + public class CityResult + { + /// + /// 备 注:市ID + /// + public int Cid { get; set; } + + /// + /// 备 注:首字母 + /// 默认值: + /// + public string Initial { get; set; } = null!; + + /// + /// 备 注:城市名称 + /// 默认值: + /// + public string Cname { get; set; } = null!; + /// + /// 区 + /// + public List regions { get; set; } + + } + /// + /// 区 + /// + public class RegionResult + { + + /// + /// 备 注:地区Id + /// 默认值: + /// + public int Rid { get; set; } + + /// + /// 备 注:地区名称 + /// 默认值: + /// + public string Rname { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/StudentRequest.cs b/LearningOfficer.OA.Common/Dtos/User/StudentRequest.cs new file mode 100644 index 0000000..3b84247 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/StudentRequest.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + public class StudentRequest + { + /// + /// 班级id + /// + public long ClassesId { get; set; } + /// + /// 用户名称 + /// + public string UserName { get; set; } + } + public class StudentRequest_V2 + { + /// + /// 学生id(添加不传) + /// + public long? Id { get; set; } + /// + /// 班级id + /// + public long ClassesId { get; set; } + /// + /// 用户名称 + /// + public string UserName { get; set; } + /// + /// 家长信息 + /// + public List? studentParentRequests { get; set; } + /// + /// 备注 + /// + public string Remark { get; set; } + } + public class StudentParentRequest + { + /// + /// 家长名称 + /// + public string ParentName { get; set; } + /// + /// 字典表-关系 + /// + public long ParentRelation { get; set; } + /// + /// 电话 + /// + public string ParentPhone { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/StudentResult.cs b/LearningOfficer.OA.Common/Dtos/User/StudentResult.cs new file mode 100644 index 0000000..7991c51 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/StudentResult.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + public class StudentResult + { + /// + /// 学生Id + /// + public long Id { get; set; } + /// + /// 学生姓名 + /// + public string Name { get; set; } = null!; + /// + /// 学生状态 + /// + public PositionRelationStatusEnum Status { get; set; } + + /// + /// 学校id + /// + public long SchoolId { get; set; } + /// + /// 学校名称 + /// + public string SchoolName { get; set; } + + /// + /// 班级名称 + /// + public string ClassName { get; set; } = null!; + /// + /// 备 注:年级 + /// 默认值: + /// + public string GradeLevel { get; set; } + + /// + /// 备 注:所属届 + /// 默认值: + /// + public int GraduationYear { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/UserAddressGetSingleResult.cs b/LearningOfficer.OA.Common/Dtos/User/UserAddressGetSingleResult.cs new file mode 100644 index 0000000..d2fd0f6 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/UserAddressGetSingleResult.cs @@ -0,0 +1,82 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + public class UserAddressGetSingleResult + { + public long Id { get; set; } + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long UserId { get; set; } + + /// + /// 备 注:收货人姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "user_name")] + public string UserName { get; set; } = null!; + + /// + /// 备 注:收货人电话 + /// 默认值: + /// + [SugarColumn(ColumnName = "user_phone")] + public string UserPhone { get; set; } = null!; + + /// + /// 备 注:是否默认(0否、1是) 一个人只有一个地址是默认 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_default")] + public int IsDefault { get; set; } + + /// + /// 备 注:省id + /// 默认值: + /// + [SugarColumn(ColumnName = "province_id")] + public int ProvinceId { get; set; } + + /// + /// 备 注:城市id + /// 默认值: + /// + [SugarColumn(ColumnName = "city_id")] + public int CityId { get; set; } + + /// + /// 备 注:地区id + /// 默认值: + /// + [SugarColumn(ColumnName = "region_id")] + public int RegionId { get; set; } + + /// + /// 备 注:详细地址 + /// 默认值: + /// + [SugarColumn(ColumnName = "address")] + public string Address { get; set; } = null!; + + /// + /// 省名称 + /// + public string ProvinceName { get; set; } + /// + /// 城市名称 + /// + public string CityName { get; set; } + /// + /// 地区名称 + /// + public string RegionName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/User/UserFoundationResult.cs b/LearningOfficer.OA.Common/Dtos/User/UserFoundationResult.cs new file mode 100644 index 0000000..5bf68b4 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/User/UserFoundationResult.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Enums; + +namespace LearningOfficer.OA.Common.Dtos.User +{ + /// + /// 用户基本表 + /// + public class UserFoundationResult + { + /// + /// 用户姓名 + /// + public string UserName { get; set; } + /// + /// 用户id + /// + public long UserId { get; set; } + /// + /// 用户角色 + /// + public SysRoleEnum RoleEnum { get; set; } + + } + public class UserAdminInfoResult : UserFoundationResult + { + + /// + /// 管理班级个数 + /// + public int? classCount { get; set; } + } + /// + /// 用户基本表 + /// + public class UserSimpleResult + { + /// + /// 用户姓名 + /// + public string RealName { get; set; } + /// + /// 用户id + /// + public long Id { get; set; } + } + public class UserSimpleInfo_HeadImageResult : UserSimpleResult + { + + /// + /// 用户头像 + /// + public string HeadImage { get; set; } + } + /// + /// 用户基本信息-电话 + /// + public class UserSimpleInfo_PhoneResult : UserSimpleResult + { + /// + /// 用户电话 + /// + public string Phone { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/V2/WorkProcess/TaskLoginfoRequest.cs b/LearningOfficer.OA.Common/Dtos/V2/WorkProcess/TaskLoginfoRequest.cs new file mode 100644 index 0000000..39477cc --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/V2/WorkProcess/TaskLoginfoRequest.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.V2.WorkProcess +{ + public class TaskLoginfoRequest + { + /// + /// 备 注:任务id + /// 默认值: + /// + public long TaskId { get; set; } + + + /// + /// 备 注:任务类型枚举 + /// 默认值: + /// + public int TaskTypeEnum { get; set; } + + + /// + /// 备 注:子任务id(具体业务里面的子表id) + /// 默认值: + /// + public long SunTaskId { get; set; } + + + + + + /// + /// 备 注:操作类型。1新增,2推进,3完成任务 + /// 默认值: + /// + public int LogType { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/V2/WorkProcess/Task_checklistCloudSchoolResult.cs b/LearningOfficer.OA.Common/Dtos/V2/WorkProcess/Task_checklistCloudSchoolResult.cs new file mode 100644 index 0000000..6da4d0d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/V2/WorkProcess/Task_checklistCloudSchoolResult.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.V2.WorkProcess +{ + public class Task_checklistCloudSchoolResult + { + + public long Id { get; set; } + /// + /// 任务类型id + /// + public long TaskTypeEnum { get; set; } + /// + /// 备 注:任务类型名称 + /// + public string TaskTypeEnumName { get; set; } = null!; + /// + /// 备 注:云校id + /// 默认值: + /// + public long? CloudSchoolId { get; set; } + /// + /// 备 注:任务指标数 + /// 默认值: + /// + public int TargetNumber { get; set; } + /// + /// 备 注:班级/通用任务类型 1班级;2通用 + /// 默认值: + /// + public int TaskType { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/OperateVideoReq.cs b/LearningOfficer.OA.Common/Dtos/Video/OperateVideoReq.cs new file mode 100644 index 0000000..3a044c8 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/OperateVideoReq.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + public class OperateVideoReq + { + /// + /// 操作类型,0下架、1上架 + /// + public int OperateType { get; set; } + + /// + /// id + /// + public List Ids { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/SyncCourseNameReq.cs b/LearningOfficer.OA.Common/Dtos/Video/SyncCourseNameReq.cs new file mode 100644 index 0000000..001c54d --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/SyncCourseNameReq.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + public class SyncCourseNameReq + { + /// + /// 课程id + /// + public long CourseId { get; set; } + + /// + /// 课程名称 + /// + public string CourseName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/UpdateVideoCollectionSeeReq.cs b/LearningOfficer.OA.Common/Dtos/Video/UpdateVideoCollectionSeeReq.cs new file mode 100644 index 0000000..992740c --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/UpdateVideoCollectionSeeReq.cs @@ -0,0 +1,84 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + public class UpdateVideoCollectionSeeReq + { + /// + /// 备 注:课程id + /// 默认值: + /// + public long CourseId { get; set; } + + /// + /// 备 注:课程名称 + /// 默认值: + /// + public string CourseName { get; set; } = null!; + + /// + /// 备 注:封面路径 + /// 默认值: + /// + public string VideosImage { get; set; } = null!; + + /// + /// 备 注:章id + /// 默认值: + /// + public long ChapterId { get; set; } + + /// + /// 备 注:章名称 + /// 默认值: + /// + public string ChapterName { get; set; } = null!; + + /// + /// 备 注:节id + /// 默认值: + /// + public long SectionId { get; set; } + + /// + /// 备 注:节名称 + /// 默认值: + /// + public string SectionName { get; set; } = null!; + + /// + /// 备 注:视频Code + /// 默认值: + /// + public string VideoCode { get; set; } = null!; + + /// + /// 备 注:视频名称 + /// 默认值: + /// + public string VideoName { get; set; } = null!; + + /// + /// 备 注:视频总时长(秒) + /// 默认值: + /// + public int VideoSecond { get; set; } + + /// + /// 备 注:视频播放地址 + /// 默认值: + /// + public string VideoUrl { get; set; } = null!; + + /// + /// 备 注:观看进度时长(秒) + /// 默认值: + /// + public int SeeSecond { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionAdminPageReq.cs b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionAdminPageReq.cs new file mode 100644 index 0000000..d894d69 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionAdminPageReq.cs @@ -0,0 +1,35 @@ +using LearningOfficer.OA.Common.Request; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + public class VideoCollectionAdminPageReq : PageRequest + { + + /// + ///合集类型(默认0免费;1积分) + /// + public int? CourseType { get; set; } + + /// + /// 上架状态(默认0未上架;1已上架) + /// + public int? CollectionStatus { get; set; } + + /// + /// 云校id + /// + public long? CloudSchool { get; set; } + + /// + /// 职级(角色)0全部 + /// + public int? RoleEnum { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionDetai.cs b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionDetai.cs new file mode 100644 index 0000000..5ff16de --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionDetai.cs @@ -0,0 +1,244 @@ +using LearningOfficer.OA.Common.Dtos.Video.ljzk; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + /// + /// 课程详情返回数据 + /// + public class GetCourseDetailRsp + { + /// + /// 视频合集详情 + /// + public VideoCollectionDetai VideoCollectionDetai { get; set; } = null; + + /// + /// 课程-节id(默认展开的并选中的节,有浏览记录来自浏览记录,没有来自第一章第一节) + /// + public long SectionId { get; set; } = 0; + + /// + /// 上次看到(字符串格式:00:00:00) + /// + public string LastSee { get; set; } = ""; + + /// + /// 视频Code(默认选中并播放的视频,有浏览记录来自浏览记录,没有来自第一章第一节第一个视频) + /// + public string VideoCode { get; set; } = ""; + + /// + /// 视频名称 + /// + public string VideoName { get; set; } = ""; + + /// + /// 视频总时长(秒) + /// + public decimal VideoSecond { get; set; } = 0; + + /// + /// 视频播放地址 + /// + public string VideoUrl { get; set; } = ""; + + + /// + /// 观看进度时长(秒) + /// + public int SeeSecond { get; set; } = 0; + + public long ViewUserCount { get; set; } = 0; + } + + /// + /// 请求蓝鲸智库的视频合集详情(合集) + /// + public class VideoCollectionDetai + { + ///// + ///// 请求蓝鲸智库的视频合集详情(合集) + ///// + ///// + ///// + //public Task GetVideoCollectionDetai(CourseDetailRequest request); + ///// + ///// 请求蓝鲸智库的内容(节)详情(章节-节) + ///// + ///// + ///// + //public Task GetVideoSectionDetai(SectionRequest request); + /// + /// 课程(合集)id + /// + public long CourseId { get; set; } + /// + /// 课程(合集)名称 + /// + public string CourseName { get; set; } = null!; + /// + /// 课程(合集)封面 + /// + public string? CourseCoverUrl { get; set; } + + /// + /// 课程列表 + /// + public List CourseChapterDetais { get; set; } + } + /// + /// 请求蓝鲸智库的视频合集详情(合集-章节) + /// + public class CourseChapterDetai + { + /// + /// 章id + /// + public long ChapterId { get; set; } + /// + /// 章名称 + /// + public string ChapterName { get; set; } = null!; + /// + /// 节列表 + /// + public List CourseSectionDetais { get; set; } + + } + /// + /// 蓝鲸智库节详情(章节-节) + /// + public class CourseSectionDetai + { + /// + /// 节id + /// + public long SectionId { get; set; } + /// + /// 节名称 + /// + public string SectionName { get; set; } = null!; + /// + /// 节视频列表 + /// + public List? sectionVideoLists { get; set; } + /// + /// 节文件列表 + /// + public List? sectionFilesLists { get; set; } + } + + /// + /// 节视频列表 + /// + public class SectionVideoList + { + /// + /// 视频id + /// + public string VideoCode { get; set; } + /// + /// 视频名称 + /// + public string VideoName { get; set; } = null!; + /// + /// 视频时长(秒) + /// + public decimal VideoDuration { get; set; } + /// + /// 视频播放地址 + /// + public string VideoUrl { get; set; } + /// + /// 视频封面 + /// + public string VideoCoverUrl { get; set; } + } + /// + /// 节文件列表 + /// + public class SectionFilesList + { + /// + /// 文件id + /// + public long FileId { get; set; } + /// + /// 文件名称 + /// + public string FileName { get; set; } = null!; + /// + /// 文件大小(kb) + /// + public decimal FileSize { get; set; } + /// + /// 文件下载地址 + /// + public string FileUrl { get; set; } = null!; + /// + /// 文件类型 文件 图片 视频 蓝鲸智库返回这三种.具体类型根据文件后缀区分 + /// + public string FileType { get; set; } = null!; + /// + /// 文件后缀 + /// + public string Exend { get; set; } + } + + public partial class PalyInfoResult + { + /// + /// 播放地址 + /// + public string Url { get; set; } + /// + /// 时长 + /// + public string Duration { get; set; } + + /// + /// 封面 + /// + public string CoverURL { get; set; } + + public List Videos { get; set; } + } + + public class VideoList + { + /// + /// 播放地址 + /// + public string Url { get; set; } + /// + /// 时长 + /// + public string Duration { get; set; } + + /// + /// 视频流清晰度定义。 FD:流畅。 + /// LD:标清。 + /// SD:高清。 + /// HD:超清。 + /// OD:原画。 + /// 2K:2K。 + /// 4K:4K。 + /// AUTO:自适应码流。 + /// + public string Definition { get; set; } + /// + /// 视频流清晰度定义 + /// + public string DefinitionName { get; set; } + /// + /// 视频流格式 mp4 m3u8。 + /// + public string Format { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionInfoEditReq.cs b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionInfoEditReq.cs new file mode 100644 index 0000000..4384002 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionInfoEditReq.cs @@ -0,0 +1,52 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + public class VideoCollectionInfoEditReq + { + /// + /// id + /// + public long Id { get; set; } = 0; + + public string CourseName { get; set; } = ""; + + /// + /// 备 注:视频合集id + /// + public long CourseId { get; set; } + + /// + /// 备 注:视频类型(默认0免费;1积分) + /// 默认值: + /// + [SugarColumn(ColumnName = "course_type")] + public int CourseType { get; set; } + + /// + /// 备 注:兑换积分 + /// 默认值: + /// + [SugarColumn(ColumnName = "change_points")] + public int ChangePoints { get; set; } + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "cloud_school")] + public List CloudSchool { get; set; } + + /// + /// 备 注:职级(角色)0全部 + /// 默认值: + /// + [SugarColumn(ColumnName = "role_enum")] + public List RoleEnum { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionListRequest.cs b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionListRequest.cs new file mode 100644 index 0000000..be6410f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionListRequest.cs @@ -0,0 +1,171 @@ + +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + + public class VideoCollectionData + { + public List Data { get; set; } = new List(); + public int Total { get; set; } + } + + /// + /// 请求蓝鲸智库的视频合集列表 + /// + public class VideoCollectionList + { + ///// + ///// 取视频合集列表 + ///// + ///// + ///// + ///// + //public Task GetVideoCollectionList(CourseRequest request); + /// + /// 合集Id + /// + public long VideoCollectionId { get; set; } + /// + /// 合集名称 + /// + public string VideoCollectionName { get; set; } + /// + /// 合集封面地址 + /// + public string? VideoCollectionImgUrl { get; set; } + /// + /// 最后更新时间 + /// + public DateTime? LastUpdateTime { get; set; } + } + /// + /// 视频合集列表组装本地合集数据 + /// + public class VideoCollectionListResult// : VideoCollectionList + { + public string VideoCollectionId { get; set; } + /// + /// 合集名称 + /// + public string VideoCollectionName { get; set; } + /// + /// 合集封面地址 + /// + public string? VideoCollectionImgUrl { get; set; } + /// + /// 最后更新时间 + /// + public DateTime? LastUpdateTime { get; set; } + + /// + /// id + /// + public long? Id { get; set; } + + /// + /// 备 注:合集类型(默认0免费;1积分) + /// 默认值: + /// + public int? CollectionType { get; set; } = 0; + + + /// + /// 备 注:入库时间 + /// 默认值: + /// + public DateTime? Addtime { get; set; } + + + /// + /// 备 注:兑换积分 + /// 默认值: + /// + public int? ChangePoints { get; set; } = 0; + + + /// + /// 备 注:云校id + /// 默认值: + /// + public long? CloudSchool { get; set; } + + + /// + /// 备 注:职级 + /// 默认值: + /// + public int? RoleEnum { get; set; } + + + /// + /// 备 注:上架状态(默认0未上架;1已上架) + /// 默认值: + /// + public int? CollectionStatus { get; set; } = 0; + + + /// + /// 备 注:最后一次操作上/下架管理员id + /// 默认值: + /// + public long? LaunchAdminUser { get; set; } + + + /// + /// 备 注:最后一次操作上/下架时间 + /// 默认值: + /// + public DateTime? LaunchAdminTime { get; set; } + + + public string? CloudSchoolName { get; set; } + + public string? RoleEnumName { get; set; } + + public string? CollectionTypeName { get; set; } + + public string? CollectionStatusName { get; set; } + + public List CloudSchoolIds { get; set; } = new List(); + public List RoleEnumIds { get; set; } = new List(); + } + + /// + /// 移动端列表页数据 + /// + public class VideoCollectionRsp : VideoCollectionList + { + + /// + /// id + /// + public long? Id { get; set; } + + /// + /// 合集类型(默认0免费;1积分,2兑换,3已兑换)。已兑换优先级最大 + /// + public int? CollectionType { get; set; } = 0; + + /// + /// 备 注:兑换积分 + /// 默认值: + /// + public int? ChangePoints { get; set; } = 0; + + /// + /// 浏览人数 + /// + public long ViewUserCount { get; set; } + + /// + /// 上次观看 + /// + public string LastSee { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionPageReq.cs b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionPageReq.cs new file mode 100644 index 0000000..a61fb9a --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionPageReq.cs @@ -0,0 +1,18 @@ +using LearningOfficer.OA.Common.Request; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + public class VideoCollectionPageReq : PageRequest + { + /// + /// 搜索关键字 + /// + public string? SearchKey { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionSeeRsp.cs b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionSeeRsp.cs new file mode 100644 index 0000000..c20abe6 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/VideoCollectionSeeRsp.cs @@ -0,0 +1,125 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video +{ + public class VideoCollectionSeeRsp + { + /// + /// 备 注:课程id + /// 默认值: + /// + [SugarColumn(ColumnName = "course_id")] + public long CourseId { get; set; } + + + /// + /// 备 注:课程名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "course_name")] + public string CourseName { get; set; } = null!; + + + /// + /// 备 注:封面路径 + /// 默认值: + /// + [SugarColumn(ColumnName = "videos_image")] + public string VideosImage { get; set; } = null!; + + + /// + /// 备 注:章id + /// 默认值: + /// + [SugarColumn(ColumnName = "chapter_id")] + public long ChapterId { get; set; } + + + /// + /// 备 注:章名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "chapter_name")] + public string ChapterName { get; set; } = null!; + + + /// + /// 备 注:节id + /// 默认值: + /// + [SugarColumn(ColumnName = "section_id")] + public long SectionId { get; set; } + + + /// + /// 备 注:节名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "section_name")] + public string SectionName { get; set; } = null!; + + + /// + /// 备 注:视频Code + /// 默认值: + /// + [SugarColumn(ColumnName = "video_code")] + public string VideoCode { get; set; } = null!; + + + /// + /// 备 注:视频名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "video_name")] + public string VideoName { get; set; } = null!; + + + /// + /// 备 注:视频总时长(秒) + /// 默认值: + /// + [SugarColumn(ColumnName = "video_second")] + public int VideoSecond { get; set; } + + + /// + /// 备 注:视频播放地址 + /// 默认值: + /// + [SugarColumn(ColumnName = "video_url")] + public string VideoUrl { get; set; } = null!; + + + /// + /// 备 注:观看进度时长(秒) + /// 默认值: + /// + [SugarColumn(ColumnName = "see_second")] + public int SeeSecond { get; set; } + + + /// + /// 备 注:观看人id + /// 默认值: + /// + [SugarColumn(ColumnName = "userid")] + public long? Userid { get; set; } + + + /// + /// 备 注:最后操作时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "lasttime")] + public DateTime Lasttime { get; set; } + + public int CollectionStatus { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/ljzk/CourseDetailRequest.cs b/LearningOfficer.OA.Common/Dtos/Video/ljzk/CourseDetailRequest.cs new file mode 100644 index 0000000..7f1969f --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/ljzk/CourseDetailRequest.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video.ljzk +{ + public class CourseDetailRequest + { + public long CourseId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/ljzk/CourseRequest.cs b/LearningOfficer.OA.Common/Dtos/Video/ljzk/CourseRequest.cs new file mode 100644 index 0000000..6eb22fa --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/ljzk/CourseRequest.cs @@ -0,0 +1,17 @@ +using LearningOfficer.OA.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video.ljzk +{ + /// + /// 请求蓝鲸智库的课程列表 + /// + public class CourseRequest : PageRequest + { + public string CourseName { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/ljzk/GetVideoCollectionSeeRep.cs b/LearningOfficer.OA.Common/Dtos/Video/ljzk/GetVideoCollectionSeeRep.cs new file mode 100644 index 0000000..a296dde --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/ljzk/GetVideoCollectionSeeRep.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video.ljzk +{ + public class GetVideoCollectionSeeRep + { + //public VideoCollectionSee videoCollectionSee { get; set; } + + } +} diff --git a/LearningOfficer.OA.Common/Dtos/Video/ljzk/SectionRequest.cs b/LearningOfficer.OA.Common/Dtos/Video/ljzk/SectionRequest.cs new file mode 100644 index 0000000..06c9c50 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/Video/ljzk/SectionRequest.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.Video.ljzk +{ + public class SectionRequest + { + public long SectionId { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/WorkStatistics/CloudSchoolWorkDataStatisticsDto.cs b/LearningOfficer.OA.Common/Dtos/WorkStatistics/CloudSchoolWorkDataStatisticsDto.cs new file mode 100644 index 0000000..f3796c9 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/WorkStatistics/CloudSchoolWorkDataStatisticsDto.cs @@ -0,0 +1,58 @@ +using LearningOfficer.OA.Common.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.WorkStatistics +{ + /// + /// 各云校数据统计 + /// + public class CloudSchoolWorkDataStatisticsDto: WorkDataStatisticsCountDto + { + /// + /// 任务类型枚举 + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + } + public class CloudSchoolWorkDataStatisticsViewDto + { + /// + /// 任务类型枚举 + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + /// + /// 任务类型中文 + /// + public string TaskTypeName { get; set; } + /// + /// 统计开始时间 格式yyyy-MM-dd + /// + public string BeginTime { get; set; } + /// + /// 统计结束时间 格式yyyy-MM-dd + /// + public string EndTime { get; set; } + /// + /// 云校数据 + /// + public List details { get; set; } = new List(); + } + public class CloudSchoolWorkDataStatisticsDetailsViewDto + { + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } = null!; + /// + /// 云校ID + /// + public long CloudSchoolId { get; set; } + /// + /// 工作数量 + /// + public int WorkCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/WorkStatistics/LearningOfficerWorkDataStatisticsDto.cs b/LearningOfficer.OA.Common/Dtos/WorkStatistics/LearningOfficerWorkDataStatisticsDto.cs new file mode 100644 index 0000000..ec9fa42 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/WorkStatistics/LearningOfficerWorkDataStatisticsDto.cs @@ -0,0 +1,71 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Response; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.WorkStatistics +{ + /// + /// 学习官工作数据统计 + /// + public class LearningOfficerWorkDataStatisticsDto : WorkDataStatisticsCountDto + { + /// + /// 任务类型枚举 + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + /// + /// 学习官名称搜索 + /// + public string? SeacherKey { get; set; } + /// + /// 学校ID + /// + public long SchoolId { get; set; } + } + public class LearningOfficerWorkDataStatisticsViewDto + { + /// + /// 任务类型枚举 + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + /// + /// 任务类型中文 + /// + public string TaskTypeName { get; set; } = null!; + /// + /// 统计开始时间 格式yyyy-MM-dd + /// + public string BeginTime { get; set; } + /// + /// 统计结束时间 格式yyyy-MM-dd + /// + public string EndTime { get; set; } + /// + /// 学校名称 + /// + public string SchoolName { get; set; } = null!; + /// + /// 学习官统计数据 + /// + public List details { get; set; } = new List(); + } + public class LearningOfficerWorkDataStatisticsDetailsViewDto + { + /// + /// 学习官ID + /// + public long UserId { get; set; } + /// + /// 学习官名称 + /// + public string RealName { get; set; } + /// + /// 工作数量 + /// + public int WorkCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/WorkStatistics/SchoolWorkDataStatisticsDto.cs b/LearningOfficer.OA.Common/Dtos/WorkStatistics/SchoolWorkDataStatisticsDto.cs new file mode 100644 index 0000000..004fac1 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/WorkStatistics/SchoolWorkDataStatisticsDto.cs @@ -0,0 +1,70 @@ +using LearningOfficer.OA.Common.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.WorkStatistics +{ + /// + /// 学校统计 + /// + public class SchoolWorkDataStatisticsDto : WorkDataStatisticsCountDto + { + /// + /// 任务类型枚举 + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + /// + /// 学校名称搜索 + /// + public string? SeacherKey { get; set; } + /// + /// 总部长统计页面-各云校统计页面跳转需要传 + /// + public long? CloudSchoolId { get; set; } + } + public class SchoolWorkDataStatisticsViewDto + { + /// + /// 任务类型枚举 + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + /// + /// 任务类型中文 + /// + public string TaskTypeName { get; set; } = null!; + /// + /// 统计开始时间 格式yyyy-MM-dd + /// + public string BeginTime { get; set; } + /// + /// 统计结束时间 格式yyyy-MM-dd + /// + public string EndTime { get; set; } + /// + /// 云校名称 + /// + public string CloudSchoolName { get; set; } = null!; + /// + /// 学校统计数据 + /// + public List details { get; set; } = new List(); + } + public class SchoolWorkDataStatisticsDetailsViewDto + { + /// + /// 学校名称 + /// + public string SchoolName { get; set; } = null!; + /// + /// 学校ID + /// + public long SchoolId { get; set; } + /// + /// 工作数量 + /// + public int WorkCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Dtos/WorkStatistics/WorkDataDetailsStatisticsDto.cs b/LearningOfficer.OA.Common/Dtos/WorkStatistics/WorkDataDetailsStatisticsDto.cs new file mode 100644 index 0000000..a7a5f44 --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/WorkStatistics/WorkDataDetailsStatisticsDto.cs @@ -0,0 +1,114 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using LearningOfficer.OA.Common.Response; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.WorkStatistics +{ + /// + /// 统计详细 + /// + public class WorkDataDetailsStatisticsDto : PageRequest + { + /// + /// 任务类型枚举 + /// + public int? TaskTypeEnum { get; set; } + /// + /// + /// + public int? Task_index_type { get; set; } + /// + /// + /// + public long? class_id { get; set; } + /// + /// 开始时间 + /// + public DateTime? BeginDate { get; set; } + /// + /// 结束时间 + /// + public DateTime? EndDate { get; set; } + /// + /// + /// + public string? Status { get; set; } + /// + /// + /// + public long? TaskUserId { get; set; } + /// + /// + /// + public int? IsSuperiorTask { get; set; } + /// + /// 所在学校 + /// + public long? SchoolId { get; set; } + } + public class WorkDataDetailsStatisticsViewDto + { + /// + /// 任务类型枚举 + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + /// + /// 任务类型中文 + /// + public string TaskTypeName { get; set; } + /// + /// 统计开始时间 格式yyyy-MM-dd + /// + public string BeginTime { get; set; } + /// + /// 统计结束时间 格式yyyy-MM-dd + /// + public string EndTime { get; set; } + /// + /// 学习官名称-统计对象 + /// + public string RealName { get; set; } + /// + /// 任务详细 + /// + public List details { get; set; } = new List(); + } + public class WorkDataDetailsStatisticsDetailsViewDto + { + /// + /// 任务ID + /// + public long Id { get; set; } + /// + /// 备 注:班级id(班级任务) + /// 默认值: + /// + public long? ClassesId { get; set; } + /// + /// 备 注:班级名称(班级任务) + /// 默认值: + /// + public string? ClassesName { get; set; } + /// + /// 备 注:任务开始时间 + /// 默认值: + /// + public DateTime StartTime { get; set; } + /// + /// 备 注:任务结束时间 + /// 默认值: + /// + public DateTime EndTime { get; set; } + /// + /// 备 注:任务标题后缀,用于展示 + /// 默认值: + /// + public string TaskTitleSuffix { get; set; } = null!; + } +} diff --git a/LearningOfficer.OA.Common/Dtos/WorkStatistics/WorkDataStatisticsCountDto.cs b/LearningOfficer.OA.Common/Dtos/WorkStatistics/WorkDataStatisticsCountDto.cs new file mode 100644 index 0000000..dd69f0b --- /dev/null +++ b/LearningOfficer.OA.Common/Dtos/WorkStatistics/WorkDataStatisticsCountDto.cs @@ -0,0 +1,42 @@ +using LearningOfficer.OA.Common.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Dtos.WorkStatistics +{ + /// + /// 工作数量数据统计 + /// + public class WorkDataStatisticsCountDto + { + /// + /// 开始时间 格式 yyyy-MM-dd + /// + public DateTime? BeginTime { get; set; } + /// + /// 结束时间 格式 yyyy-MM-dd + /// + public DateTime? EndTime { get; set; } + } + /// + /// 工作数量数据统计结果 + /// + public class WorkDataStatisticsCountViewDto + { + /// + /// 任务类型枚举 + /// + public SysTaskTypeEnums TaskTypeEnum { get; set; } + /// + /// 任务类型中文 + /// + public string TaskTypeName { get; set; } + /// + /// 工作数量 + /// + public int WorkCount { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Enums/FeedBackInfoStatusEnum.cs b/LearningOfficer.OA.Common/Enums/FeedBackInfoStatusEnum.cs new file mode 100644 index 0000000..ba2526b --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/FeedBackInfoStatusEnum.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + /// + /// 备 注:状态(默认0未确认、1已采纳、2不采纳、3重复建议) + /// 默认值: + /// + public enum FeedBackInfoStatusEnum + { + /// + /// 未确认 + /// + [EnumDescription("未确认")] + Unconfirmed = 0, + /// + /// 已采纳 + /// + [EnumDescription("已采纳")] + Accepted = 1, + /// + /// 不采纳 + /// + [EnumDescription("不采纳")] + NotAdopted = 2, + /// + /// 重复建议 + /// + [EnumDescription("重复建议")] + RepeatedSuggestion = 3 + } +} diff --git a/LearningOfficer.OA.Common/Enums/QRCodeTypeEnum.cs b/LearningOfficer.OA.Common/Enums/QRCodeTypeEnum.cs new file mode 100644 index 0000000..f599f61 --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/QRCodeTypeEnum.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + /// + /// 二维码用途类型 + /// + public enum QRCodeTypeEnum + { + /// + /// 登录到PC + /// + LoginPC + } +} diff --git a/LearningOfficer.OA.Common/Enums/QuestionType.cs b/LearningOfficer.OA.Common/Enums/QuestionType.cs new file mode 100644 index 0000000..f3357d0 --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/QuestionType.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + /// + /// 问题类别 + /// + public enum QuestionType + { + /// + /// 无(不是问题时默认0) + /// + [EnumDescription("无")] + None = 0, + /// + /// 学生 + /// + [EnumDescription("学生")] + Student = 1, + /// + /// 教师 + /// + [EnumDescription("教师")] + Teacher = 2 + } +} diff --git a/LearningOfficer.OA.Common/Enums/SolutionSemesterEnum.cs b/LearningOfficer.OA.Common/Enums/SolutionSemesterEnum.cs new file mode 100644 index 0000000..2010b97 --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/SolutionSemesterEnum.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + /// + /// 解决方案及工具包使用年级枚举 + /// + public enum SolutionSemesterEnum + { + None = 0, + + //[EnumDescription("初一上上半期")] + //G7S1P1 = 71, + //[EnumDescription("初一上下半期")] + //G7S1P2 = 72, + //[EnumDescription("初一下上半期")] + //G7S2P1 = 73, + //[EnumDescription("初一下下半期")] + //G7S2P2 = 74, + + //[EnumDescription("初二上上半期")] + //G8S1P1 = 81, + //[EnumDescription("初二上下半期")] + //G8S1P2 = 82, + //[EnumDescription("初二下上半期")] + //G8S2P1 = 83, + //[EnumDescription("初二下下半期")] + //G8S2P2 = 84, + + //[EnumDescription("初三上上半期")] + //G9S1P1 = 91, + //[EnumDescription("初三上下半期")] + //G9S1P2 = 92, + //[EnumDescription("初三下上半期")] + //G9S2P1 = 93, + //[EnumDescription("初三下下半期")] + //G9S2P2 = 94, + + [EnumDescription("高一上上半期")] + G10S1P1 = 101, + [EnumDescription("高一上下半期")] + G10S1P2 = 102, + [EnumDescription("高一下上半期")] + G10S2P1 = 103, + [EnumDescription("高一下下半期")] + G10S2P2 = 104, + + [EnumDescription("高二上上半期")] + G11S1P1 = 111, + [EnumDescription("高二上下半期")] + G11S1P2 = 112, + [EnumDescription("高二下上半期")] + G11S2P1 = 113, + [EnumDescription("高二下下半期")] + G11S2P2 = 114, + + [EnumDescription("高三上上半期")] + G12S1P1 = 121, + [EnumDescription("高三上下半期")] + G12S1P2 = 122, + [EnumDescription("高三下上半期")] + G12S2P1 = 123, + [EnumDescription("高三下下半期")] + G12S2P2 = 124 + } +} diff --git a/LearningOfficer.OA.Common/Enums/SysRoleEnum.cs b/LearningOfficer.OA.Common/Enums/SysRoleEnum.cs new file mode 100644 index 0000000..e899c21 --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/SysRoleEnum.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + /// + /// 系统角色枚举 + /// + public enum SysRoleEnum + { + /// + /// 超级管理员 + /// + [Description("超级管理员")] + SuperAdmin = 1, + /// + /// 云校管理员 + /// + [Description("云校管理员")] + CloudSchoolAdmin = 2, + /// + /// 运营管理员 + /// + OperationAdmin = 3, + /// + /// 总部长 + /// + [Description("总部长")] + GeneralMinisterAdmin = 1000, + /// + /// 部长 + /// + [Description("部长")] + MinisterAdmin = 1001, + /// + /// 组长 + /// + [Description("组长")] + TeamLeader = 1002, + /// + /// 学习官 + /// + [Description("学习官")] + LearningOfficer = 1003, + } +} diff --git a/LearningOfficer.OA.Common/Enums/SysTaskType.cs b/LearningOfficer.OA.Common/Enums/SysTaskType.cs new file mode 100644 index 0000000..1d93617 --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/SysTaskType.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + /// + /// 任务类型枚举 + /// + public enum SysTaskTypeEnums + { + /// + /// 学习行为习惯全面抽查 + /// + [EnumDescription("学习行为习惯全面抽查")] + SPOT_CHECK = 1, + + /// + /// 更新文创内容 + /// + [EnumDescription("更新文创内容")] + CULTURAL = 2, + + /// + /// 开展班干部会议 + /// + [EnumDescription("开展班干部会议")] + CLASS_CADRE_MEETING, + + /// + /// 一对一学生谈话 + /// + [EnumDescription("一对一学生谈话")] + STUDENT_TALK, + + + /// + /// 双师课程跟课 + /// + [EnumDescription("双师课程跟课")] + FOLLOW_CLASS, + + /// + /// 教师行为观察 + /// + [EnumDescription("教师行为观察")] + TEACHER_BEHAVIOR_OBSERVATION, + /// + /// 参加会议 + /// + [EnumDescription("参加会议")] + MEETING, + + /// + /// 学科辅助 + /// + [EnumDescription("学科辅助")] + COACH_SUBJECT, + + /// + /// 数据收集 + /// + [EnumDescription("数据收集")] + DATA_COLLECTION, + + /// + /// 召开班会 + /// + [EnumDescription("召开班会")] + CLASS_MEETING, + /// + /// 教师谈话 + /// + [EnumDescription("教师谈话")] + TEACHER_TALK, + + + /// + /// 其他工作 + /// + [EnumDescription("其他工作")] + OTHER_WORK, + /// + /// 班级活动 + /// + [EnumDescription("班级活动")] + CLASS_ACTIVITY, + + } +} diff --git a/LearningOfficer.OA.Common/Enums/TeachingLevelEnum.cs b/LearningOfficer.OA.Common/Enums/TeachingLevelEnum.cs new file mode 100644 index 0000000..4fa3fef --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/TeachingLevelEnum.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + /// + /// 班级教学层次枚举 + /// + public enum TeachingLevelEnum + { + /// + /// 普通本科 + /// + NormalUndergraduate = 1, + /// + /// 重点本科 + /// + KeyPointsUndergraduate = 2 + } +} diff --git a/LearningOfficer.OA.Common/Enums/ToolClassType.cs b/LearningOfficer.OA.Common/Enums/ToolClassType.cs new file mode 100644 index 0000000..dbe209b --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/ToolClassType.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + public enum ToolClassType + { + /// + /// 普通本科 + /// + [EnumDescription("本科班")] + NormalUndergraduate = 1, + /// + /// 重点本科 + /// + [EnumDescription("重本班")] + KeyPointsUndergraduate = 2, + + /// + /// 全部 + /// + [EnumDescription("全适用")] + All = 3 + } +} diff --git a/LearningOfficer.OA.Common/Enums/ToolObjectType.cs b/LearningOfficer.OA.Common/Enums/ToolObjectType.cs new file mode 100644 index 0000000..aef9e5d --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/ToolObjectType.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + /// + /// 工具对象类型枚举 + /// + public enum ToolObjectType + { + /// + /// 学校 + /// + [EnumDescription("学校")] + School = 1, + /// + /// 教师 + /// + [EnumDescription("教师")] + Teacher = 2, + /// + /// 学生 + /// + [EnumDescription("学生")] + Student = 3 + + } +} diff --git a/LearningOfficer.OA.Common/Enums/UserTypeEnum.cs b/LearningOfficer.OA.Common/Enums/UserTypeEnum.cs new file mode 100644 index 0000000..86c7f1d --- /dev/null +++ b/LearningOfficer.OA.Common/Enums/UserTypeEnum.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Enums +{ + ///// + ///// 用户类型 + ///// + //public enum UserTypeEnum + //{ + // 学生 = 1, + // 教师 = 2, + // 助教 = 10, + // 管理员 = 15, + // 学习官 = 20, + // 其他 = 999, + //} +} diff --git a/LearningOfficer.OA.Common/Exceptions/BusinessExcpetion.cs b/LearningOfficer.OA.Common/Exceptions/BusinessExcpetion.cs new file mode 100644 index 0000000..b38bedc --- /dev/null +++ b/LearningOfficer.OA.Common/Exceptions/BusinessExcpetion.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Exceptions +{ + /// + /// 业务异常 + /// + public class BusinessException : Exception + { + + public BusinessExceptionCode ErrorCode { get; private set; } + public object BussinessExceptionData { get; private set; } + + public BusinessException(string message, object friendlyData = null, BusinessExceptionCode errorCode = BusinessExceptionCode.BussinessError) : base(message) + { + ErrorCode = errorCode; + BussinessExceptionData = friendlyData; + } + } + + /// + /// 业务异常码 + /// + public enum BusinessExceptionCode + { + /// + /// 业务异常码 + /// + BussinessError = 1000, + + /// + /// 程序异常码 + /// + AppError = 500, + + /// + /// 访问令牌异常码 + /// + AccessTokenError = 401, + + /// + /// 访问令牌被顶号异常码 + /// + AccessTokenTopNumberError = 402, + } +} diff --git a/LearningOfficer.OA.Common/Helpers/AccountHelper.cs b/LearningOfficer.OA.Common/Helpers/AccountHelper.cs new file mode 100644 index 0000000..9e0698b --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/AccountHelper.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Helpers +{ + public class AccountHelper + { + /// + /// 获取随机生成的账号 + /// + /// + public static string GetAutoAccount() + { + string accountHead = "qx"; + + Random random = new Random(); + int randomNumber = random.Next(10000000, 100000000); + accountHead += randomNumber.ToString(); + return accountHead; + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/AesEncryptHelper.cs b/LearningOfficer.OA.Common/Helpers/AesEncryptHelper.cs new file mode 100644 index 0000000..6c4461a --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/AesEncryptHelper.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.IO.Compression; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Helpers +{ + public static class AesEncryptHelper + { + static string key = "ThisIsAVerySecre"; + static string iv = "16ByteIV12345678"; + + // 使用CBC模式加密并返回Base64字符串 + public static string EncryptToShortString(string plainText) + { + using (Aes aesAlg = Aes.Create()) + { + aesAlg.Key = Encoding.UTF8.GetBytes(key); + aesAlg.IV = Encoding.UTF8.GetBytes(iv); + aesAlg.Mode = CipherMode.CBC; + aesAlg.Padding = PaddingMode.PKCS7; + + ICryptoTransform encryptor = aesAlg.CreateEncryptor(); + byte[] encryptedBytes = encryptor.TransformFinalBlock( + Encoding.UTF8.GetBytes(plainText), 0, plainText.Length); + + return Convert.ToBase64String(encryptedBytes); + } + } + + // 解密Base64加密字符串 + public static string DecryptFromShortString(string cipherText) + { + using (Aes aesAlg = Aes.Create()) + { + aesAlg.Key = Encoding.UTF8.GetBytes(key); + aesAlg.IV = Encoding.UTF8.GetBytes(iv); + aesAlg.Mode = CipherMode.CBC; + aesAlg.Padding = PaddingMode.PKCS7; + + ICryptoTransform decryptor = aesAlg.CreateDecryptor(); + byte[] cipherBytes = Convert.FromBase64String(cipherText); + byte[] decryptedBytes = decryptor.TransformFinalBlock( + cipherBytes, 0, cipherBytes.Length); + + return Encoding.UTF8.GetString(decryptedBytes); + } + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/AliyunOssHelper.cs b/LearningOfficer.OA.Common/Helpers/AliyunOssHelper.cs new file mode 100644 index 0000000..272a7d4 --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/AliyunOssHelper.cs @@ -0,0 +1,52 @@ +using Aliyun.OSS; +using Aliyun.OSS.Common; +using Castle.Core.Logging; +using LearningOfficer.OA.Common.Attributes; +using LearningOfficer.OA.Common.Dtos.ALiYun; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.AccessControl; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Helpers +{ + [Inject(Lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient)] + public class AliyunOssHelper + { + private readonly IOptionsMonitor ossConfig; + private readonly ILogger logger; + + public AliyunOssHelper(IOptionsMonitor ossConfig, + ILogger logger) + { + this.ossConfig = ossConfig; + this.logger = logger; + } + + public string UploadByStream(Stream stream, string fileName) + { + try + { + var client = new OssClient(ossConfig.CurrentValue.Endpoint, ossConfig.CurrentValue.AccessKeyId, ossConfig.CurrentValue.AccessKeySecret, new ClientConfiguration() + { + SignatureVersion = SignatureVersion.V4 + }); + client.SetRegion("cn-chengdu"); + client.PutObject(ossConfig.CurrentValue.BucketName, fileName, stream); + + return $"https://{ossConfig.CurrentValue.BucketName}.{ossConfig.CurrentValue.Endpoint}/{fileName.TrimStart('/')}"; + } + catch (Exception ex) + { + logger.LogError("AliyunOssHelper UploadByStream Error:{0}", ex.Message); + } + + return string.Empty; + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/ExceptionNotice.cs b/LearningOfficer.OA.Common/Helpers/ExceptionNotice.cs new file mode 100644 index 0000000..b94355f --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/ExceptionNotice.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http.Json; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Helpers +{ + /// + /// 异常通知 + /// + public class ExceptionNotice + { + private static HttpClient httpClient = new HttpClient() + { + BaseAddress = new Uri("https://oapi.dingtalk.com/robot/send?access_token=339d1f43d3b2a084abaa77871ddd187b613206149962d844adf37a46a14359a1"), + }; + + /// + /// 发送异常信息 + /// + /// 异常 + /// 异常来源(用于显示) + /// + public static async Task SendAsync(Exception exp, string expSrc) + { + var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development"; + if (env == "Development") + { + Console.WriteLine("*************** Excpetion ***************"); + Console.WriteLine(exp.Message, exp); + Console.WriteLine("*************** Excpetion ***************"); + return true; + } + + var reponse = await httpClient.PostAsync(string.Empty, JsonContent.Create(new + { + msgtype = "markdown", + markdown = new + { + title = "Mobile.API抛出异常", + text = $"Mobile.API异常.描述:{exp.Message}\n详情:{exp}" + }, + })); + return reponse.IsSuccessStatusCode; + + } + + } +} diff --git a/LearningOfficer.OA.Common/Helpers/JwtHelper.cs b/LearningOfficer.OA.Common/Helpers/JwtHelper.cs new file mode 100644 index 0000000..c68ede9 --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/JwtHelper.cs @@ -0,0 +1,59 @@ +using Microsoft.IdentityModel.Tokens; +using System; +using System.Collections.Generic; +using System.IdentityModel.Tokens.Jwt; +using System.Linq; +using System.Security.Claims; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Helpers +{ + public class JwtHelper + { + /// + /// 生成token + /// + /// + /// + /// + /// + /// + /// + /// + public static string CreateToken(string uid, string secretKey, string issuer, string audience, double expires, List claims = null) + { + if (claims.IsNullOrEmpty()) + claims = new(); + claims.AddRange(new List + { + new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), + new Claim(ClaimTypes.NameIdentifier, uid), + }); + + // 2. 从 appsettings.json 中读取SecretKey + var secret = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)); + + // 3. 选择加密算法 + var algorithm = SecurityAlgorithms.HmacSha256; + + // 4. 生成Credentials + var signingCredentials = new SigningCredentials(secret, algorithm); + + // 5. 根据以上,生成token + var jwtSecurityToken = new JwtSecurityToken( + issuer, //Issuer + audience, //Audience + claims, //Claims, + DateTime.Now, //notBefore + DateTime.Now.AddSeconds(expires), //expires + signingCredentials //Credentials + ); + + // 6. 将token变为string + var token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken); + + return token; + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/LiveSystemHelper.cs b/LearningOfficer.OA.Common/Helpers/LiveSystemHelper.cs new file mode 100644 index 0000000..45b3988 --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/LiveSystemHelper.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Attributes; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Dtos.ClassTeacher; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow; +using LearningOfficer.OA.Common.Exceptions; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Newtonsoft.Json; + +namespace LearningOfficer.OA.Common.Helpers +{ + /// + /// 李春波系统对接 + /// + [Inject(Lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient)] + public class LiveSystemHelper + { + private readonly IOptionsMonitor _classCourseOptionsMonitor; + private readonly ILogger _logger; + + public LiveSystemHelper(IOptionsMonitor classCourseOptionsMonitor, + ILogger logger) + { + this._classCourseOptionsMonitor = classCourseOptionsMonitor; + this._logger = logger; + } + /// + /// 根据时间获取当周课程表(时间不传默认一周) + /// + /// 班级id必传 + /// + /// + /// + /// + public async Task> GetWeekCourseTable(long ClassId, DateTime? StartTime, DateTime? EndTime) + { + var classCourseUrl = _classCourseOptionsMonitor.CurrentValue; + var url = classCourseUrl.UrlHead + "api/yangqiang/ClassCourseTable/coursetables?ClassId=" + ClassId; + if (StartTime != null) + { + url = url + "&StartTime=" + StartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); + } + if (EndTime != null) + { + url = url + "&EndTime=" + EndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); + } + RestSharpHelper restSharp = new RestSharpHelper(); + var resultString = await restSharp.GetAsync(url); + var result = JsonConvert.DeserializeObject>>(resultString); + if (result == null || result.code != 200) + { + throw new BusinessException("获取课程表失败"); + } + return result.data; + } + /// + /// 根据课程ID获取课程详情 + /// + /// + /// + /// + public async Task GetCourseWeekDetail(long ClassCourseId) + { + var classCourseUrl = _classCourseOptionsMonitor.CurrentValue; + var url = classCourseUrl.UrlHead + "api/yangqiang/ClassCourseTable/coursdetailss?classCourseId=" + ClassCourseId; + RestSharpHelper restSharp = new RestSharpHelper(); + var resultString = await restSharp.GetAsync(url); + var result = JsonConvert.DeserializeObject>(resultString); + if (result == null || result.code != 200) + { + throw new BusinessException("获取课程详情失败"); + } + return result.data; + } + /// + /// 根据班级ID获取班级科目教师列表 + /// + /// + /// + /// + public async Task> GetClassTeachersByClassId(long classId) + { + var classCourseUrl = _classCourseOptionsMonitor.CurrentValue; + var url = classCourseUrl.UrlHead + "api/yangqiang/ClassCourseTable/classteachers?classId=" + classId; + RestSharpHelper restSharp = new RestSharpHelper(); + var resultString = await restSharp.GetAsync(url); + var result = JsonConvert.DeserializeObject>>(resultString); + if (result == null || result.code != 200) + { + throw new BusinessException("获取课程详情失败"); + } + return result.data; + } + /// + /// 修改课程 + /// + /// + /// + /// + public async Task UpdateClassCourseTable(ClassCourseTableRequest request) + { + var classCourseUrl = _classCourseOptionsMonitor.CurrentValue; + var url = classCourseUrl.UrlHead + "api/yangqiang/ClassCourseTable/update"; + RestSharpHelper restSharp = new RestSharpHelper(); + var resultString = await restSharp.PostAsync(url, request); + var result = JsonConvert.DeserializeObject>(resultString); + if (result == null || result.code != 200) + { + throw new BusinessException("更新课表失败,"+ result?.message); + } + return true; + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/MD5EncryptionHelper.cs b/LearningOfficer.OA.Common/Helpers/MD5EncryptionHelper.cs new file mode 100644 index 0000000..29fd8bc --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/MD5EncryptionHelper.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Helpers +{ + /// + /// MD5帮助类 + /// + public static class MD5EncryptionHelper + { + /// + /// MD5字符串加密 + /// + /// + /// 加密后字符串 + public static string MD5Encryption(string txt) + { + using (MD5 mi = MD5.Create()) + { + byte[] buffer = Encoding.Default.GetBytes(txt); + //开始加密 + byte[] newBuffer = mi.ComputeHash(buffer); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < newBuffer.Length; i++) + { + sb.Append(newBuffer[i].ToString("x2")); + } + return sb.ToString().ToUpper(); ; + } + } + + } +} diff --git a/LearningOfficer.OA.Common/Helpers/QRCoderHelper.cs b/LearningOfficer.OA.Common/Helpers/QRCoderHelper.cs new file mode 100644 index 0000000..f46d355 --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/QRCoderHelper.cs @@ -0,0 +1,39 @@ +using QRCoder; + +namespace LearningOfficer.OA.Common.Helpers +{ + /// + /// 二维码生成器 + /// + public class QRCoderHelper + { + /// + /// 生成二维码的 URL + /// + /// 网络路径 + /// 二维码图片的base64字符串 + public static string GenerateQRCodeUrl(string filePath) + { + + if (string.IsNullOrWhiteSpace(filePath)) + { + throw new ArgumentException("文件路径不能为空", nameof(filePath)); + } + + using (var qrGenerator = new QRCodeGenerator()) + { + // 生成二维码数据 + var qrCodeData = qrGenerator.CreateQrCode(filePath, QRCodeGenerator.ECCLevel.Q); + + // 使用 PngByteQRCode 生成二维码字节数组 + var pngByteQRCode = new PngByteQRCode(qrCodeData); + var qrCodeBytes = pngByteQRCode.GetGraphic(20); + + // 将字节数组转换为 Base64 字符串 + var base64String = Convert.ToBase64String(qrCodeBytes); + return $"data:image/png;base64,{base64String}"; + + } + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/RestSharpHelper.cs b/LearningOfficer.OA.Common/Helpers/RestSharpHelper.cs new file mode 100644 index 0000000..18f4b90 --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/RestSharpHelper.cs @@ -0,0 +1,123 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RestSharp; + +namespace LearningOfficer.OA.Common.Helpers +{ + /// + /// RestSharpHelper + /// + public class RestSharpHelper + { + + private readonly RestClient _client; + + /// + /// 构造函数,初始化 RestClient + /// + public RestSharpHelper() + { + _client = new RestClient(); + } + + /// + /// 发送 GET 请求 + /// + /// 完整的请求 URL + /// 请求头 + /// 响应数据 + public async Task GetAsync(string url, Dictionary? headers = null) + { + var request = new RestRequest(url, Method.Get); + AddHeaders(request, headers); + + var response = await _client.ExecuteAsync(request); + return HandleResponse(response); + } + + /// + /// 发送 POST 请求 + /// + /// 完整的请求 URL + /// 请求体 + /// 请求头 + /// 响应数据 + public async Task PostAsync(string url, object body, Dictionary? headers = null) + { + var request = new RestRequest(url, Method.Post); + AddHeaders(request, headers); + request.AddBody(body); + + var response = await _client.ExecuteAsync(request); + return HandleResponse(response); + } + + /// + /// 发送 POST 请求 + /// + /// 完整的请求 URL + /// 请求体 + /// 请求头 + /// 响应数据 + public async Task PostByJsonBodyAsync(string url, object body, Dictionary? headers = null) + { + var request = new RestRequest(url, Method.Post); + AddHeaders(request, headers); + request.AddJsonBody(body); + + var response = await _client.ExecuteAsync(request); + return HandleResponse(response); + } + + /// + /// 发送 PUT 请求 + /// + /// 完整的请求 URL + /// 请求体 + /// 请求头 + /// 响应数据 + public async Task PutAsync(string url, object body, Dictionary? headers = null) + { + var request = new RestRequest(url, Method.Put); + AddHeaders(request, headers); + request.AddJsonBody(body); + + var response = await _client.ExecuteAsync(request); + return HandleResponse(response); + } + + /// + /// 添加请求头 + /// + /// RestSharp 请求对象 + /// 请求头 + private void AddHeaders(RestRequest request, Dictionary? headers) + { + if (headers != null) + { + foreach (var header in headers) + { + request.AddHeader(header.Key, header.Value); + } + } + } + + /// + /// 处理响应 + /// + /// RestSharp 响应对象 + /// 响应数据 + /// 当响应失败时抛出异常 + private string HandleResponse(RestResponse response) + { + if (response.IsSuccessful && response.Content != null) + { + return response.Content; + } + + throw new Exception($"请求失败: {response.StatusCode}, 错误信息: {response.ErrorMessage ?? response.Content}"); + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/SolutionToolGradeHelper.cs b/LearningOfficer.OA.Common/Helpers/SolutionToolGradeHelper.cs new file mode 100644 index 0000000..5310b4e --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/SolutionToolGradeHelper.cs @@ -0,0 +1,119 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Exceptions; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model.Common; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Common.Helpers +{ + /// + /// 解决方案工具年级转换帮助类 + /// + public class SolutionToolGradeHelper + { + public static SolutionSemesterEnum ConvertToSolutionToolGradeEnum(string gradeLevel, int graduationYear) + { + var grade = GradeHelper.GetGradeByStudentGradeBase(gradeLevel, graduationYear); + if (string.IsNullOrWhiteSpace(grade) || grade.Contains("届") || gradeLevel == GradeLevelEnum.小.ToString()) + { + return SolutionSemesterEnum.None; + } + + var gradeValue = GetGradeValue(gradeLevel, graduationYear); + if (gradeValue == 0) + { + return SolutionSemesterEnum.None; + } + + var semesterValue = GetSemesterValue(); + + + return (SolutionSemesterEnum)(gradeValue + semesterValue); + } + + + /// + /// 获取年级的基础值 + /// + /// + /// + /// + /// + private static int GetGradeValue(string gradeLevel, int graduationYear) + { + var now = DateTime.Now; + + // 获取当前年份与毕业年份的差值 + var diffYear = graduationYear - now.Year; + if (diffYear < 0 || (diffYear == 0 && now.Date > new DateTime(now.Year, 8, 1))) + { + // 如果毕业年份小于当前年份,或者毕业年份为当前年份但当前日期在8月1日之后,代表已毕业,则返回0 + return 0; + } + // 取绝对值 + diffYear = Math.Abs(diffYear); + if (now.Date > new DateTime(now.Year, 8, 1)) + { + // 如果当前日期在8月31日之后,说明已经进入新学年 + diffYear--; + } + diffYear = diffYear * 10; + + var baseYearValue = 0; + switch (gradeLevel) + { + case "初": + baseYearValue = 90; + break; + case "高": + baseYearValue = 120; + break; + default: + throw new BusinessException("未知年级值,年级转换值失败"); + } + // 获取年级值 + return baseYearValue - diffYear; + } + + /// + /// 获取学期阶段基础值 + /// + /// + private static int GetSemesterValue() + { + DateTime now = DateTime.Today; + int month = now.Month; + int day = now.Day; + + // 1月直接返回4 + if (month == 1) + { + return 2; + } + // 2月、3月 或 4月1-25日 返回1 + else if ((month == 2 || month == 3) || (month == 4 && day <= 25)) + { + return 3; + } + // 4月26日-7月31日 返回2 + else if ((month == 4 && day >= 26) || (month >= 5 && month <= 7)) + { + return 4; + } + // 8月、 9月、10月 或 11月1-8日 返回3 + else if ((month == 8 || month == 9 || month == 10) || (month == 11 && day <= 8)) + { + return 1; + } + // 剩余情况(11月9日-12月31日)返回4 + else + { + return 2; + } + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/TLSSigAPIv2.cs b/LearningOfficer.OA.Common/Helpers/TLSSigAPIv2.cs new file mode 100644 index 0000000..e39d3af --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/TLSSigAPIv2.cs @@ -0,0 +1,251 @@ +using System; +using System.IO; +using System.Text; +using System.Security.Cryptography; +using ComponentAce.Compression.Libs.zlib; + + +namespace LearningOfficer.OA.Common.Helpers +{ + public class TLSSigAPIv2 + { + + private readonly int sdkappid; + private readonly string key; + + public TLSSigAPIv2(int sdkappid, string key) + { + this.sdkappid = sdkappid; + this.key = key; + } + + /** + *【功能说明】用于签发 TRTC 和 IM 服务中必须要使用的 UserSig 鉴权票据 + * + *【参数说明】 + * userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。 + * expire - UserSig 票据的过期时间,单位是秒,比如 86400 代表生成的 UserSig 票据在一天后就无法再使用了。 + */ + public string genUserSig(string userid, int expire = 180 * 86400) + { + return genUserSig(userid, expire, null, false); + } + + /** + *【功能说明】 + * 用于签发 TRTC 进房参数中可选的 PrivateMapKey 权限票据。 + * PrivateMapKey 需要跟 UserSig 一起使用,但 PrivateMapKey 比 UserSig 有更强的权限控制能力: + * - UserSig 只能控制某个 UserID 有无使用 TRTC 服务的权限,只要 UserSig 正确,其对应的 UserID 可以进出任意房间。 + * - PrivateMapKey 则是将 UserID 的权限控制的更加严格,包括能不能进入某个房间,能不能在该房间里上行音视频等等。 + * 如果要开启 PrivateMapKey 严格权限位校验,需要在【实时音视频控制台】=>【应用管理】=>【应用信息】中打开“启动权限密钥”开关。 + * + *【参数说明】 + * userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。 + * roomid - 房间号,用于指定该 userid 可以进入的房间号 + * expire - PrivateMapKey 票据的过期时间,单位是秒,比如 86400 生成的 PrivateMapKey 票据在一天后就无法再使用了。 + * privilegeMap - 权限位,使用了一个字节中的 8 个比特位,分别代表八个具体的功能权限开关: + * - 第 1 位:0000 0001 = 1,创建房间的权限 + * - 第 2 位:0000 0010 = 2,加入房间的权限 + * - 第 3 位:0000 0100 = 4,发送语音的权限 + * - 第 4 位:0000 1000 = 8,接收语音的权限 + * - 第 5 位:0001 0000 = 16,发送视频的权限 + * - 第 6 位:0010 0000 = 32,接收视频的权限 + * - 第 7 位:0100 0000 = 64,发送辅路(也就是屏幕分享)视频的权限 + * - 第 8 位:1000 0000 = 200,接收辅路(也就是屏幕分享)视频的权限 + * - privilegeMap == 1111 1111 == 255 代表该 userid 在该 roomid 房间内的所有功能权限。 + * - privilegeMap == 0010 1010 == 42 代表该 userid 拥有加入房间和接收音视频数据的权限,但不具备其他权限。 + */ + + public string genPrivateMapKey(string userid, int expire, uint roomid, uint privilegeMap) + { + byte[] userbuf = genUserBuf(userid, roomid, expire, privilegeMap, 0, ""); + System.Console.WriteLine(userbuf); + return genUserSig(userid, expire, userbuf, true); + } + /** + *【功能说明】 + * 用于签发 TRTC 进房参数中可选的 PrivateMapKey 权限票据。 + * PrivateMapKey 需要跟 UserSig 一起使用,但 PrivateMapKey 比 UserSig 有更强的权限控制能力: + * - UserSig 只能控制某个 UserID 有无使用 TRTC 服务的权限,只要 UserSig 正确,其对应的 UserID 可以进出任意房间。 + * - PrivateMapKey 则是将 UserID 的权限控制的更加严格,包括能不能进入某个房间,能不能在该房间里上行音视频等等。 + * 如果要开启 PrivateMapKey 严格权限位校验,需要在【实时音视频控制台】=>【应用管理】=>【应用信息】中打开“启动权限密钥”开关。 + * + *【参数说明】 + * userid - 用户id,限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。 + * roomstr - 房间号,用于指定该 userid 可以进入的房间号 + * expire - PrivateMapKey 票据的过期时间,单位是秒,比如 86400 生成的 PrivateMapKey 票据在一天后就无法再使用了。 + * privilegeMap - 权限位,使用了一个字节中的 8 个比特位,分别代表八个具体的功能权限开关: + * - 第 1 位:0000 0001 = 1,创建房间的权限 + * - 第 2 位:0000 0010 = 2,加入房间的权限 + * - 第 3 位:0000 0100 = 4,发送语音的权限 + * - 第 4 位:0000 1000 = 8,接收语音的权限 + * - 第 5 位:0001 0000 = 16,发送视频的权限 + * - 第 6 位:0010 0000 = 32,接收视频的权限 + * - 第 7 位:0100 0000 = 64,发送辅路(也就是屏幕分享)视频的权限 + * - 第 8 位:1000 0000 = 200,接收辅路(也就是屏幕分享)视频的权限 + * - privilegeMap == 1111 1111 == 255 代表该 userid 在该 roomid 房间内的所有功能权限。 + * - privilegeMap == 0010 1010 == 42 代表该 userid 拥有加入房间和接收音视频数据的权限,但不具备其他权限。 + */ + + public string genPrivateMapKeyWithStringRoomID(string userid, int expire, string roomstr, uint privilegeMap) + { + byte[] userbuf = genUserBuf(userid, 0, expire, privilegeMap, 0, roomstr); + System.Console.WriteLine(userbuf); + return genUserSig(userid, expire, userbuf, true); + } + private string genUserSig(string userid, int expire, byte[] userbuf, bool userBufEnabled) + { + DateTime epoch = new DateTime(1970, 1, 1); // unix 时间戳 + Int64 currTime = (Int64)(DateTime.UtcNow - epoch).TotalMilliseconds / 1000; + + string base64UserBuf; + string jsonData; + if (true == userBufEnabled) + { + base64UserBuf = Convert.ToBase64String(userbuf); + string base64sig = HMACSHA256(userid, currTime, expire, base64UserBuf, userBufEnabled); + // 没有引入 json 库,所以这里手动进行组装 + jsonData = String.Format("{{" + + "\"TLS.ver\":" + "\"2.0\"," + + "\"TLS.identifier\":" + "\"{0}\"," + + "\"TLS.sdkappid\":" + "{1}," + + "\"TLS.expire\":" + "{2}," + + "\"TLS.time\":" + "{3}," + + "\"TLS.sig\":" + "\"{4}\"," + + "\"TLS.userbuf\":" + "\"{5}\"" + + "}}", userid, sdkappid, expire, currTime, base64sig, base64UserBuf); + } + else + { + // 没有引入 json 库,所以这里手动进行组装 + string base64sig = HMACSHA256(userid, currTime, expire, "", false); + jsonData = String.Format("{{" + + "\"TLS.ver\":" + "\"2.0\"," + + "\"TLS.identifier\":" + "\"{0}\"," + + "\"TLS.sdkappid\":" + "{1}," + + "\"TLS.expire\":" + "{2}," + + "\"TLS.time\":" + "{3}," + + "\"TLS.sig\":" + "\"{4}\"" + + "}}", userid, sdkappid, expire, currTime, base64sig); + } + + byte[] buffer = Encoding.UTF8.GetBytes(jsonData); + return Convert.ToBase64String(CompressBytes(buffer)) + .Replace('+', '*').Replace('/', '-').Replace('=', '_'); + } + public byte[] genUserBuf(string account, uint dwAuthID, int dwExpTime, uint dwPrivilegeMap, uint dwAccountType, string roomStr) + { + int length = 1 + 2 + account.Length + 20; + int offset = 0; + if (roomStr.Length > 0) + length = length + 2 + roomStr.Length; + byte[] userBuf = new byte[length]; + + if (roomStr.Length > 0) + userBuf[offset++] = 1; + else + userBuf[offset++] = 0; + + userBuf[offset++] = (byte)((account.Length & 0xFF00) >> 8); + userBuf[offset++] = (byte)(account.Length & 0x00FF); + + byte[] accountByte = System.Text.Encoding.UTF8.GetBytes(account); + accountByte.CopyTo(userBuf, offset); + offset += account.Length; + + //dwSdkAppid + userBuf[offset++] = (byte)((sdkappid & 0xFF000000) >> 24); + userBuf[offset++] = (byte)((sdkappid & 0x00FF0000) >> 16); + userBuf[offset++] = (byte)((sdkappid & 0x0000FF00) >> 8); + userBuf[offset++] = (byte)(sdkappid & 0x000000FF); + + //dwAuthId + userBuf[offset++] = (byte)((dwAuthID & 0xFF000000) >> 24); + userBuf[offset++] = (byte)((dwAuthID & 0x00FF0000) >> 16); + userBuf[offset++] = (byte)((dwAuthID & 0x0000FF00) >> 8); + userBuf[offset++] = (byte)(dwAuthID & 0x000000FF); + + //time_t now = time(0); + //uint32_t expire = now + dwExpTime; + long expire = dwExpTime + (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; + userBuf[offset++] = (byte)((expire & 0xFF000000) >> 24); + userBuf[offset++] = (byte)((expire & 0x00FF0000) >> 16); + userBuf[offset++] = (byte)((expire & 0x0000FF00) >> 8); + userBuf[offset++] = (byte)(expire & 0x000000FF); + + //dwPrivilegeMap + userBuf[offset++] = (byte)((dwPrivilegeMap & 0xFF000000) >> 24); + userBuf[offset++] = (byte)((dwPrivilegeMap & 0x00FF0000) >> 16); + userBuf[offset++] = (byte)((dwPrivilegeMap & 0x0000FF00) >> 8); + userBuf[offset++] = (byte)(dwPrivilegeMap & 0x000000FF); + + //dwAccountType + userBuf[offset++] = (byte)((dwAccountType & 0xFF000000) >> 24); + userBuf[offset++] = (byte)((dwAccountType & 0x00FF0000) >> 16); + userBuf[offset++] = (byte)((dwAccountType & 0x0000FF00) >> 8); + userBuf[offset++] = (byte)(dwAccountType & 0x000000FF); + + if (roomStr.Length > 0) + { + userBuf[offset++] = (byte)((roomStr.Length & 0xFF00) >> 8); + userBuf[offset++] = (byte)(roomStr.Length & 0x00FF); + + byte[] roomStrByte = System.Text.Encoding.UTF8.GetBytes(roomStr); + roomStrByte.CopyTo(userBuf, offset); + offset += roomStr.Length; + } + return userBuf; + } + private static byte[] CompressBytes(byte[] sourceByte) + { + MemoryStream inputStream = new MemoryStream(sourceByte); + Stream outStream = CompressStream(inputStream); + byte[] outPutByteArray = new byte[outStream.Length]; + outStream.Position = 0; + outStream.Read(outPutByteArray, 0, outPutByteArray.Length); + return outPutByteArray; + } + + private static Stream CompressStream(Stream sourceStream) + { + MemoryStream streamOut = new MemoryStream(); + ZOutputStream streamZOut = new ZOutputStream(streamOut, zlibConst.Z_DEFAULT_COMPRESSION); + CopyStream(sourceStream, streamZOut); + streamZOut.finish(); + return streamOut; + } + + public static void CopyStream(System.IO.Stream input, System.IO.Stream output) + { + byte[] buffer = new byte[2000]; + int len; + while ((len = input.Read(buffer, 0, 2000)) > 0) + { + output.Write(buffer, 0, len); + } + output.Flush(); + } + + private string HMACSHA256(string identifier, long currTime, int expire, string base64UserBuf, bool userBufEnabled) + { + string rawContentToBeSigned = "TLS.identifier:" + identifier + "\n" + + "TLS.sdkappid:" + sdkappid + "\n" + + "TLS.time:" + currTime + "\n" + + "TLS.expire:" + expire + "\n"; + if (true == userBufEnabled) + { + rawContentToBeSigned += "TLS.userbuf:" + base64UserBuf + "\n"; + } + using (HMACSHA256 hmac = new HMACSHA256()) + { + UTF8Encoding encoding = new UTF8Encoding(); + Byte[] textBytes = encoding.GetBytes(rawContentToBeSigned); + Byte[] keyBytes = encoding.GetBytes(key); + Byte[] hashBytes; + using (HMACSHA256 hash = new HMACSHA256(keyBytes)) + hashBytes = hash.ComputeHash(textBytes); + return Convert.ToBase64String(hashBytes); + } + } + } +} diff --git a/LearningOfficer.OA.Common/Helpers/TencentIMHelper.cs b/LearningOfficer.OA.Common/Helpers/TencentIMHelper.cs new file mode 100644 index 0000000..b6a3b50 --- /dev/null +++ b/LearningOfficer.OA.Common/Helpers/TencentIMHelper.cs @@ -0,0 +1,206 @@ +using LearningOfficer.OA.Common.Attributes; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Dtos.TencentIM; +using LearningOfficer.OA.Common.Exceptions; +using Masuit.Tools; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Newtonsoft.Json; +using Serilog.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model; + +namespace LearningOfficer.OA.Common.Helpers +{ + /// + /// 管理员操作腾讯IM的帮助类 + /// + [Inject(Lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Transient)] + public class TencentIMAdminHelper + { + private readonly IOptionsMonitor _imConfig; + private readonly ILogger _logger; + + public TencentIMAdminHelper(IOptionsMonitor imConfig, + ILogger logger) + { + this._imConfig = imConfig; + this._logger = logger; + } + + /// + /// 获取管理员UserSig签名 + /// + /// + public string GetAdminUserSig() + { + TLSSigAPIv2 tLSSigAPIv2 = new TLSSigAPIv2( + _imConfig.CurrentValue.SDKAppID, + _imConfig.CurrentValue.Key); + return tLSSigAPIv2.genUserSig(_imConfig.CurrentValue.AdminUserId.ToString(), _imConfig.CurrentValue.ExpiredTime); + } + + /// + /// 单个账号导入 + /// + /// + /// + public async Task Account_import(Account_importModel account_ImportModel) + { + var UserSig = GetAdminUserSig(); + var avatar = string.IsNullOrWhiteSpace(account_ImportModel.FaceUrl) ? _imConfig.CurrentValue.DefaultAvater : account_ImportModel.FaceUrl; + var random = new Random().NextInt64(0, 4294967295); + var ApiUrl = _imConfig.CurrentValue.ApiHeadUrl + $"v4/im_open_login_svc/account_import?sdkappid={_imConfig.CurrentValue.SDKAppID}&identifier={_imConfig.CurrentValue.AdminUserId}&usersig={UserSig}&random={random}&contenttype=json"; + var request = new + { + UserID = account_ImportModel.UserID, + Nick = account_ImportModel.Nick, + FaceUrl = avatar + }; + var resultString = await new RestSharpHelper().PostAsync(ApiUrl, JsonConvert.SerializeObject(request)); + if (!string.IsNullOrEmpty(resultString)) + { + TencentResult result = JsonConvert.DeserializeObject(resultString); + if (result.ErrorCode == 0) + { + return true; + } + else + { + _logger.LogError($"导入账号失败,错误码:{result.ErrorCode},错误信息:{result.ErrorInfo}"); + throw new BusinessException($"账号创建错误,请联系管理员!"); + } + } + return false; + } + /// + /// 批量账号导入 + /// + /// + /// + public async Task Multiaccount_import(List account_ImportModels) + { + var UserSig = GetAdminUserSig(); + var random = new Random().NextInt64(0, 4294967295); + var ApiUrl = _imConfig.CurrentValue.ApiHeadUrl + $"v4/im_open_login_svc/multiaccount_import?sdkappid={_imConfig.CurrentValue.SDKAppID}&identifier={_imConfig.CurrentValue.AdminUserId}&usersig={UserSig}&random={random}&contenttype=json"; + var request = new + { + AccountList = account_ImportModels.Select(x => new + { + UserID = x.UserID, + Nick = x.Nick, + FaceUrl = string.IsNullOrWhiteSpace(x.FaceUrl) ? _imConfig.CurrentValue.DefaultAvater : x.FaceUrl + }).ToArray() + }; + var resultString = await new RestSharpHelper().PostAsync(ApiUrl, JsonConvert.SerializeObject(request)); + if (!string.IsNullOrEmpty(resultString)) + { + TencentResult result = JsonConvert.DeserializeObject(resultString); + if (result.ErrorCode == 0) + { + return true; + } + else + { + _logger.LogError($"导入账号失败,错误码:{result.ErrorCode},错误信息:{result.ErrorInfo}"); + throw new BusinessException($"账号创建错误,请联系管理员!"); + } + } + return false; + } + /// + /// 服务端管理员用户设置用户资料 + /// + /// 要设置的用户id + /// 要设置的用户信息 + /// + public async Task SettingPortrait(string SettingUserId, TencentSettingModel SetetingUser) + { + var UserSig = GetAdminUserSig(); + var random = new Random().NextInt64(0, 4294967295); + var ApiUrl = _imConfig.CurrentValue.ApiHeadUrl + $"v4/profile/portrait_set?sdkappid={_imConfig.CurrentValue.SDKAppID}&identifier={_imConfig.CurrentValue.AdminUserId}&usersig={UserSig}&random={random}&contenttype=json"; + + var profileItem = SetetingUser.GetType() + .GetProperties() + .Where(p => p.GetValue(SetetingUser) != null) + .Select(p => new + { + Tag = p.Name, + Value = p.GetValue(SetetingUser) + }) + .ToArray(); + var request = new + { + From_Account = SettingUserId, + ProfileItem = profileItem + }; + var resultString = await new RestSharpHelper().PostAsync(ApiUrl, JsonConvert.SerializeObject(request)); + if (!string.IsNullOrEmpty(resultString)) + { + TencentResult result = JsonConvert.DeserializeObject(resultString); + if (result.ErrorCode == 0) + { + return true; + } + else + { + _logger.LogError($"用户资料设置失败,错误码:{result.ErrorCode},错误信息:{result.ErrorInfo}"); + throw new BusinessException($"账号资料设置错误,请联系管理员!"); + } + } + return false; + + + } + + /// + /// 批量获取账号信息 + /// + /// + /// + public async Task> GetAccountInfo(params long[] userIds) + { + var UserSig = GetAdminUserSig(); + var random = new Random().NextInt64(0, 4294967295); + var ApiUrl = _imConfig.CurrentValue.ApiHeadUrl + $"v4/im_open_login_svc/account_check?sdkappid={_imConfig.CurrentValue.SDKAppID}&identifier={_imConfig.CurrentValue.AdminUserId}&usersig={UserSig}&random={random}&contenttype=json"; + + var CheckItem = userIds.ToList().ConvertAll(x => new + { + UserID = x.ToString() + }); + var request = new + { + CheckItem = CheckItem + }; + var resultString = await new RestSharpHelper().PostAsync(ApiUrl, JsonConvert.SerializeObject(request)); + if (string.IsNullOrEmpty(resultString)) + { + _logger.LogError("获取IM账号信息失败,请求失败"); + throw new BusinessException("获取IM账号信息失败"); + } + + var resultResponse = resultString.FromJson>(); + if (resultResponse.ErrorCode != 0) + { + _logger.LogError("获取IM账号信息失败," + resultResponse.ErrorInfo); + throw new BusinessException("获取IM账号信息失败," + resultResponse.ErrorInfo); + } + + var result = resultResponse.ResultItem.Where(x => x.ResultCode != 0); + var errorList = result.Select(x => $@"UserId:{x.UserID},ErrorInfo{x.ResultInfo}").ToList(); + if (errorList.Any()) + { + _logger.LogError("获取IM账号信息失败," + string.Join(",", errorList)); + throw new BusinessException("获取IM账号信息失败!"); + } + + + return resultResponse.ResultItem; + } + + } +} diff --git a/LearningOfficer.OA.Common/LearningOfficer.OA.Common.csproj b/LearningOfficer.OA.Common/LearningOfficer.OA.Common.csproj new file mode 100644 index 0000000..0245e5a --- /dev/null +++ b/LearningOfficer.OA.Common/LearningOfficer.OA.Common.csproj @@ -0,0 +1,50 @@ + + + + net8.0 + enable + enable + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/LearningOfficer.OA.Common/Request/PageRequest.cs b/LearningOfficer.OA.Common/Request/PageRequest.cs new file mode 100644 index 0000000..1d66868 --- /dev/null +++ b/LearningOfficer.OA.Common/Request/PageRequest.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Request +{ + + /// + /// 分页请求实体类 + /// + public class PageRequest + { + /// + /// 当前页 + /// + public int PageIndex { get; set; } = 1; + + /// + /// 一页条数 + /// + public int PageSize { get; set; } = 10; + + } +} diff --git a/LearningOfficer.OA.Common/Response/BaseResponse.cs b/LearningOfficer.OA.Common/Response/BaseResponse.cs new file mode 100644 index 0000000..54e5040 --- /dev/null +++ b/LearningOfficer.OA.Common/Response/BaseResponse.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Response +{ + public class BaseResponse + { + /// + /// 业务结果代码 + /// + public int code { get; set; } + + /// + /// 返回消息 + /// + public string msg { get; set; } = ""; + } + + + /// + /// 基础返回实体类 + /// + /// + public class BaseResponse : BaseResponse + { + public BaseResponse(int code, string msg = "", T data = default) + { + this.code = code; + this.msg = msg; + this.data = data; + } + + /// + /// 返回实体 + /// + public T data { get; set; } + } +} diff --git a/LearningOfficer.OA.Common/Response/PageResponse.cs b/LearningOfficer.OA.Common/Response/PageResponse.cs new file mode 100644 index 0000000..656cd99 --- /dev/null +++ b/LearningOfficer.OA.Common/Response/PageResponse.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Common.Response +{ + /// + /// 分页响应实体类 + /// + /// + public class PageResponse + { + /// + /// 总记录条数 + /// + public int Total { get; set; } + + /// + /// 响应数据 + /// + public List Items { get; set; } + } +} diff --git a/LearningOfficer.OA.Core/Entities/BaseEntity.cs b/LearningOfficer.OA.Core/Entities/BaseEntity.cs new file mode 100644 index 0000000..ab9645b --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/BaseEntity.cs @@ -0,0 +1,19 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Core.Entities +{ + /// + /// 基础数据库实体类 + /// + public class BaseEntity + { + [SugarColumn(IsPrimaryKey = true)] + public long Id { get; set; } + + } +} diff --git a/LearningOfficer.OA.Core/Entities/OA/ClassSub/Follow_classsub.cs b/LearningOfficer.OA.Core/Entities/OA/ClassSub/Follow_classsub.cs new file mode 100644 index 0000000..702ce61 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/ClassSub/Follow_classsub.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.ClassSub +{ + /// + /// 工作台-班级科目绑定表 + /// + [SugarTable("follow_classsub")] + public class Follow_classsub : BaseEntity + { + + + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long Class_id { get; set; } + + + /// + /// 备 注:科目id + /// 默认值: + /// + [SugarColumn(ColumnName = "sub_id" )] + public long Sub_id { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/ClassTeacher/Follow_teacher.cs b/LearningOfficer.OA.Core/Entities/OA/ClassTeacher/Follow_teacher.cs new file mode 100644 index 0000000..362e151 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/ClassTeacher/Follow_teacher.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.ClassTeacher +{ + /// + /// 工作台-班级教师绑定表 + /// + [SugarTable("follow_teacher")] + public class Follow_teacher : BaseEntity + { + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long ClassId { get; set; } + + + /// + /// 备 注:教师名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "teacher_name" )] + public string? TeacherName { get; set; } + + + /// + /// 备 注:科目id,0时为班主任 + /// 默认值: + /// + [SugarColumn(ColumnName = "sub_id" )] + public long SubId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/ClassesTemeInfo/ClassesTheme.cs b/LearningOfficer.OA.Core/Entities/OA/ClassesTemeInfo/ClassesTheme.cs new file mode 100644 index 0000000..8429ec4 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/ClassesTemeInfo/ClassesTheme.cs @@ -0,0 +1,53 @@ +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Core.Entities.OA.Solution; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LearningOfficer.OA.Core.Entities.OA.ClassesTemeInfo +{ + /// + /// 班级工作主题 + /// + [SugarTable("classes_theme")] + public class ClassesTheme : BaseEntity + { + /// + /// 备 注:学期 + /// 默认值: + /// + [SugarColumn(ColumnName = "semester")] + public string Semester { get; set; } = null!; + + + /// · + /// 备 注:上/下 + /// 默认值: + /// + [SugarColumn(ColumnName = "up_down")] + public string UpDown { get; set; } = null!; + + + /// + /// 备 注:月份 + /// 默认值: + /// + [SugarColumn(ColumnName = "semester_month")] + public int SemesterMonth { get; set; } + + + /// + /// 备 注:月德育主题 + /// 默认值: + /// + [SugarColumn(ColumnName = "semester_title")] + public string SemesterTitle { get; set; } = null!; + + /// + /// 关联班级工作主题目标 + /// + [Navigate(NavigateType.OneToMany, nameof(ClassesThemeObjectives.ThemeId))] + public List ClassesThemeObjectiveList { get; set; } + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/ClassesTemeInfo/ClassesThemeObjectives.cs b/LearningOfficer.OA.Core/Entities/OA/ClassesTemeInfo/ClassesThemeObjectives.cs new file mode 100644 index 0000000..a9e5870 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/ClassesTemeInfo/ClassesThemeObjectives.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.ClassesTemeInfo +{ + /// + /// 班级工作主题的目标 + /// + [SugarTable("classes_theme_objectives")] + public class ClassesThemeObjectives : BaseEntity + { + + + + + /// + /// 备 注:工作目标 + /// 默认值: + /// + [SugarColumn(ColumnName = "objectives_title" )] + public string ObjectivesTitle { get; set; } = null!; + + + /// + /// 备 注:主题id + /// 默认值: + /// + [SugarColumn(ColumnName = "theme_id" )] + public long ThemeId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Comment/CommentInfo.cs b/LearningOfficer.OA.Core/Entities/OA/Comment/CommentInfo.cs new file mode 100644 index 0000000..edebd8b --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Comment/CommentInfo.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Comment +{ + /// + /// 评论模块 + /// + [SugarTable("comment_info")] + public class CommentInfo : BaseEntity + { + + + + + /// + /// 备 注:所属类型(1:工作任务、2:日报、3:周报、4:月报) + /// 默认值: + /// + [SugarColumn(ColumnName = "com_type" )] + public int ComType { get; set; } + + + /// + /// 备 注:任务/总结 id + /// 默认值: + /// + [SugarColumn(ColumnName = "source_id" )] + public long SourceId { get; set; } + + + /// + /// 备 注:评论人姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_username" )] + public string AddUsername { get; set; } = null!; + + + /// + /// 备 注:评论人 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_userid" )] + public long AddUserid { get; set; } + + + /// + /// 备 注:评论时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:评论内容 + /// 默认值: + /// + [SugarColumn(ColumnName = "com_content" )] + public string ComContent { get; set; } = null!; + + + /// + /// 备 注:父级id(子评论),默认0为一级评论 + /// 默认值: + /// + [SugarColumn(ColumnName = "p_id" )] + public long PId { get; set; } + + + /// + /// 备 注:根id(0) + /// 默认值: + /// + [SugarColumn(ColumnName = "root_id" )] + public long RootId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumBatch.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumBatch.cs new file mode 100644 index 0000000..938c6fd --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumBatch.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 批次管理-每一批次一个id(重建一次一个id) + /// + [SugarTable("curriculum_batch")] + public class CurriculumBatch : BaseEntity + { + + + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime" )] + public DateTime Addtime { get; set; } + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "userid" )] + public long Userid { get; set; } + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id")] + public long ClassId { get; set; } + + + /// + /// 备 注:是否删除,0正常,1删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "isdel")] + public int Isdel { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumHeadtime.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumHeadtime.cs new file mode 100644 index 0000000..4868158 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumHeadtime.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 班级通用课时信息 + /// + [SugarTable("curriculum_headtime")] + public class CurriculumHeadtime : BaseEntity + { + + + /// + /// 周类型(0普通课表,1单周,2双周) + /// + [SugarColumn(ColumnName = "weektype")] + public int WeekType { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + [SugarColumn(ColumnName = "which_section" )] + public int WhichSection { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "start_time" )] + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_time" )] + public DateTime EndTime { get; set; } + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "classid" )] + public long Classid { get; set; } + + + /// + /// 备 注:批次id + /// 默认值: + /// + [SugarColumn(ColumnName = "batchid" )] + public long Batchid { get; set; } + /// + /// 备 注:模型id + /// 默认值: + /// + [SugarColumn(ColumnName = "model_id")] + public long ModelId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumInfoDetail.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumInfoDetail.cs new file mode 100644 index 0000000..9814d99 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumInfoDetail.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 课程模板的课程详情 + /// + [SugarTable("curriculum_info_detail")] + public class CurriculumInfoDetail : BaseEntity + { + + + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long ClassId { get; set; } + + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + [SugarColumn(ColumnName = "week_count" )] + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + [SugarColumn(ColumnName = "section_count" )] + public int SectionCount { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "start_time" )] + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_time" )] + public DateTime EndTime { get; set; } + + + /// + /// 备 注:该班级科目教师表id + /// 默认值: + /// + [SugarColumn(ColumnName = "sub_teacher_id" )] + public long SubTeacherId { get; set; } + + + /// + /// 备 注:批次id + /// 默认值: + /// + [SugarColumn(ColumnName = "batch_id" )] + public long BatchId { get; set; } + + + /// + /// 备 注:模板id + /// 默认值: + /// + [SugarColumn(ColumnName = "model_id" )] + public long ModelId { get; set; } + + + /// + /// 备 注:周类型(0普通课表-不分单双周,1单周,2双周) + /// 默认值: + /// + [SugarColumn(ColumnName = "week_type" )] + public int WeekType { get; set; } + + /// + /// 备 注:是否删除,0正常,1删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "isdel")] + public int Isdel { get; set; } + /// + /// 添加时间 + /// + [SugarColumn(ColumnName = "addtime")] + public DateTime AddTime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModel.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModel.cs new file mode 100644 index 0000000..ca238ae --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModel.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 课表模板 + /// + [SugarTable("curriculum_model")] + public class CurriculumModel : BaseEntity + { + + + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long ClassId { get; set; } + + + /// + /// 备 注:模板类型(1:单周(普通周);2单双周) + /// 默认值: + /// + [SugarColumn(ColumnName = "model_type" )] + public int ModelType { get; set; } + + + /// + /// 备 注:模板周类型(0普通课表-不分单双周,1单周,2双周) + /// 默认值: + /// + [SugarColumn(ColumnName = "week_type" )] + public int WeekType { get; set; } + + + /// + /// 备 注:批次id + /// 默认值: + /// + [SugarColumn(ColumnName = "batch_id" )] + public long BatchId { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime" )] + public DateTime Addtime { get; set; } + + + /// + /// 备 注:添加人 + /// 默认值: + /// + [SugarColumn(ColumnName = "userid")] + public long Userid { get; set; } + + + + /// + /// 备 注:一共几节课(默认0) + /// 默认值: + /// + [SugarColumn(ColumnName = "section_all_count")] + public int SectionAllCount { get; set; } + /// + /// 备 注:是否删除,0正常,1删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "isdel")] + public int Isdel { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModelInfo.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModelInfo.cs new file mode 100644 index 0000000..b770c2e --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModelInfo.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 模板课配置信息 + /// + [SugarTable("curriculum_model_info")] + public class CurriculumModelInfo : BaseEntity + { + + + + + /// + /// 备 注:模板id + /// 默认值: + /// + [SugarColumn(ColumnName = "model_id" )] + public long ModelId { get; set; } + + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + [SugarColumn(ColumnName = "week_count" )] + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + [SugarColumn(ColumnName = "section_count" )] + public int SectionCount { get; set; } + + + /// + /// 备 注:通用开始时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "start_time" )] + public DateTime StartTime { get; set; } + + + /// + /// 备 注:通用结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_time" )] + public DateTime EndTime { get; set; } + + + /// + /// 备 注:模板周类型(0普通课表-不分单双周,1单周,2双周) + /// 默认值: + /// + [SugarColumn(ColumnName = "week_type" )] + public int WeekType { get; set; } + + + /// + /// 备 注:0正常 1删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "isdel" )] + public int Isdel { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModelSpecial.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModelSpecial.cs new file mode 100644 index 0000000..c7562ad --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumModelSpecial.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 课表模板特殊课时间安排 + /// + [SugarTable("curriculum_model_special")] + public class CurriculumModelSpecial : BaseEntity + { + + + + + /// + /// 备 注:模板id + /// 默认值: + /// + [SugarColumn(ColumnName = "model_id" )] + public long ModelId { get; set; } + + /// + /// 备 注:第几节 + /// 默认值: + /// + [SugarColumn(ColumnName = "section_count")] + public int SectionCount { get; set; } + + /// + /// 备 注:周几 + /// 默认值: + /// + [SugarColumn(ColumnName = "week_count" )] + public int WeekCount { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "start_time" )] + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_time" )] + public DateTime EndTime { get; set; } + + + /// + /// 备 注:模板周类型(0普通课表-不分单双周,1单周,2双周) + /// 默认值: + /// + [SugarColumn(ColumnName = "week_type" )] + public int WeekType { get; set; } + + /// + /// 备 注:是否删除,0正常,1删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "isdel")] + public int Isdel { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumPostion.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumPostion.cs new file mode 100644 index 0000000..3e5d781 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumPostion.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 课表定位表 + /// + [SugarTable("curriculum_postion")] + public class CurriculumPostion : BaseEntity + { + + + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long ClassId { get; set; } + + + /// + /// 备 注:定位周开始时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "position_week_start" )] + public DateTime? PositionWeekStart { get; set; } + + + /// + /// 备 注:定位周结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "postion_week_end" )] + public DateTime? PostionWeekEnd { get; set; } + + + /// + /// 备 注:定位周类型(0普通-不区分单双周,1单周,2双周) + /// 默认值: + /// + [SugarColumn(ColumnName = "postion_week_type" )] + public int PostionWeekType { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime" )] + public DateTime Addtime { get; set; } + + + /// + /// 备 注:添加人id + /// 默认值: + /// + [SugarColumn(ColumnName = "userid" )] + public long Userid { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumPostionRequest.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumPostionRequest.cs new file mode 100644 index 0000000..1a01251 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumPostionRequest.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 课程定位请求参数 + /// + public class CurriculumPostionRequest + { + + /// + /// 备 注:班级id + /// 默认值: + /// + public long ClassId { get; set; } + + + /// + /// 备 注:定位周开始时间 + /// 默认值: + /// + public DateTime? PositionWeekStart { get; set; } + + + /// + /// 备 注:定位周结束时间 + /// 默认值: + /// + public DateTime? PostionWeekEnd { get; set; } + + + /// + /// 备 注:定位周类型(0普通-不区分单双周,1单周,2双周) + /// 默认值: + /// + public int PostionWeekType { get; set; } + } +} diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumSpecialWeek.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumSpecialWeek.cs new file mode 100644 index 0000000..b1935e7 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumSpecialWeek.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 课表特殊周 + /// + [SugarTable("curriculum_special_week")] + public class CurriculumSpecialWeek : BaseEntity + { + + + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "classid" )] + public long Classid { get; set; } + + + /// + /// 备 注:批次id + /// 默认值: + /// + [SugarColumn(ColumnName = "batchid" )] + public long Batchid { get; set; } + + + /// + /// 备 注:周几 + /// 默认值: + /// + [SugarColumn(ColumnName = "week_count")] + public int WeekCount { get; set; } + + + + /// + /// 备 注:模型id + /// 默认值: + /// + [SugarColumn(ColumnName = "model_id")] + public long ModelId { get; set; } + + /// + /// 周类型(0普通课表,1单周,2双周) + /// + [SugarColumn(ColumnName = "weektype")] + public int WeekType { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumSubTeacher.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumSubTeacher.cs new file mode 100644 index 0000000..abe4bfe --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumSubTeacher.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 课程-班级的科目教师绑定关联表 + /// + [SugarTable("curriculum_sub_teacher")] + public class CurriculumSubTeacher : BaseEntity + { + + + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long ClassId { get; set; } + + + /// + /// 备 注:科目id + /// 默认值: + /// + [SugarColumn(ColumnName = "sub_id" )] + public long SubId { get; set; } + + + /// + /// 备 注:科目名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "sub_name" )] + public string SubName { get; set; } = null!; + + + /// + /// 备 注:教师id + /// 默认值: + /// + [SugarColumn(ColumnName = "teacher_id" )] + public long TeacherId { get; set; } + + + /// + /// 备 注:教师名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "teacher_name" )] + public string TeacherName { get; set; } = null!; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumTimetable.cs b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumTimetable.cs new file mode 100644 index 0000000..8220c81 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Curriculum/CurriculumTimetable.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Curriculum +{ + /// + /// 生成的课表 + /// + [SugarTable("curriculum_timetable")] + public class CurriculumTimetable : BaseEntity + { + + + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long ClassId { get; set; } + + + /// + /// 备 注:日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "date" )] + public DateTime Date { get; set; } + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "start_time" )] + public DateTime StartTime { get; set; } + + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_time" )] + public DateTime EndTime { get; set; } + + + /// + /// 备 注:该班级科目教师表id + /// 默认值: + /// + [SugarColumn(ColumnName = "sub_teacher_id" )] + public long SubTeacherId { get; set; } + + + /// + /// 备 注:周几(1-7对应周一到周日) + /// 默认值: + /// + [SugarColumn(ColumnName = "week_count" )] + public int WeekCount { get; set; } + + + /// + /// 备 注:第几节 + /// 默认值: + /// + [SugarColumn(ColumnName = "section_count" )] + public int SectionCount { get; set; } + + + /// + /// 备 注:批次id + /// 默认值: + /// + [SugarColumn(ColumnName = "batchid" )] + public long Batchid { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime" )] + public DateTime Addtime { get; set; } + + + /// + /// 备 注:添加用户,自动生成为0 + /// 默认值: + /// + [SugarColumn(ColumnName = "adduser" )] + public long Adduser { get; set; } + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/FeedBack/FeedBackFiles.cs b/LearningOfficer.OA.Core/Entities/OA/FeedBack/FeedBackFiles.cs new file mode 100644 index 0000000..3eb6f2c --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/FeedBack/FeedBackFiles.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace LearningOfficer.OA.Core.Entities.OA.FeedBack +{ + /// + /// 意见反馈-文件关联表 + /// + [SugarTable("feed_back_files")] + public class FeedBackFiles: BaseEntity + { + + /// + /// 备 注:意见反馈id + /// 默认值: + /// + [SugarColumn(ColumnName="feedback_id" ) ] + public long FeedbackId { get; set; } + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName="file_id" ) ] + public long FileId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/FeedBack/FeedBackInfo.cs b/LearningOfficer.OA.Core/Entities/OA/FeedBack/FeedBackInfo.cs new file mode 100644 index 0000000..ba1f827 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/FeedBack/FeedBackInfo.cs @@ -0,0 +1,89 @@ +using LearningOfficer.OA.Common.Enums; +using Masuit.Tools.Systems; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +namespace LearningOfficer.OA.Core.Entities.OA.FeedBack +{ + /// + /// 意见反馈-主表云校、电话、姓名从用户表中查询 + /// + [SugarTable("feed_backinfo")] + public class FeedBackInfo : BaseEntity + { + + + /// + /// 备 注:建议类型(字典表-枚举值) + /// 默认值: + /// + [SugarColumn(ColumnName = "feedback_type")] + public long FeedbackType { get; set; } + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "add_userid")] + public long AddUserId { get; set; } + + /// + /// 备 注:提议时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time")] + public DateTime AddTime { get; set; } + + /// + /// 备 注:最后操作时间(如修改状态需要修改本时间) + /// 默认值: + /// + [SugarColumn(ColumnName = "adopt_time")] + public DateTime AdoptTime { get; set; } + + /// + /// 备 注:现状描述 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark")] + public string Remark { get; set; } = null!; + + /// + /// 备 注:优化方案 + /// 默认值: + /// + [SugarColumn(ColumnName = "optimization_plan")] + public string OptimizationPlan { get; set; } = null!; + + /// + /// 备 注:状态(默认0未确认、1已采纳、2不采纳、3重复建议) + /// 默认值: + /// + [SugarColumn(ColumnName = "status")] + public FeedBackInfoStatusEnum Status { get; set; } + /// + /// 获得积分 + /// + [SugarColumn(ColumnName = "earn_points")] + public int EarnPoints { get; set; } = 0; + /// + /// 是否删除 + /// + [SugarColumn(ColumnName = "is_delete")] + public bool IsDelete { get; set; } + /// + /// 采纳状态中文 示例:已被采纳 + /// + [SugarColumn(IsIgnore = true)] + public string StatusName + { + get + { + return Status.GetEnumDescription().Description; + } + } + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Financial/Financial_class.cs b/LearningOfficer.OA.Core/Entities/OA/Financial/Financial_class.cs new file mode 100644 index 0000000..44d70bd --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Financial/Financial_class.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Financial +{ + /// + /// 经费管理-班级 + /// + [SugarTable("financial_class")] + public class Financial_class : BaseEntity + { + + + + + /// + /// 备 注:经费标准id + /// 默认值: + /// + [SugarColumn(ColumnName = "financial_id" )] + public long Financial_id { get; set; } + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long Class_id { get; set; } + + + /// + /// 备 注:用途 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string Remark { get; set; } = null!; + + + /// + /// 备 注:费用(元) + /// 默认值: + /// + [SugarColumn(ColumnName = "money")] + public decimal Money { get; set; } + + + /// + /// 备 注:使用时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "financial_time")] + public DateTime FinancialTime { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Financial/Financial_indicators.cs b/LearningOfficer.OA.Core/Entities/OA/Financial/Financial_indicators.cs new file mode 100644 index 0000000..4624b09 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Financial/Financial_indicators.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Financial +{ + /// + /// 经费管理 + /// + [SugarTable("financial_indicators")] + public class Financial_indicators : BaseEntity + { + + + + + /// + /// 备 注:开始时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "start_time" )] + public DateTime StartTime { get; set; } + + + /// + /// 备 注:结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_time" )] + public DateTime EndTime { get; set; } + + + /// + /// 备 注:本时段经费金额 + /// 默认值: + /// + [SugarColumn(ColumnName = "money" )] + public decimal Money { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/ManagerData/ManagerDataCollection.cs b/LearningOfficer.OA.Core/Entities/OA/ManagerData/ManagerDataCollection.cs new file mode 100644 index 0000000..85cf4bd --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/ManagerData/ManagerDataCollection.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.ManagerData +{ + /// + /// 资料收集-主表 + /// + [SugarTable("manager_data_collection")] + public class ManagerDataCollection : BaseEntity + { + + + + + /// + /// 备 注:收集主题 + /// 默认值: + /// + [SugarColumn(ColumnName = "title" )] + public string Title { get; set; } = null!; + + + /// + /// 备 注:收集要求 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string Remark { get; set; } = null!; + + + /// + /// 备 注:模板文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id" )] + public long? FileId { get; set; } + + + /// + /// 备 注:提交时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "endtime" )] + public DateTime Endtime { get; set; } + + + /// + /// 备 注:添加用户 + /// 默认值: + /// + [SugarColumn(ColumnName = "adduser" )] + public long Adduser { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime" )] + public DateTime Addtime { get; set; } + + + /// + /// 备 注:收集对象个数 + /// 默认值: + /// + [SugarColumn(ColumnName = "file_count" )] + public int? FileCount { get; set; } + + + /// + /// 备 注:状态:1:已创建(未发布);2:进行中(已发布);3:已完成;4:已关闭 + /// 默认值: + /// + [SugarColumn(ColumnName = "status" )] + public int Status { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/ManagerData/ManagerDataCollectionUser.cs b/LearningOfficer.OA.Core/Entities/OA/ManagerData/ManagerDataCollectionUser.cs new file mode 100644 index 0000000..44712c2 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/ManagerData/ManagerDataCollectionUser.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.ManagerData +{ + /// + /// 资料收集-收集用户列表 + /// + [SugarTable("manager_data_collection_user")] + public class ManagerDataCollectionUser : BaseEntity + { + + + + + /// + /// 备 注:收集主题id + /// 默认值: + /// + [SugarColumn(ColumnName = "datacollection_id" )] + public long DatacollectionId { get; set; } + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long UserId { get; set; } + + + /// + /// 备 注:用户姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "user_name")] + public string UserName { get; set; } + + /// + /// 备 注:提交的文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id" )] + public long? FileId { get; set; } + + + /// + /// 备 注:提交时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_file_time" )] + public DateTime? AddFileTime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoods.cs b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoods.cs new file mode 100644 index 0000000..5c49dec --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoods.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace LearningOfficer.OA.Core.Entities.OA.PointsGoods +{ + /// + /// 积分商品表 + /// + [SugarTable("points_goods")] + public class PointsGoods : BaseEntity + { + + /// + /// 备 注:商品名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_name")] + public string GoodsName { get; set; } = null!; + + /// + /// 备 注:市场价值 + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_money")] + public decimal GoodsMoney { get; set; } + + /// + /// 备 注:库存 + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_count")] + public int GoodsCount { get; set; } + + /// + /// 备 注:所需积分(价格) + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_points_count")] + public int GoodsPointsCount { get; set; } + + /// + /// 备 注:状态(默认0下架、1上架) + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_status")] + public int GoodsStatus { get; set; } + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time")] + public DateTime AddTime { get; set; } + + /// + /// 备 注:最后一次修改时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "update_time")] + public DateTime UpdateTime { get; set; } + + /// + /// 备 注:是否删除(0否,1是) + /// 默认值: + /// + [SugarColumn(ColumnName = "isdel")] + public int IsDel { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoodsFiles.cs b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoodsFiles.cs new file mode 100644 index 0000000..413c7a9 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoodsFiles.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace LearningOfficer.OA.Core.Entities.OA.PointsGoods +{ + /// + /// 商品文件关联 + /// + [SugarTable("points_goods_files")] + public class PointsGoodsFiles : BaseEntity + { + + /// + /// 备 注:商品id + /// 默认值: + /// + [SugarColumn(ColumnName="goods_id" ) ] + public long GoodsId { get; set; } + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName="file_id" ) ] + public long FileId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoodsInventory.cs b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoodsInventory.cs new file mode 100644 index 0000000..66b5fc6 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsGoodsInventory.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.PointsGoods +{ + /// + /// 商品库存明细表 + /// + [SugarTable("points_goods_inventory")] + public class PointsGoodsInventory : BaseEntity + { + + /// + /// 备 注:商品id + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_id" )] + public long GoodsId { get; set; } + + + /// + /// 备 注:库存变化数量(正负区分出入库) + /// 默认值: + /// + [SugarColumn(ColumnName = "change_count" )] + public int ChangeCount { get; set; } + + + /// + /// 备 注:商品库存变化后的数目 + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_count" )] + public int GoodsCount { get; set; } + + + /// + /// 备 注:时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:操作用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "add_userid" )] + public long AddUserid { get; set; } + + + /// + /// 备 注:用户类型(默认0学习官/组长/部长/总部长、1管理员) + /// 默认值: + /// + [SugarColumn(ColumnName = "usertype" )] + public int Usertype { get; set; } + + + /// + /// 备 注:变化类型(默认0用户兑换、1管理添加) + /// 默认值: + /// + [SugarColumn(ColumnName = "change_type" )] + public int ChangeType { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsOrders.cs b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsOrders.cs new file mode 100644 index 0000000..4fe469c --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/PointsOrders.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +namespace LearningOfficer.OA.Core.Entities.OA.PointsGoods +{ + /// + /// 积分兑换订单表 + /// + [SugarTable("points_orders")] + public class PointsOrders : BaseEntity + { + + /// + /// 备 注:兑换商品id + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_id")] + public long GoodsId { get; set; } + + /// + /// 备 注:兑换数量 + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_count")] + public int GoodsCount { get; set; } + + /// + /// 备 注:共计花费积分数 + /// 默认值: + /// + [SugarColumn(ColumnName = "change_points")] + public int ChangePoints { get; set; } + + /// + /// 备 注:兑换人id + /// 默认值: + /// + [SugarColumn(ColumnName = "userid")] + public long Userid { get; set; } + + /// + /// 备 注:兑换时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time")] + public DateTime AddTime { get; set; } + + /// + /// 备 注:用户收获地址id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_address_id")] + public long UserAddressId { get; set; } + + /// + /// 备 注:用户收获地址具体信息,不被修改影响 + /// 默认值: + /// + [SugarColumn(ColumnName = "user_address_detail")] + public string UserAddressDetail { get; set; } = ""; + + /// + /// 备 注:发货状态(0待发货、1已发货) + /// 默认值: + /// + [SugarColumn(ColumnName = "status")] + public int Status { get; set; } + + /// + /// 备 注:快递单号(发货后) + /// 默认值: + /// + [SugarColumn(ColumnName = "tracking_number")] + public string? TrackingNumber { get; set; } + + /// + /// 备 注:最后一次更新时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "update_time")] + public DateTime UpdateTime { get; set; } + + /// + /// 备 注:商品图片 + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_img")] + public string? GoodsImg { get; set; } + + /// + /// 备 注:商品名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "goods_name")] + public string? GoodsName { get; set; } + + /// + /// 备 注:手机号 + /// 默认值: + /// + [SugarColumn(ColumnName = "user_phone")] + public string? UserPhone { get; set; } + + /// + /// 备 注:收货人,下单时写入收货地址表的收货人姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "consignee")] + public string? Consignee { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/PointsGoods/UserAddress.cs b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/UserAddress.cs new file mode 100644 index 0000000..0d58164 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/PointsGoods/UserAddress.cs @@ -0,0 +1,74 @@ +using LearningOfficer.OA.Core.Entities; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +namespace LearningOfficer.OA.Core.Entities.OA.PointsGoods +{ + /// + /// 用户收货地址管理 + /// + [SugarTable("user_address")] + public class UserAddress : BaseEntity + { + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName="user_id" ) ] + public long UserId { get; set; } + + /// + /// 备 注:收货人姓名 + /// 默认值: + /// + [SugarColumn(ColumnName="user_name" ) ] + public string UserName { get; set; } = null!; + + /// + /// 备 注:收货人电话 + /// 默认值: + /// + [SugarColumn(ColumnName="user_phone" ) ] + public string UserPhone { get; set; } = null!; + + /// + /// 备 注:是否默认(0否、1是) 一个人只有一个地址是默认 + /// 默认值: + /// + [SugarColumn(ColumnName="is_default" ) ] + public int IsDefault { get; set; } + + /// + /// 备 注:省id + /// 默认值: + /// + [SugarColumn(ColumnName="province_id" ) ] + public int ProvinceId { get; set; } + + /// + /// 备 注:城市id + /// 默认值: + /// + [SugarColumn(ColumnName="city_id" ) ] + public int CityId { get; set; } + + /// + /// 备 注:地区id + /// 默认值: + /// + [SugarColumn(ColumnName="region_id" ) ] + public int RegionId { get; set; } + + /// + /// 备 注:详细地址 + /// 默认值: + /// + [SugarColumn(ColumnName="address" ) ] + public string Address { get; set; } = null!; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemSemester.cs b/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemSemester.cs new file mode 100644 index 0000000..b9665b0 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemSemester.cs @@ -0,0 +1,38 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Core.Entities; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LearningOfficer.OA.Core.Entities.OA.Solution +{ + /// + /// 解决方案-年级关联 + /// + [SugarTable("problem_semester")] + public class ProblemSemester : BaseEntity + { + + + + + /// + /// 备 注:解决方案id + /// 默认值: + /// + [SugarColumn(ColumnName = "pro_id" )] + public long ProId { get; set; } + + + /// + /// 备 注:解决方案学期阶段枚举 初一上上半期 = 71, 初一上下半期 = 72, 初一下上半期 = 73, 初一下下半期 = 74, 初二上上半期 = 81, 初二上下半期 = 82, 初二下上半期 = 83, 初二下下半期 = 84, 初三上上半期 = 91, 初三上下半期 = 92, 初三下上半期 = 93, 初三下下半期 = 94, 高一上上半期 = 101, 高一上下半期 = 102, 高一下上半期 = 103, 高一下下半期 = 104, 高二上上半期 = 111, 高二上下半期 = 112, 高二下上半期 = 113, 高二下下半期 = 114, 高三上上半期 = 121, 高三上下半期 = 122, 高三下上半期 = 123, 高三下下半期 = 124 + /// 默认值: + /// + [SugarColumn(ColumnName = "solution_semester_enum" )] + public SolutionSemesterEnum SolutionSemesterEnum { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemSolution.cs b/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemSolution.cs new file mode 100644 index 0000000..cf60209 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemSolution.cs @@ -0,0 +1,107 @@ +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Core.Entities; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace LearningOfficer.OA.Core.Entities.OA.Solution +{ + /// + /// 解决方案主表 + /// + [SugarTable("problem_solution")] + public class ProblemSolution : BaseEntity + { + + /// + /// 备 注:问题描述 + /// 默认值: + /// + [SugarColumn(ColumnName = "problem_title")] + public string ProblemTitle { get; set; } = null!; + + + /// + /// 备 注:最后更新时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "up_time", IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)] + public DateTime UpTime { get; set; } = DateTime.Now; + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time", IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + [SugarColumn(ColumnName = "problem_obj")] + public ToolObjectType ProblemObj { get; set; } + + + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + [SugarColumn(ColumnName = "tool_class_type")] + public ToolClassType ToolClassType { get; set; } + + /// + /// 备 注:问题显著现象 + /// 默认值: + /// + [SugarColumn(ColumnName = "problem_phenomenon")] + public string ProblemPhenomenon { get; set; } = null!; + + + /// + /// 备 注:解决方案文本描述 + /// 默认值: + /// + [SugarColumn(ColumnName = "solution_content")] + public string SolutionContent { get; set; } = null!; + + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "cloudschool_id")] + public long CloudSchoolId { get; set; } + + /// + /// 备 注:逻辑删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_delete")] + public bool IsDelete { get; set; } + + /// + /// 关联学段枚举列表 + /// + [Navigate(NavigateType.OneToMany, nameof(ProblemSemester.ProId))] + public List ProblemSemesters { get; set; } + + + /// + /// 关联工具id列表 + /// + [Navigate(NavigateType.OneToMany, nameof(ProblemTool.ProId))] + public List ProblemTools { get; set; } + + + /// + /// 关联任务类型列表 + /// + [Navigate(NavigateType.OneToMany, nameof(ProblemTaskType.ProId))] + public List ProblemTaskTypes { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemTaskType.cs b/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemTaskType.cs new file mode 100644 index 0000000..34201f9 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemTaskType.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Enums; + +namespace LearningOfficer.OA.Core.Entities.OA.Solution +{ + /// + /// 解决方案-工作任务关联 + /// + [SugarTable("problem_task_type")] + public class ProblemTaskType : BaseEntity + { + /// + /// 备 注:解决方案id + /// 默认值: + /// + [SugarColumn(ColumnName = "pro_id" )] + public long ProId { get; set; } + + + /// + /// 备 注:任务类型枚举关联 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_type_enum" )] + public SysTaskTypeEnums TaskTypeEnum { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemTool.cs b/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemTool.cs new file mode 100644 index 0000000..bdb770c --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Solution/ProblemTool.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Solution +{ + /// + /// 解决方案-工具文件关联 + /// + [SugarTable("problem_tool")] + public class ProblemTool : BaseEntity + { + /// + /// 备 注:解决方案id + /// 默认值: + /// + [SugarColumn(ColumnName = "pro_id" )] + public long ProId { get; set; } + + + /// + /// 备 注:工具id + /// 默认值: + /// + [SugarColumn(ColumnName = "tool_id" )] + public long ToolId { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Solution/QuestionInfo.cs b/LearningOfficer.OA.Core/Entities/OA/Solution/QuestionInfo.cs new file mode 100644 index 0000000..d845d85 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Solution/QuestionInfo.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Solution +{ + /// + /// 解决方案-问题记录 + /// + [SugarTable("question_info")] + public class QuestionInfo : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_id" )] + public long TaskId { get; set; } + + + /// + /// 备 注:任务类型枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_enum" )] + public int TaskEnum { get; set; } + + + /// + /// 备 注:问题枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "pvalue" )] + public long Pvalue { get; set; } + + + /// + /// 备 注:问题类型;1:学生;2:老师; + /// 默认值: + /// + [SugarColumn(ColumnName = "question_type" )] + public int QuestionType { get; set; } + + + /// + /// 备 注:问题教师/学生id + /// 默认值: + /// + [SugarColumn(ColumnName = "question_userid" )] + public long QuestionUserid { get; set; } + + + /// + /// 备 注:年份 + /// 默认值: + /// + [SugarColumn(ColumnName = "question_year" )] + public int QuestionYear { get; set; } + + + /// + /// 备 注:月份 + /// 默认值: + /// + [SugarColumn(ColumnName = "question_month" )] + public int QuestionMonth { get; set; } + + + /// + /// 备 注:问题发生时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime" )] + public DateTime Addtime { get; set; } + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "adduser_id" )] + public long AdduserId { get; set; } + + + /// + /// 备 注:学生问题班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "question_class_id" )] + public long? QuestionClassId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKit.cs b/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKit.cs new file mode 100644 index 0000000..ac4ab04 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKit.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Core.Entities.OA.SystemInfo; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Solution +{ + /// + /// 工具包 + /// + [SugarTable("tool_kit")] + public class ToolKit : BaseEntity + { + + /// + /// 备 注:工具名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "tool_name")] + public string ToolName { get; set; } = null!; + + + /// + /// 备 注:最后更新时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "up_time")] + public DateTime UpTime { get; set; } = DateTime.Now; + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time", IsOnlyIgnoreUpdate = true)] + public DateTime AddTime { get; set; } = DateTime.Now; + + + /// + /// 备 注:工具格式 文件后缀名 + /// 默认值: + /// + [SugarColumn(ColumnName = "tool_type")] + public string ToolType { get; set; } = null!; + + /// + /// 备 注:大小 kb + /// 默认值: + /// + [SugarColumn(ColumnName = "tool_size")] + public int ToolSize { get; set; } + + /// + /// 备 注:文件id,关联sys_file_info表 + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id")] + public long SysFileId { get; set; } + + + /// + /// 备 注:适用对象 1:学校;2:教师;3:学生 + /// 默认值: + /// + [SugarColumn(ColumnName = "problem_obj")] + public ToolObjectType ProblemObj { get; set; } + + + /// + /// 备 注:使用班级类型。1本科班,2重点班,3重点本科都适用 + /// 默认值: + /// + [SugarColumn(ColumnName = "tool_class_type")] + public ToolClassType ToolClassType { get; set; } + + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "cloudschool_id")] + public long CloudSchoolId { get; set; } + + /// + /// 备 注:逻辑删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_delete")] + public bool IsDelete { get; set; } + + /// + /// 备 注:工具包的学期列表 + /// + [Navigate(NavigateType.OneToMany, nameof(ToolKitSemester.ToolKitId))] + public List ToolKitSemesters { get; set; } + + /// + /// 备 注:工具包文件详细信息 + /// + [Navigate(NavigateType.OneToOne, nameof(SysFileId))] + public SysFileinfo Fileinfo { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKitDownloadhistory.cs b/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKitDownloadhistory.cs new file mode 100644 index 0000000..f52fa17 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKitDownloadhistory.cs @@ -0,0 +1,60 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Core.Entities.OA.Solution +{ + /// + /// 工具包下载记录 + /// + [SugarTable("tool_kit_downloadhistory")] + public class ToolKitDownloadhistory:BaseEntity + { + /// + /// 备 注:用户ID + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long UserId { get; set; } + /// + /// 用户云校Id + /// + [SugarColumn(ColumnName = "cloud_schoolid")] + public long? CloudSchoolId { get; set; } + /// + /// 备 注:解决方案ID + /// 默认值: + /// + [SugarColumn(ColumnName = "pro_id")] + public long ProId { get; set; } + + /// + /// 备 注:工具包ID + /// 默认值: + /// + [SugarColumn(ColumnName = "tool_id")] + public long ToolId { get; set; } + + /// + /// 备 注:下载时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime")] + public DateTime Addtime { get; set; } + + /// + /// 备 注:客户端类型 1:ios 2:Android + /// 默认值: + /// + [SugarColumn(ColumnName = "client_type")] + public int ClientType { get; set; } + /// + /// 学校Id + /// + [SugarColumn(ColumnName = "school_id",IsJson =true)] + public List SchoolId { get; set; } + } +} diff --git a/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKitSemester.cs b/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKitSemester.cs new file mode 100644 index 0000000..aa165da --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Solution/ToolKitSemester.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using LearningOfficer.OA.Common.Enums; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.Solution +{ + /// + /// 工具包学期阶段表 + /// + [SugarTable("tool_kit_semester")] + public class ToolKitSemester : BaseEntity + { + + /// + /// 备 注:工具包Id + /// 默认值: + /// + [SugarColumn(ColumnName = "tool_kit_id")] + public long ToolKitId { get; set; } + + /// + /// 备 注:工具包Id + /// 默认值: + /// + [SugarColumn(ColumnName = "solution_semester_enum")] + public SolutionSemesterEnum SolutionSemesterEnum { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentChangeClass.cs b/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentChangeClass.cs new file mode 100644 index 0000000..20d27e6 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentChangeClass.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.StudentInfo +{ + /// + /// 学生更改班级记录表 + /// + [SugarTable("student_change_class")] + public class StudentChangeClass : BaseEntity + { + + + + + /// + /// 备 注:原来班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_id" )] + public long? ClassId { get; set; } + + + /// + /// 备 注:新班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "new_class_id" )] + public long? NewClassId { get; set; } + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "adduserid" )] + public long? Adduserid { get; set; } + + + /// + /// 备 注:修改时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "change_time" )] + public DateTime? ChangeTime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentInfo.cs b/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentInfo.cs new file mode 100644 index 0000000..22f2a8a --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentInfo.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.StudentInfo +{ + /// + /// 学生信息记录表 + /// + [SugarTable("student_info")] + public class StudentInfo : BaseEntity + { + + + + + /// + /// 备 注:学生id + /// 默认值: + /// + [SugarColumn(ColumnName = "student_id" )] + public long? StudentId { get; set; } + + + /// + /// 备 注:备注 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string? Remark { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentParent.cs b/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentParent.cs new file mode 100644 index 0000000..2e89ae4 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/StudentInfo/StudentParent.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.StudentInfo +{ + /// + /// 学生家长信息记录表 + /// + [SugarTable("student_parent")] + public class StudentParent : BaseEntity + { + + + + + /// + /// 备 注:学生id + /// 默认值: + /// + [SugarColumn(ColumnName = "student_id" )] + public long StudentId { get; set; } + + + /// + /// 备 注:家长姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "parent_name" )] + public string ParentName { get; set; } = null!; + + + /// + /// 备 注:字典表-关系 + /// 默认值: + /// + [SugarColumn(ColumnName = "parent_relation" )] + public long ParentRelation { get; set; } + + + /// + /// 备 注:电话 + /// 默认值: + /// + [SugarColumn(ColumnName = "parent_phone" )] + public string ParentPhone { get; set; } = null!; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Summarize/CheckTaskInfo.cs b/LearningOfficer.OA.Core/Entities/OA/Summarize/CheckTaskInfo.cs new file mode 100644 index 0000000..744e7c4 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Summarize/CheckTaskInfo.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Summarize +{ + /// + /// 指标任务完成情况,每月保存一次 + /// + [SugarTable("check_task_info")] + public class CheckTaskInfo : BaseEntity + { + + + + + /// + /// 备 注:年份 + /// 默认值: + /// + [SugarColumn(ColumnName = "year" )] + public int Year { get; set; } + + + /// + /// 备 注:月份 + /// 默认值: + /// + [SugarColumn(ColumnName = "month" )] + public int Month { get; set; } + + + /// + /// 备 注:指标任务类型 + /// 默认值: + /// + [SugarColumn(ColumnName = "type_enum" )] + public int TypeEnum { get; set; } + + + /// + /// 备 注:任务指标数 + /// 默认值: + /// + [SugarColumn(ColumnName = "check_count" )] + public int CheckCount { get; set; } + + + /// + /// 备 注:任务已完成数 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_count_end" )] + public int TaskCountEnd { get; set; } + + + /// + /// 备 注:任务逾期数 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_count_overdue")] + public int TaskCountOverdue { get; set; } + + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_user_id")] + public long TaskUserId { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizDay.cs b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizDay.cs new file mode 100644 index 0000000..0f8f597 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizDay.cs @@ -0,0 +1,141 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Summarize +{ + /// + /// 工作总结-日报 + /// + [SugarTable("summarize_day")] + public class SummarizDay : BaseEntity + { + + + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + /// + /// 备 注:用户角色枚举(如果是组长,只有部长评价,如果是学习官,有部长和组长评价) + /// 默认值: + /// + [SugarColumn(ColumnName = "user_enum" )] + public int UserEnum { get; set; } + + + /// + /// 备 注:工作总结日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "work_date" )] + public DateTime WorkDate { get; set; } + + + /// + /// 备 注:问题反馈 + /// 默认值: + /// + [SugarColumn(ColumnName = "quest_content" )] + public string QuestContent { get; set; } = null!; + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:组长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_evaluation" )] + public string? SuperiorEvaluation { get; set; } + + + /// + /// 备 注:组长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_user_id" )] + public long? SuperiorUserId { get; set; } + + + /// + /// 备 注:组长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_addtime" )] + public DateTime? SuperiorAddtime { get; set; } + + + /// + /// 备 注:部长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_evaluation" )] + public string? MinisterEvaluation { get; set; } + + + /// + /// 备 注:部长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_user_id" )] + public long? MinisterUserId { get; set; } + + + /// + /// 备 注:部长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_addtime" )] + public DateTime? MinisterAddtime { get; set; } + + + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + [SugarColumn(ColumnName = "next_time_content" )] + public string? NextTimeContent { get; set; } + + + /// + /// 备 注:总部长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "general_evaluation" )] + public string? GeneralEvaluation { get; set; } + + + /// + /// 备 注:总部长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "general_user_id" )] + public long? GeneralUserId { get; set; } + + + /// + /// 备 注:总部长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "general_addtime" )] + public DateTime? GeneralAddtime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizMonth.cs b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizMonth.cs new file mode 100644 index 0000000..8916a69 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizMonth.cs @@ -0,0 +1,157 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Summarize +{ + /// + /// 工作总结-月报 + /// + [SugarTable("summariz_month")] + public class SummarizMonth : BaseEntity + { + + + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + /// + /// 备 注:用户角色枚举(如果是组长,只有部长评价,如果是学习官,有部长和组长评价) + /// 默认值: + /// + [SugarColumn(ColumnName = "user_enum" )] + public int UserEnum { get; set; } + + + /// + /// 备 注:工作年份 + /// 默认值: + /// + [SugarColumn(ColumnName = "work_year" )] + public int? WorkYear { get; set; } + + + /// + /// 备 注:工作月份 + /// 默认值: + /// + [SugarColumn(ColumnName = "work_month" )] + public int WorkMonth { get; set; } + + + /// + /// 备 注:问题反馈 + /// 默认值: + /// + [SugarColumn(ColumnName = "quest_content" )] + public string QuestContent { get; set; } = null!; + + + /// + /// 备 注:本月总结 + /// 默认值: + /// + [SugarColumn(ColumnName = "month_content" )] + public string MonthContent { get; set; } = null!; + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:组长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_evaluation" )] + public string? SuperiorEvaluation { get; set; } + + + /// + /// 备 注:组长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_user_id" )] + public long? SuperiorUserId { get; set; } + + + /// + /// 备 注:组长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_addtime" )] + public DateTime? SuperiorAddtime { get; set; } + + + /// + /// 备 注:部长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_evaluation" )] + public string? MinisterEvaluation { get; set; } + + + /// + /// 备 注:部长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_user_id" )] + public long? MinisterUserId { get; set; } + + + /// + /// 备 注:部长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_addtime" )] + public DateTime? MinisterAddtime { get; set; } + + + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + [SugarColumn(ColumnName = "next_time_content" )] + public string? NextTimeContent { get; set; } + + + /// + /// 备 注:总部长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "general_evaluation" )] + public string? GeneralEvaluation { get; set; } + + + /// + /// 备 注:总部长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "general_user_id" )] + public long? GeneralUserId { get; set; } + + + /// + /// 备 注:总部长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "general_addtime" )] + public DateTime? GeneralAddtime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizPlanFile.cs b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizPlanFile.cs new file mode 100644 index 0000000..c618104 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizPlanFile.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Summarize +{ + /// + /// 工作总结-下次工作计划附件 + /// + [SugarTable("summariz_plan_file")] + public class SummarizPlanFile : BaseEntity + { + + + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + /// + /// 备 注:总结类型,1:日报;2:周报;3:月报; + /// 默认值: + /// + [SugarColumn(ColumnName = "summariz_type" )] + public int SummarizType { get; set; } + + + /// + /// 备 注:总结id + /// 默认值: + /// + [SugarColumn(ColumnName = "summariz_id" )] + public long SummarizId { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "fileid" )] + public long Fileid { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizRead.cs b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizRead.cs new file mode 100644 index 0000000..16f7f24 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizRead.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Summarize +{ + /// + /// 总结已读数据记录 + /// + [SugarTable("summariz_read")] + public class SummarizRead : BaseEntity + { + + + + + /// + /// 备 注:总结id + /// 默认值: + /// + [SugarColumn(ColumnName = "sum_id" )] + public long SumId { get; set; } + + + /// + /// 备 注:总结类型 1日报 2周报 3月报 + /// 默认值: + /// + [SugarColumn(ColumnName = "sum_type" )] + public int SumType { get; set; } + + + /// + /// 备 注:查看人 + /// 默认值: + /// + [SugarColumn(ColumnName = "read_user" )] + public long ReadUser { get; set; } + + + /// + /// 备 注:查看时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "read_time" )] + public DateTime ReadTime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizWeek.cs b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizWeek.cs new file mode 100644 index 0000000..0280e01 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/Summarize/SummarizWeek.cs @@ -0,0 +1,173 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.Summarize +{ + /// + /// 工作总结-周报 + /// + [SugarTable("summariz_week")] + public class SummarizWeek : BaseEntity + { + + + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + /// + /// 备 注:用户角色枚举(如果是组长,只有部长评价,如果是学习官,有部长和组长评价) + /// 默认值: + /// + [SugarColumn(ColumnName = "user_enum" )] + public int UserEnum { get; set; } + + + /// + /// 备 注:工作年份 + /// 默认值: + /// + [SugarColumn(ColumnName = "work_year" )] + public int WorkYear { get; set; } + + + /// + /// 备 注:工作月份 + /// 默认值: + /// + [SugarColumn(ColumnName = "work_month" )] + public int WorkMonth { get; set; } + + + /// + /// 备 注:工作周报 + /// 默认值: + /// + [SugarColumn(ColumnName = "work_week" )] + public int WorkWeek { get; set; } + + + /// + /// 备 注:工作总结日期-开始 + /// 默认值: + /// + [SugarColumn(ColumnName = "begin_date" )] + public DateTime BeginDate { get; set; } + + + /// + /// 备 注:工作总结日期-结束 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_date" )] + public DateTime EndDate { get; set; } + + + /// + /// 备 注:问题反馈 + /// 默认值: + /// + [SugarColumn(ColumnName = "quest_content" )] + public string QuestContent { get; set; } = null!; + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:组长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_evaluation" )] + public string? SuperiorEvaluation { get; set; } + + + /// + /// 备 注:组长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_user_id" )] + public long? SuperiorUserId { get; set; } + + + /// + /// 备 注:组长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_addtime" )] + public DateTime? SuperiorAddtime { get; set; } + + + /// + /// 备 注:部长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_evaluation" )] + public string? MinisterEvaluation { get; set; } + + + /// + /// 备 注:部长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_user_id" )] + public long? MinisterUserId { get; set; } + + + /// + /// 备 注:部长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "minister_addtime" )] + public DateTime? MinisterAddtime { get; set; } + + + /// + /// 备 注:下次工作内容 + /// 默认值: + /// + [SugarColumn(ColumnName = "next_time_content" )] + public string? NextTimeContent { get; set; } + + + /// + /// 备 注:总部长评价 + /// 默认值: + /// + [SugarColumn(ColumnName = "general_evaluation" )] + public string? GeneralEvaluation { get; set; } + + + /// + /// 备 注:总部长评价人id + /// 默认值: + /// + [SugarColumn(ColumnName = "general_user_id" )] + public long? GeneralUserId { get; set; } + + + /// + /// 备 注:总部长评价时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "general_addtime" )] + public DateTime? GeneralAddtime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfo.cs b/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfo.cs new file mode 100644 index 0000000..40e80ab --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfo.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.SuperiorTask +{ + /// + /// 上级布置任务表 + /// + [SugarTable("superior_taskinfo")] + public class SuperiorTaskinfo : BaseEntity + { + + + + + /// + /// 备 注:任务类型枚举 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_enum" )] + public int TaskEnum { get; set; } + + + /// + /// 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期;5:已撤销 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_status" )] + public int TaskStatus { get; set; } + + + /// + /// 备 注:布置时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_addtime" )] + public DateTime TaskAddtime { get; set; } + + + /// + /// 备 注:布置人id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_adduser" )] + public long TaskAdduser { get; set; } + + + /// + /// 备 注:1:单人任务;2多人任务 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_work_type" )] + public int TaskWorkType { get; set; } + + + /// + /// 备 注:接受任务人数 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_user_num" )] + public int TaskUserNum { get; set; } + + + /// + /// 备 注:用户姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_user_names" )] + public string TaskUserNames { get; set; } = null!; + + + /// + /// 备 注:完成时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_end_time" )] + public DateTime TaskEndTime { get; set; } + + + /// + /// 备 注:备注 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark")] + public string? Remark { get; set; } + /// + /// 备 注:最后一次更新时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "update_time")] + public DateTime? UpdateTime { get; set; } + /// + /// 备 注:前三个用户的头像 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_user_headimage")] + public string? TaskUserHeadImage { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfoProcess.cs b/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfoProcess.cs new file mode 100644 index 0000000..da3202c --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfoProcess.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.SuperiorTask +{ + /// + /// 布置任务-任务流程记录表 + /// + [SugarTable("superior_taskinfo_process")] + public class SuperiorTaskinfoProcess : BaseEntity + { + + + + + /// + /// 备 注:布置任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_id" )] + public long? SuperiorId { get; set; } + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_id" )] + public long? TaskId { get; set; } + + + /// + /// 备 注:任务状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; + /// 默认值: + /// + [SugarColumn(ColumnName = "task_status" )] + public long? TaskStatus { get; set; } + + + /// + /// 备 注:时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_time" )] + public DateTime? TaskTime { get; set; } + + + /// + /// 备 注:任务接收人id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_user_id" )] + public long? TaskUserId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfoUsers.cs b/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfoUsers.cs new file mode 100644 index 0000000..daa094e --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SuperiorTask/SuperiorTaskinfoUsers.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.SuperiorTask +{ + /// + /// 布置任务-任务接受人 + /// + [SugarTable("superior_taskinfo_users")] + public class SuperiorTaskinfoUsers : BaseEntity + { + + + + + /// + /// 备 注:布置任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "superior_id" )] + public long SuperiorId { get; set; } + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_userid" )] + public long TaskUserid { get; set; } + + + /// + /// 备 注:用户完成状态。-1:未响应;1:已创建;2进行中;3:已完成;4:已逾期; + /// 默认值: + /// + [SugarColumn(ColumnName = "user_task_status" )] + public int UserTaskStatus { get; set; } + /// + /// 备 注:最后更新时间 + /// + [SugarColumn(ColumnName = "update_time")] + public DateTime UpdateTime { get; set; } + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_id" )] + public long? TaskId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Apiloginfo.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Apiloginfo.cs new file mode 100644 index 0000000..5d1b781 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Apiloginfo.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// api调用日志记录 + /// + [SugarTable("apiloginfo")] + public class Apiloginfo : BaseEntity + { + + + + + /// + /// 备 注:请求地址 + /// 默认值: + /// + [SugarColumn(ColumnName = "api_url" )] + public string? ApiUrl { get; set; } + + + /// + /// 备 注:请求类型 + /// 默认值: + /// + [SugarColumn(ColumnName = "method" )] + public string? Method { get; set; } + + + /// + /// 备 注:请求参数 + /// 默认值: + /// + [SugarColumn(ColumnName = "query_string" )] + public string? QueryString { get; set; } + + + /// + /// 备 注:返回结果 + /// 默认值: + /// + [SugarColumn(ColumnName = "return_result" )] + public string? ReturnResult { get; set; } + + + /// + /// 备 注:token + /// 默认值: + /// + [SugarColumn(ColumnName = "token" )] + public string? Token { get; set; } + + + /// + /// 备 注:ip + /// 默认值: + /// + [SugarColumn(ColumnName = "ip_address" )] + public string? IpAddress { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime? AddTime { get; set; } + + + /// + /// 备 注:添加人id,默认0 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_user" )] + public string? AddUser { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Banner.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Banner.cs new file mode 100644 index 0000000..40e7ff5 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Banner.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using LearningOfficer.OA.Common.Enums; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 首页banner + /// + [SugarTable("banner")] + public class Banner : BaseEntity + { + /// + /// 备 注:角色名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "banner_file_id")] + public long BannerFileId { get; set; } + + /// + /// 备 注:banne名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "banner_name")] + public string BannerName { get; set; } + + + /// + /// 备 注:假删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_deleted")] + public bool IsDeleted { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysAdmin.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysAdmin.cs new file mode 100644 index 0000000..dcb2da4 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysAdmin.cs @@ -0,0 +1,60 @@ +using LearningOfficer.OA.Common.Enums; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 后台管理员账号表 + /// + [SugarTable("sys_admin")] + public class SysAdmin : BaseEntity + { + /// + /// 备 注:账号 + /// 默认值: + /// + [SugarColumn(ColumnName = "account")] + public string Account { get; set; } = null!; + + + /// + /// 备 注:密码 + /// 默认值: + /// + [SugarColumn(ColumnName = "pwd")] + public string Pwd { get; set; } = null!; + + + /// + /// 备 注:管理员名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "name")] + public string Name { get; set; } = null!; + + + /// + /// 备 注:角色类型枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "role_enum")] + public SysRoleEnum RoleEnum { get; set; } + + + /// + /// 备 注:是否逻辑删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_deleted")] + public bool IsDeleted { get; set; } + + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "cloud_school_id")] + public long CloudSchoolId { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysFileinfo.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysFileinfo.cs new file mode 100644 index 0000000..2d01d89 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysFileinfo.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 文件记录表 + /// + [SugarTable("sys_fileinfo")] + public class SysFileinfo : BaseEntity + { + /// + /// 备 注:原文件名 + /// 默认值: + /// + [SugarColumn(ColumnName = "file_name")] + public string? FileName { get; set; } + + + /// + /// 备 注:文件所在路径 + /// 默认值: + /// + [SugarColumn(ColumnName = "file_path")] + public string? FilePath { get; set; } + + + /// + /// 备 注:文件类型 + /// 默认值: + /// + [SugarColumn(ColumnName = "file_type")] + public string? FileType { get; set; } + + + /// + /// 备 注:上传用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "adduser")] + public long? Adduser { get; set; } + + + /// + /// 备 注:上传时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime")] + public DateTime? Addtime { get; set; } + /// + /// 备 注:文件大小(文件大小-kb,不足1kb为1kb) + /// 默认值: + /// + [SugarColumn(ColumnName = "file_size")] + public long? File_size { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysMenu.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysMenu.cs new file mode 100644 index 0000000..7c2e415 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysMenu.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Masuit.Tools.Models; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 菜单表 + /// + [SugarTable("sys_menu")] + public class SysMenu : BaseEntity + { + /// + /// 备 注:菜单名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "title")] + public string Title { get; set; } = null!; + + + /// + /// 备 注:父级菜单id + /// 默认值: + /// + [SugarColumn(ColumnName = "parent_id")] + public long ParentId { get; set; } + + + /// + /// 备 注:序号 + /// 默认值: + /// + [SugarColumn(ColumnName = "sort")] + public int Sort { get; set; } + + + /// + /// 备 注:路由路径 + /// 默认值: + /// + [SugarColumn(ColumnName = "path")] + public string Path { get; set; } = null!; + + + /// + /// 备 注:菜单图标 + /// 默认值: + /// + [SugarColumn(ColumnName = "icon")] + public string Icon { get; set; } = null!; + + + /// + /// 备 注:组件 + /// 默认值: + /// + [SugarColumn(ColumnName = "component")] + public string Component { get; set; } = null!; + + + [SqlSugar.SugarColumn(IsIgnore = true)] + public List Children { get; set; } = new(); + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysParameter.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysParameter.cs new file mode 100644 index 0000000..959cc6c --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysParameter.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using LearningOfficer.OA.Common.Enums; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 字典表 + /// + [SugarTable("sys_parameter")] + public class SysParameter : BaseEntity + { + + + + + /// + /// 备 注:父级id,默认0,0时无父级 + /// 默认值: + /// + [SugarColumn(ColumnName = "pid")] + public long Pid { get; set; } + + + /// + /// 备 注:参数名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "p_name")] + public string PName { get; set; } = null!; + + + /// + /// 备 注:枚举值,不可重复,自定义 或 直接生成,后续业务关联也是关联此字段 + /// 默认值: + /// + [SugarColumn(ColumnName = "p_value")] + public long PValue { get; set; } + + + /// + /// 备 注:排序,默认0 + /// 默认值: + /// + [SugarColumn(ColumnName = "sort")] + public int Sort { get; set; } + + + /// + /// 备 注:是否纳入问题记录。0否,1是 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_question")] + public bool IsQuestion { get; set; } + + + /// + /// 备 注:问题类别。0无(不是问题时默认0),1学生、2教师 + /// 默认值: + /// + [SugarColumn(ColumnName = "question_type")] + public QuestionType QuestionType { get; set; } + + /// + /// 备 注: 1=单选,2=多选 + /// 默认值: + /// + [SugarColumn(ColumnName = "selection_mode")] + public int? SelectionMode { get; set; } + + /// + /// 备 注:是否必填项 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_required_selection")] + public bool IsRequiredSelection { get; set; } + + + [SugarColumn(IsIgnore = true)] + public List Child { get; set; } + + [SugarColumn(IsIgnore = true)] + public SysParameter? Parent { get; set; } + + /// + /// 下级是否为选项 + /// + [SugarColumn(IsIgnore = true)] + public bool ChildrenIsOption + { + get + { + return SelectionMode.HasValue; + } + } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysParameterOther.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysParameterOther.cs new file mode 100644 index 0000000..aa15406 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysParameterOther.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 除开任务的其他信息字典表 + /// + [SugarTable("sys_parameter_other")] + public class SysParameterOther : BaseEntity + { + + + + + /// + /// 备 注:父级id。0为顶级 对应p_value + /// 默认值: + /// + [SugarColumn(ColumnName = "pid")] + public long Pid { get; set; } + + + /// + /// 备 注:参数名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "p_name")] + public string PName { get; set; } = null!; + + + /// + /// 备 注:枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "p_value")] + public long PValue { get; set; } + + + /// + /// 备 注:排序 + /// 默认值: + /// + [SugarColumn(ColumnName = "sort")] + public int Sort { get; set; } + + /// + /// 下级 + /// + [SugarColumn(IsIgnore = true)] + public List Child { get; set; } + /// + /// 父级信息 + /// + + [SugarColumn(IsIgnore = true)] + public SysParameterOther Parent { get; set; } + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysRole.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysRole.cs new file mode 100644 index 0000000..b2e2f3a --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysRole.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using LearningOfficer.OA.Common.Enums; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 角色表 + /// + [SugarTable("sys_role")] + public class SysRole : BaseEntity + { + /// + /// 备 注:角色名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "role_name")] + public string RoleName { get; set; } = null!; + + + /// + /// 备 注:角色枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "role_enum")] + public SysRoleEnum RoleEnum { get; set; } + + + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysRoleMenu.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysRoleMenu.cs new file mode 100644 index 0000000..da66615 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysRoleMenu.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using LearningOfficer.OA.Common.Enums; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 角色菜单权限表 + /// + [SugarTable("sys_role_menu")] + public class SysRoleMenu : BaseEntity + { + + /// + /// 备 注:菜单id + /// 默认值: + /// + [SugarColumn(ColumnName = "menu_id")] + public long MenuId { get; set; } + + + /// + /// 备 注:角色类型枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "role_enum")] + public SysRoleEnum RoleEnum { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysTaskType.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysTaskType.cs new file mode 100644 index 0000000..49d44fa --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/SysTaskType.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Enums; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// 班级任务类型表 + /// + [SugarTable("sys_task_type")] + public class SysTaskType : BaseEntity + { + /// + /// 备 注:枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "enum_value")] + public SysTaskTypeEnums EnumValue { get; set; } + + + /// + /// 备 注:类型名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "type_name")] + public string TypeName { get; set; } = null!; + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Updateapp.cs b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Updateapp.cs new file mode 100644 index 0000000..e77f754 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/SystemInfo/Updateapp.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.SystemInfo +{ + /// + /// APP/Desk 检查更新 + /// + [SugarTable("updateapp")] + public class Updateapp : BaseEntity + { + + /// + /// 备 注:版本 + /// 默认值: + /// + [SugarColumn(ColumnName = "version" )] + public int Version { get; set; } + + + /// + /// 备 注:1启用 0停用 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_active" )] + public int IsActive { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "fileid" )] + public long Fileid { get; set; } + + + /// + /// 备 注:1:安卓APP,2:IOS APP + /// 默认值: + /// + [SugarColumn(ColumnName = "updatetype" )] + public int Updatetype { get; set; } + + + /// + /// 备 注:版本名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "version_name" )] + public string VersionName { get; set; } = null!; + + + /// + /// 备 注:版本说明 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string? Remark { get; set; } + + + /// + /// 备 注:二维码base64 + /// 默认值: + /// + [SugarColumn(ColumnName = "image_base" )] + public string? ImageBase { get; set; } + + + /// + /// 备 注:版本是否强制升级 + /// 默认值: + /// + [SugarColumn(ColumnName = "isforce" )] + public bool Isforce { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsDetail.cs b/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsDetail.cs new file mode 100644 index 0000000..0cdb487 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsDetail.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.UserPoints +{ + /// + /// 积分详细表 + /// + [SugarTable("points_detail")] + public class PointsDetail : BaseEntity + { + + + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "userid" )] + public long Userid { get; set; } + + + /// + /// 备 注:变化积分(可正可负)(当时的执行规则的积分) + /// 默认值: + /// + [SugarColumn(ColumnName = "change_points" )] + public int ChangePoints { get; set; } + + + /// + /// 备 注:执行规则id(区分类型用)(0为非规则) + /// 默认值: + /// + [SugarColumn(ColumnName = "rules_id")] + public long RulesId { get; set; } + + /// + /// 备 注:事项名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "detail_name")] + public string DetailName { get; set; } + + + /// + /// 备 注:操作类型(人为、程序) + /// 默认值: + /// + [SugarColumn(ColumnName = "is_auto" )] + public int IsAuto { get; set; } + + + /// + /// 备 注:人为操作用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "add_userid" )] + public long AddUserid { get; set; } + + + /// + /// 备 注:相关id + /// 默认值: + /// + [SugarColumn(ColumnName = "source_id" )] + public long? SourceId { get; set; } + + + /// + /// 备 注:变化后的剩余可用积分(用于对账) + /// 默认值: + /// + [SugarColumn(ColumnName = "remaining_points" )] + public int RemainingPoints { get; set; } + + + /// + /// 备 注:发生时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsRules.cs b/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsRules.cs new file mode 100644 index 0000000..13f39fc --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsRules.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.UserPoints +{ + /// + /// 积分规则表 + /// + [SugarTable("points_rules")] + public class PointsRules : BaseEntity + { + + + + + /// + /// 备 注:积分规则名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "rules_name" )] + public string RulesName { get; set; } = null!; + + + /// + /// 备 注:分值(可正可负) + /// 默认值: + /// + [SugarColumn(ColumnName = "score" )] + public int Score { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:添加人 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_userid" )] + public long AddUserid { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsUserInfo.cs b/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsUserInfo.cs new file mode 100644 index 0000000..58972bc --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/UserPoints/PointsUserInfo.cs @@ -0,0 +1,46 @@ +using LearningOfficer.OA.Core.Entities; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +namespace LearningOfficer.OA.Core.Entities.OA.UserPoints +{ + /// + /// 用户积分信息-如果用户在该表不存在,则第一次就需要新增一条数据 + /// + [SugarTable("points_user_info")] + public class PointsUserInfo : BaseEntity + { + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName="userid" ) ] + public long? Userid { get; set; } + + /// + /// 备 注:总积分(只增不减) + /// 默认值: + /// + [SugarColumn(ColumnName="total_points" ) ] + public int? TotalPoints { get; set; } + + /// + /// 备 注:可用积分 + /// 默认值: + /// + [SugarColumn(ColumnName="available_points" ) ] + public int? AvailablePoints { get; set; } + + /// + /// 备 注:最后更新时间 + /// 默认值: + /// + [SugarColumn(ColumnName="last_updated_time" ) ] + public DateTime? LastUpdatedTime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionInfo.cs b/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionInfo.cs new file mode 100644 index 0000000..6fbd084 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionInfo.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.VideoCollection +{ + /// + /// 视频合集信息 + /// + [SugarTable("video_collection_info")] + public class VideoCollectionInfo : BaseEntity + { + + + + /// + /// 备 注:视频合集名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "course_name")] + public string CourseName { get; set; } + + /// + /// 备 注:视频合集id + /// 默认值: + /// + [SugarColumn(ColumnName = "course_id")] + public long CourseId { get; set; } + + + /// + /// 备 注:视频类型(默认0免费;1积分) + /// 默认值: + /// + [SugarColumn(ColumnName = "course_type")] + public int CourseType { get; set; } + + + /// + /// 备 注:入库时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime")] + public DateTime Addtime { get; set; } + + + /// + /// 备 注:兑换积分 + /// 默认值: + /// + [SugarColumn(ColumnName = "change_points")] + public int ChangePoints { get; set; } + + + ///// + ///// 备 注:云校id + ///// 默认值: + ///// + //[SugarColumn(ColumnName = "cloud_school")] + //public long CloudSchool { get; set; } + + + ///// + ///// 备 注:职级(角色)0全部 + ///// 默认值: + ///// + //[SugarColumn(ColumnName = "role_enum")] + //public int RoleEnum { get; set; } + + + /// + /// 备 注:上架状态(默认0未上架;1已上架) + /// 默认值: + /// + [SugarColumn(ColumnName = "collection_status")] + public int CollectionStatus { get; set; } + + + /// + /// 备 注:最后一次操作上/下架管理员id + /// 默认值: + /// + [SugarColumn(ColumnName = "launch_admin_user")] + public long? LaunchAdminUser { get; set; } + + + /// + /// 备 注:最后一次操作上/下架时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "launch_admin_time")] + public DateTime? LaunchAdminTime { get; set; } + + /// + /// 备 注:观看次数 + /// 默认值: + /// + [SugarColumn(ColumnName = "view_count")] + public long? ViewCount { get; set; } + + } + + + /// + /// 视频合集关联云校信息 + /// + [SugarTable("video_collection_cloudschool")] + public class VideoCollectionCloudschool : BaseEntity + { + /// + /// 备 注:课程id + /// 默认值: + /// + [SugarColumn(ColumnName = "course_id")] + public long CourseId { get; set; } + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "cloud_school_id")] + public long CloudSchoolId { get; set; } + } + + /// + /// 视频合集关联职级信息 + /// + [SugarTable("video_collection_role")] + public class VideoCollectionRole : BaseEntity + { + /// + /// 备 注:课程id + /// 默认值: + /// + [SugarColumn(ColumnName = "course_id")] + public long CourseId { get; set; } + + /// + /// 备 注:职级(角色) + /// 默认值: + /// + [SugarColumn(ColumnName = "role_enum")] + public int RoleEnum { get; set; } + + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionPointsUser.cs b/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionPointsUser.cs new file mode 100644 index 0000000..0ab1708 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionPointsUser.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.VideoCollection +{ + /// + /// 视频合集兑换信息 + /// + [SugarTable("video_collection_points_user")] + public class VideoCollectionPointsUser : BaseEntity + { + + + + + /// + /// 备 注:课程合集id + /// 默认值: + /// + [SugarColumn(ColumnName = "course_id" )] + public long CourseId { get; set; } + + + /// + /// 备 注:兑换用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + /// + /// 备 注:兑换时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "addtime" )] + public DateTime Addtime { get; set; } + + + /// + /// 备 注:兑换积分 + /// 默认值: + /// + [SugarColumn(ColumnName = "change_points" )] + public int ChangePoints { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionSee.cs b/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionSee.cs new file mode 100644 index 0000000..80fcfe6 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/VideoCollection/VideoCollectionSee.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.VideoCollection +{ + /// + /// 视频观看记录信息 + /// + [SugarTable("video_collection_see")] + public class VideoCollectionSee : BaseEntity + { + + + + + /// + /// 备 注:课程id + /// 默认值: + /// + [SugarColumn(ColumnName = "course_id" )] + public long CourseId { get; set; } + + + /// + /// 备 注:课程名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "course_name" )] + public string CourseName { get; set; } = null!; + + + /// + /// 备 注:封面路径 + /// 默认值: + /// + [SugarColumn(ColumnName = "videos_image" )] + public string VideosImage { get; set; } = null!; + + + /// + /// 备 注:章id + /// 默认值: + /// + [SugarColumn(ColumnName = "chapter_id" )] + public long ChapterId { get; set; } + + + /// + /// 备 注:章名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "chapter_name" )] + public string ChapterName { get; set; } = null!; + + + /// + /// 备 注:节id + /// 默认值: + /// + [SugarColumn(ColumnName = "section_id" )] + public long SectionId { get; set; } + + + /// + /// 备 注:节名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "section_name" )] + public string SectionName { get; set; } = null!; + + + /// + /// 备 注:视频Code + /// 默认值: + /// + [SugarColumn(ColumnName = "video_code" )] + public string VideoCode { get; set; } = null!; + + + /// + /// 备 注:视频名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "video_name" )] + public string VideoName { get; set; } = null!; + + + /// + /// 备 注:视频总时长(秒) + /// 默认值: + /// + [SugarColumn(ColumnName = "video_second" )] + public int VideoSecond { get; set; } + + + /// + /// 备 注:视频播放地址 + /// 默认值: + /// + [SugarColumn(ColumnName = "video_url" )] + public string VideoUrl { get; set; } = null!; + + + /// + /// 备 注:观看进度时长(秒) + /// 默认值: + /// + [SugarColumn(ColumnName = "see_second" )] + public int SeeSecond { get; set; } + + + /// + /// 备 注:观看人id + /// 默认值: + /// + [SugarColumn(ColumnName = "userid" )] + public long? Userid { get; set; } + + + /// + /// 备 注:最后操作时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "lasttime" )] + public DateTime Lasttime { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfo.cs new file mode 100644 index 0000000..0f30ae7 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfo.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassCadre +{ + /// + /// 班干部会议记录表 + /// + [SugarTable("class_cadre_meeting_info")] + public class ClassCadreMeetingInfo : BaseEntity + { + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id")] + public long ClassesTaskId { get; set; } + + + /// + /// 备 注:标题 + /// 默认值: + /// + [SugarColumn(ColumnName = "meeting_title")] + public string MeetingTitle { get; set; } = null!; + + + /// + /// 备 注:会议纪要 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark")] + public string? Remark { get; set; } = null!; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfoFile.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfoFile.cs new file mode 100644 index 0000000..e6b539f --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfoFile.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassCadre +{ + /// + /// 班干部会议记录-文件表 + /// + [SugarTable("class_cadre_meeting_info_file")] + public class ClassCadreMeetingInfoFile : BaseEntity + { + + /// + /// 备 注:班干部会id + /// 默认值: + /// + [SugarColumn(ColumnName = "classmeeting_id")] + public long ClassmeetingId { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id")] + public long FileId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfoUsers.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfoUsers.cs new file mode 100644 index 0000000..c3777b2 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassCadre/ClassCadreMeetingInfoUsers.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassCadre +{ + /// + /// 班干部会议记录-人员表 + /// + [SugarTable("class_cadre_meeting_info_users")] + public class ClassCadreMeetingInfoUsers : BaseEntity + { + /// + /// 备 注:班会id + /// 默认值: + /// + [SugarColumn(ColumnName = "classmeeting_id")] + public long ClassmeetingId { get; set; } + + + /// + /// 备 注:参会人id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long UserId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassMeeting/ClassMeetingInfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassMeeting/ClassMeetingInfo.cs new file mode 100644 index 0000000..bf3ebb7 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassMeeting/ClassMeetingInfo.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassMeeting +{ + /// + /// 召开班会记录表 + /// + [SugarTable("class_meeting_info")] + public class ClassMeetingInfo : BaseEntity + { + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id")] + public long ClassesTaskId { get; set; } + + + /// + /// 备 注:会议主题 + /// 默认值: + /// + [SugarColumn(ColumnName = "meeting_title")] + public string? MeetingTitle { get; set; } + + + /// + /// 备 注:会议纪要 + /// 默认值: + /// + [SugarColumn(ColumnName = "meeting_content")] + public string? MeetingContent { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassMeeting/ClassMeetingInfoFile.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassMeeting/ClassMeetingInfoFile.cs new file mode 100644 index 0000000..cf0d739 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassMeeting/ClassMeetingInfoFile.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassMeeting +{ + /// + /// 召开班会-文件表 + /// + [SugarTable("class_meeting_info_file")] + public class ClassMeetingInfoFile : BaseEntity + { + /// + /// 备 注:班会id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_meeting_id")] + public long ClassesMeetingId { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id")] + public long FileId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesActivityInfo/ClassesActivity.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesActivityInfo/ClassesActivity.cs new file mode 100644 index 0000000..e82d055 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesActivityInfo/ClassesActivity.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesActivityInfo +{ + /// + /// 班级活动 + /// + [SugarTable("classes_activity")] + public class ClassesActivity : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_id" )] + public long TaskId { get; set; } + + + /// + /// 备 注:活动主题 + /// 默认值: + /// + [SugarColumn(ColumnName = "activity_title" )] + public string ActivityTitle { get; set; } = null!; + + + /// + /// 备 注:活动记录 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string? Remark { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesActivityInfo/ClassesActivityFile.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesActivityInfo/ClassesActivityFile.cs new file mode 100644 index 0000000..6249cd8 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesActivityInfo/ClassesActivityFile.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesActivityInfo +{ + /// + /// 班级活动文件 + /// + [SugarTable("classes_activity_file")] + public class ClassesActivityFile : BaseEntity + { + + + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id" )] + public long FileId { get; set; } + + + /// + /// 备 注:活动id + /// 默认值: + /// + [SugarColumn(ColumnName = "activity_id" )] + public long ActivityId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/ClassesTaskChecklistUser.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/ClassesTaskChecklistUser.cs new file mode 100644 index 0000000..352bfc0 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/ClassesTaskChecklistUser.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask +{ + /// + /// 通用月度工作指标清单 + /// + [SugarTable("classes_task_checklist_user")] + public class ClassesTaskChecklistUser : BaseEntity + { + /// + /// 备 注:任务类型枚举值 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_type_enum")] + public long TaskTypeEnum { get; set; } + + + /// + /// 备 注:任务接受人id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_user_id")] + public long TaskUserId { get; set; } + + /// + /// 备 注:任务达标数 + /// 默认值: + /// + [SugarColumn(ColumnName = "target_number")] + public int TargetNumber { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/ClassesTaskList.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/ClassesTaskList.cs new file mode 100644 index 0000000..0f198bf --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/ClassesTaskList.cs @@ -0,0 +1,185 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask +{ + /// + /// 任务表 + /// + [SugarTable("classes_task_list")] + public class ClassesTaskList : BaseEntity + { + /// + /// 备 注:任务状态 0:未开始 1:进行中 2:已结束 3:问题待处理(仅用于双师跟课) 4:已逾期 + /// 默认值: + /// + [SugarColumn(ColumnName = "status" )] + public int Status { get; set; } + /// + /// 备 注:班级id(班级任务) + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_id" )] + public string? ClassesId { get; set; } + /// + /// 备 注:参数表 枚举值,任务类型 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_type_enum" )] + public int TaskTypeEnum { get; set; } + /// + /// 备 注:开始日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "start_date" )] + public DateTime? StartDate { get; set; } + /// + /// 备 注:开始时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "start_time" )] + public DateTime StartTime { get; set; } + /// + /// 备 注:结束日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_date" )] + public DateTime? EndDate { get; set; } + /// + /// 备 注:结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "end_time" )] + public DateTime EndTime { get; set; } + /// + /// 备 注:是否长期性工作 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_longwork" )] + public ulong IsLongwork { get; set; } + /// + /// 备 注:任务标题后缀,用于展示 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_title_suffix" )] + public string TaskTitleSuffix { get; set; } = null!; + + + /// + /// 备 注:任务完成日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "finish_date" )] + public DateTime? FinishDate { get; set; } + + + /// + /// 备 注:任务完成时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "finish_datetime" )] + public DateTime? FinishDatetime { get; set; } + + + /// + /// 备 注:任务完成人id (学习官id) + /// 默认值: + /// + [SugarColumn(ColumnName = "finish_uid" )] + public long? FinishUid { get; set; } + + + /// + /// 备 注:创建人id + /// 默认值: + /// + [SugarColumn(ColumnName = "creater_uid" )] + public long CreaterUid { get; set; } + + + /// + /// 备 注:创建时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "create_time" )] + public DateTime CreateTime { get; set; } + + + /// + /// 备 注:创建日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "create_date" )] + public DateTime? CreateDate { get; set; } + + + /// + /// 备 注:1已删除,0未删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_delete" )] + public int IsDelete { get; set; } + + + /// + /// 备 注:父级任务id,不为空时,代表此任务是由父级任务创建的子任务 + /// 默认值: + /// + [SugarColumn(ColumnName = "p_work_id" )] + public long? PWorkId { get; set; } + + + /// + /// 备 注:执行人id(通用任务才有) + /// 默认值: + /// + [SugarColumn(ColumnName = "task_user_id" )] + public long? TaskUserId { get; set; } + + + /// + /// 备 注:任务指标类型-1班级;2通用; 班级时,classes_id不为空;通用时,执行人id不为空 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_index_type" )] + public int TaskIndexType { get; set; } + + + /// + /// 备 注:任务开始进行时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_work_time" )] + public DateTime? TaskWorkTime { get; set; } + + + /// + /// 备 注:任务开始进行日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_work_date")] + public DateTime? TaskWorkDate { get; set; } + + + /// + /// 备 注:是否是布置任务。0否(默认);1是; + /// 默认值: + /// + [SugarColumn(ColumnName = "is_superior_task")] + public int? IsSuperiorTask { get; set; } + /// + /// 备 注:布置任务id,如果是布置任务才需要传 + /// + [SugarColumn(ColumnName = "superior_id")] + public long? SuperiorId { get; set; } + + /// + /// 备 注:学校id + /// + [SugarColumn(ColumnName = "school_id")] + public long? SchoolId { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/TaskListClassRelation.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/TaskListClassRelation.cs new file mode 100644 index 0000000..17fafe0 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/TaskListClassRelation.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask +{ + /// + /// 任务多选班级关联表 + /// + [SugarTable("task_list_class_relation")] + public class TaskListClassRelation : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "taskid" )] + public long Taskid { get; set; } + + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "classid" )] + public long Classid { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/TaskLoginfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/TaskLoginfo.cs new file mode 100644 index 0000000..7394145 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/TaskLoginfo.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask +{ + /// + /// 任务操作记录表 + /// + [SugarTable("task_loginfo")] + public class TaskLoginfo : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_id" )] + public long TaskId { get; set; } + + + /// + /// 备 注:任务类型枚举 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_type_enum" )] + public int TaskTypeEnum { get; set; } + + + /// + /// 备 注:子任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "sun_task_id" )] + public long SunTaskId { get; set; } + + + /// + /// 备 注:操作用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + /// + /// 备 注:操作时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:操作日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_date" )] + public DateTime AddDate { get; set; } + + + /// + /// 备 注:操作类型。1新增,2推进,3完成任务,4删除任务 + /// 默认值: + /// + [SugarColumn(ColumnName = "log_type" )] + public int LogType { get; set; } + + + /// + /// 备 注:任务及时性类别。1长期,0即时 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_longwork" )] + public ulong IsLongwork { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/Task_checklist.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/Task_checklist.cs new file mode 100644 index 0000000..49de268 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/ClassesTask/Task_checklist.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask +{ + /// + /// 组长/部长 设置指标信息 + /// + [SugarTable("task_checklist")] + public class Task_checklist : BaseEntity + { + + + + + /// + /// 备 注:任务类型id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_type_enum" )] + public long Task_type_enum { get; set; } + + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "cloud_school_id")] + public long? CloudSchoolId { get; set; } + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long? User_id { get; set; } + + + /// + /// 备 注:任务指标数 + /// 默认值: + /// + [SugarColumn(ColumnName = "target_number" )] + public int Target_number { get; set; } + + + /// + /// 备 注:班级/通用任务类型 1班级;2通用 + /// 默认值: + /// + [SugarColumn(ColumnName = "task_type" )] + public int Task_type { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime Add_time { get; set; } + + + /// + /// 备 注:是否删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "is_delete" )] + public int Is_delete { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSub.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSub.cs new file mode 100644 index 0000000..499775f --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSub.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.CoachSub +{ + /// + /// 学科辅助表 + /// + [SugarTable("coach_sub")] + public class CoachSub : BaseEntity + { + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id")] + public long ClassesTaskId { get; set; } + + + /// + /// 备 注:科目id + /// 默认值: + /// + [SugarColumn(ColumnName = "coach_sub_id")] + public long CoachSubId { get; set; } + + + /// + /// 备 注:辅导内容 + /// 默认值: + /// + [SugarColumn(ColumnName = "coach_content")] + public string? CoachContent { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSubFile.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSubFile.cs new file mode 100644 index 0000000..17245b9 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSubFile.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.CoachSub +{ + /// + /// 学科辅助-辅导文件表 + /// + [SugarTable("coach_sub_file")] + public class CoachSubFile : BaseEntity + { + + /// + /// 备 注:辅导表id + /// 默认值: + /// + [SugarColumn(ColumnName = "coach_id")] + public long CoachId { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id")] + public long FileId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSubUser.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSubUser.cs new file mode 100644 index 0000000..823be6b --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/CoachSub/CoachSubUser.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.CoachSub +{ + /// + /// 学科辅助-辅导对象表 + /// + [SugarTable("coach_sub_user")] + public class CoachSubUser : BaseEntity + { + + /// + /// 备 注:辅导表id + /// 默认值: + /// + [SugarColumn(ColumnName = "coach_id")] + public long CoachId { get; set; } + + + /// + /// 备 注:学生id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long? UserId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Cultural/Cultural.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Cultural/Cultural.cs new file mode 100644 index 0000000..c4c7f2b --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Cultural/Cultural.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Cultural +{ + /// + /// 文创文件表 + /// + [SugarTable("cultural")] + public class Cultural : BaseEntity + { + + + + + /// + /// 备 注:文创id + /// 默认值: + /// + [SugarColumn(ColumnName = "cultural_id" )] + public long CulturalId { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id" )] + public long FileId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Cultural/CulturalImp.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Cultural/CulturalImp.cs new file mode 100644 index 0000000..0f4bc7f --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Cultural/CulturalImp.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Cultural +{ + /// + /// 文创表 + /// + [SugarTable("cultural_imp")] + public class CulturalImp : BaseEntity + { + + + + + /// + /// 备 注:更新主题 + /// 默认值: + /// + [SugarColumn(ColumnName = "cultural_title" )] + public string CulturalTitle { get; set; } = null!; + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "task_id" )] + public long TaskId { get; set; } + + + /// + /// 备 注:更新说明 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string? Remark { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/DataClt/Data_collect.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/DataClt/Data_collect.cs new file mode 100644 index 0000000..c95d153 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/DataClt/Data_collect.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.DataClt +{ + /// + /// + /// + [SugarTable("data_collect")] + public class Data_collect : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id" )] + public long Classes_task_id { get; set; } + + + /// + /// 备 注:采集主题 + /// 默认值: + /// + [SugarColumn(ColumnName = "collect_title" )] + public string Collect_title { get; set; } = null!; + + + /// + /// 备 注:添加分析 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string Remark { get; set; } = null!; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/DataClt/Data_collect_userfile.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/DataClt/Data_collect_userfile.cs new file mode 100644 index 0000000..065144f --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/DataClt/Data_collect_userfile.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.DataClt +{ + /// + /// + /// + [SugarTable("data_collect_userfile")] + public class Data_collect_userfile : BaseEntity + { + + + + + /// + /// 备 注:采集id + /// 默认值: + /// + [SugarColumn(ColumnName = "collect_id" )] + public long Collect_id { get; set; } + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long User_id { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id" )] + public long File_id { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime Add_time { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowAbsenceUser.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowAbsenceUser.cs new file mode 100644 index 0000000..288a96a --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowAbsenceUser.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Follow +{ + /// + /// 缺勤记录表 + /// + [SugarTable("follow_absence_user")] + public class FollowAbsenceUser : BaseEntity + { + + + + + /// + /// 备 注:跟课表id + /// 默认值: + /// + [SugarColumn(ColumnName = "follow_id" )] + public long FollowId { get; set; } + + + /// + /// 备 注:缺勤用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowInfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowInfo.cs new file mode 100644 index 0000000..ce9c487 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowInfo.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Follow +{ + /// + /// 跟课记录表 + /// + [SugarTable("follow_info")] + public class FollowInfo : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id" )] + public long ClassesTaskId { get; set; } + + + /// + /// 备 注:课程id + /// 默认值: + /// + [SugarColumn(ColumnName = "class_course_id" )] + public long ClassCourseId { get; set; } + + + /// + /// 备 注:跟课方式1:直播;2:录播; + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_follow_method" )] + public int? ClassesFollowMethod { get; set; } + + + /// + /// 备 注:信号是否稳定;0否;1:是; + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_signal_stability" )] + public int? ClassesSignalStability { get; set; } + + + /// + /// 备 注:整体活跃度,参数id + /// 默认值: + /// + [SugarColumn(ColumnName = "concentration_activity_enum" )] + public int? ConcentrationActivityEnum { get; set; } + + + /// + /// 备 注:整体专注度,参数id + /// 默认值: + /// + [SugarColumn(ColumnName = "concentration_level_enum" )] + public int? ConcentrationLevelEnum { get; set; } + + + /// + /// 备 注:整体问题回答正确率/知识掌握程度,参数id + /// 默认值: + /// + [SugarColumn(ColumnName = "mastery_level_enum" )] + public int? MasteryLevelEnum { get; set; } + + + /// + /// 备 注:其他 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string? Remark { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowKeynoteUser.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowKeynoteUser.cs new file mode 100644 index 0000000..5c46dbd --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowKeynoteUser.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Follow +{ + /// + /// 重点学生记录表 + /// + [SugarTable("follow_keynote_user")] + public class FollowKeynoteUser : BaseEntity + { + + + + + /// + /// 备 注:跟课id + /// 默认值: + /// + [SugarColumn(ColumnName = "follow_id" )] + public long FollowId { get; set; } + + + /// + /// 备 注:重点学生用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + /// + /// 备 注:注意力与专注力,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "attention_focus" )] + public string AttentionFocus { get; set; } = null!; + + + /// + /// 备 注:参与度与积极性,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "participation_enthusiasm" )] + public string ParticipationEnthusiasm { get; set; } = null!; + + + /// + /// 备 注:行为规范与纪律,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "behavior_norms_discipline" )] + public string BehaviorNormsDiscipline { get; set; } = null!; + + + /// + /// 备 注:学习效果与理解困难,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "comprehension_difficulties" )] + public string ComprehensionDifficulties { get; set; } = null!; + + + /// + /// 备 注:情绪与心理状态,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "psychological_state" )] + public string PsychologicalState { get; set; } = null!; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowTeachersituation.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowTeachersituation.cs new file mode 100644 index 0000000..63db1a0 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Follow/FollowTeachersituation.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Follow +{ + /// + /// 落地老师的问题-有参数的 + /// + [SugarTable("follow_teachersituation")] + public class FollowTeachersituation : BaseEntity + { + + + + + /// + /// 备 注:跟课表id + /// 默认值: + /// + [SugarColumn(ColumnName = "follow_id" )] + public long FollowId { get; set; } + + + /// + /// 备 注:问题类型,字典表 + /// 默认值: + /// + [SugarColumn(ColumnName = "param_id" )] + public long ParamId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/MeetingInfo/MeetingInfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/MeetingInfo/MeetingInfo.cs new file mode 100644 index 0000000..beb5161 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/MeetingInfo/MeetingInfo.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.MeetingInfo +{ + /// + /// 参会记录表 + /// + [SugarTable("meeting_info")] + public class MeetingInfo : BaseEntity + { + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id")] + public long ClassesTaskId { get; set; } + + + /// + /// 备 注:会议主题 + /// 默认值: + /// + [SugarColumn(ColumnName = "meeting_title")] + public string MeetingTitle { get; set; } = null!; + + + /// + /// 备 注:参会人员 + /// 默认值: + /// + [SugarColumn(ColumnName = "meeting_username")] + public string MeetingUsername { get; set; } = null!; + + + /// + /// 备 注:会议纪要 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark")] + public string? Remark { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/MeetingInfo/MeetingInfoFile.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/MeetingInfo/MeetingInfoFile.cs new file mode 100644 index 0000000..5933d85 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/MeetingInfo/MeetingInfoFile.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.MeetingInfo +{ + /// + /// 参会记录文件 + /// + [SugarTable("meeting_info_file")] + public class MeetingInfoFile : BaseEntity + { + /// + /// 备 注:会议id + /// 默认值: + /// + [SugarColumn(ColumnName = "meeting_id")] + public long MeetingId { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id")] + public long FileId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Other/Other_info.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Other/Other_info.cs new file mode 100644 index 0000000..83d1623 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Other/Other_info.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Other +{ + /// + /// 其他工作任务记录表 + /// + [SugarTable("other_info")] + public class Other_info : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id" )] + public long Classes_task_id { get; set; } + + + /// + /// 备 注:工作内容 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string? Remark { get; set; } = null!; + + + /// + /// 备 注:工作描述 + /// 默认值: + /// + [SugarColumn(ColumnName = "other_title" )] + public string Other_title { get; set; } = null!; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Other/Other_info_file.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Other/Other_info_file.cs new file mode 100644 index 0000000..1271327 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Other/Other_info_file.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Other +{ + /// + /// 其他工作文件表 + /// + [SugarTable("other_info_file")] + public class Other_info_file : BaseEntity + { + + + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id" )] + public long File_id { get; set; } + + + /// + /// 备 注:其他工作表id + /// 默认值: + /// + [SugarColumn(ColumnName = "other_id" )] + public long Other_id { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckInfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckInfo.cs new file mode 100644 index 0000000..9bd48f3 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckInfo.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.SpotCheck +{ + /// + /// 工作记录表 + /// + [SugarTable("spot_check_info")] + public class SpotCheckInfo : BaseEntity + { + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id")] + public long ClassesTaskId { get; set; } + + + /// + /// 备 注:抽查项目id + /// 默认值: + /// + [SugarColumn(ColumnName = "check_projectid")] + public long CheckProjectid { get; set; } + + + /// + /// 备 注:反馈/反思 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark")] + public string? Remark { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckTypeValue.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckTypeValue.cs new file mode 100644 index 0000000..44f97c4 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckTypeValue.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.SpotCheck +{ + /// + /// 学习行为习惯全面抽查流程标准-类型表-各项具体分值表 + /// + [SugarTable("spot_check_type_value")] + public class SpotCheckTypeValue : BaseEntity + { + /// + /// 备 注:分值 + /// 默认值: + /// + [SugarColumn(ColumnName = "value")] + public int Value { get; set; } + + + /// + /// 备 注:标准内容 + /// 默认值: + /// + [SugarColumn(ColumnName = "value_name")] + public string ValueName { get; set; } = null!; + + + /// + /// 备 注:所属抽查标准 + /// 默认值: + /// + [SugarColumn(ColumnName = "check_id")] + public long CheckId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckUserinfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckUserinfo.cs new file mode 100644 index 0000000..ac2ec6a --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/SpotCheck/SpotCheckUserinfo.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.SpotCheck +{ + /// + /// 抽查人员记录表 + /// + [SugarTable("spot_check_userinfo")] + public class SpotCheckUserinfo : BaseEntity + { + + + + + /// + /// 备 注:记录表id + /// 默认值: + /// + [SugarColumn(ColumnName = "spot_id" )] + public long SpotId { get; set; } + + + /// + /// 备 注:抽查人员id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id" )] + public long UserId { get; set; } + + + /// + /// 备 注:得分 + /// 默认值: + /// + [SugarColumn(ColumnName = "value_total" )] + public int ValueTotal { get; set; } + + + /// + /// 备 注:抽查时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime AddTime { get; set; } + + + /// + /// 备 注:抽查日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_date" )] + public DateTime AddDate { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Talk/TalkInfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Talk/TalkInfo.cs new file mode 100644 index 0000000..fa96af6 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Talk/TalkInfo.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Talk +{ + /// + /// 1对1谈话记录表 + /// + [SugarTable("talk_info")] + public class TalkInfo : BaseEntity + { + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id")] + public long ClassesTaskId { get; set; } + + + /// + /// 备 注:被谈话人id + /// 默认值: + /// + [SugarColumn(ColumnName = "quilt_userid")] + public long QuiltUserid { get; set; } + + + /// + /// 备 注:谈话纪要 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark")] + public string Remark { get; set; } = null!; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Talk/TalkInfoFile.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Talk/TalkInfoFile.cs new file mode 100644 index 0000000..8ea55be --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/Talk/TalkInfoFile.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.Talk +{ + /// + /// 1对1谈话文件表 + /// + [SugarTable("talk_file")] + public class TalkFile : BaseEntity + { + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "talk_id")] + public long Talk_id { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id")] + public long File_id { get; set; } + + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherBehavior/Teacher_behavior.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherBehavior/Teacher_behavior.cs new file mode 100644 index 0000000..707b295 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherBehavior/Teacher_behavior.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.TeacherBehavior +{ + /// + /// 教师行为观察表 + /// + [SugarTable("teacher_behavior")] + public class Teacher_behavior : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id" )] + public long Classes_task_id { get; set; } + + + /// + /// 备 注:观察对象教师id + /// 默认值: + /// + [SugarColumn(ColumnName = "behavior_user_id" )] + public long Behavior_user_id { get; set; } + + + /// + /// 备 注:观察对象教师姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "behavior_user_name" )] + public string Behavior_user_name { get; set; } = null!; + + + /// + /// 备 注:分析/总结 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string? Remark { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherBehavior/Teacher_behavior_question.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherBehavior/Teacher_behavior_question.cs new file mode 100644 index 0000000..3944426 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherBehavior/Teacher_behavior_question.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.TeacherBehavior +{ + /// + /// 教师行为观察表-问题记录表 + /// + [SugarTable("teacher_behavior_question")] + public class Teacher_behavior_question : BaseEntity + { + + + + + /// + /// 备 注:观察记录id + /// 默认值: + /// + [SugarColumn(ColumnName = "tb_id" )] + public long Tb_id { get; set; } + + + /// + /// 备 注:预习安排问题,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "preview_id" )] + public string? Preview_id { get; set; } + + + /// + /// 备 注:预习安排-预习方式问题,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "preview_type_id" )] + public string? Preview_type_id { get; set; } + + + /// + /// 备 注:预习安排-检查方式,参数id + /// 默认值: + /// + [SugarColumn(ColumnName = "inspect_type_enum" )] + public int? Inspect_type_enum { get; set; } + + + /// + /// 备 注:预习安排-预习效果;参数id + /// 默认值: + /// + [SugarColumn(ColumnName = "preview_result_enum" )] + public int? Preview_result_enum { get; set; } + + + /// + /// 备 注:课堂配合,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "cooperation_id" )] + public string? Cooperation_id { get; set; } + + + /// + /// 备 注:课堂配合-巡视频率,参数id + /// 默认值: + /// + [SugarColumn(ColumnName = "cooperation_inspection_enum" )] + public int? Cooperation_inspection_enum { get; set; } + + + /// + /// 备 注:课后观察,参数id,多个用英文逗号分割 + /// 默认值: + /// + [SugarColumn(ColumnName = "after_class_id" )] + public string? After_class_id { get; set; } + + + /// + /// 备 注:问题个数 + /// 默认值: + /// + [SugarColumn(ColumnName = "questions_num" )] + public int Questions_num { get; set; } + + + /// + /// 备 注:记录时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "add_time" )] + public DateTime Add_time { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherTalk/TeacherTalkFile.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherTalk/TeacherTalkFile.cs new file mode 100644 index 0000000..7187f22 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherTalk/TeacherTalkFile.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.TeacherTalk +{ + /// + /// 教师谈话记录文件表 + /// + [SugarTable("teacher_talk_file")] + public class TeacherTalkFile : BaseEntity + { + /// + /// 备 注:谈话id + /// 默认值: + /// + [SugarColumn(ColumnName = "talk_id")] + public long TalkId { get; set; } + + + /// + /// 备 注:文件id + /// 默认值: + /// + [SugarColumn(ColumnName = "file_id")] + public long FileId { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherTalk/TeacherTalkInfo.cs b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherTalk/TeacherTalkInfo.cs new file mode 100644 index 0000000..6ba8f28 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/OA/WorkProcess/TeacherTalk/TeacherTalkInfo.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.OA.WorkProcess.TeacherTalk +{ + /// + /// 教师谈话记录表 + /// + [SugarTable("teacher_talk_info")] + public class TeacherTalkInfo : BaseEntity + { + + + + + /// + /// 备 注:任务id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_task_id" )] + public long ClassesTaskId { get; set; } + + + /// + /// 备 注:被谈话老师用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "quilt_user_id" )] + public long QuiltUserId { get; set; } + + + /// + /// 备 注:被谈话老师用户姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "quilt_user_name" )] + public string QuiltUserName { get; set; } = null!; + + + /// + /// 备 注:谈话纪要 + /// 默认值: + /// + [SugarColumn(ColumnName = "remark" )] + public string? Remark { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/Classes.cs b/LearningOfficer.OA.Core/Entities/UserCenter/Classes.cs new file mode 100644 index 0000000..a89e6f9 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/Classes.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Enums; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 班级表 + /// + [SugarTable("classes"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class Classes : BaseEntity + { + + /// + /// 备 注:名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "Name")] + public string ClassName { get; set; } = null!; + + /// + /// 备 注:学校编号 + /// 默认值: + /// + [SugarColumn(ColumnName = "SchoolId")] + public long SchoolId { get; set; } + + /// + /// 备 注:年级 + /// 默认值: + /// + [SugarColumn(ColumnName = "GradeLevel")] + public string GradeLevel { get; set; } = null!; + + /// + /// 备 注:所属届 + /// 默认值: + /// + [SugarColumn(ColumnName = "GraduationYear")] + public int GraduationYear { get; set; } + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "CreateTime", IsOnlyIgnoreUpdate = true)] + public DateTime CreateTime { get; set; } = DateTime.Now; + + /// + /// 备 注:创建者部门Id + /// 默认值: + /// + [SugarColumn(ColumnName = "CreatePositionId")] + public long? CreatePositionId { get; set; } = 0; + + /// + /// 备 注:删除状态 + /// 默认值: + /// + [SugarColumn(ColumnName = "DeleteState")] + public bool DeleteState { get; set; } + + /// + /// 备 注:班级类型 + /// 默认值: + /// + [SugarColumn(ColumnName = "Type")] + public ClassTypeEnum Type { get; set; } = ClassTypeEnum.云校班; + + /// + /// 备 注:教学层级 1:普通本科 2:重点本科 默认0未设置 + /// 默认值: + /// + [SugarColumn(ColumnName = "TeachingLevel")] + public Common.Enums.TeachingLevelEnum TeachingLevel { get; set; } + + + /// + /// 学校名称 + /// + [SugarColumn(IsIgnore = true)] + public string SchoolName { get; set; } + + /// + /// 备 注:选修方向1 + /// 默认值: + /// + [SugarColumn(ColumnName = "Elective1")] + public int? Elective1 { get; set; } + /// + /// 备 注:选修方向2 + /// 默认值: + /// + [SugarColumn(ColumnName = "Elective2")] + public int? Elective2 { get; set; } + /// + /// 备 注:选修方向3 + /// 默认值: + /// + [SugarColumn(ColumnName = "Elective3")] + public int? Elective3 { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/Cloudschool.cs b/LearningOfficer.OA.Core/Entities/UserCenter/Cloudschool.cs new file mode 100644 index 0000000..c63be94 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/Cloudschool.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Configs; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 云校 + /// + [SugarTable("cloudschool"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class Cloudschool : BaseEntity + { + + /// + /// 备 注:云校名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "Name")] + public string Name { get; set; } = null!; + + /// + /// 备 注:启用状态 + /// 默认值: + /// + [SugarColumn(ColumnName = "Enable")] + public bool Enable { get; set; } = true; + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "CreateTime", IsOnlyIgnoreUpdate = true)] + public DateTime CreateTime { get; set; } = DateTime.Now; + + /// + /// 备 注:删除状态 + /// 默认值: + /// + [SugarColumn(ColumnName = "DeleteState")] + public bool DeleteState { get; set; } + + /// + /// 备 注:更新时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "UpdatedTime", IsOnlyIgnoreInsert = true)] + public DateTime? UpdatedTime { get; set; } = DateTime.Now; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/Cloudschoolrelation.cs b/LearningOfficer.OA.Core/Entities/UserCenter/Cloudschoolrelation.cs new file mode 100644 index 0000000..7ce0513 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/Cloudschoolrelation.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Configs; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// + /// + [SugarTable("cloudschoolrelation"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class Cloudschoolrelation : BaseEntity + { + + + + /// + /// 备 注:学校名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "SchoolName")] + public string SchoolName { get; set; } = ""; + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "CreateTime")] + public DateTime CreateTime { get; set; } + + /// + /// 备 注:学校id + /// 默认值: + /// + [SugarColumn(ColumnName = "SchoolId")] + public long SchoolId { get; set; } + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "CloudSchoolId")] + public long CloudSchoolId { get; set; } + + /// + /// 备 注:云校名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "CloudSchoolName")] + public string CloudSchoolName { get; set; } =""; + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/OaClassesFollowRelationship.cs b/LearningOfficer.OA.Core/Entities/UserCenter/OaClassesFollowRelationship.cs new file mode 100644 index 0000000..7d54269 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/OaClassesFollowRelationship.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Configs; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 学习官与班级的关联关系表 + /// + [SugarTable("oa_classes_follow_relationship"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class OaClassesFollowRelationship : BaseEntity + { + /// + /// 备 注:用户id(学习官id) + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long UserId { get; set; } + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_id")] + public long ClassesId { get; set; } + + /// + /// 备 注:学校id + /// 默认值: + /// + [SugarColumn(ColumnName = "school_id")] + public long SchoolId { get; set; } + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/OaClassesManageRelationship.cs b/LearningOfficer.OA.Core/Entities/UserCenter/OaClassesManageRelationship.cs new file mode 100644 index 0000000..b5bdb76 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/OaClassesManageRelationship.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Configs; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 组长与班级的关联关系表 + /// + [SugarTable("oa_classes_manage_relationship"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class OaClassesManageRelationship : BaseEntity + { + /// + /// 备 注:用户id(学习官组长id) + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long UserId { get; set; } + + /// + /// 备 注:班级id + /// 默认值: + /// + [SugarColumn(ColumnName = "classes_id")] + public long ClassesId { get; set; } + + /// + /// 备 注:学校id + /// 默认值: + /// + [SugarColumn(ColumnName = "school_id")] + public long SchoolId { get; set; } + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/OaGeneralCloudschool.cs b/LearningOfficer.OA.Core/Entities/UserCenter/OaGeneralCloudschool.cs new file mode 100644 index 0000000..4658f6a --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/OaGeneralCloudschool.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Configs; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 总部长绑定的云校 + /// + [SugarTable("oa_general_cloudschool"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class OaGeneralCloudschool : BaseEntity + { + + + + + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "userid")] + public long UserId { get; set; } + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "cloudschoolid")] + public long CloudSchoolId { get; set; } + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/OaUserPermissions.cs b/LearningOfficer.OA.Core/Entities/UserCenter/OaUserPermissions.cs new file mode 100644 index 0000000..1a38534 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/OaUserPermissions.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Configs; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 用户学习官权限表 + /// + [SugarTable("oa_user_permissions"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class OaUserPermissions : BaseEntity + { + /// + /// 备 注:用户id + /// 默认值: + /// + [SugarColumn(ColumnName = "user_id")] + public long UserId { get; set; } + + /// + /// 备 注:角色类型枚举值 1001:部长 1002:组长 1003:学习官 + /// 默认值: + /// + [SugarColumn(ColumnName = "role_enum")] + public SysRoleEnum RoleEnum { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/Position.cs b/LearningOfficer.OA.Core/Entities/UserCenter/Position.cs new file mode 100644 index 0000000..872dda7 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/Position.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Configs; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 职位表 + /// + [SugarTable("position"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class Position : BaseEntity + { + + /// + /// 备 注: + /// 默认值: + /// + [SugarColumn(ColumnName = "Name" )] + public string Name { get; set; } = null!; + + + /// + /// 备 注:上级编号 + /// 默认值: + /// + [SugarColumn(ColumnName = "ParentId" )] + public long ParentId { get; set; } + + + /// + /// 备 注:学校编号 + /// 默认值: + /// + [SugarColumn(ColumnName = "SchoolId" )] + public long SchoolId { get; set; } + + + /// + /// 备 注:年级 + /// 默认值: + /// + [SugarColumn(ColumnName = "GradeLevel" )] + public string GradeLevel { get; set; } = null!; + + + /// + /// 备 注:所属届 + /// 默认值: + /// + [SugarColumn(ColumnName = "GraduationYear" )] + public int GraduationYear { get; set; } + + + /// + /// 备 注:班级编号 + /// 默认值: + /// + [SugarColumn(ColumnName = "ClassId" )] + public long ClassId { get; set; } + + + /// + /// 备 注:职位类型 1:学生 2:教师 3:管理员 + /// 默认值: + /// + [SugarColumn(ColumnName = "PositionType" )] + public int PositionType { get; set; } + + + /// + /// 备 注:职级 1:教委 2:校级 3:年级 4:班级 5:教师 + /// 默认值: + /// + [SugarColumn(ColumnName = "PositionLevel" )] + public int PositionLevel { get; set; } + + + /// + /// 备 注:科目(枚举) + /// 默认值: + /// + [SugarColumn(ColumnName = "SubjectId" )] + public int SubjectId { get; set; } + + + /// + /// 备 注:删除状态 + /// 默认值: + /// + [SugarColumn(ColumnName = "DeleteState" )] + public bool DeleteState { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "CreateTime" )] + public DateTime CreateTime { get; set; } + + + /// + /// 备 注:职位状态 (true=正常 false=锁定) + /// 默认值: + /// + [SugarColumn(ColumnName = "Enable" )] + public bool Enable { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/Positionrelation.cs b/LearningOfficer.OA.Core/Entities/UserCenter/Positionrelation.cs new file mode 100644 index 0000000..41b678a --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/Positionrelation.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Configs; +using Grpc.Core; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 职位关系表 + /// + [SugarTable("positionrelation"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class Positionrelation : BaseEntity + { + + + + + /// + /// 备 注:用户编号 + /// 默认值: + /// + [SugarColumn(ColumnName = "UserId" )] + public long UserId { get; set; } + + + /// + /// 备 注:职位编号 + /// 默认值: + /// + [SugarColumn(ColumnName = "PositionId" )] + public long PositionId { get; set; } + + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "CreateTime" )] + public DateTime CreateTime { get; set; } + + + /// + /// 备 注:启用状态 默认值 true + /// 默认值: + /// + [SugarColumn(ColumnName = "Enable" )] + public bool Enable { get; set; } + + + /// + /// 备 注:职位结束时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "EndTime" )] + public DateTime? EndTime { get; set; } + /// + /// 职位关系状态 + /// + [SugarColumn(ColumnName = "Status")] + public PositionRelationStatusEnum Status { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/School.cs b/LearningOfficer.OA.Core/Entities/UserCenter/School.cs new file mode 100644 index 0000000..8a15241 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/School.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using SqlSugar; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Common.Configs; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 学校表 + /// + [SugarTable("school"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class School : BaseEntity + { + + /// + /// 备 注:名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "Name")] + public string Name { get; set; } = null!; + + /// + /// 备 注:租户数据库路径 空值则为默认值 + /// 默认值: + /// + [SugarColumn(ColumnName = "SassDbPath")] + public string? SassDbPath { get; set; } + + /// + /// 备 注:Logo + /// 默认值: + /// + [SugarColumn(ColumnName = "Logo")] + public string Logo { get; set; } = ""; + + /// + /// 备 注:省Id + /// 默认值: + /// + [SugarColumn(ColumnName = "Pid")] + public int Pid { get; set; } = 0; + + /// + /// 备 注:Pname + /// 默认值: + /// + [SugarColumn(ColumnName = "Pname")] + public string Pname { get; set; } = ""; + + /// + /// 备 注:市Id + /// 默认值: + /// + [SugarColumn(ColumnName = "Cid")] + public int Cid { get; set; } = 0; + + /// + /// 备 注: + /// 默认值: + /// + [SugarColumn(ColumnName = "Cname")] + public string Cname { get; set; } = ""; + + /// + /// 备 注:区Id + /// 默认值: + /// + [SugarColumn(ColumnName = "Rid")] + public int Rid { get; set; } = 0; + + /// + /// 备 注: + /// 默认值: + /// + [SugarColumn(ColumnName = "Rname")] + public string Rname { get; set; } = ""; + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "CreateTime", IsOnlyIgnoreUpdate = true)] + public DateTime CreateTime { get; set; } = DateTime.Now; + + /// + /// 备 注:启用状态 + /// 默认值: + /// + [SugarColumn(ColumnName = "Enable")] + public bool Enable { get; set; } = true; + + /// + /// 备 注:学校编码 + /// 默认值: + /// + [SugarColumn(ColumnName = "EcCode")] + public string? EcCode { get; set; } + + /// + /// 备 注:学校来源 枚举 SchoolourceEnum + /// 默认值: + /// + [SugarColumn(ColumnName = "SchoolSource")] + public int SchoolSource { get; set; } = 0; + + /// + /// 备 注:学校类型 枚举 SchoolTypeEnum + /// 默认值: + /// + [SugarColumn(ColumnName = "Type")] + public SchoolTypeEnum Type { get; set; } = 0; + + /// + /// 备 注:删除状态 + /// 默认值: + /// + [SugarColumn(ColumnName = "DeleteState")] + public bool DeleteState { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/Subjectinfo.cs b/LearningOfficer.OA.Core/Entities/UserCenter/Subjectinfo.cs new file mode 100644 index 0000000..42881ed --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/Subjectinfo.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using LearningOfficer.OA.Common.Configs; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 学科/科目表 + /// + [SugarTable("subjectinfo"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class Subjectinfo : BaseEntity + { + /// + /// 备 注:学科名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "name")] + public string Name { get; set; } + + + /// + /// 备 注:自己数据库Id + /// 默认值: + /// + [SugarColumn(ColumnName = "thisid")] + public long Thisid { get; set; } = 0; + + + /// + /// 备 注:创建时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "createtime", IsOnlyIgnoreUpdate = true)] + public DateTime Createtime { get; set; } = DateTime.Now; + + + /// + /// 备 注:更新时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "updatetime", IsOnlyIgnoreInsert = true)] + public DateTime? Updatetime { get; set; } = DateTime.Now; + + + /// + /// 备 注:是否删除 true=删除 + /// 默认值: + /// + [SugarColumn(ColumnName = "deletestate")] + public bool Deletestate { get; set; } + + + /// + /// 备 注:排序 + /// 默认值: + /// + [SugarColumn(ColumnName = "ordinal")] + public int Ordinal { get; set; } + + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/Entities/UserCenter/User.cs b/LearningOfficer.OA.Core/Entities/UserCenter/User.cs new file mode 100644 index 0000000..06e6fe0 --- /dev/null +++ b/LearningOfficer.OA.Core/Entities/UserCenter/User.cs @@ -0,0 +1,304 @@ +using LearningOfficer.OA.Common.Configs; +using SqlSugar; + +namespace LearningOfficer.OA.Core.Entities.UserCenter +{ + /// + /// 用户表【学生,教师,校职工】 + /// + [SugarTable("user"), Tenant(nameof(ConnectionStringsSettings.UserCenterDb))] + public class User : BaseEntity + { + /// + /// 备 注:模板id + /// 默认值: + /// + [SugarColumn(ColumnName = "TemplateId")] + public long TemplateId { get; set; } = 0; + + /// + /// 备 注:学校Id + /// 默认值: + /// + [SugarColumn(ColumnName = "SchoolId")] + public long? SchoolId { get; set; } + + /// + /// 备 注:用户类型 1:学生 2:所有校职工 + /// 默认值: + /// + [SugarColumn(ColumnName = "UserType")] + public int UserType { get; set; } + + + /// + /// 备 注:账号 + /// 默认值: + /// + [SugarColumn(ColumnName = "Account")] + public string Account { get; set; } = null!; + + /// + /// 备 注:学号/考号 + /// 默认值: + /// + [SugarColumn(ColumnName = "StudentId")] + public string StudentId { get; set; } = ""; + + /// + /// 备 注:身份证号 18位数长度限制 + /// 默认值: + /// + [SugarColumn(ColumnName = "IdCard")] + public string? IdCard { get; set; } + + /// + /// 备 注:密码 + /// 默认值: + /// + [SugarColumn(ColumnName = "Password")] + public string Password { get; set; } = null!; + + /// + /// 备 注:姓名 + /// 默认值: + /// + [SugarColumn(ColumnName = "RealName")] + public string RealName { get; set; } = null!; + + /// + /// 备 注:性别 0=男 1=女 + /// 默认值: + /// + [SugarColumn(ColumnName = "Sex")] + public int Sex { get; set; } = 0; + + /// + /// 备 注:出生日期 + /// 默认值: + /// + [SugarColumn(ColumnName = "BirthDate")] + public DateTime BirthDate { get; set; } = DateTime.Now; + + /// + /// 备 注:家庭户口 + /// 默认值: + /// + [SugarColumn(ColumnName = "Residence")] + public string Residence { get; set; } = ""; + + /// + /// 备 注:民族 + /// 默认值: + /// + [SugarColumn(ColumnName = "National")] + public string National { get; set; } = ""; + + /// + /// 备 注:头像 + /// 默认值: + /// + [SugarColumn(ColumnName = "HeadImage")] + public string HeadImage { get; set; } = ""; + + /// + /// 备 注:省Id + /// 默认值: + /// + [SugarColumn(ColumnName = "Pid")] + public int Pid { get; set; } = 0; + + /// + /// 备 注: + /// 默认值: + /// + [SugarColumn(ColumnName = "Pname")] + public string Pname { get; set; } = ""; + + /// + /// 备 注:市Id + /// 默认值: + /// + [SugarColumn(ColumnName = "Cid")] + public int Cid { get; set; } = 0; + + /// + /// 备 注: + /// 默认值: + /// + [SugarColumn(ColumnName = "Cname")] + public string Cname { get; set; } = ""; + + /// + /// 备 注:区Id + /// 默认值: + /// + [SugarColumn(ColumnName = "Rid")] + public int Rid { get; set; } = 0; + + /// + /// 备 注: + /// 默认值: + /// + [SugarColumn(ColumnName = "Rname")] + public string Rname { get; set; } = ""; + + /// + /// 备 注:微信号 + /// 默认值: + /// + [SugarColumn(ColumnName = "Wx")] + public string Wx { get; set; } = ""; + + /// + /// 备 注:是否完善信息 0:否 1:是 + /// 默认值: + /// + [SugarColumn(ColumnName = "IsPerfectInfo")] + public int IsPerfectInfo { get; set; } = 0; + + /// + /// 备 注:账户状态 0禁用 1正常 + /// 默认值: + /// + [SugarColumn(ColumnName = "State")] + public int State { get; set; } = 1; + + /// + /// 备 注:直播平台编号 + /// 默认值: + /// + [SugarColumn(ColumnName = "LiveId")] + public long LiveId { get; set; } = 0; + + /// + /// 备 注:上次登录时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "LastLoginTime")] + public DateTime LastLoginTime { get; set; } = DateTime.Now; + + /// + /// 备 注:登录IP + /// 默认值: + /// + [SugarColumn(ColumnName = "LastLoginIP")] + public string LastLoginIP { get; set; } = ""; + + /// + /// 备 注:添加时间 + /// 默认值: + /// + [SugarColumn(ColumnName = "CreateTime")] + public DateTime CreateTime { get; set; } = DateTime.Now; + + /// + /// 备 注:层次 + /// 默认值: + /// + [SugarColumn(ColumnName = "Level")] + public int Level { get; set; } = 0; + + /// + /// 备 注:会议系统账号 + /// 默认值: + /// + [SugarColumn(ColumnName = "MeetingAccount")] + public string? MeetingAccount { get; set; } + + /// + /// 备 注:新高考物理化学选科 + /// 默认值: + /// + [SugarColumn(ColumnName = "GLSubject")] + public int? GLSubject { get; set; } + + /// + /// 备 注:新高考,政地化生选科1 + /// 默认值: + /// + [SugarColumn(ColumnName = "GSubject1")] + public int? GSubject1 { get; set; } + + /// + /// 备 注:新高考,政地化生选科2 + /// 默认值: + /// + [SugarColumn(ColumnName = "GSubject2")] + public int? GSubject2 { get; set; } + + /// + /// 备 注:第三方id + /// 默认值: + /// + [SugarColumn(ColumnName = "ThirdPartyId")] + public string? ThirdPartyId { get; set; } + + /// + /// 备 注:电话号码 + /// 默认值: + /// + [SugarColumn(ColumnName = "Phone")] + public string? Phone { get; set; } + + /// + /// 备 注:点阵笔SN + /// 默认值: + /// + [SugarColumn(ColumnName = "PointPenSN")] + public string? PointPenSN { get; set; } + + /// + /// 备 注:删除状态 + /// 默认值: + /// + [SugarColumn(ColumnName = "DeleteState")] + public bool DeleteState { get; set; } = false; + + /// + /// 备 注:互动课堂创建人Id + /// 默认值: + /// + [SugarColumn(ColumnName = "HdktCreatorId")] + public long? HdktCreatorId { get; set; } + + /// + /// 备 注:用户来源 + /// 默认值: + /// + [SugarColumn(ColumnName = "Source")] + public int Source { get; set; } = 0; + + /// + /// 备 注:点阵笔MAC + /// 默认值: + /// + [SugarColumn(ColumnName = "PointPenMAC")] + public string? PointPenMAC { get; set; } + + /// + /// 备 注:创建人名称 + /// 默认值: + /// + [SugarColumn(ColumnName = "Creator")] + public string? Creator { get; set; } + + + /// + /// 备 注:学生阶段级别[初中 高中 中职...][枚举] + /// 默认值: + /// + [SugarColumn(ColumnName = "StagesLevel")] + public int? StagesLevel { get; set; } + + + /// + /// 备 注:云校id + /// 默认值: + /// + [SugarColumn(ColumnName = "CloudSchoolId")] + public long? CloudSchoolId { get; set; } + + } + +} \ No newline at end of file diff --git a/LearningOfficer.OA.Core/LearningOfficer.OA.Core.csproj b/LearningOfficer.OA.Core/LearningOfficer.OA.Core.csproj new file mode 100644 index 0000000..7413792 --- /dev/null +++ b/LearningOfficer.OA.Core/LearningOfficer.OA.Core.csproj @@ -0,0 +1,28 @@ + + + + net8.0 + enable + enable + True + + + + + + + + + + + + + + + + + + + + + diff --git a/LearningOfficer.OA.Core/ServicesInterfaces/ClassTask/ITask_checklistService.cs b/LearningOfficer.OA.Core/ServicesInterfaces/ClassTask/ITask_checklistService.cs new file mode 100644 index 0000000..22f036d --- /dev/null +++ b/LearningOfficer.OA.Core/ServicesInterfaces/ClassTask/ITask_checklistService.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.Classes; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Dtos.OA.ManagerData; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess; +using LearningOfficer.OA.Common.Dtos.School; +using LearningOfficer.OA.Common.Dtos.V2.WorkProcess; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask; +using LearningOfficer.OA.Core.Entities.UserCenter; + +namespace LearningOfficer.OA.Core.ServicesInterfaces.ClassTask +{ + public interface ITask_checklistService : IBaseService + { + public Task> GetBindClassesBySchoolId(long userId); + } +} diff --git a/LearningOfficer.OA.Core/ServicesInterfaces/IBaseService.cs b/LearningOfficer.OA.Core/ServicesInterfaces/IBaseService.cs new file mode 100644 index 0000000..31ea70c --- /dev/null +++ b/LearningOfficer.OA.Core/ServicesInterfaces/IBaseService.cs @@ -0,0 +1,33 @@ +using LearningOfficer.OA.Common.Request; +using LearningOfficer.OA.Common.Response; +using LearningOfficer.OA.Core.Entities; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Core.ServicesInterfaces +{ + public interface IBaseService where TEntity : BaseEntity, new() + { + Task CreateAsync(TEntity entity); + Task InsertReturnBigIdentityAsync(TEntity entity); + Task CreateReturnSnowflakeIdAsync(TEntity entity); + Task> CreateReturnSnowflakeIdAsync(List entity); + Task DeleteByIdsAsync(params dynamic[] ids); + Task DeleteByIdsAsync(params long[] ids); + Task GetByIdAsync(long id); + Task GetFirstAsync(System.Linq.Expressions.Expression> whereExpression); + Task> GetListAsync(System.Linq.Expressions.Expression> whereExpression = null); + Task> GetPageListAsync(PageRequest pagination, Expression> whereExpression = null); + Task> GetPageListAsync(PageRequest pagination, Expression> whereExpression, Expression> orderByExpression = null, OrderByType orderByType = OrderByType.Asc); + Task> GetPageListAsync(PageRequest pagination, Expression> whereExpression = null); + Task GetSingleAsync(System.Linq.Expressions.Expression> whereExpression); + Task UpdateAsync(TEntity entity); + Task UpdateAsync(List entity); + Task UpdateColumsAsync(Expression> columns, Expression> whereExpression); + } +} diff --git a/LearningOfficer.OA.Core/ServicesInterfaces/IUserService.cs b/LearningOfficer.OA.Core/ServicesInterfaces/IUserService.cs new file mode 100644 index 0000000..6678ebe --- /dev/null +++ b/LearningOfficer.OA.Core/ServicesInterfaces/IUserService.cs @@ -0,0 +1,24 @@ +using LearningOfficer.OA.Common.Dtos.Classes; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Dtos.OA.ManagerData; +using LearningOfficer.OA.Common.Dtos.School; +using LearningOfficer.OA.Common.Dtos.User; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Request; +using LearningOfficer.OA.Common.Response; +using LearningOfficer.OA.Core.Entities.UserCenter; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UserCenter.Model.Common; + +namespace LearningOfficer.OA.Core.ServicesInterfaces +{ + public interface IUserService : IBaseService + { + public Task ResetStudentPwd(long userId); + public Task> GetStudentResults(long ClassesId, int IsBackOutStudent); + } +} diff --git a/LearningOfficer.OA.Core/ServicesInterfaces/LoginMobile/ILoginMobilAppService.cs b/LearningOfficer.OA.Core/ServicesInterfaces/LoginMobile/ILoginMobilAppService.cs new file mode 100644 index 0000000..bfb65da --- /dev/null +++ b/LearningOfficer.OA.Core/ServicesInterfaces/LoginMobile/ILoginMobilAppService.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Core.Entities.UserCenter; + +namespace LearningOfficer.OA.Core.ServicesInterfaces.LoginMobile +{ + public interface ILoginMobilAppService : IBaseService + { + Task userLogin(LoginRequest request); + } +} diff --git a/LearningOfficer.OA.Infrastructure/DBContext/SugarRepository.cs b/LearningOfficer.OA.Infrastructure/DBContext/SugarRepository.cs new file mode 100644 index 0000000..76df133 --- /dev/null +++ b/LearningOfficer.OA.Infrastructure/DBContext/SugarRepository.cs @@ -0,0 +1,23 @@ +using LearningOfficer.OA.Core.Entities; +using SqlSugar; + +namespace LearningOfficer.OA.Infrastructure.DBContext +{ + /// + /// SqlSugar通用仓储类 + /// + /// + public class SugarRepository : SimpleClient where TEntity : BaseEntity, new() + { + public SugarRepository(ISqlSugarClient sugarClient) : base(sugarClient) + { + var db = sugarClient.AsTenant().GetConnectionWithAttr(); + base.Context = db; + } + + public IEnumerable Queryable(Func value) + { + throw new NotImplementedException(); + } + } +} diff --git a/LearningOfficer.OA.Infrastructure/LearningOfficer.OA.Infrastructure.csproj b/LearningOfficer.OA.Infrastructure/LearningOfficer.OA.Infrastructure.csproj new file mode 100644 index 0000000..52aee6d --- /dev/null +++ b/LearningOfficer.OA.Infrastructure/LearningOfficer.OA.Infrastructure.csproj @@ -0,0 +1,23 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + + + + + + diff --git a/LearningOfficer.OA.Infrastructure/RabbitMQ/RabbitMQConnectionService.cs b/LearningOfficer.OA.Infrastructure/RabbitMQ/RabbitMQConnectionService.cs new file mode 100644 index 0000000..a355f32 --- /dev/null +++ b/LearningOfficer.OA.Infrastructure/RabbitMQ/RabbitMQConnectionService.cs @@ -0,0 +1,104 @@ +using LearningOfficer.OA.Common.Attributes; +using LearningOfficer.OA.Common.Configs; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using RabbitMQ.Client; +using Serilog; + +namespace LearningOfficer.OA.Infrastructure.RabbitMQ +{ + /// + /// RabbitMQ 连接服务 + /// + public class RabbitMQConnectionService : IAsyncDisposable + { + private readonly RabbitMQConfig _config; + private IConnection? _connection; + private bool _disposed = false; + private readonly SemaphoreSlim _lock = new(1, 1); + + public RabbitMQConnectionService(IOptionsMonitor config) + { + _config = config.CurrentValue; + } + + /// + /// 获取 RabbitMQ 连接 + /// + /// + public async Task GetConnection() + { + if (_connection?.IsOpen == true) + { + return _connection; + } + await _lock.WaitAsync(); + try + { + if (_connection?.IsOpen == true) + { + return _connection; + } + + try + { + var factory = new ConnectionFactory + { + HostName = _config.HostName, + Port = _config.Port, + UserName = _config.UserName, + Password = _config.Password, + VirtualHost = _config.VirtualHost, + AutomaticRecoveryEnabled = true, + NetworkRecoveryInterval = TimeSpan.FromSeconds(10) + }; + + _connection = await factory.CreateConnectionAsync(); + _connection.ConnectionShutdownAsync += _connection_ConnectionShutdownAsync; + + Log.Information("RabbitMQ 连接创建成功: {HostName}:{Port}", _config.HostName, _config.Port); + + return _connection; + } + catch (Exception ex) + { + Log.Error(ex, "RabbitMQ 连接创建失败: {HostName}:{Port}", _config.HostName, _config.Port); + throw; + } + } + finally + { + _lock.Release(); + } + } + + private async Task _connection_ConnectionShutdownAsync(object sender, global::RabbitMQ.Client.Events.ShutdownEventArgs @event) + { + Log.Warning("RabbitMQ 连接断开: {ReplyText}", @event.ReplyText); + await Task.CompletedTask; + } + /// + /// 创建通道 + /// + public async Task CreateChannel() + { + var connection = await GetConnection(); + return await connection.CreateChannelAsync(); + } + + public async ValueTask DisposeAsync() + { + if (!_disposed) + { + if (_connection != null) + { + _connection.ConnectionShutdownAsync -= _connection_ConnectionShutdownAsync; + await _connection.DisposeAsync(); + Log.Information("RabbitMQ 连接已释放"); + } + _disposed = true; + } + GC.SuppressFinalize(this); + } + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Infrastructure/RabbitMQ/RabbitMQProducerService.cs b/LearningOfficer.OA.Infrastructure/RabbitMQ/RabbitMQProducerService.cs new file mode 100644 index 0000000..ddbaae3 --- /dev/null +++ b/LearningOfficer.OA.Infrastructure/RabbitMQ/RabbitMQProducerService.cs @@ -0,0 +1,219 @@ +using LearningOfficer.OA.Common.Attributes; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Dtos.RabbitMQ; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Newtonsoft.Json; +using RabbitMQ.Client; +using System.Text; +using System.Threading.Tasks; +using Yitter.IdGenerator; + +namespace LearningOfficer.OA.Infrastructure.RabbitMQ +{ + /// + /// RabbitMQ 生产者服务 + /// + public class RabbitMQProducerService + { + private readonly RabbitMQConfig _config; + private readonly RabbitMQConnectionService _connectionService; + + public RabbitMQProducerService( + IOptionsMonitor config, + RabbitMQConnectionService connectionService) + { + _config = config.CurrentValue; + _connectionService = connectionService; + } + /// + /// 发送消息到队列 + /// + /// 消息类型 + /// 消息内容 + /// 队列配置 + public async Task SendMessage(T message, BaseMqBusinessConfig busConfig, RabbitMQMessageTypeEnum MessageType) + { + try + { + using var channel = await _connectionService.CreateChannel(); + + var actualQueueName = busConfig.QueueName; + + // 声明队列 + await channel.QueueDeclareAsync(queue: actualQueueName, + durable: busConfig.Durable, + exclusive: false, + autoDelete: busConfig.AutoDelete, + arguments: null); + var data = new RabbitMQMessageDto() + { + CorrelationId = Guid.NewGuid().ToString(), + CreatedAt = DateTime.UtcNow, + Data = message, + ExchangeName = "", + Id = YitIdHelper.NextId(), + MessageType = MessageType, + RoutingKey = actualQueueName + }; + // 序列化消息 + var json = JsonConvert.SerializeObject(data); + var body = Encoding.UTF8.GetBytes(json); + + // 发布消息 + await channel.BasicPublishAsync(exchange: "", + routingKey: actualQueueName, + body: body); + + Console.WriteLine($"消息发送成功 - 队列: {actualQueueName}, 消息类型: {typeof(T).Name}"); + } + catch (Exception ex) + { + Console.WriteLine($"消息发送失败 - 队列: {busConfig.QueueName}, 消息类型: {typeof(T).Name}, 错误: {ex.Message}"); + throw; + } + } + /// + /// 发送消息到队列 + /// + /// 消息类型 + /// 消息内容 + /// 队列名称 + public async Task SendMessage(T message, string queueName, RabbitMQMessageTypeEnum MessageType) + { + try + { + using var channel = await _connectionService.CreateChannel(); + + var actualQueueName = queueName; + + // 声明队列 + await channel.QueueDeclareAsync(queue: actualQueueName, + durable: _config.imMq.Durable, + exclusive: false, + autoDelete: _config.imMq.AutoDelete, + arguments: null); + + var data = new RabbitMQMessageDto() + { + CorrelationId = Guid.NewGuid().ToString(), + CreatedAt = DateTime.UtcNow, + Data = message, + ExchangeName = "", + Id = YitIdHelper.NextId(), + MessageType = MessageType, + RoutingKey = actualQueueName + }; + // 序列化消息 + var json = JsonConvert.SerializeObject(data); + var body = Encoding.UTF8.GetBytes(json); + + // 发布消息 + await channel.BasicPublishAsync(exchange: "", + routingKey: actualQueueName, + body: body); + + Console.WriteLine($"消息发送成功 - 队列: {actualQueueName}, 消息类型: {typeof(T).Name}"); + } + catch (Exception ex) + { + Console.WriteLine($"消息发送失败 - 队列: {queueName}, 消息类型: {typeof(T).Name}, 错误: {ex.Message}"); + throw; + } + } + + /// + /// 发送消息到交换机 + /// + /// 消息类型 + /// 消息内容 + /// 交换机名称 + /// 路由键 + public async Task SendMessageToExchange(T message, string exchangeName, string routingKey, RabbitMQMessageTypeEnum MessageType) + { + try + { + using var channel = await _connectionService.CreateChannel(); + // 声明交换机(主题交换机) + await channel.ExchangeDeclareAsync(exchange: exchangeName, + type: ExchangeType.Topic, + durable: _config.imMq.Durable, + autoDelete: _config.imMq.AutoDelete); + + var data = new RabbitMQMessageDto() + { + CorrelationId = Guid.NewGuid().ToString(), + CreatedAt = DateTime.UtcNow, + Data = message, + ExchangeName = exchangeName, + Id = YitIdHelper.NextId(), + MessageType = MessageType, + RoutingKey = routingKey + }; + // 序列化消息 + var json = JsonConvert.SerializeObject(data); + var body = Encoding.UTF8.GetBytes(json); + + // 发布消息 + await channel.BasicPublishAsync(exchange: exchangeName, + routingKey: routingKey, + body: body); + + Console.WriteLine($"消息发送成功 - 交换机: {exchangeName}, 路由键: {routingKey}, 消息类型: {typeof(T).Name}"); + } + catch (Exception ex) + { + Console.WriteLine($"消息发送失败 - 交换机: {exchangeName}, 路由键: {routingKey}, 消息类型: {typeof(T).Name}, 错误: {ex.Message}"); + throw; + } + } + + /// + /// 发送消息到交换机 + /// + /// 消息类型 + /// 消息内容 + /// 交换机配置 + public async Task SendMessageToExchange(T message, BaseMqBusinessConfig busConfig, RabbitMQMessageTypeEnum MessageType) + { + try + { + using var channel = await _connectionService.CreateChannel(); + + var actualExchangeName = busConfig.ExchangeName; + var actualRoutingKey = busConfig.RoutingKey; + + // 声明交换机(主题交换机) + await channel.ExchangeDeclareAsync(exchange: actualExchangeName, + type: ExchangeType.Topic, + durable: busConfig.Durable, + autoDelete: busConfig.AutoDelete); + var data = new RabbitMQMessageDto() + { + CorrelationId = Guid.NewGuid().ToString(), + CreatedAt = DateTime.UtcNow, + Data = message, + ExchangeName = busConfig.ExchangeName, + Id = YitIdHelper.NextId(), + MessageType = MessageType, + RoutingKey = busConfig.RoutingKey + }; + // 序列化消息 + var json = JsonConvert.SerializeObject(data); + var body = Encoding.UTF8.GetBytes(json); + + // 发布消息 + await channel.BasicPublishAsync(exchange: actualExchangeName, + routingKey: actualRoutingKey, + body: body); + + Console.WriteLine($"消息发送成功 - 交换机: {actualExchangeName}, 路由键: {actualRoutingKey}, 消息类型: {typeof(T).Name}"); + } + catch (Exception ex) + { + Console.WriteLine($"消息发送失败 - 交换机: {busConfig.ExchangeName}, 路由键: {busConfig.RoutingKey}, 消息类型: {typeof(T).Name}, 错误: {ex.Message}"); + throw; + } + } + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Infrastructure/Redis/RedisHelper.cs b/LearningOfficer.OA.Infrastructure/Redis/RedisHelper.cs new file mode 100644 index 0000000..bf3bfa4 --- /dev/null +++ b/LearningOfficer.OA.Infrastructure/Redis/RedisHelper.cs @@ -0,0 +1,119 @@ +using FreeRedis; +using Masuit.Tools; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Meeting.Infrastructure +{ + public abstract class RedisHelper + { + + private static RedisClient _instance; + + /// + /// redis实例 + /// + public static RedisClient Instance + { + get + { + if (_instance == null) + { + throw new Exception("使用前初始化redis静态访问类 RedisHelper.Initialization(new FreeRedis.RedisClient(\"127.0.0.1:6379,password=123,defaultDatabase=13,maxpoolsize=50,prefix=key前辍\"));"); + } + + return _instance; + } + } + public static void SetLoginToken(long userId, string token) + { + var key = "Login_Token"; + Instance.HSet(key, userId.ToString(), token); + } + public static void DeleteLoginToken(long userId) + { + var key = "Login_Token"; + Instance.HDel(key, userId.ToString()); + } + + + /// + /// 初始化redis静态访问类 RedisHelper.Initialization(new FreeRedis.RedisClient(\"127.0.0.1:6379,password=123,defaultDatabase=13,maxpoolsize=50,prefix=key前辍\")) + /// + /// + public static void Initialization(string connectionString) + { + _instance = new FreeRedis.RedisClient(connectionString) + { + Serialize = (x) => x.ToJsonString(), + Deserialize = (x, t) => JsonConvert.DeserializeObject(x, t), + }; + } + + internal static ThreadLocal rnd = new ThreadLocal(() => new Random()); + /// + /// 随机秒(防止所有key同一时间过期,雪崩) + /// + /// 最小秒数 + /// 最大秒数 + /// + public static int RandomExpired(int minTimeoutSeconds, int maxTimeoutSeconds) => rnd.Value.Next(minTimeoutSeconds, maxTimeoutSeconds); + + /// + /// 获取Redis分布式锁 + /// + /// 锁键 + /// 锁值(建议使用GUID) + /// 过期时间(秒) + /// 是否获取成功 + public static bool TryLock(string lockKey, string lockValue, int expireSeconds = 30) + { + return Instance.SetNx(lockKey, lockValue, expireSeconds); + } + + /// + /// 释放Redis分布式锁 + /// + /// 锁键 + /// 锁值(必须与加锁时一致) + /// 是否释放成功 + public static bool ReleaseLock(string lockKey, string lockValue) + { + // 使用Lua脚本确保原子性:只有当锁的值匹配时才删除 + const string luaScript = @" + if redis.call('GET', KEYS[1]) == ARGV[1] then + return redis.call('DEL', KEYS[1]) + else + return 0 + end"; + + var result = Instance.Eval(luaScript, new[] { lockKey }, new[] { lockValue }); + return (long)result == 1; + } + + /// + /// 延长Redis锁的过期时间 + /// + /// 锁键 + /// 锁值 + /// 新的过期时间(秒) + /// 是否续期成功 + public static bool RenewLock(string lockKey, string lockValue, int expireSeconds) + { + // 使用Lua脚本确保原子性:只有当锁的值匹配时才更新过期时间 + const string luaScript = @" + if redis.call('GET', KEYS[1]) == ARGV[1] then + return redis.call('EXPIRE', KEYS[1], ARGV[2]) + else + return 0 + end"; + + var result = Instance.Eval(luaScript, new[] { lockKey }, new[] { lockValue, expireSeconds.ToString() }); + return (long)result == 1; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/.config/dotnet-tools.json b/LearningOfficer.OA.Mobile.Api/.config/dotnet-tools.json new file mode 100644 index 0000000..ef95326 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/.config/dotnet-tools.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-ef": { + "version": "9.0.9", + "commands": [ + "dotnet-ef" + ], + "rollForward": false + } + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Mobile.Api/AntDeploy.json b/LearningOfficer.OA.Mobile.Api/AntDeploy.json new file mode 100644 index 0000000..d9f85b9 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/AntDeploy.json @@ -0,0 +1,116 @@ +{ + "Env": [ + { + "Name": "2.7", + "ServerList": [], + "LinuxServerList": [ + { + "UserName": "root", + "Pwd": "DA6B2327ABE29C3CCB8687B1A7008DFA", + "Host": "192.168.2.7", + "NickName": "2.7", + "IIsFireUrl": null, + "DockerFireUrl": "", + "WindowsServiceFireUrl": null, + "LinuxServiceFireUrl": null + } + ], + "IgnoreList": [], + "WindowsBackUpIgnoreList": [] + } + ], + "IIsConfig": { + "SdkType": null, + "WebSiteName": "", + "LastEnvName": null, + "EnvPairList": [ + { + "EnvName": "2.7", + "ConfigName": "", + "LinuxEnvParam": null, + "DockerPort": null, + "DockerEnvName": null, + "DockerVolume": null, + "DockerOther": null + } + ] + }, + "WindowsServiveConfig": { + "ServiceName": "", + "SdkType": null, + "LastEnvName": null, + "EnvPairList": [ + { + "EnvName": "2.7", + "ConfigName": "", + "LinuxEnvParam": null, + "DockerPort": null, + "DockerEnvName": null, + "DockerVolume": null, + "DockerOther": null + } + ] + }, + "LinuxServiveConfig": { + "ServiceName": "", + "EnvParam": "", + "LastEnvName": null, + "EnvPairList": [ + { + "EnvName": "2.7", + "ConfigName": "", + "LinuxEnvParam": null, + "DockerPort": null, + "DockerEnvName": null, + "DockerVolume": null, + "DockerOther": null + } + ] + }, + "DockerConfig": { + "Prot": "17288", + "AspNetCoreEnv": "", + "LastEnvName": "2.7", + "RemoveDaysFromPublished": "10", + "WorkDir": "", + "Volume": "", + "Other": "--name oa.newmobile.api -e ASPNETCORE_ENVIRONMENT=Development -e TZ=Asia/Shanghai", + "EnvPairList": [ + { + "EnvName": "2.7", + "ConfigName": null, + "LinuxEnvParam": null, + "DockerPort": "17288", + "DockerEnvName": "", + "DockerVolume": "", + "DockerOther": "--name oa.newmobile.api -e ASPNETCORE_ENVIRONMENT=Development -e TZ=Asia/Shanghai" + } + ] + }, + "DockerImageConfig": { + "BaseHttpProxy": "", + "BaseImage": "", + "BaseImageCredential": { + "UserName": "", + "Password": "" + }, + "TargetImage": "", + "TargetHttpProxy": "", + "TargetTags": [ + "" + ], + "TargetImageCredential": { + "UserName": "", + "Password": "" + }, + "ImageFormat": "Docker", + "Entrypoint": [ + "" + ], + "Cmd": [ + "" + ], + "IgnoreList": [], + "SkipExistingImages": false + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/ApiVersioningServiceCollectionExtensions.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/ApiVersioningServiceCollectionExtensions.cs new file mode 100644 index 0000000..4c5eb2f --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/ApiVersioningServiceCollectionExtensions.cs @@ -0,0 +1,37 @@ +using Asp.Versioning; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + /// + /// Api版本控制服务扩展类 + /// + public static class ApiVersioningServiceCollectionExtensions + { + /// + /// 添加Api版本控制服务 + /// + /// + /// + public static IServiceCollection AddApiVersion(this IServiceCollection services) + { + services.AddApiVersioning(config => + { + // 默认的Api版号 + config.DefaultApiVersion = new ApiVersion(1, 0); + // 未指定Api版号的时候,使用默认版号 + config.AssumeDefaultVersionWhenUnspecified = true; + // 是否在返回响应头中返回Api版本信息 + config.ReportApiVersions = true; + + }).AddApiExplorer(options => + { + // Api 版本分组名称 + options.GroupNameFormat = "'v'VVV"; + // 未指定Api版号的时候,使用默认版号 + options.SubstituteApiVersionInUrl = true; + }); + + return services; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/BatchRegisterServiceCollectionExtension.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/BatchRegisterServiceCollectionExtension.cs new file mode 100644 index 0000000..524ab7d --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/BatchRegisterServiceCollectionExtension.cs @@ -0,0 +1,198 @@ +using LearningOfficer.OA.Common.Attributes; +using Masuit.Tools; +using Microsoft.Extensions.DependencyModel; +using Serilog; +using System.Reflection; +using System.Runtime.Loader; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + /// + /// 批量注册服务 + /// + public static class BatchRegisterServiceCollectionExtension + { + /// + /// 批量注册带属性的服务和后台服务 + /// + /// + public static void BatchRegisterServices(this IServiceCollection services) + { + var allAssembly = GetAllAssembly(); + + services.RegisterServiceByAttribute(ServiceLifetime.Singleton, allAssembly); + services.RegisterServiceByAttribute(ServiceLifetime.Scoped, allAssembly); + services.RegisterServiceByAttribute(ServiceLifetime.Transient, allAssembly); + + services.RegisterBackgroundService(allAssembly); + } + /// + /// 通过 InjectAttribute 批量注册服务 + /// + /// + /// + private static void RegisterServiceByAttribute(this IServiceCollection services, ServiceLifetime serviceLifetime, List allAssembly) + { + var types = allAssembly.SelectMany(t => t.GetTypes()) + .Where(t => t.GetCustomAttributes(typeof(InjectAttribute), false).Length > 0 && + t.GetCustomAttribute()?.Lifetime == serviceLifetime && + t.IsClass && !t.IsAbstract).ToList(); + + foreach (var type in types) + { + var baseInterfaces = type.BaseType?.GetInterfaces(); + Type? typeInterface = null; + + // 获取所有接口,然后过滤掉系统接口和常见的不适合DI的接口 + var allInterfaces = type.GetInterfaces(); + var filteredInterfaces = allInterfaces.Where(IsCustomInterface).ToList(); + + // 如果没有自定义接口,则使用直接注入 + if (filteredInterfaces.Count == 0) + { + //服务非继承自接口的直接注入 + switch (serviceLifetime) + { + case ServiceLifetime.Singleton: services.AddSingleton(type); break; + case ServiceLifetime.Scoped: services.AddScoped(type); break; + case ServiceLifetime.Transient: services.AddTransient(type); break; + } + Log.Information("直接注入服务: {TypeName} (生命周期: {Lifetime})", type.Name, serviceLifetime); + } + else + { + // 如果有多个自定义接口,选择最合适的接口 + typeInterface = ChooseBestInterface(filteredInterfaces, type); + + //服务继承自接口的和接口一起注入 + switch (serviceLifetime) + { + case ServiceLifetime.Singleton: services.AddSingleton(typeInterface, type); break; + case ServiceLifetime.Scoped: services.AddScoped(typeInterface, type); break; + case ServiceLifetime.Transient: services.AddTransient(typeInterface, type); break; + } + Log.Information("接口注入服务: {TypeName} -> {InterfaceName} (生命周期: {Lifetime})", + type.Name, typeInterface.Name, serviceLifetime); + } + } + } + + + /// + /// 注册后台服务 + /// + /// + /// + private static void RegisterBackgroundService(this IServiceCollection services, List allAssembly) + { + List types = allAssembly.SelectMany(t => t.GetTypes()).Where(t => typeof(BackgroundService).IsAssignableFrom(t) && t.IsClass && !t.IsAbstract).ToList(); + + foreach (var type in types) + { + services.AddSingleton(typeof(IHostedService), type); + } + } + /// + /// 判断是否为自定义接口(过滤掉系统接口和常见的不适合DI的接口) + /// + /// 接口类型 + /// + private static bool IsCustomInterface(Type interfaceType) + { + // 系统命名空间的接口(不适合DI) + var systemNamespaces = new[] + { + "System", + "Microsoft", + "Windows", + "IDisposable", + "IComparable", + "IEquatable", + "IEnumerable", + "ICollection", + "IList", + "IAsyncEnumerable", + "IAsyncDisposable" + }; + + // 如果接口名称包含系统命名空间或常见系统接口名称,则过滤掉 + if (systemNamespaces.Any(ns => interfaceType.Namespace?.StartsWith(ns) == true || + interfaceType.Name.StartsWith(ns))) + { + return false; + } + + // 检查接口是否有自定义项目的命名空间 + var customNamespaces = new[] + { + "LearningOfficer.OA", + "LearningOfficer" + }; + + // 如果接口有自定义项目的命名空间,则认为是自定义接口 + return customNamespaces.Any(ns => interfaceType.Namespace?.StartsWith(ns) == true); + } + + /// + /// 从多个自定义接口中选择最合适的接口 + /// + /// 接口列表 + /// 实现类型 + /// + private static Type ChooseBestInterface(List interfaces, Type implementationType) + { + // 如果只有一个接口,直接返回 + if (interfaces.Count == 1) + return interfaces[0]; + + // 优先选择名称匹配的接口(例如:MyService -> IMyService) + var serviceName = implementationType.Name; + var preferredInterface = interfaces.FirstOrDefault(i => + i.Name == "I" + serviceName || + i.Name == serviceName.Replace("Service", "").Replace("Impl", "") + "Service"); + + if (preferredInterface != null) + return preferredInterface; + + // 按接口名称排序,选择最合适的 + return interfaces + .OrderBy(i => i.Name.StartsWith("I") ? 0 : 1) // 优先选择 I 开头的接口 + .ThenBy(i => i.Name.Length) // 选择名称较短的接口 + .First(); + } + /// + /// 获取全部 Assembly + /// + /// + private static List GetAllAssembly() + { + var allAssemblies = new List(); + var loadedAssemblies = new HashSet(); + + var dependencyContext = DependencyContext.Default; + var libraries = dependencyContext.RuntimeLibraries + .Where(lib => !lib.Serviceable && lib.Type != "package") + .ToList(); + + foreach (var library in libraries) + { + try + { + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(library.Name)); + if (loadedAssemblies.Add(assembly.FullName)) + { + allAssemblies.Add(assembly); + } + } + catch (Exception) + { + Log.Fatal("加载程序集失败:{0}", library.Name); + // Log or handle the exception if necessary + } + } + + return allAssemblies; + } + + } +} diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/ConfigureOptionServiceCollectionExtension.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/ConfigureOptionServiceCollectionExtension.cs new file mode 100644 index 0000000..b55ef1d --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/ConfigureOptionServiceCollectionExtension.cs @@ -0,0 +1,37 @@ +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Dtos.ALiYun; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess.TaskFollow; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + /// + /// 强类型配置服务 + /// + public static class ConfigureOptionServiceCollectionExtension + { + + /// + /// 添加强类型配置服务 + /// + /// + public static void AddConfigureOptions(this IServiceCollection services, IConfiguration configuration) + { + services.Configure(configuration.GetSection("nacos")); + services.AddOptions(); + services.Configure(configuration.GetSection("OSSConfig")); + services.Configure(configuration.GetSection("testAccount")); + services.Configure(configuration.GetSection("ImConfig")); + services.Configure(configuration.GetSection("ClassCourseTable")); + services.Configure(configuration.GetSection("HangFireSettings")); + services.Configure(configuration.GetSection("UpAppVersion")); + services.Configure(configuration.GetSection("MobileToH5Config")); + + services.Configure(configuration.GetSection("DataCollectionConfig")); + services.Configure(configuration.GetSection("RabbitMQ")); + services.Configure(configuration.GetSection("BlueThinkConfig")); + //services.Configure(configuration.GetSection("ConnectionStrings")); + + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/JWTAuthServiceCollectionExtensions.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/JWTAuthServiceCollectionExtensions.cs new file mode 100644 index 0000000..1441604 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/JWTAuthServiceCollectionExtensions.cs @@ -0,0 +1,72 @@ +using LearningOfficer.OA.Common.Configs; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.IdentityModel.Tokens; +using System.Text; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + public static class JWTAuthServiceCollectionExtensions + { + /// + /// Jwt认证服务 + /// + /// + /// + /// + public static IServiceCollection AddJwtAuth(this IServiceCollection services, IConfiguration configuration) + { + //将配置文件中的相关内容反序列化 + var jwtOption = configuration.GetSection("Jwt").Get(); + + services.AddAuthentication(options => + { + options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; + options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + }).AddJwtBearer(options => + { + options.Events = new JwtBearerEvents + { + //验证失败时的处理 + OnAuthenticationFailed = context => + { + //若失败类型为过期,则返回特定Header,便于客户端判断 + if (context.Exception.GetType() == typeof(SecurityTokenExpiredException)) + context.Response.Headers.Add("tokenErr", "expired"); + return Task.CompletedTask; + }, + // 配置 SignalR 使用 JWT + OnMessageReceived = context => + { + var accessToken = context.Request.Query["access_token"]; + var path = context.HttpContext.Request.Path; + if (!string.IsNullOrEmpty(accessToken) && path.StartsWithSegments("/signalr")) + { + context.Token = accessToken; + } + return Task.CompletedTask; + } + }; + + options.RequireHttpsMetadata = false; + options.SaveToken = true; + + options.TokenValidationParameters = new TokenValidationParameters() + { + ValidateIssuer = true, //是否验证Issuer + ValidIssuer = jwtOption.Issuer, //发行人Issuer + ValidateAudience = true, //是否验证Audience + ValidAudience = jwtOption.Audience, //订阅人Audience + ValidateIssuerSigningKey = true, //是否验证SecurityKey + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtOption.AccessSecret)), //SecurityKey + ValidateLifetime = true, //是否验证失效时间 + ClockSkew = TimeSpan.FromSeconds(jwtOption.ClockSkew), //过期时间容错值,解决服务器端时间不同步问题(秒) + RequireExpirationTime = true, + }; + }); + + services.AddAuthorization(); + + return services; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/NacosServiceCollectionExtension.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/NacosServiceCollectionExtension.cs new file mode 100644 index 0000000..3573f22 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/NacosServiceCollectionExtension.cs @@ -0,0 +1,23 @@ +using Nacos.V2.DependencyInjection; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + /// + /// 强类型配置服务 + /// + public static class NacosServiceCollectionExtension + { + + /// + /// 添加强类型配置服务 + /// + /// + public static void AddNacos(this IServiceCollection services, IConfiguration configuration, IHostBuilder host) + { + services.AddNacosV2Config(configuration); + services.AddNacosV2Naming(configuration); + host.UseNacosConfig("nacos"); + //services.AddNacosAspNet(configuration, section: "nacos"); + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/RedisServiceCollectionExtensions.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/RedisServiceCollectionExtensions.cs new file mode 100644 index 0000000..38922dc --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/RedisServiceCollectionExtensions.cs @@ -0,0 +1,22 @@ +using LearningOfficer.OA.Common.Configs; +using Meeting.Infrastructure; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + public static class RedisServiceCollectionExtensions + { + /// + /// 添加Redis服务 + /// + /// + /// + /// + public static IServiceCollection AddRedis(this IServiceCollection services, IConfiguration configuration) + { + var connectionStrings = configuration.GetSection("ConnectionStrings").Get(); + + RedisHelper.Initialization(connectionStrings.Redis); + return services; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SerilogServiceCollectionExtensions.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SerilogServiceCollectionExtensions.cs new file mode 100644 index 0000000..eacdced --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SerilogServiceCollectionExtensions.cs @@ -0,0 +1,56 @@ +using Serilog; +using Serilog.Sinks.Grafana.Loki; +using System; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + public static class SerilogServiceCollectionExtensions + { + /// + /// 添加Serilog + /// + /// + /// + /// + public static IServiceCollection AddSerilog(this IServiceCollection services, IConfiguration configuration, IHostBuilder hostBuilder, IHostEnvironment environment) + { + var labels = new List + { + new LokiLabel + { + Key="app", + Value=environment.ApplicationName + }, + new LokiLabel + { + Key="env", + Value=environment.EnvironmentName + }, + }; + + // 配置 Serilog + var logger = new LoggerConfiguration() + .WriteTo.Console() + .Enrich.FromLogContext(); + + //if (environment.IsDevelopment()) + //{ + logger.MinimumLevel.Information() + .WriteTo.GrafanaLoki(configuration["GrafanaLoki:LokiUri"], labels, new List() + { + //"RequestId","Path" + }, tenant: configuration["GrafanaLoki:TenantId"]); + + //} + //else + //{ + // logger.MinimumLevel.Information() + // .WriteTo.GrafanaLoki(configuration["GrafanaLoki:LokiUri"], labels); + //} + + Log.Logger = logger.CreateLogger(); + services.AddSerilog(Log.Logger); + return services; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SqlSugarServiceCollectionExtensions.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SqlSugarServiceCollectionExtensions.cs new file mode 100644 index 0000000..f6a86c9 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SqlSugarServiceCollectionExtensions.cs @@ -0,0 +1,117 @@ +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Infrastructure.DBContext; +using Serilog; +using SqlSugar; +using System.Text.RegularExpressions; +using Yitter.IdGenerator; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + public static class SqlSugarServiceCollectionExtensions + { + /// + /// 添加SqlSugar + /// + /// + /// + /// + public static IServiceCollection AddSqlSugar(this IServiceCollection services, IConfiguration configuration, IWebHostEnvironment env) + { + var connectionStrings = configuration.GetSection("ConnectionStrings").Get(); + + //YitIdHelper.SetIdGenerator(new IdGeneratorOptions(configuration.GetValue("SnowFlakeWorkId"))); + + // 自定义雪花ID算法 程序启动时执行一次就行 + StaticConfig.CustomSnowFlakeFunc = () => + { + return YitIdHelper.NextId(); + }; + + services.AddScoped(provider => + { + var serviceProvider = provider; // 获取 IServiceProvider + List configs = new() + { + new ConnectionConfig + { + DbType = DbType.MySql, + ConfigId = nameof(connectionStrings.Db), + ConnectionString = connectionStrings?.Db ?? throw new InvalidOperationException("Connection string cannot be null."), + IsAutoCloseConnection = true, + AopEvents = SetAopEvents(connectionStrings.Db, env.EnvironmentName, serviceProvider), + }, + + new ConnectionConfig + { + DbType = DbType.MySql, + ConfigId = nameof(connectionStrings.UserCenterDb), + ConnectionString = connectionStrings?.UserCenterDb ?? throw new InvalidOperationException("Connection string cannot be null."), + IsAutoCloseConnection = true, + AopEvents = SetAopEvents(connectionStrings.UserCenterDb, env.EnvironmentName, serviceProvider), + } + }; + + return new SqlSugarClient(configs); + }); + + services.AddScoped(typeof(SugarRepository<>)); + + return services; + } + + private static AopEvents SetAopEvents(string connectionString, string environmentName, IServiceProvider serviceProvider) + { + var aopEvents = new AopEvents(); + + if (environmentName == Environments.Development) + { + // 正则表达式匹配Ip + var ipMatch = Regex.Match(connectionString, @"((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))"); + + var connections = connectionString.Split(';'); + string dbNamne = string.Empty; + foreach (var item in connections) + { + if (item.Contains("Database")) + { + dbNamne = item.Split('=')[1]; + } + } + + aopEvents.OnLogExecuting = (sql, pars) => + { + // 打印 Sql 语句 + Console.WriteLine($"执行Sql:{Environment.NewLine}{UtilMethods.GetNativeSql(sql, pars)}"); + Log.Logger.Debug($"执行Sql:{Environment.NewLine}{UtilMethods.GetNativeSql(sql, pars)}"); + }; + } + + //aopEvents.DataExecuting += (oldValue, entityInfo) => + //{ + // // 获取 ICurrentUserService + // var currentUserService = serviceProvider.GetService(); + + + // //if (entityInfo.EntityColumnInfo.IsPrimarykey && entityInfo.EntityValue is BaseEntity baseEntity) + // //{ + // // if (entityInfo.OperationType == DataFilterType.InsertByObject) + // // { + // // // 插入时填充创建信息 + // // baseEntity.CreatedUserId = currentUserService.GetUserId(); + // // baseEntity.CreatedUserName = currentUserService.GetUserName(); + // // baseEntity.CreatedUserRealname = currentUserService.GetUserName(); + // // } + // // else if (entityInfo.OperationType == DataFilterType.UpdateByObject) + // // { + // // // 更新时填充修改信息 + // // baseEntity.ModifiedUserId = currentUserService.GetUserId(); + // // baseEntity.ModifiedUserName = currentUserService.GetUserName(); + // // baseEntity.ModifiedUserRealname = currentUserService.GetUserName(); + // // } + // //} + //}; + + return aopEvents; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SwaggerServiceCollectionExtensions.cs b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SwaggerServiceCollectionExtensions.cs new file mode 100644 index 0000000..8d06941 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/CollectionExtensions/SwaggerServiceCollectionExtensions.cs @@ -0,0 +1,87 @@ +using LearningOfficer.OA.Mobile.Api.Filters; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Microsoft.OpenApi.Models; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Mobile.Api.CollectionExtensions +{ + public static class SwaggerServiceCollectionExtensions + { + /// + /// Swagger注入 + /// + /// + public static void AddSwagger(this IServiceCollection services) + { + services.AddSwaggerGen(c => + { + c.SwaggerDoc("v1", new OpenApiInfo + { + Title = "OA移动端Api", + Version = "v1" + + }); + // v2 文档 + c.SwaggerDoc("v2", new OpenApiInfo + { + Title = "OA移动端Api", + Version = "v2" + }); + // v3 文档 + c.SwaggerDoc("v3", new OpenApiInfo + { + Title = "OA移动端Api", + Version = "v3" + }); + c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() + { + Description = "在下框中输入请求头中需要添加Jwt授权Token:Bearer {Token},注意中间有空格", + Name = "Authorization", + In = ParameterLocation.Header, + Type = SecuritySchemeType.ApiKey, + BearerFormat = "JWT", + Scheme = "Bearer" + }); + c.AddSecurityRequirement(new OpenApiSecurityRequirement + { + { + new OpenApiSecurityScheme + { + Reference = new OpenApiReference { + Type = ReferenceType.SecurityScheme, + Id = "Bearer" + } + }, + new string[] { } + } + }); + c.SupportNonNullableReferenceTypes(); + c.ParameterFilter(); + + // 获取主项目生成的 XML 文件路径 + var mainXmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; + var mainXmlPath = Path.Combine(AppContext.BaseDirectory, mainXmlFile); + c.IncludeXmlComments(mainXmlPath, includeControllerXmlComments: true); + + // 获取所有引用的类库 XML 文件路径 + var referencedAssemblies = Assembly.GetExecutingAssembly().GetReferencedAssemblies(); + foreach (var assemblyName in referencedAssemblies) + { + var libraryXmlPath = Path.Combine(AppContext.BaseDirectory, $"{assemblyName.Name}.xml"); + if (File.Exists(libraryXmlPath)) + { + c.IncludeXmlComments(libraryXmlPath); + } + } + + + }); + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Controllers/BaseApiController.cs b/LearningOfficer.OA.Mobile.Api/Controllers/BaseApiController.cs new file mode 100644 index 0000000..140ab98 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Controllers/BaseApiController.cs @@ -0,0 +1,38 @@ +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace LearningOfficer.OA.Mobile.Api.Controllers +{ + /// + /// 自定义基础Api控制器 + /// + [Authorize] + [ApiController] + public class BaseApiController : ControllerBase + { + /// + /// Api版本前缀 + /// + protected const string RoutePrefix = "api/v{version:apiVersion}"; + public MobileTokenInfo ZereUser => GetTokenInfo(); + private MobileTokenInfo GetTokenInfo() + { + return new MobileTokenInfo + { + UserType = HttpContext?.User?.FindFirst("UserType")?.Value, + UserName = HttpContext?.User?.FindFirst("UserName")?.Value, + UserId = HttpContext?.User?.FindFirst("UserId")?.Value, + RoleEnum = HttpContext?.User?.FindFirst("RoleEnum")?.Value, + Account = HttpContext?.User?.FindFirst("Account")?.Value, + Jwt_id = HttpContext?.User?.FindFirst("Jwt_id")?.Value, + loginType = HttpContext?.User?.FindFirst("loginType")?.Value, + Phone = HttpContext?.User?.FindFirst("Phone")?.Value, + Role_Name = HttpContext?.User?.FindFirst("Role_Name")?.Value, + School_Name = HttpContext?.User?.FindFirst("School_Name")?.Value, + Cloud_id = HttpContext?.User?.FindFirst("Cloud_id")?.Value, + }; + } + + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Controllers/HealthCheckController.cs b/LearningOfficer.OA.Mobile.Api/Controllers/HealthCheckController.cs new file mode 100644 index 0000000..f3e947a --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Controllers/HealthCheckController.cs @@ -0,0 +1,30 @@ +using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace LearningOfficer.OA.Mobile.Api.Controllers +{ + + /// + /// 健康检查控制器 + /// + [ApiController] + [Route($@"{RoutePrefix}/[controller]/[action]")] + [ApiVersion(1.0)] + public class HealthCheckController : BaseApiController + { + public HealthCheckController(){ + + } + /// + /// 健康检查接口 + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task Get() + { + await Task.CompletedTask; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Controllers/V1/FollowStudentInfoController.cs b/LearningOfficer.OA.Mobile.Api/Controllers/V1/FollowStudentInfoController.cs new file mode 100644 index 0000000..1d9fcc6 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Controllers/V1/FollowStudentInfoController.cs @@ -0,0 +1,108 @@ +using Asp.Versioning; +using LearningOfficer.OA.Common.Dtos.Classes; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Dtos.User; +using LearningOfficer.OA.Common.Exceptions; +using LearningOfficer.OA.Common.Helpers; +using LearningOfficer.OA.Core.ServicesInterfaces; +using LearningOfficer.OA.Core.ServicesInterfaces.ClassTask; +using LearningOfficer.OA.Core.ServicesInterfaces.LoginMobile; +using Meeting.Infrastructure; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace LearningOfficer.OA.Mobile.Api.Controllers.V1 +{ + /// + /// 工作台 + /// + [Authorize] + [Route($@"{RoutePrefix}/[controller]/[action]")] + [ApiVersion(1.0)] + public class FollowStudentInfoController : BaseApiController + { + IUserService _userService; + ITask_checklistService _ChecklistService; + ILoginMobilAppService _loginMobilAppService; + public FollowStudentInfoController(ILoginMobilAppService loginMobilAppService, + ITask_checklistService ChecklistService, IUserService userService) + { + _userService = userService; + _ChecklistService = ChecklistService; + _loginMobilAppService = loginMobilAppService; + + } + + /// + /// 普通用户登录 + /// + /// 登录信息 + /// + [HttpPost] + [AllowAnonymous] + public async Task> userLogin([FromQuery] LoginRequest request) + { + request.Pwd = MD5EncryptionHelper.MD5Encryption(request.Pwd).ToUpper(); + UserResult model = await _loginMobilAppService.userLogin(request); + + return Ok(model); + } + + /// + /// 获取【本人管理班级】列表 + /// + /// + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task> GetBindClassesByUserId(long userId) + { + //获取本人信息 + var userInfo = await _userService.GetByIdAsync(userId); + if (userInfo == null) + { + throw new BusinessException("用户信息不存在"); + } + //获取管理的所有学校 + var classResults = await _ChecklistService.GetBindClassesBySchoolId(userId); + return classResults; + } + + /// + /// 工作台-获取班级学生列表 + /// + /// + /// 是否返回退学学生,默认0不返回, 1返回 + /// + /// + [HttpGet] + [AllowAnonymous] + public async Task> GetStudents(long classId, int IsBackOutStudent = 0) + { + if (classId <= 0) + { + throw new BusinessException("参数错误"); + } + //获取该班的学生职级 + //var Position = await _classesService.GetPosition(classId); + + + var result = await _userService.GetStudentResults(classId, IsBackOutStudent); + + return result; + } + /// + /// 重置学生密码为123456 + /// + /// 学生id + /// + [HttpPost] + [AllowAnonymous] + public async Task ResetStudentPwd(long userId) + { + return await _userService.ResetStudentPwd(userId); + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Controllers/V1/LoginController.cs b/LearningOfficer.OA.Mobile.Api/Controllers/V1/LoginController.cs new file mode 100644 index 0000000..84d610b --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Controllers/V1/LoginController.cs @@ -0,0 +1,64 @@ +using Asp.Versioning; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Dtos.ALiYun; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Exceptions; +using LearningOfficer.OA.Common.Helpers; +using LearningOfficer.OA.Core.ServicesInterfaces; +using LearningOfficer.OA.Core.ServicesInterfaces.ALiYun; +using LearningOfficer.OA.Core.ServicesInterfaces.ClassTask; +using LearningOfficer.OA.Core.ServicesInterfaces.LoginMobile; +using LearningOfficer.OA.Mobile.Api.Helper; +using Meeting.Infrastructure; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; +using Nacos.V2.Naming.Dtos; +using NetTaste; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using TrackingSystem.SDK.Dto; + +namespace LearningOfficer.OA.Mobile.Api.Controllers.V1 +{ + /// + /// 登录 + /// + [Authorize] + [Route($@"{RoutePrefix}/[controller]/[action]")] + [ApiVersion(1.0)] + public class LoginController : BaseApiController + { + IUserService _userService; + private readonly ILogger _logger; + IClassesTaskListService _classesTaskListService; + private readonly IOptionsMonitor _testAccountOption; + private readonly IOptionsMonitor _ImConfigOption; + private readonly IOptionsMonitor _ossConfigOption; + IALiYunConfigAppService _aLiYunConfigAppService; + ILoginMobilAppService _loginMobilAppService; + public LoginController(ILoginMobilAppService loginMobilAppService, IOptionsMonitor OssConfigOption, IALiYunConfigAppService aLiYunConfigAppService, IOptionsMonitor testAccountOption, IOptionsMonitor ImConfigOption, IClassesTaskListService classesTaskListService, ILogger logger, IUserService userService) + { + _userService = userService; + _classesTaskListService = classesTaskListService; + _ossConfigOption = OssConfigOption; + _ImConfigOption = ImConfigOption; + _testAccountOption = testAccountOption; + + _aLiYunConfigAppService = aLiYunConfigAppService; + _loginMobilAppService = loginMobilAppService; + _logger = logger; + } + /// + /// 获取是否开启测试 + /// + /// + [HttpGet] + [AllowAnonymous] + public bool GetOpenTest() + { + var testAccount = _testAccountOption.CurrentValue; + return testAccount.isOpenTest; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/DockerFiles/Dockerfile-Production b/LearningOfficer.OA.Mobile.Api/DockerFiles/Dockerfile-Production new file mode 100644 index 0000000..a3cf4c6 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/DockerFiles/Dockerfile-Production @@ -0,0 +1,37 @@ +# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。 + +# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时 +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +WORKDIR /app +EXPOSE 8080 + + +# 此阶段用于生成服务项目 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj", "LearningOfficer.OA.Mobile.Api/"] +COPY ["LearningOfficer.OA.Common/LearningOfficer.OA.Common.csproj", "LearningOfficer.OA.Common/"] +COPY ["LearningOfficer.OA.Core/LearningOfficer.OA.Core.csproj", "LearningOfficer.OA.Core/"] +COPY ["LearningOfficer.OA.Infrastructure/LearningOfficer.OA.Infrastructure.csproj", "LearningOfficer.OA.Infrastructure/"] +COPY ["LearningOfficer.OA.Services/LearningOfficer.OA.Services.csproj", "LearningOfficer.OA.Services/"] +RUN dotnet nuget add source --name marking https://gitea.23544.com/api/packages/marking/nuget/index.json +RUN dotnet restore "./LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj" +COPY . . +WORKDIR "/src/LearningOfficer.OA.Mobile.Api" +RUN dotnet build "./LearningOfficer.OA.Mobile.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# 此阶段用于发布要复制到最终阶段的服务项目 +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./LearningOfficer.OA.Mobile.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +# 设置时区 +ENV TZ=Asia/Shanghai +# 用于设置环境变量 +ENV ASPNETCORE_ENVIRONMENT=Production +ENTRYPOINT ["dotnet", "LearningOfficer.OA.Mobile.Api.dll"] \ No newline at end of file diff --git a/LearningOfficer.OA.Mobile.Api/DockerFiles/Dockerfile-Staging b/LearningOfficer.OA.Mobile.Api/DockerFiles/Dockerfile-Staging new file mode 100644 index 0000000..d0c20e2 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/DockerFiles/Dockerfile-Staging @@ -0,0 +1,37 @@ +# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。 + +# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时 +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +WORKDIR /app +EXPOSE 8080 + + +# 此阶段用于生成服务项目 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj", "LearningOfficer.OA.Mobile.Api/"] +COPY ["LearningOfficer.OA.Common/LearningOfficer.OA.Common.csproj", "LearningOfficer.OA.Common/"] +COPY ["LearningOfficer.OA.Core/LearningOfficer.OA.Core.csproj", "LearningOfficer.OA.Core/"] +COPY ["LearningOfficer.OA.Infrastructure/LearningOfficer.OA.Infrastructure.csproj", "LearningOfficer.OA.Infrastructure/"] +COPY ["LearningOfficer.OA.Services/LearningOfficer.OA.Services.csproj", "LearningOfficer.OA.Services/"] +RUN dotnet nuget add source --name marking https://gitea.23544.com/api/packages/marking/nuget/index.json +RUN dotnet restore "./LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj" +COPY . . +WORKDIR "/src/LearningOfficer.OA.Mobile.Api" +RUN dotnet build "./LearningOfficer.OA.Mobile.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# 此阶段用于发布要复制到最终阶段的服务项目 +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./LearningOfficer.OA.Mobile.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +# 设置时区 +ENV TZ=Asia/Shanghai +# 用于设置环境变量 +ENV ASPNETCORE_ENVIRONMENT=Staging +ENTRYPOINT ["dotnet", "LearningOfficer.OA.Mobile.Api.dll"] \ No newline at end of file diff --git a/LearningOfficer.OA.Mobile.Api/Filters/CustomContractResolver.cs b/LearningOfficer.OA.Mobile.Api/Filters/CustomContractResolver.cs new file mode 100644 index 0000000..bf586ea --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Filters/CustomContractResolver.cs @@ -0,0 +1,56 @@ +using Newtonsoft.Json; +using System.Reflection; +using Newtonsoft.Json.Serialization; +using System.Text.RegularExpressions; +using System.Text; + +namespace LearningOfficer.OA.Mobile.Api.Filters +{ + public class CustomContractResolver : DefaultContractResolver + { + protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization) + { + var property = base.CreateProperty(member, memberSerialization); + + if (!string.IsNullOrEmpty(member.Name)) + { + if (member.Name.Length >= 1 && char.IsUpper(member.Name[0])) + { + property.PropertyName = char.ToLower(member.Name[0]) + member.Name.Substring(1); + } + property.PropertyName = ChangeName(property.PropertyName); + } + return property; + } + /// + /// 将下划线命名转换为小驼峰命名 + /// + /// 变量名 + /// + private string ChangeName(string name) + { + Match mt = Regex.Match(name, @"_(\w*)*"); + if (mt.Success) { + var sb = new StringBuilder(); + bool toUpper = false; + for (int i = 0; i < name.Length; i++) + { + char c = name[i]; + if (c == '_') + { + toUpper = true; + } + else + { + sb.Append(toUpper ? char.ToUpperInvariant(c) : c); + toUpper = false; + } + } + if (sb.Length > 0) + sb[0] = char.ToLowerInvariant(sb[0]); + return sb.ToString(); + } + return name; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Filters/CustomJsonNamingPolicy.cs b/LearningOfficer.OA.Mobile.Api/Filters/CustomJsonNamingPolicy.cs new file mode 100644 index 0000000..3798b6c --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Filters/CustomJsonNamingPolicy.cs @@ -0,0 +1,54 @@ +using System.Runtime.Intrinsics.X86; +using System.Text; +using System.Text.Json; +using System.Text.RegularExpressions; + +namespace LearningOfficer.OA.Mobile.Api.Filters +{ + public class CustomJsonNamingPolicy : JsonNamingPolicy + { + public override string ConvertName(string name) + { + //第一个字母小写 + if (string.IsNullOrEmpty(name)) + { + return name; + } + if (name.Length > 1 && char.IsUpper(name[0])) + { + name = char.ToLower(name[0]) + name.Substring(1); + } + + return ChangeName(name); + } + private string ChangeName(string name) + { + Match mt = Regex.Match(name, @"_(\w*)*"); + if (mt.Success) + { + var sb = new StringBuilder(); + bool toUpper = false; + for (int i = 0; i < name.Length; i++) + { + char c = name[i]; + if (c == '_') + { + toUpper = true; + } + else + { + sb.Append(toUpper ? char.ToUpperInvariant(c) : c); + toUpper = false; + } + } + if (sb.Length > 0) + { + + sb[0] = char.ToLowerInvariant(sb[0]); + } + return sb.ToString(); + } + return name; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Filters/GlobalExceptionCatchFilter.cs b/LearningOfficer.OA.Mobile.Api/Filters/GlobalExceptionCatchFilter.cs new file mode 100644 index 0000000..534a168 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Filters/GlobalExceptionCatchFilter.cs @@ -0,0 +1,136 @@ +using System.Text.RegularExpressions; +using System.Text; +using LearningOfficer.OA.Common; +using LearningOfficer.OA.Common.Exceptions; +using LearningOfficer.OA.Common.Response; +using Mapster; +using Masuit.Tools; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Filters; + +namespace LearningOfficer.OA.Mobile.Api.Filters +{ + /// + /// 全局异常捕获过滤器 + /// + public class GlobalExceptionCatchFilter : IAsyncExceptionFilter + { + private readonly ILogger _logger; + + public GlobalExceptionCatchFilter(ILogger logger) + { + _logger = logger; //在构造函数中注入日志处理实例 + } + + public async Task OnExceptionAsync(ExceptionContext context) + { + // 如果异常没有被处理则进行处理 + if (context.ExceptionHandled == false) + { + // 定义返回类型 + BaseResponse result; + + // 如果为业务逻辑抛出的内部异常 + if (context.Exception is BusinessException ex) + { + if (ex.BussinessExceptionData != null) + { + result = new BaseResponse((int)ex.ErrorCode, context.Exception.Message, ex.BussinessExceptionData); + //将result的data转换为Dictionary + var data = result.data.ToDictionary(); + + ConvertKeysToCamelCase(data); + result.data = data; + } + else + { + result = new BaseResponse((int)ex.ErrorCode, context.Exception.Message); + } + } + else + { + // 程序异常,不对外暴露程序异常细节 + result = new BaseResponse((int)BusinessExceptionCode.AppError, "服务器好像出错了!" + // ,new + //{ + // RequestId = context.HttpContext.TraceIdentifier + //} + ); + + //使用日志对象 _logger 的 LogError() 方法将异常信息写入日志文件 + _logger.LogError(context.Exception, context.Exception.Message); + } + + context.Result = new ContentResult + { + // 返回状态码设置为200,表示成功 + StatusCode = StatusCodes.Status200OK, + // 设置返回格式 + ContentType = "application/json;charset=utf-8", + Content = result.ToJsonString() + }; + + + } + + // 设置为true,表示异常已经被处理了 + context.ExceptionHandled = true; + } + + public static void ConvertKeysToCamelCase(Dictionary dictionary) + { + var keys = dictionary.Keys.ToList(); + foreach (var key in keys) + { + string ItemKey = key; + if (ItemKey.Length >= 1 && char.IsUpper(ItemKey[0])) + { + ItemKey = char.ToLower(ItemKey[0]) + ItemKey.Substring(1); + } + var camelCaseKey = ChangeName(ItemKey); + if (dictionary.ContainsKey(camelCaseKey)) + { + dictionary[camelCaseKey] = dictionary[key]; + } + else + { + dictionary.Add(camelCaseKey, dictionary[key]); + } + dictionary.Remove(key); + } + } + + /// + /// 将下划线命名转换为小驼峰命名 + /// + /// 变量名 + /// + private static string ChangeName(string name) + { + Match mt = Regex.Match(name, @"_(\w*)*"); + if (mt.Success) + { + var sb = new StringBuilder(); + bool toUpper = false; + for (int i = 0; i < name.Length; i++) + { + char c = name[i]; + if (c == '_') + { + toUpper = true; + } + else + { + sb.Append(toUpper ? char.ToUpperInvariant(c) : c); + toUpper = false; + } + } + if (sb.Length > 0) + sb[0] = char.ToLowerInvariant(sb[0]); + return sb.ToString(); + } + return name; + } + + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Filters/GlobalOperationLogFilter.cs b/LearningOfficer.OA.Mobile.Api/Filters/GlobalOperationLogFilter.cs new file mode 100644 index 0000000..0b2fce0 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Filters/GlobalOperationLogFilter.cs @@ -0,0 +1,60 @@ +using Microsoft.AspNetCore.Mvc.Controllers; +using Microsoft.AspNetCore.Mvc.Filters; +using Newtonsoft.Json; +using System.Text; + +namespace LearningOfficer.OA.Mobile.Api.Filters +{ + public class GlobalOperationLogFilter : IAsyncActionFilter + { + private readonly ILogger _logger; + + public GlobalOperationLogFilter(ILogger logger ) + { + _logger = logger; + } + public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) + { + //// 获取请求信息 + var paramss = context.ActionDescriptor.Parameters; + var ActionName = ((ControllerActionDescriptor)context.ActionDescriptor)?.ActionName; + var Method = context.HttpContext.Request.Method; + var queryString = context.HttpContext.Request.QueryString; + var RequestUrl = context.HttpContext.Request.Host + context.HttpContext.Request.Path; + string token = context.HttpContext.Request.Headers["Authorization"].FirstOrDefault(); + string body = ""; + var request = context.HttpContext.Request; + var stream = request.Body; + if (request.ContentLength != null && request.ContentLength > 0) + { + request.EnableBuffering(); + request.Body.Position = 0;//将读取指针迻到开始位置 + using (var reader = new StreamReader(stream, Encoding.UTF8, true, 1024, true)) + { + body = await reader.ReadToEndAsync(); + } + } + + _logger.LogInformation(context.HttpContext.TraceIdentifier + ": {RequestParams}", body); + await next(); + } + + private async Task GetRequestBody(HttpRequest request) + { + request.EnableBuffering(); + var body = request.Body; + var buffer = new byte[Convert.ToInt32(request.ContentLength)]; + await request.Body.ReadAsync(buffer, 0, buffer.Length); + request.Body.Position = 0; // 重置流位置 + return Encoding.UTF8.GetString(buffer); + } + + private async Task GetResponseBody(HttpResponse response) + { + response.Body.Seek(0, SeekOrigin.Begin); + var body = await new StreamReader(response.Body).ReadToEndAsync(); + response.Body.Seek(0, SeekOrigin.Begin); + return body; + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Filters/NullableParameterFilter.cs b/LearningOfficer.OA.Mobile.Api/Filters/NullableParameterFilter.cs new file mode 100644 index 0000000..fe3fe00 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Filters/NullableParameterFilter.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using Microsoft.OpenApi.Models; +using Swashbuckle.AspNetCore.SwaggerGen; + +namespace LearningOfficer.OA.Mobile.Api.Filters +{ + public class NullableParameterFilter : IParameterFilter + { + public void Apply(OpenApiParameter parameter, ParameterFilterContext context) + { + if (context.ApiParameterDescription.Type is null) + return; + + if (Nullable.GetUnderlyingType(context.ApiParameterDescription.Type) != null) + { + parameter.Schema.Nullable = true; + } + else if (context.ApiParameterDescription.Type.IsClass || context.ApiParameterDescription.Type.IsInterface) + { + + var nullableAttribute = context.ParameterInfo?.GetCustomAttribute(); + if (nullableAttribute != null || context.ApiParameterDescription.Type.FullName?.Contains("System.Nullable") == true) + { + parameter.Schema.Nullable = true; + } + } + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Filters/UniformResultActionFilter.cs b/LearningOfficer.OA.Mobile.Api/Filters/UniformResultActionFilter.cs new file mode 100644 index 0000000..f5dde6e --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Filters/UniformResultActionFilter.cs @@ -0,0 +1,204 @@ +using Dm.util; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Response; +using LearningOfficer.OA.Core.ServicesInterfaces.LoginMobile; +using LearningOfficer.OA.Mobile.Api.Helper; +using Meeting.Infrastructure; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Controllers; +using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Extensions.Options; +using NetTaste; +using Newtonsoft.Json; +using System.Text; +using System.Threading.Tasks; +using TrackingSystem.SDK.Dto; + +namespace LearningOfficer.OA.Mobile.Api.Filters +{ + /// + /// 统一返回结果过滤器 + /// + public class UniformResultActionFilter : ActionFilterAttribute + { + private readonly NacosConfig _nacosConfig; + ILoginMobilAppService _loginMobilAppService; + private readonly ILogger _logger; + public UniformResultActionFilter(ILogger logger, ILoginMobilAppService loginMobilAppService, IOptions nacosConfig) + { + + _loginMobilAppService = loginMobilAppService; + _logger = logger; + _nacosConfig = nacosConfig.Value; + } + /// + /// 在Controller的Action执行后执行 + /// + /// + public override void OnActionExecuted(ActionExecutedContext context) + { + if (context.Result != null) + { + switch (context.Result) + { + case ObjectResult: + { + var result = context.Result as ObjectResult; + context.Result = new JsonResult(new BaseResponse(200, "请求成功", result.Value)); + break; + } + case EmptyResult: + context.Result = new JsonResult(new BaseResponse(200, "请求成功")); + break; + case ContentResult: + { + var result = context.Result as ContentResult; + context.Result = new JsonResult(new BaseResponse(200, "请求成功", result.Content)); + break; + } + case OkResult: + { + context.Result = new JsonResult(new BaseResponse(200, "请求成功")); + } + break; + } + } + + //_logger.LogInformation(""); + + base.OnActionExecuted(context); + } + + /// + /// 在Controller的Action执行前执行 + /// + /// + public override async void OnActionExecuting(ActionExecutingContext context) + { + var actionDescriptor = context.ActionDescriptor as ControllerActionDescriptor; + if (actionDescriptor != null) + { + var methodInfo = actionDescriptor.MethodInfo; + var hasAllowAnonymous = methodInfo.GetCustomAttributes(true) + .OfType() + .Any(); + //获取action名称 + var actionName = actionDescriptor.ActionName; + //获取控制器名称 + var controllerName = actionDescriptor.ControllerName; + //判断是否是刷新Token的请求 + if (controllerName == "Login" && actionName == "RefreshToken") + { + //获取body参数对象中token + var requestBody = context.ActionArguments.Values.FirstOrDefault(); + if (requestBody != null) + { + var token = context.HttpContext.Request.Headers["Authorization"].FirstOrDefault(); + if (!string.IsNullOrEmpty(token)) + { + token = token.Replace("Bearer ", ""); + } + else + { + context.Result = new JsonResult(new BaseResponse(1000, "刷新token需要请求头同时带上原token")); + return; + } + var parms = requestBody as RefreshTokenRequest; + if (parms.Token != token) + { + context.Result = new JsonResult(new BaseResponse(1000, "参数token与头部token不一致")); + return; + } + if ((RefreshTokenExpToken(context, token))) + { + context.HttpContext.Response.StatusCode = 402; + context.Result = new JsonResult(new BaseResponse(402, "账号被其他人登录,请重新登录")); + return; + } + } + + } + } + base.OnActionExecuting(context); + } + /// + /// 是否返回过期(H5登录判断) + /// + /// + /// + /// + private bool IsExpRedisTokenByH5(ActionExecutingContext context, string token) + { + var userId = context.HttpContext.User.Claims.FirstOrDefault(c => c.Type == "UserId")?.Value; + if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(userId)) + { + return true; + } + // 验证Token是否存在于Redis中 + var redisToken = RedisHelper.Instance.HGet("H5_Login_Token", userId); + if (string.IsNullOrEmpty(redisToken) || token != redisToken) + { + return true; + } + return false; + } + /// + /// 是否返回过期(PC二维码登录判断) + /// + /// + /// + /// + private bool IsExpRedisTokenByCode(ActionExecutingContext context, string token) + { + var userId = context.HttpContext.User.Claims.FirstOrDefault(c => c.Type == "UserId")?.Value; + if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(userId)) + { + return true; + } + // 验证Token是否存在于Redis中 + var redisToken = RedisHelper.Instance.HGet("Code_Login_Token", userId); + if (string.IsNullOrEmpty(redisToken) || token != redisToken) + { + return true; + } + return false; + } + /// + /// 是否返回过期 + /// + /// + /// + /// + private bool IsExpRedisToken(ActionExecutingContext context, string token) + { + if (_nacosConfig.Namespace == "dev") + { + return false; + } + var userId = context.HttpContext.User.Claims.FirstOrDefault(c => c.Type == "UserId")?.Value; + if (string.IsNullOrEmpty(token) || string.IsNullOrEmpty(userId)) + { + return true; + } + // 验证Token是否存在于Redis中 + var redisToken = RedisHelper.Instance.HGet("Login_Token", userId); + if (string.IsNullOrEmpty(redisToken) || token != redisToken) + { + return true; + } + return false; + } + /// + /// 是否返回过期 + /// + /// + /// + /// + private bool RefreshTokenExpToken(ActionExecutingContext context, string token) + { + return false; + } + } +} \ No newline at end of file diff --git a/LearningOfficer.OA.Mobile.Api/Helper/WorkerIdAutoRegisterHelper.cs b/LearningOfficer.OA.Mobile.Api/Helper/WorkerIdAutoRegisterHelper.cs new file mode 100644 index 0000000..e871989 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Helper/WorkerIdAutoRegisterHelper.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Timers; +using Meeting.Infrastructure; +using Yitter.IdGenerator; + +namespace LearningOfficer.OA.Mobile.Api.Helper +{ + /// + /// IdWorker自动注册帮助类 需要先注册Redis + /// + public class WorkerIdAutoRegisterHelper + { + + private static System.Timers.Timer _timer; + + public static IdGeneratorOptions GetIdGeneratorOptions() + { + byte workerIdBitLength = 6; + var maxWorkId = Math.Pow(2, workerIdBitLength) - 1; + var workIdKey = "idgen:workid"; + + var workId = GetNextWorkId(); + + while (!RedisHelper.Instance.SetNx($"{workIdKey}:{workId}", 1)) + { + // workId 已被占用,获取下一个workId + workId = GetNextWorkId(); + }; + + // 设置5分钟过期 + RedisHelper.Instance.Expire($"{workIdKey}:{workId}", 60 * 5); + + // 设置定时器,每4分钟更新一次过期时间 + SetTimer(4, (s, e) => + { + RedisHelper.Instance.Expire($"{workIdKey}:{workId}", 60 * 5); + }); + + // WorkerIdBitLength + SeqBitLength 不超过 22 + return new IdGeneratorOptions + { + WorkerIdBitLength = workerIdBitLength, + SeqBitLength = 6, // 数值越高,性能越好,但是Id也越长 + WorkerId = (ushort)workId + }; + + long GetNextWorkId() + { + var workId = RedisHelper.Instance.IncrBy(workIdKey,1); + if (workId > maxWorkId) + { + // 大于了最大可用WorkId,重置workId,并获取 + RedisHelper.Instance.Set(workIdKey, 0); + workId = RedisHelper.Instance.IncrBy(workIdKey, 1); + } + Console.WriteLine($"================================================分配到的workId:{workId}==============================================================================="); + return workId; + } + } + + private static void SetTimer(int mins, ElapsedEventHandler eh) + { + // 创建一个 Timer 实例,并设置其相关属性 + _timer = new System.Timers.Timer(TimeSpan.FromMinutes(mins).TotalMilliseconds); // 4 分钟 + _timer.Elapsed += eh; + _timer.AutoReset = true; // 设置 Timer 实例能否多次触发 + _timer.Enabled = true; // 启动 Timer 实例 + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj b/LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj new file mode 100644 index 0000000..59cd88c --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/LearningOfficer.OA.Mobile.Api.csproj @@ -0,0 +1,29 @@ + + + + net8.0 + enable + enable + True + + + + + + + + + + + + + + + + + + + + + + diff --git a/LearningOfficer.OA.Mobile.Api/Program.cs b/LearningOfficer.OA.Mobile.Api/Program.cs new file mode 100644 index 0000000..45086cb --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Program.cs @@ -0,0 +1,21 @@ + +namespace LearningOfficer.OA.Mobile.Api +{ + public class Program + { + public static void Main(string[] args) + { + var builder = WebApplication.CreateBuilder(args); + + var startup = new Startup(builder.Configuration); + + startup.ConfigureServices(builder.Services, builder.Environment, builder.Host); + + var app = builder.Build(); + + startup.Configure(app, app.Environment); + + app.Run(); + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Properties/launchSettings.json b/LearningOfficer.OA.Mobile.Api/Properties/launchSettings.json new file mode 100644 index 0000000..2158705 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Properties/launchSettings.json @@ -0,0 +1,15 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "http://0.0.0.0:15277", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/LearningOfficer.OA.Mobile.Api/Startup.cs b/LearningOfficer.OA.Mobile.Api/Startup.cs new file mode 100644 index 0000000..3391b89 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/Startup.cs @@ -0,0 +1,133 @@ +using Hangfire; +using Hangfire.Dashboard; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Infrastructure.RabbitMQ; +using LearningOfficer.OA.Mobile.Api.CollectionExtensions; +using LearningOfficer.OA.Mobile.Api.Filters; +using LearningOfficer.OA.Mobile.Api.Helper; +using Microsoft.Extensions.Options; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Serialization; +using System.Text; +using System.Text.Json; +using TrackingSystem.SDK; +using Yitter.IdGenerator; + +namespace LearningOfficer.OA.Mobile.Api +{ + public class Startup + { + public IConfiguration Configuration { get; } + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public void ConfigureServices(IServiceCollection services, IWebHostEnvironment environment, IHostBuilder hostBuilder) + { + services.AddControllers().AddJsonOptions(option => + { + option.JsonSerializerOptions.PropertyNamingPolicy = new CustomJsonNamingPolicy(); + }); + services.AddControllers(opt => + { + // 添加全局异常过滤器 + opt.Filters.Add(); + // 添加统一返回结果过滤器 + opt.Filters.Add(); + opt.Filters.Add(); + //// 添加认证过滤器,限制仅可单设备登录 + //opt.Filters.Add(); + }).AddNewtonsoftJson(opt => + { + //忽略循环引用 + opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; + //不改变字段大小 + opt.SerializerSettings.ContractResolver = new DefaultContractResolver(); + + opt.SerializerSettings.ContractResolver = new CustomContractResolver(); + //日期类型默认格式化处理 + opt.SerializerSettings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }); + }); + services.AddControllers().AddJsonOptions(options => + { + options.JsonSerializerOptions.PropertyNamingPolicy = new CustomJsonNamingPolicy(); + }); + + // 添加跨域服务 + services.AddCors(options => + { + options.AddDefaultPolicy(builder => + { + builder.AllowAnyOrigin() + .AllowAnyMethod() + .AllowAnyHeader(); + }); + }); + + services.BatchRegisterServices(); + services.AddApiVersion(); + services.AddJwtAuth(Configuration); + services.AddSwagger(); + services.AddHttpClient(); + services.AddSerilog(Configuration, hostBuilder, environment); + services.AddRedis(Configuration); + + services.AddSqlSugar(Configuration, environment); + YitIdHelper.SetIdGenerator(WorkerIdAutoRegisterHelper.GetIdGeneratorOptions()); + services.AddConfigureOptions(Configuration); + services.AddHttpContextAccessor(); + + + } + + public void Configure(WebApplication app, IWebHostEnvironment env) + { + if (app.Environment.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + app.UseSwagger(); + app.UseSwaggerUI(c => + { + c.SwaggerEndpoint("/swagger/v1/swagger.json", "OA移动端Api v1"); + c.SwaggerEndpoint("/swagger/v2/swagger.json", "OA移动端Api v2"); + c.SwaggerEndpoint("/swagger/v3/swagger.json", "OA移动端Api v3"); + }); + } + app.UseCors(); + + app.UseAuthentication(); + app.UseAuthorization(); + app.Use(async (context, next) => + { + if (context.Request.Method.Equals("POST", StringComparison.OrdinalIgnoreCase)) + { + context.Request.EnableBuffering(); + using (var reader = new StreamReader(context.Request.Body, encoding: Encoding.UTF8 + , detectEncodingFromByteOrderMarks: false, leaveOpen: true)) + { + var body = await reader.ReadToEndAsync(); + context.Items.Add("body", body); + context.Request.Body.Position = 0; + } + } + if (context.Request.Method.Equals("Put", StringComparison.OrdinalIgnoreCase)) + { + context.Request.EnableBuffering(); + + using (var reader = new StreamReader(context.Request.Body, encoding: Encoding.UTF8 + , detectEncodingFromByteOrderMarks: false, leaveOpen: true)) + { + var body = await reader.ReadToEndAsync(); + context.Items.Add("body", body); + context.Request.Body.Position = 0; + } + } + await next.Invoke(); + }); + app.MapControllers(); + } + + } +} diff --git a/LearningOfficer.OA.Mobile.Api/appsettings.Development.json b/LearningOfficer.OA.Mobile.Api/appsettings.Development.json new file mode 100644 index 0000000..cfd53ca --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/appsettings.Development.json @@ -0,0 +1,55 @@ +{ + "GrafanaLoki": { + "LokiUri": "https://loki.23544.com", + "TenantId": "yWgrM7mi" + }, + "ConnectionStrings": { + "Redis": "192.168.2.7:6379,password=qwe123!@#,defaultDatabase=14,name=oa,prefix=oa:", + "Db": "Database=learningofficer.oa;Server=58.17.132.2;Port=43306;Uid=marking;Pwd=qwe123!@#;AllowZeroDateTime=True;ConvertZeroDateTime=True;AllowLoadLocalInfile=true;", + "UserCenterDb": "Database=usercenter_v1;Server=58.17.132.2;Port=43306;Uid=marking;Pwd=qwe123!@#;AllowZeroDateTime=True;ConvertZeroDateTime=True;" + + }, + "Jwt": { + "AccessSecret": "41fudunuhrq9uo90t9thw2x4nl35si58hna7yls18qqlkj8dc4", + "RefreshSecret": "n50b8f052kbd12n4vv9fwpfplktwnv9365xj2rfm642ez8xcrq", + "Issuer": "LearningOfficerOAMobileApi", + "Audience": "LearningOfficerOAMobileClient", + // 过期 秒 + "AccessExpiration": 600000, + "RefreshExpiration": 600000, + // 过期时间容错值,解决服务器端时间不同步问题 + "ClockSkew": 60 + }, + "OSSConfig": { + "AccessKeyId": "LTAI5tCVv48c3cjn8W2gvcU5", + "AccessKeySecret": "rhncY4rD1KVuplzJTXiaXoIE961Q02", + "Endpoint": "oss-cn-chengdu.aliyuncs.com", + "BucketName": "quanxue-oa", + "Size": 102400 //kb + }, + "testAccount": { + "isOpenTest": true, + "username": "mcy", + "Pwd": "E10ADC3949BA59ABBE56E057F20F883E" + }, + "ClassCourseTable": { + "UrlHead": "https://yxjx-admin.23544.com/" + }, + "ImConfig": { + "SDKAppID": "1600104071", + "key": "3acab7e7875cd203ecd2a949a6dccda323a0a0432ef8ce8bee04fdc23d48eef2", + "DefaultAvater": "https://quanxue-oa.oss-cn-chengdu.aliyuncs.com/avatar.png", + "expiredTime": 86400, //默认一天, + "AdminUserId": "yxadmin001", + "ApiHeadUrl": "https://console.tim.qq.com/", + "VideoCall": false, + "VoiceCall": false + }, + "UpAppVersion": { + "IOSUrl": "https://apps.apple.com/app/id6747421483" + }, + "DataCollectionConfig": { + "ModelUpFileUrl": "https://xxxxx.xxxx.xxx", //不带问号 + "UpDataFileUrl": "https://xxxxx.xxxx.xxx" //不带问号 + } +} diff --git a/LearningOfficer.OA.Mobile.Api/appsettings.json b/LearningOfficer.OA.Mobile.Api/appsettings.json new file mode 100644 index 0000000..1877d65 --- /dev/null +++ b/LearningOfficer.OA.Mobile.Api/appsettings.json @@ -0,0 +1,65 @@ +{ + "GrafanaLoki": { + "LokiUri": "https://loki.23544.com", + "TenantId": "yWgrM7mi" + }, + "ConnectionStrings": { + "Redis": "192.168.2.7:6379,password=qwe123!@#,defaultDatabase=14,name=oa,prefix=oa:", + "HangfireRedis": "192.168.2.7:6379,password=qwe123!@#,defaultDatabase=14,name=oa,prefix=oa:", + //"Db": "Database=learningofficer.oa;Server=rds-external.23544.com;Port=3306;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;AllowZeroDateTime=True;ConvertZeroDateTime=True;AllowLoadLocalInfile=true;", + //"UserCenterDb": "Database=usercenter_v1;Server=rds-external.23544.com;Port=3306;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;AllowZeroDateTime=True;ConvertZeroDateTime=True;", + "Db": "Database=learningofficer.oa;Server=qx-mysql.23544.com;Port=3306;Uid=qx;Pwd=nG0hB0eB0fL0aE0lA1dB;AllowZeroDateTime=True;ConvertZeroDateTime=True;", + "UserCenterDb": "Database=usercenter_v1;Server=usercenter-mysql.23544.com;Port=3306;Uid=qx;Pwd=nG0hB0eB0fL0aE0lA1dB;AllowZeroDateTime=True;ConvertZeroDateTime=True;" + //"Db": "Database=learningofficer.oa;Server=58.17.132.2;Port=43306;Uid=marking;Pwd=qwe123!@#;AllowZeroDateTime=True;ConvertZeroDateTime=True;AllowLoadLocalInfile=true;", + //"UserCenterDb": "Database=usercenter_v1;Server=58.17.132.2;Port=43306;Uid=marking;Pwd=qwe123!@#;AllowZeroDateTime=True;ConvertZeroDateTime=True;" + + }, + "Hangfire": { + "ConnectionString": "192.168.2.7:6379,password=qwe123!@#", + "Db": 14, + "cron": "0 0/1 * * * ?" + }, + "Jwt": { + "AccessSecret": "41fudunuhrq9uo90t9thw2x4nl35si58hna7yls18qqlkj8dc4", + "RefreshSecret": "n50b8f052kbd12n4vv9fwpfplktwnv9365xj2rfm642ez8xcrq", + "Issuer": "LearningOfficerOAMobileApi", + "Audience": "LearningOfficerOAMobileClient", + // 过期 秒 + "AccessExpiration": 600000, + "RefreshExpiration": 600000, + // 过期时间容错值,解决服务器端时间不同步问题 + "ClockSkew": 60 + }, + "OSSConfig": { + "AccessKeyId": "LTAI5tCVv48c3cjn8W2gvcU5", + "AccessKeySecret": "rhncY4rD1KVuplzJTXiaXoIE961Q02", + "Endpoint": "oss-cn-chengdu.aliyuncs.com", + "BucketName": "quanxue-oa", + "Size": 102400 //kb + }, + "testAccount": { + "isOpenTest": true, + "username": "mcy", + "Pwd": "E10ADC3949BA59ABBE56E057F20F883E" + }, + "ClassCourseTable": { + "UrlHead": "https://yxjx-admin.23544.com/" + }, + "ImConfig": { + "SDKAppID": "1600104071", + "key": "3acab7e7875cd203ecd2a949a6dccda323a0a0432ef8ce8bee04fdc23d48eef2", + "DefaultAvater": "https://quanxue-oa.oss-cn-chengdu.aliyuncs.com/avatar.png", + "expiredTime": 86400, //默认一天, + "AdminUserId": "yxadmin001", + "ApiHeadUrl": "https://console.tim.qq.com/", + "VideoCall": false, + "VoiceCall": false + }, + "UpAppVersion": { + "IOSUrl": "https://apps.apple.com/app/id6747421483" + }, + "DataCollectionConfig": { + "ModelUpFileUrl": "https://xxxxx.xxxx.xxx", //不带问号 + "UpDataFileUrl": "https://xxxxx.xxxx.xxx" //不带问号 + } +} diff --git a/LearningOfficer.OA.Services/BaseService.cs b/LearningOfficer.OA.Services/BaseService.cs new file mode 100644 index 0000000..2a035c8 --- /dev/null +++ b/LearningOfficer.OA.Services/BaseService.cs @@ -0,0 +1,228 @@ +using LearningOfficer.OA.Common.Request; +using LearningOfficer.OA.Common.Response; +using LearningOfficer.OA.Core.Entities; +using LearningOfficer.OA.Core.ServicesInterfaces; +using LearningOfficer.OA.Infrastructure.DBContext; +using Mapster; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Services +{ + /// + /// 服务基类 + /// + //[Inject(Lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped)] + public class BaseService : IBaseService where TEntity : BaseEntity, new() + { + //protected readonly SugarRepository _db; + private readonly SugarRepository _db; + + + public BaseService(SugarRepository repository) + { + _db = repository; + } + + /// + /// 创建(自增ID) + /// + /// + /// + public virtual async Task CreateAsync(TEntity entity) + { + return await _db.InsertAsync(entity); + } + + /// + /// 创建(自增ID) + /// + /// + /// + public virtual async Task InsertReturnBigIdentityAsync(TEntity entity) + { + return await _db.InsertReturnBigIdentityAsync(entity); + } + + /// + /// 创建并返回雪花ID + /// + /// + /// + public virtual async Task CreateReturnSnowflakeIdAsync(TEntity entity) + { + return await _db.InsertReturnSnowflakeIdAsync(entity); + } + /// + /// 创建并返回雪花ID + /// + /// + /// + public virtual async Task> CreateReturnSnowflakeIdAsync(List entity) + { + return await _db.InsertReturnSnowflakeIdAsync(entity); + } + + /// + /// 物理删除 + /// + /// + /// + public virtual async Task DeleteByIdsAsync(params dynamic[] ids) + { + return await _db.DeleteByIdsAsync(ids); + } + + /// + /// 物理删除 + /// + /// + /// + public virtual async Task DeleteByIdsAsync(params long[] ids) + { + return await _db.Context.Deleteable().Where(x => ids.Contains(x.Id)).ExecuteCommandHasChangeAsync(); + } + + + + /// + /// 更新 + /// + /// + /// + public virtual async Task UpdateAsync(TEntity entity) + { + return await _db.UpdateAsync(entity); + } + /// + /// 批量更新 + /// + /// + /// + public virtual async Task UpdateAsync(List entity) + { + return await _db.UpdateRangeAsync(entity); + } + + /// + /// 更新指定字段 + /// + /// + /// + /// + public virtual async Task UpdateColumsAsync(Expression> columns, Expression> whereExpression) + { + return await _db.UpdateAsync(columns, whereExpression); + } + + /// + /// 根据ID获取 + /// + /// + /// + public virtual async Task GetByIdAsync(long id) + { + return await _db.GetByIdAsync(id); + } + + /// + /// 根据ID获取 + /// + /// + /// + public virtual async Task> GetListAsync(Expression> whereExpression = null) + { + if (whereExpression == null) + { + return await _db.GetListAsync(); + } + return await _db.GetListAsync(whereExpression); + } + + /// + /// 根据条件获取单个 + /// + /// + /// + public virtual async Task GetSingleAsync(Expression> whereExpression) + { + return await _db.GetSingleAsync(whereExpression); + } + + /// + /// 根据条件获取第一个 + /// + /// + /// + public virtual async Task GetFirstAsync(Expression> whereExpression) + { + return await _db.GetFirstAsync(whereExpression); + } + public virtual async Task> GetPageListAsync(PageRequest pagination, Expression> whereExpression, Expression> orderByExpression = null, OrderByType orderByType = OrderByType.Asc) + { + var pageModel = pagination.Adapt(); + List result = null; + if (whereExpression != null) + result = await _db.GetPageListAsync(whereExpression, pageModel, orderByExpression, orderByType); + else + result = await _db.GetPageListAsync(x => 1 == 1, pageModel, orderByExpression, orderByType); + return new PageResponse + { + Items = result, + Total = pageModel.TotalCount, + }; + } + /// + /// 分页查询 + /// + /// + /// + /// + public virtual async Task> GetPageListAsync(PageRequest pagination, Expression> whereExpression = null) + { + var pageModel = pagination.Adapt(); + + List result = null; + if (whereExpression != null) + result = await _db.GetPageListAsync(whereExpression, pageModel, orderByExpression: x => x.Id, orderByType: OrderByType.Desc); + else + result = await _db.GetPageListAsync(x => 1 == 1, pageModel, orderByExpression: x => x.Id, orderByType: OrderByType.Desc); + + return new PageResponse + { + Items = result, + Total = pageModel.TotalCount, + }; + } + + /// + /// 分页查询 + /// + /// + /// + /// + public virtual async Task> GetPageListAsync(PageRequest pagination, Expression> whereExpression) + { + var pageModel = pagination.Adapt(); + + List result = null; + if (whereExpression != null) + result = await _db.GetPageListAsync(whereExpression, pageModel, orderByExpression: x => x.Id, orderByType: OrderByType.Desc); + else + result = await _db.GetPageListAsync(x => 1 == 1, pageModel, orderByExpression: x => x.Id, orderByType: OrderByType.Desc); + + return new PageResponse + { + Items = result.Adapt>(), + Total = pageModel.TotalCount, + }; + } + + + } +} diff --git a/LearningOfficer.OA.Services/LearningOfficer.OA.Services.csproj b/LearningOfficer.OA.Services/LearningOfficer.OA.Services.csproj new file mode 100644 index 0000000..f91fad3 --- /dev/null +++ b/LearningOfficer.OA.Services/LearningOfficer.OA.Services.csproj @@ -0,0 +1,20 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + + + + diff --git a/LearningOfficer.OA.Services/LoginMobile/LoginMobilAppService.cs b/LearningOfficer.OA.Services/LoginMobile/LoginMobilAppService.cs new file mode 100644 index 0000000..05f8c8e --- /dev/null +++ b/LearningOfficer.OA.Services/LoginMobile/LoginMobilAppService.cs @@ -0,0 +1,137 @@ +using LearningOfficer.OA.Common.Attributes; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Exceptions; +using LearningOfficer.OA.Core.Entities.OA.SystemInfo; +using LearningOfficer.OA.Core.Entities.UserCenter; +using LearningOfficer.OA.Core.ServicesInterfaces.LoginMobile; +using LearningOfficer.OA.Infrastructure.DBContext; +using Masuit.Tools.Models; +using Microsoft.Extensions.Configuration; +using Microsoft.IdentityModel.Tokens; +using SqlSugar; +using StackExchange.Redis; +using System; +using System.Collections.Generic; +using System.IdentityModel.Tokens.Jwt; +using System.Linq; +using System.Linq.Expressions; +using System.Security.Claims; +using System.Text; +using System.Threading.Tasks; + +namespace LearningOfficer.OA.Services.LoginMobile +{ + [Inject] + public class LoginMobilAppService : BaseService, ILoginMobilAppService + { + private readonly SugarRepository _userRepository; + private readonly IConfiguration _configuration; + private readonly ISqlSugarClient _db; + + public LoginMobilAppService(ISqlSugarClient dbContext, SugarRepository userRepository, IConfiguration configuration) : base(userRepository) + { + _db = dbContext; + _configuration = configuration; + _userRepository = userRepository; + } + private async Task GetUserResultByWhere( + Expression> where) + { + var data = await _db.Queryable().AS("usercenter_v1.user") + .InnerJoin((u, up) => u.Id == up.UserId, "usercenter_v1.oa_user_permissions") + .LeftJoin((u, up, c) => u.CloudSchoolId == c.Id, "usercenter_v1.cloudschool") + .LeftJoin((u, up, c, role) => up.RoleEnum == role.RoleEnum, "`learningofficer.oa`.sys_role") + .Where(where) + .Select((u, up, c, role) => + new + { + u,up ,c,role + } + ).ToListAsync(); + if (data.Count == 0) + { + return null; + } + else if (data.Count == 1) + { + //判断是不是总部长 + var userinfo = data.FirstOrDefault(); + if (userinfo.role.RoleEnum == SysRoleEnum.GeneralMinisterAdmin) + { + return new UserResult + { + Id = userinfo.u.Id, + RealName = userinfo.u.RealName, + Account = userinfo.u.Account, + Phone = userinfo.u.Phone, + RoleEnum = userinfo.role.RoleEnum, + Role_Name = userinfo.role.RoleName, + Cloud_id = userinfo.c.Id, + CloudName = userinfo.c.Name, + HeadImage = userinfo.u.HeadImage + }; + } + else + { + //判断云校状态是否正常 + if (userinfo.c.Enable != true || userinfo.c.DeleteState != false) + { + return null; + + } + return new UserResult + { + Id = userinfo.u.Id, + RealName = userinfo.u.RealName, + Account = userinfo.u.Account, + Phone = userinfo.u.Phone, + RoleEnum = userinfo.role.RoleEnum, + Role_Name = userinfo.role.RoleName, + Cloud_id = userinfo.c.Id, + CloudName = userinfo.c.Name, + HeadImage = userinfo.u.HeadImage + }; + } + } + else if (data.Count > 1) + { + //过滤 + var userinfo = data.Where(s => s.c.Enable == true && s.c.DeleteState == false).First(); + + return new UserResult + { + Id = userinfo.u.Id, + RealName = userinfo.u.RealName, + Account = userinfo.u.Account, + Phone = userinfo.u.Phone, + RoleEnum = userinfo.role.RoleEnum, + Role_Name = userinfo.role.RoleName, + Cloud_id = userinfo.c.Id, + CloudName = userinfo.c.Name, + HeadImage = userinfo.u.HeadImage + }; + } + else + { + return null; + } + } + + public async Task userLogin(LoginRequest request) + { + UserResult model = new UserResult(); + var userResult = await GetUserResultByWhere((u, up, c, role) => u.Account == request.username && u.Password == request.Pwd && u.DeleteState == false && u.State == 1); + + if (userResult == null) + { + throw new BusinessException("账号或密码错误"); + } + userResult.UserType = 1; + return userResult; + } + + + } +} diff --git a/LearningOfficer.OA.Services/UserService.cs b/LearningOfficer.OA.Services/UserService.cs new file mode 100644 index 0000000..ad45487 --- /dev/null +++ b/LearningOfficer.OA.Services/UserService.cs @@ -0,0 +1,94 @@ +using Castle.Core.Logging; +using Dm.util; +using LearningOfficer.OA.Common.Attributes; +using LearningOfficer.OA.Common.Configs; +using LearningOfficer.OA.Common.Dtos.Classes; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Dtos.OA.ManagerData; +using LearningOfficer.OA.Common.Dtos.School; +using LearningOfficer.OA.Common.Dtos.TencentIM; +using LearningOfficer.OA.Common.Dtos.User; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Exceptions; +using LearningOfficer.OA.Common.Helpers; +using LearningOfficer.OA.Common.Request; +using LearningOfficer.OA.Common.Response; +using LearningOfficer.OA.Core.Entities.OA.SystemInfo; +using LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask; +using LearningOfficer.OA.Core.Entities.UserCenter; +using LearningOfficer.OA.Core.ServicesInterfaces; +using LearningOfficer.OA.Core.ServicesInterfaces.ClassTask; +using LearningOfficer.OA.Infrastructure.DBContext; +using LearningOfficer.OA.Services.WorkProcess.ClassTask; +using Mapster; +using Masuit.Tools; +using Masuit.Tools.Security; +using Meeting.Infrastructure; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using MiniExcelLibs; +using Nacos.V2.Utils; +using SqlSugar; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.ConstrainedExecution; +using UserCenter.Model; +using UserCenter.Model.Common; +using UserCenter.Model.Enum; +using Yitter.IdGenerator; +using Classes = LearningOfficer.OA.Core.Entities.UserCenter.Classes; +using Position = LearningOfficer.OA.Core.Entities.UserCenter.Position; +using School = LearningOfficer.OA.Core.Entities.UserCenter.School; +using User = LearningOfficer.OA.Core.Entities.UserCenter.User; +using Cloudschool = LearningOfficer.OA.Core.Entities.UserCenter.Cloudschool; + +namespace LearningOfficer.OA.Services +{ + [Inject] + public class UserService : BaseService, IUserService + { + private readonly SugarRepository _userRepository; + public UserService(SugarRepository userRepository) : base(userRepository) + { + this._userRepository = userRepository; + } + public async Task> GetStudentResults(long ClassesId, int IsBackOutStudent) + { + //获取班级下的学生职级 + var result = await _userRepository.Context.Queryable() + .LeftJoin((p, pr) => p.Id == pr.PositionId) + .LeftJoin((p, pr, u) => pr.UserId == u.Id) + .LeftJoin((p, pr, u, c) => p.ClassId == c.Id) + .LeftJoin((p, pr, u, c, s) => c.SchoolId == s.Id) + .Where((p, pr, u, c, s) => p.ClassId == ClassesId && p.DeleteState == false && u.State == 1 && p.Enable == true && p.PositionType == 1 && u.DeleteState == false) + .WhereIF(IsBackOutStudent == 1, (p, pr, u, c, s) => (pr.Status == PositionRelationStatusEnum.就读任职 || pr.Status == PositionRelationStatusEnum.退学休学)) + .WhereIF(IsBackOutStudent == 0, (p, pr, u, c, s) => pr.Status == PositionRelationStatusEnum.就读任职) + .Select((p, pr, u, c, s) => new StudentResult + { + Id = u.Id, + Name = u.RealName, + Status = pr.Status, + SchoolId = s.Id, + ClassName = c.ClassName, + GradeLevel = c.GradeLevel, + GraduationYear = c.GraduationYear, + SchoolName = s.Name + }).ToListAsync(); + return result; + } + public async Task ResetStudentPwd(long userId) + { + var user = await _userRepository.GetByIdAsync(userId); + if (user == null) + { + throw new BusinessException("用户不存在"); + } + user.Password = MD5EncryptionHelper.MD5Encryption("123456"); + //大写MD5 + user.Password = user.Password.ToUpper(); + return await _userRepository.UpdateAsync(user); + } + + } +} diff --git a/LearningOfficer.OA.Services/WorkProcess/ClassTask/Task_checklistService.cs b/LearningOfficer.OA.Services/WorkProcess/ClassTask/Task_checklistService.cs new file mode 100644 index 0000000..ac2665d --- /dev/null +++ b/LearningOfficer.OA.Services/WorkProcess/ClassTask/Task_checklistService.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.ConstrainedExecution; +using System.Text; +using System.Threading.Tasks; +using LearningOfficer.OA.Common.Attributes; +using LearningOfficer.OA.Common.Dtos.Classes; +using LearningOfficer.OA.Common.Dtos.LoginMobile; +using LearningOfficer.OA.Common.Dtos.OA.ManagerData; +using LearningOfficer.OA.Common.Dtos.OA.WorkProcess; +using LearningOfficer.OA.Common.Dtos.School; +using LearningOfficer.OA.Common.Dtos.V2.WorkProcess; +using LearningOfficer.OA.Common.Enums; +using LearningOfficer.OA.Common.Exceptions; +using LearningOfficer.OA.Core.Entities.OA.SystemInfo; +using LearningOfficer.OA.Core.Entities.OA.WorkProcess.ClassesTask; +using LearningOfficer.OA.Core.Entities.UserCenter; +using LearningOfficer.OA.Core.ServicesInterfaces; +using LearningOfficer.OA.Core.ServicesInterfaces.ClassTask; +using LearningOfficer.OA.Infrastructure.DBContext; +using Microsoft.EntityFrameworkCore.Internal; +using StackExchange.Redis; +using UserCenter.Model.Common; +using UserCenter.Model.Enum; + +namespace LearningOfficer.OA.Services.WorkProcess.ClassTask +{ + [Inject] + public class Task_checklistService : BaseService, ITask_checklistService + { + private readonly SugarRepository _db; + public Task_checklistService(SugarRepository db) : base(db) + { + _db = db; + } + public async Task> GetBindClassesBySchoolId(long userId) + { + //学习官 + var classes = await _db.Context.Queryable().AS("usercenter_v1.oa_classes_follow_relationship") + .LeftJoin((u, c) => u.ClassesId == c.Id).AS("usercenter_v1.classes") + .LeftJoin((u, c, s) => c.SchoolId == s.Id).AS("usercenter_v1.school") + .Where((u, c, s) => u.UserId == userId && c.DeleteState == false) + .Select((u, c, s) => new ClassesResult + { + Id = c.Id, + Name = c.ClassName, + GradeLevel = c.GradeLevel, + GraduationYear = c.GraduationYear, + SchoolId = s.Id, + SchoolName = s.Name, + }) + .ToListAsync(); + return classes; + } + } +} diff --git a/nuget.config b/nuget.config new file mode 100644 index 0000000..831a827 --- /dev/null +++ b/nuget.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file