Browse Source

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

zouxuan 4 years ago
parent
commit
23638ea13c

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -61,6 +61,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     int batchDeleteCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
+    int batchDeleteCourseSchedulesWithoutCheck(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
     int batchDeleteCourseSchedulesWithLogic(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
     int batchDeleteAllCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
@@ -87,6 +89,9 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                        @Param("status") String status);
 
 
+    List<CourseSchedule> findMusicGroupAllCourseSchedules(@Param("musicGroupId") String musicGroupId,
+                                                       @Param("groupType") String groupType);
+
     /**
      * @param musicGroupId: 乐团编号
      * @param status:       状态
@@ -1266,6 +1271,9 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     List<Map<Long, Integer>> countGroupOverCourse(@Param("groupIds") List<String> groupIds, @Param("groupType") String groupType);
 
+
+    int countGroupFinishCourse(@Param("groupId") String groupId, @Param("groupType") String groupType);
+
     /**
      * @param userId:
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>

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

@@ -40,6 +40,8 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 */
 	void batchDeleteCourseSchedules(List<Long> courseScheduleIds);
 
+	void batchDeleteCourseSchedulesWithoutCheck(List<CourseSchedule> courseScheduleList);
+
 	/**
 	 * @describe 删除乐团下所有未上的课时
 	 * @author Joburgess
@@ -49,6 +51,8 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 */
 	void batchDeleteMusicGroupNotStartCourse(String musicGroupId,GroupType groupType);
 
+	void batchDeleteMusicGroup(String musicGroupId,GroupType groupType);
+
 	/**
 	 * @describe 删除指定乐团下指定状态的课程
 	 * @author Joburgess

+ 9 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -980,14 +980,14 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 		params.put("isShowVisualSeal", false);
 
-		if(Objects.nonNull(musicGroupId)){
-			params.put("ownershipType", OwnershipType.OWN);
+		if(StringUtils.isBlank(musicGroupId)){
+			params.put("ownershipType", "OWN");
 		}else{
 			MusicGroup musicGroup = musicGroupService.get(musicGroupId);
 			if (musicGroup == null) {
 				throw new BizException("乐团信息没找到");
 			}
-			params.put("ownershipType", musicGroup.getOwnershipType());
+			params.put("ownershipType", musicGroup.getOwnershipType().name());
 		}
 
 		templateEngine.render(params, "product.ftl", srcFile);
@@ -1001,7 +1001,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 
 		String organCode = "";
-		if (params.get("ownershipType") == OwnershipType.OWN) {
+		if (OwnershipType.OWN.name().equals(params.get("ownershipType"))){
 			organCode = "91440300326364429H";
 		} else {
 			organCode = "91420106333619290A";
@@ -1023,7 +1023,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 		SysUserContracts sysUserContracts = new SysUserContracts();
 		sysUserContracts.setCreateTime(date);
-		sysUserContracts.setType(ContractType.COURSES);
+		sysUserContracts.setType(ContractType.PRODUCT);
 		sysUserContracts.setUrl(pdfFilePath);
 		sysUserContracts.setUserId(userId);
 
@@ -1054,8 +1054,9 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
 		params.put("studentInfo", studentInfo);
 		params.put("isShowVisualSeal", true);
-		if(Objects.nonNull(musicGroupId)){
-			params.put("ownershipType", OwnershipType.OWN);
+
+		if(StringUtils.isBlank(musicGroupId)){
+			params.put("ownershipType", "OWN");
 		}else{
 			MusicGroup musicGroup = musicGroupService.get(musicGroupId);
 			if (musicGroup == null) {
@@ -1063,6 +1064,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			}
 			params.put("ownershipType", musicGroup.getOwnershipType().name());
 		}
+
 		templateEngine.render(params, "product.ftl", srcFile);
 
 		String html = "";

+ 40 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -222,7 +222,33 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 	}
 
-    @Override
+	@Override
+	public void batchDeleteCourseSchedulesWithoutCheck(List<CourseSchedule> courseScheduleList) {
+    	if(CollectionUtils.isEmpty(courseScheduleList)){
+    		return;
+		}
+		List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+
+		courseScheduleDao.batchDeleteCourseSchedulesWithoutCheck(courseScheduleIds);
+		courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+		courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
+		// 删除考勤
+		teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
+		studentAttendanceDao.deleteByCourseSchedules(courseScheduleIds);
+
+		// 删除作业
+		courseHomeworkService.delHomwworkByCourseScheduleId(courseScheduleIds);
+
+		List<Integer> classGroupIdList = courseScheduleList.stream().map(t -> t.getClassGroupId()).collect(Collectors.toList());
+		// 更新班级信息
+		if (classGroupIdList != null && classGroupIdList.size() > 0) {
+			for (Integer classGroupId : classGroupIdList) {
+				classGroupService.updateClassGroupInfo(classGroupId);
+			}
+		}
+	}
+
+	@Override
     @Transactional(rollbackFor = Exception.class)
     public void batchDeleteMusicGroupNotStartCourse(String musicGroupId, GroupType groupType) {
         if (StringUtils.isBlank(musicGroupId)) {
@@ -238,7 +264,19 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         batchDeleteCourseSchedules(courseScheduleIds);
     }
 
-    @Override
+	@Override
+	public void batchDeleteMusicGroup(String musicGroupId, GroupType groupType) {
+		if (StringUtils.isBlank(musicGroupId)) {
+			throw new BizException("请指定乐团");
+		}
+		List<CourseSchedule> musicGroupCourseSchedules = courseScheduleDao.findMusicGroupAllCourseSchedules(musicGroupId, groupType.getCode());
+		if (CollectionUtils.isEmpty(musicGroupCourseSchedules)) {
+			throw new BizException("此乐团不存在未上课程");
+		}
+		batchDeleteCourseSchedulesWithoutCheck(musicGroupCourseSchedules);
+	}
+
+	@Override
     @Transactional(rollbackFor = Exception.class)
     public void batchDeleteMusicGroupCourseWithStudent(String musicGroupId, Integer userId, GroupType groupType) {
         if (StringUtils.isBlank(musicGroupId)) {

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

@@ -872,6 +872,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("用户信息获取失败");
         }
         MusicGroup musicGroup = saveLog(musicGroupId, MusicGroupStatusEnum.PREPARE);
+        int finishCourseNum = courseScheduleDao.countGroupFinishCourse(musicGroupId, GroupType.MUSIC.getCode());
+        if(finishCourseNum>0){
+            throw new BizException("此乐团存在已结束课程");
+        }
+
         //乐器采购清单是否确认
         Map<String, Object> param = new HashMap<>();
         param.put("musicGroupId", musicGroupId);

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SporadicChargeInfoImpl.java

@@ -17,6 +17,8 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -49,6 +51,10 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
     private SysUserCashAccountDetailService sysUserCashAccountDetailService;
     @Autowired
     private DegreeRegistrationService degreeRegistrationService;
+    @Autowired
+    private ContractService contractService;
+
+    private final Logger logger= LoggerFactory.getLogger(this.getClass());
 
     @Override
     public BaseDAO<Integer, SporadicChargeInfo> getDAO() {
@@ -65,11 +71,20 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
         Integer userId = studentPaymentOrder.getUserId();
         SysUser sysUser = sysUserFeignService.queryUserById(userId);
         SporadicChargeInfo info = sporadicChargeInfoDao.get(Integer.parseInt(studentPaymentOrder.getMusicGroupId()));
+
         Map<Integer, String> map = new HashMap();
         map.put(userId, sysUser.getPhone());
         Map<Integer, String> yimei = new HashMap();
         map.put(userId, userId.toString());
         if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
+            try {
+                if(Objects.isNull(info.getUserId())){
+                    contractService.transferProduceContract(userId, null);
+                }
+            } catch (Exception e) {
+                logger.error("产品协议生成失败", e);
+            }
+
             //福袋活动,增加课程余额
             if (info.getChargeType().getCode() == 6) {
                 sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getActualAmount(), PlatformCashAccountDetailTypeEnum.SPORADIC, "活动");

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -68,6 +68,10 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
     private SellOrderService sellOrderService;
     @Autowired
     private SellOrderDao sellOrderDao;
+    @Autowired
+    private ContractService contractService;
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
     @Override
     public BaseDAO<Integer, StudentRepair> getDAO() {
@@ -588,6 +592,14 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
         map.put(userId, userId.toString());
 
         if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
+            if(repairInfo.getType()==1){
+                try {
+                    contractService.transferProduceContract(userId, null);
+                } catch (Exception e) {
+                    logger.error("产品协议生成失败", e);
+                }
+            }
+
             repairInfo.setPayStatus(2);
             repairInfo.setUpdateTime(nowDate);
             if (this.update(repairInfo) <= 0) {

+ 2 - 2
mec-biz/src/main/resources/config/contracts/product.ftl

@@ -83,7 +83,7 @@
         }
     </style>
 </head>
-<body>
+<body style="font-family:'SimSun'">
     <div class="container">
         <h1>《产品与服务协议》</h1>
         <!-- 甲方:深圳大雅乐盟网络教育股份有限公司 <br/> -->
@@ -187,7 +187,7 @@
                 <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
             </#if>
-            <div class="sign">乙方签:${studentInfo.realName!}
+            <div class="sign">乙方签:${studentInfo.realName!}
                 <span>日期:${.now?string("yyyy年MM月dd日")} </span>
             </div>
         	<#else>

+ 24 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -302,6 +302,14 @@
         </foreach>
     </delete>
 
+    <delete id="batchDeleteCourseSchedulesWithoutCheck">
+        DELETE FROM course_schedule
+        WHERE id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+            #{courseScheduleId}
+        </foreach>
+    </delete>
+
     <update id="batchDeleteCourseSchedulesWithLogic">
         UPDATE course_schedule
             SET del_flag_ = '1',update_time_ = NOW()
@@ -1955,6 +1963,13 @@
           AND cs.group_type_ = #{groupType}
           AND status_ = #{status}
     </select>
+    <select id="findMusicGroupAllCourseSchedules" resultMap="CourseSchedule">
+        SELECT cs.*
+        FROM course_schedule cs
+                 LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+        WHERE cg.music_group_id_ = #{musicGroupId}
+          AND cs.group_type_ = #{groupType}
+    </select>
     <select id="findMusicGroupCourseSchedulesWithStudent" resultMap="CourseSchedule">
         SELECT cs.*
         FROM course_schedule_student_payment cssp
@@ -2645,6 +2660,15 @@
         </foreach>
         GROUP BY cs.music_group_id_
     </select>
+    <select id="countGroupFinishCourse" resultType="int">
+        SELECT
+            COUNT(cs.Id_)
+        FROM
+            course_schedule cs
+        WHERE CONCAT(cs.class_date_, ' ', cs.start_class_time_) &lt; NOW()
+            AND cs.group_type_ = #{groupType}
+            AND cs.music_group_id_ = #{groupId}
+    </select>
     <select id="findUserCourses" resultMap="CourseSchedule">
         SELECT
         cs.id_,

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

@@ -237,7 +237,7 @@ public class CourseScheduleController extends BaseController {
     @GetMapping("/batchDeleteMusicGroupNotStartCourse")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchDeleteMusicGroupNotStartCourse')")
 	public Object batchDeleteMusicGroupNotStartCourse(String musicGroupId){
-        scheduleService.batchDeleteMusicGroupNotStartCourse(musicGroupId,GroupType.MUSIC);
+        scheduleService.batchDeleteMusicGroup(musicGroupId,GroupType.MUSIC);
         return succeed();
     }