소스 검색

1、陪练课调整
2、付费陪练课可预约时间调整

Joburgess 5 년 전
부모
커밋
b2a8be0005

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java

@@ -147,4 +147,26 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
      */
     List<PracticeGroup> findUserStatusPracticeGroups(@Param("userId") Integer userId,
                                                      @Param("groupStatus")GroupStatusEnum groupStatusEnum);
+
+    /**
+     * @describe 获取用户指定日期的未成功订单
+     * @author Joburgess
+     * @date 2020/3/2
+     * @param userId:
+     * @param date:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.PracticeGroup>
+     */
+    List<PracticeGroup> findUserLockPracticeGroupWithDate(@Param("userId") Integer userId,
+                                                          @Param("date") Date date);
+
+    /**
+     * @describe 获取用户指定日期及之前的未成功订单
+     * @author Joburgess
+     * @date 2020/3/2
+     * @param userId:
+     * @param date:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.PracticeGroup>
+     */
+    List<PracticeGroup> findUserLockPracticeGroupWithDateBefore(@Param("userId") Integer userId,
+                                                                @Param("date") Date date);
 }

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

@@ -231,7 +231,7 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
 	 * @param userId:
 	 * @return java.util.Map<java.lang.String,java.lang.Object>
 	 */
-	Map<String, Object> checkExistWaitPayOrder(Integer userId);
+	Map<String, Object> checkExistWaitPayOrder(Integer userId, Long groupId);
 
 	/**
 	 * @describe 取消待支付的订单

+ 14 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -379,7 +379,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         params.put("vipGroupStatus", null);
         List<Group> groups = groupDao.searchGroups(params);
         if(!CollectionUtils.isEmpty(groups)){
-            params.put("groups", groups);
+            Map<GroupType, List<Group>> groupTypeGroupsMap = groups.stream().collect(Collectors.groupingBy(Group::getGroupType));
+            List<Integer> classGroupIds=new ArrayList<>();
+            for (Map.Entry<GroupType, List<Group>> groupTypeListEntry : groupTypeGroupsMap.entrySet()) {
+                List<String> groupIds = groupTypeListEntry.getValue().stream().map(Group::getId).collect(Collectors.toList());
+                List<ClassGroup> classGroups = classGroupDao.findByMusicGroupsAndType(groupIds, groupTypeListEntry.getKey().getCode());
+                if(!CollectionUtils.isEmpty(classGroups)){
+                    List<Integer> tempClassGroupIds=classGroups.stream().map(ClassGroup::getId).collect(Collectors.toList());
+                    classGroupIds.addAll(tempClassGroupIds);
+                }
+            }
+            if(CollectionUtils.isEmpty(classGroupIds)){
+                return pageInfo;
+            }
+            params.put("classGroupIds", classGroupIds);
         }else{
             return pageInfo;
         }

+ 16 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -3321,9 +3321,23 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     }
 
     @Override
-    public Map<String, Object> checkExistWaitPayOrder(Integer userId) {
-        List<PracticeGroup> userLockGroups = practiceGroupDao.findUserStatusPracticeGroups(userId, GroupStatusEnum.LOCK);
+    public Map<String, Object> checkExistWaitPayOrder(Integer userId, Long groupId) {
+        List<PracticeGroup> userLockGroups;
         Map<String, Object> result=new HashMap<>();
+        if(Objects.nonNull(groupId)){
+            PracticeGroup practiceGroup = practiceGroupDao.get(groupId);
+            if(Objects.isNull(practiceGroup)||!practiceGroup.getGroupStatus().equals(GroupStatusEnum.NORMAL)||Objects.isNull(practiceGroup.getBuyMonths())){
+                result.put("existWaitPayOrder",0);
+                return result;
+            }
+            Date date = DateUtil.addSeconds(practiceGroup.getCoursesExpireDate(), 1);
+            userLockGroups=practiceGroupDao.findUserLockPracticeGroupWithDate(userId,date);
+        }else{
+            LocalDate localDate=LocalDate.now();
+            localDate=localDate.plusDays(1);
+            Date date = Date.from(localDate.atStartOfDay(DateUtil.zoneId).toInstant());
+            userLockGroups=practiceGroupDao.findUserLockPracticeGroupWithDateBefore(userId, date);
+        }
         if(!CollectionUtils.isEmpty(userLockGroups)){
             result.put("existWaitPayOrder",1);
             result.put("groupId", userLockGroups.get(0).getId());

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

@@ -482,10 +482,10 @@
         LEFT JOIN school s ON cs.schoole_id_=s.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-        <if test="groups != null and organIdList!=null">
-            AND cs.music_group_id_ IN
-            <foreach collection="groups" item="group" open="(" close=")" separator=",">
-                #{group.id}
+        <if test="classGroupIds != null and organIdList!=null">
+            AND cs.class_group_id_ IN
+            <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+                #{classGroupId}
             </foreach>
         </if>
         AND cs.id_ IS NOT NULL
@@ -512,10 +512,10 @@
         <if test="type!=null">
             AND cg.group_type_ = #{type}
         </if>
-        <if test="groups != null and organIdList!=null">
-            AND cs.music_group_id_ IN
-            <foreach collection="groups" item="group" open="(" close=")" separator=",">
-                #{group.id}
+        <if test="classGroupIds != null and organIdList!=null">
+            AND cs.class_group_id_ IN
+            <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+                #{classGroupId}
             </foreach>
         </if>
         <if test="musicGroupId!=null">

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

@@ -187,4 +187,10 @@
 	<select id="findUserStatusPracticeGroups" resultMap="PracticeGroup">
 		SELECT * FROM practice_group WHERE  student_id_=#{userId} AND group_status_=#{groupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	</select>
+    <select id="findUserLockPracticeGroupWithDate" resultMap="PracticeGroup">
+		SELECT * FROM practice_group WHERE student_id_=#{userId} AND courses_start_date_=#{date} AND group_status_='LOCK'
+    </select>
+	<select id="findUserLockPracticeGroupWithDateBefore" resultMap="PracticeGroup">
+		SELECT * FROM practice_group WHERE student_id_=#{userId} AND courses_start_date_&lt;=#{date} AND group_status_='LOCK'
+	</select>
 </mapper>

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

@@ -261,12 +261,12 @@ public class PracticeGroupController extends BaseController {
 
     @ApiOperation("检测用户是否存在待支付的课程组订单")
     @GetMapping(value = "/checkExistWaitPayOrder")
-    public HttpResponseResult checkExistWaitPayOrder(){
+    public HttpResponseResult checkExistWaitPayOrder(Long groupId){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        return succeed(practiceGroupService.checkExistWaitPayOrder(sysUser.getId()));
+        return succeed(practiceGroupService.checkExistWaitPayOrder(sysUser.getId(),groupId));
     }
 
     @ApiOperation("取消待支付的订单")