Merge branch 'company_server' of https://gitee.com/doc_wei01/skyeye into company_server

This commit is contained in:
lqy 2024-12-04 21:34:09 +08:00
commit 5b8da4931f
41 changed files with 580 additions and 211 deletions

View file

@ -376,8 +376,25 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
list.add(userMation); list.add(userMation);
} }
} }
// 使用 Stream API 进行过滤排序并最终收集到 ArrayList
return list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(p -> String.valueOf(p.get("id"))))), ArrayList::new)); List<Map<String, Object>> resultList = list.stream()
.filter(Objects::nonNull) // 确保 item 不是 null
.map(item -> item.entrySet().stream()
.filter(entry -> entry != null && entry.getKey() != null &&
entry.getValue() != null && !"".equals(entry.getValue()))
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(existing, replacement) -> existing, // 解决重复键的问题
LinkedHashMap::new)) // 保持插入顺序
)
.filter(Objects::nonNull) // 确保转换后的 map 不是 null
.sorted(Comparator.comparing(p -> String.valueOf(p.get("id")), Comparator.nullsLast(Comparator.naturalOrder())))
.collect(Collectors.collectingAndThen(
Collectors.toCollection(ArrayList::new),
ArrayList::new
));
return resultList;
} }
/** /**

View file

@ -13,6 +13,7 @@ import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property; import com.skyeye.annotation.api.Property;
import com.skyeye.common.entity.features.OperatorUserInfo; import com.skyeye.common.entity.features.OperatorUserInfo;
import com.skyeye.dsform.entity.DsFormPage; import com.skyeye.dsform.entity.DsFormPage;
import com.skyeye.operate.classenum.MenuPageType;
import lombok.Data; import lombok.Data;
import java.util.Map; import java.util.Map;
@ -43,7 +44,7 @@ public class OperateOpenPage extends OperatorUserInfo {
private String name; private String name;
@TableField("`type`") @TableField("`type`")
@ApiModelProperty(value = "页面类型,参考#MenuPageType", required = "required") @ApiModelProperty(value = "页面类型", required = "required", enumClass = MenuPageType.class)
private Integer type; private Integer type;
@TableField("page_url") @TableField("page_url")

View file

@ -4,6 +4,7 @@
package com.skyeye.eve.service.impl; package com.skyeye.eve.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.skyeye.common.client.ExecuteFeignClient; import com.skyeye.common.client.ExecuteFeignClient;
import com.skyeye.common.constans.QuartzConstants; import com.skyeye.common.constans.QuartzConstants;
@ -62,7 +63,11 @@ public class SysQuartzServiceImpl implements SysQuartzService {
private XxlJobInfo getXxlJobInfo(String objectId, String groupId, String delayedTime, String jobDesc, String taskType, String userId) { private XxlJobInfo getXxlJobInfo(String objectId, String groupId, String delayedTime, String jobDesc, String taskType, String userId) {
XxlJobInfo xxlJobInfo = new XxlJobInfo(); XxlJobInfo xxlJobInfo = new XxlJobInfo();
Map<String, Object> user = iAuthUserService.queryDataMationById(userId); Map<String, Object> user = iAuthUserService.queryDataMationById(userId);
xxlJobInfo.setAuthor(user.get("name").toString()); String author = "商城用户";
if (CollectionUtil.isNotEmpty(user)) {
author = user.get("name").toString();
}
xxlJobInfo.setAuthor(author);
xxlJobInfo.setJobGroup(Integer.parseInt(groupId)); xxlJobInfo.setJobGroup(Integer.parseInt(groupId));
xxlJobInfo.setJobDesc(QuartzConstants.QuartzMateMationJobType.getRemarkPrefixByTaskType(taskType, jobDesc)); xxlJobInfo.setJobDesc(QuartzConstants.QuartzMateMationJobType.getRemarkPrefixByTaskType(taskType, jobDesc));
xxlJobInfo.setScheduleType("CRON"); xxlJobInfo.setScheduleType("CRON");

View file

@ -7,7 +7,9 @@
a.code_id id, a.code_id id,
IFNULL(a.parent_code_id, '0') pId, IFNULL(a.parent_code_id, '0') pId,
a.`name`, a.`name`,
false lay_is_open false lay_is_open,
a.level,
a.code_id codeId
FROM FROM
t_area a t_area a
<where> <where>

View file

@ -22,6 +22,8 @@ public interface QuestionService extends SkyeyeBusinessService<Question> {
void copyQuestionListMation(Question question); void copyQuestionListMation(Question question);
List<Question> queryQuestionMationCopyById(String surveyCopyId);
// String saveQuestion(Question question, String id, String userId); // String saveQuestion(Question question, String id, String userId);
} }

View file

@ -4,9 +4,11 @@
package com.skyeye.eve.Examquestion.service.impl; package com.skyeye.eve.Examquestion.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.skyeye.annotation.service.SkyeyeService; import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl; import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.constans.CommonNumConstants;
import com.skyeye.common.entity.search.CommonPageInfo; import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject; import com.skyeye.common.object.InputObject;
import com.skyeye.common.util.DateUtil; import com.skyeye.common.util.DateUtil;
@ -16,22 +18,18 @@ import com.skyeye.common.util.question.QuType;
import com.skyeye.eve.Examquestion.dao.QuestionDao; import com.skyeye.eve.Examquestion.dao.QuestionDao;
import com.skyeye.eve.Examquestion.entity.Question; import com.skyeye.eve.Examquestion.entity.Question;
import com.skyeye.eve.Examquestion.service.QuestionService; import com.skyeye.eve.Examquestion.service.QuestionService;
import com.skyeye.exam.examquchckbox.dao.ExamQuCheckboxDao;
import com.skyeye.exam.examquchckbox.entity.ExamQuCheckbox; import com.skyeye.exam.examquchckbox.entity.ExamQuCheckbox;
import com.skyeye.exam.examquchckbox.service.ExamQuCheckboxService; import com.skyeye.exam.examquchckbox.service.ExamQuCheckboxService;
import com.skyeye.exam.examquchencolumn.dao.ExamQuChenColumnDao;
import com.skyeye.exam.examquchencolumn.entity.ExamQuChenColumn; import com.skyeye.exam.examquchencolumn.entity.ExamQuChenColumn;
import com.skyeye.exam.examquchencolumn.service.ExamQuChenColumnService; import com.skyeye.exam.examquchencolumn.service.ExamQuChenColumnService;
import com.skyeye.exam.examquchenrow.dao.ExamQuChenRowDao;
import com.skyeye.exam.examquchenrow.entity.ExamQuChenRow; import com.skyeye.exam.examquchenrow.entity.ExamQuChenRow;
import com.skyeye.exam.examquchenrow.service.ExamQuChenRowService;
import com.skyeye.exam.examquestionlogic.entity.ExamQuestionLogic; import com.skyeye.exam.examquestionlogic.entity.ExamQuestionLogic;
import com.skyeye.exam.examquestionlogic.service.ExamQuestionLogicService; import com.skyeye.exam.examquestionlogic.service.ExamQuestionLogicService;
import com.skyeye.exam.examqumultfillblank.dao.ExamQuMultiFillblankDao;
import com.skyeye.exam.examqumultfillblank.entity.ExamQuMultiFillblank; import com.skyeye.exam.examqumultfillblank.entity.ExamQuMultiFillblank;
import com.skyeye.exam.examqumultfillblank.service.ExamQuMultiFillblankService; import com.skyeye.exam.examqumultfillblank.service.ExamQuMultiFillblankService;
import com.skyeye.exam.examquorderby.entity.ExamQuOrderby; import com.skyeye.exam.examquorderby.entity.ExamQuOrderby;
import com.skyeye.exam.examquorderby.service.ExamQuOrderbyService; import com.skyeye.exam.examquorderby.service.ExamQuOrderbyService;
import com.skyeye.exam.examquradio.dao.ExamQuRadioDao;
import com.skyeye.exam.examquradio.entity.ExamQuRadio; import com.skyeye.exam.examquradio.entity.ExamQuRadio;
import com.skyeye.exam.examquradio.service.ExamQuRadioService; import com.skyeye.exam.examquradio.service.ExamQuRadioService;
import com.skyeye.exam.examquscore.entity.ExamQuScore; import com.skyeye.exam.examquscore.entity.ExamQuScore;
@ -40,7 +38,6 @@ import com.skyeye.exception.CustomException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
@ -73,9 +70,15 @@ public class QuestionServiceImpl extends SkyeyeBusinessServiceImpl<QuestionDao,
@Autowired @Autowired
private ExamQuChenColumnService examQuChenColumnService; private ExamQuChenColumnService examQuChenColumnService;
@Autowired
private ExamQuChenRowService examQuChenRowService;
@Autowired @Autowired
private ExamQuestionLogicService examQuestionLogicService; private ExamQuestionLogicService examQuestionLogicService;
@Autowired
private ExamQuScoreService examQuScoreService;
@Override @Override
public void createPostpose(Question entity, String userId) { public void createPostpose(Question entity, String userId) {
entity.setQuTag(1); entity.setQuTag(1);
@ -90,7 +93,7 @@ public class QuestionServiceImpl extends SkyeyeBusinessServiceImpl<QuestionDao,
List<ExamQuestionLogic> questionLogic = entity.getQuestionLogic(); List<ExamQuestionLogic> questionLogic = entity.getQuestionLogic();
if (!questionLogic.isEmpty()) { if (!questionLogic.isEmpty()) {
examQuestionLogicService.setLogics(quId, questionLogic, userId); examQuestionLogicService.setLogics(quId, questionLogic, userId);
}else { } else {
throw new CustomException("请设置问题逻辑"); throw new CustomException("请设置问题逻辑");
} }
List<ExamQuRadio> radioTd = entity.getRadioTd(); List<ExamQuRadio> radioTd = entity.getRadioTd();
@ -177,9 +180,9 @@ public class QuestionServiceImpl extends SkyeyeBusinessServiceImpl<QuestionDao,
} else if (quType == QuType.ORDERQU.getIndex()) { } else if (quType == QuType.ORDERQU.getIndex()) {
examQuOrderbyService.removeByQuId(quId); examQuOrderbyService.removeByQuId(quId);
} else if (quType == QuType.CHENRADIO.getIndex() || } else if (quType == QuType.CHENRADIO.getIndex() ||
quType == QuType.CHENFBK.getIndex() || quType == QuType.CHENFBK.getIndex() ||
quType == QuType.CHENCHECKBOX.getIndex() || quType == QuType.CHENCHECKBOX.getIndex() ||
quType == QuType.COMPCHENRADIO.getIndex()) { quType == QuType.COMPCHENRADIO.getIndex()) {
examQuChenColumnService.removeByQuId(quId); examQuChenColumnService.removeByQuId(quId);
} }
} }
@ -192,67 +195,90 @@ public class QuestionServiceImpl extends SkyeyeBusinessServiceImpl<QuestionDao,
return questionList; return questionList;
} }
@Autowired
private ExamQuRadioDao examQuRadioDao;
@Autowired
private ExamQuCheckboxDao examQuCheckboxDao;
@Autowired
private ExamQuMultiFillblankDao examQuMultiFillblankDao;
@Autowired
private ExamQuChenRowDao examQuChenRowDao;
@Autowired
private ExamQuChenColumnDao examQuChenColumnDao;
@Override @Override
public void copyQuestionListMation(Question question) { public void copyQuestionListMation(Question question) {
String quType = QuType.getActionName(Integer.parseInt(question.getQuType().toString())); String quType = QuType.getActionName(Integer.parseInt(question.getQuType().toString()));
if (quType.equals(QuType.RADIO.getActionName()) ||quType.equals(QuType.COMPRADIO.getActionName())){ if (quType.equals(QuType.RADIO.getActionName()) || quType.equals(QuType.COMPRADIO.getActionName())) {
ExamQuRadio examQuRadio = examQuRadioService.selectById(question.getCopyFromId()); List<ExamQuRadio> examQuRadioList = examQuRadioService.selectQuRadio(question.getCopyFromId());
examQuRadio.setId(ToolUtil.getSurFaceId()); for (ExamQuRadio examQuRadio : examQuRadioList) {
examQuRadio.setCreateTime(DateUtil.getTimeAndToString()); examQuRadio.setId(ToolUtil.getSurFaceId());
examQuRadio.setQuId(question.getId()); examQuRadio.setCreateTime(DateUtil.getTimeAndToString());
if (examQuRadio != null) { examQuRadio.setQuId(question.getId());
examQuRadioDao.insert(examQuRadio);
} }
} if (!examQuRadioList.isEmpty()) {
else if (quType.equals(QuType.CHECKBOX.getActionName()) || quType.equals(QuType.COMPCHECKBOX.getActionName())){ examQuRadioService.createEntity(examQuRadioList, StrUtil.EMPTY);
ExamQuCheckbox examQuCheckbox = examQuCheckboxDao.selectById(question.getCopyFromId());
examQuCheckbox.setId(ToolUtil.getSurFaceId());
examQuCheckbox.setCreateTime(DateUtil.getTimeAndToString());
examQuCheckbox.setQuId(question.getId());
if (examQuCheckbox != null) {
examQuCheckboxDao.insert(examQuCheckbox);
} }
} } else if (quType.equals(QuType.CHECKBOX.getActionName()) || quType.equals(QuType.COMPCHECKBOX.getActionName())) {
else if (quType.equals(QuType.MULTIFILLBLANK.getActionName())){ List<ExamQuCheckbox> examQuCheckboxList = examQuCheckboxService.selectQuChenbox(question.getCopyFromId());
ExamQuMultiFillblank examQuMultiFillblank = examQuMultiFillblankDao.selectById(question.getCopyFromId()); for (ExamQuCheckbox examQuCheckbox : examQuCheckboxList) {
examQuMultiFillblank.setId(ToolUtil.getSurFaceId()); examQuCheckbox.setId(ToolUtil.getSurFaceId());
examQuMultiFillblank.setCreateTime(DateUtil.getTimeAndToString()); examQuCheckbox.setCreateTime(DateUtil.getTimeAndToString());
examQuMultiFillblank.setQuId(question.getId()); examQuCheckbox.setQuId(question.getId());
if (examQuMultiFillblank != null) {
examQuMultiFillblankDao.insert(examQuMultiFillblank);
} }
} if (!examQuCheckboxList.isEmpty()) {
else if (quType.equals(QuType.BIGQU.getActionName())){ examQuCheckboxService.createEntity(examQuCheckboxList, StrUtil.EMPTY);
}
else if (quType.equals(QuType.CHENRADIO.getActionName()) || quType.equals(QuType.CHENCHECKBOX.getActionName()) || quType.equals(QuType.CHENSCORE.getActionName())
|| quType.equals(QuType.CHENFBK.getActionName()) || quType.equals(QuType.COMPCHENRADIO.getActionName())){
ExamQuChenRow examQuChenRow = examQuChenRowDao.selectById(question.getCopyFromId());
ExamQuChenColumn examQuChenColumn = examQuChenColumnDao.selectById(question.getCopyFromId());
examQuChenRow.setId(ToolUtil.getSurFaceId());
examQuChenRow.setCreateTime(DateUtil.getTimeAndToString());
examQuChenRow.setQuId(question.getId());
examQuChenColumn.setId(ToolUtil.getSurFaceId());
examQuChenColumn.setCreateTime(DateUtil.getTimeAndToString());
examQuChenColumn.setQuId(question.getId());
if (examQuChenRow != null) {
examQuChenRowDao.insert(examQuChenRow);
} }
if (examQuChenColumn != null) { } else if (quType.equals(QuType.MULTIFILLBLANK.getActionName())) {
examQuChenColumnDao.insert(examQuChenColumn); List<ExamQuMultiFillblank> multiFillblanksList = examQuMultiFillblankService.selectQuMultiFillblank(question.getCopyFromId());
for (ExamQuMultiFillblank examQuMultiFillblank : multiFillblanksList) {
examQuMultiFillblank.setId(ToolUtil.getSurFaceId());
examQuMultiFillblank.setCreateTime(DateUtil.getTimeAndToString());
examQuMultiFillblank.setQuId(question.getId());
}
if (!multiFillblanksList.isEmpty()) {
examQuMultiFillblankService.createEntity(multiFillblanksList, StrUtil.EMPTY);
}
} else if (quType.equals(QuType.BIGQU.getActionName())) {
} else if (quType.equals(QuType.CHENRADIO.getActionName()) || quType.equals(QuType.CHENCHECKBOX.getActionName()) || quType.equals(QuType.CHENSCORE.getActionName())
|| quType.equals(QuType.CHENFBK.getActionName()) || quType.equals(QuType.COMPCHENRADIO.getActionName())) {
List<ExamQuChenRow> examQuChenRowList = examQuChenRowService.selectQuChenRow(question.getCopyFromId());
List<ExamQuChenColumn> examQuChenColumnList = examQuChenColumnService.selectQuChenColumn(question.getCopyFromId());
for (ExamQuChenRow examQuChenRow : examQuChenRowList) {
examQuChenRow.setId(ToolUtil.getSurFaceId());
examQuChenRow.setCreateTime(DateUtil.getTimeAndToString());
examQuChenRow.setQuId(question.getId());
}
if (!examQuChenRowList.isEmpty()) {
examQuChenRowService.createEntity(examQuChenRowList, StrUtil.EMPTY);
}
for (ExamQuChenColumn examQuChenColumn : examQuChenColumnList) {
examQuChenColumn.setId(ToolUtil.getSurFaceId());
examQuChenColumn.setCreateTime(DateUtil.getTimeAndToString());
examQuChenColumn.setQuId(question.getId());
}
if (!examQuChenColumnList.isEmpty()) {
examQuChenColumnService.createEntity(examQuChenColumnList, StrUtil.EMPTY);
}
} else if (quType.equals(QuType.SCORE.getActionName())) {
List<ExamQuScore> examQuScoreList = examQuScoreService.selectQuScore(question.getCopyFromId());
for (ExamQuScore examQuScore : examQuScoreList) {
examQuScore.setId(ToolUtil.getSurFaceId());
examQuScore.setCreateTime(DateUtil.getTimeAndToString());
examQuScore.setQuId(question.getId());
}
if (!examQuScoreList.isEmpty()) {
examQuScoreService.createEntity(examQuScoreList, StrUtil.EMPTY);
}
} else if (quType.equals(QuType.ORDERQU.getActionName())) {
List<ExamQuOrderby> examQuOrderbyList = examQuOrderbyService.selectQuOrderby(question.getCopyFromId());
for (ExamQuOrderby examQuOrderby : examQuOrderbyList) {
examQuOrderby.setId(ToolUtil.getSurFaceId());
examQuOrderby.setCreateTime(DateUtil.getTimeAndToString());
examQuOrderby.setQuId(question.getId());
}
if (!examQuOrderbyList.isEmpty()) {
examQuOrderbyService.createEntity(examQuOrderbyList, StrUtil.EMPTY);
} }
} }
} }
@Override
public List<Question> queryQuestionMationCopyById(String surveyCopyId) {
QueryWrapper<Question> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(Question::getBelongId), surveyCopyId);
queryWrapper.eq(MybatisPlusUtil.toColumns(Question::getTag), CommonNumConstants.NUM_TWO);
queryWrapper.ne(MybatisPlusUtil.toColumns(Question::getQuTag), CommonNumConstants.NUM_TWO);
queryWrapper.eq(MybatisPlusUtil.toColumns(Question::getVisibility), CommonNumConstants.NUM_ONE);
return list(queryWrapper);
}
} }

View file

@ -46,7 +46,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 获取所有试卷列表 * 获取所有试卷列表
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -63,7 +63,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 获取我的试卷列表 * 获取我的试卷列表
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -130,10 +130,11 @@ public class ExamServiceImpl implements ExamService {
} }
} }
*/ */
/** /**
* 获取试卷题目信息 * 获取试卷题目信息
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -194,7 +195,7 @@ public class ExamServiceImpl implements ExamService {
} }
question.put("option", childQuestions); question.put("option", childQuestions);
} else if (quType.equals(QuType.CHENRADIO.getActionName()) || quType.equals(QuType.CHENCHECKBOX.getActionName()) || quType.equals(QuType.CHENSCORE.getActionName()) } else if (quType.equals(QuType.CHENRADIO.getActionName()) || quType.equals(QuType.CHENCHECKBOX.getActionName()) || quType.equals(QuType.CHENSCORE.getActionName())
|| quType.equals(QuType.CHENFBK.getActionName()) || quType.equals(QuType.COMPCHENRADIO.getActionName())) {// 矩阵单选矩阵多选矩阵填空题复合矩阵单选 || quType.equals(QuType.CHENFBK.getActionName()) || quType.equals(QuType.COMPCHENRADIO.getActionName())) {// 矩阵单选矩阵多选矩阵填空题复合矩阵单选
List<Map<String, Object>> questionChenRow = examDao.queryQuestionChenRowListByQuestionId(question);//获取行选项 List<Map<String, Object>> questionChenRow = examDao.queryQuestionChenRowListByQuestionId(question);//获取行选项
List<Map<String, Object>> questionChenColumn = examDao.queryQuestionChenColumnListByQuestionId(question);//获取列选项 List<Map<String, Object>> questionChenColumn = examDao.queryQuestionChenColumnListByQuestionId(question);//获取列选项
for (Map<String, Object> bean : questionChenRow) { for (Map<String, Object> bean : questionChenRow) {
@ -285,7 +286,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加填空题 * 添加填空题
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -312,7 +313,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加评分题 * 添加评分题
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -364,7 +365,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加排序题 * 添加排序题
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -416,7 +417,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加分页标记 * 添加分页标记
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -435,7 +436,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加单选题 * 添加单选题
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -495,7 +496,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加多选题 * 添加多选题
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -555,7 +556,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加多选填空题 * 添加多选填空题
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -608,7 +609,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加段落 * 添加段落
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -627,7 +628,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 添加矩阵单选题,矩阵多选题,矩阵评分题,矩阵填空题 * 添加矩阵单选题,矩阵多选题,矩阵评分题,矩阵填空题
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -718,7 +719,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除问题 * 删除问题
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -752,7 +753,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除矩阵单选题,矩阵多选题,矩阵评分题,矩阵填空题列选项 * 删除矩阵单选题,矩阵多选题,矩阵评分题,矩阵填空题列选项
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -774,7 +775,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除矩阵单选题,矩阵多选题,矩阵评分题,矩阵填空题行选项 * 删除矩阵单选题,矩阵多选题,矩阵评分题,矩阵填空题行选项
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -796,7 +797,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除单选题选项 * 删除单选题选项
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -818,7 +819,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除多选题选项 * 删除多选题选项
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -840,7 +841,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除评分题选项 * 删除评分题选项
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -862,7 +863,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除排序选项 * 删除排序选项
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -884,7 +885,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除多项填空题选项 * 删除多项填空题选项
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -904,7 +905,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 发布试卷 * 发布试卷
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -955,7 +956,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 获取试卷题目信息用来生成html页面 * 获取试卷题目信息用来生成html页面
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -988,7 +989,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 删除试卷 * 删除试卷
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -1002,7 +1003,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 分析报告试卷 * 分析报告试卷
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -1018,7 +1019,6 @@ public class ExamServiceImpl implements ExamService {
getQuestionOptionListMation(question); getQuestionOptionListMation(question);
getQuestionOptionReportListMation(question); getQuestionOptionReportListMation(question);
} }
outputObject.setBean(surveyMation); outputObject.setBean(surveyMation);
outputObject.setBeans(questions); outputObject.setBeans(questions);
outputObject.settotal(1); outputObject.settotal(1);
@ -1217,7 +1217,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 复制试卷 * 复制试卷
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -1284,7 +1284,7 @@ public class ExamServiceImpl implements ExamService {
} }
} else if (quType.equals(QuType.BIGQU.getActionName())) { } else if (quType.equals(QuType.BIGQU.getActionName())) {
} else if (quType.equals(QuType.CHENRADIO.getActionName()) || quType.equals(QuType.CHENCHECKBOX.getActionName()) || quType.equals(QuType.CHENSCORE.getActionName()) } else if (quType.equals(QuType.CHENRADIO.getActionName()) || quType.equals(QuType.CHENCHECKBOX.getActionName()) || quType.equals(QuType.CHENSCORE.getActionName())
|| quType.equals(QuType.CHENFBK.getActionName()) || quType.equals(QuType.COMPCHENRADIO.getActionName())) {// 矩阵单选矩阵多选矩阵填空题复合矩阵单选 || quType.equals(QuType.CHENFBK.getActionName()) || quType.equals(QuType.COMPCHENRADIO.getActionName())) {// 矩阵单选矩阵多选矩阵填空题复合矩阵单选
List<Map<String, Object>> questionChenRows = examDao.queryQuestionChenRowListByCopyId(question);//获取行选项 List<Map<String, Object>> questionChenRows = examDao.queryQuestionChenRowListByCopyId(question);//获取行选项
List<Map<String, Object>> questionChenColumns = examDao.queryQuestionChenColumnListByCopyId(question);//获取列选项 List<Map<String, Object>> questionChenColumns = examDao.queryQuestionChenColumnListByCopyId(question);//获取列选项
for (Map<String, Object> questionChenRow : questionChenRows) { for (Map<String, Object> questionChenRow : questionChenRows) {
@ -1337,7 +1337,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 判断此试卷当前的状态 * 判断此试卷当前的状态
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -1353,7 +1353,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 用户回答试卷 * 用户回答试卷
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -2238,7 +2238,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 手动结束试卷 * 手动结束试卷
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -2341,7 +2341,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 获取答卷详情信息 * 获取答卷详情信息
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -2385,7 +2385,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 批阅试卷时获取答卷信息 * 批阅试卷时获取答卷信息
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -2421,7 +2421,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 批阅试卷提交答卷结果 * 批阅试卷提交答卷结果
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -2465,7 +2465,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 获取试卷详情信息 * 获取试卷详情信息
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -2484,7 +2484,7 @@ public class ExamServiceImpl implements ExamService {
} }
} }
for (Map<String, Object> question : questions) { for (Map<String, Object> question : questions) {
question.put("pageNo", pageNo); question.put("F", pageNo);
getQuestionOptionListMation(question); getQuestionOptionListMation(question);
// 知识点数量回显 // 知识点数量回显
String knowledgeIds = question.containsKey("knowledgeIds") ? question.get("knowledgeIds").toString() : ","; String knowledgeIds = question.containsKey("knowledgeIds") ? question.get("knowledgeIds").toString() : ",";
@ -2509,7 +2509,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 获取试卷答题情况信息 * 获取试卷答题情况信息
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -2524,7 +2524,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 获取试卷详情信息以及阅卷人信息 * 获取试卷详情信息以及阅卷人信息
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override
@ -2546,7 +2546,7 @@ public class ExamServiceImpl implements ExamService {
/** /**
* 修改阅卷人信息 * 修改阅卷人信息
* *
* @param inputObject 入参以及用户信息等获取对象 * @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象 * @param outputObject 出参以及提示信息的返回值对象
*/ */
@Override @Override

