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

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamSongDao.java
#	edu-user/edu-user-server/src/main/resources/config/mybatis/ExamSongMapper.xml
Joburgess 5 лет назад
Родитель
Сommit
a45d5816e4
24 измененных файлов с 827 добавлено и 149 удалено
  1. 0 3
      edu-common/src/main/java/com/keao/edu/common/dal/BaseDAO.java
  2. 21 4
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRegistrationController.java
  3. 11 3
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamSongController.java
  4. 2 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/StudentController.java
  5. 0 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/TenantInfoController.java
  6. 30 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRegistrationDao.java
  7. 16 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamSongDao.java
  8. 52 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRecordDto.java
  9. 73 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRegistrationDto.java
  10. 1 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamRegistration.java
  11. 23 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamRegistrationPayment.java
  12. 19 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamRecordQueryInfo.java
  13. 22 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamRegistrationQueryInfo.java
  14. 14 7
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamSongQueryInfo.java
  15. 7 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRegistrationPaymentService.java
  16. 16 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRegistrationService.java
  17. 11 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamSongService.java
  18. 198 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/NotifyCallback.java
  19. 48 18
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationPaymentServiceImpl.java
  20. 65 5
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java
  21. 18 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamSongServiceImpl.java
  22. 52 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml
  23. 122 101
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationPaymentMapper.xml
  24. 6 6
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamSongMapper.xml

+ 0 - 3
edu-common/src/main/java/com/keao/edu/common/dal/BaseDAO.java

@@ -7,8 +7,6 @@
  */
 package com.keao.edu.common.dal;
 
-import org.apache.ibatis.annotations.Param;
-
 import java.io.Serializable;
 import java.util.List;
 import java.util.Map;
@@ -70,5 +68,4 @@ public interface BaseDAO<PK extends Serializable, T>{
 	 * @return
 	 */
 	public int queryCount(Map<String, Object> params);
-
 }

+ 21 - 4
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRegistrationController.java

@@ -6,9 +6,12 @@ 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.thirdparty.ocr.Ocr;
+import com.keao.edu.user.dto.ExamRecordDto;
+import com.keao.edu.user.dto.ExamRegistrationDto;
 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;
