Browse Source

feat:vip活动增加适用学生类型

Joburgess 4 years ago
parent
commit
864885ce47

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

@@ -15,7 +15,9 @@ public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity>
 	 * @Date: 2019/10/2
 	 * 根据课程类型获取vip课 活动方案
 	 */
-	List<VipGroupActivity> findByCategory(@Param("categoryId") Long categoryId, @Param("organIds") String organIds);
+	List<VipGroupActivity> findByCategory(@Param("categoryId") Long categoryId,
+										  @Param("organIds") String organIds,
+										  @Param("applyToStudentType") Integer applyToStudentType);
 
 	/**
 	 * 根据活动方案编号列表获取名称

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

@@ -29,7 +29,7 @@ public interface VipGroupActivityService extends BaseService<Integer, VipGroupAc
      * @Date: 2019/10/2
      * 根据课程类型获取VIP课相关活动方案
      */
-    List<VipGroupActivity> findByVipGroupCategory(Long categoryId, String organIds, Integer teacherId);
+    List<VipGroupActivity> findByVipGroupCategory(Long categoryId, String organIds, Integer teacherId, Integer applyToStudentType);
 
     /**
      * 导出vip活动

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

@@ -146,7 +146,7 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 	}
 
 	@Override
-	public List<VipGroupActivity> findByVipGroupCategory(Long categoryId, String organIds, Integer teacherId) {
+	public List<VipGroupActivity> findByVipGroupCategory(Long categoryId, String organIds, Integer teacherId, Integer applyToStudentType) {
 		if(Objects.isNull(categoryId)){
 			throw new BizException("请选择课程形态!");
 		}
@@ -163,7 +163,7 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 				organIds += "," + teacher.getFlowOrganRange();
 			}
 		}
-		return vipGroupActivityDao.findByCategory(categoryId,organIds);
+		return vipGroupActivityDao.findByCategory(categoryId,organIds, applyToStudentType);
 	}
 
 	@Override

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

@@ -197,6 +197,9 @@
 			AND (end_time_ IS NULL OR NOW() BETWEEN start_time_ AND end_time_)
 			AND del_flag_=0
 			AND INTE_ARRAY(organ_id_,#{organIds})
+			<if test="applyToStudentType!=null">
+				AND apply_to_student_type_=#{applyToStudentType}
+			</if>
 	</select>
     <select id="queryNamesById" resultType="java.util.Map">
 		SELECT vga.id_ `key`,vga.name_ `value` FROM vip_group_activity vga WHERE FIND_IN_SET(vga.id_,#{activityIds}) AND vga.del_flag_=0

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

@@ -5,6 +5,7 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.VipGroupActivityAddDto;
+import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.dal.entity.VipGroupActivity;
 import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
@@ -15,6 +16,7 @@ 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.*;
 
 import java.util.*;
@@ -38,6 +40,8 @@ public class VipGroupActivityController extends BaseController {
     private SysConfigService sysConfigService;
     @Autowired
     private TeacherDao teacherDao;
+    @Autowired
+    private StudentDao studentDao;
 
     @ApiOperation(value = "新增vip课活动方案")
     @PostMapping("/addVipGroupActivity")
@@ -65,20 +69,34 @@ public class VipGroupActivityController extends BaseController {
 
     @ApiOperation(value = "根据课程类型获取对应课程活动方案")
     @GetMapping("/findByVipGroupCategory")
-    public Object findByVipGroupCategory(Long categoryId, Integer firstStudentId, boolean onlySpecialActivity){
+    public Object findByVipGroupCategory(Long categoryId, String studentIds, boolean onlySpecialActivity){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(sysUser == null){
             return failed("用户信息获取失败");
         }
-        String organIds = new String();
-        if(Objects.nonNull(firstStudentId)){
-            SysUser student = teacherDao.getUser(firstStudentId);
-            if(Objects.isNull(student)){
-                return failed("学员信息不存在");
-            }
-            organIds = student.getOrganId().toString();
+
+        if(StringUtils.isBlank(studentIds)){
+            return failed("请选择学员");
         }
-        List<VipGroupActivity> vipGroupActivities = vipGroupActivityService.findByVipGroupCategory(categoryId, organIds, sysUser.getId());
+        List<Integer> userIds = Arrays.stream(studentIds.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
+        List<Student> students = studentDao.findByStudentIds(userIds);
+        if(CollectionUtils.isEmpty(students)||students.size()!=userIds.size()){
+            return failed("学员信息不存在");
+        }
+        long newStudentNum = students.stream().filter(s -> s.getIsNewUser()).count();
+
+        Integer applyToStudentType = null;
+        if(newStudentNum!=userIds.size()){
+            applyToStudentType = -1;
+        }
+
+        SysUser student = teacherDao.getUser(userIds.get(0));
+        if(Objects.isNull(student)){
+            return failed("学员信息不存在");
+        }
+        String organIds = student.getOrganId().toString();
+
+        List<VipGroupActivity> vipGroupActivities = vipGroupActivityService.findByVipGroupCategory(categoryId, organIds, sysUser.getId(),applyToStudentType);
         SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.VIP_SPECIAL_ACTIVITY_IDS);
         if(onlySpecialActivity){
             if(Objects.isNull(sysConfig)|| StringUtils.isBlank(sysConfig.getParanValue())){

+ 27 - 9
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupActivityController.java

@@ -3,9 +3,11 @@ package com.ym.mec.web.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.VipGroupActivityAddDto;
 import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
 import com.ym.mec.biz.service.VipGroupActivityService;
 import com.ym.mec.common.controller.BaseController;
@@ -17,11 +19,13 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * @Author Joburgess
@@ -41,6 +45,8 @@ public class VipGroupActivityController extends BaseController {
 	private EmployeeDao employeeDao;
 	@Autowired
     private TeacherDao teacherDao;
+	@Autowired
+    private StudentDao studentDao;
 
     @ApiOperation(value = "新增vip课活动方案")
     @PostMapping("/addVipGroupActivity")
@@ -98,16 +104,28 @@ public class VipGroupActivityController extends BaseController {
     @ApiOperation(value = "根据课程类型获取对应课程活动方案")
     @GetMapping("/findByVipGroupCategory")
     @PreAuthorize("@pcs.hasPermissions('vipGroupActivity/findByVipGroupCategory')")
-    public Object findByVipGroupCategory(Long categoryId, Integer firstStudentId, Integer teacherId){
-        String organIds = new String();
-        if(Objects.nonNull(firstStudentId)){
-            SysUser student = teacherDao.getUser(firstStudentId);
-            if(Objects.isNull(student)){
-                return failed("学员信息不存在");
-            }
-            organIds = student.getOrganId().toString();
+    public Object findByVipGroupCategory(Long categoryId, String studentIds, Integer teacherId){
+        if(StringUtils.isBlank(studentIds)){
+            return failed("请选择学员");
+        }
+        List<Integer> userIds = Arrays.stream(studentIds.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
+        List<Student> students = studentDao.findByStudentIds(userIds);
+        if(CollectionUtils.isEmpty(students)||students.size()!=userIds.size()){
+            return failed("学员信息不存在");
+        }
+        long newStudentNum = students.stream().filter(s -> s.getIsNewUser()).count();
+
+        Integer applyToStudentType = null;
+        if(newStudentNum!=userIds.size()){
+            applyToStudentType = -1;
+        }
+
+        SysUser student = teacherDao.getUser(userIds.get(0));
+        if(Objects.isNull(student)){
+            return failed("学员信息不存在");
         }
-        return succeed(vipGroupActivityService.findByVipGroupCategory(categoryId, organIds, teacherId));
+        String organIds = student.getOrganId().toString();
+        return succeed(vipGroupActivityService.findByVipGroupCategory(categoryId, organIds, teacherId, applyToStudentType));
     }
 
 }