|
|
|
@@ -16,6 +16,7 @@ import com.peanut.modules.common.service.UserVipService;
|
|
|
|
import com.peanut.modules.sys.dao.SysUserDao;
|
|
|
|
import com.peanut.modules.sys.dao.SysUserDao;
|
|
|
|
import com.peanut.modules.sys.entity.SysUserEntity;
|
|
|
|
import com.peanut.modules.sys.entity.SysUserEntity;
|
|
|
|
import com.peanut.modules.sys.service.SysDictDataService;
|
|
|
|
import com.peanut.modules.sys.service.SysDictDataService;
|
|
|
|
|
|
|
|
import jodd.util.StringUtil;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
|
import org.springframework.amqp.core.MessagePostProcessor;
|
|
|
|
import org.springframework.amqp.core.MessagePostProcessor;
|
|
|
|
@@ -896,7 +897,6 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
int userNoCount = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
int userNoCount = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
.eq(ClassTaskAndQuesReply::getType,0)
|
|
|
|
.eq(ClassTaskAndQuesReply::getType,0)
|
|
|
|
.eq(ClassTaskAndQuesReply::getRelationId,classTask.getId())
|
|
|
|
.eq(ClassTaskAndQuesReply::getRelationId,classTask.getId())
|
|
|
|
.lt(ClassTaskAndQuesReply::getScoreSuccess,2)
|
|
|
|
|
|
|
|
.notLike(ClassTaskAndQuesReply::getScoreInfo,"\""+ShiroUtils.getUId()+"\""));
|
|
|
|
.notLike(ClassTaskAndQuesReply::getScoreInfo,"\""+ShiroUtils.getUId()+"\""));
|
|
|
|
Map<String,Object> result = new HashMap<>();
|
|
|
|
Map<String,Object> result = new HashMap<>();
|
|
|
|
result.put("setGiveHomeWorkNumber",alreadyReply);
|
|
|
|
result.put("setGiveHomeWorkNumber",alreadyReply);
|
|
|
|
@@ -1043,8 +1043,37 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
ClassTask classTask = classTaskDao.selectById(params.get("taskId").toString());
|
|
|
|
ClassTask classTask = classTaskDao.selectById(params.get("taskId").toString());
|
|
|
|
ClassEntity classEntity = this.baseMapper.selectById(classTask.getClassId());
|
|
|
|
ClassEntity classEntity = this.baseMapper.selectById(classTask.getClassId());
|
|
|
|
if ("1".equals(classEntity.getState())||"3".equals(classEntity.getState())){
|
|
|
|
if ("1".equals(classEntity.getState())||"3".equals(classEntity.getState())){
|
|
|
|
|
|
|
|
String score = params.get("score").toString();
|
|
|
|
|
|
|
|
String scoreInfo = "";
|
|
|
|
|
|
|
|
Map<String,Object> userIdAndScore = new HashMap<>();
|
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(classTask.getScoreInfo())){
|
|
|
|
|
|
|
|
boolean flag = true;
|
|
|
|
|
|
|
|
userIdAndScore = JSON.parseObject(classTask.getScoreInfo());
|
|
|
|
|
|
|
|
for (Map.Entry<String,Object> key : userIdAndScore.entrySet()) {
|
|
|
|
|
|
|
|
if (key.equals(ShiroUtils.getUId().toString())){
|
|
|
|
|
|
|
|
flag = false;
|
|
|
|
|
|
|
|
key.setValue(score);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (flag) {
|
|
|
|
|
|
|
|
userIdAndScore.put(""+ShiroUtils.getUId(),score);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
userIdAndScore.put(""+ShiroUtils.getUId(),score);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
scoreInfo = JSON.toJSONString(userIdAndScore);
|
|
|
|
|
|
|
|
classTask.setScoreInfo(scoreInfo);
|
|
|
|
|
|
|
|
//生成成绩
|
|
|
|
|
|
|
|
Map<String,Object> userIdScore = JSON.parseObject(classTask.getScoreInfo());
|
|
|
|
|
|
|
|
double socre = 0;
|
|
|
|
|
|
|
|
for (Map.Entry<String,Object> key : userIdScore.entrySet()) {
|
|
|
|
|
|
|
|
socre = socre + Double.valueOf(key.getValue().toString());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
socre = socre/userIdScore.size();
|
|
|
|
|
|
|
|
BigDecimal socre2 = new BigDecimal(socre);
|
|
|
|
|
|
|
|
socre2 = socre2.setScale(2,RoundingMode.HALF_UP);
|
|
|
|
classTask.setScoreSuccess(classTask.getScoreSuccess()+1);
|
|
|
|
classTask.setScoreSuccess(classTask.getScoreSuccess()+1);
|
|
|
|
classTask.setScore(Double.parseDouble(params.get("score").toString()));
|
|
|
|
classTask.setScore(socre2.doubleValue());
|
|
|
|
classTaskDao.updateById(classTask);
|
|
|
|
classTaskDao.updateById(classTask);
|
|
|
|
}else {
|
|
|
|
}else {
|
|
|
|
return R.error("此班级状态不能评分");
|
|
|
|
return R.error("此班级状态不能评分");
|
|
|
|
@@ -1053,7 +1082,6 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional
|
|
|
|
|
|
|
|
public R editScore(Map<String, Object> params) {
|
|
|
|
public R editScore(Map<String, Object> params) {
|
|
|
|
ClassTaskAndQuesReply classTaskAndQuesReply = classTaskAndQuesReplyDao.selectById(params.get("replyId").toString());
|
|
|
|
ClassTaskAndQuesReply classTaskAndQuesReply = classTaskAndQuesReplyDao.selectById(params.get("replyId").toString());
|
|
|
|
ClassEntity classEntity = this.baseMapper.selectById(classTaskAndQuesReply.getClassId());
|
|
|
|
ClassEntity classEntity = this.baseMapper.selectById(classTaskAndQuesReply.getClassId());
|
|
|
|
@@ -1078,7 +1106,6 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
}
|
|
|
|
}
|
|
|
|
scoreInfo = JSON.toJSONString(userIdAndScore);
|
|
|
|
scoreInfo = JSON.toJSONString(userIdAndScore);
|
|
|
|
classTaskAndQuesReply.setScoreInfo(scoreInfo);
|
|
|
|
classTaskAndQuesReply.setScoreInfo(scoreInfo);
|
|
|
|
classTaskAndQuesReplyDao.updateById(classTaskAndQuesReply);
|
|
|
|
|
|
|
|
//生成成绩
|
|
|
|
//生成成绩
|
|
|
|
Map<String,Object> userIdScore = JSON.parseObject(classTaskAndQuesReply.getScoreInfo());
|
|
|
|
Map<String,Object> userIdScore = JSON.parseObject(classTaskAndQuesReply.getScoreInfo());
|
|
|
|
double socre = 0;
|
|
|
|
double socre = 0;
|
|
|
|
@@ -1097,6 +1124,66 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
return R.ok();
|
|
|
|
return R.ok();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public R editScoreRemind() {
|
|
|
|
|
|
|
|
List<ClassUser> list = classUserDao.selectList(new LambdaQueryWrapper<ClassUser>()
|
|
|
|
|
|
|
|
.eq(ClassUser::getUserId,ShiroUtils.getUId())
|
|
|
|
|
|
|
|
.eq(ClassUser::getRole,"4"));
|
|
|
|
|
|
|
|
StringBuffer sb = new StringBuffer();
|
|
|
|
|
|
|
|
for (ClassUser cu:list){
|
|
|
|
|
|
|
|
ClassEntity classEntity = this.getById(cu.getClassId());
|
|
|
|
|
|
|
|
if (classEntity != null){
|
|
|
|
|
|
|
|
String info = "";
|
|
|
|
|
|
|
|
int task0Replys = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
|
|
|
|
.eq(ClassTaskAndQuesReply::getType,0)
|
|
|
|
|
|
|
|
.eq(ClassTaskAndQuesReply::getClassId,classEntity.getId())
|
|
|
|
|
|
|
|
.notLike(ClassTaskAndQuesReply::getScoreInfo,"\""+ShiroUtils.getUId()+"\""));
|
|
|
|
|
|
|
|
if (task0Replys > 0){
|
|
|
|
|
|
|
|
info += "任务";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int quesReplys = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
|
|
|
|
.eq(ClassTaskAndQuesReply::getType,1)
|
|
|
|
|
|
|
|
.eq(ClassTaskAndQuesReply::getClassId,classEntity.getId())
|
|
|
|
|
|
|
|
.notLike(ClassTaskAndQuesReply::getScoreInfo,"\""+ShiroUtils.getUId()+"\""));
|
|
|
|
|
|
|
|
if (quesReplys > 0){
|
|
|
|
|
|
|
|
info += "思考题";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int task1Replys = classTaskDao.selectCount(new LambdaQueryWrapper<ClassTask>()
|
|
|
|
|
|
|
|
.eq(ClassTask::getClassId,cu.getClassId())
|
|
|
|
|
|
|
|
.eq(ClassTask::getType,1)
|
|
|
|
|
|
|
|
.notLike(ClassTask::getScoreInfo,"\""+ShiroUtils.getUId()+"\""));
|
|
|
|
|
|
|
|
if (task1Replys > 0){
|
|
|
|
|
|
|
|
info += "医案";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int expReplys = classTaskDao.selectCount(new LambdaQueryWrapper<ClassTask>()
|
|
|
|
|
|
|
|
.eq(ClassTask::getClassId,cu.getClassId())
|
|
|
|
|
|
|
|
.eq(ClassTask::getType,2)
|
|
|
|
|
|
|
|
.notLike(ClassTask::getScoreInfo,"\""+ShiroUtils.getUId()+"\""));
|
|
|
|
|
|
|
|
if (expReplys > 0){
|
|
|
|
|
|
|
|
info += "心得";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (StringUtil.isNotEmpty(info)){
|
|
|
|
|
|
|
|
info = classEntity.getTitle()+"班级"+info+"有新回答";
|
|
|
|
|
|
|
|
sb.append(info+"\n");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
List<ClassUser> closeList = classUserDao.selectList(new LambdaQueryWrapper<ClassUser>()
|
|
|
|
|
|
|
|
.eq(ClassUser::getUserId,ShiroUtils.getUId())
|
|
|
|
|
|
|
|
.in(ClassUser::getRole,1,2));
|
|
|
|
|
|
|
|
for (ClassUser cu:closeList) {
|
|
|
|
|
|
|
|
ClassEntity classEntity = this.getById(cu.getClassId());
|
|
|
|
|
|
|
|
if (classEntity != null){
|
|
|
|
|
|
|
|
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
|
|
|
|
|
|
|
|
if (DateUtils.addDateDays(classEntity.getStartTime(),classModel.getDays()+classModel.getExamDays()).getTime()
|
|
|
|
|
|
|
|
<=new Date().getTime()){
|
|
|
|
|
|
|
|
sb.append(classEntity.getTitle()+"班级结班时间已到\n");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return R.ok().put("msg",sb.toString());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void editClassTaskAndQuesReply(ClassTaskAndQuesReply classTaskAndQuesReply) {
|
|
|
|
public void editClassTaskAndQuesReply(ClassTaskAndQuesReply classTaskAndQuesReply) {
|
|
|
|
classTaskAndQuesReplyDao.updateById(classTaskAndQuesReply);
|
|
|
|
classTaskAndQuesReplyDao.updateById(classTaskAndQuesReply);
|
|
|
|
@@ -1142,6 +1229,19 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
replyWrap.selectAs(CourseCatalogueChapterEntity::getQuestions,"questions");
|
|
|
|
replyWrap.selectAs(CourseCatalogueChapterEntity::getQuestions,"questions");
|
|
|
|
replyWrap.orderByAsc(ClassTaskAndQuesReply::getScoreSuccess);
|
|
|
|
replyWrap.orderByAsc(ClassTaskAndQuesReply::getScoreSuccess);
|
|
|
|
Page<Map<String,Object>> replyPage = classTaskAndQuesReplyDao.selectMapsPage(new Page<>(page, limit), replyWrap);
|
|
|
|
Page<Map<String,Object>> replyPage = classTaskAndQuesReplyDao.selectMapsPage(new Page<>(page, limit), replyWrap);
|
|
|
|
|
|
|
|
for (Map<String,Object> map:replyPage.getRecords()){
|
|
|
|
|
|
|
|
int alreadyReply = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
|
|
|
|
.eq(ClassTaskAndQuesReply::getType,1)
|
|
|
|
|
|
|
|
.eq(ClassTaskAndQuesReply::getRelationId,params.get("classId")));
|
|
|
|
|
|
|
|
int userNoCount = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
|
|
|
|
.eq(ClassTaskAndQuesReply::getType,1)
|
|
|
|
|
|
|
|
.eq(ClassTaskAndQuesReply::getRelationId,params.get("classId"))
|
|
|
|
|
|
|
|
.notLike(ClassTaskAndQuesReply::getScoreInfo,"\""+ShiroUtils.getUId()+"\""));
|
|
|
|
|
|
|
|
Map<String,Object> result = new HashMap<>();
|
|
|
|
|
|
|
|
result.put("setGiveHomeWorkNumber",alreadyReply);
|
|
|
|
|
|
|
|
result.put("userNoCount",userNoCount);
|
|
|
|
|
|
|
|
map.put("otherInfo",result);
|
|
|
|
|
|
|
|
}
|
|
|
|
return replyPage;
|
|
|
|
return replyPage;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1198,7 +1298,7 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
List<ClassTaskAndQuesReply> questionReplys = classTaskAndQuesReplyDao.selectList(questionWrapper);
|
|
|
|
List<ClassTaskAndQuesReply> questionReplys = classTaskAndQuesReplyDao.selectList(questionWrapper);
|
|
|
|
if (questionReplys.size() > 0) {
|
|
|
|
if (questionReplys.size() > 0) {
|
|
|
|
for (ClassTaskAndQuesReply reply : questionReplys) {
|
|
|
|
for (ClassTaskAndQuesReply reply : questionReplys) {
|
|
|
|
if (reply.getScoreSuccess()>=1){
|
|
|
|
if (reply.getScoreSuccess()==3){
|
|
|
|
questionScore += reply.getScore();
|
|
|
|
questionScore += reply.getScore();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -1217,7 +1317,7 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
List<ClassTaskAndQuesReply> task0Replys = classTaskAndQuesReplyDao.selectList(task0wrapper);
|
|
|
|
List<ClassTaskAndQuesReply> task0Replys = classTaskAndQuesReplyDao.selectList(task0wrapper);
|
|
|
|
if (task0Replys.size() > 0) {
|
|
|
|
if (task0Replys.size() > 0) {
|
|
|
|
for (ClassTaskAndQuesReply reply : task0Replys) {
|
|
|
|
for (ClassTaskAndQuesReply reply : task0Replys) {
|
|
|
|
if (reply.getScoreSuccess()>1){
|
|
|
|
if (reply.getScoreSuccess()==3){
|
|
|
|
task0Score += reply.getScore();
|
|
|
|
task0Score += reply.getScore();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -1236,7 +1336,7 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
List<ClassTaskAndQuesReply> task1Replys = classTaskAndQuesReplyDao.selectList(task1wrapper);
|
|
|
|
List<ClassTaskAndQuesReply> task1Replys = classTaskAndQuesReplyDao.selectList(task1wrapper);
|
|
|
|
if (task1Replys.size() > 0) {
|
|
|
|
if (task1Replys.size() > 0) {
|
|
|
|
for (ClassTaskAndQuesReply reply : task1Replys) {
|
|
|
|
for (ClassTaskAndQuesReply reply : task1Replys) {
|
|
|
|
if (reply.getScoreSuccess()>1){
|
|
|
|
if (reply.getScoreSuccess()==3){
|
|
|
|
task1Score += reply.getScore();
|
|
|
|
task1Score += reply.getScore();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -1252,7 +1352,7 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
List<ClassTask> experiences = classTaskDao.selectList(experiencewrapper);
|
|
|
|
List<ClassTask> experiences = classTaskDao.selectList(experiencewrapper);
|
|
|
|
if (experiences.size() > 0) {
|
|
|
|
if (experiences.size() > 0) {
|
|
|
|
for (ClassTask task : experiences) {
|
|
|
|
for (ClassTask task : experiences) {
|
|
|
|
if (task.getScoreSuccess()>=1){
|
|
|
|
if (task.getScoreSuccess()==3){
|
|
|
|
experienceScore += task.getScore();
|
|
|
|
experienceScore += task.getScore();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -1428,15 +1528,14 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
|
|
|
|
if (classExamUsers>0){
|
|
|
|
if (classExamUsers>0){
|
|
|
|
return R.error("有学员正在考试,请稍后再试");
|
|
|
|
return R.error("有学员正在考试,请稍后再试");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
int taskReplys = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
int task0AndQuesReplys = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
.eq(ClassTaskAndQuesReply::getClassId,classEntity.getId())
|
|
|
|
.eq(ClassTaskAndQuesReply::getClassId,classEntity.getId())
|
|
|
|
.eq(ClassTaskAndQuesReply::getType,0)
|
|
|
|
.lt(ClassTaskAndQuesReply::getScoreSuccess,3));
|
|
|
|
.lt(ClassTaskAndQuesReply::getScoreSuccess,2));
|
|
|
|
int task1AndExpReplys = classTaskDao.selectCount(new LambdaQueryWrapper<ClassTask>()
|
|
|
|
int questionReplys = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
|
|
|
|
.eq(ClassTask::getClassId,classEntity.getId())
|
|
|
|
.eq(ClassTaskAndQuesReply::getClassId,classEntity.getId())
|
|
|
|
.ne(ClassTask::getType,0)
|
|
|
|
.eq(ClassTaskAndQuesReply::getType,1)
|
|
|
|
.lt(ClassTask::getScoreSuccess,3));
|
|
|
|
.eq(ClassTaskAndQuesReply::getScoreSuccess,0));
|
|
|
|
if (task0AndQuesReplys>0||task1AndExpReplys>0){
|
|
|
|
if (taskReplys>0||questionReplys>0){
|
|
|
|
|
|
|
|
return R.error("学员打分未完成,请完成打分后结班");
|
|
|
|
return R.error("学员打分未完成,请完成打分后结班");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
classEntity.setState("2");
|
|
|
|
classEntity.setState("2");
|
|
|
|
|