增加一些接口

beetlsql3-dev
Mlxa0324 2 years ago
parent efa768d64c
commit a9952cffb3

@ -11,11 +11,15 @@ import com.ibeetl.admin.core.enums.MenuEnums;
import com.ibeetl.admin.core.rbac.UserLoginInfo;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.util.enums.DelFlagEnum;
import com.ibeetl.admin.core.util.enums.GeneralStateEnum;
import org.beetl.sql.core.SQLManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@ -23,9 +27,10 @@ import static com.ibeetl.admin.core.util.enums.GeneralStateEnum.ENABLE;
@Service
@Transactional
@Validated
public class CoreUserService {
@Autowired
CoreUserDao userDao ;
CoreUserDao coreUserDao;
@Autowired
CoreOrgDao orgDao;
@ -40,7 +45,7 @@ public class CoreUserService {
query.setCode(userName);
query.setPassword(passwordEncryptService.password(password));
query.setState(ENABLE.getValue());
CoreUser user =userDao.createLambdaQuery().andEq(CoreUser::getCode,userName).
CoreUser user = coreUserDao.createLambdaQuery().andEq(CoreUser::getCode,userName).
andEq(CoreUser::getPassword, passwordEncryptService.password(password))
.andEq(CoreUser::getState, ENABLE.getValue()).single();
if(user==null) {
@ -74,7 +79,7 @@ public class CoreUserService {
Assert.isTrue(ObjectUtil.isAllNotEmpty(userCode, password, orgId, jobType0, jobType1), "所有参数均为必传!");
// 判断用户Code唯一
Boolean isNotExist = userDao.createLambdaQuery().andEq(CoreUser::getCode,userCode).count() == 0;
Boolean isNotExist = coreUserDao.createLambdaQuery().andEq(CoreUser::getCode,userCode).count() == 0;
Assert.isTrue(isNotExist, "用户Code重复");
CoreUser user = new CoreUser();
@ -86,9 +91,8 @@ public class CoreUserService {
user.setDelFlag(0);
user.setJobType0(jobType0.name());
user.setJobType1(jobType1.name());
user.setState(ENABLE.getValue());
user.setOrgId(orgId);
userDao.insert(user);
coreUserDao.insert(user);
return user.getId();
}
@ -103,17 +107,17 @@ public class CoreUserService {
}
public List<CoreUser> getAllUsersByRole(String role){
return userDao.getUserByRole(role);
return coreUserDao.getUserByRole(role);
}
public CoreUser getUserByCode(String userName){
CoreUser user = new CoreUser();
user.setCode(userName);
return userDao.templateOne(user);
return coreUserDao.templateOne(user);
}
public void update(CoreUser user){
userDao.updateById(user);
coreUserDao.updateById(user);
}
public CoreOrg getOrgById(Long orgId){
@ -121,7 +125,7 @@ public class CoreUserService {
}
public CoreUser getUserById(Long userId){
return userDao.unique(userId);
return coreUserDao.unique(userId);
}
public List<String> getOrgCode(List<Long> orgIds){
@ -129,7 +133,34 @@ public class CoreUserService {
}
public List<CoreUser> getCoreUserList(CoreUser coreUser){
return userDao.template(coreUser);
return coreUserDao.template(coreUser);
}
/**
*
* @return
*/
public Boolean verifyPwd(@NotBlank(message = "待验证的密码不能为空!") String pwd, @NotNull(message = "用户ID不能为空") Long userId) {
CoreUser user = new CoreUser();
user.setId(userId);
user.setState(GeneralStateEnum.ENABLE.getValue());
user.setDelFlag(DelFlagEnum.NORMAL.getValue());
CoreUser coreUser = coreUserDao.templateOne(user);
return coreUser.getPassword().equals(passwordEncryptService.password(pwd));
}
/**
*
* @return
*/
public Boolean editPwdByOld(@NotBlank(message = "旧密码不能为空!") String oldPwd,
@NotBlank(message = "新密码不能为空!") String newPwd,
@NotNull(message = "用户ID不能为空") Long userId) {
Assert.isTrue(verifyPwd(oldPwd, userId), "旧密码验证失败!");
CoreUser entity = new CoreUser();
entity.setId(userId);
entity.setPassword(newPwd);
return coreUserDao.updateTemplateById(entity) > 0;
}
/**

@ -1,5 +1,6 @@
package com.ibeetl.admin.core.web;
import cn.hutool.core.bean.BeanUtil;
import com.ibeetl.admin.core.conf.PasswordConfig.PasswordEncryptService;
import com.ibeetl.admin.core.dao.CoreUserRoleDao;
import com.ibeetl.admin.core.entity.CoreOrg;
@ -25,11 +26,14 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
@Controller
@SuppressWarnings("unchecked")
public class CoreUserController {
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/core/user";
private static final String API = "/api/core/user";
@Autowired
CorePlatformService platformService;
@ -125,7 +129,30 @@ public class CoreUserController {
} else {
return JsonResult.failMessage("密码错误");
}
}
/**
*
*
* @param coreUser
* @return
*/
@PostMapping(API + "/edit.do")
@ResponseBody
public JsonResult edit(CoreUser coreUser) {
// 获取当前登录用户
CoreUser user = getUser();
// 禁止修改的一些属性,先给去掉
coreUser.setCode(null);
coreUser.setJobType0(null);
coreUser.setJobType1(null);
coreUser.setId(null);
BeanUtil.copyProperties(coreUser, user);
user.setPassword(passwordEncryptService.password(coreUser.getPassword()));
userService.update(user);
return JsonResult.success();
}
/**

@ -1,8 +1,8 @@
package com.ibeetl.jlw.dao;
import com.ibeetl.jlw.entity.ResourcesQuestionSnapshot;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionTestSimpleInfo;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestDetailVO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestSimpleInfoVO;
import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.mapper.BaseMapper;
@ -30,10 +30,10 @@ public interface ResourcesQuestionSnapshotDao extends BaseMapper<ResourcesQuesti
/**
*
* @param snapshotFromId
* @param query
* @return
*/
TeacherOpenCourseQuestionTestSimpleInfo getQuestionTestSimpleInfo(Long snapshotFromId);
PageQuery<TeacherOpenCourseQuestionTestSimpleInfoVO> getQuestionTestSimpleInfo(PageQuery query);
/**
*

@ -27,6 +27,7 @@ public interface TeacherOpenCourseQuestionLogDao extends BaseMapper<TeacherOpenC
int updateGivenByIds(TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery);
List<TeacherOpenCourseQuestionLog> getByIds(String ids);
List<TeacherOpenCourseQuestionLog> getValuesByQuery(TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery);
List<TeacherOpenCourseQuestionLog> getValuesByQueryNotWithPermission(TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery);
PageQuery<TeacherOpenCourseQuestionLog> studentScoreList(PageQuery query);

@ -0,0 +1,33 @@
package com.ibeetl.jlw.entity.dto;
import cn.jlw.validate.ValidateConfig;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.ibeetl.admin.core.web.query.PageParam;
import lombok.*;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
/**
*
*
*
* @author mlx
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(callSuper=false)
public class TeacherOpenCourseQuestionTestSimpleInfoDTO extends PageParam {
/**
* ID
*/
@NotNull(message = "题目配置ID不能为空", groups = ValidateConfig.ADD.class)
private Long questionSettingId;
}

@ -1,4 +1,4 @@
package com.ibeetl.jlw.entity;
package com.ibeetl.jlw.entity.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -10,7 +10,7 @@ import lombok.EqualsAndHashCode;
*/
@Data
@EqualsAndHashCode(callSuper=false)
public class TeacherOpenCourseQuestionTestSimpleInfo {
public class TeacherOpenCourseQuestionTestSimpleInfoVO {
//开课题目配置ID

@ -16,6 +16,7 @@ import com.ibeetl.jlw.dao.TeacherOpenCourseMergeResourcesQuestionDao;
import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.entity.dto.TeacherOpenCourseQuestionSettingDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestDetailVO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestSimpleInfoVO;
import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery;
import lombok.extern.slf4j.Slf4j;
@ -462,12 +463,11 @@ public class ResourcesQuestionSnapshotService extends CoreBaseService<ResourcesQ
/**
*
* @param questionSettingId ID
* @param query ID
* @return
*/
public TeacherOpenCourseQuestionTestSimpleInfo getQuestionTestSimpleInfo(
@NotNull(message = "开课题目配置ID不能为空") final Long questionSettingId) {
return resourcesQuestionSnapshotDao.getQuestionTestSimpleInfo(questionSettingId);
public PageQuery<TeacherOpenCourseQuestionTestSimpleInfoVO> getQuestionTestSimpleInfo(PageQuery query) {
return resourcesQuestionSnapshotDao.getQuestionTestSimpleInfo(query);
}
/**
@ -491,16 +491,6 @@ public class ResourcesQuestionSnapshotService extends CoreBaseService<ResourcesQ
return null;
}
/**
*
*
* @param questionSettingId ID
* @return
*/
public Object questionManagement(@NotNull(message = "开课题目配置ID不能为空") final Long questionSettingId) {
return null;
}
/**
* @param teacherOpenCourseIds
* @param chapterIds

@ -1,5 +1,9 @@
package com.ibeetl.jlw.service;
import cn.hutool.core.lang.Assert;
import cn.hutool.extra.validation.BeanValidationResult;
import cn.hutool.extra.validation.ValidationUtil;
import cn.hutool.json.JSONUtil;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@ -103,6 +107,31 @@ public class TeacherOpenCourseChatLogService extends CoreBaseService<TeacherOpen
return jsonResult;
}
/**
* -
*
* @param teacherOpenCourseChatLogQuery
* @param type
* @return
*/
public JsonResult addByType(@NotNull TeacherOpenCourseChatLogQuery teacherOpenCourseChatLogQuery, @NotNull Integer type) {
Boolean isTeacherAdding = type.equals(1);
// 验证
BeanValidationResult validationResult = ValidationUtil
.warpValidate(teacherOpenCourseChatLogQuery, isTeacherAdding ? TeacherOpenCourseChatLogQuery.TEACHER_ADD.class : TeacherOpenCourseChatLogQuery.STUDENT_ADD.class);
Assert.isTrue(validationResult.isSuccess(), JSONUtil.toJsonStr(validationResult.getErrorMessages()));
// 教师身份添加上级ID为0
if(isTeacherAdding) {
teacherOpenCourseChatLogQuery.setTeacherOpenCourseChatLogParentId(0L);
}
if(null == teacherOpenCourseChatLogQuery.getTeacherOpenCourseChatLogStatus()){
teacherOpenCourseChatLogQuery.setTeacherOpenCourseChatLogStatus(1);
}
return add(teacherOpenCourseChatLogQuery);
}
public String edit(TeacherOpenCourseChatLogQuery teacherOpenCourseChatLogQuery){
String msg = "";
TeacherOpenCourseChatLog teacherOpenCourseChatLog = teacherOpenCourseChatLogQuery.pojo();

@ -5,11 +5,9 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ReUtil;
import cn.jlw.util.EnumUtil;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.web.JsonResult;
@ -21,7 +19,6 @@ import com.ibeetl.jlw.entity.ResourcesQuestionSnapshot;
import com.ibeetl.jlw.entity.Student;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionSetting;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery;
@ -42,10 +39,7 @@ import java.math.BigDecimal;
import java.util.*;
import static cn.hutool.core.util.ArrayUtil.join;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUserId;
import static com.ibeetl.jlw.entity.ResourcesQuestionOptionEntity.shuffleOrderOptions;
import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.CHAPTER_EXERCISE;
import static java.util.stream.Collectors.groupingBy;
/**
@ -65,6 +59,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
@Autowired @Lazy
private TeacherOpenCourseQuestionSettingService teacherOpenCourseQuestionSettingSettingService;
@Autowired private TeacherOpenCourseQuestionLogWrongService teacherOpenCourseQuestionLogWrongService;
@Autowired private TeacherOpenCourseQuestionSettingService teacherOpenCourseQuestionSettingService;
public PageQuery<TeacherOpenCourseQuestionLog>queryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseQuestionLogDao.queryByCondition(query);
@ -247,6 +242,23 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
insertBatch(list);
}
/**
* -
*
* @param teacherOpenCourseQuestionLogIds IDs
* @param score
*/
public void manualModifyQuestionScores(@NotNull(message = "题目做题日志ID不能为空") final String teacherOpenCourseQuestionLogIds, @NotEmpty final BigDecimal score) {
TeacherOpenCourseQuestionLogQuery teacherOpenCourseQuestionLogQuery = new TeacherOpenCourseQuestionLogQuery();
teacherOpenCourseQuestionLogQuery.setTeacherOpenCourseQuestionLogIdPlural(teacherOpenCourseQuestionLogIds);
teacherOpenCourseQuestionLogQuery.setTeacherOpenCourseQuestionLogStatus(1);
List<TeacherOpenCourseQuestionLog> updateList = teacherOpenCourseQuestionLogDao.getValuesByQueryNotWithPermission(teacherOpenCourseQuestionLogQuery);
// 批量更新分数
updateList.forEach(questionLog -> questionLog.setQuestionScore(score));
updateBatchTemplate(updateList);
}
/**
*
*
@ -255,15 +267,59 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
* @param questionSettingId ID
*/
public void insertQuestionLog(
@NotEmpty(message = "请上传题目快照ID和答案") Map<Long, TreeSet<String>> questionLogMap,
@NotEmpty(message = "请上传题目快照ID和答案") Map<String, TreeSet<String>> questionLogMap,
@NotNull(message = "开课题目配置ID不能为空") final Long questionSettingId) {
// 查询学生身份
final Student student = studentDao.getByUserId(getUserId());
TeacherOpenCourseQuestionSetting info = teacherOpenCourseQuestionSettingService.getInfo(questionSettingId);
switch(info.getTeacherOpenCourseQuestionSettingType()) {
case HOMEWORK_FILE: {
addFileRelatedLog(join(questionLogMap.values().toArray(), ","), questionSettingId, student);
} break;
// 这些都和题目相关,暂时先放在一个方法
case CHAPTER_EXERCISE:
case EXAM:
case HOMEWORK_QUESTION:{
addQuestionRelatedLog(questionLogMap, questionSettingId, student);
} break;
}
}
/**
*
*
*
* @param absFilePath
* @param questionSettingId
* @param student
*/
private void addFileRelatedLog(@NotBlank(message = "上传的附件不能为空!") String absFilePath, Long questionSettingId, Student student) {
TeacherOpenCourseQuestionLogQuery query = new TeacherOpenCourseQuestionLogQuery();
query.setTeacherOpenCourseQuestionLogUploadFile(absFilePath);
query.setTeacherOpenCourseQuestionSettingId(questionSettingId);
query.setTeacherOpenCourseQuestionLogStatus(1);
query.setOrgId(student.getOrgId());
query.setUserId(student.getUserId());
query.setStudentId(student.getStudentId());
add(query);
}
/**
*
*
*
* @param questionLogMap
* @param questionSettingId
* @param student
*/
private void addQuestionRelatedLog(Map<String, TreeSet<String>> questionLogMap, Long questionSettingId, Student student) {
// 查询符合条件的日志表
String questionSnapshotIds = join(questionLogMap.keySet().toArray(), ",");
// 做题思路先从开课QuestionSetting表中生成题目日志到开课QuestionLog中学生这个时候提交答案再修改日志中的结果。
// 查询条件
TeacherOpenCourseQuestionLogQuery questionLogQuery = TeacherOpenCourseQuestionLogQuery.builder()
.resourcesQuestionSnapshotIdPlural(questionSnapshotIds)
@ -278,110 +334,22 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
logList.forEach(questionLog -> {
// 学生提交的答案
String answersText = join(questionLogMap.get(questionLog.getResourcesQuestionSnapshotId()).toArray(), ",");
// 包含/字符,代表是路径地址,是附件类型
if(answersText.startsWith("/")) {
questionLog.setTeacherOpenCourseQuestionLogUploadFile(answersText);
}
// 否则就是普通选择题的答案
else {
questionLog.setTeacherOpenCourseQuestionLogAnswer(answersText);
}
questionLog.setTeacherOpenCourseQuestionLogAnswer(answersText);
// 是否是正确答案
Boolean isCorrectAnswer = questionLog.getQuestionAnswer().equalsIgnoreCase(answersText);
// 计算该题目学生的得分情况
questionLog.setStudentScore(isCorrectAnswer ? questionLog.getQuestionScore() : BigDecimal.valueOf(0));
});
// 学生做的题目的答案与日志关联
updateBatchTemplate(logList);
// 批量插入错题集,方法内部自带判断
// 批量插入错题集,方法内部自带分数判断
teacherOpenCourseQuestionLogWrongService.insertBatchByQuestionLogList(logList);
}
/**
*
*
* @param teacherOpenCourseQuestionSettingId ID
* @param fromTypeEnum
* @return
*/
public List<ResourcesQuestionSnapshot> questionDetail(@NotNull(message = "题目配置ID不能为空") final Long teacherOpenCourseQuestionSettingId,
@NotNull(message = "类型不能为空!") ResourcesQuestionSnapshotFromTypeEnum fromTypeEnum) {
// 获取学生ID
CoreUser coreUser = getUser();
final Student student = studentDao.getByUserId(coreUser.getId());
// 常量 True的Integer表现
final Integer TRUE_CONST = 1;
List<ResourcesQuestionSnapshot> resourcesQuestionSnapshots = new ArrayList<>();
TeacherOpenCourseQuestionSetting homework = teacherOpenCourseQuestionSettingSettingService.getInfo(teacherOpenCourseQuestionSettingId);
Assert.notNull(homework, "未查询到来源ID对应的题目");
TeacherOpenCourseQuestionSettingQuery settingQuery = new TeacherOpenCourseQuestionSettingQuery();
settingQuery.setTeacherOpenCourseQuestionSettingId(teacherOpenCourseQuestionSettingId);
TeacherOpenCourseQuestionSetting hwSetting = teacherOpenCourseQuestionSettingSettingService.getInfo(settingQuery);
ResourcesQuestionSnapshotQuery questionSnapshotQuery = new ResourcesQuestionSnapshotQuery();
questionSnapshotQuery.setTeacherOpenCourseQuestionSettingId(teacherOpenCourseQuestionSettingId);
// 章节练习,则跳过次数验证
if (!EnumUtil.contains(fromTypeEnum, CHAPTER_EXERCISE)) {
// 作答次数
Integer teacherOpenCourseQuestionSettingSettingDoCount = hwSetting.getTeacherOpenCourseQuestionSettingDoCount();
Assert.isTrue(teacherOpenCourseQuestionSettingSettingDoCount > 1, "作答次数设置有误,请联系管理员!");
// 数据库查询该学生已经做过的次数
TeacherOpenCourseQuestionLog teacherOpenCourseQuestionLog = new TeacherOpenCourseQuestionLog();
teacherOpenCourseQuestionLog.setStudentId(student.getStudentId());
long doCount = teacherOpenCourseQuestionLogDao.templateCount(teacherOpenCourseQuestionLog);
// 断言判断最大作答次数
Assert.isTrue(doCount < teacherOpenCourseQuestionSettingSettingDoCount, "已超过最大作答次数!");
}
// 答卷后显示答案解析
if (TRUE_CONST.equals(hwSetting.getTeacherOpenCourseQuestionSettingEndShowQa())) {
// TODO 逻辑不要在这里写
/** 实现 {@link TeacherOpenCourseQuestionLogService#questionAnalysis(TreeSet)} */
}
// 答卷后显示答案对错
if (TRUE_CONST.equals(hwSetting.getTeacherOpenCourseQuestionSettingEndShowTrueFalse())) {
// TODO 逻辑不要在这里写
/** 实现 {@link TeacherOpenCourseQuestionLogService#questionAnalysis(TreeSet)} */
}
// 题目乱序(同一大题内)
if (TRUE_CONST.equals(hwSetting.getTeacherOpenCourseQuestionSettingQuestionNoOrder())) {
questionSnapshotQuery.setRand(true);
}
// 题目查询
resourcesQuestionSnapshots = resourcesQuestionSnapshotDao.getValuesByQuery(questionSnapshotQuery);
// 选项乱序(限单选、多选)
if (TRUE_CONST.equals(hwSetting.getTeacherOpenCourseQuestionSettingOptionNoOrder())) {
// 单题选项排序处理
resourcesQuestionSnapshots.forEach(value -> {
shuffleOrderOptions(value, "questionAnswer","questionOption", true);
});
}
// 学生身份屏蔽答案,且记录在做题日志表中
if (coreUser.isStudent()) {
// 做题日志关联学生, 初步提交做题日志信息,不包含学生提交的答案和得分情况
preSubmitStudentQuestionLog(student.getStudentId(), teacherOpenCourseQuestionSettingId, resourcesQuestionSnapshots);
// 学生身份,需要屏蔽答案,再丢给前端
resourcesQuestionSnapshots.forEach(ResourcesQuestionSnapshot::hideAnswer);
}
return resourcesQuestionSnapshots;
}
/**
* ID
*
@ -397,6 +365,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
// teacherOpenCourseQuestionSettingId类似试卷ID题目日志里会出现重复的试卷ID
// 逻辑删除之前的题目日志,防止学生做题统计数据异常
// 保证试卷是最新的
logicDeleteTeacherOpenCourseQuestionLogBySettingIds(String.valueOf(teacherOpenCourseQuestionSettingId));
// 断言
@ -418,16 +387,36 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
}
/**
* -
* @param questionSnapshotIds
* ID
*
* @param questionSettingId
* @return
*/
public Map<Long, List<ResourcesQuestionSnapshot>> questionAnalysis(@NotEmpty(message = "请上传题目快照ID和答案") final TreeSet<Long> questionSnapshotIds) {
public Map<Integer, List<ResourcesQuestionSnapshot>> questionAnalysis(@NotNull(message = "题目配置ID不能为空") Long questionSettingId) {
ResourcesQuestionSnapshotQuery resourcesQuestionSnapshotQuery = new ResourcesQuestionSnapshotQuery();
resourcesQuestionSnapshotQuery.setTeacherOpenCourseQuestionSettingId(questionSettingId);
resourcesQuestionSnapshotQuery.setQuestionStatus(1);
List<ResourcesQuestionSnapshot> valuesByQuery = resourcesQuestionSnapshotDao.getValuesByQuery(resourcesQuestionSnapshotQuery);
return questionAnalysis(valuesByQuery);
}
// 查询题目快照列表
List<ResourcesQuestionSnapshot> questionSnapshots = resourcesQuestionSnapshotDao.getByIds(join(questionSnapshotIds.toArray(), ","));
/**
* ID
*
* @param questionSnapshotIds
* @return
*/
public Map<Integer, List<ResourcesQuestionSnapshot>> questionAnalysis(@NotNull(message = "题目配置ID不能为空") TreeSet<Long> questionSnapshotIds) {
List<ResourcesQuestionSnapshot> valuesByQuery = resourcesQuestionSnapshotDao.getByIds(join(questionSnapshotIds.toArray(), ","));
return questionAnalysis(valuesByQuery);
}
Assert.notEmpty(questionSnapshots, "未查询到题目列表!");
/**
* -
* @param questionSnapshots
* @return
*/
public Map<Integer, List<ResourcesQuestionSnapshot>> questionAnalysis(@NotEmpty(message = "未查询到题目列表!") final List<ResourcesQuestionSnapshot> questionSnapshots) {
TeacherOpenCourseQuestionSettingQuery settingQuery = new TeacherOpenCourseQuestionSettingQuery();
settingQuery.setTeacherOpenCourseQuestionSettingId(questionSnapshots.get(0).getTeacherOpenCourseQuestionSettingId());
@ -444,7 +433,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
resourcesQuestionSnapshot.setQuestionAnswer(isEndShowQa ? item.getQuestionAnswer() : "");
resourcesQuestionSnapshot.setQuestionAnalysis(isEndShowTrueFalse ? item.getQuestionAnalysis(): "");
return resourcesQuestionSnapshot;
}).collect(groupingBy(ResourcesQuestionSnapshot::getResourcesQuestionSnapshotId));
}).collect(groupingBy(ResourcesQuestionSnapshot::getQuestionType));
}
/**

@ -1,22 +1,30 @@
package com.ibeetl.jlw.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.func.Func1;
import cn.hutool.core.util.ObjectUtil;
import cn.jlw.util.EnumUtil;
import cn.jlw.util.ToolUtils;
import cn.jlw.validate.ValidateConfig;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreBaseService;
import com.ibeetl.admin.core.util.PlatformException;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.admin.core.web.JsonReturnCode;
import com.ibeetl.jlw.dao.ResourcesQuestionSnapshotDao;
import com.ibeetl.jlw.dao.StudentDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionLogDao;
import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionSettingDao;
import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.entity.dto.TeacherOpenCourseQuestionSettingDTO;
import com.ibeetl.jlw.enums.CopyFromEnum;
import com.ibeetl.jlw.enums.GlobalPushStatusEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionTypeEnum;
import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeCourseInfoQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery;
@ -36,7 +44,11 @@ import java.util.*;
import java.util.stream.Collectors;
import static cn.hutool.core.text.CharSequenceUtil.join;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
import static com.ibeetl.jlw.entity.ResourcesQuestionOptionEntity.shuffleOrderOptions;
import static com.ibeetl.jlw.enums.GlobalPushStatusEnum.UN_PUSH;
import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.CHAPTER_EXERCISE;
import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.HOMEWORK_FILE;
import static java.util.stream.Collectors.joining;
/**
@ -50,6 +62,9 @@ import static java.util.stream.Collectors.joining;
public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<TeacherOpenCourseQuestionSetting> implements DeleteResourcesBy{
@Autowired private TeacherOpenCourseQuestionSettingDao teacherOpenCourseQuestionSettingDao;
@Autowired private ResourcesQuestionSnapshotDao resourcesQuestionSnapshotDao;
@Autowired private TeacherOpenCourseQuestionLogDao teacherOpenCourseQuestionLogDao;
@Autowired private StudentDao studentDao;
@Autowired private ResourcesQuestionSnapshotService resourcesQuestionSnapshotService;
@Autowired private TeacherOpenCourseQuestionLogService teacherOpenCourseQuestionLogService;
@Autowired private TeacherOpenCourseQuestionLogWrongService teacherOpenCourseQuestionLogWrongService;
@ -588,4 +603,86 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
updateTemplate(model);
}
}
/**
*
*
* @param teacherOpenCourseQuestionSettingId ID
* @param fromTypeEnum
* @return
*/
public List<ResourcesQuestionSnapshot> questionDetail(@NotNull(message = "题目配置ID不能为空") final Long teacherOpenCourseQuestionSettingId,
@NotNull(message = "类型不能为空!") ResourcesQuestionSnapshotFromTypeEnum fromTypeEnum) {
// 获取学生ID
CoreUser coreUser = getUser();
final Student student = studentDao.getByUserId(coreUser.getId());
Assert.isTrue(!fromTypeEnum.equals(HOMEWORK_FILE), "作业-附件类型 不需要获取题目快照!");
// 常量 True的Integer表现
final Integer TRUE_CONST = 1;
List<ResourcesQuestionSnapshot> resourcesQuestionSnapshots = new ArrayList<>();
TeacherOpenCourseQuestionSetting homework = getInfo(teacherOpenCourseQuestionSettingId);
Assert.notNull(homework, "未查询到来源ID对应的题目");
TeacherOpenCourseQuestionSettingQuery settingQuery = new TeacherOpenCourseQuestionSettingQuery();
settingQuery.setTeacherOpenCourseQuestionSettingId(teacherOpenCourseQuestionSettingId);
TeacherOpenCourseQuestionSetting hwSetting = getInfo(settingQuery);
ResourcesQuestionSnapshotQuery questionSnapshotQuery = new ResourcesQuestionSnapshotQuery();
questionSnapshotQuery.setTeacherOpenCourseQuestionSettingId(teacherOpenCourseQuestionSettingId);
// 章节练习,则跳过次数验证;
// 其他类型,都需要验证作答次数
if (!EnumUtil.contains(fromTypeEnum, CHAPTER_EXERCISE)) {
// 作答次数
Integer teacherOpenCourseQuestionSettingSettingDoCount = hwSetting.getTeacherOpenCourseQuestionSettingDoCount();
Assert.isTrue(teacherOpenCourseQuestionSettingSettingDoCount > 1, "作答次数设置有误,请联系管理员!");
// 数据库查询该学生已经做过的次数
TeacherOpenCourseQuestionLog teacherOpenCourseQuestionLog = new TeacherOpenCourseQuestionLog();
teacherOpenCourseQuestionLog.setStudentId(student.getStudentId());
long doCount = teacherOpenCourseQuestionLogDao.templateCount(teacherOpenCourseQuestionLog);
// 断言判断最大作答次数
Assert.isTrue(doCount < teacherOpenCourseQuestionSettingSettingDoCount, "已超过最大作答次数!");
}
// 答卷后显示答案解析
if (TRUE_CONST.equals(hwSetting.getTeacherOpenCourseQuestionSettingEndShowQa())) {
// TODO 逻辑不要在这里写
/** 实现 {@link TeacherOpenCourseQuestionLogService#questionAnalysis(TreeSet)} */
}
// 答卷后显示答案对错
if (TRUE_CONST.equals(hwSetting.getTeacherOpenCourseQuestionSettingEndShowTrueFalse())) {
// TODO 逻辑不要在这里写
/** 实现 {@link TeacherOpenCourseQuestionLogService#questionAnalysis(TreeSet)} */
}
// 题目乱序(同一大题内)
if (TRUE_CONST.equals(hwSetting.getTeacherOpenCourseQuestionSettingQuestionNoOrder())) {
questionSnapshotQuery.setRand(true);
}
// 题目查询
resourcesQuestionSnapshots = resourcesQuestionSnapshotDao.getValuesByQuery(questionSnapshotQuery);
// 选项乱序(限单选、多选)
if (TRUE_CONST.equals(hwSetting.getTeacherOpenCourseQuestionSettingOptionNoOrder())) {
// 单题选项排序处理
resourcesQuestionSnapshots.forEach(value -> {
shuffleOrderOptions(value, "questionAnswer","questionOption", true);
});
}
// 学生身份屏蔽答案,且记录在做题日志表中
if (coreUser.isStudent()) {
// 做题日志关联学生, 初步提交做题日志信息,不包含学生提交的答案和得分情况
teacherOpenCourseQuestionLogService.preSubmitStudentQuestionLog(student.getStudentId(), teacherOpenCourseQuestionSettingId, resourcesQuestionSnapshots);
// 学生身份,需要屏蔽答案,再丢给前端
resourcesQuestionSnapshots.forEach(ResourcesQuestionSnapshot::hideAnswer);
}
return resourcesQuestionSnapshots;
}
}

@ -11,8 +11,8 @@ import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.ResourcesQuestionSnapshot;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLogScoreInfo;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionTestSimpleInfo;
import com.ibeetl.jlw.entity.dto.TeacherOpenCourseQuestionTestDetailDTO;
import com.ibeetl.jlw.entity.dto.TeacherOpenCourseQuestionTestSimpleInfoDTO;
import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestDetailVO;
import com.ibeetl.jlw.service.ResourcesQuestionSnapshotService;
import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery;
@ -163,6 +163,21 @@ public class ResourcesQuestionSnapshotController extends BaseController {
write(response, filename,"Sheet1", header.values(), convertData(header.keySet(), maps));
}
/**
* -
*
*
* @param dto
* @param coreUser
* @return
*/
@PostMapping(API + "/getQuestionTestSimpleInfo.do")
public JsonResult<PageQuery> getQuestionTestSimpleInfoDo(@Validated(ValidateConfig.ADD.class) TeacherOpenCourseQuestionTestSimpleInfoDTO dto,
@SCoreUser CoreUser coreUser) {
Assert.isTrue(coreUser.isStudent(), "非学生身份,无法获取数据!");
return JsonResult.success(resourcesQuestionSnapshotService.getQuestionTestSimpleInfo(dto.getPageQuery()));
}
/* 后台页面 */
@ -296,26 +311,6 @@ public class ResourcesQuestionSnapshotController extends BaseController {
return JsonResult.success(resourcesQuestionSnapshotService.getScoreInfo(teacherOpenCourseQuestionSettingId));
}
/**
* -
*
*
* @param questionSettingId ID
* @param coreUser
* @return
*/
@PostMapping(MODEL + "/getQuestionTestSimpleInfo.json")
@Function("teacherOpenCourseQuestionLog.query")
@ResponseBody
public JsonResult<TeacherOpenCourseQuestionTestSimpleInfo> getQuestionTestSimpleInfo(
Long questionSettingId,
@SCoreUser
CoreUser coreUser) {
Assert.isTrue(coreUser.isStudent(), "非学生身份,无法获取数据!");
return JsonResult.success(resourcesQuestionSnapshotService.getQuestionTestSimpleInfo(questionSettingId));
}
/**
* -
*
@ -345,22 +340,7 @@ public class ResourcesQuestionSnapshotController extends BaseController {
}
/**
* -
*
*
* @param questionSettingId ID
* @return
*/
@PostMapping(MODEL + "/questionManagement.json")
@Function("teacherOpenCourseQuestionLog.query")
@ResponseBody
public JsonResult questionManagement(Long questionSettingId) {
return JsonResult.success(resourcesQuestionSnapshotService.questionManagement(questionSettingId));
}
/**
* -
*
* -
*
* @param teacherOpenCourseIds ID
* @param teacherOpenCourseKnowledgePointsIds ID

@ -2,9 +2,6 @@ package com.ibeetl.jlw.web;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.validation.BeanValidationResult;
import cn.hutool.extra.validation.ValidationUtil;
import cn.hutool.json.JSONUtil;
import cn.jlw.Interceptor.SCoreUser;
import cn.jlw.validate.ValidateConfig;
import com.ibeetl.admin.core.annotation.Function;
@ -30,9 +27,6 @@ import java.math.BigDecimal;
import java.util.List;
import java.util.stream.Collectors;
import static com.ibeetl.jlw.web.query.TeacherOpenCourseChatLogQuery.STUDENT_ADD;
import static com.ibeetl.jlw.web.query.TeacherOpenCourseChatLogQuery.TEACHER_ADD;
/**
* --
* 线
@ -266,24 +260,12 @@ public class TeacherOpenCourseChatLogController{
* @param coreUser
* @return
*/
@PostMapping(MODEL + "/addByType.json")
@Function("teacherOpenCourseChatLog.add")
@PostMapping(API + "/addByType.do")
public JsonResult addByType(
@RequestBody TeacherOpenCourseChatLogQuery teacherOpenCourseChatLogQuery,
Integer type,
BindingResult result, @SCoreUser CoreUser coreUser){
Boolean isTeacherAdding = type.equals(1);
// 验证
BeanValidationResult validationResult = ValidationUtil
.warpValidate(teacherOpenCourseChatLogQuery, isTeacherAdding ? TEACHER_ADD.class : STUDENT_ADD.class);
Assert.isTrue(validationResult.isSuccess(), JSONUtil.toJsonStr(validationResult.getErrorMessages()));
// 教师身份添加上级ID为0
if(isTeacherAdding) {
teacherOpenCourseChatLogQuery.setTeacherOpenCourseChatLogParentId(0L);
}
if(result.hasErrors()){
return JsonResult.failMessage(result);
}else{
@ -292,7 +274,7 @@ public class TeacherOpenCourseChatLogController{
if(null == teacherOpenCourseChatLogQuery.getTeacherOpenCourseChatLogStatus()){
teacherOpenCourseChatLogQuery.setTeacherOpenCourseChatLogStatus(1);
}
return teacherOpenCourseChatLogService.add(teacherOpenCourseChatLogQuery);
return teacherOpenCourseChatLogService.addByType(teacherOpenCourseChatLogQuery, type);
}
}

@ -8,7 +8,6 @@ import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import com.ibeetl.jlw.service.TeacherOpenCourseQuestionLogService;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogQuery;
import org.apache.commons.lang3.StringUtils;
@ -22,6 +21,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
@ -85,27 +85,19 @@ public class TeacherOpenCourseQuestionLogController {
return JsonResult.success(page);
}
/**
* --
*
*
* @param teacherOpenCourseQuestionSettingId ID
* @param fromTypeEnum
* @return
*/
@PostMapping(API + "/questionDetail.do")
public JsonResult questionDetail(Long teacherOpenCourseQuestionSettingId,
ResourcesQuestionSnapshotFromTypeEnum fromTypeEnum, @SCoreUser CoreUser coreUser) {
Assert.isTrue(coreUser.isStudent(), "非学生身份,无法获取题目!");
return JsonResult.success(teacherOpenCourseQuestionLogService.questionDetail(teacherOpenCourseQuestionSettingId, fromTypeEnum));
@PostMapping(API + "/delete.do")
public JsonResult deleteDo(String ids) {
teacherOpenCourseQuestionLogService.deleteTeacherOpenCourseQuestionLog(ids);
return JsonResult.success();
}
/**
* -
* <li></li>
* "/",
* <li> </li>
*
* @param questionLogMap <ID, []> {"10086": ["D", "A", "B", "A"]}
* @param questionLogMap
* <ID, []> {"10086": ["D", "A", "B", "A"]}
* questionLogMapvalue,Key
* @param questionSettingId ID
* @param coreUser Service
* @return
@ -114,7 +106,7 @@ public class TeacherOpenCourseQuestionLogController {
@ResponseBody
public JsonResult addQuestionLog(
@RequestBody
Map<Long, TreeSet<String>> questionLogMap,
Map<String, TreeSet<String>> questionLogMap,
Long questionSettingId,
@SCoreUser
CoreUser coreUser) {
@ -123,6 +115,23 @@ public class TeacherOpenCourseQuestionLogController {
return JsonResult.success();
}
/**
* -
*
* @param teacherOpenCourseQuestionLogIds IDs
* @param score
*/
@PostMapping(API + "/manualModifyQuestionScores.do")
@ResponseBody
public JsonResult manualModifyQuestionScores(
String teacherOpenCourseQuestionLogIds, BigDecimal score,
@SCoreUser
CoreUser coreUser) {
Assert.notNull(coreUser, "请登录后再操作");
teacherOpenCourseQuestionLogService.manualModifyQuestionScores(teacherOpenCourseQuestionLogIds, score);
return JsonResult.success();
}
/**
* -
*
@ -130,7 +139,7 @@ public class TeacherOpenCourseQuestionLogController {
* @param coreUser Service
* @return
*/
@PostMapping(API + "/questionAnalysis.do")
@PostMapping(API + "/questionAnalysisBySnapIds.do")
@ResponseBody
public JsonResult questionAnalysis(
@RequestBody
@ -141,6 +150,18 @@ public class TeacherOpenCourseQuestionLogController {
return JsonResult.success(teacherOpenCourseQuestionLogService.questionAnalysis(questionSnapshotIds));
}
/**
* -
*
* @param questionSettingId ID
* @param coreUser Service
* @return
*/
@PostMapping(API + "/questionAnalysisBySettingId.do")
public JsonResult questionAnalysisBySettingId(Long questionSettingId, @SCoreUser CoreUser coreUser) {
Assert.isTrue(coreUser.isStudent(), "非学生身份,无法获取题目分析!");
return JsonResult.success(teacherOpenCourseQuestionLogService.questionAnalysis(questionSettingId));
}
/**
* --

@ -9,6 +9,7 @@ import com.ibeetl.admin.core.file.FileService;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionSetting;
import com.ibeetl.jlw.enums.GlobalPushStatusEnum;
import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import com.ibeetl.jlw.service.TeacherOpenCourseQuestionSettingService;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery;
import org.apache.commons.lang3.StringUtils;
@ -96,6 +97,21 @@ public class TeacherOpenCourseQuestionSettingController{
return JsonResult.success();
}
/**
* --
*
*
* @param teacherOpenCourseQuestionSettingId ID
* @param fromTypeEnum
* @return
*/
@PostMapping(API + "/questionDetail.do")
public JsonResult questionDetail(Long teacherOpenCourseQuestionSettingId,
ResourcesQuestionSnapshotFromTypeEnum fromTypeEnum, @SCoreUser CoreUser coreUser) {
Assert.isTrue(coreUser.isStudent(), "非学生身份,无法获取题目!");
return JsonResult.success(teacherOpenCourseQuestionSettingService.questionDetail(teacherOpenCourseQuestionSettingId, fromTypeEnum));
}
/**
*
* @param ids

@ -1,5 +1,8 @@
package com.ibeetl.jlw.web.api;
import cn.jlw.Interceptor.SCoreUser;
import com.ibeetl.admin.core.entity.CoreUser;
import com.ibeetl.admin.core.service.CoreUserService;
import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.jlw.entity.api.CurrentUserInfo;
import com.ibeetl.jlw.service.IndexBaseService;
@ -18,9 +21,22 @@ public class IndexBaseController {
private static final String API = "/api/base";
@Autowired private IndexBaseService indexBaseService;
@Autowired private CoreUserService coreUserService;
@PostMapping(API + "/userInfo.do")
public JsonResult<CurrentUserInfo> userInfo() {
return JsonResult.success(indexBaseService.userInfo());
}
/**
*
* --
* @param coreUser
* @param coreUser
* @return
*/
@PostMapping(API + "/editPwdByOld.do")
public JsonResult editPwdByOld(String oldPwd, String newPwd, @SCoreUser CoreUser coreUser) {
return JsonResult.success(coreUserService.editPwdByOld(oldPwd, newPwd, coreUser.getId()));
}
}

@ -1,6 +1,6 @@
package com.ibeetl.jlw.web.query;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.jlw.validate.ValidateConfig;
import com.ibeetl.admin.core.annotation.Query;
import com.ibeetl.admin.core.web.query.PageParam;
@ -12,6 +12,8 @@ import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import static com.ibeetl.jlw.enums.ChatLogSendTypeEnum.normal;
/**
*
*/
@ -53,7 +55,7 @@ public class TeacherOpenCourseChatLogQuery extends PageParam {
private BigDecimal studentScore;
@Query(name = "提问方式", display = false)
// 多个逗号隔开
private String chatLogSendType;
private ChatLogSendTypeEnum chatLogSendType;
@Query(name = "附件上传(仅支持图片,多个逗号隔开)", display = false)
private String chatFiles;
@ -181,12 +183,7 @@ public class TeacherOpenCourseChatLogQuery extends PageParam {
pojo.setChatFiles(this.getChatFiles());
pojo.setTeacherOpenCourseChatLogStatus(this.getTeacherOpenCourseChatLogStatus());
pojo.setTeacherOpenCourseChatLogAddTime(this.getTeacherOpenCourseChatLogAddTime());
try {
pojo.setChatLogSendType(
EnumUtil.likeValueOf(ChatLogSendTypeEnum.class, this.getChatLogSendType().split(",")[0]));
}catch (Exception e) {
pojo.setChatLogSendType(ChatLogSendTypeEnum.normal);
}
pojo.setChatLogSendType(ObjectUtil.defaultIfNull(this.getChatLogSendType(), normal));
pojo.setOrgId(this.getOrgId());
pojo.setUserId(this.getUserId());
return pojo;
@ -253,11 +250,11 @@ public class TeacherOpenCourseChatLogQuery extends PageParam {
this._given = _given;
}
public String getChatLogSendType() {
public ChatLogSendTypeEnum getChatLogSendType() {
return chatLogSendType;
}
public void setChatLogSendType(String chatLogSendType) {
public void setChatLogSendType(ChatLogSendTypeEnum chatLogSendType) {
this.chatLogSendType = chatLogSendType;
}

@ -479,7 +479,11 @@ getValuesByQuery
getQuestionTestSimpleInfo
===
* 学生端- 题目的简单信息
select * from resources_question_snapshot t
select
@pageTag(){
t.*
@}
from resources_question_snapshot t
where 1 = 1
@ // TODO 理想 这里还没写完

@ -527,4 +527,68 @@ getValuesByQuery
@}
getValuesByQueryNotWithPermission
===
* 根据不为空的参数进行查询
select t.*
from teacher_open_course_question_log t
where 1=1
@if(!isEmpty(teacherOpenCourseQuestionLogId)){
and t.teacher_open_course_question_log_id =#teacherOpenCourseQuestionLogId#
@}
@if(!isEmpty(teacherOpenCourseQuestionLogIdPlural)){
and find_in_set(t.teacher_open_course_question_log_id,#teacherOpenCourseQuestionLogIdPlural#)
@}
@if(!isEmpty(teacherOpenCourseQuestionSettingId)){
and t.teacher_open_course_question_setting_id =#teacherOpenCourseQuestionSettingId#
@}
@if(!isEmpty(teacherOpenCourseQuestionSettingIdPlural)){
and find_in_set(t.teacher_open_course_question_setting_id,#teacherOpenCourseQuestionSettingIdPlural#)
@}
@if(!isEmpty(resourcesQuestionSnapshotId)){
and t.resources_question_snapshot_id =#resourcesQuestionSnapshotId#
@}
@if(!isEmpty(resourcesQuestionSnapshotIdPlural)){
and find_in_set(t.resources_question_snapshot_id,#resourcesQuestionSnapshotIdPlural#)
@}
@if(!isEmpty(teacherOpenCourseQuestionLogAnswer)){
and t.teacher_open_course_question_log_answer =#teacherOpenCourseQuestionLogAnswer#
@}
@if(!isEmpty(teacherOpenCourseQuestionLogUploadFile)){
and t.teacher_open_course_question_log_upload_file =#teacherOpenCourseQuestionLogUploadFile#
@}
@if(!isEmpty(teacherOpenCourseQuestionLogAddTime)){
and t.teacher_open_course_question_log_add_time =#teacherOpenCourseQuestionLogAddTime#
@}
@if(isEmpty(teacherOpenCourseQuestionLogStatus) && isEmpty(teacherOpenCourseQuestionLogStatusPlural)){
and t.teacher_open_course_question_log_status != 2
@}else{
@if(!isEmpty(teacherOpenCourseQuestionLogStatus)){
and t.teacher_open_course_question_log_status =#teacherOpenCourseQuestionLogStatus#
@}else if(!isEmpty(teacherOpenCourseQuestionLogStatusPlural)){
and find_in_set(t.teacher_open_course_question_log_status,#teacherOpenCourseQuestionLogStatusPlural#)
@}
@}
@if(!isEmpty(studentId)){
and t.student_id =#studentId#
@}
@if(!isEmpty(studentIdPlural)){
and find_in_set(t.student_id,#studentIdPlural#)
@}
@if(!isEmpty(orgId)){
and t.org_id =#orgId#
@}
@if(!isEmpty(orgIdPlural)){
and find_in_set(t.org_id,#orgIdPlural#)
@}
@if(!isEmpty(userId)){
and t.user_id =#userId#
@}
@if(!isEmpty(userIdPlural)){
and find_in_set(t.user_id,#userIdPlural#)
@}

Loading…
Cancel
Save