服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-10-27 6f3b05c06125b457d0c78e259f3befe4910881cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
using Tiger.Model.Extensions;
 
namespace Tiger.Model
{
    /// <summary>
    /// 实体:作业列表
    /// </summary>
    [Description("Primary:ID")]
    [Serializable]
    [SugarTable("TSK_JOB")]
    public class TSK_JOB : DbEntityWithAuth
    {
        #region 构造函数
 
        /// <summary>
        /// 实体:作业列表
        /// </summary>
        public TSK_JOB()
        { }
 
        #endregion 构造函数
 
        #region 公共属性
 
        /// <summary>
        /// 作业名称
        /// </summary>
        public string JobName { get; set; }
 
        /// <summary>
        /// 作业组名称
        /// </summary>
        public string GroupName { get; set; }
 
        /// <summary>
        /// 作业处理程序类型,存储的是类型的 FuLIName
        /// </summary>
        public string JobType { get; set; }
 
        /// <summary>
        /// 作业处理程序类型所在程序集,存储的是程序集 Name
        /// </summary>
        public string AssemblyName { get; set; }
 
        /// <summary>
        /// 描述信息
        /// </summary>
        public string Description { get; set; }
 
        /// <summary>
        /// 作业执行方式,如果设置为 false,那么使用串行执行,否则并行执行
        /// </summary>
        public bool Concurrent { get; set; } = true;
 
        /// <summary>
        /// 是否扫描 IJob 实现类 [Trigger] 特性触发器
        /// </summary>
        public bool IncludeAnnotations { get; set; } = false;
 
        /// <summary>
        /// 作业信息额外数据,由 Dictionary<string,object> 序列化成字符串存储
        /// </summary>
        public string Properties { get; set; } = "{}";
 
        /// <summary>
        /// 作业更新时间
        /// </summary>
        public DateTime UpdatedTime { get; set; } = DateTime.MinValue;
 
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
 
        /// <summary>
        /// 是否执行
        /// </summary>
        public int? ISRUNNING { get; set; }
 
        /// <summary>
        /// 最后执行时间
        /// </summary>
        public DateTime? LASTRUNTIME { get; set; }
 
        #endregion 公共属性
 
        #region 虚拟属性
 
        //例子
        [SugarColumn(IsIgnore = true)]
        public string Status => Triggers?.FirstOrDefault()?.StatusStr + "," + Triggers?.FirstOrDefault()?.StatusStr.GetEnum<TSK_TRIG.Statuss>().GetDesc() ?? TSK_TRIG.Statuss.Ready.GetName() + "," + TSK_TRIG.Statuss.Ready.GetDesc();
 
        //[SugarColumn(IsIgnore = true)]
        //public int Period => Convert.ToInt32(Triggers?.FirstOrDefault()?.Args ?? $"2");
 
        [SugarColumn(IsIgnore = true)]
        public int uPeriod { get; set; }
 
        #endregion 虚拟属性
 
        #region 外键属性
 
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是TSK_JOB类里面的外键ID字段
        public ClassA ClassA { get; set; } //不能赋值只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.TSK_JOBId))]//ClassA表中的TSK_JOBId
        public List<ClassA> ClassAList { get; set; }//注意禁止给books手动赋值
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.TSK_JOBId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //只能是null不能赋默认值
        */
 
        [Navigate(NavigateType.OneToMany, nameof(TSK_TRIG.JobId))]//ClassA表中的TSK_JOBId
        public List<TSK_TRIG> TriggersWithGhost { get; set; }//注意禁止手动赋值,只能是null
 
        [SugarColumn(IsIgnore = true)]
        public List<TSK_TRIG> Triggers => TriggersWithGhost?.Where(q => !q.GHOST_ROW).ToList();
 
        #endregion 外键属性
 
        #region 枚举变量
 
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
 
        #endregion 枚举变量
    }//endClass
 
    public class TskJobParam
    {
        /// <summary>
        /// 作业名称
        /// </summary>
        public string JobName { get; set; }
 
        /// <summary>
        /// 周期
        /// </summary>
        public int Period { get; set; }
 
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
    }
 
    public class FluentJobParam: TskJobParam
    {
        public string AssemblyName { get; set; }
        public string DataType { get; set; }
 
        /// <summary>
        /// 参数
        /// </summary>
        public TrigArgs Args { get; set; }
    }
}