Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/edu-saas

zouxuan 5 years ago
parent
commit
a9725abf7c

+ 8 - 7
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRegistrationController.java

@@ -10,11 +10,12 @@ 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;
 import com.keao.edu.user.page.ExamRecordQueryInfo;
 import com.keao.edu.user.page.ExamRegistrationQueryInfo;
+import com.keao.edu.user.service.EmployeeService;
 import com.keao.edu.user.service.ExamRegistrationService;
-import com.keao.edu.user.service.OrganizationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.Objects;
 
 /**
  * @Author Joburgess
@@ -40,23 +42,22 @@ public class ExamRegistrationController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private OrganizationService organizationService;
+    private EmployeeService employeeService;
 
     @ApiOperation(value = "学员报名记录查询")
     @GetMapping(value = "list")
     @PreAuthorize("@pcs.hasPermissions('examRegistration/list')")
     public HttpResponseResult<PageInfo<ExamRegistrationRoomDto>> list(ExamRegistrationQueryInfo queryInfo) {
-        /*SysUser sysUser = sysUserFeignService.queryUserInfo();
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (!sysUser.getIsSuperAdmin() && Objects.isNull(queryInfo.getOrganId())) {
             Employee employee = employeeService.get(sysUser.getId());
             if(Objects.isNull(employee)){
                 return failed("用户信息异常");
             }
             queryInfo.setOrganId(employee.getOrganId());
-        }*/
-//        if(queryInfo.getOrganId() != null){
-//            queryInfo.setOrganIds(organizationService.getChildOrganIds(queryInfo.getOrganId(),true));
-//        }
+        }else{
+            queryInfo.setOrganId(null);
+        }
         return succeed(examRegistrationService.queryExamRegistrationStudents(queryInfo));
     }
 

+ 0 - 10
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExaminationQueryInfo.java

@@ -11,16 +11,6 @@ public class ExaminationQueryInfo extends QueryInfo {
 
     private ExamStatusEnum examStatus;
 
-    private Integer organId;
-
-    public Integer getOrganId() {
-        return organId;
-    }
-
-    public void setOrganId(Integer organId) {
-        this.organId = organId;
-    }
-
     public ExamStatusEnum getExamStatus() {
         return examStatus;
     }

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

@@ -163,8 +163,11 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
-//        List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
-//        params.put("organIds", nextLevelOrganIds);
+        if(Objects.nonNull(queryInfo.getExamId())){
+            List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
+            params.put("organIds", nextLevelOrganIds);
+            params.put("organId", null);
+        }
 
         List<ExamRegistrationRoomDto> dataList = Collections.EMPTY_LIST;
         int count = examRegistrationDao.countExamRegist(params);
@@ -173,7 +176,7 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
             params.put("offset", pageInfo.getOffset());
             dataList = examRegistrationDao.queryExamRegist(params);
             List<Long> 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);
+            Map<Long, String> examIdNameMap = this.getMap("examination_basic", "id_", "name_", examIds, Long.class, String.class);
 
             List<Integer> organIds = dataList.stream().filter(e -> Objects.nonNull(e.getOrganId())).map(ExamRegistration::getOrganId).collect(Collectors.toList());
             Map<Integer, String> organIdNameMap = this.getMap("organization", "id_", "name_", organIds, Integer.class, String.class);

+ 26 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamSubjectSongServiceImpl.java

@@ -60,7 +60,8 @@ public class ExamSubjectSongServiceImpl extends BaseServiceImpl<Long, ExamSubjec
 		if(Objects.isNull(examinationBasic)){
 			throw new BizException("考级项目不存在");
 		}
-		if(!ExamStatusEnum.SETTING.equals(examinationBasic.getStatus())){
+		if(!ExamStatusEnum.SETTING.equals(examinationBasic.getStatus())
+			&&!ExamStatusEnum.NOT_START.equals(examinationBasic.getStatus())){
 			throw new BizException("此状态考级项目不支持添加考级内容");
 		}
 
@@ -160,7 +161,10 @@ public class ExamSubjectSongServiceImpl extends BaseServiceImpl<Long, ExamSubjec
 						List<String> songNames=new ArrayList<>();
 						for (String s : examSubjectSongDto.getPerformSongIdList().split(",")) {
 							if(examSongIds.contains(Integer.valueOf(s))){
-								songNames.add(idExamSongMap.get(Integer.valueOf(s)).getSongName());
+								ExamSong examSong = idExamSongMap.get(Integer.valueOf(s));
+								if(Objects.nonNull(examSong)){
+									songNames.add(examSong.getSongName());
+								}
 							}
 						}
 						examSubjectSongDto.setPerformSongNames(StringUtils.join(songNames, ","));
@@ -173,6 +177,26 @@ public class ExamSubjectSongServiceImpl extends BaseServiceImpl<Long, ExamSubjec
 	}
 
 	@Override
