瀏覽代碼

Merge remote-tracking branch 'origin/saas' into saas

yanite 3 年之前
父節點
當前提交
5e34a1fcb7

+ 10 - 0
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -176,6 +176,16 @@ public class NewsController extends BaseController {
 	public Object update(SysNewsInformation newsInfo) {
 	public Object update(SysNewsInformation newsInfo) {
 		Date date = new Date();
 		Date date = new Date();
 		newsInfo.setUpdateTime(date);
 		newsInfo.setUpdateTime(date);
+		
+		SysNewsInformation originNewsInfo = sysNewsInformationService.get(newsInfo.getId());
+		if(originNewsInfo == null){
+			return failed("请求参数错误");
+		}
+		
+		if(newsInfo.getType() == null){
+			newsInfo.setType(originNewsInfo.getType());
+		}
+		
 		if(newsInfo.getType() == 6 || newsInfo.getType() == 7){
 		if(newsInfo.getType() == 6 || newsInfo.getType() == 7){
 			newsInfo.setTenantId(-1);
 			newsInfo.setTenantId(-1);
 		}
 		}

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1533,10 +1533,22 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param teacherId
      * @param teacherId
      * @return
      * @return
      */
      */
-    CourseSchedule getLastCourse(@Param("classGroupId") Integer classGroupId,
+    CourseSchedule getFirstCourse(@Param("classGroupId") Integer classGroupId,
                                  @Param("startTime") String startTime,
                                  @Param("startTime") String startTime,
                                  @Param("teacherId") Integer teacherId,
                                  @Param("teacherId") Integer teacherId,
                                  @Param("continueCourseTime") String continueCourseTime);
                                  @Param("continueCourseTime") String continueCourseTime);
+    /**
+     * 获取下一次连堂课
+     *
+     * @param classGroupId
+     * @param endTime
+     * @param teacherId
+     * @return
+     */
+    CourseSchedule getLastCourse(@Param("classGroupId") Integer classGroupId,
+                                 @Param("endTime") String endTime,
+                                 @Param("teacherId") Integer teacherId,
+                                 @Param("continueCourseTime") String continueCourseTime);
 
 
     /**
     /**
      * 获取课程组已结束最后一节课时间
      * 获取课程组已结束最后一节课时间

+ 17 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 import com.alibaba.fastjson.TypeReference;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.*;
@@ -602,6 +601,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration, studentPaymentOrder, goodsDto, renewParamDto, couponPayParam);
         studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration, studentPaymentOrder, goodsDto, renewParamDto, couponPayParam);
         //goodsDto.getOrderAmount 真实的原价  -  优惠的钱 = 本次订单应付的钱
         //goodsDto.getOrderAmount 真实的原价  -  优惠的钱 = 本次订单应付的钱
         BigDecimal actualAmount = goodsDto.getOrderAmount().subtract(studentPaymentOrder.getCouponRemitFee());
         BigDecimal actualAmount = goodsDto.getOrderAmount().subtract(studentPaymentOrder.getCouponRemitFee());
+        //+ 课程优惠的钱(如果课程是送的那么加上)
+        if (Objects.nonNull(goodsDto.getCourseRemitFee())) {
+            actualAmount = actualAmount.add(goodsDto.getCourseRemitFee());
+        }
+        
         //前端获取的价格
         //前端获取的价格
         BigDecimal amount = renewParamDto.getAmount();
         BigDecimal amount = renewParamDto.getAmount();
         //校验 页面传入的价格 和 (本次原价-优惠价后的价格) 是否一致
         //校验 页面传入的价格 和 (本次原价-优惠价后的价格) 是否一致
@@ -834,7 +838,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         // 拆分各商品,如果有优惠券则计算使用券后的金额,并写入订单详情
         // 拆分各商品,如果有优惠券则计算使用券后的金额,并写入订单详情
         studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration, studentPaymentOrder, goodsDto, registerPayDto, couponPayParam);
         studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration, studentPaymentOrder, goodsDto, registerPayDto, couponPayParam);
         //goodsDto.getOrderAmount 真实的原价  -  优惠的钱 = 本次订单应付的钱
         //goodsDto.getOrderAmount 真实的原价  -  优惠的钱 = 本次订单应付的钱
-        BigDecimal actualAmount = goodsDto.getOrderAmount().subtract(studentPaymentOrder.getCouponRemitFee());
+        BigDecimal actualAmount = goodsDto.getOrderAmount()
+                .subtract(studentPaymentOrder.getCouponRemitFee());
+        //+ 课程优惠的钱(如果课程是送的那么加上)
+        if (Objects.nonNull(goodsDto.getCourseRemitFee())) {
+            actualAmount = actualAmount.add(goodsDto.getCourseRemitFee());
+        }
+
         //前端获取的价格
         //前端获取的价格
         BigDecimal amount = registerPayDto.getAmount();
         BigDecimal amount = registerPayDto.getAmount();
         //校验 页面传入的价格 和 (本次原价-优惠价后的价格) 是否一致
         //校验 页面传入的价格 和 (本次原价-优惠价后的价格) 是否一致
@@ -1321,10 +1331,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 
         //乐器采购清单是否确认
         //乐器采购清单是否确认
         List<StudentPaymentOrderDetail> applyOrder = studentPaymentOrderDetailService.findApplyOrderSuccess(musicGroupId, DealStatusEnum.SUCCESS);
         List<StudentPaymentOrderDetail> applyOrder = studentPaymentOrderDetailService.findApplyOrderSuccess(musicGroupId, DealStatusEnum.SUCCESS);
-        if(applyOrder != null && applyOrder.size() > 0){
+        if (applyOrder != null && applyOrder.size() > 0) {
             //是否购买了乐器,支持无乐器乐团
             //是否购买了乐器,支持无乐器乐团
             long count = applyOrder.stream().filter(e -> StringUtils.isNotEmpty(e.getGoodsIdList())).count();
             long count = applyOrder.stream().filter(e -> StringUtils.isNotEmpty(e.getGoodsIdList())).count();
-            if(count > 0l){
+            if (count > 0l) {
                 Map<String, Object> param = new HashMap<>();
                 Map<String, Object> param = new HashMap<>();
                 param.put("musicGroupId", musicGroupId);
                 param.put("musicGroupId", musicGroupId);
                 param.put("tenantId", musicGroup.getTenantId());
                 param.put("tenantId", musicGroup.getTenantId());
@@ -1962,11 +1972,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (reqMusicGroupQuit.getStatus() == PROCESSING) {
         if (reqMusicGroupQuit.getStatus() == PROCESSING) {
             SysUser sysUser = sysUserFeignService.queryUserById(userId);
             SysUser sysUser = sysUserFeignService.queryUserById(userId);
 
 
-            Set<Integer> integers = employeePositionService.queryUserIdByRoleId(new SysUserRoleEnum[]{ORGAN_MANAGER},musicGroup.getOrganId());
+            Set<Integer> integers = employeePositionService.queryUserIdByRoleId(new SysUserRoleEnum[]{ORGAN_MANAGER}, musicGroup.getOrganId());
             if (currentOperatorRoleIds == null || currentOperatorRoleIds.size() == 0) {
             if (currentOperatorRoleIds == null || currentOperatorRoleIds.size() == 0) {
                 integers.add(musicGroup.getEducationalTeacherId());
                 integers.add(musicGroup.getEducationalTeacherId());
             }
             }
-            if(integers.size() > 0){
+            if (integers.size() > 0) {
                 Map<Integer, String> receivers = new HashMap<>(integers.size());
                 Map<Integer, String> receivers = new HashMap<>(integers.size());
                 for (Integer integer : integers) {
                 for (Integer integer : integers) {
                     receivers.put(integer, integer.toString());
                     receivers.put(integer, integer.toString());
@@ -3760,7 +3770,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 
     @Override
     @Override
     public PageInfo<MusicMemberDto> queryMusicMemberList(MusicMemberQueryInfo queryInfo) {
     public PageInfo<MusicMemberDto> queryMusicMemberList(MusicMemberQueryInfo queryInfo) {
-         String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.PUSH_MEMBER_RENEW_QUIT, queryInfo.getTenantId());
+        String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.PUSH_MEMBER_RENEW_QUIT, queryInfo.getTenantId());
         if (StringUtils.isEmpty(configValue)) {
         if (StringUtils.isEmpty(configValue)) {
             configValue = "15";
             configValue = "15";
         }
         }

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

@@ -3233,8 +3233,8 @@
         GROUP BY cssp.user_id_;
         GROUP BY cssp.user_id_;
     </select>
     </select>
 
 
-    <select id="getLastCourse" resultMap="CourseSchedule">
-        SELECT cs.* FROM course_schedule cs
+    <select id="getFirstCourse" resultMap="CourseSchedule">
+        SELECT <include refid="resultSql"/> FROM course_schedule cs
         WHERE cs.class_group_id_ = #{classGroupId}
         WHERE cs.class_group_id_ = #{classGroupId}
         AND TIMESTAMPDIFF(MINUTE, CONCAT(cs.class_date_," ",cs.end_class_time_),#{startTime}) &lt;= #{continueCourseTime}
         AND TIMESTAMPDIFF(MINUTE, CONCAT(cs.class_date_," ",cs.end_class_time_),#{startTime}) &lt;= #{continueCourseTime}
         AND TIMESTAMPDIFF(MINUTE, CONCAT(cs.class_date_," ",cs.end_class_time_),#{startTime}) >= 0
         AND TIMESTAMPDIFF(MINUTE, CONCAT(cs.class_date_," ",cs.end_class_time_),#{startTime}) >= 0
@@ -3242,6 +3242,15 @@
         ORDER BY cs.class_date_ DESC,cs.end_class_time_ DESC
         ORDER BY cs.class_date_ DESC,cs.end_class_time_ DESC
         LIMIT 1
         LIMIT 1
     </select>
     </select>
+    <select id="getLastCourse" resultMap="CourseSchedule">
+        SELECT <include refid="resultSql"/> FROM course_schedule cs
+        WHERE cs.class_group_id_ = #{classGroupId}
+        AND TIMESTAMPDIFF(MINUTE, #{endTime},CONCAT(cs.class_date_," ",cs.start_class_time_)) &lt;= #{continueCourseTime}
+        AND TIMESTAMPDIFF(MINUTE, #{endTime},CONCAT(cs.class_date_," ",cs.start_class_time_)) >= 0
+        AND cs.actual_teacher_id_ = #{teacherId} AND cs.pre_course_flag_ = 0
+        ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
+        LIMIT 1
+    </select>
     <select id="findLastOverTime" resultType="java.util.Map">
     <select id="findLastOverTime" resultType="java.util.Map">
         SELECT cs.music_group_id_ 'key',MAX(CONCAT(cs.class_date_,' ',cs.start_class_time_)) 'value'
         SELECT cs.music_group_id_ 'key',MAX(CONCAT(cs.class_date_,' ',cs.start_class_time_)) 'value'
         FROM course_schedule cs
         FROM course_schedule cs
@@ -3250,6 +3259,7 @@
             #{item}
             #{item}
         </foreach>
         </foreach>
         GROUP BY cs.music_group_id_
         GROUP BY cs.music_group_id_
+        LIMIT 1
     </select>
     </select>
     <select id="findNotStartCourseByIds" resultType="java.lang.Long">
     <select id="findNotStartCourseByIds" resultType="java.lang.Long">
         SELECT cs.id_ FROM course_schedule cs WHERE cs.id_ IN
         SELECT cs.id_ FROM course_schedule cs WHERE cs.id_ IN

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

@@ -93,7 +93,7 @@
   </select>
   </select>
   <select id="getConfigValue" resultType="java.lang.String">
   <select id="getConfigValue" resultType="java.lang.String">
     SELECT CASE WHEN stc.id_ IS NULL THEN sc.paran_value_ ELSE stc.param_value_ END paran_value_ FROM sys_config sc
     SELECT CASE WHEN stc.id_ IS NULL THEN sc.paran_value_ ELSE stc.param_value_ END paran_value_ FROM sys_config sc
-    LEFT JOIN sys_tenant_config stc ON sc.id_ = stc.sys_config_id_ AND sc.group_ = #{tenantId}
+    LEFT JOIN sys_tenant_config stc ON sc.id_ = stc.sys_config_id_ AND stc.tenant_id_ = #{tenantId}
     WHERE sc.group_ IS NOT NULL AND sc.group_ != '' AND sc.param_name_ = #{paramName}
     WHERE sc.group_ IS NOT NULL AND sc.group_ != '' AND sc.param_name_ = #{paramName}
   </select>
   </select>
   <select id="queryAllMap" resultType="java.util.Map">
   <select id="queryAllMap" resultType="java.util.Map">

+ 25 - 9
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -37,7 +37,6 @@ import com.ym.utils.DateTimeUtils;
 import com.ym.utils.IdentifierUtils;
 import com.ym.utils.IdentifierUtils;
 import com.ym.whiteboard.WhiteBoardHelper;
 import com.ym.whiteboard.WhiteBoardHelper;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import lombok.val;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -115,7 +114,7 @@ public class RoomServiceImpl implements RoomService {
         while (true){
         while (true){
             String classDate = DateUtil.format(schedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
             String classDate = DateUtil.format(schedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
             String startClassTime = DateUtil.format(schedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
             String startClassTime = DateUtil.format(schedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-            schedule = courseScheduleDao.getLastCourse(schedule.getClassGroupId(),classDate + " " + startClassTime,schedule.getActualTeacherId(),continueCourseTime);
+            schedule = courseScheduleDao.getFirstCourse(schedule.getClassGroupId(),classDate + " " + startClassTime,schedule.getActualTeacherId(),continueCourseTime);
             if(schedule != null){
             if(schedule != null){
                 roomId = schedule.getId().toString();
                 roomId = schedule.getId().toString();
             }else {
             }else {
@@ -125,6 +124,27 @@ public class RoomServiceImpl implements RoomService {
         return Integer.parseInt(roomId);
         return Integer.parseInt(roomId);
     }
     }
 
 
+    @Transactional(rollbackFor = Exception.class)
+    public String getCloseNetworkRoomTime(CourseSchedule courseSchedule,String continueCourseTime){
+        String autoCloseNetworkRoomTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_AFTER_BUFFER_TIME,courseSchedule.getTenantId());
+        if(StringUtils.isEmpty(autoCloseNetworkRoomTime)){
+            autoCloseNetworkRoomTime = "15";
+        }
+        CourseSchedule schedule = courseSchedule;
+        //如果当前课程是连堂课,那么获取第一节课的课程编号
+        while (true){
+            String classDate = DateUtil.format(schedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
+            String endClassTime = DateUtil.format(schedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+            schedule = courseScheduleDao.getLastCourse(schedule.getClassGroupId(),classDate + " " + endClassTime,schedule.getActualTeacherId(),continueCourseTime);
+            if(schedule != null){
+                autoCloseNetworkRoomTime = DateUtil.minutesBetween(new Date(),schedule.getEndClassTime()) + "";
+            }else {
+                break;
+            }
+        }
+        return autoCloseNetworkRoomTime;
+    }
+
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Override
     @Override
     public BaseResponse joinRoom(String roomId) throws Exception {
     public BaseResponse joinRoom(String roomId) throws Exception {
@@ -163,21 +183,17 @@ public class RoomServiceImpl implements RoomService {
             continueCourseTime = "5";
             continueCourseTime = "5";
         }
         }
 
 
-        String autoCloseNetworkRoomTime = sysTenantConfigService.getTenantConfigValue(SysConfigService.COURSE_AFTER_BUFFER_TIME,courseSchedule.getTenantId());
-        if(StringUtils.isEmpty(autoCloseNetworkRoomTime)){
-            autoCloseNetworkRoomTime = "15";
-        }
         RoomResult roomResult = new RoomResult();
         RoomResult roomResult = new RoomResult();
-        roomResult.setAutoCloseNetworkRoomTime(autoCloseNetworkRoomTime);
+        roomResult.setAutoCloseNetworkRoomTime(this.getCloseNetworkRoomTime(courseSchedule,continueCourseTime));
         CourseSchedule schedule = courseSchedule;
         CourseSchedule schedule = courseSchedule;
         //如果当前课程是连堂课,那么获取第一节课的课程编号
         //如果当前课程是连堂课,那么获取第一节课的课程编号
         while (true){
         while (true){
             String classDate = DateUtil.format(schedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
             String classDate = DateUtil.format(schedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
             String startClassTime = DateUtil.format(schedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
             String startClassTime = DateUtil.format(schedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-            schedule = courseScheduleDao.getLastCourse(schedule.getClassGroupId(),classDate + " " + startClassTime,schedule.getActualTeacherId(),continueCourseTime);
+            schedule = courseScheduleDao.getFirstCourse(schedule.getClassGroupId(),classDate + " " + startClassTime,schedule.getActualTeacherId(),continueCourseTime);
             if(schedule != null){
             if(schedule != null){
                 roomId = schedule.getId().toString();
                 roomId = schedule.getId().toString();
-                roomResult.setAutoCloseFlag(false);
+//                roomResult.setAutoCloseFlag(false);
             }else {
             }else {
                 break;
                 break;
             }
             }