View file

@ -14,5 +14,7 @@ public interface ExamQuCheckboxService extends SkyeyeBusinessService<ExamQuCheck
void removeByQuId(String quId); void removeByQuId(String quId);
List<ExamQuCheckbox> selectQuChenbox(String copyFromId);
// void queryExamQuCheckboxListById(InputObject inputObject, OutputObject outputObject); // void queryExamQuCheckboxListById(InputObject inputObject, OutputObject outputObject);
} }

View file

@ -103,4 +103,12 @@ public class ExamQuCheckboxServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuC
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuCheckbox::getQuId),quId); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuCheckbox::getQuId),quId);
remove(updateWrapper); remove(updateWrapper);
} }
@Override
public List<ExamQuCheckbox> selectQuChenbox(String copyFromId) {
QueryWrapper<ExamQuCheckbox> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuCheckbox::getQuId),copyFromId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuCheckbox::getVisibility),CommonNumConstants.NUM_ONE);
return list(queryWrapper);
}
} }

View file

@ -15,4 +15,6 @@ public interface ExamQuChenColumnService extends SkyeyeBusinessService<ExamQuChe
void changeVisibility(InputObject inputObject, OutputObject outputObject); void changeVisibility(InputObject inputObject, OutputObject outputObject);
void removeByQuId(String quId); void removeByQuId(String quId);
List<ExamQuChenColumn> selectQuChenColumn(String copyFromId);
} }

