Joburgess 5 년 전
부모
커밋
0a44613099

+ 2 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRegistrationController.java

@@ -8,6 +8,7 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.thirdparty.ocr.Ocr;
 import com.keao.edu.user.dto.ExamRecordDto;
 import com.keao.edu.user.dto.ExamRegistrationDto;
+import com.keao.edu.user.dto.ExamRegistrationRoomDto;
 import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.Employee;
 import com.keao.edu.user.entity.ExamRegistration;
@@ -46,7 +47,7 @@ public class ExamRegistrationController extends BaseController {
     @ApiOperation(value = "学员报名记录查询")
     @GetMapping(value = "list")
     @PreAuthorize("@pcs.hasPermissions('examRegistration/list')")
-    public HttpResponseResult<PageInfo<ExamRegistration>> list(ExamRegistrationQueryInfo queryInfo) {
+    public HttpResponseResult<PageInfo<ExamRegistrationRoomDto>> list(ExamRegistrationQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (!sysUser.getIsSuperAdmin() && Objects.isNull(queryInfo.getOrganId())) {
             Employee employee = employeeService.get(sysUser.getId());

+ 7 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamTeacherSalaryController.java

@@ -4,6 +4,7 @@ import com.keao.edu.common.controller.BaseController;
 import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.user.dto.BaseUserInfoDto;
+import com.keao.edu.user.dto.ExamTeacherSalaryDto;
 import com.keao.edu.user.dto.TeacherDto;
 import com.keao.edu.user.entity.ExamTeacherSalary;
 import com.keao.edu.user.page.ExamTeacherSalaryQueryInfo;
@@ -11,7 +12,10 @@ import com.keao.edu.user.service.ExamTeacherSalaryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -31,8 +35,8 @@ public class ExamTeacherSalaryController extends BaseController {
 
     @ApiOperation("分页查询")
     @GetMapping(value = "/list")
-    public HttpResponseResult<PageInfo<ExamTeacherSalary>> getList(ExamTeacherSalaryQueryInfo queryInfo) {
-        return succeed(examTeacherSalaryService.queryPage(queryInfo));
+    public HttpResponseResult<PageInfo<ExamTeacherSalaryDto>> getList(ExamTeacherSalaryQueryInfo queryInfo) {
+        return succeed(examTeacherSalaryService.queryExamTeacherSalary(queryInfo));
     }
 
     @ApiOperation("新增")

+ 4 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRegistrationDao.java

@@ -4,6 +4,7 @@ package com.keao.edu.user.dao;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.user.dto.ExamRecordDto;
 import com.keao.edu.user.dto.ExamRegistrationDto;
+import com.keao.edu.user.dto.ExamRegistrationRoomDto;
 import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamRegistration;
 import org.apache.ibatis.annotations.Param;
@@ -13,6 +14,9 @@ import java.util.Map;
 
 public interface ExamRegistrationDao extends BaseDAO<Long, ExamRegistration> {
 
+    List<ExamRegistrationRoomDto> queryExamRegist(Map<String, Object> params);
+    int countExamRegist(Map<String, Object> params);
+
     /**
      * @param organIds:
      * @return int

+ 46 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRegistrationRoomDto.java

@@ -0,0 +1,46 @@
+package com.keao.edu.user.dto;
+
+import com.keao.edu.user.entity.ExamRegistration;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.07.08
+ */
+public class ExamRegistrationRoomDto extends ExamRegistration {
+
+    @ApiModelProperty(value = "考场编号")
+    private Long examRoomId;
+
+    @ApiModelProperty(value = "考试开始时间")
+    private Date examStartTime;
+
+    @ApiModelProperty(value = "考试结束时间")
+    private Date examEndTime;
+
+    public Long getExamRoomId() {
+        return examRoomId;
+    }
+
+    public void setExamRoomId(Long examRoomId) {
+        this.examRoomId = examRoomId;
+    }
+
+    public Date getExamStartTime() {
+        return examStartTime;
+    }
+
+    public void setExamStartTime(Date examStartTime) {
+        this.examStartTime = examStartTime;
+    }
+
+    public Date getExamEndTime() {
+        return examEndTime;
+    }
+
+    public void setExamEndTime(Date examEndTime) {
+        this.examEndTime = examEndTime;
+    }
+}

+ 0 - 11
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExaminationBasicDto.java

@@ -11,9 +11,6 @@ import java.math.BigDecimal;
  */
 public class ExaminationBasicDto extends ExaminationBasic {
 
-    @ApiModelProperty(value = "考点名称")
-    private String examLocationNames;
-
     @ApiModelProperty(value = "创建人名称")
     private String creatorName;
 
@@ -26,14 +23,6 @@ public class ExaminationBasicDto extends ExaminationBasic {
     @ApiModelProperty(value = "总缴费金额")
     private BigDecimal totalPaymentAmount;
 
-    public String getExamLocationNames() {
-        return examLocationNames;
-    }
-
-    public void setExamLocationNames(String examLocationNames) {
-        this.examLocationNames = examLocationNames;
-    }
-
     public String getCreatorName() {
         return creatorName;
     }

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExaminationBasic.java

@@ -24,6 +24,9 @@ public class ExaminationBasic {
 	@ApiModelProperty(value = "考点编号列表")
 	private String examLocationIdList;
 
+	@ApiModelProperty(value = "考点名称列表")
+	private String examLocationNameList;
+
 	@ApiModelProperty(value = "状态")
 	private ExamStatusEnum status;
 
@@ -105,6 +108,14 @@ public class ExaminationBasic {
 		return this.examLocationIdList;
 	}
 
+	public String getExamLocationNameList() {
+		return examLocationNameList;
+	}
+
+	public void setExamLocationNameList(String examLocationNameList) {
+		this.examLocationNameList = examLocationNameList;
+	}
+
 	public ExamModeEnum getExamMode() {
 		return examMode;
 	}

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamRegistrationQueryInfo.java

@@ -34,6 +34,9 @@ public class ExamRegistrationQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "学员状态")
     private StudentRegistrationStatusEnum status;
 
+    @ApiModelProperty(value = "是否已排考:0否,1已排考")
+    private Integer inRoom;
+
     public Integer getExamRegistrationId() {
         return examRegistrationId;
     }
@@ -97,4 +100,12 @@ public class ExamRegistrationQueryInfo extends QueryInfo {
     public void setStatus(StudentRegistrationStatusEnum status) {
         this.status = status;
     }
+
+    public Integer getInRoom() {
+        return inRoom;
+    }
+
+    public void setInRoom(Integer inRoom) {
+        this.inRoom = inRoom;
+    }
 }

+ 2 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRegistrationService.java

@@ -5,6 +5,7 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
 import com.keao.edu.user.dto.ExamRecordDto;
 import com.keao.edu.user.dto.ExamRegistrationDto;
+import com.keao.edu.user.dto.ExamRegistrationRoomDto;
 import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamRegistration;
 import com.keao.edu.user.page.ExamRecordQueryInfo;
@@ -23,7 +24,7 @@ public interface ExamRegistrationService extends BaseService<Long, ExamRegistrat
     * @param queryInfo:
     * @return com.keao.edu.common.page.PageInfo<com.keao.edu.user.entity.ExamRegistration>
     */
-   PageInfo<ExamRegistration> queryExamRegistrationStudents(ExamRegistrationQueryInfo queryInfo);
+   PageInfo<ExamRegistrationRoomDto> queryExamRegistrationStudents(ExamRegistrationQueryInfo queryInfo);
 
    void updateExamRegistration(ExamRegistration examRegistration);
 

+ 6 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java

@@ -9,6 +9,7 @@ import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.dao.*;
 import com.keao.edu.user.dto.ExamRecordDto;
 import com.keao.edu.user.dto.ExamRegistrationDto;
+import com.keao.edu.user.dto.ExamRegistrationRoomDto;
 import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.*;
 import com.keao.edu.user.enums.ExamStatusEnum;
@@ -151,20 +152,20 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
     }
 
     @Override
-    public PageInfo<ExamRegistration> queryExamRegistrationStudents(ExamRegistrationQueryInfo queryInfo) {
-        PageInfo<ExamRegistration> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+    public PageInfo<ExamRegistrationRoomDto> queryExamRegistrationStudents(ExamRegistrationQueryInfo queryInfo) {
+        PageInfo<ExamRegistrationRoomDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
         List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
         params.put("organIds", nextLevelOrganIds);
 
-        List<ExamRegistration> dataList = Collections.EMPTY_LIST;
-        int count = this.findCount(params);
+        List<ExamRegistrationRoomDto> dataList = Collections.EMPTY_LIST;
+        int count = examRegistrationDao.countExamRegist(params);
         if (count > 0) {
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
-            dataList = this.getDAO().queryPage(params);
+            dataList = examRegistrationDao.queryExamRegist(params);
             List<Integer> examIds = dataList.stream().filter(e -> Objects.nonNull(e.getOrganId())).map(ExamRegistration::getExaminationBasicId).collect(Collectors.toList());
             Map<Integer, String> examIdNameMap = this.getMap("examination_basic", "id_", "name_", examIds, Integer.class, String.class);
 

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamTeacherSalaryServiceImpl.java

@@ -103,7 +103,7 @@ public class ExamTeacherSalaryServiceImpl extends BaseServiceImpl<Long, ExamTeac
 			dataList = examTeacherSalaryDao.queryExamTeacherSalary(params);
 			List<Integer> examIds = dataList.stream().map(ExamTeacherSalaryDto::getExaminationBasicId).collect(Collectors.toList());
 			List<ExaminationBasicDto> exams = examinationBasicDao.getExams(examIds);
-
+			
 		}
 		pageInfo.setRows(dataList);
 		return pageInfo;

+ 9 - 7
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java

@@ -59,6 +59,15 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
             throw new BizException("请指定考试开始与结束时间");
         }
 
+        if(ExamModeEnum.ONLINE.equals(examinationBasic.getExamMode())){
+            examinationBasic.setExamLocationIdList(null);
+        }
+        if(StringUtils.isNotBlank(examinationBasic.getExamLocationIdList())){
+            List<Integer> organIds = Arrays.stream(examinationBasic.getExamLocationIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
+            Map<Integer, String> organNameMap = this.getMap("organization", "id_", "name_", organIds, Integer.class, String.class);
+            examinationBasic.setExamLocationNameList(StringUtils.join(organNameMap.keySet(),","));
+        }
+
         examinationBasic.setTenantId(TenantContextHolder.getTenantId().toString());
 
         List<MusicTheory> musicTheories = musicTheoryDao.getWithTenant(Integer.valueOf(examinationBasic.getTenantId()));
@@ -162,13 +171,6 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
             SysUser sysUser = sysUserDao.get(examinationBasic.getCreatorId());
             examinationBasic.setCreatorName(sysUser.getRealName());
         }
-        if(Objects.nonNull(examinationBasic.getExamLocationIdList())){
-            List<ExamLocation> examLocations = examLocationDao.getExamLocationByIds(examinationBasic.getExamLocationIdList());
-            if(!CollectionUtils.isEmpty(examLocations)){
-                String locationNames = examLocations.stream().map(ExamLocation::getName).collect(Collectors.joining(","));
-                examinationBasic.setExamLocationNames(locationNames);
-            }
-        }
         return examinationBasic;
     }
 

+ 78 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -34,6 +34,12 @@
 		<association property="examinationBasic" columnPrefix="examination_basic_" resultMap="com.keao.edu.user.dao.ExaminationBasicDao.ExaminationBasic"/>
 	</resultMap>
 
+	<resultMap id="ExamRegistrationRoomDto" type="com.keao.edu.user.dto.ExamRegistrationRoomDto" extends="ExamRegistration">
+		<result column="exam_room_id_" property="examRoomId"/>
+		<result column="exam_start_time_" property="examStartTime"/>
+		<result column="exam_end_time_" property="examEndTime"/>
+	</resultMap>
+
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="ExamRegistration" >
 		SELECT * FROM exam_registration WHERE id_ = #{id}
@@ -171,6 +177,78 @@
 		SELECT COUNT(*) FROM exam_registration er
 		<include refid="queryCondition"/>
 	</select>
+
+	<sql id="queryExamRegistCondition">
+		<where>
+			<if test="organIds!=null">
+				AND er.organ_id_ IN
+				<foreach collection="organIds" item="organId" separator="," open="(" close=")">
+					#{organId}
+				</foreach>
+			</if>
+			<if test="examId!=null">
+				AND er.examination_basic_id_ = #{examId}
+			</if>
+			<if test="organId!=null">
+				AND er.organ_id_ = #{organId}
+			</if>
+			<if test="subjectId!=null">
+				AND er.subject_id_ = #{subjectId}
+			</if>
+			<if test="level!=null">
+				AND er.level_ = #{level}
+			</if>
+			<if test="status!=null">
+				AND er.status_ = #{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
+			</if>
+			<if test="inRoom!=null and inRoom=0">
+				AND ersr.exam_room_id_ IS NULL
+			</if>
+			<if test="inRoom!=null and inRoom=1">
+				AND ersr.exam_room_id_ IS NOT NULL
+			</if>
+		</where>
+	</sql>
+
+	<select id="queryExamRegist" resultMap="ExamRegistrationRoomDto" parameterType="map">
+		SELECT
+			er.id_,
+			er.examination_basic_id_,
+			er.exam_music_theory_level_,
+			er.card_no_,
+			er.student_id_,
+			er.memo_,
+			su.real_name_ sys_user_real_name_,
+			er.last_exam_certificate_url_,
+			er.last_music_theory_certificate_url_,
+			er.level_fee_,
+			er.theory_level_fee_,
+			er.organ_id_,
+			er.subject_id_,
+			er.level_,
+			erp.trans_amount_,
+			er.status_,
+			er.create_time_,
+			ersr.exam_room_id_,
+			ero.exam_start_time_,
+			ero.exam_end_time_
+		FROM
+			exam_registration er
+			LEFT JOIN sys_user su ON er.student_id_ = su.id_
+			LEFT JOIN exam_registration_payment erp ON er.id_ = erp.exam_registration_id_
+			LEFT JOIN exam_room_student_relation ersr ON ersr.exam_registration_id_ = er.id_
+			LEFT JOIN exam_room ero ON ero.id_ = ersr.exam_room_id_
+		<include refid="queryCondition"/>
+		ORDER BY er.id_
+		<include refid="global.limit"/>
+	</select>
+
+	<select id="countExamRegist" resultType="int">
+		SELECT COUNT(*) FROM exam_registration er
+		LEFT JOIN exam_room_student_relation ersr ON ersr.exam_registration_id_ = er.id_
+		<include refid="queryCondition"/>
+	</select>
+
     <select id="countWithoutExamRoomStudentNum" resultType="int">
 		SELECT
 			COUNT(ersr.id_)

+ 9 - 2
edu-user/edu-user-server/src/main/resources/config/mybatis/ExaminationBasicMapper.xml

@@ -11,6 +11,7 @@
 		<result column="name_" property="name" />
 		<result column="exam_mode_" property="examMode" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler" />
 		<result column="exam_location_id_list_" property="examLocationIdList" />
+		<result column="exam_location_name_list_" property="examLocationNameList" />
 		<result column="status_" property="status" typeHandler="com.keao.edu.common.dal.CustomEnumTypeHandler" />
 		<result column="enroll_start_time_" property="enrollStartTime" />
 		<result column="enroll_end_time_" property="enrollEndTime" />
@@ -46,8 +47,8 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.keao.edu.user.entity.ExaminationBasic" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO examination_basic (id_,name_,exam_mode_,exam_location_id_list_,status_,enroll_start_time_,enroll_end_time_,expect_exam_start_time_,expect_exam_end_time_,poster_title_,poster_profile_,poster_background_img_,creator_id_,create_time_,update_time_,tenant_id_,memo_,organ_id_)
-		VALUES(#{id},#{name},#{examMode,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examLocationIdList},#{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{enrollStartTime},#{enrollEndTime},#{expectExamStartTime},#{expectExamEndTime},#{posterTitle},#{posterProfile},#{posterBackgroundImg},#{creatorId},NOW(),NOW(),#{tenantId},#{memo},#{organId})
+		INSERT INTO examination_basic (id_,name_,exam_mode_,exam_location_id_list_,exam_location_name_list_,status_,enroll_start_time_,enroll_end_time_,expect_exam_start_time_,expect_exam_end_time_,poster_title_,poster_profile_,poster_background_img_,creator_id_,create_time_,update_time_,tenant_id_,memo_,organ_id_)
+		VALUES(#{id},#{name},#{examMode,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{examLocationIdList},#{examLocationNameList},#{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},#{enrollStartTime},#{enrollEndTime},#{expectExamStartTime},#{expectExamEndTime},#{posterTitle},#{posterProfile},#{posterBackgroundImg},#{creatorId},NOW(),NOW(),#{tenantId},#{memo},#{organId})
 	</insert>
 
 	<update id="update" parameterType="com.keao.edu.user.entity.ExamOrganizationRelation">
@@ -62,6 +63,9 @@
 			<if test="examLocationIdList != null">
 				exam_location_id_list_ = #{examLocationIdList},
 			</if>
+			<if test="examLocationNameList != null">
+				exam_location_name_list_ = #{examLocationNameList},
+			</if>
 			<if test="status != null">
 				status_ = #{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
 			</if>
@@ -112,6 +116,9 @@
 				<if test="examLocationIdList != null">
 					exam_location_id_list_ = #{exam.examLocationIdList},
 				</if>
+				<if test="examLocationNameList != null">
+					exam_location_name_list_ = #{exam.examLocationNameList},
+				</if>
 				<if test="status != null">
 					status_ = #{exam.status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
 				</if>