Browse Source

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

yonge 5 years ago
parent
commit
6df3f0a7ca

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

@@ -973,13 +973,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
@@ -1182,13 +1182,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
@@ -1389,13 +1389,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                     BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);
 
                     //基准课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(30));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
                     }
                     //阶梯课酬
-                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                    if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY) && teacherDefaultMusicGroupSalary!=null) {
                         //课程时长与结算单位时长占比
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90));
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();

+ 26 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.dto.EducationDemoGroupListDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.StudentDemoGroupQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherManageDemoGroupQueryInfo;
@@ -19,7 +20,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,6 +54,10 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 	private SubjectDao subjectDao;
 	@Autowired
 	private SysConfigDao sysConfigDao;
+	@Autowired
+	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
+	@Autowired
+	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 
 	@Override
 	public BaseDAO<Long, DemoGroup> getDAO() {
@@ -180,6 +185,8 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 			throw new BizException("此课程教师在该时段内的课程存在冲突");
 		}
 
+		Date now=new Date();
+
 		SysUser user = sysUserFeignService.queryUserInfo();
 
 		//创建班级
@@ -204,22 +211,32 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 
 		//创建课程
 		DemoGroupCoursesPlan demoGroupCoursesPlan=demoGroupCoursesPlanDao.get(coursePlanId);
-//		List<CourseSchedule> courseScheduleByDemoGroup = demoGroupDao.createCourseSchedulesByDemoGroup(
-//				demoGroup,
-//				demoGroupCoursesPlan.getCoursesStartTime(),
-//				classGroup.getId().longValue());
 		CourseSchedule courseScheduleByDemoGroup = demoGroupDao.createCourseScheduleByDemoGroupPlan(
 				demoGroup,
 				coursePlanId,
 				classGroup.getId().longValue());
-//		String[] classSubjects = courseScheduleDao.findClassSubjects(Arrays.asList(new Integer[]{classGroup.getId()}));
 		StringBuilder className=new StringBuilder(subjectDao.get(demoGroup.getSubjectId().intValue()).getName());
 		className.append("-");
 		className.append(CourseSchedule.CourseScheduleType.DEMO.getMsg());
 		courseScheduleByDemoGroup.setName(className.toString());
-		ArrayList<CourseSchedule> courseSchedules = new ArrayList<>();
-		courseSchedules.add(courseScheduleByDemoGroup);
-		courseScheduleDao.batchAddCourseSchedules(courseSchedules);
+		courseScheduleDao.insert(courseScheduleByDemoGroup);
+
+		CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+		courseScheduleStudentPayment.setUserId(user.getId());
+		courseScheduleStudentPayment.setCourseScheduleId(courseScheduleByDemoGroup.getId());
+		courseScheduleStudentPayment.setClassGroupId(courseScheduleByDemoGroup.getClassGroupId());
+		courseScheduleStudentPayment.setExpectPrice(demoGroup.getPrice());
+		courseScheduleStudentPaymentDao.insert(courseScheduleStudentPayment);
+
+		CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+		courseScheduleTeacherSalary.setCourseScheduleId(courseScheduleByDemoGroup.getId());
+		courseScheduleTeacherSalary.setTeacherRole(TeachTypeEnum.BISHOP);
+		courseScheduleTeacherSalary.setUserId(demoGroup.getUserId());
+		courseScheduleTeacherSalary.setExpectSalary(demoGroup.getPrice());
+		courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+		courseScheduleTeacherSalary.setCreateTime(now);
+		courseScheduleTeacherSalary.setUpdateTime(now);
+		courseScheduleTeacherSalaryDao.insert(courseScheduleTeacherSalary);
 
 		//更新所属分部列表
 		List<Integer> organIds = demoGroupDao.organIdListByDemoGroupId(demoGroup.getId());

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

@@ -69,6 +69,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     @Autowired
 	private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
     @Autowired
+	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
+    @Autowired
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
     @Autowired
 	private ImFeignService imFeignService;
@@ -876,7 +878,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public void applyRefund(Long vipGroupId,Integer studentId) {
 
 		StudentApplyRefunds studentApplyRefunds=new StudentApplyRefunds();
-		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId,DealStatusEnum.SUCCESS.getMsg());
+		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupId,studentId,DealStatusEnum.SUCCESS.getCode());
 		if(null==studentPaymentOrder){
 			throw new BizException("未找到相关订单信息!");
 		}
@@ -979,11 +981,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				}
 				if(Objects.isNull(vipGroupSalaryDto.getActualSalary())){
 					vipGroupSalaryDto.setActualSalary(new BigDecimal(0));
+					vipGroupSalaryDto.setDeductionFee(new BigDecimal(0));
 					vipGroupSalaryDto.setIsSalary(YesOrNoEnum.NO);
 				}else{
+					vipGroupSalaryDto.setDeductionFee(vipGroupSalaryDto.getExpectSalary().subtract(vipGroupSalaryDto.getActualSalary()));
 					vipGroupSalaryDto.setIsSalary(YesOrNoEnum.YES);
 				}
