浏览代码

管理端活动排课

zouxuan 3 年之前
父节点
当前提交
103f69d5bc

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

@@ -45,7 +45,7 @@ public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity>
 	* @author zx
 	* @date 2021/10/11 11:17
 	*/
-    List<WaitCourseActivityDto> queryWaitCourseActivity(Integer teacherId);
+    List<WaitCourseActivityDto> queryWaitCourseActivity(@Param("teacherId") Integer teacherId, @Param("organId") String organId);
 
     /**
     * @description: 获取活动待排课学员数量

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

@@ -44,7 +44,7 @@ public interface VipGroupActivityService extends BaseService<Integer, VipGroupAc
     * @author zx
     * @date 2021/10/11 11:12
     */
-    List<WaitCourseActivityDto> queryWaitCourseActivity(Integer teacherId);
+    List<WaitCourseActivityDto> queryWaitCourseActivity(Integer teacherId,String organId);
 
 
     /**

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

@@ -165,8 +165,8 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 	}
 
     @Override
-    public List<WaitCourseActivityDto> queryWaitCourseActivity(Integer teacherId) {
-		return vipGroupActivityDao.queryWaitCourseActivity(teacherId);
+    public List<WaitCourseActivityDto> queryWaitCourseActivity(Integer teacherId,String organId) {
+		return vipGroupActivityDao.queryWaitCourseActivity(teacherId,organId);
     }
 
     @Override

+ 16 - 3
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -279,7 +279,14 @@
 	<select id="queryWaitCourseActivity" resultMap="WaitCourseActivityDto">
 		SELECT aum.id_,aum.activity_id_,vga.name_ activity_name_,COUNT(DISTINCT aum.user_id_) student_num_ FROM activity_user_mapper aum
 		LEFT JOIN vip_group_activity vga ON aum.activity_id_ = vga.id_
-		WHERE aum.teacher_id_ = #{teacherId} AND (aum.vip_flag_ = 1 OR aum.practice_flag_ = 1 OR aum.give_vip_flag_ = 1 OR aum.give_practice_flag_ = 1)
+		WHERE 1=1
+		<if test="teacherId != null">
+			AND aum.teacher_id_ = #{teacherId}
+		</if>
+		<if test="organId != null and organId != ''">
+			AND INTE_ARRAY(#{organId},vga.organ_id_)
+		</if>
+		AND (aum.vip_flag_ = 1 OR aum.practice_flag_ = 1 OR aum.give_vip_flag_ = 1 OR aum.give_practice_flag_ = 1)
 		GROUP BY aum.activity_id_
 	</select>
 	<resultMap id="ActivityWaitCourseStudentNumDto" type="com.ym.mec.biz.dal.dto.ActivityWaitCourseStudentNumDto">
@@ -302,7 +309,10 @@
 			  FROM activity_user_mapper
 			  WHERE activity_id_ = #{activityId}
 			  GROUP BY user_id_) aum
-		WHERE aum.activity_id_ = #{activityId} AND aum.teacher_id_ = #{userId}
+		WHERE aum.activity_id_ = #{activityId}
+		<if test="userId != null">
+			AND aum.teacher_id_ = #{userId}
+		</if>
 		GROUP BY aum.activity_id_
 	</select>
 	<select id="getActivityStudentCanCourseNum" resultMap="ActivityWaitCourseStudentNumDto">
@@ -313,7 +323,10 @@
 				su.username_,su.avatar_,aum.user_id_,su.phone_
 		FROM activity_user_mapper aum
 		LEFT JOIN sys_user su ON su.id_ = aum.user_id_
-		WHERE aum.activity_id_ = #{activityId} AND aum.teacher_id_ = #{userId}
+		WHERE aum.activity_id_ = #{activityId}
+		<if test="userId != null">
+			AND aum.teacher_id_ = #{userId}
+		</if>
 		GROUP BY aum.user_id_
 	</select>
 </mapper>

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupActivityController.java

@@ -51,7 +51,7 @@ public class VipGroupActivityController extends BaseController {
         if(sysUser == null){
             return failed("用户信息获取失败");
         }
-        return succeed(vipGroupActivityService.queryWaitCourseActivity(sysUser.getId()));
+        return succeed(vipGroupActivityService.queryWaitCourseActivity(sysUser.getId(),null));
     }
 
     @ApiOperation(value = "获取活动待排课学员数量")

+ 103 - 12
mec-web/src/main/java/com/ym/mec/web/controller/education/ActivityController.java

@@ -1,26 +1,22 @@
 package com.ym.mec.web.controller.education;
 
 
-import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dto.LuckStatisDto;
-import com.ym.mec.biz.dal.dto.OrderStatisDto;
-import com.ym.mec.biz.dal.dto.OrganMaxAmountDto;
-import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
-import com.ym.mec.biz.service.OrganizationService;
-import com.ym.mec.biz.service.StudentService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -41,6 +37,101 @@ public class ActivityController extends BaseController {
     private OrganizationService organizationService;
     @Autowired
     private StudentService studentService;
+    @Autowired
+    private VipGroupActivityService vipGroupActivityService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Autowired
+    private TeacherDao teacherDao;
+    @Autowired
+    private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
+    @Autowired
+    private VipGroupService vipGroupService;
+    @Autowired
+    private PracticeGroupService practiceGroupService;
+
+    @ApiOperation(value = "获取待排课的活动方案列表")
+    @RequestMapping("/queryWaitCourseActivity")
+    public Object queryWaitCourseActivity(){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        return succeed(vipGroupActivityService.queryWaitCourseActivity(null,employee.getOrganIdList()));
+    }
+
+    @ApiOperation(value = "获取活动待排课学员数量")
+    @RequestMapping("/getActivityWaitCourseStudentNum")
+    public Object getActivityWaitCourseStudentNum(Integer activityId){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("用户信息获取失败");
+        }
+        return succeed(vipGroupActivityService.getActivityWaitCourseStudentNum(sysUser.getId(),activityId));
+    }
+
+
+    @ApiOperation(value = "管理端活动排课")
+    @PostMapping("/createVipGroup")
+    public Object createVipGroup(@RequestBody VipGroupApplyDto vipGroupApplyDto){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        VipGroupApplyBaseInfoDto applyBaseInfo = vipGroupApplyDto.getVipGroupApplyBaseInfo();
+        Integer userId = sysUser.getId();
+        applyBaseInfo.setUserId(userId);
+        Teacher teacher = teacherDao.get(userId);
+        if(Objects.isNull(teacher)){
+            return failed("请指定指导老师!");
+        }
+        Integer firstStudentId = applyBaseInfo.getFirstStudentId();
+        SysUser student = teacherDao.getUser(firstStudentId);
+        if(Objects.isNull(student)||Objects.isNull(student.getOrganId())){
+            return failed("学员信息异常");
+        }
+        applyBaseInfo.setOrganId(student.getOrganId());
+        for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
+            courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), applyBaseInfo.getSingleClassMinutes()));
+        }
+        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(applyBaseInfo.getVipGroupCategoryId(), applyBaseInfo.getOrganId());
+        if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
+            applyBaseInfo.setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
+            applyBaseInfo.setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());
+        }
+
+        applyBaseInfo.setEducationalTeacherId(sysUser.getId());
+        return vipGroupService.createActivityVipGroup1(vipGroupApplyDto);
+    }
+
+    @ApiOperation(value = "管理端网管课活动排课")
+    @PostMapping("/createPracticeGroup")
+    public Object createPracticeGroup(@RequestBody PracticeGroupApplyDto practiceGroupApplyDto){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        PracticeGroupApplyBaseInfoDto applyBaseInfo = practiceGroupApplyDto.getPracticeGroupApplyBaseInfoDto();
+        Integer userId = sysUser.getId();
+        applyBaseInfo.setUserId(userId);
+        Teacher teacher = teacherDao.get(userId);
+        if(Objects.isNull(teacher)){
+            return failed("请指定指导老师!");
+        }
+        SysUser student = teacherDao.getUser(applyBaseInfo.getStudentId());
+        if(Objects.isNull(student)||Objects.isNull(student.getOrganId())){
+            return failed("学员信息异常");
+        }
+        applyBaseInfo.setOrganId(student.getOrganId());
+        for (CourseSchedule courseSchedule : practiceGroupApplyDto.getCourseSchedules()) {
+            courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), applyBaseInfo.getSingleClassMinutes()));
+        }
+        applyBaseInfo.setEducationalTeacherId(sysUser.getId());
+        return practiceGroupService.createActivityPracticeGroup(practiceGroupApplyDto);
+    }
 
     @ApiOperation(value = "分部双11活动统计")
     @GetMapping("/doubleEleven2020Statis")