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

Merge branch 'master' of http://git.dayaedu.com/yonge/edu-saas

zouxuan 5 лет назад
Родитель
Сommit
a71eda416e

+ 13 - 4
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/ExamRegistrationPaymentDao.java

@@ -6,6 +6,7 @@ import com.keao.edu.user.entity.ExamRegistrationPayment;
 import com.keao.edu.user.enums.TransStatusEnum;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -76,8 +77,16 @@ public interface ExamRegistrationPaymentDao extends BaseDAO<Long, ExamRegistrati
                                                          @Param("organId") Integer organId,
                                                          @Param("days") List<String> days);
 
-
-    List<ExamRegistrationPayment> getWithExamOrgansAndDay(@Param("examId") Long examId,
-                                                         @Param("organIds") List<Integer> organIds,
-                                                         @Param("days") List<String> days);
+    /**
+     * @describe 统计合作单位在指定日期报名费用
+     * @author Joburgess
+     * @date 2020.08.07
+     * @param examId:
+     * @param organIds:
+     * @param day:
+     * @return java.math.BigDecimal
+     */
+    BigDecimal countOrganPaymentAmountWithDay(@Param("examId") Long examId,
+                                              @Param("organIds") List<Integer> organIds,
+                                              @Param("day") String day);
 }

+ 10 - 10
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/ExamOrganStatisticsDto.java

