src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/controller/admin/FeedBackController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/domain/Feedback.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/domain/vo/FeedbackVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/repository/FeedbackMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/service/FeedbackService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/service/impl/FeedbackServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/mindskip/xzs/viewmodel/admin/question/ExamQuestionVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/FeedbackMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/mindskip/xzs/controller/admin/DepartmentController.java
@@ -17,6 +17,7 @@ import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.viewmodel.admin.department.DepartmentResponseVM; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -107,7 +108,10 @@ List<UserDepartment> userDepartments = userDepartmentMapper.selectByDepartmentId(e.getId()); List<User> list = new ArrayList<>(); for (UserDepartment userDepartment : userDepartments) { list.add(userService.getUserById(userDepartment.getUserId())); User user = userService.getUserById(userDepartment.getUserId()); if (ObjectUtils.isNotEmpty(user)) { list.add(user); } } departmentVO.setUserList(list); departmentVO.setDepartment(e); src/main/java/com/mindskip/xzs/controller/admin/FeedBackController.java
New file @@ -0,0 +1,38 @@ package com.mindskip.xzs.controller.admin; import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.domain.vo.FeedbackVO; import com.mindskip.xzs.service.FeedbackService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author gonghl * @since 2024/5/7 下午 3:57 */ @RequiredArgsConstructor @RestController("studentFeedBackController") @RequestMapping("/api/student/feedback") public class FeedBackController extends BaseApiController { private final FeedbackService feedbackService; /** * 保存反馈 * * @param feedbackVO 数据 * @return 操作结果 */ @PostMapping("saveFeedback") public RestResponse<String> saveFeedback(@RequestBody FeedbackVO feedbackVO) { feedbackVO.setUserId(getCurrentUser().getId()); feedbackService.saveFeedback(feedbackVO); return RestResponse.ok("操作成功"); } } src/main/java/com/mindskip/xzs/domain/Feedback.java
New file @@ -0,0 +1,38 @@ package com.mindskip.xzs.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.time.LocalDateTime; import java.util.Date; /** * @author gonghl * @TableName t_feedback */ @TableName(value = "t_feedback") @Data public class Feedback implements Serializable { @TableId(type = IdType.AUTO) private Integer id; private Integer questionId; private Integer contentId; @TableField(value = "`describe`") private String describe; private Integer userId; private Boolean fix; private LocalDateTime fixTime; private static final long serialVersionUID = 1L; } src/main/java/com/mindskip/xzs/domain/vo/FeedbackVO.java
New file @@ -0,0 +1,39 @@ package com.mindskip.xzs.domain.vo; import lombok.Data; import javax.validation.constraints.NotNull; import java.time.LocalDateTime; /** * @author gonghl * @since 2024/5/7 下午 4:00 */ @Data public class FeedbackVO { private Integer id; @NotNull private Integer questionId; @NotNull private Integer contentId; private String describe; private Integer userId; private Boolean fix; private LocalDateTime fixTime; private Integer pageIndex; private Integer pageSize; private String questionTitle; private String userName; } src/main/java/com/mindskip/xzs/repository/FeedbackMapper.java
New file @@ -0,0 +1,24 @@ package com.mindskip.xzs.repository; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mindskip.xzs.domain.Feedback; import com.mindskip.xzs.domain.vo.FeedbackVO; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * @author gonghl * @description 针对表【t_feedback(错题反馈)】的数据库操作Mapper * @createDate 2024-05-07 15:52:33 * @Entity com.mindskip.xzs.feedback.TFeedback */ @Mapper public interface FeedbackMapper extends BaseMapper<Feedback> { List<FeedbackVO> feedbackPage(); } src/main/java/com/mindskip/xzs/service/FeedbackService.java
New file @@ -0,0 +1,20 @@ package com.mindskip.xzs.service; import com.baomidou.mybatisplus.extension.service.IService; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.Feedback; import com.mindskip.xzs.domain.vo.FeedbackVO; /** * @author gonghl * @description 针对表【t_feedback(错题反馈)】的数据库操作Service * @createDate 2024-05-07 15:52:33 */ public interface FeedbackService extends IService<Feedback> { void saveFeedback(FeedbackVO feedbackVO); PageInfo<FeedbackVO> feedbackPage(FeedbackVO feedbackVO); void settleFeedback(Integer id); } src/main/java/com/mindskip/xzs/service/impl/FeedbackServiceImpl.java
New file @@ -0,0 +1,57 @@ package com.mindskip.xzs.service.impl; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.Feedback; import com.mindskip.xzs.domain.question.QuestionObject; import com.mindskip.xzs.domain.vo.FeedbackVO; import com.mindskip.xzs.repository.FeedbackMapper; import com.mindskip.xzs.service.FeedbackService; import com.mindskip.xzs.utility.JsonUtil; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.stream.Collectors; /** * @author gonghl * @description 针对表【t_feedback(错题反馈)】的数据库操作Service实现 * @createDate 2024-05-07 15:52:33 */ @Service @RequiredArgsConstructor public class FeedbackServiceImpl extends ServiceImpl<FeedbackMapper, Feedback> implements FeedbackService { private final FeedbackMapper feedbackMapper; @Override public void saveFeedback(FeedbackVO feedbackVO) { Feedback feedback = new Feedback(); BeanUtils.copyProperties(feedbackVO, feedback); feedbackMapper.insert(feedback); } @Override public PageInfo<FeedbackVO> feedbackPage(FeedbackVO feedbackVO) { return PageHelper.startPage(feedbackVO.getPageIndex(), feedbackVO.getPageSize()).doSelectPageInfo(() -> feedbackMapper.feedbackPage().stream().peek(f -> f.setQuestionTitle(JsonUtil.toJsonObject(f.getQuestionTitle(), QuestionObject.class).getTitleContent())).collect(Collectors.toList())); } @Override public void settleFeedback(Integer id) { new LambdaUpdateChainWrapper<>(feedbackMapper) .set(Feedback::getFix, true) .set(Feedback::getFixTime, LocalDateTime.now()) .eq(Feedback::getId, id) .update(); } } src/main/java/com/mindskip/xzs/viewmodel/admin/question/ExamQuestionVO.java
@@ -66,5 +66,6 @@ private String department; private Integer infoTextContentId; } src/main/resources/mapper/FeedbackMapper.xml
New file @@ -0,0 +1,32 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mindskip.xzs.repository.FeedbackMapper"> <resultMap id="BaseResultMap" type="com.mindskip.xzs.domain.Feedback"> <id property="id" column="id" jdbcType="INTEGER"/> <result property="questionId" column="question_id" jdbcType="INTEGER"/> <result property="contentId" column="content_id" jdbcType="INTEGER"/> <result property="describe" column="describe" jdbcType="VARCHAR"/> <result property="userId" column="user_id" jdbcType="INTEGER"/> <result property="fix" column="fix" jdbcType="BIT"/> <result property="fixTime" column="fix_time" jdbcType="TIMESTAMP"/> </resultMap> <sql id="Base_Column_List"> id,question_id,content_id, describe,user_id,fix, fix_time </sql> <select id="feedbackPage" resultType="com.mindskip.xzs.domain.vo.FeedbackVO"> select a.*, b.content as questionTitle, c.real_name as userName from t_feedback a left join t_text_content b on a.content_id = b.id left join t_user c on a.user_id = c.id and deleted = 0 order by id desc </select> </mapper>