Browse Source

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

yonge 5 years ago
parent
commit
64ca3b4cf9

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -129,7 +129,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	@Override
 	public void updateBaseInfo(SysUser sysUser) {
 		sysUserDao.update(sysUser);
-		imFeignService.update(new ImUserModel(sysUser.getId().toString(),sysUser.getRealName()==null?sysUser.getUsername():sysUser.getRealName(),null));
+		imFeignService.update(new ImUserModel(sysUser.getId().toString(),sysUser.getRealName()==null?sysUser.getUsername():sysUser.getRealName(),sysUser.getAvatar()));
 	}
 
 	@Override

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

@@ -121,6 +121,10 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
      */
     List<PracticeCourseDto> findUserBuyPracticeGroups(@Param("userId") Integer userId);
 
+
+    List<PracticeCourseDto> findUserBuyPracticeGroupsWithDate(@Param("userId") Integer userId,
+                                                          @Param("date") Date date);
+
     /**
      * @describe 获取已经达到截至时间的陪练课程组
      * @author Joburgess

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -8,6 +8,7 @@ import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -320,6 +321,10 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
      */
     List<VipGroup> queryNormalStatusList();
 
+    int countUserRepeatVipGroupInCourseStartEndTime(@Param("userId") Integer userId,
+                                                    @Param("courseStartDate")Date courseStartDate,
+                                                    @Param("courseEndDate") Date courseEndDate);
+
     VipGroup findVipGroupInfo(@Param("id") Integer id, @Param("classGroupId") Integer classGroupId);
 
     /**

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseListDto.java

@@ -77,6 +77,8 @@ public class CourseListDto {
 
     private String practiceRenewUrl;
 
+    private Date courseStartDate;
+
     private Date courseExpireDate;
 
     @ApiModelProperty(value = "是否有陪练报告")
@@ -85,6 +87,14 @@ public class CourseListDto {
     @ApiModelProperty(value = "陪练报告地址")
     private String studyReportUrl;
 
+    public Date getCourseStartDate() {
+        return courseStartDate;
+    }
+
+    public void setCourseStartDate(Date courseStartDate) {
+        this.courseStartDate = courseStartDate;
+    }
+
     public Date getCourseExpireDate() {
         return courseExpireDate;
     }

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

@@ -195,7 +195,7 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
 	 * @param userId:
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.PracticeCourseDto>
 	 */
