上级反馈页面对接提交反馈信息

master
xiaochanghai 1 month ago
parent 2d90cd38ab
commit d0e2b50c38
  1. 2
      Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
  2. 74
      Tiobon.Core.Services/Ghre/Ghre_SurveyServices.cs

@ -1148,7 +1148,7 @@ public class Ghre_StudyRecordServices : BaseServices<Ghre_StudyRecord, Ghre_Stud
A.Status OpenClassStatus, A.CreateTime PublishTime, ISNULL (F.StudyProgress, 0) StudyProgress, A.IsRequireStudy,
A.FeedbackId FeedbackOrderId
FROM Ghre_OpenClass A
JOIN Ghre_StaffGroup B ON A.StaffGroupId = B.Id
LEFT JOIN Ghre_StaffGroup B ON A.StaffGroupId = B.Id
LEFT JOIN Ghre_Course C ON A.LinkId = C.Id
LEFT JOIN Ghre_CourseScene D ON A.LinkId = D.Id
LEFT JOIN Ghre_ExamRecord E ON A.Id = E.OpenClassId AND E.StaffId = '{staffId}'

@ -198,6 +198,44 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
public async Task<ServiceResult<Ghre_SurveyExtend>> QueryESSData(long id, long? openClassId = null)
{
long? feedbackId = null;
if (await Db.Queryable<Ghre_OpenClassFeedback>().Where(x => x.Source == "ParentTeacher" && (x.Id == id || x.Id == openClassId)).AnyAsync())
{
var feedback = await Db.Queryable<Ghre_OpenClassFeedback>().Where(x => x.Source == "ParentTeacher" && (x.Id == id || x.Id == openClassId)).FirstAsync();
feedbackId = feedback.Id;
openClassId = feedback.OpenClassId;
id = feedback.SurveyId.Value;
}
else
{
if (!await Db.Queryable<Ghre_OpenClassFeedback>()
.Where(x => x.Source == "Trainee"
&& (x.SurveyId == id || x.Id == openClassId)
&& x.OpenClassId == openClassId).AnyAsync())
{
var openClass = await Db.Queryable<Ghre_OpenClass>().Where(x => x.Id == openClassId).FirstAsync();
var feedback = new Ghre_OpenClassFeedback()
{
OpenClassId = openClassId,
SurveyId = id,
StaffId = App.User.StaffId,
Source = "Trainee",
EffectiveTime = DateTime.Now,
ExpiryTime = DateTime.MaxValue,
TeacherId = openClass.TeacherId,
CourseBeginTime = openClass.StartTime,
CourseEndTime = openClass.EndTime,
CourseId = openClass.LinkId
};
feedbackId = await Db.Insertable(feedback).ExecuteReturnSnowflakeIdAsync();
}
else feedbackId = await Db.Queryable<Ghre_OpenClassFeedback>()
.Where(x => x.Source == "Trainee"
&& (x.SurveyId == id || x.Id == openClassId)
&& x.OpenClassId == openClassId).Select(x => x.Id).FirstAsync();
}
var entity = await base.QueryById(id);
@ -223,6 +261,7 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
data.IsSubmit = await Db.Queryable<Ghre_SurveyRecord>()
.Where(x => x.StaffId == App.User.StaffId && x.SurveyId == id)
.WhereIF(openClassId != null, x => x.OpenClassId == openClassId)
.WhereIF(openClassId != null && feedbackId != null, x => x.OpenClassId == openClassId && x.OpenClassFeedbackId == feedbackId)
.AnyAsync();
#endregion
@ -232,6 +271,7 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
var recordId = await Db.Queryable<Ghre_SurveyRecord>()
.Where(x => x.StaffId == App.User.StaffId && x.SurveyId == id)
.WhereIF(openClassId != null, x => x.OpenClassId == openClassId)
.WhereIF(openClassId != null && feedbackId != null, x => x.OpenClassId == openClassId && x.OpenClassFeedbackId == feedbackId)
.Select(x => x.Id).FirstAsync();
var recordDetails = await Db.Queryable<Ghre_SurveyRecordDetail>().Where(x => x.SurveyRecordId == recordId).ToListAsync();
@ -282,12 +322,27 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
public async Task<ServiceResult> SubmitESSData(long id, Ghre_SurveyExtend input, long? openClassId = null)
{
long? feedbackId = null;
if (await Db.Queryable<Ghre_OpenClassFeedback>().Where(x => x.Source == "ParentTeacher" && (x.Id == id || x.Id == openClassId)).AnyAsync())
{
var feedback = await Db.Queryable<Ghre_OpenClassFeedback>().Where(x => x.Source == "ParentTeacher" && (x.Id == id || x.Id == openClassId)).FirstAsync();
feedbackId = feedback.Id;
openClassId = feedback.OpenClassId;
id = feedback.SurveyId.Value;
}
else
feedbackId = await Db.Queryable<Ghre_OpenClassFeedback>()
.Where(x => x.Source == "Trainee"
&& (x.SurveyId == id || x.Id == openClassId)
&& x.OpenClassId == openClassId).Select(x => x.Id).FirstAsync();
var entity = await base.QueryById(id);
var lastRecord = await Db.Queryable<Ghre_SurveyRecord>()
.Where(x => x.StaffId == App.User.StaffId && x.SurveyId == id)
.WhereIF(openClassId != null, x => x.OpenClassId == openClassId)
.WhereIF(openClassId != null && feedbackId != null, x => x.OpenClassFeedbackId == feedbackId)
.FirstAsync();
var surveyRecordId = lastRecord?.Id;
await Db.Updateable<Ghre_SurveyRecord>()
@ -310,26 +365,7 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
if (lastRecord.IsNullOrEmpty() || (lastRecord != null && lastRecord.SubmitDate != null) || surveyRecordId == 0)
{
long? feedbackId = null;
if (openClassId != null)
{
var openClass = await Db.Queryable<Ghre_OpenClass>().Where(x => x.Id == openClassId).FirstAsync();
var feedback = new Ghre_OpenClassFeedback()
{
OpenClassId = openClassId,
SurveyId = id,
StaffId = App.User.StaffId,
Source = "Trainee",
EffectiveTime = DateTime.Now,
ExpiryTime = DateTime.MaxValue,
TeacherId = openClass.TeacherId,
CourseBeginTime = openClass.StartTime,
CourseEndTime = openClass.EndTime,
CourseId = openClass.LinkId
};
feedbackId = await Db.Insertable(feedback).ExecuteReturnSnowflakeIdAsync();
}
var record = new Ghre_SurveyRecord()
{
//Id = recordId,

Loading…
Cancel
Save