소스 검색

add 订单状态查询接口

周箭河 5 년 전
부모
커밋
10b95d7141
14개의 변경된 파일241개의 추가작업 그리고 176개의 파일을 삭제
  1. 1 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/config/ResourceServerConfig.java
  2. 10 10
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamOrderController.java
  3. 9 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamLocationDao.java
  4. 7 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRegistrationDao.java
  5. 3 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRegistrationPaymentDao.java
  6. 9 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamRegistrationPayment.java
  7. 13 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExaminationBasic.java
  8. 1 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRegistrationPaymentService.java
  9. 5 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationPaymentServiceImpl.java
  10. 1 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java
  11. 162 158
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java
  12. 5 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamLocationMapper.xml
  13. 4 2
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml
  14. 11 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationPaymentMapper.xml

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/config/ResourceServerConfig.java

@@ -26,7 +26,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
     public void configure(HttpSecurity http) throws Exception {
         http.authorizeRequests()
                 .antMatchers("/v2/api-docs", "/su/**", "/student/apply", "/examRegistration/ocr", "/examOrder/paymentResult",
-                        "/examOrder/notify")
+                        "/examOrder/notify","/examinationBasic/getInfo","/examOrder/pageList")
                 .permitAll()
                 .anyRequest().authenticated().and().csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler)
                 .authenticationEntryPoint(baseAuthenticationEntryPoint).and();

+ 10 - 10
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamOrderController.java

@@ -47,16 +47,16 @@ public class ExamOrderController extends BaseController {
     private EmployeeService employeeService;
 
     @ApiOperation(value = "缴费列表")
-    @GetMapping(value = "list")
-    @PreAuthorize("@pcs.hasPermissions('examOrder/pageList')")
-    public HttpResponseResult<PageInfo<ExamRegistration>> list(ExamRegistrationQueryInfo queryInfo) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (!sysUser.getIsSuperAdmin() && Objects.isNull(queryInfo.getOrganId())) {
-            Employee employee = employeeService.get(sysUser.getId());
-            if (Objects.nonNull(employee)) {
-                queryInfo.setOrganId(employee.getOrganId());
-            }
-        }
+    @GetMapping(value = "pageList")
+    //@PreAuthorize("@pcs.hasPermissions('examOrder/pageList')")
+    public HttpResponseResult<PageInfo<ExamRegistrationPayment>> list(ExamRegistrationQueryInfo queryInfo) {
+//        SysUser sysUser = sysUserFeignService.queryUserInfo();
+//        if (!sysUser.getIsSuperAdmin() && Objects.isNull(queryInfo.getOrganId())) {
+//            Employee employee = employeeService.get(sysUser.getId());
+//            if (Objects.nonNull(employee)) {
+//                queryInfo.setOrganId(employee.getOrganId());
+//            }
+//        }
         return succeed(examRegistrationPaymentService.pageList(queryInfo));
     }
 

+ 9 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamLocationDao.java

@@ -3,8 +3,16 @@ package com.keao.edu.user.dao;
 
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.user.entity.ExamLocation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface ExamLocationDao extends BaseDAO<Integer, ExamLocation> {
 
-	
+    /**
+     * 根据ids获取考点
+     * @param ids
+     * @return
+     */
+    List<ExamLocation> getExamLocationByIds(@Param("ids") String ids);
 }

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

@@ -106,4 +106,11 @@ public interface ExamRegistrationDao extends BaseDAO<Long, ExamRegistration> {
      * @return
      */
     ExamRegistrationDto getExamRegistration(@Param("examRegistrationId") Long examRegistrationId);
+
+    /**
+     * 获取单条报名信息
+     * @param id
+     * @return
+     */
+    ExamRegistration getExamRegistrationInfo(@Param("id") Integer id);
 }

+ 3 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRegistrationPaymentDao.java

@@ -40,6 +40,7 @@ public interface ExamRegistrationPaymentDao extends BaseDAO<Long, ExamRegistrati
 
     /**
      * 获取报名订单信息
+     *
      * @param orderNo
      * @return
      */
@@ -48,6 +49,7 @@ public interface ExamRegistrationPaymentDao extends BaseDAO<Long, ExamRegistrati
 
     /**
      * 获取过期未支付的订单列表
+     *
      * @param orderNoList
      * @param transStatus
      * @param beforeTime
@@ -55,4 +57,5 @@ public interface ExamRegistrationPaymentDao extends BaseDAO<Long, ExamRegistrati
      */
     List<ExamRegistrationPayment> findOrdersOverTime(@Param("orderNoList") List<String> orderNoList, @Param("transStatus") TransStatusEnum transStatus, @Param("beforeTime") Date beforeTime);
 
+    List<ExamRegistrationPayment> getOrderPageList();
 }