@@ -16,9 +16,9 @@ public class ExamOrganStatisticsDto extends ExamOrganizationRelation {
 
     private Map<String, BigDecimal> dayTransAmount;
 
-    private Map<String, BigDecimal> dayPaymentAmount;
+    private BigDecimal selfTodayPaymentAmount;
 
-    private Map<String, BigDecimal> dayTotalPaymentAmount;
+    private BigDecimal todayTotalPaymentAmount;
 
     public List<ExamLifecycleLogDto> getExamLifecycleLogs() {
         return examLifecycleLogs;
@@ -36,19 +36,19 @@ public class ExamOrganStatisticsDto extends ExamOrganizationRelation {
         this.dayTransAmount = dayTransAmount;
     }
 
-    public Map<String, BigDecimal> getDayPaymentAmount() {
-        return dayPaymentAmount;
+    public BigDecimal getSelfTodayPaymentAmount() {
+        return selfTodayPaymentAmount;
     }
 
-    public void setDayPaymentAmount(Map<String, BigDecimal> dayPaymentAmount) {
-        this.dayPaymentAmount = dayPaymentAmount;
+    public void setSelfTodayPaymentAmount(BigDecimal selfTodayPaymentAmount) {
+        this.selfTodayPaymentAmount = selfTodayPaymentAmount;
     }
 
-    public Map<String, BigDecimal> getDayTotalPaymentAmount() {
-        return dayTotalPaymentAmount;
+    public BigDecimal getTodayTotalPaymentAmount() {
+        return todayTotalPaymentAmount;
     }
 
-    public void setDayTotalPaymentAmount(Map<String, BigDecimal> dayTotalPaymentAmount) {
-        this.dayTotalPaymentAmount = dayTotalPaymentAmount;
+    public void setTodayTotalPaymentAmount(BigDecimal todayTotalPaymentAmount) {
+        this.todayTotalPaymentAmount = todayTotalPaymentAmount;
     }
 }

+ 3 - 28
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamOrganizationRelationServiceImpl.java

@@ -16,7 +16,6 @@ import com.keao.edu.user.dto.ExamOrganStatisticsDto;
 import com.keao.edu.user.dto.ExamOrganizationRelationExtraDto;
 import com.keao.edu.user.entity.*;
 import com.keao.edu.user.enums.ExamStatusEnum;
-import com.keao.edu.user.enums.TransStatusEnum;
 import com.keao.edu.user.enums.YesOrNoEnum;
 import com.keao.edu.user.page.ExamOrganizationRelationQueryInfo;
 import com.keao.edu.user.service.ExamOrganizationRelationService;
@@ -480,35 +479,20 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 		examOrganStatistics.setExamLifecycleLogs(examLifecycleLogDao.findWithExam(examId));
 
 		Map<String, BigDecimal> dayTransAmount=new LinkedHashMap<>();
-		Map<String, BigDecimal> dayPaymentAmount=new LinkedHashMap<>();
-		Map<String, BigDecimal> dayTotalPaymentAmount=new LinkedHashMap<>();
 
 		LocalDate today = LocalDate.now();
 		List<String> days=new ArrayList<>();
 		days.add(today.toString());
 		dayTransAmount.put(today.toString(), BigDecimal.ZERO);
-		dayPaymentAmount.put(today.toString(), BigDecimal.ZERO);
 		for (int i=-1;i>-7;i--){
 			days.add(today.plusDays(i).toString());
 			dayTransAmount.put(today.plusDays(i).toString(), BigDecimal.ZERO);
-			dayPaymentAmount.put(today.plusDays(i).toString(), BigDecimal.ZERO);
-			dayTotalPaymentAmount.put(today.plusDays(i).toString(), BigDecimal.ZERO);
 		}
 
 		List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, true);
 
-		List<ExamRegistrationPayment> examRegistrationPayments;
-		if(!CollectionUtils.isEmpty(childOrganIds)){
-			examRegistrationPayments = examRegistrationPaymentDao.getWithExamOrgansAndDay(examId, childOrganIds, days);
-		}else{
-			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().filter(e-> TransStatusEnum.SUCCESS.equals(e.getTransStatus())).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())));
@@ -523,20 +507,11 @@ public class ExamOrganizationRelationServiceImpl extends BaseServiceImpl<Long, E
 			dayTransAmount.put(day, amount);
 		}
 
-		for (String day : dayPaymentAmount.keySet()) {
-			List<ExamRegistrationPayment> dayPayments = dayPaymentMap.get(day);
-			if(CollectionUtils.isEmpty(dayPayments)){
-				continue;
-			}
-			BigDecimal totalAmount = dayPayments.stream().map(ExamRegistrationPayment::getTransAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-			BigDecimal amount = dayPayments.stream().filter(e->organId.equals(e.getOrganId())).map(ExamRegistrationPayment::getTransAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-			dayPaymentAmount.put(day, amount);
-			dayTotalPaymentAmount.put(day, totalAmount);
-		}
+		LocalDate now = LocalDate.now();
 
 		examOrganStatistics.setDayTransAmount(dayTransAmount);
-		examOrganStatistics.setDayPaymentAmount(dayPaymentAmount);
-		examOrganStatistics.setDayTotalPaymentAmount(dayTotalPaymentAmount);
+		examOrganStatistics.setSelfTodayPaymentAmount(examRegistrationPaymentDao.countOrganPaymentAmountWithDay(examId,Arrays.asList(organId), now.toString()));
+		examOrganStatistics.setTodayTotalPaymentAmount(examRegistrationPaymentDao.countOrganPaymentAmountWithDay(examId,childOrganIds, now.toString()));
 		return examOrganStatistics;
 	}
 

+ 3 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java

@@ -55,6 +55,9 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		//获取当前用的organ
 		SysUser queryUserInfo = sysUserFeignService.queryUserInfo();
 		Organization currentOrganization = organDao.findByUserId(queryUserInfo.getId());
+		if(Objects.isNull(currentOrganization)){
+			throw new BizException("用户信息错误");
+		}
 		if(currentOrganization == null){
 			Integer organId = OrganContextHolder.getOrganId();
 			currentOrganization = organDao.get(organId);

+ 9 - 12
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamRegistrationPaymentMapper.xml

@@ -230,21 +230,18 @@
             </foreach>
     </select>
 
-    <select id="getWithExamOrgansAndDay" resultMap="ExamRegistrationPayment">
+    <select id="countOrganPaymentAmountWithDay" resultType="java.math.BigDecimal">
         SELECT
-        *
+            SUM(trans_amount_)
         FROM
-        exam_registration_payment
+            exam_registration_payment
         WHERE
-        examination_basic_id_ = #{examId}
-        AND organ_id_ IN
-        <foreach collection="organIds" item="organId" separator="," open="(" close=")">
-            #{organId}
-        </foreach>
-        AND DATE_FORMAT( create_time_, '%Y-%m-%d' ) IN
-        <foreach collection="days" item="day" separator="," open="(" close=")">
-            #{day}
-        </foreach>
+            examination_basic_id_ = #{examId}
+            AND DATE_FORMAT( create_time_, '%Y-%m-%d' ) = #{day}
+            AND organ_id_ IN
+            <foreach collection="organIds" item="organId" separator="," open="(" close=")">
+                #{organId}
+            </foreach>
     </select>
 
     <resultMap id="ExamRegistrationPaymentDto" type="com.keao.edu.user.dto.ExamRegistrationPaymentDto"