@@ -41,7 +44,7 @@ public class ExamRegistrationController extends BaseController {
     private EmployeeService employeeService;
 
     @ApiOperation(value = "学员报名记录查询")
-    @GetMapping(value = "list")
+    @PostMapping(value = "list")
     @PreAuthorize("@pcs.hasPermissions('examRegistration/list')")
     public HttpResponseResult<PageInfo<ExamRegistration>> list(ExamRegistrationQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
@@ -54,6 +57,22 @@ public class ExamRegistrationController extends BaseController {
         return succeed(examRegistrationService.queryExamRegistrationStudents(queryInfo));
     }
 
+    @ApiOperation(value = "学生端学员报名记录查询")
+    @PostMapping(value = "applyList")
+    public HttpResponseResult<PageInfo<ExamRegistrationDto>> applyList(ExamRegistrationQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        queryInfo.setStudentId(sysUser.getId());
+        return succeed(examRegistrationService.applyList(queryInfo));
+    }
+
+    @ApiOperation(value = "学生端获取学员考试记录")
+    @PostMapping(value = "examList")
+    public HttpResponseResult<PageInfo<ExamRecordDto>> examList(ExamRecordQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        queryInfo.setStudentId(sysUser.getId());
+        return succeed(examRegistrationService.examList(queryInfo));
+    }
+
     @ApiOperation(value = "修改学员报名信息")
     @PostMapping(value = "update")
     @PreAuthorize("@pcs.hasPermissions('examRegistration/update')")
@@ -66,7 +85,7 @@ public class ExamRegistrationController extends BaseController {
     @ApiOperation(value = "报名")
     @PostMapping(value = "add")
     @PreAuthorize("@pcs.hasPermissions('examRegistration/add')")
-    public HttpResponseResult add(ExamRegistration examRegistration) throws Exception {
+    public HttpResponseResult add(@RequestBody ExamRegistration examRegistration) throws Exception {
         SysUser student = sysUserFeignService.queryUserInfo();
         examRegistration.setStudentId(student.getId());
         return succeed(examRegistrationService.addRegistration(examRegistration));
@@ -88,6 +107,4 @@ public class ExamRegistrationController extends BaseController {
     public HttpResponseResult ocr(@RequestParam("file") MultipartFile file,String idCardSide) throws IOException {
         return succeed(Ocr.idcard(file,idCardSide));
     }
-
-
 }

+ 11 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamSongController.java

@@ -7,15 +7,17 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.tenant.TenantContextHolder;
 import com.keao.edu.user.entity.ExamSong;
-import com.keao.edu.user.entity.TenantInfo;
+import com.keao.edu.user.page.ExamSongQueryInfo;
 import com.keao.edu.user.service.ExamSongService;
-import com.keao.edu.user.service.TenantInfoService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 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.util.Date;
 import java.util.List;
@@ -38,6 +40,12 @@ public class ExamSongController extends BaseController {
         return succeed(examSongService.queryPage(queryInfo));
     }
 
+    @ApiOperation("学生端分页查询考级曲库")
+    @GetMapping(value = "/queryPage")
+    public HttpResponseResult<PageInfo<ExamSong>> queryPage(ExamSongQueryInfo queryInfo) {
+        return succeed(examSongService.querySongPage(queryInfo));
+    }
+
     @ApiOperation("查询曲库详情")
     @ApiImplicitParam(name = "id", value = "机构ID", required = true, dataType = "Integer", paramType = "path")
     @GetMapping(value = "/query")

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/StudentController.java

@@ -73,6 +73,8 @@ public class StudentController extends BaseController {
     @ApiOperation(value = "更新学员基本信息")
     @PostMapping(value = "updateInfo")
     public HttpResponseResult<Student> updateInfo(Student student) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        student.setUserId(user.getId());
         return succeed(studentService.updateInfo(student));
     }
 

+ 0 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/TenantInfoController.java

@@ -35,7 +35,6 @@ public class TenantInfoController extends BaseController {
 	}
 
 	@ApiOperation("查询机构详情")
-	@ApiImplicitParam(name = "id", value = "机构ID", required = true, dataType = "Integer", paramType = "path")
 	@GetMapping(value = "/query")
 	public HttpResponseResult<TenantInfo> query() {
 		String tenantId = TenantContextHolder.getTenantId().toString();

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

@@ -2,11 +2,14 @@ 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.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamRegistration;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface ExamRegistrationDao extends BaseDAO<Long, ExamRegistration> {
 
@@ -66,4 +69,31 @@ public interface ExamRegistrationDao extends BaseDAO<Long, ExamRegistration> {
     List<ExamRegistration> getWithExamAndStudents(@Param("examId") Integer examId,
                                                   @Param("studentIds") List<Integer> studentIds);
 
+    /**
+     * COUNT学员报考记录
+     * @param params
+     * @return
+     */
+    int countStudentList(Map<String, Object> params);
+
+    /**
+     * 获取学员报考列表
+     * @param params
+     * @return
+     */
+    List<ExamRegistrationDto> queryStudentList(Map<String, Object> params);
+
+    /**
+     * 学员考试记录
+     * @param params
+     * @return
+     */
+    List<ExamRecordDto> queryExamList(Map<String, Object> params);
+
+    /**
+     *
+     * @param params
+     * @return
+     */
+    int countExamList(Map<String, Object> params);
 }

+ 16 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamSongDao.java

@@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Param;
 import org.springframework.security.core.parameters.P;
 
 import java.util.List;
+import java.util.Map;
+import java.util.Map;
 
 public interface ExamSongDao extends BaseDAO<Integer, ExamSong> {
 
@@ -40,6 +42,20 @@ public interface ExamSongDao extends BaseDAO<Integer, ExamSong> {
                                        @Param("songType")SongTypeEnum songType);
 
     /**
+     * COUNT学生端考级曲库
+     * @param params
+     * @return
+     */
+    int countSongPage(Map<String, Object> params);
+
+    /**
+     * 学生端考级曲库
+     * @param params
+     * @return
+     */
+    List<ExamSong> querySongPage(Map<String, Object> params);
+
+    /**
      * @describe 获取指定的曲目
      * @author Joburgess
      * @date 2020.07.03

+ 52 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRecordDto.java

@@ -0,0 +1,52 @@
+package com.keao.edu.user.dto;
+
+import com.keao.edu.user.entity.ExamRegistration;
+import com.keao.edu.user.entity.StudentExamResult;
+import io.swagger.annotations.ApiModelProperty;
+
+public class ExamRecordDto extends ExamRegistration {
+
+    @ApiModelProperty(value = "考试项目")
+    private String examBaseName;
+
+    @ApiModelProperty(value = "考试项目")
+    private String subjectName;
+
+    @ApiModelProperty(value = "准考证")
+    private String examCertificationId;
+
+    @ApiModelProperty(value = "考试结果")
+    private StudentExamResult studentExamResult;
+
+    public String getExamBaseName() {
+        return examBaseName;
+    }
+
+    public void setExamBaseName(String examBaseName) {
+        this.examBaseName = examBaseName;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public String getExamCertificationId() {
+        return examCertificationId;
+    }
+
+    public void setExamCertificationId(String examCertificationId) {
+        this.examCertificationId = examCertificationId;
+    }
+
+    public StudentExamResult getStudentExamResult() {
+        return studentExamResult;
+    }
+
+    public void setStudentExamResult(StudentExamResult studentExamResult) {
+        this.studentExamResult = studentExamResult;
+    }
+}

+ 73 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRegistrationDto.java

@@ -0,0 +1,73 @@
+package com.keao.edu.user.dto;
+
+import com.keao.edu.user.entity.ExamRegistration;
+import io.swagger.annotations.ApiModelProperty;
+
+public class ExamRegistrationDto extends ExamRegistration {
+
+    @ApiModelProperty(value = "考试项目")
+    private String examBaseName;
+
+    @ApiModelProperty(value = "考试专业")
+    private String subjectName;
+
+    @ApiModelProperty(value = "报名开始时间")
+    private String enrollStartTime;
+
+    @ApiModelProperty(value = "报名结束时间")
+    private String enrollEndTime;
+
+    @ApiModelProperty(value = "预计考试开始时间")
+    private String examStartTime;
+
+    @ApiModelProperty(value = "预计考试结束时间")
+    private String examEndTime;
+
+    public String getExamBaseName() {
+        return examBaseName;
+    }
+
+    public void setExamBaseName(String examBaseName) {
+        this.examBaseName = examBaseName;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public String getEnrollStartTime() {
+        return enrollStartTime;
+    }
+
+    public void setEnrollStartTime(String enrollStartTime) {
+        this.enrollStartTime = enrollStartTime;
+    }
+
+    public String getEnrollEndTime() {
+        return enrollEndTime;
+    }
+
+    public void setEnrollEndTime(String enrollEndTime) {
+        this.enrollEndTime = enrollEndTime;
+    }
+
+    public String getExamStartTime() {
+        return examStartTime;
+    }
+
+    public void setExamStartTime(String examStartTime) {
+        this.examStartTime = examStartTime;
+    }
+
+    public String getExamEndTime() {
+        return examEndTime;
+    }
+
+    public void setExamEndTime(String examEndTime) {
+        this.examEndTime = examEndTime;
+    }
+}

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/ExamRegistration.java

@@ -9,7 +9,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 /**
  * 对应数据库表(exam_registration):
  */
-public class ExamRegistration extends Student {
+public class ExamRegistration {
 
 	private Integer id;
 	

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

@@ -22,12 +22,18 @@ public class ExamRegistrationPayment {
 	@ApiModelProperty(value = "订单号(系统自动生成)")
 	private String orderNo;
 
+	@ApiModelProperty(value = "收款渠道")
+	private String payType;
+
 	@ApiModelProperty(value = "交易流水号(由第三方返回)")
 	private String transNo;
 
 	@ApiModelProperty(value = "渠道收款账户号")
 	private String merNo;
 
+	@ApiModelProperty(value = "支付方式")
+	private String payChannel;
+
 	@ApiModelProperty(value = "交易金额")
 	private java.math.BigDecimal transAmount;
 
@@ -146,9 +152,26 @@ public class ExamRegistrationPayment {
 	public String getTenantId(){
 		return this.tenantId;
 	}
+
+	public String getPayType() {
+		return payType;
+	}
+
+	public void setPayType(String payType) {
+		this.payType = payType;
+	}
+
+	public String getPayChannel() {
+		return payChannel;
+	}
+
+	public void setPayChannel(String payChannel) {
+		this.payChannel = payChannel;
+	}
 			
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
+
 }

+ 19 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamRecordQueryInfo.java

@@ -0,0 +1,19 @@
+package com.keao.edu.user.page;
+
+import com.keao.edu.common.page.QueryInfo;
+import com.keao.edu.user.enums.StudentRegistrationStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+public class ExamRecordQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer studentId;
+
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+}

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

@@ -13,6 +13,9 @@ public class ExamRegistrationQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "合作单位编号")
     private Integer organId;
 
+    @ApiModelProperty(value = "考试报名编号")
+    private Integer examRegistrationId;
+
     @ApiModelProperty(value = "考试项目编号")
     private Integer examId;
 
@@ -25,9 +28,28 @@ public class ExamRegistrationQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "报考级别")
     private Integer level;
 
+    @ApiModelProperty(value = "学员编号")
+    private Integer studentId;
+
     @ApiModelProperty(value = "学员状态")
     private StudentRegistrationStatusEnum status;
 
+    public Integer getExamRegistrationId() {
+        return examRegistrationId;
+    }
+
+    public void setExamRegistrationId(Integer examRegistrationId) {
+        this.examRegistrationId = examRegistrationId;
+    }
+
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+
     public Integer getOrganId() {
         return organId;
     }

+ 14 - 7
edu-user/edu-user-server/src/main/java/com/keao/edu/user/page/ExamSongQueryInfo.java

@@ -3,20 +3,27 @@ package com.keao.edu.user.page;
 import com.keao.edu.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
-/**
- * @Author Joburgess
- * @Date 2020.06.16
- */
 public class ExamSongQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "专业")
-    private String subjectList;
+    private Integer subjectList;
 
-    public String getSubjectList() {
+    @ApiModelProperty(value = "级别")
+    private Integer level;
+
+    public Integer getLevel() {
+        return level;
+    }
+
+    public void setLevel(Integer level) {
+        this.level = level;
+    }
+
+    public Integer getSubjectList() {
         return subjectList;
     }
 
-    public void setSubjectList(String subjectList) {
+    public void setSubjectList(Integer subjectList) {
         this.subjectList = subjectList;
     }
 }

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

@@ -19,4 +19,11 @@ public interface ExamRegistrationPaymentService extends BaseService<Long, ExamRe
      * @return
      */
     ExamRegistrationPayment getByOrderNo(String OrderNo);
+
+    /**
+     * 更新订单信息
+     * @param examRegistrationPayment
+     * @return
+     */
+    ExamRegistrationPayment updateOrder(ExamRegistrationPayment examRegistrationPayment);
 }

+ 16 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRegistrationService.java

@@ -3,8 +3,11 @@ package com.keao.edu.user.service;
 
 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.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamRegistration;
+import com.keao.edu.user.page.ExamRecordQueryInfo;
 import com.keao.edu.user.page.ExamRegistrationQueryInfo;
 
 import java.util.Map;
@@ -31,4 +34,17 @@ public interface ExamRegistrationService extends BaseService<Long, ExamRegistrat
     */
    ExamRegistrationStatisticsDto getExamRegistrationStaticsInfo(Integer organId, Integer examId);
 
+   /**
+    * 获取报考列表
+    * @param queryInfo
+    * @return
+    */
+   PageInfo<ExamRegistrationDto> applyList(ExamRegistrationQueryInfo queryInfo);
+
+   /**
+    * 考试记录
+    * @param queryInfo
+    * @return
+    */
+   PageInfo<ExamRecordDto> examList(ExamRecordQueryInfo queryInfo);
 }

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamSongService.java

@@ -1,7 +1,9 @@
 package com.keao.edu.user.service;
 
+import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
 import com.keao.edu.user.entity.ExamSong;
+import com.keao.edu.user.page.ExamSongQueryInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -17,4 +19,13 @@ public interface ExamSongService extends BaseService<Integer, ExamSong> {
      */
     List<ExamSong> getWithSubject(Integer subjectId);
 
+
+    /**
+     * 获取考级曲库
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<ExamSong> querySongPage(ExamSongQueryInfo queryInfo);
+
+
 }

+ 198 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/NotifyCallback.java

@@ -0,0 +1,198 @@
+package com.keao.edu.user.service;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.huifu.adapay.notify.MQTTCallbackHandler;
+import com.keao.edu.thirdparty.adapay.ConfigInit;
+import com.keao.edu.user.entity.ExamRegistrationPayment;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.util.Date;
+
+
+@Service
+public class NotifyCallback implements MQTTCallbackHandler {
+
+    @Autowired
+    private ExamRegistrationPaymentService examRegistrationPaymentService;
+
+
+    private static NotifyCallback notifyCallback;
+
+    @PostConstruct
+    public void init() {
+        notifyCallback = this;
+    }
+
+    /**
+     * 用户接收并处理支付成功的异步消息
+     *
+     * @param payment 成功的支付对象
+     * @throws Exception 异常
+     */
+    @Override
+    public void paymentSuccessMessageArrived(String payment) throws Exception {
+        System.out.println(String.format("receive paymentSuccess  msg=%s", payment));
+        JSONObject dataObj = JSON.parseObject(payment);
+        if (!dataObj.getString("app_id").equals(ConfigInit.appId)) {
+            return;
+        }
+        String orderNo = dataObj.getString("order_no");
+        ExamRegistrationPayment order = notifyCallback.examRegistrationPaymentService.getByOrderNo(orderNo);
+        if (order == null || !order.getTransStatus().equals("ING")) {
+            return;
+        }
+        order.setPayChannel(dataObj.getString("pay_channel"));
+        order.setTransStatus("SUCCESS");
+        order.setUpdateTime(new Date());
+        order.setTransSuccessedTime(new Date());
+        notifyCallback.examRegistrationPaymentService.updateOrder(order);
+    }
+
+    /**
+     * 用户接收并处理支付失败的异步消息
+     *
+     * @param payment 失败的支付对象
+     * @throws Exception 异常
+     */
+    @Override
+    public void paymentFailedMessageArrived(String payment) throws Exception {
+        System.out.println(String.format("receive paymentFailed msg=%s", payment));
+        JSONObject dataObj = JSON.parseObject(payment);
+        if (!dataObj.getString("app_id").equals(ConfigInit.appId)) {
+            return;
+        }
+        String orderNo = dataObj.getString("order_no");
+        ExamRegistrationPayment order = notifyCallback.examRegistrationPaymentService.getByOrderNo(orderNo);
+        if (order == null || !order.getTransStatus().equals("ING")) {
+            return;
+        }
+        order.setPayChannel(dataObj.getString("pay_channel"));
+        order.setTransStatus("FAILED");
+        order.setUpdateTime(new Date());
+        notifyCallback.examRegistrationPaymentService.updateOrder(order);
+    }
+
+
+    /**
+     * 用户接收并处理关闭支付交易成功的异步消息
+     *
+     * @param payment 关闭成功的支付对象
+     * @throws Exception 异常
+     */
+    @Override
+    public void paymentCloseSuccessMessageArrived(String payment) throws Exception {
+        System.out.println(String.format("receive paymentCloseSuccess msg=%s", payment));
+        JSONObject dataObj = JSON.parseObject(payment);
+        if (!dataObj.getString("app_id").equals(ConfigInit.appId)) {
+            return;
+        }
+        String orderNo = dataObj.getString("order_no");
+        ExamRegistrationPayment order = notifyCallback.examRegistrationPaymentService.getByOrderNo(orderNo);
+        if (order == null || !order.getTransStatus().equals("ING")) {
+            return;
+        }
+        order.setPayChannel(dataObj.getString("pay_channel"));
+        order.setTransStatus("FAILED");
+        order.setUpdateTime(new Date());
+        notifyCallback.examRegistrationPaymentService.updateOrder(order);
+    }
+
+    /**
+     * 用户接收并处理关闭支付交易失败的异步消息
+     *
+     * @param payment 关闭失败的支付对象
+     * @throws Exception 异常
+     */
+    @Override
+    public void paymentCloseFailedMessageArrived(String payment) throws Exception {
+        System.out.println(String.format("receive paymentCloseFailed msg=%s", payment));
+    }
+
+    @Override
+    public void paymentReverseFailedMessageArrived(String payment) throws Exception {
+
+        System.out.println(String.format("receive payment ReverseFailed msg=%s", payment));
+    }
+
+    @Override
+    public void paymentReverseSuccessMessageArrived(String payment) throws Exception {
+        System.out.println(String.format("receive payment ReverseSuccess msg=%s", payment));
+    }
+
+    /**
+     * 用户接收并处理退款成功的异步消息
+     *
+     * @param refund 成功的退款对象
+     * @throws Exception 异常
+     */
+    @Override
+    public void refundSuccessMessageArrived(String refund) throws Exception {
+        System.out.println(String.format("receive refundSuccess msg=%s", refund));
+    }
+
+    /**
+     * 用户接收并处理退款失败的异步消息
+     *
+     * @param refund 失败的退款对象
+     * @throws Exception 异常
+     */
+    @Override
+    public void refundFailedMessageArrived(String refund) throws Exception {
+        System.out.println(String.format("receive refundFailed   msg=%s", refund));
+    }
+
+    @Override
+    public void corpMemberSuccessMessageArrived(String corpMember) throws Exception {
+        System.out.println(String.format("receive corpMember   msg=%s", corpMember));
+    }
+
+    @Override
+    public void corpMemberFailedMessageArrived(String corpMember) throws Exception {
+        System.out.println(String.format("receive corpMember  msg=%s", corpMember));
+    }
+
+    @Override
+    public void unknowMessageArrived(String message) throws Exception {
+        System.out.println(String.format("receive unknow  msg=%s", message));
+    }
+
+    @Override
+    public void drawCashFailedMessageArrived(String drawCash) throws Exception {
+        System.out.println(String.format("receive unknow  msg=%s", drawCash));
+
+    }
+
+    @Override
+    public void drawCashSuccessedMessageArrived(String drawCash) throws Exception {
+
+        System.out.println(String.format("receive unknow  msg=%s", drawCash));
+
+    }
+
+    @Override
+    public void pagePaymentFailedMessageArrived(String arg0) throws Exception {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void pagePaymentSuccessedMessageArrived(String arg0) throws Exception {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void connectionLost(String message) throws Exception {
+        // TODO Auto-generated method stub
+        System.out.println("mqtt...........lost.............");
+
+    }
+
+    @Override
+    public void connectSuccess() throws Exception {
+        System.out.println("mqtt...........connect.............");
+    }
+}

+ 48 - 18
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationPaymentServiceImpl.java

@@ -1,31 +1,61 @@
 package com.keao.edu.user.service.impl;
 
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.dao.ExamRegistrationPaymentDao;
+import com.keao.edu.user.entity.ExamRegistration;
 import com.keao.edu.user.entity.ExamRegistrationPayment;
+import com.keao.edu.user.enums.StudentRegistrationStatusEnum;
 import com.keao.edu.user.service.ExamRegistrationPaymentService;
+import com.keao.edu.user.service.ExamRegistrationService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
 
 @Service
 public class ExamRegistrationPaymentServiceImpl extends BaseServiceImpl<Long, ExamRegistrationPayment> implements ExamRegistrationPaymentService {
-	
-	@Autowired
-	private ExamRegistrationPaymentDao examRegistrationPaymentDao;
-
-	@Override
-	public BaseDAO<Long, ExamRegistrationPayment> getDAO() {
-		return examRegistrationPaymentDao;
-	}
-
-	@Override
-	public ExamRegistrationPayment getExamIngOrder(Integer examinationBasicId, Integer userId) {
-		return examRegistrationPaymentDao.getExamIngOrder(examinationBasicId,userId);
-	}
-
-	@Override
-	public ExamRegistrationPayment getByOrderNo(String OrderNo) {
-		return examRegistrationPaymentDao.getByOrderNo(OrderNo);
-	}
+
+    @Autowired
+    private ExamRegistrationPaymentDao examRegistrationPaymentDao;
+    @Autowired
+    private ExamRegistrationService examRegistrationService;
+
+    @Override
+    public BaseDAO<Long, ExamRegistrationPayment> getDAO() {
+        return examRegistrationPaymentDao;
+    }
+
+    @Override
+    public ExamRegistrationPayment getExamIngOrder(Integer examinationBasicId, Integer userId) {
+        return examRegistrationPaymentDao.getExamIngOrder(examinationBasicId, userId);
+    }
+
+    @Override
+    public ExamRegistrationPayment getByOrderNo(String OrderNo) {
+        return examRegistrationPaymentDao.getByOrderNo(OrderNo);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ExamRegistrationPayment updateOrder(ExamRegistrationPayment examRegistrationPayment) {
+        if (examRegistrationPaymentDao.update(examRegistrationPayment) <= 0) {
+            throw new BizException("订单更新失败");
+        }
+        ExamRegistration examRegistration = examRegistrationService.get(examRegistrationPayment.getId());
+        if (!examRegistration.getStatus().equals(StudentRegistrationStatusEnum.PAY_WAIT)) {
+            return examRegistrationPayment;
+        }
+        if (!examRegistrationPayment.getTransStatus().equals("SUCCESS")) {
+            return examRegistrationPayment;
+        }
+        examRegistration.setStatus(StudentRegistrationStatusEnum.AUDIT_WAIT);
+        examRegistration.setUpdateTime(new Date());
+        if (examRegistrationService.update(examRegistration) <= 0) {
+            throw new BizException("报名状态更新失败");
+        }
+        return examRegistrationPayment;
+    }
 }

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

@@ -7,10 +7,13 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.IdGeneratorService;
 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.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.*;
 import com.keao.edu.user.enums.ExamStatusEnum;
 import com.keao.edu.user.enums.StudentRegistrationStatusEnum;
+import com.keao.edu.user.page.ExamRecordQueryInfo;
 import com.keao.edu.user.page.ExamRegistrationQueryInfo;
 import com.keao.edu.user.service.ExamRegistrationPaymentService;
 import com.keao.edu.user.service.ExamRegistrationService;
@@ -82,15 +85,13 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
             amount.add(examMusicTheory.getFee());
         }
 
-        examRegistration.setUserId(examRegistration.getStudentId());
-        studentDao.insert(examRegistration);
         examRegistration.setStatus(StudentRegistrationStatusEnum.PAY_WAIT);
         examRegistrationDao.insert(examRegistration);
 
         ExamRegistrationPayment examRegistrationPayment = new ExamRegistrationPayment();
         examRegistrationPayment.setTenantId(examRegistration.getTenantId());
         examRegistrationPayment.setExamRegistrationId(examRegistration.getId().longValue());
-        examRegistrationPayment.setStudentId(examRegistration.getUserId());
+        examRegistrationPayment.setStudentId(examRegistration.getStudentId());
         examRegistrationPayment.setExaminationBasicId(examRegistration.getExaminationBasicId());
         examRegistrationPayment.setOrderNo(orderNo);
         examRegistrationPayment.setTransAmount(amount);
@@ -103,11 +104,14 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
         Map<String, Object> payMap = payService.getPayMap(
                 amount,
                 orderNo,
-                baseApiUrl + "/api-student/studentOrder/notify",
-                baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
+                baseApiUrl + "/api-user/examOrder/notify",
+                baseApiUrl + "/api-user/examOrder/paymentResult?orderNo=" + orderNo,
                 examinationBasic.getName(),
                 examinationBasic.getName()
         );
+        examRegistrationPayment.setTransNo((String) payMap.get("routingMerNos"));
+        examRegistrationPayment.setPayType((String) payMap.get("type"));
+        examRegistrationPaymentService.update(examRegistrationPayment);
         return payMap;
     }
 
@@ -149,4 +153,60 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
         }
         return examRegistrationStaticsInfo;
     }
+
+    @Override
+    public PageInfo<ExamRegistrationDto> applyList(ExamRegistrationQueryInfo queryInfo) {
+        PageInfo<ExamRegistrationDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<ExamRegistrationDto> dataList = null;
+        int count = examRegistrationDao.countStudentList(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = examRegistrationDao.queryStudentList(params);
+            List<Integer> subjectIds = dataList.stream().map(e -> e.getSubjectId()).collect(Collectors.toList());
+            Map<Integer, String> subjectNameMap = this.getMap("subject", "id_", "name_", subjectIds, Integer.class, String.class);
+            dataList.forEach(e -> {
+                e.setSubjectName(subjectNameMap.get(e.getSubjectId()));
+            });
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<ExamRecordDto> examList(ExamRecordQueryInfo queryInfo) {
+        PageInfo<ExamRecordDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<ExamRecordDto> dataList = null;
+        int count = examRegistrationDao.countExamList(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = examRegistrationDao.queryExamList(params);
+            List<Integer> subjectIds = dataList.stream().map(e -> e.getSubjectId()).collect(Collectors.toList());
+            List<Integer> basicIds = dataList.stream().map(e -> e.getExaminationBasicId()).collect(Collectors.toList());
+            List<Integer> registrationIds = dataList.stream().map(e -> e.getId()).collect(Collectors.toList());
+            Map<Integer, String> subjectNameMap = this.getMap("subject", "id_", "name_", subjectIds, Integer.class, String.class);
+            Map<Integer, String> examNameMap = this.getMap("examination_basic", "id_", "name_", basicIds, Integer.class, String.class);
+            Map<Integer, String> certificationNameMap = this.getMap("exam_certification", "exam_registration_id_", "card_no_", registrationIds, Integer.class, String.class);
+            dataList.forEach(e -> {
+                e.setSubjectName(subjectNameMap.get(e.getSubjectId()));
+                e.setSubjectName(examNameMap.get(e.getExaminationBasicId()));
+                e.setSubjectName(certificationNameMap.get(e.getId()));
+            });
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 18 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamSongServiceImpl.java

@@ -7,6 +7,7 @@ import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.dao.ExamSongDao;
 import com.keao.edu.user.entity.ExamSong;
+import com.keao.edu.user.page.ExamSongQueryInfo;
 import com.keao.edu.user.service.ExamSongService;
 import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -67,4 +68,21 @@ public class ExamSongServiceImpl extends BaseServiceImpl<Integer, ExamSong> impl
         }
         return examSongDao.getWithSubject(subjectId);
     }
+
+    @Override
+    public PageInfo<ExamSong> querySongPage(ExamSongQueryInfo queryInfo) {
+        PageInfo<ExamSong> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<ExamSong> dataList = new ArrayList<>();
+        int count = examSongDao.countSongPage(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = examSongDao.querySongPage(params);
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

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

@@ -233,4 +233,56 @@
 			#{studentId}
 		</foreach>
 	</select>
+	<resultMap id="ExamRegistrationDtoMap" type="com.keao.edu.user.dto.ExamRegistrationDto" extends="ExamRegistration">
+		<result property="subjectName" column="subjectName"/>
+		<result property="examBaseName" column="examBaseName"/>
+		<result property="examStartTime" column="expect_exam_start_time_"/>
+		<result property="examEndTime" column="expect_exam_end_time_"/>
+		<result property="enrollEndTime" column="enroll_end_time_"/>
+		<result property="enrollStartTime" column="enroll_start_time_"/>
+	</resultMap>
+    <select id="countStudentList" resultType="java.lang.Integer">
+		SELECT COUNT(er.id_) FROM exam_registration er
+		<include refid="queryStudentListSql"/>
+	</select>
+	<sql id="queryStudentListSql">
+		<where>
+			<if test="studentId != null">
+				er.student_id_ = #{studentId}
+			</if>
+			<if test="examRegistrationId != null">
+				er.id_ = #{examRegistrationId}
+			</if>
+			<if test="tenantId != null">
+				er.tenant_id_ = #{tenantId}
+			</if>
+			<if test="status != null and status != ''">
+				er.status_ = #{status}
+			</if>
+		</where>
+	</sql>
+	<select id="queryStudentList" resultMap="ExamRegistrationDtoMap">
+		SELECT er.*,eb.enroll_end_time_,eb.enroll_start_time_,eb.expect_exam_end_time_,eb.expect_exam_start_time_,eb.name_ examBaseName
+		FROM exam_registration er
+		LEFT JOIN examination_basic eb ON er.examination_basic_id_ = eb.id_
+		<include refid="queryStudentListSql"/>
+		ORDER BY er.update_time_ DESC
+		<include refid="global.limit"/>
+	</select>
+	<resultMap id="ExamRecordDtoMap" type="com.keao.edu.user.dto.ExamRecordDto" extends="ExamRegistration">
+		<result property="subjectName" column="subjectName"/>
+		<result property="examBaseName" column="examBaseName"/>
+		<result property="examCertificationId" column="examCertificationId"/>
+		<association property="studentExamResult" resultMap="com.keao.edu.user.dao.StudentExamResultDao.StudentExamResult"/>
+	</resultMap>
+	<select id="queryExamList" resultMap="ExamRecordDtoMap">
+		SELECT er.*,ser.* FROM exam_registration er
+		LEFT JOIN student_exam_result ser ON er.id_ = ser.exam_registration_id_
+		WHERE ser.id_ IS NOT NULL AND er.student_id_ = #{studentId}
+	</select>
+	<select id="countExamList" resultType="java.lang.Integer">
+		SELECT COUNT(er.id_) FROM exam_registration er
+		LEFT JOIN student_exam_result ser ON er.id_ = ser.exam_registration_id_
+		WHERE ser.id_ IS NOT NULL AND er.student_id_ = #{studentId}
+	</select>
 </mapper>

+ 122 - 101
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationPaymentMapper.xml

@@ -5,108 +5,129 @@
 不要修改此文件。所有改动将在下次重新自动生成时丢失。
 -->
 <mapper namespace="com.keao.edu.user.dao.ExamRegistrationPaymentDao">
-	
-	<resultMap type="com.keao.edu.user.entity.ExamRegistrationPayment" id="ExamRegistrationPayment">
-		<result column="id_" property="id" />
-		<result column="exam_registration_id_" property="examRegistrationId" />
-		<result column="student_id_" property="studentId" />
-		<result column="examination_basic_id_" property="examinationBasicId" />
-		<result column="order_no_" property="orderNo" />
-		<result column="trans_no_" property="transNo" />
-		<result column="mer_no_" property="merNo" />
-		<result column="trans_amount_" property="transAmount" />
-		<result column="trans_status_" property="transStatus" />
-		<result column="trans_successed_time_" property="transSuccessedTime" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-		<result column="tenant_id_" property="tenantId" />
-	</resultMap>
-	
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="ExamRegistrationPayment" >
-		SELECT * FROM exam_registration_payment WHERE id_ = #{id} 
-	</select>
-	
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="ExamRegistrationPayment">
-		SELECT * FROM exam_registration_payment ORDER BY id_
-	</select>
-	
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.keao.edu.user.entity.ExamRegistrationPayment" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO exam_registration_payment (id_,exam_registration_id_,student_id_,examination_basic_id_,order_no_,trans_no_,mer_no_,trans_amount_,trans_status_,trans_successed_time_,create_time_,update_time_,tenant_id_)
-		VALUES(#{id},#{examRegistrationId},#{studentId},#{examinationBasicId},#{orderNo},#{transNo},#{transAmount},#{transStatus},#{merNo},#{transSuccessedTime},NOW(),NOW(),#{tenantId})
-	</insert>
-	
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.keao.edu.user.entity.ExamRegistrationPayment">
-		UPDATE exam_registration_payment
-		<set>
-			<if test="examinationBasicId != null">
-			examination_basic_id_ = #{examinationBasicId},
-			</if>
-			<if test="orderNo != null">
-			order_no_ = #{orderNo},
-			</if>
-			<if test="id != null">
-			id_ = #{id},
-			</if>
-			<if test="tenantId != null">
-			tenant_id_ = #{tenantId},
-			</if>
-			<if test="examRegistrationId != null">
-			exam_registration_id_ = #{examRegistrationId},
-			</if>
-			<if test="studentId != null">
-			student_id_ = #{studentId},
-			</if>
-			<if test="transSuccessedTime != null">
-			trans_successed_time_ = #{transSuccessedTime},
-			</if>
-			<if test="transNo != null">
-			trans_no_ = #{transNo},
-			</if>
-			<if test="merNo != null">
-				mer_no_ = #{merNo},
-			</if>
-			<if test="transStatus != null">
-			trans_status_ = #{transStatus},
-			</if>
-			<if test="transAmount != null">
-			trans_amount_ = #{transAmount},
-			</if>
-				update_time_ = NOW()
-		</set> WHERE id_ = #{id}
-	</update>
-	
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
-		DELETE FROM exam_registration_payment WHERE id_ = #{id} 
-	</delete>
-	
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="ExamRegistrationPayment" parameterType="map">
-		SELECT * FROM exam_registration_payment ORDER BY id_ <include refid="global.limit"/>
-	</select>
-	
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM exam_registration_payment
-	</select>
 
-	<!-- 获取项目用户未支付的订单 -->
+    <resultMap type="com.keao.edu.user.entity.ExamRegistrationPayment" id="ExamRegistrationPayment">
+        <result column="id_" property="id"/>
+        <result column="exam_registration_id_" property="examRegistrationId"/>
+        <result column="student_id_" property="studentId"/>
+        <result column="examination_basic_id_" property="examinationBasicId"/>
+        <result column="order_no_" property="orderNo"/>
+        <result column="pay_type_" property="payType"/>
+        <result column="trans_no_" property="transNo"/>
+        <result column="mer_no_" property="merNo"/>
+        <result column="pay_channel_" property="payChannel"/>
+        <result column="trans_amount_" property="transAmount"/>
+        <result column="trans_status_" property="transStatus"/>
+        <result column="trans_successed_time_" property="transSuccessedTime"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="tenant_id_" property="tenantId"/>
+    </resultMap>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="ExamRegistrationPayment">
+        SELECT *
+        FROM exam_registration_payment
+        WHERE id_ = #{id}
+    </select>
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="ExamRegistrationPayment">
+        SELECT *
+        FROM exam_registration_payment
+        ORDER BY id_
+    </select>
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.keao.edu.user.entity.ExamRegistrationPayment" useGeneratedKeys="true"
+            keyColumn="id" keyProperty="id">
+        <!--
+        <selectKey resultClass="int" keyProperty="id" >
+        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
+        </selectKey>
+        -->
+        INSERT INTO exam_registration_payment
+        (id_,exam_registration_id_,student_id_,examination_basic_id_,order_no_,trans_no_,mer_no_,trans_amount_,trans_status_,trans_successed_time_,create_time_,update_time_,tenant_id_)
+        VALUES(#{id},#{examRegistrationId},#{studentId},#{examinationBasicId},#{orderNo},#{transNo},#{transAmount},#{transStatus},#{merNo},#{transSuccessedTime},NOW(),NOW(),#{tenantId})
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.keao.edu.user.entity.ExamRegistrationPayment">
+        UPDATE exam_registration_payment
+        <set>
+            <if test="examinationBasicId != null">
+                examination_basic_id_ = #{examinationBasicId},
+            </if>
+            <if test="orderNo != null">
+                order_no_ = #{orderNo},
+            </if>
+            <if test="id != null">
+                id_ = #{id},
+            </if>
+            <if test="tenantId != null">
+                tenant_id_ = #{tenantId},
+            </if>
+            <if test="examRegistrationId != null">
+                exam_registration_id_ = #{examRegistrationId},
+            </if>
+            <if test="studentId != null">
+                student_id_ = #{studentId},
+            </if>
+            <if test="transSuccessedTime != null">
+                trans_successed_time_ = #{transSuccessedTime},
+            </if>
+            <if test="transNo != null">
+                trans_no_ = #{transNo},
+            </if>
+            <if test="payChannel != null">
+                pay_channel_ = #{pay_channel_},
+            </if>
+            <if test="merNo != null">
+                mer_no_ = #{merNo},
+            </if>
+            <if test="transStatus != null">
+                trans_status_ = #{transStatus},
+            </if>
+            <if test="transAmount != null">
+                trans_amount_ = #{transAmount},
+            </if>
+            update_time_ = NOW()
+        </set>
+        WHERE id_ = #{id}
+    </update>
+
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+        DELETE
+        FROM exam_registration_payment
+        WHERE id_ = #{id}
+    </delete>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="ExamRegistrationPayment" parameterType="map">
+        SELECT * FROM exam_registration_payment ORDER BY id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*)
+        FROM exam_registration_payment
+    </select>
+
+    <!-- 获取项目用户未支付的订单 -->
     <select id="getExamIngOrder" resultMap="ExamRegistrationPayment">
-		SELECT * FROM exam_registration_payment WHERE student_id_=#{userId}
-		AND examination_basic_id_ = #{examinationBasicId} AND trans_status_ = 'ING'
-	</select>
+        SELECT *
+        FROM exam_registration_payment
+        WHERE student_id_ = #{userId}
+          AND examination_basic_id_ = #{examinationBasicId}
+          AND trans_status_ = 'ING'
+    </select>
 
-	<!-- 根据订单号获取订单 -->
-	<select id="getByOrderNo" resultMap="ExamRegistrationPayment">
-		SELECT * FROM exam_registration_payment WHERE order_no_ = #{orderNo}
-	</select>
+    <!-- 根据订单号获取订单 -->
+    <select id="getByOrderNo" resultMap="ExamRegistrationPayment">
+        SELECT *
+        FROM exam_registration_payment
+        WHERE order_no_ = #{orderNo} FOR UPDATE
+    </select>
 </mapper>

+ 6 - 6
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamSongMapper.xml

@@ -43,9 +43,6 @@
 			<if test="levelList != null">
 				level_list_ = #{levelList},
 			</if>
-			<if test="id != null">
-				id_ = #{id},
-			</if>
 			<if test="subjectList != null">
 				subject_list_ = #{subjectList},
 			</if>
@@ -64,9 +61,6 @@
 			<if test="delFlag != null">
 				del_flag_ = #{delFlag}
 			</if>
-			<if test="createTime != null">
-				create_time_ = #{createTime},
-			</if>
 			<if test="tenantId">
 				tenant_id_ = #{tenantId},
 			</if>
@@ -119,6 +113,12 @@
 		AND level_list_=#{level}
 		AND type_=#{songType, typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
     </select>
+	<select id="countSongPage" resultType="java.lang.Integer">
+
+	</select>
+	<select id="querySongPage" resultMap="ExamSong">
+
+	</select>
 
 	<select id="getWithIds" resultMap="ExamSong">
 		SELECT * FROM exam_song WHERE id_ IN