From 2fd0e1f211744ca3fb135066d931c3e6ec8d9c94 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 28 十月 2024 18:31:00 +0800
Subject: [PATCH] 12.学生列表中的添加学生 14.题目难度导入 17.建议时长
---
src/main/java/com/ycl/jxkg/excel/SelectExcel.java | 25 ++++++++++++
src/main/java/com/ycl/jxkg/controller/common/UploadController.java | 5 +-
src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperImportVO.java | 1
src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java | 26 ++++++++++--
src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java | 39 ++++++++++++++++---
src/main/resources/mapper/ClassesUserMapper.xml | 11 +++++
src/main/java/com/ycl/jxkg/domain/form/EditClassesUserForm.java | 4 +
src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java | 4 +
8 files changed, 97 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/controller/common/UploadController.java b/src/main/java/com/ycl/jxkg/controller/common/UploadController.java
index e8cd1a8..7026952 100644
--- a/src/main/java/com/ycl/jxkg/controller/common/UploadController.java
+++ b/src/main/java/com/ycl/jxkg/controller/common/UploadController.java
@@ -11,6 +11,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
+import java.net.URLEncoder;
import java.nio.file.Files;
import java.util.HashMap;
import java.util.UUID;
@@ -82,9 +83,9 @@
// 璇诲彇鏂囦欢鍐呭
byte[] fileContent = Files.readAllBytes(file.toPath());
-
+ String downloadfile = URLEncoder.encode(fileName,"UTF-8");
// 璁剧疆鍝嶅簲澶�
- response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
+ response.setHeader("Content-Disposition", "attachment; filename=" + downloadfile);
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
// 灏嗘枃浠跺唴瀹瑰啓鍏ュ搷搴旇緭鍑烘祦
diff --git a/src/main/java/com/ycl/jxkg/domain/form/EditClassesUserForm.java b/src/main/java/com/ycl/jxkg/domain/form/EditClassesUserForm.java
index b4116d2..a56b0b6 100644
--- a/src/main/java/com/ycl/jxkg/domain/form/EditClassesUserForm.java
+++ b/src/main/java/com/ycl/jxkg/domain/form/EditClassesUserForm.java
@@ -46,11 +46,13 @@
@NotBlank(message = "璇峰~鍐欏鍛樼櫥褰曡处鍙�", groups = {Add.class, Update.class})
@ApiModelProperty("鐧诲綍璐﹀彿")
- private String account;
+ private String userName;
@ApiModelProperty("鐧诲綍瀵嗙爜")
private String password;
+ private String birthDay;
+
public static ClassesUser getEntityByForm(@NonNull EditClassesUserForm form, ClassesUser entity) {
if(entity == null) {
entity = new ClassesUser();
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java b/src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java
index cfdb39e..01f6df1 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java
@@ -1,10 +1,12 @@
package com.ycl.jxkg.domain.vo;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.jxkg.domain.base.AbsVo;
import com.ycl.jxkg.domain.entity.ClassesUser;
import java.util.Date;
import java.util.List;
+
import org.springframework.lang.NonNull;
import org.springframework.beans.BeanUtils;
import io.swagger.annotations.ApiModel;
@@ -20,26 +22,49 @@
@Data
public class ClassesUserVO extends AbsVo {
- /** 鐝骇ID */
+ /**
+ * 鐝骇ID
+ */
private Integer classesId;
- /** 鐢ㄦ埛ID */
+ /**
+ * 鐢ㄦ埛ID
+ */
private Integer userId;
- /** 鐪熷疄濮撳悕 */
+ /**
+ * 鐪熷疄濮撳悕
+ */
private String realName;
- /** 骞撮緞 */
+ /**
+ * 骞撮緞
+ */
private Integer sex;
- /** 鐢佃瘽 */
+ /**
+ * 鐢佃瘽
+ */
private String phone;
- /** 鍔犲叆鏃堕棿 */
+ /**
+ * 鍔犲叆鏃堕棿
+ */
private Date createTime;
+ /**
+ * 鐢佃瘽
+ */
+ private String userName;
+ /**
+ * 鐢佃瘽
+ */
+ private String age;
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private Date birthDay;
+ private Integer status;
public static ClassesUserVO getVoByEntity(@NonNull ClassesUser entity, ClassesUserVO vo) {
- if(vo == null) {
+ if (vo == null) {
vo = new ClassesUserVO();
}
BeanUtils.copyProperties(entity, vo);
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperImportVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperImportVO.java
index dcf9022..ca26deb 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperImportVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/exam/ExamPaperImportVO.java
@@ -2,6 +2,7 @@
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.NumberFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
diff --git a/src/main/java/com/ycl/jxkg/excel/SelectExcel.java b/src/main/java/com/ycl/jxkg/excel/SelectExcel.java
index c4e8cde..2de1850 100644
--- a/src/main/java/com/ycl/jxkg/excel/SelectExcel.java
+++ b/src/main/java/com/ycl/jxkg/excel/SelectExcel.java
@@ -29,7 +29,7 @@
/**
* 閫夐」涓嬫媺鏁版嵁
*/
- private String[] optionList = {"A","B","C","D","E","F","G","H"};
+ private String[] optionList = {"A", "B", "C", "D", "E", "F", "G", "H"};
public SelectExcel(List subjectNameList) {
this.subjectNameList = subjectNameList;
@@ -49,6 +49,8 @@
// 娣诲姞棰樼洰涓嬫媺
DataValidationConstraint questionConstraint = dataValidationHelper.createExplicitListConstraint(questionTypeList);
DataValidation questionValidation = dataValidationHelper.createValidation(questionConstraint, questionTypeRange);
+
+ setValidation(questionValidation);
sheet.addValidationData(questionValidation);
@@ -57,6 +59,8 @@
// 娣诲姞璇剧洰涓嬫媺
DataValidationConstraint subjectConstraint = dataValidationHelper.createExplicitListConstraint(subjectNameList.toArray((new String[0])));
DataValidation subjectValidation = dataValidationHelper.createValidation(subjectConstraint, subjectTypeRange);
+
+ setValidation(subjectValidation);
sheet.addValidationData(subjectValidation);
// 璁剧疆閫夐」涓嬫媺鑼冨洿锛岀4鍒楋紝1500琛屽唴
@@ -64,6 +68,8 @@
// 娣诲姞閫夐」涓嬫媺
DataValidationConstraint optionConstraint = dataValidationHelper.createExplicitListConstraint(optionList);
DataValidation optionValidation = dataValidationHelper.createValidation(optionConstraint, optionRange);
+
+ setValidation(optionValidation);
sheet.addValidationData(optionValidation);
// 璁剧疆閫夐」涓嬫媺鑼冨洿锛岀4鍒楋紝1500琛屽唴
@@ -71,7 +77,24 @@
// 娣诲姞閫夐」涓嬫媺
DataValidationConstraint answerConstraint = dataValidationHelper.createExplicitListConstraint(optionList);
DataValidation answerValidation = dataValidationHelper.createValidation(answerConstraint, answerRange);
+ setValidation(answerValidation);
sheet.addValidationData(answerValidation);
+ // 闅鹃亾1-5
+ String[] difficultList = new String[]{"1", "2", "3", "4", "5"};
+ CellRangeAddressList difficultRange = new CellRangeAddressList(2, 1500, 8, 8);
+ // 娣诲姞閫夐」涓嬫媺
+ DataValidationConstraint difficultConstraint = dataValidationHelper.createExplicitListConstraint(difficultList);
+ DataValidation difficultValidation = dataValidationHelper.createValidation(difficultConstraint, difficultRange);
+ setValidation(difficultValidation);
+ sheet.addValidationData(difficultValidation);
+ }
+ private DataValidation setValidation(DataValidation dataValidation){
+ dataValidation.setEmptyCellAllowed(false);
+ dataValidation.setSuppressDropDownArrow(true);
+ dataValidation.setShowErrorBox(true);
+ //璁剧疆杈撳叆閿欒鎻愮ず淇℃伅
+ dataValidation.createErrorBox("閫夋嫨閿欒鎻愮ず", "浣犺緭鍏ョ殑鍊兼湭鍦ㄥ閫夊垪琛ㄤ腑锛岃涓嬫媺閫夋嫨鍚堥�傜殑鍊�!");
+ return dataValidation;
}
}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java
index 59fa3b9..8daf2ef 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java
@@ -26,6 +26,9 @@
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -55,15 +58,15 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public Result add(EditClassesUserForm form) {
+ public Result add(EditClassesUserForm form) {
Long count = new LambdaQueryChainWrapper<>(userMapper)
- .eq(User::getUserName, form.getAccount())
+ .eq(User::getUserName, form.getUserName())
.count();
if (count > 0) {
throw new RuntimeException("璇ョ櫥褰曡处鍙峰凡琚娇鐢�");
}
User user = new User();
- user.setUserName(form.getPhone());
+ user.setUserName(form.getUserName());
String password = StringUtils.hasText(form.getPassword()) ? form.getPassword() : DEFAULT_PASSWORD;
user.setPassword(authenticationService.pwdEncode(password));
user.setStatus(UserStatusEnum.Enable.getCode());
@@ -72,6 +75,12 @@
user.setPhone(form.getPhone());
user.setRealName(form.getRealName());
user.setSex(form.getSex());
+ DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ user.setBirthDay(fmt.parse(form.getBirthDay()));
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
user.setLastUpdatePasswordTime(new Date());
userMapper.insert(user);
@@ -90,7 +99,7 @@
throw new RuntimeException("瀛﹀憳鏁版嵁涓嶅瓨鍦�");
}
Long count = new LambdaQueryChainWrapper<>(userMapper)
- .eq(User::getUserName, form.getAccount())
+ .eq(User::getUserName, form.getUserName())
.ne(User::getId, classesUser.getUserId())
.count();
if (count > 0) {
@@ -105,11 +114,18 @@
// BeanUtils.copyProperties(classesUser, user);
// userMapper.updateById(user);
- user.setUserName(form.getAccount());
+ user.setUserName(form.getUserName());
user.setPassword(form.getPassword());
user.setPhone(form.getPhone());
user.setRealName(form.getRealName());
user.setSex(form.getSex());
+ user.setAge(form.getAge());
+ DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");
+ try {
+ user.setBirthDay(fmt.parse(form.getBirthDay()));
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
userMapper.updateById(user);
return Result.ok("淇敼鎴愬姛");
}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
index 612d808..db198fe 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperServiceImpl.java
@@ -328,12 +328,13 @@
public List<ExamPaper> myExamPaper(Integer paperType) {
Integer userId = webContext.getCurrentUser().getId();
List<ExamPaper> list = new LambdaQueryChainWrapper<>(baseMapper)
- .select(ExamPaper::getId, ExamPaper::getName, ExamPaper::getVisibility)
+ .select(ExamPaper::getId, ExamPaper::getName, ExamPaper::getVisibility,ExamPaper::getSuggestTime)
.eq(ExamPaper::getCreateUser, userId)
.eq(Objects.nonNull(paperType), ExamPaper::getPaperType, paperType)
.or()
.eq(ExamPaper::getVisibility, VisibilityEnum.Public.getName())
.eq(Objects.nonNull(paperType), ExamPaper::getPaperType, paperType)
+ .orderByDesc(ExamPaper::getId)
.list();
list.stream().forEach(item -> {
if (VisibilityEnum.Public.getName().equals(item.getVisibility())) {
@@ -382,6 +383,7 @@
// 鏌ュ嚭鎵�鏈夌殑璇剧洰锛坋xcel涓嬫媺鏁版嵁锛�
List<Subject> subjects = subjectService.list();
List<String> subjectNameList = subjects.stream().map(Subject::getName).collect(Collectors.toList());
+
EasyExcel.write(response.getOutputStream(), ExamPaperImportVO.class)
.sheet("妯℃澘")
.registerWriteHandler(new PaperSelectExcel(subjectNameList))
diff --git a/src/main/resources/mapper/ClassesUserMapper.xml b/src/main/resources/mapper/ClassesUserMapper.xml
index 76f7e7c..d9a7f98 100644
--- a/src/main/resources/mapper/ClassesUserMapper.xml
+++ b/src/main/resources/mapper/ClassesUserMapper.xml
@@ -10,6 +10,10 @@
<result column="sex" property="sex"/>
<result column="phone" property="phone"/>
<result column="create_time" property="createTime"/>
+ <result column="user_name" property="userName"/>
+ <result column="age" property="age"/>
+ <result column="birth_day" property="birthDay"/>
+ <result column="status" property="status"/>
</resultMap>
<resultMap id="ResultMap" type="com.ycl.jxkg.domain.vo.StudentExamInfoVO">
@@ -43,13 +47,18 @@
TCU.id,
TU.real_name,
TU.sex,
- TU.phone
+ TU.phone,
+ TU.user_name,
+ TU.age,
+ TU.birth_day,
+ TU.status
FROM t_classes_user TCU
LEFT JOIN t_user TU ON TU.id = TCU.user_id and TU.deleted = 0
WHERE TCU.deleted = 0 AND TCU.classes_id = #{query.classesId}
<if test="query.studentName != null and query.studentName != ''">AND TU.real_name like concat('%',
#{query.studentName}, '%')
</if>
+ order by TU.id desc
</select>
--
Gitblit v1.8.0