瀏覽代碼

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

周箭河 5 年之前
父節點
當前提交
bc551a1f9d
共有 33 個文件被更改,包括 244 次插入185 次删除
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java
  2. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupDao.java
  3. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  4. 5 2
      mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  6. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  7. 43 12
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java
  8. 4 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  9. 36 19
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  10. 3 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  11. 11 20
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  12. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  13. 2 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  14. 1 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentWithdrawServiceImpl.java
  15. 1 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  16. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  17. 13 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  18. 1 3
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  19. 5 2
      mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml
  20. 0 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml
  21. 6 3
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  22. 14 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  23. 2 8
      mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml
  24. 4 10
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  25. 1 4
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  26. 35 32
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  27. 9 8
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  28. 1 1
      mec-im/src/main/java/com/ym/config/ResourceServerConfig.java
  29. 3 2
      mec-student/src/main/java/com/ym/mec/student/controller/ContractsController.java
  30. 5 3
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java
  31. 10 0
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  32. 3 6
      mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java
  33. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -44,6 +44,15 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	int countVipGroupSalarys(Map<String, Object> params);
 
 	/**
+	 * @describe 统计课程对应学生实际缴费金额
+	 * @author Joburgess
+	 * @date 2019/12/2
+	 * @param courseScheduleIds:
+	 * @return java.util.List<java.util.Map<java.lang.Integer,java.math.BigDecimal>>
+	 */
+	List<Map<Integer,BigDecimal>> countActualAmount(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
+	/**
 	 * @return java.util.List<com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary>
 	 * @Author: Joburgess
 	 * @Date: 2019/10/15

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

@@ -121,12 +121,12 @@ public interface DemoGroupDao extends BaseDAO<Long, DemoGroup> {
      * @param organIds
      * @return
      */
-    Map<String, Integer> queryDemoGroupNum(@Param("organIds") String[] organIds);
+    Map<String, Integer> queryDemoGroupNum(@Param("organIds") String organIds);
     
     /**
      * 
      * @param organIds
      * @return
      */
-    Integer queryCurrentMonthCoursesNum(@Param("organIds") String[] organIds);
+    Integer queryCurrentMonthCoursesNum(@Param("organIds") String organIds);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -146,7 +146,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param roleIds
      * @return
      */
-    Set<Integer> queryUserIdByRoleId(@Param("roleIds") Set<Integer> roleIds,@Param("organIds") String[] organIds);
+    Set<Integer> queryUserIdByRoleId(@Param("roleIds") Set<Integer> roleIds,@Param("organIds") String organIds);
 
     /**
      * 获取教务老师时当前用户的乐团

+ 5 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.SysUserTsign;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
 
 public interface ContractService {
 
@@ -65,16 +66,18 @@ public interface ContractService {
 	 * @param userId
 	 * @param musicGroupId
 	 * @param goodsIds
+	 * @param kitGroupPurchaseTypeEnum
 	 * @return
 	 */
-	boolean transferGoodsContract(Integer userId, String musicGroupId, String goodsIds);
+	boolean transferGoodsContract(Integer userId, String musicGroupId, String goodsIds, KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum);
 
 	/**
 	 * 查询商品协议
 	 * @param userId
 	 * @param musicGroupId
 	 * @param goodsIds
+	 * @param kitGroupPurchaseTypeEnum
 	 * @return
 	 */
-	String queryGoodsContract(Integer userId, String musicGroupId, String goodsIds);
+	String queryGoodsContract(Integer userId, String musicGroupId, String goodsIds, KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -24,7 +24,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @param vipGroup: VIP课申请信息
      * @return void
      */
-    void createVipGroup(VipGroupApplyDto vipGroup,Integer systemId);
+    void createVipGroup(VipGroupApplyDto vipGroup);
 
     /**
      * @describe 更新vip课程信息

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1593,12 +1593,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             params.put("offset", pageInfo.getOffset());
             dataList = classGroupDao.queryMusicGroupCourseSchedule(params);
             //获取当前合奏班班级编号列表
-            Set<Integer> mixClassGroupIds = dataList.stream().map(e -> e.getMixClassGroupId()).collect(Collectors.toSet());
-            String mixClassGroupIdsStr = StringUtils.join(mixClassGroupIds, ",");
+//            Set<Integer> mixClassGroupIds = dataList.stream().map(e -> e.getMixClassGroupId()).collect(Collectors.toSet());
+//            String mixClassGroupIdsStr = StringUtils.join(mixClassGroupIds, ",");
             //所有课程编号的列表
             List<Integer> couseScheduleIds = dataList.stream().map(MusicGroupCourseScheduleDto::getCourseScheduleId).distinct().collect(Collectors.toList());
             //获取合奏班名称
-            Map<Integer, String> classGroupNames = MapUtil.convertMybatisMap(classGroupDao.findNameById(mixClassGroupIdsStr));
+//            Map<Integer, String> classGroupNames = MapUtil.convertMybatisMap(classGroupDao.findNameById(mixClassGroupIdsStr));
 
             //主教老师
             List<CourseScheduleTeacherSalary> bishopTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "BISHOP");
@@ -1609,7 +1609,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             Map<Long, List<CourseScheduleTeacherSalary>> courseScheduleTeachingTeacherMaps = teachingTeachers.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
 
             dataList.forEach(e -> {
-                e.setMixClassGroupName(classGroupNames.get(e.getMixClassGroupId()));
+//                e.setMixClassGroupName(classGroupNames.get(e.getMixClassGroupId()));
                 List<CourseScheduleTeacherSalary> currentBishopTeacher = courseScheduleBishopTeacherMaps.get(e.getCourseScheduleId().longValue());
                 List<CourseScheduleTeacherSalary> TeachingTeachers = new ArrayList<>();
                 if (!Objects.isNull(currentBishopTeacher) && !CollectionUtils.isEmpty(currentBishopTeacher)) {

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

@@ -21,18 +21,24 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
 import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SysUserContracts;
 import com.ym.mec.biz.dal.entity.SysUserContracts.ContractType;
 import com.ym.mec.biz.dal.entity.SysUserTsign;
 import com.ym.mec.biz.dal.entity.VipGroup;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.service.ContractService;
 import com.ym.mec.biz.service.GoodsService;
 import com.ym.mec.biz.service.MusicGroupService;
@@ -82,6 +88,9 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	private MusicGroupSubjectGoodsGroupService musicGroupSubjectGoodsGroupService;
 
 	@Autowired
+	private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
+
+	@Autowired
 	private VipGroupService vipGroupService;
 
 	@Autowired
@@ -556,7 +565,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	}
 
 	@Override
-	public boolean transferGoodsContract(Integer userId, String musicGroupId, String goodsIds) {
+	public boolean transferGoodsContract(Integer userId, String musicGroupId, String goodsIds, KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum) {
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
 
 		if (sysUserTsign == null) {
@@ -595,12 +604,23 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		List<Goods> goodsList = goodsService.findGoodsByIds(goodsIds);
 		params.put("goodsList", goodsList);
 
-		MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
-		if (musicGroupSubjectPlan == null) {
-			throw new BizException("声部课程费用设置找不到");
+		double depositFee = 0d;
+		if (kitGroupPurchaseTypeEnum == KitGroupPurchaseTypeEnum.LEASE) {
+			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.SUCCESS);
+
+			if (studentPaymentOrder == null) {
+				throw new BizException("缴费订单不存在");
+			}
+
+			List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
+			for (StudentPaymentOrderDetail detail : orderDetailList) {
+				if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
+					depositFee = detail.getPrice().doubleValue();
+				}
+			}
 		}
-		params.put("depositFee", musicGroupSubjectPlan.getDepositFee().doubleValue());
-		params.put("depositFeeFmt", MoneyUtil.toChinese(musicGroupSubjectPlan.getDepositFee().toString()));
+		params.put("depositFee", depositFee);
+		params.put("depositFeeFmt", MoneyUtil.toChinese(depositFee + ""));
 
 		params.put("isShowVisualSeal", false);
 
@@ -642,7 +662,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	}
 
 	@Override
-	public String queryGoodsContract(Integer userId, String musicGroupId, String goodsIds) {
+	public String queryGoodsContract(Integer userId, String musicGroupId, String goodsIds, KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum) {
 
 		// 合成freemarker
 		String srcPdfPath = contractBaseDir + "/goods/" + userId + ".pdf";
@@ -672,12 +692,23 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		List<Goods> goodsList = goodsService.findGoodsByIds(goodsIds);
 		params.put("goodsList", goodsList);
 
-		MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
-		if (musicGroupSubjectPlan == null) {
-			throw new BizException("声部课程费用设置找不到");
+		double depositFee = 0d;
+		if (kitGroupPurchaseTypeEnum == KitGroupPurchaseTypeEnum.LEASE) {
+			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.SUCCESS);
+
+			if (studentPaymentOrder == null) {
+				throw new BizException("缴费订单不存在");
+			}
+
+			List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
+			for (StudentPaymentOrderDetail detail : orderDetailList) {
+				if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
+					depositFee = detail.getPrice().doubleValue();
+				}
+			}
 		}
-		params.put("depositFee", musicGroupSubjectPlan.getDepositFee().doubleValue());
-		params.put("depositFeeFmt", MoneyUtil.toChinese(musicGroupSubjectPlan.getDepositFee().toString()));
+		params.put("depositFee", depositFee);
+		params.put("depositFeeFmt", MoneyUtil.toChinese(depositFee + ""));
 
 		params.put("isShowVisualSeal", true);
 

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -352,6 +352,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
 	public void checkNewCourseSchedules(List<CourseSchedule> courseSchedules,boolean checkExistCourseSchedule){
+		if(CollectionUtils.isEmpty(courseSchedules)){
+			return;
+		}
 		//第一节课
 		CourseSchedule firstCourseSchedule;
 		//最后一节课
@@ -1043,11 +1046,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
 		Map<String,Long> memo = new HashMap<>(1);
 		memo.put("courseScheduleComplaintsId",courseScheduleComplaints.getId());
-		String[] organIds = null;
-		if(StringUtils.isNotEmpty(user.getOrganId())){
-			organIds = user.getOrganId().split(",");
-		}
-		sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL, JSONObject.toJSONString(memo),courseSchedule.getName(),user.getUsername());
+		sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,user.getOrganId()),MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL, JSONObject.toJSONString(memo),courseSchedule.getName(),user.getUsername());
 	}
 
 	@Override

+ 36 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -166,7 +166,9 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     @Transactional(rollbackFor = Exception.class)
     public void teacherSalarySettlement() {
 
-        int days = Integer.parseInt(sysConfigDao.findByParamName(SysConfigService.VIP_SETTLEMENT_CYCLE).getParanValue());
+        int days = Integer.parseInt(sysConfigDao.findByParamName(SysConfigService.VIP_APPEAL_DAYS_RANGE).getParanValue());
+
+        BigDecimal percent = new BigDecimal(10);
 
         //获取教师未结算课程记录
         List<CourseScheduleTeacherSalary> someDayAgoTeacherCourseSalaryNoSettlement = courseScheduleTeacherSalaryDao.findSomeDayAgoTeacherCourseSalaryNoSettlement(days);
@@ -227,7 +229,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 }
                 //计算教师责任总占比
                 double teacherLiabilityRatioSum = courseStudentComplaints.stream().mapToDouble(courseScheduleComplaint -> Objects.isNull(courseScheduleComplaint.getTeacherLiabilityRatio()) ? 0 : courseScheduleComplaint.getTeacherLiabilityRatio()).sum();
-                teacherLiabilityAllratio = new BigDecimal(teacherLiabilityRatioSum);
+                teacherLiabilityAllratio = new BigDecimal(teacherLiabilityRatioSum).divide(percent,CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN);
             } else {
                 //如果没有投诉,则教师和学生的责任占比为0
                 teacherLiabilityAllratio = new BigDecimal(0);
@@ -256,7 +258,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             teacherCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.WAGE);
             teacherCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
             teacherCashAccountDetail.setAmount(actualSalary);
-            teacherCashAccountDetail.setBalance(teacherCashAccount.getBalance());
+            if(Objects.isNull(teacherCashAccount)){
+                teacherCashAccountDetail.setBalance(new BigDecimal(0));
+            }else{
+                teacherCashAccountDetail.setBalance(teacherCashAccount.getBalance());
+            }
             teacherCashAccountDetail.setAttribute(courseScheduleTeacherSalary.getCourseScheduleId().toString());
 
             userCashAccountDetails.add(teacherCashAccountDetail);
@@ -267,6 +273,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 complainsGroupByStudent = courseStudentComplaints.stream().collect(Collectors.groupingBy(CourseScheduleComplaints::getUserId));
             }
 
+            BigDecimal zero=new BigDecimal(0);
+
             //计算学生当前课程应缴费用
             for (CourseScheduleStudentPayment studentPayment : studentPaymentsWithCourse) {
                 //当前课程学生应缴费用
@@ -285,7 +293,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     if (Objects.isNull(temp)) {
                         temp = 0.0;
                     }
-                    studentLiabilityRatio = new BigDecimal(temp);
+                    studentLiabilityRatio = new BigDecimal(temp).divide(percent,CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN);
                 } else {
                     studentLiabilityRatio = new BigDecimal(0);
                 }
@@ -293,25 +301,28 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 //当前课程学生应退费用
                 BigDecimal returnPrice = studentExpectPrice.multiply(studentLiabilityRatio);
                 //当前课程学生实际缴费
-                BigDecimal actualPrice = expectSalary.subtract(returnPrice);
+                BigDecimal actualPrice = studentExpectPrice.subtract(returnPrice);
                 //更新学生结算信息
                 studentPayment.setActualPrice(actualPrice);
                 studentPayment.setSettlementTime(now);
                 courseScheduleStudentPaymentDao.update(studentPayment);
                 updateStudentPayments.add(studentPayment);
 
-                //生成学生账户资金变动记录
-                sysUserCashAccountService.updateBalance(studentPayment.getUserId(), returnPrice);
-                SysUserCashAccount studentCashAccount = sysUserCashAccountService.get(studentPayment.getUserId().intValue());
-                SysUserCashAccountDetail studentAccountDetail = new SysUserCashAccountDetail();
-                studentAccountDetail.setUserId(studentPayment.getUserId());
-                studentAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-                studentAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-                studentAccountDetail.setAmount(returnPrice);
-                studentAccountDetail.setBalance(studentCashAccount.getBalance());
-                studentAccountDetail.setAttribute(courseScheduleTeacherSalary.getCourseScheduleId().toString());
-
-                userCashAccountDetails.add(studentAccountDetail);
+
+                if(returnPrice.compareTo(zero)!=0){
+                    //生成学生账户资金变动记录
+                    sysUserCashAccountService.updateBalance(studentPayment.getUserId(), returnPrice);
+                    SysUserCashAccount studentCashAccount = sysUserCashAccountService.get(studentPayment.getUserId().intValue());
+                    SysUserCashAccountDetail studentAccountDetail = new SysUserCashAccountDetail();
+                    studentAccountDetail.setUserId(studentPayment.getUserId());
+                    studentAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
+                    studentAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+                    studentAccountDetail.setAmount(returnPrice);
+                    studentAccountDetail.setBalance(studentCashAccount.getBalance());
+                    studentAccountDetail.setAttribute(courseScheduleTeacherSalary.getCourseScheduleId().toString());
+
+                    userCashAccountDetails.add(studentAccountDetail);
+                }
             }
 
         });
@@ -444,7 +455,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     } else {
                         classTimeDuty = classTimeDuty.divide(new BigDecimal(30), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
                     }
-                    BigDecimal teacherDefaultSalary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher30MinSalary();
+                    BigDecimal teacherDefaultSalary = new BigDecimal(0);
+                    if(Objects.nonNull(teacherDefaultMusicGroupSalaryWithTeacherId)){
+                        teacherDefaultSalary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher30MinSalary();
+                    }
                     teacherSalary = teacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
                 } else if (settlementType.equals(SalarySettlementTypeEnum.GRADIENT_SALARY.getCode())) {
                     //课程时长与结算单位时长占比
@@ -456,7 +470,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     } else {
                         classTimeDuty = classTimeDuty.divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
                     }
-                    BigDecimal teacherDefaultSalary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher90MinSalary();
+                    BigDecimal teacherDefaultSalary = new BigDecimal(0);
+                    if(Objects.nonNull(teacherDefaultMusicGroupSalaryWithTeacherId)){
+                        teacherDefaultSalary = courseScheduleTeacherSalary.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalaryWithTeacherId.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryWithTeacherId.getAssistantTeacher90MinSalary();
+                    }
                     teacherSalary = teacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
                 }
             }else{

+ 3 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -64,6 +64,9 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		if(user != null && user.getId() != null){
 			Employee employee1 = employeeDao.get(user.getId());
 			if(employee1 == null){
+				if(StringUtils.isEmpty(user.getPassword())){
+					employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
+				}
 				employee.setOrganId(employee.getOrganIdList());
 				employee.setUserId(user.getId());
 				employeeDao.insert(employee);
@@ -134,11 +137,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		PageInfo<EmployeeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
-		String organId = queryInfo.getOrganId();
-		if(StringUtils.isNotEmpty(organId)){
-			String[] organIds = organId.split(",");
-			params.put("organIds",organIds);
-		}
 		List<EmployeeDto> dataList = null;
 		int count = employeeDao.queryEmployByOrganIdCount(params);
 		if (count > 0) {

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

@@ -165,8 +165,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.SECTION_MANAGER);
 
-    		String[] organIds = { musicGroup.getOrganId() + "" };
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
         }
         // 保存乐团付费主体列表
         //批量新增
@@ -606,8 +605,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
         roleIds.add(SysUserRole.DEAN_OF_STUDIES);
 
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_ACTION_GROUP,"1",musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_ACTION_GROUP,"1",musicGroup.getName());
     }
 
     private MusicGroup saveLog(String musicGroupId,MusicGroupStatusEnum statusEnum) throws Exception {
@@ -638,8 +636,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
 
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
     }
 
     @Override
@@ -674,8 +671,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
 
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_ACTION_APPLY,"",musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_ACTION_APPLY,"",musicGroup.getName());
     }
 
     @Override
@@ -774,8 +770,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.SECTION_MANAGER);
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP,"1",musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP,"1",musicGroup.getName());
         return true;
     }
 
@@ -870,8 +865,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
 
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT,"",musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT,"",musicGroup.getName());
         return true;
     }
 
@@ -901,8 +895,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         memo.put("Id",musicGroupQuit.getId());
         memo.put("type","MUSICGROUP");
 
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP,JSONObject.toJSONString(memo),sysUser.getUsername());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP,JSONObject.toJSONString(memo),sysUser.getUsername());
         return true;
     }
 
@@ -1288,8 +1281,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
 
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_TEACHER_AMOUNT_CHANGE,"",
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_TEACHER_AMOUNT_CHANGE,"",
                 teacher.getRealName(),musicGroup.getName(),scope.equals("all")?"所有":"本次");
         return true;
     }
@@ -1487,8 +1479,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.SECTION_MANAGER);
         roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
 		roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT,"",musicGroup.getName());
+
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT,"",musicGroup.getName());
         return musicGroup;
     }
 
@@ -1562,7 +1554,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
 
-		String[] organIds = { musicGroup.getOrganId() + "" };
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING,"",musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId() + ""),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING,"",musicGroup.getName());
     }
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -379,6 +379,10 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 					studentAttendance.setStatus(statusEnum);
 					studentAttendance.setUserId(userId);
 					studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
+
+					courseSchedule.setUpdateTime(date);
+					courseSchedule.setStudentNum((courseSchedule.getStudentNum() == null?0:courseSchedule.getStudentNum()) + 1);
+					courseScheduleDao.update(courseSchedule);
 					studentAttendanceDao.insert(studentAttendance);
 				}
 			}else {

+ 2 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -146,8 +146,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             roleIds.add(SysUserRole.SECTION_MANAGER);
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 
-            String[] organIds = {musicGroup.getOrganId() + ""};
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, organIds), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
         }
         return i;
     }
@@ -505,8 +504,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 
-            String[] organIds = {musicGroup.getOrganId() + ""};
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, organIds), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
             //增加报名学生数
             musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
             Integer classGroupId = studentRegistration.getClassGroupId();

+ 1 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentWithdrawServiceImpl.java

@@ -197,11 +197,7 @@ public class StudentWithdrawServiceImpl extends BaseServiceImpl<Integer, Student
 				cashAccountDetailService.insert(cashAccountDetail);
 				Set<Integer> roleIds = new HashSet<>(1);
 				roleIds.add(SysUserRole.SECTION_MANAGER);
-				String[] organIds = null;
-				if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-					organIds = sysUser.getOrganId().split(",");
-				}
-				sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds), MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_WITHDRAW,"",sysUser.getUsername());
+				sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,sysUser.getOrganId()), MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_WITHDRAW,"",sysUser.getUsername());
 			} else {
 				throw new Exception("账户余额不足");
 			}

+ 1 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java

@@ -95,11 +95,7 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 		teacherLeaveRecordDao.insert(teacherLeaveRecord);
 		Set<Integer> roleIds = new HashSet<>(1);
 		roleIds.add(SysUserRole.DEAN_OF_STUDIES);
-		String[] organIds = null;
-		if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-			organIds = sysUser.getOrganId().split(",");
-		}
-		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,organIds);
+		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,sysUser.getOrganId());
 		if (userIds != null && userIds.size() > 0) {
 			Map<String,Object> memo = new HashMap<>(1);
 			memo.put("leaveRecordId",teacherLeaveRecord.getId());

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -78,8 +78,11 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			if(teacher1 == null || teacher1.getId() == null){
 				teacher.setId(id);
 				teacher.setDelFlag(YesOrNoEnum.NO);
-				teacherDao.updateUser(user);
 				teacherDao.insert(teacher);
+				if(user.getUserType() == SysUserType.SYSTEM){
+					teacher.setOrganId(null);
+				}
+				teacherDao.updateUser(teacher);
 			}else {
 				throw new Exception("用户已存在");
 			}

+ 13 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -114,7 +114,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void createVipGroup(VipGroupApplyDto vipGroup,Integer systemId) {
+	public void createVipGroup(VipGroupApplyDto vipGroup) {
 
 		if (Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getUserId())){
 			throw new BizException("请选择指导老师");
@@ -317,14 +317,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 		Map<String,Long> memo = new HashMap<>(1);
 		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
-		SysUser systemUser = sysUserFeignService.queryUserById(systemId);
-		String[] organIds = null;
-		if(StringUtils.isNotEmpty(systemUser.getOrganId())){
-			organIds = systemUser.getOrganId().split(",");
-		}
-		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,organIds);
-		if (systemId != null){
-			sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),systemUser.getUsername(),sysUser.getUsername());
+
+		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,sysUser.getOrganId());
+		if (vipGroup.getVipGroupApplyBaseInfo().getUserId() != null){
+			sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),sysUser.getUsername(),sysUser.getUsername());
 		}else {
 			sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),sysUser.getUsername());
 		}
@@ -1123,11 +1119,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map<String,Object> memo = new HashMap<>(2);
 		memo.put("Id",vipGroupId);
 		memo.put("type","VIPGROUP");
-		String[] organIds = null;
-		if(StringUtils.isNotEmpty(sysUser.getOrganId())){
-			organIds = sysUser.getOrganId().split(",");
-		}
-		sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,organIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_COURSE,JSONObject.toJSONString(memo),sysUser.getUsername());
+		sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,sysUser.getOrganId()),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_COURSE,JSONObject.toJSONString(memo),sysUser.getUsername());
 	}
 
 	@Override
@@ -1297,6 +1289,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = courseScheduleTeacherSalaryDao.findVipGroupSalarys(params);
+			List<Long> courseScheduleIds = dataList.stream().map(VipGroupSalaryDto::getCourseScheduleId).collect(Collectors.toList());
+			List<Map<Integer, BigDecimal>> courseAmountMapList = courseScheduleTeacherSalaryDao.countActualAmount(courseScheduleIds);
+			Map<Integer, BigDecimal> courseAmountMap = MapUtil.convertIntegerMap(courseAmountMapList);
 			if(!CollectionUtils.isEmpty(dataList)){
 				dataList.forEach(vipGroupSalaryDto -> {
 					if(Objects.isNull(vipGroupSalaryDto.getExpectSalary())){
@@ -1310,6 +1305,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 						vipGroupSalaryDto.setDeductionFee(vipGroupSalaryDto.getExpectSalary().subtract(vipGroupSalaryDto.getActualSalary()));
 						vipGroupSalaryDto.setIsSalary(YesOrNoEnum.YES);
 					}
+					BigDecimal actualAmount = courseAmountMap.get(vipGroupSalaryDto.getCourseScheduleId());
+					if(Objects.nonNull(actualAmount)){
+						vipGroupSalaryDto.setDeductionFee(actualAmount);
+					}
 				});
 			}
 		}

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

@@ -570,13 +570,11 @@
     <select id="queryMusicGroupCourseSchedule" resultMap="MusicGroupCourseScheduleDto">
         SELECT cs.id_ course_schedule_id_,cs.class_date_,cs.start_class_time_,cs.end_class_time_,cs.class_group_id_,
         cs.type_ course_schedule_type_,cs.status_ course_schedule_status_,cg.name_ course_schedule_name_,
-        IF(cgr.class_group_id_ IS NULL,cs.class_group_id_,cgr.class_group_id_) mix_class_group_id_,
         IF(ISNULL(ta.sign_in_status_),3,ta.sign_in_status_) sign_in_status_,
         IF(ISNULL(ta.sign_out_status_),3,ta.sign_out_status_) sign_out_status_
         FROM course_schedule cs
         LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
         LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_ AND ta.teacher_id_ = cs.actual_teacher_id_
-        LEFT JOIN class_group_relation cgr ON cgr.sub_class_group_id_ = cs.class_group_id_
         LEFT JOIN class_group_teacher_mapper cgtm ON cgtm.class_group_id_ = cs.class_group_id_
         <include refid="queryMusicGroupCourseScheduleSql"/>
         ORDER BY cs.class_date_,cs.start_class_time_
@@ -867,7 +865,7 @@
         WHERE su.id_ IS NOT NULL
     </select>
 
-	<update id="batchUpdateStudentNumMinusOne">
+	<update id="batchUpdateStudentNumMinusOne" parameterType="java.util.List">
 		update class_group set student_num_ = (student_num_ - 1),update_time_ = now() where id_ IN
       <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
           #{classGroupId}

+ 5 - 2
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -58,7 +58,7 @@
 		DELETE FROM class_group_student_mapper WHERE id_ = #{id} 
 	</delete>
     <delete id="deleteByClassId">
-        UPDATE class_group_student_mapper SET status_='QUIT' WHERE class_group_id_ = #{classGroupId} AND status_='NORMAL' AND group_type_='MUSIC'
+        UPDATE class_group_student_mapper SET status_='QUIT' WHERE class_group_id_ = #{classGroupId} AND status_='NORMAL'
     </delete>
 
     <!-- 分页查询 -->
@@ -234,7 +234,10 @@
             </foreach>
     </select>
     <select id="countUserGroups" resultType="int">
-      SELECT COUNT(1) FROM class_group_student_mapper WHERE user_id_=#{userId} AND group_type_=#{groupType} AND status_!='QUIT'
+      SELECT COUNT(1)
+      FROM class_group_student_mapper cgsm
+      LEFT JOIN class_group cg ON cgsm.class_group_id_=cg.id_
+      WHERE cgsm.user_id_=#{userId} AND cgsm.group_type_=#{groupType} AND cgsm.status_!='QUIT' AND cg.del_flag_!=1
     </select>
     
     <select id="queryClassGroupIdList" resultType="int" parameterType="map">

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

@@ -134,7 +134,6 @@
         <foreach collection="classGroupTeacherMapperList" item="item" index="index" open="(" close=")" separator=",">
             #{item.classGroupId}
         </foreach>
-        AND group_type_ = 'MUSIC'
     </delete>
 
     <!-- 获取班级老师关联关系 -->

+ 6 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1052,6 +1052,7 @@
             COUNT(DISTINCT sa.class_group_id_)
         FROM
             student_attendance sa
+            LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         AND sa.class_group_id_=#{classGroupId} AND sa.teacher_id_=#{userId}
@@ -1467,13 +1468,15 @@
     </delete>
     
     <select id="queryUnsignedStudentList" resultMap="StudentAttendance">
-        SELECT a.*,cg.current_class_times_ FROM (SELECT cgsm.user_id_,cs.actual_teacher_id_ teacher_id_,
+        SELECT a.*,cg.current_class_times_,sa.id_ FROM (SELECT cgsm.user_id_,cs.actual_teacher_id_ teacher_id_,
         cs.id_ course_schedule_id_,cs.class_group_id_,cs.music_group_id_,cs.group_type_
         FROM class_group_student_mapper cgsm
         right JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
         WHERE cgsm.status_ = 'NORMAL' AND CONCAT(cs.class_date_,' ',cs.end_class_time_) &lt;= now()) a
-        LEFT JOIN student_attendance sa ON a.course_schedule_id_ = sa.course_schedule_id_
-        LEFT JOIN class_group cg ON a.class_group_id_ = cg.id_ WHERE sa.id_ IS NULL
+        LEFT JOIN class_group cg ON a.class_group_id_ = cg.id_
+        LEFT JOIN student_attendance sa ON sa.user_id_ = a.user_id_ AND a.teacher_id_ = sa.teacher_id_
+        AND sa.class_group_id_ = a.class_group_id_ AND sa.course_schedule_id_ = a.course_schedule_id_
+        WHERE sa.id_ IS NULL
     </select>
     <select id="getNextCourseSchedule" resultMap="CourseSchedule">
         SELECT

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

@@ -212,7 +212,7 @@
 		course_schedule_teacher_salary csts
 		LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
 		WHERE
-		CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &lt;= DATE_ADD( NOW( ), INTERVAL - #{days} DAY )
+		cs.class_date_ &lt;= DATE_FORMAT(DATE_ADD( NOW( ), INTERVAL - 1 DAY ),'%Y-%m-%d')
 		AND cs.type_='VIP'
 		AND csts.settlement_time_ IS NULL
     </select>
@@ -333,4 +333,17 @@
 	<select id="findCourseScheduleTeacherSalaryByMusicGroupId" resultMap="CourseScheduleTeacherSalary">
 		SELECT * FROM course_schedule_teacher_salary WHERE music_group_id_=#{musicGroupId} AND group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	</select>
+	<select id="countActualAmount" resultType="java.util.Map">
+		SELECT
+			course_schedule_id_ AS 'key',
+			SUM( actual_price_ ) AS 'value'
+		FROM
+			course_schedule_student_payment
+		WHERE course_schedule_id_ IN
+			<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+				#{courseScheduleId}
+			</foreach>
+		GROUP BY
+			course_schedule_id_
+	</select>
 </mapper>

+ 2 - 8
mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml

@@ -309,10 +309,7 @@
 		from demo_group_courses_plan dgcp left join demo_group dg on dgcp.demo_group_id_ = dg.id_
 		<where>
             <if test="organIds != null">
-                AND
-                <foreach collection="organIds" item="item" open="(" close=")" separator=" OR ">
-                    FIND_IN_SET(#{item},dg.organ_id_list_)
-                </foreach>
+                AND INTE_ARRAY(dg.organ_id_list_,#{organIds})
             </if>
     	</where> 
 	</select>
@@ -323,10 +320,7 @@
         where cs.type_ = 'DEMO'
   		and DATE_FORMAT(cs.class_date_, '%Y%m' ) = DATE_FORMAT(CURDATE() , '%Y%m')
         <if test="organIds != null">
-            AND
-            <foreach collection="organIds" item="item" open="(" close=")" separator=" OR ">
-                FIND_IN_SET(#{item},vg.organ_id_list_)
-            </foreach>
+            AND INTE_ARRAY(vg.organ_id_list_,#{organIds})
         </if>
     </select>
 </mapper>

+ 4 - 10
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -184,11 +184,8 @@
         FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
         <where>
             su.user_type_ = 'SYSTEM'
-            <if test="organIds != null">
-                AND
-                <foreach collection="organIds" item="item" open="(" close=")" separator=" OR ">
-                    FIND_IN_SET(#{item},e.organ_id_list_)
-                </foreach>
+            <if test="organId != null">
+                AND INTE_ARRAY(e.organ_id_list_,#{organId})
             </if>
             <if test="search != null">
                 AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
@@ -205,11 +202,8 @@
         FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
         <where>
             su.user_type_ = 'SYSTEM'
-            <if test="organIds != null">
-                AND
-                <foreach collection="organIds" item="item" open="(" close=")" separator=" OR ">
-                    FIND_IN_SET(#{item},e.organ_id_list_)
-                </foreach>
+            <if test="organId != null">
+                AND INTE_ARRAY(e.organ_id_list_,#{organId})
             </if>
             <if test="search != null">
                 AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))

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

@@ -368,10 +368,7 @@
 			#{item}
 		</foreach>
 		<if test="organIds != null">
-			AND
-			<foreach collection="organIds" item="item" open="(" close=")" separator=" OR ">
-				FIND_IN_SET(#{item},e.organ_id_list_)
-			</foreach>
+			AND INTE_ARRAY(e.organ_id_list_,#{organIds})
 		</if>
 	</select>
 	<select id="queryTeacherIdMap" resultType="java.util.Map">

+ 35 - 32
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -154,6 +154,9 @@
             <if test="wxOpenid != null">
                 wx_openid_ = #{wxOpenid},
             </if>
+            <if test="password != null">
+                password_ = #{password},
+            </if>
             <if test="avatar != null">
                 avatar_ = #{avatar},
             </if>
@@ -209,6 +212,7 @@
         t.job_nature_,t.is_probation_period_,GROUP_CONCAT(s.name_) subject_name_,su.del_flag_
         FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
+        WHERE su.del_flag_ = 0
         <include refid="queryPageMap"/>
         GROUP BY t.id_
         ORDER BY t.update_time_ DESC
@@ -218,30 +222,29 @@
     <select id="queryCount" resultType="int">
         SELECT COUNT(DISTINCT t.id_)
         FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
+        WHERE su.del_flag_ = 0
         <include refid="queryPageMap"/>
     </select>
 
     <sql id="queryPageMap">
-        <where>
-            <if test="lockFlag != null">
-                AND su.lock_flag_ = #{lockFlag}
-            </if>
-            <if test="subjectId != null">
-                AND FIND_IN_SET(#{subjectId},t.subject_id_)
-            </if>
-            <if test="organId != null">
-                AND FIND_IN_SET(su.organ_id_,#{organId})
-            </if>
-            <if test="search != null">
-                AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
-            </if>
-            <if test="jobNature != null">
-                AND t.job_nature_ = #{jobNature}
-            </if>
-            <if test="isProbationPeriod != null">
-                AND t.is_probation_period_ = #{isProbationPeriod}
-            </if>
-        </where>
+        <if test="lockFlag != null">
+            AND su.lock_flag_ = #{lockFlag}
+        </if>
+        <if test="subjectId != null">
+            AND FIND_IN_SET(#{subjectId},t.subject_id_)
+        </if>
+        <if test="organId != null">
+            AND FIND_IN_SET(t.organ_id_,#{organId})
+        </if>
+        <if test="search != null">
+            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+        </if>
+        <if test="jobNature != null">
+            AND t.job_nature_ = #{jobNature}
+        </if>
+        <if test="isProbationPeriod != null">
+            AND t.is_probation_period_ = #{isProbationPeriod}
+        </if>
     </sql>
 
     <!-- 根据证件号查询老师 -->
@@ -346,6 +349,7 @@
         LEFT JOIN class_group_teacher_mapper cgtm ON t.id_ = cgtm.user_id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
         LEFT JOIN sys_user su ON t.id_ = su.id_
+        WHERE cg.del_flag_ != '1'
         <include refid="queryMusicGroupTeachersSql"/>
         GROUP BY t.id_
         <include refid="global.limit"/>
@@ -356,21 +360,20 @@
         LEFT JOIN class_group_teacher_mapper cgtm ON t.id_ = cgtm.user_id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
         LEFT JOIN sys_user su ON t.id_ = su.id_
+        WHERE cg.del_flag_ != '1'
         <include refid="queryMusicGroupTeachersSql"/>
     </select>
     <sql id="queryMusicGroupTeachersSql">
-        <where>
-            <if test="search != null and search != ''">
-                AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%') OR
-                su.id_=#{search})
-            </if>
-            <if test="musicGroupId != null and musicGroupId != ''">
-                AND cgtm.music_group_id_ = #{musicGroupId}
-            </if>
-            <if test="classGroupId != null">
-                AND cg.id_ = #{classGroupId}
-            </if>
-        </where>
+        <if test="search != null and search != ''">
+            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%') OR
+            su.id_=#{search})
+        </if>
+        <if test="musicGroupId != null and musicGroupId != ''">
+            AND cgtm.music_group_id_ = #{musicGroupId}
+        </if>
+        <if test="classGroupId != null">
+            AND cg.id_ = #{classGroupId}
+        </if>
     </sql>
 
     <select id="findSignNum" resultType="java.util.Map">

+ 9 - 8
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -750,18 +750,19 @@
     <select id="countStudentPaymentNum" resultType="int">
         SELECT
             COUNT(*)
-        FROM
-            course_schedule cs
-            LEFT JOIN course_schedule_student_payment cssp ON cs.id_=cssp.user_id_
-            WHERE cssp.settlement_time_ IS NOT NULL AND cs.class_group_id_=#{classGroupId}
+        FROM course_schedule_student_payment cssp
+        WHERE
+            cssp.settlement_time_ IS NOT NULL
+            AND cssp.class_group_id_ = #{classGroupId}
     </select>
     <select id="countStudentPaymentFee" resultType="java.math.BigDecimal">
         SELECT
-            SUM(actual_price_)
+            SUM( actual_price_ )
         FROM
-            course_schedule cs
-            LEFT JOIN course_schedule_student_payment cssp ON cs.id_=cssp.user_id_
-            WHERE cssp.settlement_time_ IS NOT NULL AND cs.class_group_id_=#{classGroupId}
+            course_schedule_student_payment cssp
+        WHERE
+            cssp.settlement_time_ IS NOT NULL
+            AND cssp.class_group_id_ = #{classGroupId}
     </select>
     
     <select id="queryByIds" resultMap="VipGroup" parameterType="string">

+ 1 - 1
mec-im/src/main/java/com/ym/config/ResourceServerConfig.java

@@ -10,6 +10,6 @@ import org.springframework.security.oauth2.config.annotation.web.configuration.R
 public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
     @Override
     public void configure(HttpSecurity http) throws Exception {
-        http.authorizeRequests().antMatchers("/v2/api-docs","/user/register","/group/join","/group/create").permitAll().anyRequest().authenticated().and().csrf().disable();
+        http.authorizeRequests().antMatchers("/v2/api-docs","/user/register","/group/join","/group/create","/room/leave").permitAll().anyRequest().authenticated().and().csrf().disable();
     }
 }

+ 3 - 2
mec-student/src/main/java/com/ym/mec/student/controller/ContractsController.java

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
 import com.ym.mec.biz.service.ContractService;
 import com.ym.mec.common.controller.BaseController;
 
@@ -36,12 +37,12 @@ public class ContractsController extends BaseController {
 
 	@ApiOperation("查询商品协议")
 	@GetMapping(value = "queryGoodsContract")
-	public Object queryGoodsContract(String musicGroupId, String goodsIds) {
+	public Object queryGoodsContract(String musicGroupId, String goodsIds, KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 			return failed("获取用户信息失败");
 		}
-		return succeed(contractService.queryGoodsContract(sysUser.getId(), musicGroupId, goodsIds));
+		return succeed(contractService.queryGoodsContract(sysUser.getId(), musicGroupId, goodsIds, kitGroupPurchaseTypeEnum));
 	}
 
 	@ApiOperation("查询乐团课程协议")

+ 5 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java

@@ -4,14 +4,16 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
-import com.ym.mec.biz.service.SchoolService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Objects;
 
@@ -41,7 +43,7 @@ public class TeacherVipGroupController extends BaseController {
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(user.getId()));
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(user.getOrganId().toString());
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(Integer.parseInt(user.getOrganId()));
-		vipGroupService.createVipGroup(vipGroupApplyDto,null);
+		vipGroupService.createVipGroup(vipGroupApplyDto);
 		return succeed();
 	}
 

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -1,5 +1,7 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ClassGroup4MixDto;
 import com.ym.mec.biz.dal.dto.HighClassGroupDto;
 import com.ym.mec.biz.dal.dto.TestDto;
@@ -32,6 +34,8 @@ public class ClassGroupController extends BaseController {
     private ClassGroupService classGroupService;
     @Autowired
     private ClassGroupTeacherMapperService classGroupTeacherMapperService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "新增单技班班级")
     @PostMapping("/add")
@@ -250,4 +254,10 @@ public class ClassGroupController extends BaseController {
     public HttpResponseResult enumTest(@RequestBody TestDto testDto){
         return succeed(testDto.getDelFlag().getMsg());
     }
+
+    @GetMapping("queryUserInfo")
+    public HttpResponseResult queryUserInfo(Integer userId){
+        SysUser sysUser = sysUserFeignService.queryUserById(userId);
+        return succeed(sysUser.getUsername());
+    }
 }

+ 3 - 6
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -72,17 +72,14 @@ public class IndexController extends BaseController {
 		Map<String, Integer> studentDatas = studentRegistrationDao.queryStudentNum(organId);
 		
 		Map<String, Integer> vipDatas = vipGroupDao.queryVipGroupNum(organId);
-		String[] organIds = null;
-		if(StringUtils.isNotEmpty(organId)){
-			organIds = organId.split(",");
-		}
-		Map<String, Integer> demoDatas = demoGroupDao.queryDemoGroupNum(organIds);
+
+		Map<String, Integer> demoDatas = demoGroupDao.queryDemoGroupNum(organId);
 		
 		Integer musicGroupNum = musicGroupDao.queryCurrentMonthCoursesNum(organId);
 		
 		Integer vipGroupNum = vipGroupDao.queryCurrentMonthCoursesNum(organId);
 		
-		Integer demoGroupNum = demoGroupDao.queryCurrentMonthCoursesNum(organIds);
+		Integer demoGroupNum = demoGroupDao.queryCurrentMonthCoursesNum(organId);
 		
 		Map<String, Object> incomeExpendMap = sysUserCashAccountDetailDao.queryStatistics(organId);
 		

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -68,7 +68,7 @@ public class VipGroupManageController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
-        vipGroupService.createVipGroup(vipGroupApplyDto,sysUser.getId());
+        vipGroupService.createVipGroup(vipGroupApplyDto);
         return succeed();
     }