浏览代码

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父节点
当前提交
b2aeb2e1fe

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java

@@ -25,6 +25,13 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 * @return
 	 */
 	int deleteByUserIdAndMusicGroupId(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);
+	
+	/**
+	 * 删除缴费记录
+	 * @param musicGroupId
+	 * @return
+	 */
+	int deleteByMusicGroupId(String musicGroupId);
 
 	/**
 	 * @describe 根据学生编号和乐团编号更新旷课次数

+ 20 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -609,13 +609,17 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.SUCCESS);
 
 			if (studentPaymentOrder == null) {
-				throw new BizException("缴费订单不存在");
-			}
+				MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.findSubjectPlan(musicGroupId, subjectId);
+				if (musicGroupSubjectPlan != null) {
+					depositFee = musicGroupSubjectPlan.getDepositFee().doubleValue();
+				}
+			} else {
 
-			List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
-			for (StudentPaymentOrderDetail detail : orderDetailList) {
-				if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
-					depositFee = detail.getPrice().doubleValue();
+				List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
+				for (StudentPaymentOrderDetail detail : orderDetailList) {
+					if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
+						depositFee = detail.getPrice().doubleValue();
+					}
 				}
 			}
 		}
@@ -697,13 +701,17 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.WAIT_PAY);
 
 			if (studentPaymentOrder == null) {
-				throw new BizException("缴费订单不存在");
-			}
+				MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.findSubjectPlan(musicGroupId, subjectId);
+				if (musicGroupSubjectPlan != null) {
+					depositFee = musicGroupSubjectPlan.getDepositFee().doubleValue();
+				}
+			} else {
 
-			List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
-			for (StudentPaymentOrderDetail detail : orderDetailList) {
-				if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
-					depositFee = detail.getPrice().doubleValue();
+				List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
+				for (StudentPaymentOrderDetail detail : orderDetailList) {
+					if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
+						depositFee = detail.getPrice().doubleValue();
+					}
 				}
 			}
 		}

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

@@ -885,6 +885,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (studentPaymentOrders != null && studentPaymentOrders.size() > 0) {
             throw new BizException("缴费存在交易中的数据,不能取消乐团");
         }
+        
+        //删除续费记录
+        musicGroupStudentFeeDao.deleteByMusicGroupId(musicGroupId);
 
         // 查询已缴费信息
         studentPaymentOrders = studentPaymentOrderDao.queryByDealStatus(musicGroupId, OrderTypeEnum.APPLY, DealStatusEnum.SUCCESS);

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -176,6 +176,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		CourseSchedule firstCourseSchedule = vipGroup.getCourseSchedules().stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
 		//获取最后一节课
 		CourseSchedule latestCourseSchedule = vipGroup.getCourseSchedules().stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get();
+
+		if(firstCourseSchedule.getStartClassTime().before(now)){
+			throw new BizException("开课时间不能小于当前时间");
+		}
+
 		//判断课程安排是否超出范围
 		if(Objects.nonNull(vipGroupActivity.getCoursesEndTime())||Objects.nonNull(vipGroupActivity.getCoursesStartTime())){
 			if(latestCourseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -103,6 +103,10 @@
     <delete id="deleteByUserIdAndMusicGroupId" parameterType="map">
 		DELETE FROM music_group_student_fee_ WHERE user_id_ = #{userId} and music_group_id_ = #{musicGroupId}
 	</delete>
+	
+    <delete id="deleteByMusicGroupId" parameterType="map">
+		DELETE FROM music_group_student_fee_ WHERE music_group_id_ = #{musicGroupId}
+	</delete>
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="MusicGroupStudentFee" parameterType="map">

+ 129 - 129
mec-util/src/main/java/com/ym/mec/util/money/MoneyUtil.java

@@ -1,131 +1,131 @@
 package com.ym.mec.util.money;
 
-public class MoneyUtil {  
-    /** 大写数字 */  
-    private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍",  
-            "陆", "柒", "捌", "玖" };  
-  
-    /** 整数部分的单位 */  
-    private static final String[] IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰",  
-            "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };  
-  
-    /** 小数部分的单位 */  
-    private static final String[] DUNIT = { "角", "分", "厘" };  
-  
-    /** 
-     * 得到大写金额。 
-     */  
-    public static String toChinese(String str) {  
-        str = str.replaceAll(",", "");// 去掉","  
-        String integerStr;// 整数部分数字  
-        String decimalStr;// 小数部分数字  
-        // 初始化:分离整数部分和小数部分  
-        if (str.indexOf(".") > 0) {  
-            integerStr = str.substring(0, str.indexOf("."));  
-            decimalStr = str.substring(str.indexOf(".") + 1);  
-        } else if (str.indexOf(".") == 0) {  
-            integerStr = "";  
-            decimalStr = str.substring(1);  
-        } else {  
-            integerStr = str;  
-            decimalStr = "";  
-        }  
-        // integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去)  
-        if (!integerStr.equals("")) {  
-            integerStr = Long.toString(Long.parseLong(integerStr));  
-            if (integerStr.equals("0")) {  
-                integerStr = "";  
-            }  
-        }  
-        // overflow超出处理能力,直接返回  
-        if (integerStr.length() > IUNIT.length) {  
-            System.out.println(str + ":超出处理能力");  
-            return str;  
-        }  
-  
-        int[] integers = toArray(integerStr);// 整数部分数字  
-        boolean isMust5 = isMust5(integerStr);// 设置万单位  
-        int[] decimals = toArray(decimalStr);// 小数部分数字  
-        return getChineseInteger(integers, isMust5)  
-                + getChineseDecimal(decimals);  
-    }  
-  
-    /** 
-     * 整数部分和小数部分转换为数组,从高位至低位 
-     */  
-    private static int[] toArray(String number) {  
-        int[] array = new int[number.length()];  
-        for (int i = 0; i < number.length(); i++) {  
-            array[i] = Integer.parseInt(number.substring(i, i + 1));  
-        }  
-        return array;  
-    }  
-  
-    /** 
-     * 得到中文金额的整数部分。 
-     */
-    private static String getChineseInteger(int[] integers, boolean isMust5) {  
-        StringBuffer chineseInteger = new StringBuffer("");  
-        int length = integers.length;  
-        for (int i = 0; i < length; i++) {  
-            // 0出现在关键位置:1234(万)5678(亿)9012(万)3456(元)  
-            // 特殊情况:10(拾元、壹拾元、壹拾万元、拾万元)  
-            String key = "";  
-            if (integers[i] == 0) {  
-                if ((length - i) == 13)// 万(亿)(必填)  
-                    key = IUNIT[4];  
-                else if ((length - i) == 9)// 亿(必填)  
-                    key = IUNIT[8];  
-                else if ((length - i) == 5 && isMust5)// 万(不必填)  
-                    key = IUNIT[4];  
-                else if ((length - i) == 1)// 元(必填)  
-                    key = IUNIT[0];  
-                // 0遇非0时补零,不包含最后一位  
-                if ((length - i) > 1 && integers[i + 1] != 0)  
-                    key += NUMBERS[0];  
-            }  
-            chineseInteger.append(integers[i] == 0 ? key  
-                    : (NUMBERS[integers[i]] + IUNIT[length - i - 1]));  
-        }  
-        return chineseInteger.toString();  
-    }  
-  
-    /** 
-     * 得到中文金额的小数部分。 
-     */  
-    private static String getChineseDecimal(int[] decimals) {  
-        StringBuffer chineseDecimal = new StringBuffer("");  
-        for (int i = 0; i < decimals.length; i++) {  
-            // 舍去3位小数之后的  
-            if (i == 3)  
-                break;  
-            chineseDecimal.append(decimals[i] == 0 ? ""  
-                    : (NUMBERS[decimals[i]] + DUNIT[i]));  
-        }  
-        return chineseDecimal.toString();  
-    }  
-  
-    /** 
-     * 判断第5位数字的单位"万"是否应加。 
-     */  
-    private static boolean isMust5(String integerStr) {  
-        int length = integerStr.length();  
-        if (length > 4) {  
-            String subInteger = "";  
-            if (length > 8) {  
-                // 取得从低位数,第5到第8位的字串  
-                subInteger = integerStr.substring(length - 8, length - 4);  
-            } else {  
-                subInteger = integerStr.substring(0, length - 4);  
-            }  
-            return Integer.parseInt(subInteger) > 0;  
-        } else {  
-            return false;  
-        }  
-    }  
-  
-    public static void main(String[] args) {  
-        System.out.println(MoneyUtil.toChinese("500100001.23"));  
-    }  
-  
-}  
+import com.ym.mec.util.exception.UtilException;
+
+public class MoneyUtil {
+	/** 大写数字 */
+	private static final String[] NUMBERS = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
+
+	/** 整数部分的单位 */
+	private static final String[] IUNIT = { "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟" };
+
+	/** 小数部分的单位 */
+	private static final String[] DUNIT = { "角", "分", "厘" };
+
+	/** 
+	 * 得到大写金额。 
+	 */
+	public static String toChinese(String str) {
+		str = str.replaceAll(",", "");// 去掉","
+		String integerStr;// 整数部分数字
+		String decimalStr;// 小数部分数字
+		// 初始化:分离整数部分和小数部分
+		if (str.indexOf(".") > 0) {
+			integerStr = str.substring(0, str.indexOf("."));
+			decimalStr = str.substring(str.indexOf(".") + 1);
+		} else if (str.indexOf(".") == 0) {
+			integerStr = "";
+			decimalStr = str.substring(1);
+		} else {
+			integerStr = str;
+			decimalStr = "";
+		}
+		// integerStr去掉首0,不必去掉decimalStr的尾0(超出部分舍去)
+		if (!integerStr.equals("")) {
+			integerStr = Long.toString(Long.parseLong(integerStr));
+			if (integerStr.equals("0")) {
+				integerStr = "";
+			}
+		}
+		// overflow超出处理能力,直接返回
+		if (integerStr.length() > IUNIT.length) {
+			throw new UtilException(str + ":超出处理能力");
+		}
+
+		int[] integers = toArray(integerStr);// 整数部分数字
+		boolean isMust5 = isMust5(integerStr);// 设置万单位
+		int[] decimals = toArray(decimalStr);// 小数部分数字
+		return getChineseInteger(integers, isMust5) + getChineseDecimal(decimals);
+	}
+
+	/** 
+	 * 整数部分和小数部分转换为数组,从高位至低位 
+	 */
+	private static int[] toArray(String number) {
+		int[] array = new int[number.length()];
+		for (int i = 0; i < number.length(); i++) {
+			array[i] = Integer.parseInt(number.substring(i, i + 1));
+		}
+		return array;
+	}
+
+	/** 
+	 * 得到中文金额的整数部分。 
+	 */
+	private static String getChineseInteger(int[] integers, boolean isMust5) {
+		StringBuffer chineseInteger = new StringBuffer("");
+		int length = integers.length;
+		if(length == 0){
+			return "零元";
+		}
+		for (int i = 0; i < length; i++) {
+			// 0出现在关键位置:1234(万)5678(亿)9012(万)3456(元)
+			// 特殊情况:10(拾元、壹拾元、壹拾万元、拾万元)
+			String key = "";
+			if (integers[i] == 0) {
+				if ((length - i) == 13)// 万(亿)(必填)
+					key = IUNIT[4];
+				else if ((length - i) == 9)// 亿(必填)
+					key = IUNIT[8];
+				else if ((length - i) == 5 && isMust5)// 万(不必填)
+					key = IUNIT[4];
+				else if ((length - i) == 1)// 元(必填)
+					key = IUNIT[0];
+				// 0遇非0时补零,不包含最后一位
+				if ((length - i) > 1 && integers[i + 1] != 0)
+					key += NUMBERS[0];
+			}
+			chineseInteger.append(integers[i] == 0 ? key : (NUMBERS[integers[i]] + IUNIT[length - i - 1]));
+		}
+		return chineseInteger.toString();
+	}
+
+	/** 
+	 * 得到中文金额的小数部分。 
+	 */
+	private static String getChineseDecimal(int[] decimals) {
+		StringBuffer chineseDecimal = new StringBuffer("");
+		for (int i = 0; i < decimals.length; i++) {
+			// 舍去3位小数之后的
+			if (i == 3)
+				break;
+			chineseDecimal.append(decimals[i] == 0 ? "" : (NUMBERS[decimals[i]] + DUNIT[i]));
+		}
+		return chineseDecimal.toString();
+	}
+
+	/** 
+	 * 判断第5位数字的单位"万"是否应加。 
+	 */
+	private static boolean isMust5(String integerStr) {
+		int length = integerStr.length();
+		if (length > 4) {
+			String subInteger = "";
+			if (length > 8) {
+				// 取得从低位数,第5到第8位的字串
+				subInteger = integerStr.substring(length - 8, length - 4);
+			} else {
+				subInteger = integerStr.substring(0, length - 4);
+			}
+			return Integer.parseInt(subInteger) > 0;
+		} else {
+			return false;
+		}
+	}
+
+	public static void main(String[] args) {
+		double d = 0d;
+		System.out.println(MoneyUtil.toChinese(d + ""));
+	}
+
+}

+ 2 - 3
mec-web/src/main/java/com/ym/mec/web/WebApplication.java

@@ -1,6 +1,5 @@
 package com.ym.mec.web;
 
-import com.spring4all.swagger.EnableSwagger2Doc;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -10,11 +9,11 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.web.client.RestTemplate;
 
+import com.spring4all.swagger.EnableSwagger2Doc;
+
 @SpringBootApplication
 @EnableDiscoveryClient
 @EnableFeignClients("com.ym.mec")