|
|
|
@ -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, |
|
|
|
|