-				vipGroupSalaryDto.setDeductionFee(vipGroupSalaryDto.getExpectSalary().subtract(vipGroupSalaryDto.getActualSalary()));
 			});
 		}
 		if (count == 0) {
@@ -1003,10 +1006,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroupSalaryBaseInfo.getTotalSalary())){
 			vipGroupSalaryBaseInfo.setTotalSalary(new BigDecimal(0));
 		}
-		//扣费总额
-		vipGroupSalaryBaseInfo.setTotalFeeDeduction(vipGroupSalaryBaseInfo.getExpectTotalSalary().subtract(vipGroupSalaryBaseInfo.getTotalSalary()));
 		//扣费笔数
 		vipGroupSalaryBaseInfo.setFeeDeductionNum(vipGroupDao.countVipGroupDeductionNum(queryInfo.getVipGroupId()));
+		//扣费总额
+		if(vipGroupSalaryBaseInfo.getTotalSalary().intValue()>0){
+			vipGroupSalaryBaseInfo.setTotalFeeDeduction(vipGroupSalaryBaseInfo.getExpectTotalSalary().subtract(vipGroupSalaryBaseInfo.getTotalSalary()));
+		}else{
+			vipGroupSalaryBaseInfo.setTotalFeeDeduction(new BigDecimal(0));
+		}
 
 		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId());
 		BigDecimal studentNum=new BigDecimal(classGroup.getStudentNum());
@@ -1073,9 +1080,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			sysUserCashAccountDetail.setAttribute(studentPaymentOrder.getOrderNo());
 			sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
 		}
+
 		vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
     	vipGroup.setStopReason(stopReason);
 		vipGroupDao.update(vipGroup);
+
+		List<CourseSchedule> vipGroupCourseSchedules = courseScheduleDao.findVipGroupCourseSchedules(vipGroupId);
+		List<Long> courseScheduleIds = vipGroupCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+		courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+		courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+		courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
 	}
 
 	@Override

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

@@ -172,6 +172,7 @@
     <sql id="demoGroupQueryCondition">
         <where>
             dgcp.status_=0
+            AND CONCAT(dgcp.course_date_,' ',dgcp.start_time_)&gt;=NOW()
             <if test="search!=null">
                 AND su.username_ like concat('%',#{search},'%')
             </if>

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

@@ -458,7 +458,7 @@
             LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
             LEFT JOIN class_group_student_mapper cgsm ON vgcgm.class_group_id_=cgsm.class_group_id_
             LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
-        WHERE vgcgm.vip_group_id_=#{vipGroupId}
+        WHERE vgcgm.vip_group_id_=#{vipGroupId} AND cgsm.user_id_ IS NOT NULL
         ORDER BY su.id_
         <include refid="global.limit"/>
     </select>
@@ -582,7 +582,7 @@
             LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_ = vgcgm.vip_group_id_
             LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
             LEFT JOIN course_schedule_student_payment cssp ON cs.id_=cssp.course_schedule_id_
-            WHERE vg.id_=#{vipGroupId} AND cs.status_!='OVER'
+            WHERE vg.id_=#{vipGroupId} AND cs.status_='NOT_START'
         GROUP BY cssp.user_id_
     </select>
     <select id="countTeacherVipGroups" resultType="int">

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

@@ -91,7 +91,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @GetMapping("/getCurrentCourseStudents")
     public Object getCurrentCourseStudents(StudentAttendanceQueryInfo queryInfo){
         if(Objects.isNull(queryInfo.getClassGroupId())){
-            return failed(HttpStatus.FORBIDDEN, "请指定班级!");
+            return failed("请指定班级!");
         }
         queryInfo.setFilterStatus(StudentAttendanceStatusEnum.DROP_OUT);
         return succeed(studentAttendanceService.getCurrentCourseStudents(queryInfo));
@@ -101,7 +101,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @PostMapping(value = "/classStartDateAdjust",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public Object classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto){
         if(Objects.isNull(classDateAdjustDto.getId())){
-            return failed(HttpStatus.FORBIDDEN, "请指定课程!");
+            return failed("请指定课程!");
         }
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(classDateAdjustDto);
@@ -113,7 +113,7 @@ public class TeacherCourseScheduleController extends BaseController {
     @PostMapping(value = "/courseSwap",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2){
         if(Objects.isNull(courseScheduleId1)||Objects.isNull(courseScheduleId2)){
-            return failed(HttpStatus.FORBIDDEN, "请指定课程!");
+            return failed("请指定课程!");
         }
         scheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
         return succeed();