Browse Source

feat:vip课创建添加二次确认

Joburgess 4 years ago
parent
commit
0eae80d86d

+ 3 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherServeDto.java

@@ -53,14 +53,13 @@ public class TeacherServeDto {
     private Integer exercisesMessageTimelyNum;
 
     @ApiModelProperty(value = "提交率")
-    private BigDecimal submitRate;
+    private String submitRate;
 
-
-    public BigDecimal getSubmitRate() {
+    public String getSubmitRate() {
         return submitRate;
     }
 
-    public void setSubmitRate(BigDecimal submitRate) {
+    public void setSubmitRate(String submitRate) {
         this.submitRate = submitRate;
     }
 

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupApplyDto.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.VipGroupStudentCoursePrice;
 import io.swagger.annotations.ApiModelProperty;
@@ -24,6 +25,17 @@ public class VipGroupApplyDto {
 
     private BigDecimal singleClassPrice;
 
+    @ApiModelProperty(value = "是否允许超出活动允许的学生使用次数")
+    private Boolean allowOverstepActivityStudentNum = false;
+
+    public Boolean getAllowOverstepActivityStudentNum() {
+        return allowOverstepActivityStudentNum;
+    }
+
+    public void setAllowOverstepActivityStudentNum(Boolean allowOverstepActivityStudentNum) {
+        this.allowOverstepActivityStudentNum = allowOverstepActivityStudentNum;
+    }
+
     public BigDecimal getSingleClassPrice() {
         return singleClassPrice;
     }

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

@@ -25,6 +25,7 @@ import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupSalaryQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
@@ -37,7 +38,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @param vipGroup: VIP课申请信息
      * @return void
      */
-    String createVipGroup(VipGroupApplyDto vipGroup);
+    HttpResponseResult createVipGroup(VipGroupApplyDto vipGroup);
 
     /**
      * @describe 获取教务与教师共有分部

+ 11 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -14,7 +14,9 @@ import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.constant.CommonConstants;
+import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
@@ -33,15 +35,18 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
+import org.springframework.http.HttpStatus;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.MessageFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
@@ -163,7 +168,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 	@Override
-	public String createVipGroup(VipGroupApplyDto vipGroup) {
+	public HttpResponseResult createVipGroup(VipGroupApplyDto vipGroup) {
 
 		if (Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getUserId())){
 			throw new BizException("请选择指导老师");
@@ -242,7 +247,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		//获取活动信息
 		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId());
-		if(Objects.nonNull(vipGroupActivity)&&Objects.nonNull(vipGroupActivity.getStudentMaxUsedTimes())&&vipGroupActivity.getStudentMaxUsedTimes()!=-1&&StringUtils.isNotBlank(vipGroupApplyBaseInfoDto.getStudentIdList())){
+		if(!vipGroup.getAllowOverstepActivityStudentNum()&&Objects.nonNull(vipGroupActivity)&&Objects.nonNull(vipGroupActivity.getStudentMaxUsedTimes())&&vipGroupActivity.getStudentMaxUsedTimes()!=-1&&StringUtils.isNotBlank(vipGroupApplyBaseInfoDto.getStudentIdList())){
 			List<String> tempStudentIds = Arrays.asList(vipGroupApplyBaseInfoDto.getStudentIdList().split(","));
 			List<Integer> errStudentIds = new ArrayList<>();
 			for (String studentIdStr : tempStudentIds) {
@@ -253,7 +258,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 			if(errStudentIds.size()>0){
 				List<SimpleUserDto> students = teacherDao.getUsersSimpleInfo(errStudentIds);
-				throw new BizException("学员{}已超过该活动购买次数限制", StringUtils.join(students.stream().map(SimpleUserDto::getNickName).collect(Collectors.toList()), "、"));
+				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+				String studentNames = StringUtils.join(students.stream().map(SimpleUserDto::getNickName).collect(Collectors.toList()), "、");
+				return BaseController.failed(HttpStatus.PARTIAL_CONTENT,"学员+"+studentNames+"+已超过该活动购买次数限制");
 			}
 		}
 		//判断课程安排是否超出范围
@@ -460,7 +467,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //		}else {
 		sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),teacher.getRealName());
 //		}
-		return vipGroupApplyBaseInfoDto.getAuditStatus().getCode();
+		return BaseController.succeed(vipGroupApplyBaseInfoDto.getAuditStatus().getCode());
 	}
 
 	@Override

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

@@ -1042,7 +1042,7 @@
         FROM vip_group vg
         LEFT JOIN class_group_student_mapper cgsm ON vg.id_=cgsm.music_group_id_ AND cgsm.group_type_='VIP'
         WHERE vg.vip_group_activity_id_=#{vipGroupActivityId}
-            AND ((vg.group_status_=1 AND FIND_IN_SET(#{studentId}, vg.student_id_list_)) OR cgsm.user_id_=#{studentId});
+            AND ((vg.group_status_ NOT IN (3, 7) AND FIND_IN_SET(#{studentId}, vg.student_id_list_)) OR cgsm.user_id_=#{studentId});
     </select>
 
     <select id="countStudentUseingActivityNum" resultType="int">

+ 6 - 5
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java

@@ -63,8 +63,7 @@ public class TeacherVipGroupController extends BaseController {
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(userId));
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(teacher.getTeacherOrganId().toString());
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(teacher.getTeacherOrganId());
-		vipGroupService.createVipGroup(vipGroupApplyDto);
-		return succeed();
+		return vipGroupService.createVipGroup(vipGroupApplyDto);
 	}
 
 	@ApiOperation("vip课申请-双11")
@@ -118,9 +117,11 @@ public class TeacherVipGroupController extends BaseController {
 			}
 		}
 
-		vipGroupService.createVipGroup(vipGroupApplyDto);
-		vipGroupService.addVipGroupStudents(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId(), studentIds, new HashMap<>());
-		return succeed();
+		HttpResponseResult result = vipGroupService.createVipGroup(vipGroupApplyDto);
+		if(result.getCode()==200){
+			vipGroupService.addVipGroupStudents(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId(), studentIds, new HashMap<>());
+		}
+		return result;
 	}
 
 	@ApiOperation("获取vip课课程和课酬总费用")

+ 4 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -14,6 +14,7 @@ import io.swagger.annotations.ApiOperation;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.math.BigDecimal;
+import java.text.NumberFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -2533,9 +2534,10 @@ public class ExportController extends BaseController {
         for (TeacherServeDto row : result.getRows()) {
             row.setDateRange(com.ym.mec.util.date.DateUtil.dateToString(row.getMonday(), "yyyy-MM-dd") + '~' + com.ym.mec.util.date.DateUtil.dateToString(row.getSunday(), "yyyy-MM-dd"));
             if(row.getActualExercisesNum()<=0){
-                row.setSubmitRate(zero);
+                row.setSubmitRate(zero.toString()+"%");
             }else{
-                row.setSubmitRate(new BigDecimal(row.getExercisesReplyNum()).divide(new BigDecimal(row.getActualExercisesNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(oneHundred));
+                BigDecimal submitRate = new BigDecimal(row.getExercisesReplyNum()).divide(new BigDecimal(row.getActualExercisesNum()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(oneHundred);
+                row.setSubmitRate(submitRate+"%");
             }
         }
 

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

@@ -158,7 +158,7 @@ public class VipGroupManageController extends BaseController {
                 vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(Integer.parseInt(employee.getOrganIdList()));
             }
         }
-        return succeed(vipGroupService.createVipGroup(vipGroupApplyDto));
+        return vipGroupService.createVipGroup(vipGroupApplyDto);
     }
 
     @ApiOperation(value = "获取教务与指导老师公共分部")