Pārlūkot izejas kodu

Merge branch 'feature/0406-degree' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 2 gadi atpakaļ
vecāks
revīzija
2407835c55

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DegreeRegistrationDao.java

@@ -5,6 +5,7 @@ import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
@@ -40,4 +41,6 @@ public interface DegreeRegistrationDao extends BaseDAO<Integer, DegreeRegistrati
      * @param degreeId 考级ID
      */
     List<DegreeRegistration> selectByDegreeId(@Param("degreeIds") List<Long> degreeId);
+
+    BigDecimal getDegreeIncomeDecimal(@Param("degreeId") Long degreeId);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeLevelFeeServiceImpl.java

@@ -70,7 +70,7 @@ public class DegreeLevelFeeServiceImpl extends ServiceImpl<DegreeLevelFeeMapper,
     public DegreeLevelFeeWrapper.DegreeLevelFee degreeLevelFeeConfig(Integer tenantId) {
 
         // 根据机构ID查询考级价格配置
-        Map<DegreeTypeEnum, List<DegreeLevelFeeNew>> collect = lambdaQuery().eq(DegreeLevelFeeNew::getTenantId, tenantId).list().stream()
+        Map<DegreeTypeEnum, List<DegreeLevelFeeNew>> collect = lambdaQuery().eq(DegreeLevelFeeNew::getTenantId, tenantId).orderByAsc(DegreeLevelFeeNew::getLevel).list().stream()
                 .collect(Collectors.groupingBy(DegreeLevelFeeNew::getDegreeType));
 
         // 考级价格信息

+ 4 - 29
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeServiceImpl.java

@@ -234,14 +234,6 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
             return statistical;
         }
 
-        // 过滤出支付的订单
-        registrations = registrations.stream().filter(o -> o.getStatus().equals(2)).collect(Collectors.toList());
-
-
-        if (CollectionUtils.isEmpty(registrations)) {
-            return statistical;
-        }
-
         // 用户ID集合
         List<Integer> userIds = registrations.stream().map(DegreeRegistration::getUserId).collect(Collectors.toList());
         statistical.setRegisterTotal(userIds.size());
@@ -249,31 +241,14 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
         statistical.setRegisterNum(new HashSet<>(userIds).size());
 
 
+        // 考级收入
+        BigDecimal degreeIncomeDecimal = degreeRegistrationDao.getDegreeIncomeDecimal(id);
 
-        // 订单号集合
-        List<String> orderNos = registrations.stream().map(DegreeRegistration::getOrderNo).collect(Collectors.toList());
-
-        // 通过订单号查询订单
-        List<StudentPaymentOrder> orderByOrderNos = studentPaymentOrderService.findOrderByOrderNos(orderNos);
-        if (CollectionUtils.isEmpty(orderByOrderNos)) {
-            return statistical;
-        }
-
-        // 订单ID集合
-        List<Long> orderIds = orderByOrderNos.stream().map(StudentPaymentOrder::getId).collect(Collectors.toList());
-
-        List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.getByOrderIdAndType(orderIds, OrderDetailTypeEnum.DEGREE_REGISTRATION);
-
-        if (CollectionUtils.isEmpty(orderDetailList)) {
-            return statistical;
-        }
 
-        // 总金额
-        BigDecimal totalAmount = orderDetailList.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+        statistical.setDegreeIncome(degreeIncomeDecimal);
 
-        statistical.setActualAmount(statistical.getActualAmount().add(totalAmount));
+        statistical.setActualAmount(statistical.getActualAmount().add(degreeIncomeDecimal));
 
-        statistical.setDegreeIncome(statistical.getDegreeIncome().add(totalAmount));
 
         return statistical;
     }

+ 12 - 1
mec-biz/src/main/resources/config/mybatis/DegreeRegistrationMapper.xml

@@ -328,7 +328,11 @@
     <select id="getUserLevelDegrees" resultMap="DegreeRegistration">
         select * from degree_registration
         where user_id_ = #{userId} and degree_id_ = #{degreeId} and type_ = #{type}
-          AND FIND_IN_SET(level_,#{levels}) AND subject_id_ = #{subjectId} AND status_ = 2 LIMIT 1
+          AND FIND_IN_SET(level_,#{levels}) AND status_ = 2
+        <if test="subjectId != null">
+            AND subject_id_ = #{subjectId}
+        </if>
+        LIMIT 1
     </select>
     <select id="getLockByOrderId" resultMap="DegreeRegistration">
         SELECT * FROM degree_registration WHERE order_no_ = #{orderNo} FOR UPDATE
@@ -348,4 +352,11 @@
         </foreach>
           AND status_ = 2
     </select>
+
+    <select id="getDegreeIncomeDecimal" resultType="java.math.BigDecimal">
+        SELECT sum(ifnull(money_,0) + ifnull(theory_money_,0)) as money
+        FROM degree_registration
+        WHERE degree_id_ = #{degreeId}
+        AND status_ = 2
+    </select>
 </mapper>