Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

周箭河 5 лет назад
Родитель
Сommit
12bd41a474

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ExtracurricularExercisesReplyDao.java

@@ -59,5 +59,8 @@ public interface ExtracurricularExercisesReplyDao extends BaseDAO<Long, Extracur
      * @return int
      */
     int countIsSubmitStudents(@Param("extraExerciseId") Long extraExerciseId);
+
+    List<ExtraExerciseStudentsDto> findExtraExercises(Map<String, Object> params);
+    int countExtraExercises(Map<String, Object> params);
 	
 }

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ExtracurricularExercisesReply.java

@@ -4,6 +4,8 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.ym.mec.auth.api.entity.SysUser;
 
+import java.util.Date;
+
 /**
  * 对应数据库表(extracurricular_exercises_reply):
  */
@@ -44,7 +46,17 @@ public class ExtracurricularExercisesReply {
 	private Integer isView;
 	
 	private String organName;
-	
+
+	private Date submitTime;
+
+	public Date getSubmitTime() {
+		return submitTime;
+	}
+
+	public void setSubmitTime(Date submitTime) {
+		this.submitTime = submitTime;
+	}
+
 	public ExtracurricularExercises getExtracurricularExercises() {
 		return extracurricularExercises;
 	}

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomework.java

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.Date;
+
 /**
  * 对应数据库表(student_course_homework):
  */
@@ -47,6 +49,16 @@ public class StudentCourseHomework {
 
 	private boolean extra;
 
+	private Date submitTime;
+
+	public Date getSubmitTime() {
+		return submitTime;
+	}
+
+	public void setSubmitTime(Date submitTime) {
+		this.submitTime = submitTime;
+	}
+
 	public boolean isExtra() {
 		return extra;
 	}

+ 15 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseReplyQueryInfo.java

@@ -27,12 +27,22 @@ public class ExtraExercilseReplyQueryInfo extends QueryInfo {
 	/** 是否已查看 */
 	private Integer isView;
 	
-	private Integer organId;
+	private String organIdList;
 	
 	private Date submitStartTime;// 提交作业的开始时间
 
 	private Date submitEndTime;// 提交作业的结束时间
 
+	private Date expireDate;
+
+	public Date getExpireDate() {
+		return expireDate;
+	}
+
+	public void setExpireDate(Date expireDate) {
+		this.expireDate = expireDate;
+	}
+
 	public Long getExtracurricularExercisesId() {
 		return extracurricularExercisesId;
 	}
@@ -57,12 +67,12 @@ public class ExtraExercilseReplyQueryInfo extends QueryInfo {
 		this.studentId = studentId;
 	}
 
-	public Integer getOrganId() {
-		return organId;
+	public String getOrganIdList() {
+		return organIdList;
 	}
 
-	public void setOrganId(Integer organId) {
-		this.organId = organId;
+	public void setOrganIdList(String organIdList) {
+		this.organIdList = organIdList;
 	}
 
 	public Date getSubmitStartTime() {

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ExtracurricularExercisesReplyService.java

@@ -1,9 +1,11 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
+import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
+import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
@@ -47,4 +49,13 @@ public interface ExtracurricularExercisesReplyService extends BaseService<Long,
      */
     void submitExtraExercise(ExtracurricularExercisesReply extracurricularExercisesReply);
 
+    /**
+     * @describe 获取学生课外训练
+     * @author Joburgess
+     * @date 2020/4/7
+     * @param queryInfo:
+     * @return com.ym.mec.common.page.PageInfo
+     */
+    PageInfo<ExtraExerciseStudentsDto> findExtraExercises(ExtraExercilseReplyQueryInfo queryInfo);
+
 }

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesReplyServiceImpl.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
 import com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto;
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercises;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
@@ -13,6 +14,7 @@ import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
+import com.ym.mec.biz.dal.page.ExtraExercilseReplyQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -27,6 +29,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Long, ExtracurricularExercisesReply> implements ExtracurricularExercisesReplyService {
@@ -127,6 +130,7 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 		}
 		existExtra.setAttachments(extracurricularExercisesReply.getAttachments());
 		existExtra.setStatus(1);
+		existExtra.setSubmitTime(new Date());
 		extracurricularExercisesReplyDao.update(existExtra);
 
 		int submitStudentNum=extracurricularExercisesReplyDao.countIsSubmitStudents(existExtra.getExtracurricularExercisesId());
@@ -146,4 +150,30 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 					extracurricularExercises.getTitle(), user.getUsername());
 		}
 	}
+
+	@Override
+	public PageInfo<ExtraExerciseStudentsDto> findExtraExercises(ExtraExercilseReplyQueryInfo queryInfo) {
+		PageInfo<ExtraExerciseStudentsDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<ExtraExerciseStudentsDto> dataList = null;
+		int count = extracurricularExercisesReplyDao.countExtraExercises(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = extracurricularExercisesReplyDao.findExtraExercises(params);
+			List<Integer> teacherIds = dataList.stream().map(ExtraExerciseStudentsDto::getTeacherId).collect(Collectors.toList());
+			List<SimpleUserDto> teachers = teacherDao.findSimpleTeachers(teacherIds);
+			Map<Integer, String> idNameMap = teachers.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, SimpleUserDto::getUserName));
+			for (ExtraExerciseStudentsDto extraExerciseStudentsDto : dataList) {
+				extraExerciseStudentsDto.setTeacherName(idNameMap.get(extraExerciseStudentsDto.getTeacherId()));
+			}
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -88,6 +88,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
             throw new BizException("作业不存在");
         }
         boolean push = Objects.isNull(existHomework.getAttachments());
+        bean.setSubmitTime(new Date());
         super.update(bean);
         bean = studentCourseHomeworkDao.get(bean.getId());
         CourseSchedule courseSchedule = courseScheduleDao.get(bean.getCourseScheduleId());

+ 72 - 3
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml

@@ -20,6 +20,7 @@
 		<result column="is_replied_" property="isReplied" />
 		<result column="is_view_" property="isView" />
 		<result column="organ_name_" property="organName" />
+		<result column="submit_time_" property="submitTime" />
 	</resultMap>
 
 	<resultMap id="ExtraExerciseStudentsDto" type="com.ym.mec.biz.dal.dto.ExtraExerciseStudentsDto" extends="ExtracurricularExercisesReply">
@@ -127,6 +128,9 @@
 			<if test="attachments != null">
 			attachments_ = #{attachments},
 			</if>
+			<if test="submitTime != null">
+				submit_time_ = #{submitTime},
+			</if>
 			update_time_ = NOW()
 		</set> WHERE id_ = #{id}
 	</update>
@@ -137,8 +141,10 @@
 	</delete>
 	
 	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="ExtracurricularExercisesReply" parameterType="map">
-		SELECT eer.*,u.username_,ee.title_,o.name_ organ_name_ FROM extracurricular_exercises_reply eer left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
+	<select id="queryPage" resultMap="ExtraExerciseStudentsDto" parameterType="map">
+		SELECT eer.*,u.username_,ee.title_,o.name_ organ_name_,ee.teacher_id_,ee.expire_date_
+		FROM extracurricular_exercises_reply eer
+		left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
 		left join sys_user u on eer.user_id_ = u.id_
 		left join teacher t on t.id_ = ee.teacher_id_
 		left join organization o on o.id_ = t.organ_id_
@@ -148,7 +154,8 @@
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(eer.id_) FROM extracurricular_exercises_reply eer left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
+		SELECT COUNT(eer.id_) FROM extracurricular_exercises_reply eer
+		left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
 		left join sys_user u on eer.user_id_ = u.id_
 		left join teacher t on t.id_ = ee.teacher_id_
 		left join organization o on o.id_ = t.organ_id_
@@ -225,4 +232,66 @@
 	<select id="countIsSubmitStudents" resultType="int">
 		SELECT COUNT(id_) FROM extracurricular_exercises_reply WHERE extracurricular_exercises_id_=#{extraExerciseId} AND attachments_ IS NOT NULL
 	</select>
+
+
+
+	<sql id="queryExtraExercisesCondition">
+		<where>
+			<if test="extracurricularExercisesId != null">
+				AND extracurricular_exercises_id_ = #{extracurricularExercisesId}
+			</if>
+			<if test="teacherId != null">
+				AND teacher_id_ = #{teacherId}
+			</if>
+			<if test="organId != null">
+				AND o.id_ = #{organId}
+			</if>
+			<if test="studentId != null">
+				AND user_id_ = #{studentId}
+			</if>
+			<if test="title != null">
+				AND title_ like '%' #{title} '%'
+			</if>
+			<if test="status != null">
+				AND eer.status_ = #{status}
+			</if>
+			<if test="isReplied != null">
+				AND is_replied_ = #{isReplied}
+			</if>
+			<if test="isView != null">
+				AND is_view_ = #{isView}
+			</if>
+			<if test="search != null">
+				AND title_ like concat('%',#{search},'%') or u.username_ like concat('%',#{search},'%')
+			</if>
+			<if test="submitStartTime != null">
+				AND date(eer.create_time_) &gt;= #{submitStartTime}
+			</if>
+			<if test="submitEndTime != null">
+				AND date(eer.create_time_) &lt;= #{submitEndTime}
+			</if>
+			<if test="expireDate != null">
+				AND DATE_FORMAT(ee.expire_date_,"%Y%m%d") = DATE_FORMAT(#{expireDate},"%Y%m%d")
+			</if>
+		</where>
+	</sql>
+
+	<select id="findExtraExercises" resultMap="ExtraExerciseStudentsDto">
+		SELECT eer.*,u.username_,ee.title_,o.name_ organ_name_,ee.teacher_id_,ee.expire_date_
+		FROM extracurricular_exercises_reply eer
+		left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
+		left join sys_user u on eer.user_id_ = u.id_
+		left join teacher t on t.id_ = ee.teacher_id_
+		left join organization o on o.id_ = t.organ_id_
+		<include refid="queryExtraExercisesCondition"/>
+		ORDER BY eer.id_ <include refid="global.limit"/>
+	</select>
+	<select id="countExtraExercises" resultType="int">
+		SELECT COUNT(eer.id_) FROM extracurricular_exercises_reply eer
+		left join extracurricular_exercises ee on eer.extracurricular_exercises_id_ = ee.id_
+		left join sys_user u on eer.user_id_ = u.id_
+		left join teacher t on t.id_ = ee.teacher_id_
+		left join organization o on o.id_ = t.organ_id_
+		<include refid="queryExtraExercisesCondition"/>
+	</select>
 </mapper>

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml

@@ -22,6 +22,7 @@
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="is_replied_" property="isReplied" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="is_view_" property="isView" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="submit_time_" property="submitTime"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto" id="CourseHomeworkStudentDetailDto">
@@ -114,6 +115,9 @@
             <if test="isView != null">
                 is_view_ = #{isView,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
+            <if test="submitTime!=null">
+                submit_time_ = #{submitTime}
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -245,7 +245,7 @@
         WHERE su.del_flag_ = 0
         <include refid="queryPageMap"/>
         GROUP BY t.id_
-        ORDER BY t.update_time_ DESC
+        ORDER BY t.id_ DESC
         <include refid="global.limit"/>
     </select>
     <!-- 查询当前表的总记录数 -->

+ 48 - 3
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -17,10 +17,8 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.excel.POIUtil;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,7 +29,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
-
 import java.io.IOException;
 import java.io.OutputStream;
 import java.math.BigDecimal;
@@ -79,6 +76,8 @@ public class ExportController extends BaseController {
     private TenantPaymentOrderService tenantPaymentOrderService;
     @Autowired
     private CourseScheduleDao courseScheduleDao;
+    @Autowired
+    private ExtracurricularExercisesReplyService extracurricularExercisesReplyService;
 
     @ApiOperation(value = "网管课购买列表")
     @PostMapping("export/studentBuyPractice")
@@ -881,4 +880,50 @@ public class ExportController extends BaseController {
             e.printStackTrace();
         }
     }
+
+    @ApiOperation(value = "学生课外训练记录导出")
+    @GetMapping("export/extraExercisesReplys")
+    @PreAuthorize("@pcs.hasPermissions('export/extraExercisesReplys')")
+    public void extraExercisesReplys(ExtraExercilseReplyQueryInfo queryInfo, HttpServletResponse response) {
+        queryInfo.setRows(999999999);
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        if (!sysUser.getIsSuperAdmin()) {
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (org.apache.commons.lang3.StringUtils.isEmpty(queryInfo.getOrganIdList())) {
+                queryInfo.setOrganIdList(employee.getOrganIdList());
+            } else if (org.apache.commons.lang3.StringUtils.isEmpty(employee.getOrganIdList())) {
+                throw new BizException("用户所在分部异常");
+            } else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if (!list.containsAll(Arrays.asList(queryInfo.getOrganIdList().split(",")))) {
+                    throw new BizException("非法请求");
+                }
+            }
+        }
+        List<ExtraExerciseStudentsDto> rows = extracurricularExercisesReplyService.findExtraExercises(queryInfo).getRows();
+        OutputStream ouputStream = null;
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(
+                    new String[]{"布置时间", "截至时间", "训练标题", "老师名字", "分部", "学生姓名", "提交作业", "是否回复", "是否查看"},
+                    new String[]{"createTime", "expireDate", "title", "teacherName", "organName", "user.username", "status", "isReplied", "isView"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
+            ouputStream = response.getOutputStream();
+            workbook.write(ouputStream);
+            ouputStream.flush();
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (ouputStream != null) {
+                try {
+                    ouputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
 }

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ExtracurricularExercisesReplyController.java

@@ -24,6 +24,6 @@ public class ExtracurricularExercisesReplyController extends BaseController {
     @ApiOperation(value = "获取课外训练作业列表")
     @GetMapping("/queryPageList")
     private HttpResponseResult findExtraExercilses(ExtraExercilseReplyQueryInfo queryInfo){
-        return succeed(extracurricularExercisesReplyService.queryPage(queryInfo));
+        return succeed(extracurricularExercisesReplyService.findExtraExercises(queryInfo));
     }
 }