Sfoglia il codice sorgente

1、乐团课新增排课教师课酬计算逻辑调整
2、陪练课配置
3、陪练课接口

Joburgess 5 anni fa
parent
commit
4856339811

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

@@ -3,6 +3,25 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.Map;
+
 public interface PracticeGroupService extends BaseService<Long, PracticeGroup>{
+
+    /**
+     * @describe 获取陪练课预约参数
+     * @author Joburgess
+     * @date 2020/1/31
+     * @return java.util.Map
+     */
+    Map getPracticeApplyParams();
+
+    /**
+     * @describe 陪练课预约
+     * @author Joburgess
+     * @date 2020/1/31
+     * @param practiceGroup: 预约信息
+     * @return java.util.Map
+     */
+    Map practiceApply(PracticeGroup practiceGroup);
 	
-}
+}

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

@@ -116,6 +116,11 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      * @describe 陪练课预约时间间隔
      */
     String PRACTICE_APPLY_INTERVAL_TIME = "practice_apply_interval_time";
+
+    /**
+     * @describe 陪练课可预约声部列表
+     */
+    String PRACTICE_SUBJECT_ID_LIST = "practice_subject_id_list";
     
     /**
      * 十分钟内最大可发送的短信次数

+ 47 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1,5 +1,12 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.service.PracticeGroupService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -8,15 +15,52 @@ import com.ym.mec.biz.dal.entity.PracticeGroup;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
+import java.util.*;
+
 @Service
-public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGroup>{
+public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGroup> implements PracticeGroupService {
 
 	@Autowired
 	private PracticeGroupDao practiceGroupDao;
+	@Autowired
+	private SysConfigService sysConfigService;
+	@Autowired
+	private SubjectDao subjectDao;
 	
 	@Override
 	public BaseDAO<Long, PracticeGroup> getDAO() {
 		return practiceGroupDao;
 	}
-	
-}
+
+	@Override
+	public Map getPracticeApplyParams() {
+		Map result=new HashMap();
+		SysConfig practiceSubjectIdListConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_SUBJECT_ID_LIST);
+		SysConfig practiceApplyStartTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_START_TIME);
+		SysConfig practiceApplyEndTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_END_TIME);
+		List<Subject> subjects = subjectDao.findBySubjectByIdList(practiceSubjectIdListConfig.getParanValue());
+		result.put("subjects", subjects);
+		result.put("practiceApplyStartTime",practiceApplyStartTimeConfig.getParanValue());
+		result.put("practiceApplyEndTime",practiceApplyEndTimeConfig.getParanValue());
+		return result;
+	}
+
+	@Override
+	public Map practiceApply(PracticeGroup practiceGroup) {
+		Integer practiceCourseMinutes=25;
+		SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
+		if(Objects.nonNull(practiceCourseMinutesConfig)){
+			practiceCourseMinutes=practiceCourseMinutesConfig.getParanValue(Integer.class);
+		}
+		Date now=new Date();
+		Date nextWeekMonday = DateUtil.getNextWeekMonday(now);
+		Date nextWeekFriday = DateUtil.getNextWeekDay(now,11);
+		if(practiceGroup.getCoursesStartDate().before(nextWeekMonday)
+			||(practiceGroup.getCoursesStartDate().after(nextWeekFriday)
+				&&!DateUtil.isSameDay(practiceGroup.getCoursesStartDate(),nextWeekFriday))){
+			throw new BizException("预约时间超过范围");
+		}
+		practiceGroup.setCoursesExpireDate(DateUtil.addMinutes(practiceGroup.getCoursesStartDate(),practiceCourseMinutes));
+		return null;
+	}
+}

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

@@ -33,7 +33,7 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO practice_group (id_,name_,subject_id_,user_id_,single_class_minutes_,organ_id_,courses_start_date_,courses_expire_date_,create_time_,update_time_,memo_) VALUES(#{id},#{name},#{subjectId},#{userId},#{singleClassMinutes},#{organId},#{coursesStartDate},#{coursesExpireDate},#{createTime},#{updateTime},#{memo})
+		INSERT INTO practice_group (id_,name_,subject_id_,user_id_,single_class_minutes_,organ_id_,courses_start_date_,courses_expire_date_,create_time_,update_time_,memo_) VALUES(#{id},#{name},#{subjectId},#{userId},#{singleClassMinutes},#{organId},#{coursesStartDate},#{coursesExpireDate},NOW(),NOW(),#{memo})
 	</insert>
 	
 	

+ 30 - 0
mec-student/src/main/java/com/ym/mec/student/controller/PracticeGroupController.java

@@ -0,0 +1,30 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.biz.service.PracticeGroupService;
+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.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/1/31
+ */
+@RequestMapping("practiceGroup")
+@Api(tags = "陪练课服务")
+@RestController
+public class PracticeGroupController extends BaseController {
+
+    @Autowired
+    private PracticeGroupService practiceGroupService;
+
+    @ApiOperation("获取陪练课预约参数")
+    @GetMapping(value = "/getPracticeApplyParams")
+    public Object getPracticeApplyParams(){
+        return succeed(practiceGroupService.getPracticeApplyParams());
+    }
+
+}

+ 15 - 1
mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java

@@ -986,6 +986,20 @@ public class DateUtil {
 	}
 
 	/**
+	 * @describe 根据日期获取下周几的时间
+	 * @author Joburgess
+	 * @date 2019/10/25
+	 * @param date:
+	 * @return java.util.Date
+	 */
+	public static Date getNextWeekDay(Date date,int intervalDays) {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(getWeekMondayWithDate(date));
+		cal.add(Calendar.DATE, intervalDays);
+		return cal.getTime();
+	}
+
+	/**
 	 * @describe 在指定时间上加上指定天数,忽略时分秒
 	 * @author Joburgess
 	 * @date 2019/10/30
@@ -1127,6 +1141,6 @@ public class DateUtil {
 		System.out.println(dayEnd(new Date()));
 		System.out.println(format(getLastDayOfMonth(new Date()),CHINESE_DATA_FORMAT));
 		System.out.println(monthsBetween(df1.parse("2020-01-18 12:00:00"),df1.parse("2020-04-19 12:00:00")));
-
+		System.out.println(getNextWeekMonday(new Date()));
 	}
 }