View file

@ -104,7 +104,7 @@ public class ExamQuChenColumnServiceImpl extends SkyeyeBusinessServiceImpl<ExamQ
String quId = entity.getQuId(); String quId = entity.getQuId();
int queryvisibility = examQuChenRowService.QueryvisibilityInRow(quId, createId); int queryvisibility = examQuChenRowService.QueryvisibilityInRow(quId, createId);
Integer visibility = entity.getVisibility(); Integer visibility = entity.getVisibility();
if (visibility == 1 && queryvisibility == 1){ if (visibility == 1 && queryvisibility == 1) {
throw new CustomException("该选项已显示,请先隐藏再删除"); throw new CustomException("该选项已显示,请先隐藏再删除");
} }
} }
@ -115,9 +115,9 @@ public class ExamQuChenColumnServiceImpl extends SkyeyeBusinessServiceImpl<ExamQ
String id = map.get("id").toString(); String id = map.get("id").toString();
String quId = map.get("quId").toString(); String quId = map.get("quId").toString();
String createId = map.get("createId").toString(); String createId = map.get("createId").toString();
examQuChenRowService.changeVisibility(quId,createId); examQuChenRowService.changeVisibility(quId, createId);
UpdateWrapper<ExamQuChenColumn> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<ExamQuChenColumn> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenColumn::getId),id); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenColumn::getId), id);
updateWrapper.set(MybatisPlusUtil.toColumns(ExamQuChenColumn::getVisibility), CommonNumConstants.NUM_ZERO); updateWrapper.set(MybatisPlusUtil.toColumns(ExamQuChenColumn::getVisibility), CommonNumConstants.NUM_ZERO);
update(updateWrapper); update(updateWrapper);
} }
@ -126,7 +126,15 @@ public class ExamQuChenColumnServiceImpl extends SkyeyeBusinessServiceImpl<ExamQ
public void removeByQuId(String quId) { public void removeByQuId(String quId) {
examQuChenRowService.removeByQuId(quId); examQuChenRowService.removeByQuId(quId);
UpdateWrapper<ExamQuChenColumn> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<ExamQuChenColumn> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenColumn::getQuId),quId); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenColumn::getQuId), quId);
update(updateWrapper); update(updateWrapper);
} }
@Override
public List<ExamQuChenColumn> selectQuChenColumn(String copyFromId) {
QueryWrapper<ExamQuChenColumn> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenColumn::getQuId), copyFromId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenColumn::getVisibility), CommonNumConstants.NUM_ONE);
return list(queryWrapper);
}
} }

View file

@ -19,4 +19,6 @@ public interface ExamQuChenRowService extends SkyeyeBusinessService<ExamQuChenRo
void changeVisibility(String quId, String createId); void changeVisibility(String quId, String createId);
void removeByQuId(String quId); void removeByQuId(String quId);
List<ExamQuChenRow> selectQuChenRow(String copyFromId);
} }

View file

@ -9,7 +9,6 @@ import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
import com.skyeye.exam.examquchenrow.dao.ExamQuChenRowDao; import com.skyeye.exam.examquchenrow.dao.ExamQuChenRowDao;
import com.skyeye.exam.examquchenrow.entity.ExamQuChenRow; import com.skyeye.exam.examquchenrow.entity.ExamQuChenRow;
import com.skyeye.exam.examquchenrow.service.ExamQuChenRowService; import com.skyeye.exam.examquchenrow.service.ExamQuChenRowService;
import org.apache.ibatis.annotations.Update;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -21,6 +20,7 @@ public class ExamQuChenRowServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuCh
@Autowired @Autowired
private ExamQuChenRowService examQuChenRowService; private ExamQuChenRowService examQuChenRowService;
@Override @Override
public void saveRowEntity(List<ExamQuChenRow> quRow, String userId) { public void saveRowEntity(List<ExamQuChenRow> quRow, String userId) {
createEntity(quRow, userId); createEntity(quRow, userId);
@ -32,17 +32,17 @@ public class ExamQuChenRowServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuCh
} }
@Override @Override
public QueryWrapper<ExamQuChenRow> QueryExamQuChenRowList(String quId){ public QueryWrapper<ExamQuChenRow> QueryExamQuChenRowList(String quId) {
QueryWrapper<ExamQuChenRow> queryWrapper = new QueryWrapper<>(); QueryWrapper<ExamQuChenRow> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId),quId); queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId), quId);
return queryWrapper; return queryWrapper;
} }
@Override @Override
public int QueryvisibilityInRow(String quId, String createId) { public int QueryvisibilityInRow(String quId, String createId) {
QueryWrapper<ExamQuChenRow> queryWrapper = new QueryWrapper<>(); QueryWrapper<ExamQuChenRow> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId),quId); queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId), quId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getCreateId),createId); queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getCreateId), createId);
ExamQuChenRow one = examQuChenRowService.getOne(queryWrapper); ExamQuChenRow one = examQuChenRowService.getOne(queryWrapper);
Integer visibility = one.getVisibility(); Integer visibility = one.getVisibility();
return visibility; return visibility;
@ -51,8 +51,8 @@ public class ExamQuChenRowServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuCh
@Override @Override
public void changeVisibility(String quId, String createId) { public void changeVisibility(String quId, String createId) {
UpdateWrapper<ExamQuChenRow> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<ExamQuChenRow> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId),quId); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId), quId);
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getCreateId),createId); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getCreateId), createId);
updateWrapper.set(MybatisPlusUtil.toColumns(ExamQuChenRow::getVisibility), CommonNumConstants.NUM_ZERO); updateWrapper.set(MybatisPlusUtil.toColumns(ExamQuChenRow::getVisibility), CommonNumConstants.NUM_ZERO);
update(updateWrapper); update(updateWrapper);
} }
@ -60,7 +60,15 @@ public class ExamQuChenRowServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuCh
@Override @Override
public void removeByQuId(String quId) { public void removeByQuId(String quId) {
UpdateWrapper<ExamQuChenRow> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<ExamQuChenRow> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId),quId); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId), quId);
remove(updateWrapper); remove(updateWrapper);
} }
@Override
public List<ExamQuChenRow> selectQuChenRow(String copyFromId) {
QueryWrapper<ExamQuChenRow> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getQuId), copyFromId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuChenRow::getVisibility), CommonNumConstants.NUM_ONE);
return list(queryWrapper);
}
} }

View file

@ -14,4 +14,6 @@ public interface ExamQuMultiFillblankService extends SkyeyeBusinessService<ExamQ
void changeVisibility(InputObject inputObject, OutputObject outputObject); void changeVisibility(InputObject inputObject, OutputObject outputObject);
void removeByQuId(String quId); void removeByQuId(String quId);
List<ExamQuMultiFillblank> selectQuMultiFillblank(String copyFromId);
} }

View file

