Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Education
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
Education
Commits
c23a3c6b
Commit
c23a3c6b
authored
Oct 09, 2024
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增班级类型
parent
e80a6c6f
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
288 additions
and
144 deletions
+288
-144
CourseClassTypeEnum.cs
Edu.Common/Enum/Course/CourseClassTypeEnum.cs
+1
-5
StudentNumTypeEnum.cs
Edu.Common/Enum/Course/StudentNumTypeEnum.cs
+24
-0
RB_Class.cs
Edu.Model/Entity/Grade/RB_Class.cs
+5
-0
ClassModule.cs
Edu.Module.Course/ClassModule.cs
+2
-1
RB_ClassRepository.cs
Edu.Repository/Grade/RB_ClassRepository.cs
+2
-1
RB_Class_CheckRepository.cs
Edu.Repository/Grade/RB_Class_CheckRepository.cs
+165
-133
RB_Class_TypeRepository.cs
Edu.Repository/Grade/RB_Class_TypeRepository.cs
+0
-3
ClassController.cs
Edu.WebApi/Controllers/Course/ClassController.cs
+89
-1
No files found.
Edu.Common/Enum/Course/CourseClassTypeEnum.cs
View file @
c23a3c6b
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
using
Edu.Common.Plugin
;
using
Edu.Common.Plugin
;
namespace
Edu.Common.Enum.Course
{
public
enum
CourseClassTypeEnum
{
/// <summary>
/// 一对一外教
/// </summary>
...
...
Edu.Common/Enum/Course/StudentNumTypeEnum.cs
View file @
c23a3c6b
...
...
@@ -18,4 +18,28 @@ namespace Edu.Common.Enum.Course
[
EnumField
(
"多人"
)]
OneToMany
=
2
}
/// <summary>
/// 班级分类
/// </summary>
public
enum
ClassCategoryEnum
{
/// <summary>
/// 常规
/// </summary>
[
EnumField
(
"常规"
)]
Normal
=
1
,
/// <summary>
/// 宣讲
/// </summary>
[
EnumField
(
"宣讲"
)]
Lecture
=
2
,
/// <summary>
/// 日语角
/// </summary>
[
EnumField
(
"日语角"
)]
JapaneseCorner
=
3
,
}
}
Edu.Model/Entity/Grade/RB_Class.cs
View file @
c23a3c6b
...
...
@@ -234,5 +234,10 @@ namespace Edu.Model.Entity.Grade
/// 滚动开班月份
/// </summary>
public
string
ScrollMonth
{
get
;
set
;
}
/// <summary>
/// 班级分类
/// </summary>
public
ClassCategoryEnum
ClassCategory
{
get
;
set
;
}
}
}
Edu.Module.Course/ClassModule.cs
View file @
c23a3c6b
...
...
@@ -406,7 +406,7 @@ namespace Edu.Module.Course
/// <param name="rowsCount">总条数</param>
/// <param name="query">查询条件</param>
/// <returns></returns>
public
List
<
RB_Class_Log_ViewModel
>
GetClassLogPageList
Repository
(
int
pageIndex
,
int
pageSize
,
out
long
rowsCount
,
RB_Class_Log_ViewModel
query
)
public
List
<
RB_Class_Log_ViewModel
>
GetClassLogPageList
Module
(
int
pageIndex
,
int
pageSize
,
out
long
rowsCount
,
RB_Class_Log_ViewModel
query
)
{
return
classLogRepository
.
GetClassLogPageListRepository
(
pageIndex
,
pageSize
,
out
rowsCount
,
query
);
}
...
...
@@ -457,6 +457,7 @@ namespace Edu.Module.Course
{
nameof
(
RB_Class_ViewModel
.
CourseClassType
),
model
.
CourseClassType
},
{
nameof
(
RB_Class_ViewModel
.
StudentNumType
),
model
.
StudentNumType
},
{
nameof
(
RB_Class_ViewModel
.
ClassHourMinute
),
model
.
ClassHourMinute
},
{
nameof
(
RB_Class_ViewModel
.
ClassCategory
),
model
.
ClassCategory
},
};
if
(
oldModel
.
OpenTime
!=
model
.
OpenTime
||
oldModel
.
ClassType
!=
model
.
ClassType
||
string
.
IsNullOrEmpty
(
oldModel
.
ClassNo
))
{
...
...
Edu.Repository/Grade/RB_ClassRepository.cs
View file @
c23a3c6b
...
...
@@ -383,7 +383,8 @@ WHERE 1=1
"
);
builder
.
AppendFormat
(
" AND A.{0}={1} "
,
nameof
(
RB_Class_ViewModel
.
Status
),
0
);
builder
.
AppendFormat
(
" AND A.{0} in(1,2) "
,
nameof
(
RB_Class_ViewModel
.
ClassStatus
));
builder
.
AppendFormat
(
" AND B.Saleplat<>'' AND B.SaleState=1 AND B.Status=0 "
);
//显示的课程
builder
.
AppendFormat
(
" AND B.SaleState=1 AND B.Status=0 "
);
if
(
query
!=
null
)
{
if
(
query
.
Group_Id
>
0
)
...
...
Edu.Repository/Grade/RB_Class_CheckRepository.cs
View file @
c23a3c6b
using
Edu.Common.Enum.System
;
using
Edu.Common.Plugin
;
using
Edu.Model.CacheModel
;
using
Edu.Model.Entity.Grade
;
using
Edu.Model.ViewModel.Course
;
using
Edu.Model.ViewModel.Grade
;
using
Edu.Model.ViewModel.Scroll
;
using
Edu.Model.ViewModel.Sell
;
using
Edu.Model.ViewModel.User
;
using
Microsoft.Extensions.Logging
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
...
...
@@ -966,7 +968,7 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
List
<
RB_Employee_Extend
>
empList
=
new
List
<
RB_Employee_Extend
>();
if
(
list
!=
null
&&
list
.
Count
>
0
)
{
string
orderGuestIds
=
string
.
Join
(
","
,
list
.
Select
(
qitem
=>
qitem
.
OrderGuestId
).
Distinct
());
string
orderGuestIds
=
string
.
Join
(
","
,
list
.
Where
(
qitem
=>
qitem
.
OrderGuestId
>
0
).
Select
(
qitem
=>
qitem
.
OrderGuestId
).
Distinct
());
if
(!
string
.
IsNullOrEmpty
(
orderGuestIds
))
{
guestList
=
GetOrderGuestListRepository
(
orderGuestIds
);
...
...
@@ -999,7 +1001,7 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
classList
=
GetClassListRepository
(
classIds
);
}
}
string
classLogStr
=
""
;
foreach
(
var
item
in
list
)
{
var
guestModel
=
guestList
?.
FirstOrDefault
(
qitem
=>
qitem
.
Id
==
item
.
OrderGuestId
)
??
new
RB_Order_Guest_Extend
();
...
...
@@ -1025,6 +1027,10 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
}
else
{
if
(!
string
.
IsNullOrEmpty
(
guestModel
?.
GuestName
??
""
))
{
classLogStr
+=
string
.
Format
(
",新增{0}签到"
,
guestModel
?.
GuestName
??
""
);
}
item
.
AttendanceMethod
=
Common
.
Enum
.
User
.
AttendanceMethodEnum
.
Offline
;
item
.
CheckRemark
=
"班课签到"
;
item
.
IsCalcTeacFee
=
1
;
...
...
@@ -1042,16 +1048,18 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
}
if
(
flag
)
{
//更新学员完成课时
var
completeHours
=
guestOldFinishHours
+
currentDeductionHours
;
var
shenyuHours
=
guestModel
.
TotalHours
-
completeHours
;
string
LogContent
=
""
;
var
orderModel
=
orderList
?.
FirstOrDefault
(
qitem
=>
qitem
.
OrderId
==
guestModel
.
OrderId
);
if
(
orderModel
!=
null
&&
orderModel
.
OrderId
>
0
&&
guestModel
!=
null
&&
guestModel
.
Id
>
0
)
{
//更新学员完成课时
Dictionary
<
string
,
object
>
orderFileds
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Order_Guest_ViewModel
.
CompleteHours
),
completeHours
}
};
var
orderModel
=
orderList
?.
FirstOrDefault
(
qitem
=>
qitem
.
OrderId
==
guestModel
.
OrderId
);
string
LogContent
=
""
;
var
shenyuHours
=
guestModel
.
TotalHours
-
completeHours
;
var
classModel
=
classList
?.
FirstOrDefault
(
qitem
=>
qitem
.
ClassId
==
guestModel
.
ClassId
);
var
sellerInfo
=
empList
?.
FirstOrDefault
(
qitem
=>
qitem
.
EmployeeId
==
orderModel
.
EnterID
);
...
...
@@ -1176,8 +1184,6 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
#
endregion
}
if
(
item
.
CheckStatus
==
1
)
{
#
region
通知缺勤信息
...
...
@@ -1229,7 +1235,7 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
guestParamters
.
Add
(
"@Id"
,
item
.
OrderGuestId
);
flag
=
base
.
Execute
(
guestSql
,
guestParamters
)
>
0
;
}
if
(
flag
&&
!
string
.
IsNullOrEmpty
(
LogContent
))
{
AddUserChangeLogRepository
(
new
Model
.
Entity
.
Log
.
RB_User_ChangeLog
()
...
...
@@ -1335,6 +1341,20 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
new
Common
.
Message
.
MessageHelper
().
SendMessage
(
pushList
);
}
if
(
flag
&&
!
string
.
IsNullOrEmpty
(
classLogStr
))
{
AddClassLogRepository
(
new
Model
.
Entity
.
Log
.
RB_Class_Log
()
{
LogType
=
Common
.
Enum
.
Course
.
ClassLogTypeEnum
.
Class
,
LogContent
=
classLogStr
,
ClassId
=
list
.
FirstOrDefault
().
ClassId
,
CreateBy
=
list
.
FirstOrDefault
().
CreateBy
,
CreateTime
=
DateTime
.
Now
,
Group_Id
=
list
.
FirstOrDefault
().
Group_Id
,
School_Id
=
list
.
FirstOrDefault
().
School_Id
,
});
}
return
flag
;
}
...
...
@@ -1530,6 +1550,18 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
return
flag
;
}
/// <summary>
/// 添加班级日志
/// </summary>
/// <param name="model"></param>
private
void
AddClassLogRepository
(
Model
.
Entity
.
Log
.
RB_Class_Log
model
)
{
string
sql
=
" INSERT INTO RB_Class_Log(LogType,LogContent,ClassId,CreateBy,CreateTime,Group_Id,School_Id) "
;
sql
+=
" VALUES(@LogType,@LogContent,@ClassId,@CreateBy,@CreateTime,@Group_Id,@School_Id) "
;
base
.
Execute
(
sql
,
model
);
}
/// <summary>
/// 新增日志
/// </summary>
...
...
Edu.Repository/Grade/RB_Class_TypeRepository.cs
View file @
c23a3c6b
using
Edu.Common.Enum
;
using
Edu.Model.Entity.Course
;
using
Edu.Model.Entity.Grade
;
using
Edu.Model.ViewModel.Course
;
using
Edu.Model.ViewModel.Grade
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
...
...
Edu.WebApi/Controllers/Course/ClassController.cs
View file @
c23a3c6b
...
...
@@ -22,6 +22,7 @@ using Microsoft.AspNetCore.Cors;
using
Microsoft.AspNetCore.Mvc
;
using
Newtonsoft.Json
;
using
Newtonsoft.Json.Linq
;
using
Spire.Pdf.Exporting.XPS.Schema
;
namespace
Edu.WebApi.Controllers.Course
{
...
...
@@ -102,6 +103,8 @@ namespace Edu.WebApi.Controllers.Course
item
.
TotalPlanNum
,
item
.
CourseSubject
,
item
.
CourseSubjectName
,
item
.
ClassCategory
,
ClassCategoryName
=
item
.
ClassCategory
.
ToName
(),
});
}
pageModel
.
Count
=
rowsCount
;
...
...
@@ -244,6 +247,7 @@ namespace Edu.WebApi.Controllers.Course
CourseClassType
=
(
CourseClassTypeEnum
)
base
.
ParmJObj
.
GetInt
(
"CourseClassType"
),
StudentNumType
=
(
StudentNumTypeEnum
)
base
.
ParmJObj
.
GetInt
(
"StudentNumType"
),
ClassHourMinute
=
base
.
ParmJObj
.
GetInt
(
"ClassHourMinute"
),
ClassCategory
=(
ClassCategoryEnum
)
base
.
ParmJObj
.
GetInt
(
"ClassCategory"
),
};
extModel
.
ClassDateList
=
Common
.
Plugin
.
JsonHelper
.
DeserializeObject
<
List
<
string
>>(
base
.
ParmJObj
.
GetStringValue
(
"ClassDateList"
));
...
...
@@ -672,6 +676,7 @@ namespace Edu.WebApi.Controllers.Course
ClassDateList
=
extModel
?.
ClassDateList
??
new
List
<
string
>(),
TotalPlanNum
=
extModel
?.
TotalPlanNum
??
0
,
UsePlanNum
=
extModel
?.
UsePlanNum
??
0
,
ClassCategory
=
extModel
?.
ClassCategory
??
0
,
};
return
ApiResult
.
Success
(
data
:
obj
);
}
...
...
@@ -1296,6 +1301,70 @@ namespace Edu.WebApi.Controllers.Course
return
result
?
ApiResult
.
Success
(
message
:
"check_success"
)
:
ApiResult
.
Failed
(
"签到失败"
);
}
/// <summary>
/// 讲座和日语角签到
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
AddClassCheckOtherType
()
{
int
ClassId
=
base
.
ParmJObj
.
GetInt
(
"ClassId"
);
int
ClassPlanId
=
base
.
ParmJObj
.
GetInt
(
"ClassPlanId"
);
int
ClassTimeId
=
base
.
ParmJObj
.
GetInt
(
"ClassTimeId"
);
if
(
ClassId
<=
0
||
ClassPlanId
<=
0
||
ClassTimeId
<=
0
)
{
return
ApiResult
.
ParamIsNull
(
message
:
"参数不能为空!"
);
}
var
userInfo
=
base
.
UserInfo
;
var
planModel
=
classModule
.
GetClassPlanListModule
(
new
RB_Class_Plan_ViewModel
()
{
ClassPlanId
=
ClassPlanId
}).
FirstOrDefault
();
//判断当天是否有已签到数据
var
checkLogList
=
classModule
.
GetClassCheckList
(
new
RB_Class_Check_ViewModel
{
Group_Id
=
userInfo
.
Group_Id
,
ClassId
=
ClassId
,
ClassTimeId
=
ClassTimeId
,
StartDate
=
planModel
.
ClassDate
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
),
EndDate
=
planModel
.
ClassDate
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
),
});
var
classTime
=
classModule
.
GetClassTimeListModule
(
new
RB_Class_Time_ViewModel
()
{
ClassId
=
ClassId
,
ClassPlanId
=
ClassPlanId
,
ClassTimeId
=
ClassTimeId
})?.
FirstOrDefault
();
List
<
RB_Class_Check_ViewModel
>
list
=
new
List
<
RB_Class_Check_ViewModel
>();
list
.
Add
(
new
RB_Class_Check_ViewModel
()
{
CheckStatus
=
0
,
ClassDate
=
planModel
.
ClassDate
,
ClassRoomId
=
planModel
.
ClassRoomId
,
OrderGuestId
=
0
,
School_Id
=
0
,
StudyNum
=
(
classTime
?.
TimeMinute
??
0
),
TeacherId
=
planModel
.
TeacherId
,
ClassId
=
ClassId
,
ClassTimeId
=
ClassTimeId
,
StuId
=
0
});
foreach
(
var
item
in
list
)
{
var
signModel
=
checkLogList
?.
Where
(
qitem
=>
qitem
.
ClassDate
.
ToString
(
"yyyy-MM-dd"
)
==
item
.
ClassDate
.
ToString
(
"yyyy-MM-dd"
)
&&
qitem
.
ClassId
==
item
.
ClassId
&&
qitem
.
ClassTimeId
==
item
.
ClassTimeId
)?.
FirstOrDefault
();
if
(
signModel
!=
null
&&
signModel
.
ClassCheckId
>
0
)
{
item
.
ClassCheckId
=
signModel
.
ClassCheckId
;
item
.
Group_Id
=
signModel
.
Group_Id
;
item
.
CreateTime
=
signModel
.
CreateTime
;
item
.
CreateBy
=
userInfo
.
Id
;
item
.
Status
=
0
;
}
else
{
item
.
Group_Id
=
userInfo
.
Group_Id
;
item
.
CreateTime
=
System
.
DateTime
.
Now
;
item
.
CreateBy
=
userInfo
.
Id
;
item
.
Status
=
0
;
}
}
bool
result
=
classModule
.
AddClassCheckModule
(
list
).
Result
;
return
result
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
(
"签到失败"
);
}
///// <summary>
///// 视频转码回调
///// </summary>
...
...
@@ -1502,7 +1571,7 @@ namespace Edu.WebApi.Controllers.Course
ClassId
=
base
.
ParmJObj
.
GetInt
(
"ClassId"
),
};
query
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
var
list
=
classModule
.
GetClassLogPageList
Repository
(
pageModel
.
PageIndex
,
pageModel
.
PageSize
,
out
long
rowsCount
,
query
);
var
list
=
classModule
.
GetClassLogPageList
Module
(
pageModel
.
PageIndex
,
pageModel
.
PageSize
,
out
long
rowsCount
,
query
);
foreach
(
var
item
in
list
)
{
if
(
item
.
CreateBy
>
0
)
...
...
@@ -1555,6 +1624,25 @@ namespace Edu.WebApi.Controllers.Course
}
return
ApiResult
.
Success
(
data
:
list
.
OrderBy
(
qitem
=>
qitem
.
Id
));
}
/// <summary>
/// 获取班级分类枚举列表
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
GetClassCategoryList
()
{
var
list
=
Common
.
Plugin
.
EnumHelper
.
EnumToList
(
typeof
(
ClassCategoryEnum
));
if
(
list
!=
null
)
{
list
.
Insert
(
0
,
new
EnumItem
()
{
Id
=
0
,
Name
=
"不限"
});
}
return
ApiResult
.
Success
(
data
:
list
.
OrderBy
(
qitem
=>
qitem
.
Id
));
}
#
endregion
#
region
老师教案
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment