yonge 4 years ago
parent
commit
8edb19e3db

+ 20 - 31
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -2030,12 +2030,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
             if (studentPaymentOrderList.size() > 0) {
             	
-            	BigDecimal remitFee = BigDecimal.ZERO;
-            			
-            	for(StudentPaymentOrder studentPaymentOrder : studentPaymentOrderList){
-            		remitFee = studentPaymentOrder.getRemitFee() == null ? BigDecimal.ZERO : studentPaymentOrder.getRemitFee();
-            	}
-            	
             	List<Long> paymentOrderIdList = studentPaymentOrderList.stream().map(t -> t.getId()).collect(Collectors.toList());
 
                 List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.getWithIds(paymentOrderIdList);
@@ -2045,32 +2039,27 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     studentLastChange = subjectChangeDao.getStudentLastChange(userId, musicGroupId);
                 }
                 
-                for (StudentPaymentOrderDetail detail : orderDetailList) {
-                    if (remitFee.compareTo(detail.getPrice()) >= 0) {
-                        remitFee = remitFee.subtract(detail.getPrice());
-                        detail.setPrice(BigDecimal.ZERO);
-                    } else {
-                        detail.setPrice(detail.getPrice().subtract(remitFee));
-                        remitFee = BigDecimal.ZERO;
-                    }
-
-                    if (isRefundInstrumentFee && studentLastChange == null) {
-                        // 退乐器费用
-                        if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
-                            amount = amount.add(detail.getPrice());
-                        }
+				for (StudentPaymentOrderDetail detail : orderDetailList) {
+
+					// 退乐器费用
+					if (isRefundInstrumentFee && detail.getType() == OrderDetailTypeEnum.MUSICAL) {
+						if (studentLastChange.getOriginalOrderId() != null && studentLastChange.getOriginalOrderId() == detail.getPaymentOrderId().intValue()) {
+							amount = amount.add(studentLastChange.getChangeMusicalPrice());
+						} else {
+							amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
+						}
+					}
 
-                    }
-                    if (isRefundTeachingAssistantsFee && studentLastChange == null) {
-                        // 退教辅费用
-                        if (detail.getType() == OrderDetailTypeEnum.ACCESSORIES || detail.getType() == OrderDetailTypeEnum.TEACHING) {
-                            amount = amount.add(detail.getPrice());
-                        }
-                    }
-                }
-                if (studentLastChange != null) {
-                    amount = amount.add(studentLastChange.getChangeMusicalPrice()).add(studentLastChange.getChangeAccessoriesPrice());
-                }
+					// 退教辅费用
+					if (isRefundTeachingAssistantsFee
+							&& (detail.getType() == OrderDetailTypeEnum.ACCESSORIES || detail.getType() == OrderDetailTypeEnum.TEACHING)) {
+						if (studentLastChange.getOriginalOrderId() != null && studentLastChange.getOriginalOrderId() == detail.getPaymentOrderId().intValue()) {
+							amount = amount.add(studentLastChange.getChangeAccessoriesPrice());
+						} else {
+							amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
+						}
+					}
+				}
             
             }
 

+ 63 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -1,14 +1,71 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.DemoGroupDao;
+import com.ym.mec.biz.dal.dao.ImGroupDao;
+import com.ym.mec.biz.dal.dao.ImUserFriendDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.SchoolDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.ImUserFriendDto;
+import com.ym.mec.biz.dal.dto.MusicGroupStudentApplyDto;
+import com.ym.mec.biz.dal.dto.MusicGroupTeacherAttendanceDto;
+import com.ym.mec.biz.dal.dto.MusicGroupTeachersDto;
+import com.ym.mec.biz.dal.dto.TeacherBasicDto;
+import com.ym.mec.biz.dal.dto.TeacherCloseDto;
+import com.ym.mec.biz.dal.dto.TeacherDefaultSalaryDto;
+import com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto;
+import com.ym.mec.biz.dal.entity.CourseHomework;
+import com.ym.mec.biz.dal.entity.ImUserFriend;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.page.MusicGroupTeacherAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.MusicGroupTeachersQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherNameQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherQueryInfo;
+import com.ym.mec.biz.dal.page.queryMusicGroupStudentQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.constant.CommonConstants;
@@ -21,25 +78,10 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
-import com.ym.mec.im.WebFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.idcard.IdcardValidator;
 
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import java.math.BigDecimal;
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.stream.Collectors;
-
 @Service
 public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  implements TeacherService {
 
@@ -507,8 +549,9 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				Map<Integer, List<StudentPaymentOrder>> collect = studentPaymentOrders.stream().collect(Collectors.groupingBy(StudentPaymentOrder::getUserId));
 				dataList.forEach(e->{
 					List<StudentPaymentOrder> paymentOrders = collect.get(e.getUserId());
+					
 					if(paymentOrders != null && paymentOrders.size() > 0){
-						e.setPaymentAmount(paymentOrders.get(0).getActualAmount());
+						e.setPaymentAmount(paymentOrders.stream().map(t -> t.getActualAmount()).reduce(BigDecimal.ZERO, BigDecimal::add));
 						e.setPayTime(paymentOrders.get(0).getPayTime());
 					}
 				});

+ 1 - 2
mec-biz/src/main/resources/config/mybatis/StudentInstrumentMapper.xml

@@ -273,7 +273,7 @@
         SELECT student_id_,COUNT(*) goods_id_
         FROM student_instrument
         WHERE order_id_ IN (
-        SELECT MAX(id_)
+        SELECT id_
         FROM student_payment_order
         WHERE type_ = 'APPLY'
         AND music_group_id_ = #{musicGroupId}
@@ -282,7 +282,6 @@
         <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
             #{studentId}
         </foreach>
-        GROUP BY user_id_
         )
         AND student_id_ IN
         <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">

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

@@ -1385,7 +1385,7 @@
         LEFT JOIN subject s1 ON spr.subject_first_ = s1.id_
         LEFT JOIN subject s2 ON sr.actual_subject_id_ = s2.id_
         LEFT JOIN (
-        SELECT spo.user_id_, MAX(spo.pay_time_) payTime
+        SELECT spo.user_id_, min(spo.pay_time_) payTime
         FROM student_payment_order spo
         WHERE spo.music_group_id_ = #{musicGroupId}
         AND spo.status_ = 'SUCCESS'