-	List<PracticeCourseDto> findUserHistoryBuyPracticeGroups(Integer userId);
+	List<PracticeCourseDto> findUserHistoryBuyPracticeGroups(Integer userId, Long groupId);
 
 	/**
 	 * @describe 查询订单信息

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

@@ -69,6 +69,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     @Autowired
     private CourseScheduleDao courseScheduleDao;
     @Autowired
+    private StudentAttendanceDao studentAttendanceDao;
+    @Autowired
     private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
     @Autowired
     private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
@@ -2116,6 +2118,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                     .distinct().collect(Collectors.toList());
             List<Map<Long, Integer>> courseSettlementMaps = courseScheduleTeacherSalaryDao.checkCoursesIsSettlement(courseScheduleIds);
             Map<Long, Long> courseSettlementMap = MapUtil.convertIntegerMap(courseSettlementMaps);
+            Map<Integer, Long> studentNumCourseMap = MapUtil.convertIntegerMap(studentAttendanceDao.countStudentAttendancesByCourses(courseScheduleIds));
             //获取课程实际上课老师姓名
             Map<Long, String> teacherNames = MapUtil.convertIntegerMap(courseScheduleDao.queryTeacherName(courseScheduleIds));
             dataList.forEach(e -> {
@@ -2127,6 +2130,12 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 } else {
                     e.setIsSettlement(1);
                 }
+                Long studentNum = studentNumCourseMap.get(e.getId());
+                if (Objects.nonNull(studentNum)) {
+                    e.setIsCallNames(studentNum > 0 ? YesOrNoEnum.YES : YesOrNoEnum.NO);
+                } else {
+                    e.setIsCallNames(YesOrNoEnum.NO);
+                }
             });
         }
         pageInfo.setRows(dataList);
@@ -3117,8 +3126,16 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     }
 
     @Override
-    public List<PracticeCourseDto> findUserHistoryBuyPracticeGroups(Integer userId) {
-        List<PracticeCourseDto> userPracticeGroups = practiceGroupDao.findUserBuyPracticeGroups(userId);
+    public List<PracticeCourseDto> findUserHistoryBuyPracticeGroups(Integer userId, Long groupId) {
+        List<PracticeCourseDto> userPracticeGroups;
+        if(Objects.nonNull(groupId)){
+            PracticeGroup practiceGroup = practiceGroupDao.get(groupId);
+            Date date = DateUtil.addSeconds(practiceGroup.getCoursesExpireDate(), 1);
+            userPracticeGroups=practiceGroupDao.findUserBuyPracticeGroupsWithDate(userId,date);
+        }else{
+            userPracticeGroups = practiceGroupDao.findUserBuyPracticeGroups(userId);
+        }
+
         if(CollectionUtils.isEmpty(userPracticeGroups)){
             return new ArrayList<>();
         }

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

@@ -129,7 +129,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		return vipGroupDao;
 	}
 
-	@Transactional(rollbackFor = Exception.class)
+	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 	@Override
 	public String createVipGroup(VipGroupApplyDto vipGroup) {
 
@@ -225,6 +225,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 		}
 
+		int repeatVipGroups = vipGroupDao.countUserRepeatVipGroupInCourseStartEndTime(vipGroupApplyBaseInfoDto.getUserId(), firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
+		if(repeatVipGroups>0){
+			throw new BizException("请勿重复提交");
+		}
+
 		//生成vip课信息
 		List<String> bySubIds = subjectDao.findBySubIds(vipGroupApplyBaseInfoDto.getSubjectIdList());
 		StringBuffer className=new StringBuffer(StringUtils.join(bySubIds,","));

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

@@ -485,6 +485,7 @@
             cg.name_ class_group_name_,
             cg.type_,
             cg.subject_id_list_,
+            pg.courses_start_date_,
             pg.courses_expire_date_,
             pg.single_class_minutes_,
             cg.total_class_times_ online_classes_num_,
@@ -737,6 +738,7 @@
         <result column="teacher_school_id_" property="teacherSchoolId"/>
         <result column="class_mode_" property="classMode"/>
         <result column="practice_type_" property="practiceType"/>
+        <result column="courses_start_date_" property="courseStartDate"/>
         <result column="courses_expire_date_" property="courseExpireDate"/>
         <result column="payment_status_" property="paymentStatus"
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -768,7 +770,7 @@
     <select id="queryStudentPracticeCourses" resultMap="CourseListDto">
         SELECT cg.id_ class_group_id_,pg.name_ music_group_name_,su.real_name_,
         cg.current_class_times_,cg.total_class_times_,pg.single_class_minutes_,
-        pg.id_ practice_id_,cg.type_,1 class_mode_,
+        pg.id_ practice_id_,cg.type_,1 class_mode_,pg.courses_start_date_,
         pg.courses_expire_date_,
         IF(pg.buy_months_ IS NULL,0,1) practice_type_
         FROM practice_group pg

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

@@ -153,6 +153,22 @@
 			AND (pg.group_status_='NORMAL' OR pg.group_status_='LOCK')
 			AND pg.buy_months_ IS NOT NULL
 	</select>
+
+	<select id="findUserBuyPracticeGroupsWithDate" resultMap="PracticeCourseDto">
+		SELECT
+			pg.*,
+			su.real_name_,
+			su.avatar_,
+			s.name_ subject_name_
+		FROM
+			practice_group pg
+			LEFT JOIN sys_user su ON pg.user_id_ = su.id_
+			LEFT JOIN `subject` s ON pg.subject_id_ = s.id_
+		WHERE
+			student_id_=#{userId}
+			AND courses_start_date_=#{date} AND group_status_='LOCK'
+			AND pg.buy_months_ IS NOT NULL
+	</select>
 	<select id="findUserPracticeGroup" resultMap="PracticeGroup">
 		SELECT * FROM practice_group WHERE student_id_=#{userId} AND id_=#{groupId};
 	</select>

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

@@ -926,4 +926,8 @@
 		WHERE cs.group_type_ = 'VIP' and cs.teach_mode_ = 'ONLINE'
 		GROUP BY cssp.music_group_id_
     </select>
+
+    <select id="countUserRepeatVipGroupInCourseStartEndTime" resultType="int">
+        SELECT COUNT(id_) FROM vip_group WHERE user_id_=#{userId} AND courses_start_date=#{courseStartDate} AND courses_expire_date_=#{courseEndDate}
+    </select>
 </mapper>

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

@@ -185,12 +185,12 @@ public class PracticeGroupController extends BaseController {
 
     @ApiOperation("获取用户历史购买的陪练课")
     @GetMapping(value = "/findUserHistoryBuyPracticeGroups")
-    public HttpResponseResult findUserHistoryBuyPracticeGroups(){
+    public HttpResponseResult findUserHistoryBuyPracticeGroups(Long groupId){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        return succeed(practiceGroupService.findUserHistoryBuyPracticeGroups(sysUser.getId()));
+        return succeed(practiceGroupService.findUserHistoryBuyPracticeGroups(sysUser.getId(), groupId));
     }
 
     @ApiOperation("查询订单信息")