Merge remote-tracking branch 'origin/zcc'

This commit is contained in:
wangjinlei
2024-09-11 16:14:32 +08:00
6 changed files with 48 additions and 16 deletions

View File

@@ -2,10 +2,12 @@ package com.peanut.modules.common.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.peanut.common.excel.ExcelUtil; import com.peanut.common.excel.ExcelUtil;
import com.peanut.common.utils.DateUtils;
import com.peanut.common.utils.R; import com.peanut.common.utils.R;
import com.peanut.modules.common.entity.ClassExamOption; import com.peanut.modules.common.entity.ClassExamOption;
import com.peanut.modules.common.entity.ClassExamSubject; import com.peanut.modules.common.entity.ClassExamSubject;
import com.peanut.modules.common.entity.ClassExamUser; import com.peanut.modules.common.entity.ClassExamUser;
import com.peanut.modules.common.entity.ClassModel;
import com.peanut.modules.common.service.ClassExamOptionService; import com.peanut.modules.common.service.ClassExamOptionService;
import com.peanut.modules.common.service.ClassExamService; import com.peanut.modules.common.service.ClassExamService;
import com.peanut.modules.common.service.ClassExamSubjectService; import com.peanut.modules.common.service.ClassExamSubjectService;
@@ -176,8 +178,7 @@ public class ClassExamController {
//考试中的试卷 //考试中的试卷
@RequestMapping("/examingPaper") @RequestMapping("/examingPaper")
public R examingPaper(){ public R examingPaper(){
ClassExamUser classExamUser = classExamService.examingPaper(); return classExamService.examingPaper();
return R.ok().put("classExamUser",classExamUser);
} }
//提交选项 //提交选项
@@ -204,8 +205,7 @@ public class ClassExamController {
//试卷详情 //试卷详情
@RequestMapping("/getExamPaperInfo") @RequestMapping("/getExamPaperInfo")
public R getExamPaperInfo(@RequestBody Map<String,Object> params){ public R getExamPaperInfo(@RequestBody Map<String,Object> params){
Object examPaper = classExamService.getExamPaperInfo(params); return classExamService.getExamPaperInfo(params);
return R.ok().put("examPaper",examPaper);
} }

View File

@@ -27,6 +27,10 @@ public class ClassModel {
private Integer examDays;//考试周时长 private Integer examDays;//考试周时长
private String examProportion;//考试题型比例
private Integer examTime;//考试时长分钟
private Integer isQuestion; private Integer isQuestion;
private Integer questionScore; private Integer questionScore;
private Integer isTask; private Integer isTask;

View File

@@ -32,7 +32,7 @@ public interface ClassExamService extends IService<ClassExam> {
R generateExamPaper(Map<String,Object> params); R generateExamPaper(Map<String,Object> params);
ClassExamUser examingPaper(); R examingPaper();
void submitOption(Map<String,Object> params); void submitOption(Map<String,Object> params);
@@ -40,6 +40,6 @@ public interface ClassExamService extends IService<ClassExam> {
Object getExamPaperList(Map<String,Object> params); Object getExamPaperList(Map<String,Object> params);
Object getExamPaperInfo(Map<String,Object> params); R getExamPaperInfo(Map<String,Object> params);
} }

View File

@@ -1118,6 +1118,11 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
double staticScore = 2.5; double staticScore = 2.5;
if(classModel.getIsExam()==1){ if(classModel.getIsExam()==1){
BigDecimal examScore = new BigDecimal(map.get("examScore").toString()); BigDecimal examScore = new BigDecimal(map.get("examScore").toString());
BigDecimal totalExamScore = new BigDecimal(Integer.parseInt(classModel.getExamProportion().split(":")[0])
+Integer.parseInt(classModel.getExamProportion().split(":")[1]));
examScore = examScore.divide(totalExamScore);
examScore = examScore.multiply(new BigDecimal(classModel.getExamScore()));
examScore = examScore.setScale(2,RoundingMode.HALF_UP);
map.put("examScore",examScore); map.put("examScore",examScore);
userScore = userScore.add(examScore); userScore = userScore.add(examScore);
} }

View File

@@ -37,6 +37,8 @@ public class ClassExamServiceImpl extends ServiceImpl<ClassExamDao, ClassExam> i
@Autowired @Autowired
private ClassEntityDao classEntityDao; private ClassEntityDao classEntityDao;
@Autowired @Autowired
private ClassModelDao classModelDao;
@Autowired
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
@Override @Override
@@ -146,6 +148,8 @@ public class ClassExamServiceImpl extends ServiceImpl<ClassExamDao, ClassExam> i
return R.error("存在正在考试,请结束再试"); return R.error("存在正在考试,请结束再试");
} }
ClassEntity classEntity = classEntityDao.selectById(params.get("classId").toString()); ClassEntity classEntity = classEntityDao.selectById(params.get("classId").toString());
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
int examTime = classModel.getExamTime();
MPJLambdaWrapper<ClassCourse> courseWrapper = new MPJLambdaWrapper<>(); MPJLambdaWrapper<ClassCourse> courseWrapper = new MPJLambdaWrapper<>();
courseWrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId); courseWrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId);
courseWrapper.leftJoin(ClassEntity.class,ClassEntity::getModelId,ClassModel::getId); courseWrapper.leftJoin(ClassEntity.class,ClassEntity::getModelId,ClassModel::getId);
@@ -157,10 +161,8 @@ public class ClassExamServiceImpl extends ServiceImpl<ClassExamDao, ClassExam> i
List<Map<String,Object>> sList = new ArrayList<>(); List<Map<String,Object>> sList = new ArrayList<>();
List<Map<String,Object>> mList = new ArrayList<>(); List<Map<String,Object>> mList = new ArrayList<>();
if (courseList.size() > 0) { if (courseList.size() > 0) {
int stotal = 60;//单选题总数 int stotal = Integer.parseInt(classModel.getExamProportion().split(":")[0]);//单选题总数
int mtotal = 40;//多选题总数 int mtotal = Integer.parseInt(classModel.getExamProportion().split(":")[1]);//多选题总数
// int stotal = 5;//单选题总数
// int mtotal = 5;//多选题总数
int snum = (int)Math.floor(stotal/courseList.size()); int snum = (int)Math.floor(stotal/courseList.size());
int mnum = (int)Math.floor(mtotal/courseList.size()); int mnum = (int)Math.floor(mtotal/courseList.size());
for (ClassCourse classCourse:courseList){ for (ClassCourse classCourse:courseList){
@@ -229,17 +231,25 @@ public class ClassExamServiceImpl extends ServiceImpl<ClassExamDao, ClassExam> i
DelayQueueConfig.COMMON_EXCHANGE, DelayQueueConfig.COMMON_EXCHANGE,
DelayQueueConfig.COMMON_ROUTING_KEY, DelayQueueConfig.COMMON_ROUTING_KEY,
"examSubmit"+","+classExamUser.getId(), "examSubmit"+","+classExamUser.getId(),
messagePostProcessor(2*60*60*1000+3000)//3秒延迟 messagePostProcessor(examTime*60*1000+3000)//3秒延迟
); );
return R.ok().put("examPaper",resultList).put("id",classExamUser.getId()).put("startTime",classExamUser.getStartTime()); return R.ok().put("examPaper",resultList).put("id",classExamUser.getId())
.put("startTime",classExamUser.getStartTime()).put("planEndTime",DateUtils.addDateMinutes(startTime,examTime));
} }
@Override @Override
public ClassExamUser examingPaper() { public R examingPaper() {
ClassExamUser classExamUser = classExamUserDao.selectOne(new LambdaQueryWrapper<ClassExamUser>() ClassExamUser classExamUser = classExamUserDao.selectOne(new LambdaQueryWrapper<ClassExamUser>()
.eq(ClassExamUser::getUserId,ShiroUtils.getUId()).eq(ClassExamUser::getScoreSuccess,0)); .eq(ClassExamUser::getUserId,ShiroUtils.getUId()).eq(ClassExamUser::getScoreSuccess,0));
return classExamUser; if (classExamUser!=null){
ClassEntity classEntity = classEntityDao.selectById(classExamUser.getClassId());
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
return R.ok().put("classExamUser",classExamUser)
.put("planEndTime",DateUtils.addDateMinutes(classExamUser.getStartTime(),classModel.getExamTime()));
}else {
return R.ok().put("classExamUser",null).put("planEndTime",null);
}
} }
@Override @Override
@@ -310,9 +320,12 @@ public class ClassExamServiceImpl extends ServiceImpl<ClassExamDao, ClassExam> i
} }
@Override @Override
public Object getExamPaperInfo(Map<String, Object> params) { public R getExamPaperInfo(Map<String, Object> params) {
ClassExamUser classExamUser = classExamUserDao.selectById(params.get("id").toString()); ClassExamUser classExamUser = classExamUserDao.selectById(params.get("id").toString());
return classExamUser; ClassEntity classEntity = classEntityDao.selectById(classExamUser.getClassId());
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
return R.ok().put("examPaper",classExamUser)
.put("planEndTime",DateUtils.addDateMinutes(classExamUser.getStartTime(),classModel.getExamTime()));
} }
private MessagePostProcessor messagePostProcessor(long date) { private MessagePostProcessor messagePostProcessor(long date) {

View File

@@ -3,8 +3,10 @@ package com.peanut.modules.master.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.R; import com.peanut.common.utils.R;
import com.peanut.modules.book.service.ShopProductBookService;
import com.peanut.modules.common.entity.BookEntity; import com.peanut.modules.common.entity.BookEntity;
import com.peanut.modules.common.entity.ShopProduct; import com.peanut.modules.common.entity.ShopProduct;
import com.peanut.modules.common.entity.ShopProductBookEntity;
import com.peanut.modules.common.entity.ShopProductCourseEntity; import com.peanut.modules.common.entity.ShopProductCourseEntity;
import com.peanut.modules.common.to.ParamTo; import com.peanut.modules.common.to.ParamTo;
import com.peanut.modules.common.vo.CourseCatalogueVo; import com.peanut.modules.common.vo.CourseCatalogueVo;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -53,6 +56,13 @@ public class ShopProductController {
return R.ok().put("detail",detail); return R.ok().put("detail",detail);
} }
@RequestMapping("/addProduct")
public R addProduct(@RequestBody ShopProduct shopProduct){
shopProduct.setCreateTime(new Date());
shopProductService.save(shopProduct);
return R.ok();
}
@RequestMapping("/editProductDetail") @RequestMapping("/editProductDetail")
public R editProductDetail(@RequestBody ShopProduct shopProduct){ public R editProductDetail(@RequestBody ShopProduct shopProduct){
shopProductService.updateById(shopProduct); shopProductService.updateById(shopProduct);