Joburgess 5 年之前
父節點
當前提交
d13a5509b8

+ 6 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamManualLedgerDao.java

@@ -23,4 +23,10 @@ public interface ExamManualLedgerDao extends BaseDAO<Long, ExamManualLedger> {
     ExamManualLedgerStatisticsDto getExamManualLedgerStatistics(@Param("organId") Integer organId,
                                                                 @Param("examId") Long examId);
 
+
+    List<ExamManualLedger> getExamOrganManualLedgers(@Param("organId") Integer organId,
+                                                     @Param("examId") Long examId,
+                                                     @Param("days") List<String> days);
+
+
 }

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

@@ -62,4 +62,17 @@ public interface ExamRegistrationPaymentDao extends BaseDAO<Long, ExamRegistrati
      * @return
      */
     Integer getOrderListCount(Map<String, Object> params);
+
+    /**
+     * @describe 获取指定日期中分部考级项目的报名费用
+     * @author Joburgess
+     * @date 2020.07.16
+     * @param examId:
+     * @param organId:
+     * @param days:
+     * @return java.util.List<com.keao.edu.user.entity.ExamRegistrationPayment>
+     */
+    List<ExamRegistrationPayment> getWithExamOrganAndDay(@Param("examId") Long examId,
+                                                         @Param("organId") Integer organId,
+                                                         @Param("days") List<String> days);
 }

+ 39 - 5
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -63,6 +63,10 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 	private SysMessageService sysMessageService;
 	@Autowired
 	private ExamLifecycleLogDao examLifecycleLogDao;
+	@Autowired
+	private ExamRegistrationPaymentDao examRegistrationPaymentDao;
+	@Autowired
+	private ExamManualLedgerDao examManualLedgerDao;
 
 	public static final Set<ExamStatusEnum> EDIT_ABLE_EXAM_STATUS=new HashSet<>(Arrays.asList(ExamStatusEnum.SETTING,ExamStatusEnum.NOT_START,ExamStatusEnum.APPLYING,ExamStatusEnum.APPLIED));
 
@@ -317,9 +321,11 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 		}
 		ExamOrganStatisticsDto examOrganStatistics = examOrganizationRelationDao.getExamOrganizationRelation(examId, organId);
 		if(Objects.isNull(examOrganStatistics)){
-			return examOrganStatistics;
+			examOrganStatistics=new ExamOrganStatisticsDto();
 		}
 
+		examOrganStatistics.setExamLifecycleLogs(examLifecycleLogDao.findWithExam(examId));
+
 		Map<String, BigDecimal> dayTransAmount=new HashMap<>();
 		Map<String, BigDecimal> dayPaymentAmount=new HashMap<>();
 
@@ -329,14 +335,42 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 		for (int i=-1;i>-7;i--){
 			today = today.plusDays(i);
 			days.add(today.toString());
+			dayTransAmount.put(today.toString(), BigDecimal.ZERO);
+			dayPaymentAmount.put(today.toString(), BigDecimal.ZERO);
 		}
-		for (String day : days) {
-			dayTransAmount.put(day, BigDecimal.valueOf((long) (Math.random()*100),2));
-			dayPaymentAmount.put(day, BigDecimal.valueOf((long) (Math.random()*100),2));
+
+		List<ExamRegistrationPayment> examRegistrationPayments = examRegistrationPaymentDao.getWithExamOrganAndDay(examId, organId, days);
+		List<ExamManualLedger> examOrganManualLedgers = examManualLedgerDao.getExamOrganManualLedgers(organId, examId, days);
+
+		Map<String, List<ExamRegistrationPayment>> dayPaymentMap = new HashMap<>();
+		if(!CollectionUtils.isEmpty(examRegistrationPayments)){
+			dayPaymentMap = examRegistrationPayments.stream().collect(Collectors.groupingBy(e -> DateUtil.dateToString(e.getTransSuccessedTime())));
+		}
+		Map<String, List<ExamManualLedger>> dayLedgerMap = new HashMap<>();
+		if(!CollectionUtils.isEmpty(examOrganManualLedgers)){
+			dayLedgerMap = examOrganManualLedgers.stream().collect(Collectors.groupingBy(e -> DateUtil.dateToString(e.getTransTime())));
 		}
+
+		for (String day : dayTransAmount.keySet()) {
+			List<ExamManualLedger> dayLeders = dayLedgerMap.get(day);
+			if(CollectionUtils.isEmpty(dayLeders)){
+				continue;
+			}
+			BigDecimal amount = dayLeders.stream().map(ExamManualLedger::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+			dayTransAmount.put(day, amount);
+		}
+
+		for (String day : dayPaymentAmount.keySet()) {
+			List<ExamRegistrationPayment> dayPayments = dayPaymentMap.get(day);
+			if(CollectionUtils.isEmpty(dayPayments)){
+				continue;
+			}
+			BigDecimal amount = dayPayments.stream().map(ExamRegistrationPayment::getTransAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+			dayPaymentAmount.put(day, amount);
+		}
+
 		examOrganStatistics.setDayTransAmount(dayTransAmount);
 		examOrganStatistics.setDayPaymentAmount(dayPaymentAmount);
-		examOrganStatistics.setExamLifecycleLogs(examLifecycleLogDao.findWithExam(examId));
 		return examOrganStatistics;
 	}
 

+ 13 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamManualLedgerMapper.xml

@@ -134,4 +134,17 @@
 			</if>
 			AND trans_direction_ = 'EXPENDITURE'
 	</select>
+    <select id="getExamOrganManualLedgers" resultMap="ExamManualLedger">
+		SELECT
+			*
+		FROM
+			exam_manual_ledger
+		WHERE
+			examination_basic_id_ = 1
+			AND organ_id_ = 1
+			AND DATE_FORMAT( trans_time_, '%Y-%m-%d' ) IN
+			<foreach collection="days" item="day" separator="," open="(" close=")">
+				#{day}
+			</foreach>
+    </select>
 </mapper>

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

@@ -213,6 +213,19 @@
         AND trans_status_=#{transStatus,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
         <![CDATA[ AND create_time_ <= ]]> #{beforeTime}
     </select>
+    <select id="getWithExamOrganAndDay" resultMap="ExamRegistrationPayment">
+        SELECT
+            *
+        FROM
+            exam_registration_payment
+        WHERE
+            examination_basic_id_ = #{examId}
+            AND organ_id_ = #{organId}
+            AND DATE_FORMAT( create_time_, '%Y-%m-%d' ) IN
+            <foreach collection="days" item="day" separator="," open="(" close=")">
+                #{day}
+            </foreach>
+    </select>
 
     <resultMap id="ExamRegistrationPaymentDto" type="com.keao.edu.user.dto.ExamRegistrationPaymentDto"
                extends="ExamRegistrationPayment">