浏览代码

Merge branch 'online1' of http://git.dayaedu.com/yonge/mec into musicgroup_0806

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentInstrumentServiceImpl.java
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java
yonge 4 年之前
父节点
当前提交
c22cee63f2

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentExtracurricularExercisesSituationDao.java

@@ -108,10 +108,10 @@ public interface StudentExtracurricularExercisesSituationDao extends BaseDAO<Lon
      * @describe 统计指定星期的服务记录数量
      * @describe 统计指定星期的服务记录数量
      * @author Joburgess
      * @author Joburgess
      * @date 2020/12/25 0025
      * @date 2020/12/25 0025
-     * @param sunday:
+     * @param monday:
      * @return int
      * @return int
      */
      */
-    int countWeekServiceNum(@Param("sunday") String sunday);
+    int countWeekServiceNum(@Param("monday") String monday);
 
 
     /**
     /**
      * @describe 获取指定周指定学员的服务指标
      * @describe 获取指定周指定学员的服务指标

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/PayStatus.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum PayStatus implements BaseEnum<String, PayStatus> {
+
+	FAILED("支付失败"), WAIT_PAY("待支付"), PAYING("支付中"), SUCCESSED("支付成功");
+
+	private String desc;
+
+	private PayStatus(String desc) {
+		this.desc = desc;
+	}
+
+	@Override
+	public String getCode() {
+		return this.name();
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+}

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -15,6 +15,7 @@ import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PayStatus;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -185,5 +186,7 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     void callOrderCallBack(StudentPaymentOrder order) throws Exception;
     void callOrderCallBack(StudentPaymentOrder order) throws Exception;
     
     
     int batchUpdate(List<StudentPaymentOrder> studentPaymentOrderList);
     int batchUpdate(List<StudentPaymentOrder> studentPaymentOrderList);
+    
+    PayStatus queryPayStatus(String paymentChannel, String orderNo, String transNo) throws Exception;
 
 
 }
 }

+ 63 - 25
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -2180,29 +2180,41 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     studentLastChange = subjectChangeDao.getStudentLastChange(userId, musicGroupId);
                     studentLastChange = subjectChangeDao.getStudentLastChange(userId, musicGroupId);
                 }
                 }
                 
                 
-				if (studentLastChange != null && minPaymentOrderId <= studentLastChange.getOriginalOrderId()) {
-					if (isRefundInstrumentFee) {
-						amount = amount.add(studentLastChange.getChangeMusicalPrice());
-					}
+    			if (studentLastChange != null && minPaymentOrderId <= studentLastChange.getOriginalOrderId()) {
+    				if (isRefundInstrumentFee) {
+    					amount = amount.add(studentLastChange.getChangeMusicalPrice());
+    					
+    					StudentInstrument studentMaintenance = studentInstrumentDao.getByOrderId(studentLastChange.getOrderId().longValue());
+    		            if (studentMaintenance != null) {
+    		                studentMaintenance.setDelFlag(1);
+    		                studentInstrumentDao.update(studentMaintenance);
+    		            }
+    				}
 
 
-					if (isRefundTeachingAssistantsFee) {
-						amount = amount.add(studentLastChange.getChangeAccessoriesPrice());
-					}
-				} else {
-					for (StudentPaymentOrderDetail detail : orderDetailList) {
-
-						// 退乐器费用
-						if (isRefundInstrumentFee && detail.getType() == OrderDetailTypeEnum.MUSICAL) {
-							amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
-						}
-
-						// 退教辅费用
-						if (isRefundTeachingAssistantsFee
-								&& (detail.getType() == OrderDetailTypeEnum.ACCESSORIES || detail.getType() == OrderDetailTypeEnum.TEACHING)) {
-							amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
-						}
-					}
-				}
+    				if (isRefundTeachingAssistantsFee) {
+    					amount = amount.add(studentLastChange.getChangeAccessoriesPrice());
+    				}
+    			} else {
+    				for (StudentPaymentOrderDetail detail : orderDetailList) {
+
+    					// 退乐器费用
+    					if (isRefundInstrumentFee && detail.getType() == OrderDetailTypeEnum.MUSICAL) {
+    						amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
+    						
+    						StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(userId, musicGroupId);
+    			            if (studentMaintenance != null) {
+    			                studentMaintenance.setDelFlag(1);
+    			                studentInstrumentDao.update(studentMaintenance);
+    			            }
+    					}
+
+    					// 退教辅费用
+    					if (isRefundTeachingAssistantsFee
+    							&& (detail.getType() == OrderDetailTypeEnum.ACCESSORIES || detail.getType() == OrderDetailTypeEnum.TEACHING)) {
+    						amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
+    					}
+    				}
+    			}
             }
             }
 
 
             //退乐保费用
             //退乐保费用
@@ -2215,7 +2227,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 }
                 }
                 amount = amount.add(maintenanceFee);
                 amount = amount.add(maintenanceFee);
                 if (maintenanceFee.compareTo(BigDecimal.ZERO) > 0 && studentMaintenance != null) {
                 if (maintenanceFee.compareTo(BigDecimal.ZERO) > 0 && studentMaintenance != null) {
-                    studentMaintenance.setDelFlag(1);
+                    studentMaintenance.setStatus(0);
+                    studentMaintenance.setStartTime(null);
+                    studentMaintenance.setEndTime(null);
                     studentInstrumentDao.update(studentMaintenance);
                     studentInstrumentDao.update(studentMaintenance);
                 }
                 }
             }
             }
@@ -2463,6 +2477,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			if (studentLastChange != null && minPaymentOrderId <= studentLastChange.getOriginalOrderId()) {
 			if (studentLastChange != null && minPaymentOrderId <= studentLastChange.getOriginalOrderId()) {
 				if (isRefundInstrumentFee) {
 				if (isRefundInstrumentFee) {
 					amount = amount.add(studentLastChange.getChangeMusicalPrice());
 					amount = amount.add(studentLastChange.getChangeMusicalPrice());
+					
+					StudentInstrument studentMaintenance = studentInstrumentDao.getByOrderId(studentLastChange.getOrderId().longValue());
+		            if (studentMaintenance != null) {
+		                studentMaintenance.setDelFlag(1);
+		                studentInstrumentDao.update(studentMaintenance);
+		            }
 				}
 				}
 
 
 				if (isRefundTeachingAssistantsFee) {
 				if (isRefundTeachingAssistantsFee) {
@@ -2474,6 +2494,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 					// 退乐器费用
 					// 退乐器费用
 					if (isRefundInstrumentFee && detail.getType() == OrderDetailTypeEnum.MUSICAL) {
 					if (isRefundInstrumentFee && detail.getType() == OrderDetailTypeEnum.MUSICAL) {
 						amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
 						amount = amount.add(detail.getPrice()).subtract(detail.getRemitFee());
+						
+						StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(userId, musicGroupId);
+			            if (studentMaintenance != null) {
+			                studentMaintenance.setDelFlag(1);
+			                studentInstrumentDao.update(studentMaintenance);
+			            }
 					}
 					}
 
 
 					// 退教辅费用
 					// 退教辅费用
@@ -2496,7 +2522,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             }
             }
             amount = amount.add(maintenanceFee);
             amount = amount.add(maintenanceFee);
             if (maintenanceFee.compareTo(BigDecimal.ZERO) > 0 && studentMaintenance != null) {
             if (maintenanceFee.compareTo(BigDecimal.ZERO) > 0 && studentMaintenance != null) {
-                studentMaintenance.setDelFlag(1);
+                studentMaintenance.setStatus(0);
+                studentMaintenance.setStartTime(null);
+                studentMaintenance.setEndTime(null);
                 studentInstrumentDao.update(studentMaintenance);
                 studentInstrumentDao.update(studentMaintenance);
             }
             }
         }
         }
@@ -3684,6 +3712,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			throw new BizException("乐器已发货,请勿重复操作");
 			throw new BizException("乐器已发货,请勿重复操作");
 		}
 		}
 		
 		
+		Set<String> musicGroupIds = new HashSet<String>();
+        musicGroupIds.add(musicGroupId);
+        List<MusicGroupPurchaseList> musicGroupPurchaseListCount = musicGroupPurchaseListDao.getCount(musicGroupIds);
+        if (musicGroupPurchaseListCount == null || musicGroupPurchaseListCount.size() == 0) {
+            throw new BizException("乐器清单未确认,不能确认发货");
+        }
+		
 		Date date = new Date();
 		Date date = new Date();
 		
 		
 		musicGroup.setMusicalInstrumentsProvideStatus(1);
 		musicGroup.setMusicalInstrumentsProvideStatus(1);
@@ -3700,12 +3735,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		List<StudentInstrument> updateList = new ArrayList<StudentInstrument>();
 		List<StudentInstrument> updateList = new ArrayList<StudentInstrument>();
 		
 		
 		for (StudentInstrument si : studentInstrumentList) {
 		for (StudentInstrument si : studentInstrumentList) {
+			if (si.getDelFlag() == 1) {
+				continue;
+			}
 			if (si.getStatus() == 0 && si.getStartTime() == null) {
 			if (si.getStatus() == 0 && si.getStartTime() == null) {
 				si.setStatus(1);
 				si.setStatus(1);
 				si.setStartTime(date);
 				si.setStartTime(date);
 				si.setEndTime(DateUtil.addYears(date, 1));
 				si.setEndTime(DateUtil.addYears(date, 1));
 				si.setUpdateTime(date);
 				si.setUpdateTime(date);
-				
+
 				updateList.add(si);
 				updateList.add(si);
 			}
 			}
 		}
 		}

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

@@ -397,7 +397,6 @@ public class StudentInstrumentServiceImpl extends BaseServiceImpl<Long, StudentI
         	
         	
             return false;
             return false;
         }
         }
-
         if (studentInstrument == null) {
         if (studentInstrument == null) {
             studentInstrument = new StudentInstrument();
             studentInstrument = new StudentInstrument();
             studentInstrument.setStudentId(subjectChange.getStudentId());
             studentInstrument.setStudentId(subjectChange.getStudentId());

+ 46 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -31,6 +31,7 @@ import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.biz.dal.enums.PayStatus;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
 import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
 import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
@@ -645,4 +646,49 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
 	public int batchUpdate(List<StudentPaymentOrder> studentPaymentOrderList) {
 	public int batchUpdate(List<StudentPaymentOrder> studentPaymentOrderList) {
 		return studentPaymentOrderDao.batchUpdate(studentPaymentOrderList);
 		return studentPaymentOrderDao.batchUpdate(studentPaymentOrderList);
 	}
 	}
+
+	@Override
+	public PayStatus queryPayStatus(String paymentChannel, String orderNo, String transNo) throws Exception {
+		if (StringUtils.isBlank(transNo)) {
+			return PayStatus.FAILED;
+		}
+
+		if (StringUtils.equals(paymentChannel, "ADAPAY")) {
+			Map<String, Object> payment = Payment.queryPayment(transNo);
+			String status = (String) payment.get("status");
+			if (status.equals("succeeded")) {
+				return PayStatus.SUCCESSED;
+			} else if (status.equals("failed")) {
+				return PayStatus.FAILED;
+			} else {
+				return PayStatus.PAYING;
+			}
+		} else if (StringUtils.equals(paymentChannel, "YQPAY")) {
+			String notifyUrl = ""; // 回调地址
+			Map<String, Object> resultMap = new LinkedHashMap<>();
+			resultMap.put("merOrderNoList", orderNo);
+			Map<String, Object> requestMap = YqPayUtil.getRequestMap(notifyUrl, resultMap);
+
+			RsqMsg rsqMsg = new RsqMsg(requestMap);
+
+			Msg queryRs = yqPayFeignService.orderQuery(rsqMsg);
+
+			if (queryRs.getCode().equals("88")) {
+				// 更新订单状态
+				String responseParameters = queryRs.getResponseParameters();
+				List<Map<String, String>> responseList = JSON.parseObject(responseParameters, List.class);
+				for (Map<String, String> response : responseList) {
+
+					if (StringUtils.equals(response.get("tradeState"), "1")) {
+						return PayStatus.SUCCESSED;
+					} else if (StringUtils.equals(response.get("tradeState"), "0") || StringUtils.equals(response.get("tradeState"), "7")) {
+						return PayStatus.FAILED;
+					} else {
+						return PayStatus.PAYING;
+					}
+				}
+			}
+		}
+		throw new BizException("支付渠道错误");
+	}
 }
 }

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

@@ -299,8 +299,9 @@ public class StudentServeServiceImpl implements StudentServeService {
     public void exercisesSituationStatistics2(String monday, List<Integer> studentIds) {
     public void exercisesSituationStatistics2(String monday, List<Integer> studentIds) {
         LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
         LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
 
 
+        int preWeekServiceNum = studentExtracurricularExercisesSituationDao.countWeekServiceNum(nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue()).plusDays(-7).toString());
         int lastWeekTodayUpdateNum = studentExtracurricularExercisesSituationDao.findLastWeekTodayUpdateNum(nowDate.plusDays(-nowDate.getDayOfWeek().getValue()).toString());
         int lastWeekTodayUpdateNum = studentExtracurricularExercisesSituationDao.findLastWeekTodayUpdateNum(nowDate.plusDays(-nowDate.getDayOfWeek().getValue()).toString());
-        if(lastWeekTodayUpdateNum<=0){
+        if(preWeekServiceNum>0 && lastWeekTodayUpdateNum<=0){
             nowDate = nowDate.plusDays(-nowDate.getDayOfWeek().getValue());
             nowDate = nowDate.plusDays(-nowDate.getDayOfWeek().getValue());
         }
         }
 
 

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java

@@ -237,6 +237,14 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
             throw new BizException("已有未支付的声部更改,请勿重复创建");
             throw new BizException("已有未支付的声部更改,请勿重复创建");
         }
         }
         
         
+        Set<String> musicGroupIds = new HashSet<String>();
+        musicGroupIds.add(musicGroupId);
+        
+        List<MusicGroupPurchaseList> musicGroupPurchaseListCount = musicGroupPurchaseListDao.getCount(musicGroupIds);
+        if (musicGroupPurchaseListCount.size() > 0) {
+            throw new BizException("乐器清单已确认,不能做声部更改");
+        }
+        
         //判断新声部人数是否已满
         //判断新声部人数是否已满
         MusicGroupSubjectPlan changeSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, subjectChange.getChangeSubjectId());
         MusicGroupSubjectPlan changeSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, subjectChange.getChangeSubjectId());
 		if (changeSubjectPlan.getExpectedStudentNum() <= changeSubjectPlan.getPaidStudentNum()) {
 		if (changeSubjectPlan.getExpectedStudentNum() <= changeSubjectPlan.getPaidStudentNum()) {
@@ -252,8 +260,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
         	if(changeSubjectPlan.getPaidZeroNum() != null && changeSubjectPlan.getPaidZeroNum() > 0){
         	if(changeSubjectPlan.getPaidZeroNum() != null && changeSubjectPlan.getPaidZeroNum() > 0){
         		throw new BizException("声部更换失败,当前用户是0元入团,且当前声部已有0元入团学生");
         		throw new BizException("声部更换失败,当前用户是0元入团,且当前声部已有0元入团学生");
         	}
         	}
-        }
-        
+        }        
         Date nowDate = new Date();
         Date nowDate = new Date();
         SubjectChange studentOriginal = getStudentOriginal(subjectChange.getStudentId(), subjectChange.getMusicGroupId());
         SubjectChange studentOriginal = getStudentOriginal(subjectChange.getStudentId(), subjectChange.getMusicGroupId());
         if(studentOriginal != null){
         if(studentOriginal != null){

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

@@ -471,7 +471,7 @@
 	</select>
 	</select>
 
 
 	<select id="countWeekServiceNum" resultType="int">
 	<select id="countWeekServiceNum" resultType="int">
-		SELECT COUNT(id_) FROM student_extracurricular_exercises_situation_ WHERE monday_=#{sunday}
+		SELECT COUNT(id_) FROM student_extracurricular_exercises_situation_ WHERE monday_=#{monday}
 	</select>
 	</select>
 
 
 	<select id="findWeekServiceWithStudents" resultMap="StudentExtracurricularExercisesSituation">
 	<select id="findWeekServiceWithStudents" resultMap="StudentExtracurricularExercisesSituation">

+ 1 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -136,6 +136,7 @@ public class StudentManageController extends BaseController {
 		Student student = studentService.get(user.getId());
 		Student student = studentService.get(user.getId());
 		student.setId(user.getId());
 		student.setId(user.getId());
 		student.setUsername(user.getUsername());
 		student.setUsername(user.getUsername());
+		student.setAvatar(user.getAvatar());
 		student.setPhone(user.getPhone());
 		student.setPhone(user.getPhone());
 		student.setCurrentClass(user.getCurrentClass());
 		student.setCurrentClass(user.getCurrentClass());
 		student.setCurrentGrade(user.getCurrentGrade());
 		student.setCurrentGrade(user.getCurrentGrade());