Kaynağa Gözat

2022考级报名

zouxuan 3 yıl önce
ebeveyn
işleme
a64e896af6

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DegreeRegistrationDao.java

@@ -25,7 +25,10 @@ public interface DegreeRegistrationDao extends BaseDAO<Integer, DegreeRegistrati
                                                  @Param("activityTag") String activityTag,
                                                  @Param("degreeType") Integer degreeType,
                                                  @Param("sporadicId") String sporadicId,
-                                                 @Param("level") String level);
+                                                 @Param("level") String level,
+                                                 @Param("status") Integer status);
 
     void batchInsert(@Param("degreeRegistrationList") List<DegreeRegistration> degreeRegistrationList);
+
+    List<DegreeRegistration> getLockByOrderId(@Param("orderNo") String orderNo);
 }

+ 18 - 24
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeRegistrationServiceImpl.java

@@ -390,13 +390,10 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
 
     @Override
     public Boolean updateStatus(StudentPaymentOrder studentPaymentOrder) {
-        DegreeRegistration degree = degreeRegistrationDao.getLock(studentPaymentOrder.getClassGroupId());
-
         int updateCount = studentPaymentOrderService.update(studentPaymentOrder);
         if (updateCount <= 0) {
             throw new BizException("订单更新失败");
         }
-
         if(DealStatusEnum.SUCCESS.equals(studentPaymentOrder.getStatus())){
             List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailDao.getOrderDetail(studentPaymentOrder.getId());
             BigDecimal additionCoursePrice = new BigDecimal(0);
@@ -417,26 +414,23 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         if(Objects.isNull(studentPaymentOrder.getClassGroupId())){
             return true;
         }
-
-        if (degree == null || !degree.getStatus().equals(1)) {
-            studentPaymentOrder.setMemo("订单状态已变更");
-            studentPaymentOrder.setVersion(studentPaymentOrder.getVersion()+1);
-            studentPaymentOrderService.update(studentPaymentOrder);
-            return true;
-        }
-        degree.setOrderNo(studentPaymentOrder.getOrderNo());
-        degree.setTransNo(studentPaymentOrder.getTransNo());
-        switch (studentPaymentOrder.getStatus()){
-            case SUCCESS:
-                degree.setStatus(2);
-                break;
-            case FAILED:
-            case CLOSE:
-                degree.setStatus(0);
-                break;
+        List<DegreeRegistration> degreeList = degreeRegistrationDao.getLockByOrderId(studentPaymentOrder.getOrderNo());
+        Date date = new Date();
+        for (DegreeRegistration degree : degreeList) {
+            degree.setUpdateTime(date);
+            degree.setOrderNo(studentPaymentOrder.getOrderNo());
+            degree.setTransNo(studentPaymentOrder.getTransNo());
+            switch (studentPaymentOrder.getStatus()){
+                case SUCCESS:
+                    degree.setStatus(2);
+                    break;
+                case FAILED:
+                case CLOSE:
+                    degree.setStatus(0);
+                    break;
+            }
         }
-        degree.setUpdateTime(new Date());
-        if (degreeRegistrationDao.update(degree) <= 0) {
+        if (degreeRegistrationDao.batchUpdate(degreeList) < degreeList.size()) {
             throw new BizException("更新支付状态失败");
         }
         return true;
@@ -496,7 +490,7 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         if(!CollectionUtils.isEmpty(collect)){
             List<Integer> collect1 = collect.stream().map(e -> e.getSporadicId()).collect(Collectors.toList());
             List<DegreeRegistration> userLevelDegrees = degreeRegistrationDao.getUserLevelDegrees(degreeRegistration.getUserId(),
-                    DegreeRegistrationService.ACTIVITY_TAG,degreeRegistration.getDegreeType(),StringUtils.join(collect1,","),null);
+                    DegreeRegistrationService.ACTIVITY_TAG,degreeRegistration.getDegreeType(),StringUtils.join(collect1,","),null,2);
             if(!CollectionUtils.isEmpty(userLevelDegrees)){
                 return BaseController.failed(HttpStatus.CREATED, "您选择的 {} 乐器考级已报名,请勿重复选择",collect.get(0).getLevel());
             }
@@ -505,7 +499,7 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         if(!CollectionUtils.isEmpty(collect)){
             List<String> collect1 = collect.stream().map(e -> e.getLevel()).collect(Collectors.toList());
             List<DegreeRegistration> userLevelDegrees = degreeRegistrationDao.getUserLevelDegrees(degreeRegistration.getUserId(),
-                    DegreeRegistrationService.ACTIVITY_TAG,degreeRegistration.getDegreeType(),null,StringUtils.join(collect1,","));
+                    DegreeRegistrationService.ACTIVITY_TAG,degreeRegistration.getDegreeType(),null,StringUtils.join(collect1,","),2);
             if(!CollectionUtils.isEmpty(userLevelDegrees)){
                 return BaseController.failed(HttpStatus.CREATED, "您选择的 {} 乐理考级已报名,请勿重复选择",collect.get(0).getLevel());
             }

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/DegreeRegistrationMapper.xml

@@ -346,6 +346,9 @@
             <if test="degreeType != null">
                 AND degree_type_ = #{degreeType}
             </if>
+            <if test="status != null">
+                AND status_ = #{status}
+            </if>
             <if test="sporadicId != null and sporadicId != ''">
                 AND FIND_IN_SET(sporadic_id_,#{sporadicId})
             </if>
@@ -353,4 +356,7 @@
                 AND sporadic_id_ IS NULL AND FIND_IN_SET(level_,#{level})
             </if>
     </select>
+    <select id="getLockByOrderId" resultMap="DegreeRegistration">
+        SELECT * FROM degree_registration WHERE order_no_ = #{orderNo}
+    </select>
 </mapper>