@ -89,4 +89,12 @@ public class ExamQuMultiFillblankControllerImpl extends SkyeyeBusinessServiceImp
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuMultiFillblank::getQuId),quId); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuMultiFillblank::getQuId),quId);
remove(updateWrapper); remove(updateWrapper);
} }
@Override
public List<ExamQuMultiFillblank> selectQuMultiFillblank(String copyFromId) {
QueryWrapper<ExamQuMultiFillblank> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuMultiFillblank::getQuId),copyFromId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuMultiFillblank::getVisibility),CommonNumConstants.NUM_ONE);
return list(queryWrapper);
}
} }

View file

@ -14,4 +14,6 @@ public interface ExamQuOrderbyService extends SkyeyeBusinessService<ExamQuOrderb
void changeVisibility(InputObject inputObject, OutputObject outputObject); void changeVisibility(InputObject inputObject, OutputObject outputObject);
void removeByQuId(String quId); void removeByQuId(String quId);
List<ExamQuOrderby> selectQuOrderby(String copyFromId);
} }

View file

@ -68,7 +68,7 @@ public class ExamQuOrderbyServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuOr
@Override @Override
protected void deletePreExecution(ExamQuOrderby entity) { protected void deletePreExecution(ExamQuOrderby entity) {
Integer visibility = entity.getVisibility(); Integer visibility = entity.getVisibility();
if (visibility == 1){ if (visibility == 1) {
throw new CustomException("该选项已显示,请先隐藏再删除"); throw new CustomException("该选项已显示,请先隐藏再删除");
} }
} }
@ -78,7 +78,7 @@ public class ExamQuOrderbyServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuOr
Map<String, Object> map = inputObject.getParams(); Map<String, Object> map = inputObject.getParams();
String id = map.get("id").toString(); String id = map.get("id").toString();
UpdateWrapper<ExamQuOrderby> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<ExamQuOrderby> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuOrderby::getId),id); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuOrderby::getId), id);
updateWrapper.set(MybatisPlusUtil.toColumns(ExamQuOrderby::getVisibility), CommonNumConstants.NUM_ZERO); updateWrapper.set(MybatisPlusUtil.toColumns(ExamQuOrderby::getVisibility), CommonNumConstants.NUM_ZERO);
update(updateWrapper); update(updateWrapper);
} }
@ -86,7 +86,15 @@ public class ExamQuOrderbyServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuOr
@Override @Override
public void removeByQuId(String quId) { public void removeByQuId(String quId) {
UpdateWrapper<ExamQuOrderby> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<ExamQuOrderby> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuOrderby::getQuId),quId); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuOrderby::getQuId), quId);
remove(updateWrapper); remove(updateWrapper);
} }
@Override
public List<ExamQuOrderby> selectQuOrderby(String copyFromId) {
QueryWrapper<ExamQuOrderby> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuOrderby::getQuId), copyFromId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuOrderby::getVisibility), CommonNumConstants.NUM_ONE);
return list(queryWrapper);
}
} }

View file

@ -21,4 +21,6 @@ public interface ExamQuRadioService extends SkyeyeBusinessService<ExamQuRadio> {
void changeVisibility(InputObject inputObject, OutputObject outputObject); void changeVisibility(InputObject inputObject, OutputObject outputObject);
void removeByQuId(String quId); void removeByQuId(String quId);
List<ExamQuRadio> selectQuRadio(String copyFromId);
} }

View file

@ -106,5 +106,14 @@ public class ExamQuRadioServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuRadi
remove(updateWrapper); remove(updateWrapper);
} }
@Override
public List<ExamQuRadio> selectQuRadio(String copyFromId) {
QueryWrapper<ExamQuRadio> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuRadio::getQuId),copyFromId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuRadio::getVisibility),CommonNumConstants.NUM_ONE);
List<ExamQuRadio> examQuRadioList = list(queryWrapper);
return examQuRadioList;
}
} }

View file

@ -19,5 +19,7 @@ public interface ExamQuScoreService extends SkyeyeBusinessService<ExamQuScore> {
void saveList(List<ExamQuScore> list, String quId, String userId); void saveList(List<ExamQuScore> list, String quId, String userId);
void changeVisibility(InputObject inputObject, OutputObject outputObject); void changeVisibility(InputObject inputObject, OutputObject outputObject);
List<ExamQuScore> selectQuScore(String copyFromId);
} }

View file

@ -76,7 +76,7 @@ public class ExamQuScoreServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuScor
@Override @Override
protected void deletePreExecution(ExamQuScore entity) { protected void deletePreExecution(ExamQuScore entity) {
Integer visibility = entity.getVisibility(); Integer visibility = entity.getVisibility();
if (visibility == 1){ if (visibility == 1) {
throw new CustomException("该选项已显示,请先隐藏再删除"); throw new CustomException("该选项已显示,请先隐藏再删除");
} }
} }
@ -86,9 +86,17 @@ public class ExamQuScoreServiceImpl extends SkyeyeBusinessServiceImpl<ExamQuScor
Map<String, Object> map = inputObject.getParams(); Map<String, Object> map = inputObject.getParams();
String id = map.get("id").toString(); String id = map.get("id").toString();
UpdateWrapper<ExamQuScore> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<ExamQuScore> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuScore::getId),id); updateWrapper.eq(MybatisPlusUtil.toColumns(ExamQuScore::getId), id);
updateWrapper.set(MybatisPlusUtil.toColumns(ExamQuScore::getVisibility), CommonNumConstants.NUM_ZERO); updateWrapper.set(MybatisPlusUtil.toColumns(ExamQuScore::getVisibility), CommonNumConstants.NUM_ZERO);
update(updateWrapper); update(updateWrapper);
} }
@Override
public List<ExamQuScore> selectQuScore(String copyFromId) {
QueryWrapper<ExamQuScore> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuScore::getQuId), copyFromId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamQuScore::getVisibility), CommonNumConstants.NUM_ONE);
return list(queryWrapper);
}
} }

View file

@ -5,6 +5,8 @@ import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject; import com.skyeye.common.object.OutputObject;
import com.skyeye.exam.examsurveyanswer.entity.ExamSurveyAnswer; import com.skyeye.exam.examsurveyanswer.entity.ExamSurveyAnswer;
import java.util.List;
/** /**
* @ClassName: ExamSurveyAnswerService * @ClassName: ExamSurveyAnswerService
* @Description: 试卷回答信息表管理服务接口层 * @Description: 试卷回答信息表管理服务接口层
@ -17,4 +19,6 @@ public interface ExamSurveyAnswerService extends SkyeyeBusinessService<ExamSurve
void queryMySurveyAnswerList(InputObject inputObject, OutputObject outputObject); void queryMySurveyAnswerList(InputObject inputObject, OutputObject outputObject);
ExamSurveyAnswer queryWhetherExamIngByStuId(String userId, String id); ExamSurveyAnswer queryWhetherExamIngByStuId(String userId, String id);
List<ExamSurveyAnswer> querySurveyAnswer(String surveyId, String answerId, String userId);
} }

View file

@ -9,7 +9,6 @@ import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
import com.skyeye.exam.examsurveyanswer.dao.ExamSurveyAnswerDao; import com.skyeye.exam.examsurveyanswer.dao.ExamSurveyAnswerDao;
import com.skyeye.exam.examsurveyanswer.entity.ExamSurveyAnswer; import com.skyeye.exam.examsurveyanswer.entity.ExamSurveyAnswer;
import com.skyeye.exam.examsurveyanswer.service.ExamSurveyAnswerService; import com.skyeye.exam.examsurveyanswer.service.ExamSurveyAnswerService;
import com.skyeye.exception.CustomException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -45,4 +44,13 @@ public class ExamSurveyAnswerServiceImpl extends SkyeyeBusinessServiceImpl<ExamS
ExamSurveyAnswer answer = getOne(queryWrapper); ExamSurveyAnswer answer = getOne(queryWrapper);
return answer; return answer;
} }
@Override
public List<ExamSurveyAnswer> querySurveyAnswer(String surveyId, String answerId, String userId) {
QueryWrapper<ExamSurveyAnswer> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamSurveyAnswer::getSurveyId), surveyId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamSurveyAnswer::getId), answerId);
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamSurveyAnswer::getCreateId), userId);
return list(queryWrapper);
}
} }

View file

@ -121,4 +121,19 @@ public class ExamSurveyDirectoryController {
public void takeExam(InputObject inputObject, OutputObject outputObject) { public void takeExam(InputObject inputObject, OutputObject outputObject) {
examSurveyDirectoryService.takeExam(inputObject, outputObject); examSurveyDirectoryService.takeExam(inputObject, outputObject);
} }
/**
* 手动结束试卷
*
* @param inputObject 入参以及用户信息等获取对象
* @param outputObject 出参以及提示信息的返回值对象
*/
@ApiOperation(id = "updateExamMationEndById", value = "手动结束试卷", method = "POST", allUse = "1")
@ApiImplicitParams({
@ApiImplicitParam(id = "id", name = "id", value = "试卷id",required = "required")})
@RequestMapping("/post/ExamSurveyDirectoryController/updateExamMationEndById")
public void updateExamMationEndById(InputObject inputObject, OutputObject outputObject) {
examSurveyDirectoryService.updateExamMationEndById(inputObject, outputObject);
}
} }

View file