+	public int delete(Long id) {
+		if(Objects.isNull(id)){
+			throw new BizException("参数错误");
+		}
+		ExamSubjectSong examSubjectSong = examSubjectSongDao.get(id);
+		if(Objects.isNull(examSubjectSong)){
+			throw new BizException("数据错误");
+		}
+		ExaminationBasic examinationBasic = examinationBasicDao.get(examSubjectSong.getExaminationBasicId().longValue());
+		if(Objects.isNull(examinationBasic)){
+			throw new BizException("考级项目不存在");
+		}
+		if(!ExamStatusEnum.SETTING.equals(examinationBasic.getStatus())
+			&&!ExamStatusEnum.NOT_START.equals(examinationBasic.getStatus())){
+			throw new BizException("此状态无法删除");
+		}
+		return super.delete(id);
+	}
+
+	@Override
     public List<ExamSong> getExamSubjectSong(Integer examinationBasicId,Long examSubjectId, Integer level) {
 		List<ExamSong> examSongs = new ArrayList<>();
 		ExamSubjectSong examSubjectSong = examSubjectSongDao.getExamSubjectSong(examinationBasicId,examSubjectId, level);

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

@@ -20,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
@@ -130,6 +131,7 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void updateExamBasicStatus(Long examId, ExamStatusEnum statusEnum) {
         if(Objects.isNull(examId)){
             throw new BizException("请指定考级项目");
@@ -151,9 +153,6 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
-        List<Integer> childOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
-        params.put("organIds", childOrganIds);
-
         List<ExaminationBasicDto> dataList = new ArrayList<>();
         int count = examinationBasicDao.countExaminationBasics(params);
         if (count > 0) {
@@ -185,6 +184,7 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
     public ExaminationBasicDto getExaminationBasic(Integer examId) {
         if (Objects.isNull(examId)) {
             throw new BizException("请指定考级项目");

+ 7 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -138,6 +138,12 @@
 
 	<sql id="queryCondition">
 		<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>
@@ -254,7 +260,7 @@
 			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_
+		ORDER BY er.id_ DESC
 		<include refid="global.limit"/>
 	</select>
 

+ 15 - 12
edu-user/edu-user-server/src/main/resources/config/mybatis/ExaminationBasicMapper.xml

@@ -211,33 +211,36 @@
 		<include refid="queryCondition"/>
 	</select>
 
-	<sql id="indExaminationBasicsCondition">
+	<sql id="findExaminationBasicsCondition">
 		<where>
-			<if test="organIds!=null">
-				AND organ_id_ IN
-				<foreach collection="organIds" item="organId" separator="," open="(" close=")">
-					#{organId}
-				</foreach>
+			<if test="organId!=null">
+				AND eor.organ_id_ = #{organId}
 			</if>
 			<if test="examStatus!=null">
-				AND status_=#{examStatus}
+				AND eb.status_=#{examStatus}
 			</if>
 			<if test="search!=null">
-				AND (id_=#{search} OR name_ LIKE CONCAT(#{search}, '%'))
+				AND (eb.id_=#{search} OR eb.name_ LIKE CONCAT(#{search}, '%'))
 			</if>
 		</where>
 	</sql>
 
 	<select id="findExaminationBasics" resultMap="ExaminationBasicDto" parameterType="map">
-		SELECT * FROM examination_basic
-		<include refid="indExaminationBasicsCondition"/>
+		SELECT eb.*
+		FROM
+			exam_organization_relation eor
+		LEFT JOIN examination_basic eb ON eor.examination_basic_id_ = eb.id_
+		<include refid="findExaminationBasicsCondition"/>
 		ORDER BY id_ DESC
 		<include refid="global.limit"/>
 	</select>
 
 	<select id="countExaminationBasics" resultType="int">
-		SELECT COUNT(*) FROM examination_basic
-		<include refid="indExaminationBasicsCondition"/>
+		SELECT COUNT(eb.id_)
+		FROM
+			exam_organization_relation eor
+		LEFT JOIN examination_basic eb ON eor.examination_basic_id_ = eb.id_
+		<include refid="findExaminationBasicsCondition"/>
 	</select>
 
     <select id="getNeedUpdateStatusExams" resultMap="ExaminationBasic">