+ 9 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamRegistrationPayment.java

@@ -52,6 +52,8 @@ public class ExamRegistrationPayment {
 	private java.util.Date updateTime;
 
 	private String tenantId;
+
+	private ExamRegistration examRegistration;
 	
 	public void setId(Long id){
 		this.id = id;
@@ -186,4 +188,11 @@ public class ExamRegistrationPayment {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+	public ExamRegistration getExamRegistration() {
+		return examRegistration;
+	}
+
+	public void setExamRegistration(ExamRegistration examRegistration) {
+		this.examRegistration = examRegistration;
+	}
 }

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

@@ -5,6 +5,8 @@ import com.keao.edu.user.enums.ExamStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.List;
+
 /**
  * 对应数据库表(examination_basic):
  */
@@ -49,6 +51,9 @@ public class ExaminationBasic {
 	@ApiModelProperty(value = "备注")
 	private String memo;
 
+	@ApiModelProperty(value = "考试地址")
+	private List<ExamLocation> examLocations;
+
 	private java.util.Date createTime;
 
 	private java.util.Date updateTime;
@@ -190,6 +195,14 @@ public class ExaminationBasic {
 	public String getTenantId(){
 		return this.tenantId;
 	}
+
+	public List<ExamLocation> getExamLocations() {
+		return examLocations;
+	}
+
+	public void setExamLocations(List<ExamLocation> examLocations) {
+		this.examLocations = examLocations;
+	}
 			
 	@Override
 	public String toString() {

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

@@ -46,7 +46,7 @@ public interface ExamRegistrationPaymentService extends BaseService<Long, ExamRe
     ExamRegistrationPayment updateOrder(Map<String,String> rpMap);
 
 
-    PageInfo<ExamRegistration> pageList(ExamRegistrationQueryInfo queryInfo);
+    PageInfo<ExamRegistrationPayment> pageList(ExamRegistrationQueryInfo queryInfo);
 
 
     /**

+ 5 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationPaymentServiceImpl.java

@@ -94,8 +94,11 @@ public class ExamRegistrationPaymentServiceImpl extends BaseServiceImpl<Long, Ex
     }
 
     @Override
-    public PageInfo<ExamRegistration> pageList(ExamRegistrationQueryInfo queryInfo) {
-        return null;
+    public PageInfo<ExamRegistrationPayment> pageList(ExamRegistrationQueryInfo queryInfo) {
+        PageInfo<ExamRegistrationPayment> examRegistrationPageInfo = new PageInfo<>();
+        List<ExamRegistrationPayment> orderPageList = examRegistrationPaymentDao.getOrderPageList();
+        examRegistrationPageInfo.setRows(orderPageList);
+        return examRegistrationPageInfo;
     }
 
     @Override

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

@@ -95,7 +95,7 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
         examRegistration.setUpdateTime(nowDate);
         examRegistrationDao.insert(examRegistration);
 
-        ExamRegistrationPayment examIngOrder = examRegistrationPaymentService.getExamIngOrder(examinationBasic.getId(), examRegistration.getSubjectId());
+        ExamRegistrationPayment examIngOrder = examRegistrationPaymentService.getExamIngOrder(examinationBasic.getId(), examRegistration.getStudentId());
         if (examIngOrder != null) {
             examIngOrder.setTransStatus(TransStatusEnum.CLOSE);
             examIngOrder.setMemo("用户主动放弃支付");

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

@@ -5,16 +5,10 @@ import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.common.tenant.TenantContextHolder;
-import com.keao.edu.user.dao.ExamMusicTheoryDao;
-import com.keao.edu.user.dao.ExamOrganizationRelationDao;
-import com.keao.edu.user.dao.ExaminationBasicDao;
-import com.keao.edu.user.dao.MusicTheoryDao;
+import com.keao.edu.user.dao.*;
 import com.keao.edu.user.dto.ExaminationBasicDto;
-import com.keao.edu.user.entity.ExamMusicTheory;
-import com.keao.edu.user.entity.ExamOrganizationRelation;
-import com.keao.edu.user.entity.ExaminationBasic;
+import com.keao.edu.user.entity.*;
 import com.keao.edu.user.api.enums.ExamModeEnum;
-import com.keao.edu.user.entity.MusicTheory;
 import com.keao.edu.user.enums.ExamStatusEnum;
 import com.keao.edu.user.page.ExaminationQueryInfo;
 import com.keao.edu.user.service.ExaminationBasicService;
@@ -30,157 +24,167 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
-public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, ExaminationBasic> implements ExaminationBasicService{
-
-	@Autowired
-	private ExaminationBasicDao examinationBasicDao;
-	@Autowired
-	private ExamOrganizationRelationDao examOrganizationRelationDao;
-	@Autowired
-	private MusicTheoryDao musicTheoryDao;
-	@Autowired
-	private ExamMusicTheoryDao examMusicTheoryDao;
-
-	@Override
-	public BaseDAO<Long, ExaminationBasic> getDAO() {
-		return examinationBasicDao;
-	}
-
-	@Override
-	public ExaminationBasic addExaminationBasic(ExaminationBasic examinationBasic) {
-		if(StringUtils.isBlank(examinationBasic.getName())){
-			throw new BizException("请填写项目名称");
-		}
-		if(Objects.isNull(examinationBasic.getExamMode())){
-			throw new BizException("请选择考试类型");
-		}
-		if(ExamModeEnum.OFFLINE.equals(examinationBasic.getExamMode())&&StringUtils.isBlank(examinationBasic.getExamLocationIdList())){
-			throw new BizException("请指定考试地点");
-		}
-		if(Objects.isNull(examinationBasic.getEnrollStartTime())||Objects.isNull(examinationBasic.getEnrollEndTime())){
-			throw new BizException("请指定考试开始与结束时间");
-		}
-
-		examinationBasic.setTenantId(TenantContextHolder.getTenantId().toString());
-
-		List<MusicTheory> musicTheories = musicTheoryDao.getWithTenant(Integer.valueOf(examinationBasic.getTenantId()));
-		if(CollectionUtils.isEmpty(musicTheories)){
-			throw new BizException("请设置乐理");
-		}
-
-		examinationBasic.setStatus(ExamStatusEnum.SETTING);
-		examinationBasicDao.insert(examinationBasic);
-
-		List<ExamMusicTheory> examMusicTheories=new ArrayList<>();
-		for (MusicTheory musicTheory : musicTheories) {
-			ExamMusicTheory emt=new ExamMusicTheory();
-			emt.setExaminationBasicId(examinationBasic.getId());
-			emt.setTenantId(examinationBasic.getTenantId());
-			emt.setLevel(musicTheory.getLevel());
-			emt.setFee(musicTheory.getFee());
-			examMusicTheories.add(emt);
-		}
-
-		examMusicTheoryDao.batchInsert(examMusicTheories);
-
-		return examinationBasic;
-	}
-
-	@Override
-	public void updateExamStatus() {
-		List<ExaminationBasic> needUpdateStatusExams = examinationBasicDao.getNeedUpdateStatusExams();
-		if(CollectionUtils.isEmpty(needUpdateStatusExams)){
-			return;
-		}
-		Date now=new Date();
-		for (ExaminationBasic needUpdateStatusExam : needUpdateStatusExams) {
-			if(now.compareTo(needUpdateStatusExam.getEnrollStartTime())>=0){
-				needUpdateStatusExam.setStatus(ExamStatusEnum.APPLYING);
-			}
-			if(now.compareTo(needUpdateStatusExam.getEnrollEndTime())>=0){
-				needUpdateStatusExam.setStatus(ExamStatusEnum.APPLIED);
-			}
-			if(now.compareTo(needUpdateStatusExam.getExpectExamStartTime())>=0){
-				needUpdateStatusExam.setStatus(ExamStatusEnum.EXAM_ING);
-			}
-		}
-		examinationBasicDao.batchUpdate(needUpdateStatusExams);
-	}
-
-	@Override
-	public PageInfo<ExaminationBasicDto> findExaminationBasics(ExaminationQueryInfo queryInfo) {
-		PageInfo<ExaminationBasicDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<String, Object>();
-		MapUtil.populateMap(params, queryInfo);
-
-		List<ExaminationBasicDto> dataList = new ArrayList<>();
-		int count = examinationBasicDao.countExaminationBasics(params);
-		if (count > 0) {
-			pageInfo.setTotal(count);
-			params.put("offset", pageInfo.getOffset());
-			dataList = examinationBasicDao.findExaminationBasics(params);
-			List<Integer> examIds = dataList.stream().map(ExaminationBasicDto::getId).collect(Collectors.toList());
-			List<ExamOrganizationRelation> examOrgans = new ArrayList<>();
-			if(!CollectionUtils.isEmpty(examIds)){
-				examOrganizationRelationDao.getWithExams(examIds);
-			}
-			Map<Integer, List<ExamOrganizationRelation>> examOrgansMap = new HashMap<>();
-			if(!CollectionUtils.isEmpty(examOrgans)){
-				examOrgansMap = examOrgans.stream().collect(Collectors.groupingBy(ExamOrganizationRelation::getExaminationBasicId));
-			}
-			for (ExaminationBasicDto examinationBasicDto : dataList) {
-				List<ExamOrganizationRelation> examOrganizationRelations = examOrgansMap.get(examinationBasicDto.getId());
-				if(CollectionUtils.isEmpty(examOrganizationRelations)){
-					continue;
-				}
-				long totalRegistrationStudentNum = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalRegistrationStudentNum).count();
-				long totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalPaymentAmount).count();
-				examinationBasicDto.setTotalRegistrationStudentNum((int) totalRegistrationStudentNum);
-				examinationBasicDto.setTotalPaymentAmount(new BigDecimal(totalPaymentAmount));
-			}
-		}
-		pageInfo.setRows(dataList);
-		return pageInfo;
-	}
-
-	@Override
-	public ExaminationBasicDto getExaminationBasic(Integer examId) {
-		if(Objects.isNull(examId)){
-			throw new BizException("请指定考级项目");
-		}
-		ExaminationBasicDto examinationBasic = examinationBasicDao.getExaminationBasic(examId);
-		if(Objects.isNull(examinationBasic)){
-			throw new BizException("指定的考级项目不存在");
-		}
-		List<ExamOrganizationRelation> examOrganizationRelations = examOrganizationRelationDao.getWithExam(examId);
-		if(!CollectionUtils.isEmpty(examOrganizationRelations)){
-			long totalRegistrationStudentNum = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalRegistrationStudentNum).count();
-			long totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalPaymentAmount).count();
-			examinationBasic.setTotalRegistrationStudentNum((int) totalRegistrationStudentNum);
-			examinationBasic.setTotalPaymentAmount(new BigDecimal(totalPaymentAmount));
-		}
-		return examinationBasic;
-	}
-
-	@Override
-	public void closeExam(Integer examId, String reason) {
-		if(Objects.isNull(examId)){
-			throw new BizException("请指定考级项目");
-		}
-		ExaminationBasic examinationBasic = examinationBasicDao.get(examId.longValue());
-		if(Objects.isNull(examinationBasic)){
-			throw new BizException("考级项目不存在");
-		}
-		if(StringUtils.isBlank(reason)){
-			reason="后台手动关闭";
-		}
-		examinationBasic.setMemo(reason);
-		examinationBasic.setStatus(ExamStatusEnum.CLOSE);
-		examinationBasicDao.update(examinationBasic);
-	}
+public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, ExaminationBasic> implements ExaminationBasicService {
+
+    @Autowired
+    private ExaminationBasicDao examinationBasicDao;
+    @Autowired
+    private ExamOrganizationRelationDao examOrganizationRelationDao;
+    @Autowired
+    private MusicTheoryDao musicTheoryDao;
+    @Autowired
+    private ExamMusicTheoryDao examMusicTheoryDao;
+    @Autowired
+    private ExamLocationDao examLocationDao;
+
+    @Override
+    public BaseDAO<Long, ExaminationBasic> getDAO() {
+        return examinationBasicDao;
+    }
+
+    @Override
+    public ExaminationBasic addExaminationBasic(ExaminationBasic examinationBasic) {
+        if (StringUtils.isBlank(examinationBasic.getName())) {
+            throw new BizException("请填写项目名称");
+        }
+        if (Objects.isNull(examinationBasic.getExamMode())) {
+            throw new BizException("请选择考试类型");
+        }
+        if (ExamModeEnum.OFFLINE.equals(examinationBasic.getExamMode()) && StringUtils.isBlank(examinationBasic.getExamLocationIdList())) {
+            throw new BizException("请指定考试地点");
+        }
+        if (Objects.isNull(examinationBasic.getEnrollStartTime()) || Objects.isNull(examinationBasic.getEnrollEndTime())) {
+            throw new BizException("请指定考试开始与结束时间");
+        }
+
+        examinationBasic.setTenantId(TenantContextHolder.getTenantId().toString());
+
+        List<MusicTheory> musicTheories = musicTheoryDao.getWithTenant(Integer.valueOf(examinationBasic.getTenantId()));
+        if (CollectionUtils.isEmpty(musicTheories)) {
+            throw new BizException("请设置乐理");
+        }
+
+        examinationBasic.setStatus(ExamStatusEnum.SETTING);
+        examinationBasicDao.insert(examinationBasic);
+
+        List<ExamMusicTheory> examMusicTheories = new ArrayList<>();
+        for (MusicTheory musicTheory : musicTheories) {
+            ExamMusicTheory emt = new ExamMusicTheory();
+            emt.setExaminationBasicId(examinationBasic.getId());
+            emt.setTenantId(examinationBasic.getTenantId());
+            emt.setLevel(musicTheory.getLevel());
+            emt.setFee(musicTheory.getFee());
+            examMusicTheories.add(emt);
+        }
+
+        examMusicTheoryDao.batchInsert(examMusicTheories);
+
+        return examinationBasic;
+    }
+
+    @Override
+    public void updateExamStatus() {
+        List<ExaminationBasic> needUpdateStatusExams = examinationBasicDao.getNeedUpdateStatusExams();
+        if (CollectionUtils.isEmpty(needUpdateStatusExams)) {
+            return;
+        }
+        Date now = new Date();
+        for (ExaminationBasic needUpdateStatusExam : needUpdateStatusExams) {
+            if (now.compareTo(needUpdateStatusExam.getEnrollStartTime()) >= 0) {
+                needUpdateStatusExam.setStatus(ExamStatusEnum.APPLYING);
+            }
+            if (now.compareTo(needUpdateStatusExam.getEnrollEndTime()) >= 0) {
+                needUpdateStatusExam.setStatus(ExamStatusEnum.APPLIED);
+            }
+            if (now.compareTo(needUpdateStatusExam.getExpectExamStartTime()) >= 0) {
+                needUpdateStatusExam.setStatus(ExamStatusEnum.EXAM_ING);
+            }
+        }
+        examinationBasicDao.batchUpdate(needUpdateStatusExams);
+    }
+
+    @Override
+    public PageInfo<ExaminationBasicDto> findExaminationBasics(ExaminationQueryInfo queryInfo) {
+        PageInfo<ExaminationBasicDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<ExaminationBasicDto> dataList = new ArrayList<>();
+        int count = examinationBasicDao.countExaminationBasics(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = examinationBasicDao.findExaminationBasics(params);
+            List<Integer> examIds = dataList.stream().map(ExaminationBasicDto::getId).collect(Collectors.toList());
+            List<ExamOrganizationRelation> examOrgans = new ArrayList<>();
+            if (!CollectionUtils.isEmpty(examIds)) {
+                examOrganizationRelationDao.getWithExams(examIds);
+            }
+            Map<Integer, List<ExamOrganizationRelation>> examOrgansMap = new HashMap<>();
+            if (!CollectionUtils.isEmpty(examOrgans)) {
+                examOrgansMap = examOrgans.stream().collect(Collectors.groupingBy(ExamOrganizationRelation::getExaminationBasicId));
+            }
+            for (ExaminationBasicDto examinationBasicDto : dataList) {
+                List<ExamOrganizationRelation> examOrganizationRelations = examOrgansMap.get(examinationBasicDto.getId());
+                if (CollectionUtils.isEmpty(examOrganizationRelations)) {
+                    continue;
+                }
+                long totalRegistrationStudentNum = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalRegistrationStudentNum).count();
+                long totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalPaymentAmount).count();
+                examinationBasicDto.setTotalRegistrationStudentNum((int) totalRegistrationStudentNum);
+                examinationBasicDto.setTotalPaymentAmount(new BigDecimal(totalPaymentAmount));
+            }
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
+    public ExaminationBasicDto getExaminationBasic(Integer examId) {
+        if (Objects.isNull(examId)) {
+            throw new BizException("请指定考级项目");
+        }
+        ExaminationBasicDto examinationBasic = examinationBasicDao.getExaminationBasic(examId);
+        if (Objects.isNull(examinationBasic)) {
+            throw new BizException("指定的考级项目不存在");
+        }
+        List<ExamOrganizationRelation> examOrganizationRelations = examOrganizationRelationDao.getWithExam(examId);
+        if (!CollectionUtils.isEmpty(examOrganizationRelations)) {
+            long totalRegistrationStudentNum = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalRegistrationStudentNum).count();
+            long totalPaymentAmount = examOrganizationRelations.stream().map(ExamOrganizationRelation::getTotalPaymentAmount).count();
+            examinationBasic.setTotalRegistrationStudentNum((int) totalRegistrationStudentNum);
+            examinationBasic.setTotalPaymentAmount(new BigDecimal(totalPaymentAmount));
+        }
+        return examinationBasic;
+    }
+
+    @Override
+    public void closeExam(Integer examId, String reason) {
+        if (Objects.isNull(examId)) {
+            throw new BizException("请指定考级项目");
+        }
+        ExaminationBasic examinationBasic = examinationBasicDao.get(examId.longValue());
+        if (Objects.isNull(examinationBasic)) {
+            throw new BizException("考级项目不存在");
+        }
+        if (StringUtils.isBlank(reason)) {
+            reason = "后台手动关闭";
+        }
+        examinationBasic.setMemo(reason);
+        examinationBasic.setStatus(ExamStatusEnum.CLOSE);
+        examinationBasicDao.update(examinationBasic);
+    }
 
     @Override
     public ExaminationBasic getInfo(Integer examId) {
-		return examinationBasicDao.get(examId.longValue());
-	}
+        ExaminationBasic examinationBasic = examinationBasicDao.get(examId.longValue());
+        if (examinationBasic == null) {
+            throw new BizException("考试项目不存在,请核对");
+        }
+        if (!StringUtils.isBlank(examinationBasic.getExamLocationIdList())) {
+            List<ExamLocation> examLocations = examLocationDao.getExamLocationByIds(examinationBasic.getExamLocationIdList());
+            examinationBasic.setExamLocations(examLocations);
+        }
+        return examinationBasic;
+    }
 }

+ 5 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamLocationMapper.xml

@@ -99,4 +99,9 @@
 		SELECT COUNT(*) FROM exam_location
 		<include refid="queryCondition"/>
 	</select>
+
+	<!-- 根据ids获取考点 -->
+	<select id="getExamLocationByIds" resultMap="ExamLocation">
+		SELECT * FROM exam_location WHERE FIND_IN_SET(id_,#{ids})
+	</select>
 </mapper>

+ 4 - 2
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -7,7 +7,7 @@
 <mapper namespace="com.keao.edu.user.dao.ExamRegistrationDao">
 
 	<resultMap type="com.keao.edu.user.entity.ExamRegistration" id="ExamRegistration">
-		<result column="id_" property="id" />
+		<id column="id_" property="id" />
 		<result column="examination_basic_id_" property="examinationBasicId" />
 		<result column="student_id_" property="studentId" />
 		<result column="organ_id_" property="organId" />
@@ -19,14 +19,16 @@
 		<result column="last_exam_certificate_url_" property="lastExamCertificateUrl" />
 		<result column="exam_music_theory_level_" property="examMusicTheoryLevel" />
 		<result column="theory_level_fee_" property="theoryLevelFee" />
+		<result column="last_music_theory_level_" property="lastMusicTheoryLevel" />
+		<result column="last_music_theory_certificate_url_" property="lastMusicTheoryCertificateUrl" />
 		<result column="adviser_name_" property="adviserName" />
 		<result column="adviser_phone_" property="adviserPhone" />
 		<result column="card_no_" property="cardNo" />
 		<result column="status_" property="status" />
-		<result column="memo_" property="memo" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 		<result column="tenant_id_" property="tenantId" />
+		<result column="memo_" property="memo" />
 		<association property="sysUser" columnPrefix="sys_user_" resultMap="com.keao.edu.user.dao.SysUserDao.SysUser"/>
 		<association property="subject" columnPrefix="subject_" resultMap="com.keao.edu.user.dao.SubjectDao.Subject"/>
 	</resultMap>

+ 11 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationPaymentMapper.xml

@@ -79,6 +79,9 @@
             <if test="transNo != null">
                 trans_no_ = #{transNo},
             </if>
+            <if test="payType != null">
+                pay_type_ = #{payType},
+            </if>
             <if test="payChannel != null">
                 pay_channel_ = #{payChannel},
             </if>
@@ -150,4 +153,12 @@
         AND trans_status_=#{transStatus,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
         <![CDATA[ AND create_time_ <= ]]> #{beforeTime}
     </select>
+
+    <resultMap id="pageList" type="com.keao.edu.user.entity.ExamRegistrationPayment" extends="ExamRegistrationPayment">
+        <association property="examRegistration" select="com.keao.edu.user.dao.ExamRegistrationDao.get" column="{id=exam_registration_id_}"/>
+    </resultMap>
+    <!-- 获取订单列表 -->
+    <select id="getOrderPageList" resultMap="pageList">
+        SELECT * FROM exam_registration_payment
+    </select>
 </mapper>