@ -5,6 +5,8 @@ import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject; import com.skyeye.common.object.OutputObject;
import com.skyeye.exam.examsurveydirectory.entity.ExamSurveyDirectory; import com.skyeye.exam.examsurveydirectory.entity.ExamSurveyDirectory;
import java.util.List;
/** /**
* @ClassName: ExamSurveyDirectoryService * @ClassName: ExamSurveyDirectoryService
* @Description: 试卷管理服务接口层 * @Description: 试卷管理服务接口层
@ -22,4 +24,6 @@ public interface ExamSurveyDirectoryService extends SkyeyeBusinessService<ExamSu
ExamSurveyDirectory takeExam(InputObject inputObject, OutputObject outputObject); ExamSurveyDirectory takeExam(InputObject inputObject, OutputObject outputObject);
void copyExamDirectory(InputObject inputObject, OutputObject outputObject); void copyExamDirectory(InputObject inputObject, OutputObject outputObject);
void updateExamMationEndById(InputObject inputObject, OutputObject outputObject);
} }

View file

@ -1,6 +1,7 @@
package com.skyeye.exam.examsurveydirectory.service.impl; package com.skyeye.exam.examsurveydirectory.service.impl;
import cn.hutool.core.io.unit.DataUnit; import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.skyeye.annotation.service.SkyeyeService; import com.skyeye.annotation.service.SkyeyeService;
@ -12,6 +13,7 @@ import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.DateUtil; import com.skyeye.common.util.DateUtil;
import com.skyeye.common.util.ToolUtil; import com.skyeye.common.util.ToolUtil;
import com.skyeye.common.util.mybatisplus.MybatisPlusUtil; import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
import com.skyeye.common.util.question.QuType;
import com.skyeye.eve.Examquestion.dao.QuestionDao; import com.skyeye.eve.Examquestion.dao.QuestionDao;
import com.skyeye.eve.Examquestion.entity.Question; import com.skyeye.eve.Examquestion.entity.Question;
import com.skyeye.eve.Examquestion.service.QuestionService; import com.skyeye.eve.Examquestion.service.QuestionService;
@ -27,7 +29,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -141,7 +142,7 @@ public class ExamSurveyDirectoryServiceImpl extends SkyeyeBusinessServiceImpl<Ex
public void copyExamDirectory(InputObject inputObject, OutputObject outputObject) { public void copyExamDirectory(InputObject inputObject, OutputObject outputObject) {
ExamSurveyDirectory examSurveyDirectories = new ExamSurveyDirectory(); ExamSurveyDirectory examSurveyDirectories = new ExamSurveyDirectory();
Map<String, Object> map = inputObject.getParams(); Map<String, Object> map = inputObject.getParams();
String quId = map.get("id").toString();//试卷id String examDirectoryId = map.get("id").toString();//试卷id
String userId = InputObject.getLogParamsStatic().get("id").toString(); String userId = InputObject.getLogParamsStatic().get("id").toString();
String surveyId = ToolUtil.getSurFaceId(); String surveyId = ToolUtil.getSurFaceId();
examSurveyDirectories.setId(surveyId); examSurveyDirectories.setId(surveyId);
@ -149,17 +150,15 @@ public class ExamSurveyDirectoryServiceImpl extends SkyeyeBusinessServiceImpl<Ex
examSurveyDirectories.setSurveyModel(1); examSurveyDirectories.setSurveyModel(1);
examSurveyDirectories.setCreateId(userId); examSurveyDirectories.setCreateId(userId);
examSurveyDirectories.setCreateTime(DateUtil.getTimeAndToString()); examSurveyDirectories.setCreateTime(DateUtil.getTimeAndToString());
List<Question> questionList = Collections.singletonList(questionDao.selectById(quId)); List<Question> questionList = questionService.queryQuestionMationCopyById(examDirectoryId);
for (Question question : questionList) { for (Question question : questionList) {
question.setCopyFromId(quId); question.setCopyFromId(question.getId());
question.setId(ToolUtil.getSurFaceId()); question.setId(ToolUtil.getSurFaceId());
question.setCreateTime(DateUtil.getTimeAndToString()); question.setCreateTime(DateUtil.getTimeAndToString());
question.setBelongId(surveyId); question.setBelongId(surveyId);
questionService.copyQuestionListMation(question); questionService.copyQuestionListMation(question);
} }
// questionService.createEntity(questions, userId); questionService.createEntity(questionList, StrUtil.EMPTY);
} }
@Override @Override
@ -190,4 +189,26 @@ public class ExamSurveyDirectoryServiceImpl extends SkyeyeBusinessServiceImpl<Ex
update(updateWrapper); update(updateWrapper);
} }
@Override
public void updateExamMationEndById(InputObject inputObject, OutputObject outputObject) {
Map<String, Object> map = inputObject.getParams();
String examSurveyDirectoryId = map.get("id").toString();
QueryWrapper<ExamSurveyDirectory> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(ExamSurveyDirectory::getId), examSurveyDirectoryId);
ExamSurveyDirectory examSurveyDirectory = getOne(queryWrapper);
if (examSurveyDirectory != null && ObjUtil.isNotEmpty(examSurveyDirectory)) {
if (examSurveyDirectory.getSurveyState().equals(CommonNumConstants.NUM_ONE)) {
String realEndTime = DateUtil.getTimeAndToString();
UpdateWrapper<ExamSurveyDirectory> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(MybatisPlusUtil.toColumns(ExamSurveyDirectory::getId), examSurveyDirectoryId);
updateWrapper.set(MybatisPlusUtil.toColumns(ExamSurveyDirectory::getRealEndTime), realEndTime);
updateWrapper.set(MybatisPlusUtil.toColumns(ExamSurveyDirectory::getSurveyState), CommonNumConstants.NUM_TWO);
updateWrapper.set(MybatisPlusUtil.toColumns(ExamSurveyDirectory::getEndType), CommonNumConstants.NUM_ONE);
update(updateWrapper);
}
}
else {
throw new CustomException("该试卷信息不存在!");
}
}
} }

View file

@ -1182,37 +1182,37 @@
<select id="queryQuestionMationCopyById" parameterType="java.util.Map" resultType="java.util.Map"> <select id="queryQuestionMationCopyById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT SELECT
a.id, a.id,
a.answer_input_row answerInputRow, a.answer_input_row answerInputRow,
a.answer_input_width answerInputWidth, a.answer_input_width answerInputWidth,
a.belong_id belongId, a.belong_id belongId,
a.cell_count cellCount, a.cell_count cellCount,
a.check_type checkType, a.check_type checkType,
a.contacts_attr contactsAttr, a.contacts_attr contactsAttr,
a.contacts_field contactsField, a.contacts_field contactsField,
a.copy_from_id copyFromId, a.copy_from_id copyFromId,
a.hv, a.hv,
a.order_by_id orderById, a.order_by_id orderById,
a.param_int01 paramInt01, a.param_int01 paramInt01,
a.param_int02 paramInt02, a.param_int02 paramInt02,
a.parent_qu_id parentQuId, a.parent_qu_id parentQuId,
a.qu_title quTitle, a.qu_title quTitle,
a.qu_tag quTag, a.qu_tag quTag,
a.qu_type quType, a.qu_type quType,
a.rand_order randOrder, a.rand_order randOrder,
a.tag, a.tag,
a.visibility, a.visibility,
a.yesno_option yesnoOption, a.yesno_option yesnoOption,
a.fraction a.fraction
FROM FROM
exam_question a exam_question a
WHERE WHERE
a.belong_id = #{surveyCopyId}<!-- 所属试卷 --> a.belong_id = #{surveyCopyId}<!-- 所属试卷 -->
AND a.tag = '2'<!-- 试卷的题 --> AND a.tag = '2'<!-- 试卷的题 -->
AND a.qu_tag != '2'<!-- 不是大题 --> AND a.qu_tag != '2'<!-- 不是大题 -->
AND a.visibility = '1' AND a.visibility = '1'
ORDER BY ORDER BY
a.order_by_id ASC a.order_by_id ASC
</select> </select>
<insert id="addQuestionMationCopyByExamId" parameterType="java.util.Map"> <insert id="addQuestionMationCopyByExamId" parameterType="java.util.Map">

View file

@ -12,6 +12,11 @@ import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField; import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.constans.RedisConstants; import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.BaseGeneralInfo; import com.skyeye.common.entity.features.BaseGeneralInfo;
import com.skyeye.common.enumeration.EnableEnum;
import com.skyeye.coupon.enums.CouponTakeType;
import com.skyeye.coupon.enums.CouponValidityType;
import com.skyeye.coupon.enums.PromotionDiscountType;
import com.skyeye.coupon.enums.PromotionMaterialScope;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -39,7 +44,7 @@ public class Coupon extends BaseGeneralInfo {
private String templateId; private String templateId;
@TableField(value = "enabled") @TableField(value = "enabled")
@ApiModelProperty(value = "状态,参考#EnableEnum", required = "required,num") @ApiModelProperty(value = "状态", required = "required,num", enumClass = EnableEnum.class)
private Integer enabled; private Integer enabled;
@TableField(value = "total_count") @TableField(value = "total_count")
@ -51,7 +56,7 @@ public class Coupon extends BaseGeneralInfo {
private Integer takeLimitCount; private Integer takeLimitCount;
@TableField(value = "take_type") @TableField(value = "take_type")
@ApiModelProperty(value = "领取方式,参考#CouponTakeType", required = "required,num") @ApiModelProperty(value = "领取方式", required = "required,num",enumClass = CouponTakeType.class)
private Integer takeType; private Integer takeType;
@TableField(value = "use_price") @TableField(value = "use_price")
@ -59,11 +64,11 @@ public class Coupon extends BaseGeneralInfo {
private String usePrice; private String usePrice;
@TableField(value = "product_scope") @TableField(value = "product_scope")
@ApiModelProperty(value = "商品范围,参考#PromotionMaterialScope", required = "required,num") @ApiModelProperty(value = "商品范围", required = "required,num", enumClass = PromotionMaterialScope.class)
private Integer productScope; private Integer productScope;
@TableField(value = "validity_type") @TableField(value = "validity_type")
@ApiModelProperty(value = "生效日期类型,参考#CouponValidityType", required = "required,num") @ApiModelProperty(value = "生效日期类型", required = "required,num",enumClass = CouponValidityType.class)
private Integer validityType; private Integer validityType;
@TableField(value = "valid_start_time") @TableField(value = "valid_start_time")
@ -83,7 +88,7 @@ public class Coupon extends BaseGeneralInfo {
private Integer fixedEndTerm; private Integer fixedEndTerm;
@TableField(value = "discount_type") @TableField(value = "discount_type")
@ApiModelProperty(value = "折扣类型,参考#PromotionDiscountType", required = "required,num") @ApiModelProperty(value = "折扣类型", required = "required,num",enumClass = PromotionDiscountType.class)
private Integer discountType; private Integer discountType;
@TableField(value = "discount_percent") @TableField(value = "discount_percent")

View file

@ -11,6 +11,10 @@ import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty; import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property; import com.skyeye.annotation.api.Property;
import com.skyeye.common.entity.features.OperatorUserInfo; import com.skyeye.common.entity.features.OperatorUserInfo;
import com.skyeye.coupon.enums.CouponTakeType;
import com.skyeye.coupon.enums.CouponUseState;
import com.skyeye.coupon.enums.PromotionDiscountType;
import com.skyeye.coupon.enums.PromotionMaterialScope;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -42,11 +46,11 @@ public class CouponUse extends OperatorUserInfo {
private Map<String, Object> couponMation; private Map<String, Object> couponMation;
@TableField(value = "state") @TableField(value = "state")
@Property(value = "状态,参考#CouponUseState") @Property(value = "状态", enumClass = CouponUseState.class)
private Integer state; private Integer state;
@TableField(value = "task_type") @TableField(value = "task_type")
@ApiModelProperty(value = "领取类型", required = "required") @ApiModelProperty(value = "领取类型", required = "required", enumClass = CouponTakeType.class)
private Integer taskType; private Integer taskType;
@TableField(value = "use_price") @TableField(value = "use_price")
@ -54,7 +58,7 @@ public class CouponUse extends OperatorUserInfo {
private String usePrice; private String usePrice;
@TableField(value = "product_scope") @TableField(value = "product_scope")
@Property(value = "商品范围") @Property(value = "商品范围", enumClass = PromotionMaterialScope.class)
private Integer productScope; private Integer productScope;
@TableField(value = "valid_start_time") @TableField(value = "valid_start_time")
@ -66,7 +70,7 @@ public class CouponUse extends OperatorUserInfo {
private String validEndTime; private String validEndTime;
@TableField(value = "discount_type") @TableField(value = "discount_type")
@Property(value = "折扣类型") @Property(value = "折扣类型", enumClass = PromotionDiscountType.class)
private Integer discountType; private Integer discountType;
@TableField(value = "discount_percent") @TableField(value = "discount_percent")

View file

@ -12,6 +12,7 @@ import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property; import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField; import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.entity.features.AreaInfo; import com.skyeye.common.entity.features.AreaInfo;
import com.skyeye.order.enums.*;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -40,11 +41,11 @@ public class Order extends AreaInfo {
private String oddNumber; private String oddNumber;
@TableField("type") @TableField("type")
@ApiModelProperty(value = "订单类型,参考#ShopOrderType", required = "required") @ApiModelProperty(value = "订单类型", required = "required",enumClass = ShopOrderType.class)
private Integer type; private Integer type;
@TableField("terminal") @TableField("terminal")
@ApiModelProperty(value = "订单来源,参考#ShopOrderTerminal", required = "required") @ApiModelProperty(value = "订单来源", required = "required", enumClass = ShopOrderTerminal.class)
private Integer terminal; private Integer terminal;
@TableField("user_ip") @TableField("user_ip")
@ -52,7 +53,7 @@ public class Order extends AreaInfo {
private String userIp; private String userIp;
@TableField("state") @TableField("state")
@Property(value = "状态, 参考#ShopOrderState") @Property(value = "状态",enumClass = ShopOrderState.class)
private Integer state; private Integer state;
@TableField("count") @TableField("count")
@ -68,11 +69,11 @@ public class Order extends AreaInfo {
private String cancelTime; private String cancelTime;
@TableField("cancel_type") @TableField("cancel_type")
@Property(value = "取消类型,参考#ShopOrderCancelType") @Property(value = "取消类型",enumClass = ShopOrderCancelType.class)
private Integer cancelType; private Integer cancelType;
@TableField("comment_state") @TableField("comment_state")
@Property(value = "是否评价,参考#ShopOrderCommentState") @Property(value = "是否评价", enumClass = ShopOrderCommentState.class)
private Integer commentState; private Integer commentState;
@TableField("brokerage_user_id") @TableField("brokerage_user_id")
@ -88,7 +89,7 @@ public class Order extends AreaInfo {
private String payType; private String payType;
@TableField("total_price") @TableField("total_price")
@Property(value = "商品总价,单位:分") @ApiModelProperty(value = "商品总价,单位:分",required = "required")
private String totalPrice; private String totalPrice;
@TableField("discount_price") @TableField("discount_price")

View file

@ -15,6 +15,7 @@ import com.skyeye.common.enumeration.WhetherEnum;
import com.skyeye.order.enums.OrderCommentType; import com.skyeye.order.enums.OrderCommentType;
import lombok.Data; import lombok.Data;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -85,4 +86,12 @@ public class OrderComment extends OperatorUserInfo {
@TableField(value = "context") @TableField(value = "context")
@ApiModelProperty(value = "评价内容", required = "required") @ApiModelProperty(value = "评价内容", required = "required")
private String context; private String context;
@TableField(exist = false)
@Property(value = "客户追评")
private Map<String,Object> additionalReview;
@TableField(exist = false)
@Property(value = "商家回复")
private List<Map<String, Object>> merchantReply;
} }

View file

@ -11,6 +11,7 @@ import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty; import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property; import com.skyeye.annotation.api.Property;
import com.skyeye.common.entity.features.OperatorUserInfo; import com.skyeye.common.entity.features.OperatorUserInfo;
import com.skyeye.common.enumeration.WhetherEnum;
import lombok.Data; import lombok.Data;
import java.util.Map; import java.util.Map;
@ -73,7 +74,7 @@ public class OrderItem extends OperatorUserInfo {
private Integer count; private Integer count;
@TableField("comment_state") @TableField("comment_state")
@Property(value = "是否评价") @Property(value = "是否评价",enumClass = WhetherEnum.class)
private Integer commentState; private Integer commentState;
@TableField("price") @TableField("price")

View file

@ -28,4 +28,6 @@ public interface OrderItemService extends SkyeyeBusinessService<OrderItem> {
Map<String, List<OrderItem>> queryListByParentId(List<String> idList); Map<String, List<OrderItem>> queryListByParentId(List<String> idList);
void setValueAndCreateEntity(Order order, String userId); void setValueAndCreateEntity(Order order, String userId);
void updateCommentStateById(String id);
} }

View file

@ -35,4 +35,6 @@ public interface OrderService extends SkyeyeBusinessService<Order> {
void changeOrderAdjustPrice(InputObject inputObject, OutputObject outputObject); void changeOrderAdjustPrice(InputObject inputObject, OutputObject outputObject);
void updateOrderToPayState(InputObject inputObject, OutputObject outputObject); void updateOrderToPayState(InputObject inputObject, OutputObject outputObject);
void setOrderCancle(String orderId);
} }

View file

@ -15,6 +15,7 @@ import com.github.pagehelper.PageHelper;
import com.skyeye.annotation.service.SkyeyeService; import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl; import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.constans.CommonConstants; import com.skyeye.common.constans.CommonConstants;
import com.skyeye.common.constans.CommonNumConstants;
import com.skyeye.common.entity.search.CommonPageInfo; import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.enumeration.WhetherEnum; import com.skyeye.common.enumeration.WhetherEnum;
import com.skyeye.common.object.InputObject; import com.skyeye.common.object.InputObject;
@ -36,8 +37,10 @@ import com.skyeye.store.service.ShopStoreService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @ClassName: OrderCommentServiceImpl * @ClassName: OrderCommentServiceImpl
@ -71,33 +74,66 @@ public class OrderCommentServiceImpl extends SkyeyeBusinessServiceImpl<OrderComm
@Override @Override
public void validatorEntity(OrderComment orderComment) { public void validatorEntity(OrderComment orderComment) {
if (orderComment.getType() == OrderCommentType.MERCHANT.getKey() || Integer commentType = orderComment.getType();
orderComment.getType() == OrderCommentType.CUSTOMERLATER.getKey()) { if (commentType != OrderCommentType.MERCHANT.getKey()
&& commentType != OrderCommentType.CUSTOMERLATER.getKey()
&& commentType != OrderCommentType.CUSTOMERFiRST.getKey()) {
throw new CustomException("type值非法");
}
if (commentType == OrderCommentType.MERCHANT.getKey() ||
commentType == OrderCommentType.CUSTOMERLATER.getKey()) {
if (StrUtil.isEmpty(orderComment.getParentId())) { if (StrUtil.isEmpty(orderComment.getParentId())) {
throw new CustomException("商家回复评价和客户追评父级评价id不能为空."); throw new CustomException("商家回复评价和客户追评父级评价id不能为空.");
} }
} }
if (orderComment.getType() == OrderCommentType.CUSTOMERFiRST.getKey()) { if (commentType == OrderCommentType.CUSTOMERFiRST.getKey()) {
if (StrUtil.isNotEmpty(orderComment.getParentId())) { if (StrUtil.isNotEmpty(orderComment.getParentId())) {
throw new CustomException("客户的评价无需父级id"); throw new CustomException("客户的评价无需父级id");
} }
} }
Integer start = orderComment.getStart();
if (ObjectUtil.isNotEmpty(start)) {
if (start < 0 || start > 5) {
throw new CustomException("评价星级为1-5");
}
}
} }
@Override @Override
public void createPrepose(OrderComment entity) { public void createPrepose(OrderComment entity) {
OrderItem orderItem = orderItemService.selectById(entity.getOrderItemId());
// 客户评价判断
if (orderItem.getCommentState() == WhetherEnum.DISABLE_USING.getKey()) {// 子订单未评价
if (entity.getType() == OrderCommentType.CUSTOMERLATER.getKey()) {
throw new CustomException("客户追评,需先进行首评。");
}
if (entity.getType() == OrderCommentType.CUSTOMERFiRST.getKey()) {// 客户首评
Integer start = entity.getStart();
if (ObjectUtil.isEmpty(entity.getStart())) {
throw new CustomException("首评的星级不能为空");
}
if (start < 0 || start > 5) {
throw new CustomException("评价星级为1-5");
}
}
} else if (orderItem.getCommentState() == WhetherEnum.ENABLE_USING.getKey()) {// 子订单已评价
if (entity.getType() == OrderCommentType.CUSTOMERFiRST.getKey()) {// 再次进行首评
throw new CustomException("首评只能评价一次。");
}
if (entity.getType() == OrderCommentType.CUSTOMERLATER.getKey()) {// 追评
QueryWrapper<OrderComment> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(OrderComment::getOrderItemId), entity.getOrderItemId())
.eq(MybatisPlusUtil.toColumns(OrderComment::getCreateId), InputObject.getLogParamsStatic().get("id").toString())
.and(wrap -> {
String parentId = MybatisPlusUtil.toColumns(OrderComment::getParentId);
wrap.isNotNull(parentId).ne(parentId, StrUtil.EMPTY);
});
OrderComment one = getOne(queryWrapper);
if (ObjectUtil.isNotEmpty(one)) {// 客户已追评
throw new CustomException("追评只能追评一次");
}
entity.setStart(null);
}
}
entity.setStoreId(ObjectUtil.isEmpty(orderItem) ? "" : orderItem.getStoreId());// 设置门店id
if (entity.getType() == OrderCommentType.CUSTOMERFiRST.getKey() || if (entity.getType() == OrderCommentType.CUSTOMERFiRST.getKey() ||
entity.getType() == OrderCommentType.CUSTOMERLATER.getKey()) { entity.getType() == OrderCommentType.CUSTOMERLATER.getKey()) {// 顾客新增的评价商家均未回复
entity.setIsComment(WhetherEnum.DISABLE_USING.getKey()); entity.setIsComment(WhetherEnum.DISABLE_USING.getKey());
} }
OrderItem orderItem = orderItemService.selectById(entity.getOrderItemId());
entity.setStoreId(ObjectUtil.isEmpty(orderItem) ? "" : orderItem.getStoreId());// 设置门店id
} }
@Override @Override
@ -108,6 +144,7 @@ public class OrderCommentServiceImpl extends SkyeyeBusinessServiceImpl<OrderComm
} else { } else {
orderService.updateCommonState(orderComment.getOrderId(), ShopOrderCommentState.FINISHED.getKey()); orderService.updateCommonState(orderComment.getOrderId(), ShopOrderCommentState.FINISHED.getKey());
} }
orderItemService.updateCommentStateById(orderComment.getOrderItemId());
if (orderComment.getType() == OrderCommentType.MERCHANT.getKey()) {// 商家回复时修改客户评价状态为已评价 if (orderComment.getType() == OrderCommentType.MERCHANT.getKey()) {// 商家回复时修改客户评价状态为已评价
UpdateWrapper<OrderComment> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<OrderComment> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(CommonConstants.ID, orderComment.getParentId()); updateWrapper.eq(CommonConstants.ID, orderComment.getParentId());
@ -152,23 +189,53 @@ public class OrderCommentServiceImpl extends SkyeyeBusinessServiceImpl<OrderComm
return queryWrapper; return queryWrapper;
} }
@Override private List<OrderComment> getOrderCommentListByType(String typeId, Integer type) {
public void queryOrderCommentPageList(InputObject inputObject, OutputObject outputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
String typeId = commonPageInfo.getTypeId();
Page pages = PageHelper.startPage(commonPageInfo.getPage(), commonPageInfo.getLimit());
QueryWrapper<OrderComment> queryWrapper = new QueryWrapper<>(); QueryWrapper<OrderComment> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(MybatisPlusUtil.toColumns(OrderComment::getCreateId), typeId)// 创建人id queryWrapper.eq(MybatisPlusUtil.toColumns(OrderComment::getType), type)
.or().eq(MybatisPlusUtil.toColumns(OrderComment::getMaterialId), typeId) // 商品id .and(wrap -> {
.or().eq(MybatisPlusUtil.toColumns(OrderComment::getOrderItemId), typeId)// 订单子单id wrap.eq(MybatisPlusUtil.toColumns(OrderComment::getCreateId), typeId)// 创建人id
.or().eq(MybatisPlusUtil.toColumns(OrderComment::getOrderId), typeId); // 订单id .or().eq(MybatisPlusUtil.toColumns(OrderComment::getMaterialId), typeId) // 商品id
.or().eq(MybatisPlusUtil.toColumns(OrderComment::getOrderItemId), typeId)// 订单子单id
.or().eq(MybatisPlusUtil.toColumns(OrderComment::getOrderId), typeId);// 订单id
});
List<OrderComment> list = list(queryWrapper); List<OrderComment> list = list(queryWrapper);
iMaterialService.setDataMation(list, OrderComment::getMaterialId); iMaterialService.setDataMation(list, OrderComment::getMaterialId);
iMaterialNormsService.setDataMation(list, OrderComment::getNormsId); iMaterialNormsService.setDataMation(list, OrderComment::getNormsId);
memberService.setDataMation(list, OrderComment::getCreateId); memberService.setDataMation(list, OrderComment::getCreateId);
shopStoreService.setDataMation(list, OrderComment::getStoreId); shopStoreService.setDataMation(list, OrderComment::getStoreId);
List<Map<String, Object>> mapList = JSONUtil.toList(JSONUtil.toJsonStr(list), null); return list;
}
@Override
public void queryOrderCommentPageList(InputObject inputObject, OutputObject outputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
String typeId = commonPageInfo.getTypeId();
Page pages = PageHelper.startPage(commonPageInfo.getPage(), commonPageInfo.getLimit());
List<OrderComment> customerFirst = getOrderCommentListByType(typeId, OrderCommentType.CUSTOMERFiRST.getKey());
List<OrderComment> customerLater = getOrderCommentListByType(typeId, OrderCommentType.CUSTOMERLATER.getKey());
List<OrderComment> merchantReply = getOrderCommentListByType(typeId, OrderCommentType.MERCHANT.getKey());
if (CollectionUtil.isEmpty(customerFirst)) {
return;
}
List<OrderComment> beans = setAdditionalReviewAndMerchantReply(customerFirst, customerLater, merchantReply);// 区分客户追评和商家回复
List<Map<String, Object>> mapList = JSONUtil.toList(JSONUtil.toJsonStr(beans), null);
outputObject.setBeans(mapList); outputObject.setBeans(mapList);
outputObject.settotal(pages.getTotal()); outputObject.settotal(pages.getTotal());
} }
private List<OrderComment> setAdditionalReviewAndMerchantReply(List<OrderComment> customerFirst, List<OrderComment> customerLater, List<OrderComment> merchantReply) {
Map<String, OrderComment> customerTowMap = customerLater.stream()
.filter(ObjectUtil::isEmpty).collect(Collectors.toMap(OrderComment::getParentId, o -> o));// 客户追评
Map<String, List<OrderComment>> merchantReplyMapList = merchantReply.stream()
.filter(ObjectUtil::isEmpty).collect(Collectors.groupingBy(OrderComment::getParentId));// 商家回复
for (OrderComment item : customerFirst) {
if (customerTowMap.containsKey(item.getId())) {
item.setAdditionalReview(JSONUtil.toBean(JSONUtil.toJsonStr(customerTowMap.get(item.getId())), null));
}
if (merchantReplyMapList.containsKey(item.getId())) {
item.setMerchantReply(JSONUtil.toBean(JSONUtil.toJsonStr(merchantReplyMapList.get(item.getId())), null));
}
}
return customerFirst;
}
} }

View file

@ -7,8 +7,10 @@ package com.skyeye.order.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.skyeye.annotation.service.SkyeyeService; import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl; import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.constans.CommonConstants;
import com.skyeye.common.enumeration.WhetherEnum; import com.skyeye.common.enumeration.WhetherEnum;
import com.skyeye.common.util.mybatisplus.MybatisPlusUtil; import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
import com.skyeye.erp.service.IMaterialNormsService; import com.skyeye.erp.service.IMaterialNormsService;
@ -112,4 +114,12 @@ public class OrderItemServiceImpl extends SkyeyeBusinessServiceImpl<OrderItemDao
} }
super.createEntity(order.getOrderItemList(), userId); super.createEntity(order.getOrderItemList(), userId);
} }
@Override
public void updateCommentStateById(String id){
UpdateWrapper<OrderItem> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(CommonConstants.ID, id)
.set(MybatisPlusUtil.toColumns(OrderItem::getCommentState), WhetherEnum.ENABLE_USING.getKey());
update(updateWrapper);
}
} }

View file

@ -17,6 +17,7 @@ import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl; import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.constans.CommonConstants; import com.skyeye.common.constans.CommonConstants;
import com.skyeye.common.constans.CommonNumConstants; import com.skyeye.common.constans.CommonNumConstants;
import com.skyeye.common.constans.QuartzConstants;
import com.skyeye.common.entity.search.CommonPageInfo; import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject; import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject; import com.skyeye.common.object.OutputObject;
@ -31,12 +32,15 @@ import com.skyeye.coupon.service.CouponUseMaterialService;
import com.skyeye.coupon.service.CouponUseService; import com.skyeye.coupon.service.CouponUseService;
import com.skyeye.erp.service.IMaterialNormsService; import com.skyeye.erp.service.IMaterialNormsService;
import com.skyeye.erp.service.IMaterialService; import com.skyeye.erp.service.IMaterialService;
import com.skyeye.eve.rest.quartz.SysQuartzMation;
import com.skyeye.eve.service.IAreaService; import com.skyeye.eve.service.IAreaService;
import com.skyeye.eve.service.IQuartzService;
import com.skyeye.exception.CustomException; import com.skyeye.exception.CustomException;
import com.skyeye.order.config.PayProperties; import com.skyeye.order.config.PayProperties;
import com.skyeye.order.dao.OrderDao; import com.skyeye.order.dao.OrderDao;
import com.skyeye.order.entity.Order; import com.skyeye.order.entity.Order;
import com.skyeye.order.entity.OrderItem; import com.skyeye.order.entity.OrderItem;
import com.skyeye.order.enums.ShopOrderCancelType;
import com.skyeye.order.enums.ShopOrderCommentState; import com.skyeye.order.enums.ShopOrderCommentState;
import com.skyeye.order.enums.ShopOrderState; import com.skyeye.order.enums.ShopOrderState;
import com.skyeye.order.service.OrderItemService; import com.skyeye.order.service.OrderItemService;
@ -49,6 +53,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -91,6 +97,9 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
@Autowired @Autowired
private CouponUseMaterialService couponUseMaterialService; private CouponUseMaterialService couponUseMaterialService;
@Autowired
private IQuartzService iQuartzService;
@Override @Override
public void createPrepose(Order order) { public void createPrepose(Order order) {
// 订单编号 // 订单编号
@ -131,7 +140,6 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
// 设置商品信息商品规格信息和优惠券信息 // 设置商品信息商品规格信息和优惠券信息
iMaterialNormsService.setDataMation(orderItemList, OrderItem::getNormsId); iMaterialNormsService.setDataMation(orderItemList, OrderItem::getNormsId);
iMaterialService.setDataMation(orderItemList, OrderItem::getMaterialId); iMaterialService.setDataMation(orderItemList, OrderItem::getMaterialId);
// couponUseService.setDataMation(orderItemList, OrderItem::getCouponUseId);
for (OrderItem orderItem : orderItemList) { for (OrderItem orderItem : orderItemList) {
// 获取子单单价 -> // 获取子单单价 ->
String salePrice = CalculationUtil.multiply(orderItem.getNormsMation().get("salePrice").toString(), "100"); String salePrice = CalculationUtil.multiply(orderItem.getNormsMation().get("salePrice").toString(), "100");
@ -140,8 +148,8 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
if (StrUtil.isEmpty(orderItem.getCouponUseId())) {// 没有优惠券 if (StrUtil.isEmpty(orderItem.getCouponUseId())) {// 没有优惠券
orderItem.setPayPrice(orderItem.getPrice()); orderItem.setPayPrice(orderItem.getPrice());
orderItem.setDiscountPrice("0"); orderItem.setDiscountPrice("0");
setLastValue(order, orderItem); setLastValue(order, orderItem);// 总单商品数量子单状态总单原价总单应付金额
return; continue;
} }
// 获取优惠券使用条件即满多少金额可使用 // 获取优惠券使用条件即满多少金额可使用
String usePrice = orderItem.getCouponUseMation().get("usePrice").toString(); String usePrice = orderItem.getCouponUseMation().get("usePrice").toString();
@ -179,14 +187,14 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
orderItem.setCouponPrice(discountLimitPrice); orderItem.setCouponPrice(discountLimitPrice);
} }
} }
setLastValue(order, orderItem); setLastValue(order, orderItem);// 总单商品数量子单状态总单原价总单应付金额
} }
} }
public void setLastValue(Order order, OrderItem orderItem) { public void setLastValue(Order order, OrderItem orderItem) {
order.setCount(order.getCount() + orderItem.getCount()); order.setCount(order.getCount() + orderItem.getCount());
orderItem.setCommentState(ShopOrderCommentState.UNFINISHED.getKey()); orderItem.setCommentState(ShopOrderCommentState.UNFINISHED.getKey());
order.setTotalPrice(CalculationUtil.add(order.getTotalPrice(), orderItem.getPayPrice(), CommonNumConstants.NUM_SIX)); order.setTotalPrice(CalculationUtil.add(order.getTotalPrice(), orderItem.getPrice(), CommonNumConstants.NUM_SIX));
order.setPayPrice(CalculationUtil.add(order.getPayPrice(), orderItem.getPayPrice(), CommonNumConstants.NUM_SIX)); order.setPayPrice(CalculationUtil.add(order.getPayPrice(), orderItem.getPayPrice(), CommonNumConstants.NUM_SIX));
} }
@ -205,20 +213,33 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
} }
private void checkCouponUseMaterial(Order order) { private void checkCouponUseMaterial(Order order) {
String couponUseId = order.getCouponUseId(); String couponUseId = order.getCouponUseId();//优惠券id
if (StrUtil.isEmpty(couponUseId)) { double totalPrice = Integer.parseInt(order.getTotalPrice());//总单原价
if (StrUtil.isEmpty(couponUseId)) {//没有使用优惠券
return; return;
} }
List<OrderItem> orderItemList = order.getOrderItemList(); List<OrderItem> orderItemList = order.getOrderItemList();//子单列表
CouponUse couponUse = couponUseService.selectById(couponUseId);
OrderItem orderItem = null; CouponUse couponUse = couponUseService.selectById(couponUseId);//优惠券信息
OrderItem orderItem = null;//优惠券使用商品
if (Objects.equals(couponUse.getProductScope(), PromotionMaterialScope.ALL.getKey())) {// 全部商品 if (Objects.equals(couponUse.getProductScope(), PromotionMaterialScope.ALL.getKey())) {// 全部商品
if (Objects.equals(couponUse.getDiscountType(), PromotionDiscountType.PERCENT.getKey())) {// 百分比折扣 if (Objects.equals(couponUse.getDiscountType(), PromotionDiscountType.PERCENT.getKey())) {// 百分比折扣
orderItem = orderItemList.stream().max(Comparator.comparing(OrderItem::getPrice)).orElse(null);// 获取优惠券使用商品列表中价格最高的商品 orderItem = orderItemList.stream().max(Comparator.comparing(OrderItem::getPrice)).orElse(null);// 获取优惠券使用商品列表中价格最高的商品
} else {// 满减 将优惠券使用到第一个商品 } else {// 满减 将优惠券使用到第一个商品
orderItemList.get(0).setCouponUseId(couponUseId); //卢雨佳
orderItemList.get(0).setCouponUseMation(JSONUtil.toBean(JSONUtil.toJsonStr(couponUse), null));// 设置mation方便后续计算价格 double usePrice = Integer.parseInt(couponUse.getUsePrice());//优惠券使用金额
return; if (totalPrice>= usePrice) {//商品价格大于等于优惠券使用金额
Optional<OrderItem> maxPriceItem = orderItemList.stream()
.max(Comparator.comparing(OrderItem::getPrice));//获取优惠券使用商品列表中价格最高的商品
int index = maxPriceItem
.map(item -> orderItemList.indexOf(item))
.orElse(-1);//获取最高价格商品在子单列表中的索引
orderItemList.get(index).setCouponUseId(couponUseId);
orderItemList.get(index).setCouponUseMation(JSONUtil.toBean(JSONUtil.toJsonStr(couponUse), null));// 设置mation方便后续计算价格
return;
}else {
throw new CustomException("商品价格不足以使用优惠券");
}
} }
} else if (Objects.equals(couponUse.getProductScope(), PromotionMaterialScope.SPU.getKey())) {// 指定商品 } else if (Objects.equals(couponUse.getProductScope(), PromotionMaterialScope.SPU.getKey())) {// 指定商品
List<String> couponUseMaterialIds = couponUseMaterialService.queryListByCouponIds(Collections.singletonList(couponUseId)) List<String> couponUseMaterialIds = couponUseMaterialService.queryListByCouponIds(Collections.singletonList(couponUseId))
@ -246,6 +267,22 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
public void createPostpose(Order order, String userId) { public void createPostpose(Order order, String userId) {
orderItemService.setValueAndCreateEntity(order, userId); orderItemService.setValueAndCreateEntity(order, userId);
couponUseService.updateState(order.getCouponUseId());// 更新用户领取的优惠券状态 couponUseService.updateState(order.getCouponUseId());// 更新用户领取的优惠券状态
// startUpTaskQuartz(order.getId(), order.getOddNumber(), DateUtil.getTimeAndToString());
}
private void startUpTaskQuartz(String name, String title, String delayedTime) {
/// 处理日期 此处delayedTime为当前日期
Date stringToDate = DateUtil.getPointTime(delayedTime, DateUtil.YYYY_MM_DD_HH_MM_SS);
Date afterOneDay = DateUtil.getAfDate(stringToDate, 1, "d");
DateFormat df = new SimpleDateFormat(DateUtil.YYYY_MM_DD_HH_MM_SS);
String lastTime = df.format(afterOneDay);
// 正式准备启动定时任务
SysQuartzMation sysQuartzMation = new SysQuartzMation();
sysQuartzMation.setName(name);
sysQuartzMation.setTitle(title);
sysQuartzMation.setDelayedTime(lastTime);
sysQuartzMation.setGroupId(QuartzConstants.QuartzMateMationJobType.SHOP_ORDER_CREATE.getTaskType());
iQuartzService.startUpTaskQuartz(sysQuartzMation);
} }
@Override @Override
@ -299,6 +336,7 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
Map<String, List<OrderItem>> mapByIds = orderItemService.queryListByParentId(idList); Map<String, List<OrderItem>> mapByIds = orderItemService.queryListByParentId(idList);
for (Order order : list) { for (Order order : list) {
order.setOrderItemList(mapByIds.containsKey(order.getId()) ? mapByIds.get(order.getId()) : new ArrayList<>()); order.setOrderItemList(mapByIds.containsKey(order.getId()) ? mapByIds.get(order.getId()) : new ArrayList<>());
pennyToYuan(order);// ->
} }
iAreaService.setDataMation(list, Order::getProvinceId); iAreaService.setDataMation(list, Order::getProvinceId);
iAreaService.setDataMation(list, Order::getCityId); iAreaService.setDataMation(list, Order::getCityId);
@ -361,6 +399,7 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
Map<String, List<OrderItem>> mapByIds = orderItemService.queryListByParentId(idList); Map<String, List<OrderItem>> mapByIds = orderItemService.queryListByParentId(idList);
for (Order order : list) { for (Order order : list) {
order.setOrderItemList(mapByIds.containsKey(order.getId()) ? mapByIds.get(order.getId()) : new ArrayList<>()); order.setOrderItemList(mapByIds.containsKey(order.getId()) ? mapByIds.get(order.getId()) : new ArrayList<>());
pennyToYuan(order);// ->
} }
iAreaService.setDataMation(list, Order::getProvinceId); iAreaService.setDataMation(list, Order::getProvinceId);
iAreaService.setDataMation(list, Order::getCityId); iAreaService.setDataMation(list, Order::getCityId);
@ -412,9 +451,34 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
iAreaService.setDataMation(order, Order::getAreaId); iAreaService.setDataMation(order, Order::getAreaId);
iAreaService.setDataMation(order, Order::getTownshipId); iAreaService.setDataMation(order, Order::getTownshipId);
shopAddressService.setDataMation(order, Order::getAddressId); shopAddressService.setDataMation(order, Order::getAddressId);
pennyToYuan(order);// ->
return order; return order;
} }
private void pennyToYuan(Order order) {// ->
if (ObjectUtil.isEmpty(order)) {
return;
}
order.setTotalPrice(StrUtil.isEmpty(order.getTotalPrice()) ? "0" : CalculationUtil.divide(order.getTotalPrice(), "100", CommonNumConstants.NUM_SIX));
order.setDiscountPrice(StrUtil.isEmpty(order.getDiscountPrice()) ? "0" : CalculationUtil.divide(order.getDiscountPrice(), "100", CommonNumConstants.NUM_SIX));
order.setDeliveryPrice(StrUtil.isEmpty(order.getDeliveryPrice()) ? "0" : CalculationUtil.divide(order.getDeliveryPrice(), "100", CommonNumConstants.NUM_SIX));
order.setAdjustPrice(StrUtil.isEmpty(order.getAdjustPrice()) ? "0" : CalculationUtil.divide(order.getAdjustPrice(), "100", CommonNumConstants.NUM_SIX));
order.setPayPrice(StrUtil.isEmpty(order.getPayPrice()) ? "0" : CalculationUtil.divide(order.getPayPrice(), "100", CommonNumConstants.NUM_SIX));
order.setCouponPrice(StrUtil.isEmpty(order.getCouponPrice()) ? "0" : CalculationUtil.divide(order.getCouponPrice(), "100", CommonNumConstants.NUM_SIX));
order.setPointPrice(StrUtil.isEmpty(order.getPointPrice()) ? "0" : CalculationUtil.divide(order.getPointPrice(), "100", CommonNumConstants.NUM_SIX));
order.setVipPrice(StrUtil.isEmpty(order.getVipPrice()) ? "0" : CalculationUtil.divide(order.getVipPrice(), "100", CommonNumConstants.NUM_SIX));
for (OrderItem orderItem : order.getOrderItemList()) {
orderItem.setPrice(StrUtil.isEmpty(orderItem.getPrice()) ? "0" : CalculationUtil.divide(orderItem.getPrice(), "100", CommonNumConstants.NUM_SIX));
orderItem.setDiscountPrice(StrUtil.isEmpty(orderItem.getDiscountPrice()) ? "0" : CalculationUtil.divide(orderItem.getDiscountPrice(), "100", CommonNumConstants.NUM_SIX));
orderItem.setDeliveryPrice(StrUtil.isEmpty(orderItem.getDeliveryPrice()) ? "0" : CalculationUtil.divide(orderItem.getDeliveryPrice(), "100", CommonNumConstants.NUM_SIX));
orderItem.setAdjustPrice(StrUtil.isEmpty(orderItem.getAdjustPrice()) ? "0" : CalculationUtil.divide(orderItem.getAdjustPrice(), "100", CommonNumConstants.NUM_SIX));
orderItem.setPayPrice(StrUtil.isEmpty(orderItem.getPayPrice()) ? "0" : CalculationUtil.divide(orderItem.getPayPrice(), "100", CommonNumConstants.NUM_SIX));
orderItem.setCouponPrice(StrUtil.isEmpty(orderItem.getCouponPrice()) ? "0" : CalculationUtil.divide(orderItem.getCouponPrice(), "100", CommonNumConstants.NUM_SIX));
orderItem.setPointPrice(StrUtil.isEmpty(orderItem.getPointPrice()) ? "0" : CalculationUtil.divide(orderItem.getPointPrice(), "100", CommonNumConstants.NUM_SIX));
orderItem.setVipPrice(StrUtil.isEmpty(orderItem.getVipPrice()) ? "0" : CalculationUtil.divide(order.getVipPrice(), "100", CommonNumConstants.NUM_SIX));
}
}
@Override @Override
public void cancelOrder(InputObject inputObject, OutputObject outputObject) { public void cancelOrder(InputObject inputObject, OutputObject outputObject) {
Map<String, Object> params = inputObject.getParams(); Map<String, Object> params = inputObject.getParams();
@ -488,6 +552,7 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
updateWrapper.set(MybatisPlusUtil.toColumns(Order::getExtensionNo), payOrderRespDTO.get("no").toString()); updateWrapper.set(MybatisPlusUtil.toColumns(Order::getExtensionNo), payOrderRespDTO.get("no").toString());
update(updateWrapper); update(updateWrapper);
refreshCache(id); refreshCache(id);
iQuartzService.stopAndDeleteTaskQuartz(id);// 删除定时任务
} }
@Override @Override
@ -533,4 +598,15 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl<OrderDao, Order>
outputObject.setBean(qrCodeResult); outputObject.setBean(qrCodeResult);
outputObject.settotal(CommonNumConstants.NUM_ONE); outputObject.settotal(CommonNumConstants.NUM_ONE);
} }
@Override
public void setOrderCancle(String orderId) {
UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(CommonConstants.ID, orderId);
updateWrapper.set(MybatisPlusUtil.toColumns(Order::getState), ShopOrderState.CANCELED.getKey())
.set(MybatisPlusUtil.toColumns(Order::getCancelType), ShopOrderCancelType.PAY_TIMEOUT.getKey())
.set(MybatisPlusUtil.toColumns(Order::getCancelTime), DateUtil.getTimeAndToString());
update(updateWrapper);
refreshCache(orderId);
}
} }

View file

@ -13,6 +13,7 @@ import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField; import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.constans.RedisConstants; import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.AreaInfo; import com.skyeye.common.entity.features.AreaInfo;
import com.skyeye.common.enumeration.WhetherEnum;
import lombok.Data; import lombok.Data;
import java.util.Map; import java.util.Map;
@ -52,6 +53,6 @@ public class ShopAddress extends AreaInfo {
private Map<String, Object> labelMation; private Map<String, Object> labelMation;
@TableField("is_default") @TableField("is_default")
@ApiModelProperty(value = "是否是默认地址,参考#WhetherEnum", required = "required,num") @ApiModelProperty(value = "是否是默认地址", required = "required,num", enumClass = WhetherEnum.class)
private Integer isDefault; private Integer isDefault;
} }

View file

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel; import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty; import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.common.entity.features.OperatorUserInfo; import com.skyeye.common.entity.features.OperatorUserInfo;
import com.skyeye.common.enumeration.WhetherEnum;
import lombok.Data; import lombok.Data;
import java.util.Map; import java.util.Map;
@ -64,6 +65,6 @@ public class ShopTradeCart extends OperatorUserInfo {
private Integer count; private Integer count;
@TableField("selected") @TableField("selected")
@ApiModelProperty(value = "是否选中,参考#WhetherEnum", required = "required,num") @ApiModelProperty(value = "是否选中", required = "required,num",enumClass = WhetherEnum.class)
private Integer selected; private Integer selected;
} }

View file

@ -10,6 +10,7 @@ import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty; import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property; import com.skyeye.annotation.api.Property;
import com.skyeye.common.entity.features.BaseGeneralInfo; import com.skyeye.common.entity.features.BaseGeneralInfo;
import com.skyeye.common.enumeration.WhetherEnum;
import lombok.Data; import lombok.Data;
import java.util.Map; import java.util.Map;
@ -36,7 +37,7 @@ public class StoreType extends BaseGeneralInfo {
private Integer orderBy; private Integer orderBy;
@TableField("enabled") @TableField("enabled")
@ApiModelProperty(value = "启用状态1是0否,参考#WhetherEnum", required = "required") @ApiModelProperty(value = "启用状态1是0否", required = "required", enumClass = WhetherEnum.class)
private Integer enabled; private Integer enabled;
@TableField(value = "store_id") @TableField(value = "store_id")

View file

@ -8,6 +8,7 @@ import cn.hutool.json.JSONUtil;
import com.skyeye.coupon.service.CouponService; import com.skyeye.coupon.service.CouponService;
import com.skyeye.coupon.service.CouponUseService; import com.skyeye.coupon.service.CouponUseService;
import com.skyeye.eve.service.IQuartzService; import com.skyeye.eve.service.IQuartzService;
import com.skyeye.order.service.OrderService;
import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -32,6 +33,9 @@ public class ShopXxlJob {
@Autowired @Autowired
private CouponUseService couponUseService; private CouponUseService couponUseService;
@Autowired
private OrderService orderService;
@Autowired @Autowired
private IQuartzService iQuartzService; private IQuartzService iQuartzService;
@ -54,4 +58,13 @@ public class ShopXxlJob {
couponUseService.setCouponUseStateByTerm(userId, couponUseId);// 修改领取的优惠券的状态 couponUseService.setCouponUseStateByTerm(userId, couponUseId);// 修改领取的优惠券的状态
iQuartzService.stopAndDeleteTaskQuartz(couponUseId);// 删除任务 iQuartzService.stopAndDeleteTaskQuartz(couponUseId);// 删除任务
} }
@XxlJob("createOrderNotPay")
public void createOrderNotPay() {
String param = XxlJobHelper.getJobParam();
Map<String, String> paramMap = JSONUtil.toBean(param, null);
String orderId = paramMap.get("objectId");// 订单的主键id
orderService.setOrderCancle(orderId);// 修改订单的状态为取消
iQuartzService.stopAndDeleteTaskQuartz(orderId);// 删除任务
}
} }