Browse Source

Merge branch '2021-07-19_children' of http://git.dayaedu.com/yonge/mec into online1

zouxuan 4 years ago
parent
commit
52283d1835

+ 71 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ActivityCourseDetailDto.java

@@ -0,0 +1,71 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+public class ActivityCourseDetailDto {
+    private Integer userId;
+
+    @ApiModelProperty(value = "vip1", required = false)
+    private Integer vip1 = 0;
+
+    @ApiModelProperty(value = "vip1", required = false)
+    private Integer vip2 = 0;
+
+    @ApiModelProperty(value = "赠送vip", required = false)
+    private Integer free_vip = 0;
+
+    @ApiModelProperty(value = "乐理课", required = false)
+    private Integer music_theory = 0;
+
+    private BigDecimal music_theory_price;
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getVip1() {
+        return vip1;
+    }
+
+    public void setVip1(Integer vip1) {
+        this.vip1 = vip1;
+    }
+
+    public Integer getVip2() {
+        return vip2;
+    }
+
+    public void setVip2(Integer vip2) {
+        this.vip2 = vip2;
+    }
+
+    public Integer getFree_vip() {
+        return free_vip;
+    }
+
+    public void setFree_vip(Integer free_vip) {
+        this.free_vip = free_vip;
+    }
+
+    public Integer getMusic_theory() {
+        return music_theory;
+    }
+
+    public void setMusic_theory(Integer music_theory) {
+        this.music_theory = music_theory;
+    }
+
+    public BigDecimal getMusic_theory_price() {
+        return music_theory_price;
+    }
+
+    public void setMusic_theory_price(BigDecimal music_theory_price) {
+        this.music_theory_price = music_theory_price;
+    }
+}

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

@@ -106,6 +106,8 @@ public class StudentManageListDto {
     
     private Date membershipEndTime;
 
+    private String activityCourseDetail;
+
     public Integer getMemberRankSettingId() {
         return memberRankSettingId;
     }
@@ -136,6 +138,14 @@ public class StudentManageListDto {
     @ApiModelProperty(value = "剩余网管课数")
     private Integer noStartPracticeCourseNum = 0;
 
+    public String getActivityCourseDetail() {
+        return activityCourseDetail;
+    }
+
+    public void setActivityCourseDetail(String activityCourseDetail) {
+        this.activityCourseDetail = activityCourseDetail;
+    }
+
     public String getContractVersions() {
         return contractVersions;
     }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java

@@ -210,4 +210,10 @@ public interface StudentManageService {
     PageInfo<StudentErrorLeaveDto> queryStudentErrorLeaveList(StudentErrorLeaveQueryInfo queryInfo);
 
     PageInfo<StudentLeaveCourseDto> queryStudentLeaveCourseList(StudentErrorLeaveQueryInfo queryInfo);
+
+    /**
+     * 修改学员排课资格
+     * @param activityCourseDetailDto
+     */
+    void updateChildrenDayStudent(ActivityCourseDetailDto activityCourseDetailDto);
 }

+ 82 - 41
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -1,22 +1,29 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.time.DayOfWeek;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.stream.Collectors;
-
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+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.dto.*;
 import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.*;
-import com.ym.mec.biz.service.*;
-
-import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.biz.service.CloudTeacherOrderService;
+import com.ym.mec.biz.service.StudentManageService;
+import com.ym.mec.biz.service.StudentService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.entity.ImResult;
+import com.ym.mec.common.entity.ImUserModel;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.WebFeignService;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,36 +31,12 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
-import com.ym.mec.biz.dal.dao.MusicGroupQuitDao;
-import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
-import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
-import com.ym.mec.biz.dal.dao.StudentManageDao;
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SubjectChangeDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
-import com.ym.mec.biz.dal.entity.MusicGroupQuit;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.entity.SubjectChange;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
-import com.ym.mec.biz.dal.entity.Teacher;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.entity.ImResult;
-import com.ym.mec.common.entity.ImUserModel;
-import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.im.ImFeignService;
-import com.ym.mec.util.collection.MapUtil;
+import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Author Joburgess
@@ -118,6 +101,8 @@ public class StudentManageServiceImpl implements StudentManageService {
     private CloudTeacherOrderService cloudTeacherOrderService;
     @Autowired
     private EmployeeDao employeeDao;
+    @Autowired
+    private OrganizationDegreeCourseFeeDao organizationDegreeCourseFeeDao;
 
     @Override
     public PageInfo<StudentManageListDto> findStudentsByOrganId(StudentManageQueryInfo queryInfo) {
@@ -911,4 +896,60 @@ public class StudentManageServiceImpl implements StudentManageService {
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateChildrenDayStudent(ActivityCourseDetailDto activityCourseDetailDto) {
+        Student student = studentDao.getLocked(activityCourseDetailDto.getUserId());
+        if(student == null){
+            throw new BizException("学员信息不存在");
+        }
+        if(!activityCourseDetailDto.getVip1().equals(0) && !activityCourseDetailDto.getVip1().equals(1)){
+            throw new BizException("修改失败:排课次数异常");
+        }
+        if(!activityCourseDetailDto.getVip2().equals(0) && !activityCourseDetailDto.getVip2().equals(1)){
+            throw new BizException("修改失败:排课次数异常");
+        }
+        if(!activityCourseDetailDto.getFree_vip().equals(0) && !activityCourseDetailDto.getFree_vip().equals(1)){
+            throw new BizException("修改失败:排课次数异常");
+        }
+        if(!activityCourseDetailDto.getMusic_theory().equals(0) && !activityCourseDetailDto.getMusic_theory().equals(1)){
+            throw new BizException("修改失败:排课次数异常");
+        }
+        if(activityCourseDetailDto.getMusic_theory().equals(1)){
+            String activityCourseDetail = student.getActivityCourseDetail();
+            if(StringUtils.isNotEmpty(activityCourseDetail)){
+                ActivityCourseDetailDto detailDto = JSON.parseObject(activityCourseDetail, ActivityCourseDetailDto.class);
+                if(detailDto.getMusic_theory() == null || detailDto.getMusic_theory().equals(0)){
+                    SysUser sysUser = sysUserFeignService.queryUserById(student.getUserId());
+                    if(sysUser == null){
+                        throw new BizException("请登录");
+                    }
+                    OrganizationDegreeCourseFee degreeCourseFee = organizationDegreeCourseFeeDao.getByOrganId(sysUser.getOrganId());
+                    if(degreeCourseFee == null){
+                        throw new BizException("学员所在分部未配置考级价格");
+                    }
+                    activityCourseDetailDto.setMusic_theory_price(degreeCourseFee.getTheory());
+                }else {
+                    activityCourseDetailDto.setMusic_theory_price(detailDto.getMusic_theory_price());
+                }
+            }else {
+                SysUser sysUser = sysUserFeignService.queryUserById(student.getUserId());
+                if(sysUser == null){
+                    throw new BizException("请登录");
+                }
+                OrganizationDegreeCourseFee degreeCourseFee = organizationDegreeCourseFeeDao.getByOrganId(sysUser.getOrganId());
+                if(degreeCourseFee == null){
+                    throw new BizException("学员所在分部未配置考级价格");
+                }
+                activityCourseDetailDto.setMusic_theory_price(degreeCourseFee.getTheory());
+            }
+        }else {
+            activityCourseDetailDto.setMusic_theory_price(BigDecimal.ZERO);
+        }
+        activityCourseDetailDto.setUserId(null);
+        student.setActivityCourseDetail(JSON.toJSONString(activityCourseDetailDto));
+        studentDao.update(student);
+    }
 }

+ 4 - 2
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -73,6 +73,7 @@
         <result column="cooperation_organ_id_" property="cooperationOrganId"/>
         <result column="cooperation_organ_name_" property="cooperationOrganName"/>
         <result column="membership_end_time_" property="membershipEndTime"/>
+        <result column="activity_course_detail_" property="activityCourseDetail"/>
     </resultMap>
 
     <sql id="queryCondition">
@@ -164,8 +165,9 @@
 		tu.`real_name_` teacher_name_,CASE s.service_tag_ WHEN 2 THEN 0 ELSE s.service_tag_ END service_tag_ ,s.`operating_tag_` ,
         s.care_package_, s.come_on_package_, suca.`course_balance_` ,suca.balance_,
 		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,s.current_grade_num_,s.current_class_,s.member_rank_setting_id_,
-        CASE WHEN su.password_ IS NULL THEN FALSE ELSE TRUE END isActive_,s.is_new_user_,s.membership_end_time_,CASE WHEN sut.user_id_ IS NULL THEN 0 ELSE 1 END is_signed_contract_,
-        s.cooperation_organ_id_,co.name_ cooperation_organ_name_
+        CASE WHEN su.password_ IS NULL THEN FALSE ELSE TRUE END isActive_,s.is_new_user_,
+        s.membership_end_time_,CASE WHEN sut.user_id_ IS NULL THEN 0 ELSE 1 END is_signed_contract_,
+        s.cooperation_organ_id_,co.name_ cooperation_organ_name_,s.activity_course_detail_
 		FROM `student` s LEFT JOIN `sys_user` su ON s.`user_id_` = su.`id_`
 		LEFT JOIN `organization` o ON o.`id_` = su.`organ_id_`
 		LEFT JOIN `sys_user` tu ON tu.`id_` = s.`teacher_id_`

+ 21 - 3
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -26,6 +26,9 @@
         <result column="membership_start_time_" property="membershipStartTime"/>
         <result column="membership_end_time_" property="membershipEndTime"/>
         <result column="activity_course_detail_" property="activityCourseDetail"/>
+        <result column="organ_name_" property="organName"/>
+        <result column="phone_" property="phone"/>
+        <result column="username_" property="username"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -144,15 +147,30 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="Student" parameterType="map">
-        SELECT * FROM student
+        SELECT s.*,su.username_,su.phone_,o.name_ organ_name_ FROM student s
+        LEFT JOIN sys_user su ON  su.id_ = s.user_id_
+        LEFT JOIN organization o ON  o.id_ = su.organ_id_
+        <include refid="queryPageSql"/>
+        ORDER BY s.activity_course_detail_ DESC
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-        SELECT COUNT(*)
-        FROM student
+        SELECT COUNT(s.user_id_) FROM student s
+        LEFT JOIN sys_user su ON  su.id_ = s.user_id_
+        <include refid="queryPageSql"/>
     </select>
+    <sql id="queryPageSql">
+        <where>
+            <if test="organId != null and organId != ''">
+                AND FIND_IN_SET(su.organ_id_,#{organId})
+            </if>
+            <if test="search != null and search != ''">
+                AND (s.user_id_ = #{search} OR su.username_ LIKE CONCAT('%', #{search}, '%') OR su.phone_ LIKE CONCAT('%', #{search}, '%'))
+            </if>
+        </where>
+    </sql>
     <select id="findStudents" resultMap="com.ym.mec.biz.dal.dao.TeacherDao.SysUser">
         SELECT id_, username_, phone_,avatar_ FROM sys_user
         <include refid="studentQueryCondition"/>

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

@@ -109,7 +109,7 @@
 		LEFT JOIN sys_user su ON ses.create_user_id_ = su.id_
 		LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,ses.subject_ids_)
 		<include refid="queryPageSql"/>
-		GROUP BY ses.id_ ORDER BY ses.id_ DESC
+		GROUP BY ses.id_ ORDER BY ses.name_,ses.id_ DESC
 		<include refid="global.limit"/>
 	</select>
 	

+ 51 - 26
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -1,17 +1,19 @@
 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.dto.ActivityCourseDetailDto;
+import com.ym.mec.biz.dal.dto.UpdateStudentFeeDto;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.page.*;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
+import com.ym.mec.biz.service.*;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -22,21 +24,10 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-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.dto.UpdateStudentFeeDto;
-import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.service.MusicGroupStudentFeeService;
-import com.ym.mec.biz.service.StudentCourseHomeworkService;
-import com.ym.mec.biz.service.StudentManageService;
-import com.ym.mec.biz.service.StudentRegistrationService;
-import com.ym.mec.biz.service.StudentService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.exception.BizException;
-import com.ym.mec.common.page.QueryInfo;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 
 @Api(tags = "学生管理")
 @RestController
@@ -112,6 +103,40 @@ public class StudentManageController extends BaseController {
         return succeed(studentManageService.findStudentsByOrganId(queryInfo));
     }
 
+    @ApiOperation(value = "获取61活动学生列表")
+    @GetMapping("/queryChildrenDayStudentList")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/queryChildrenDayStudentList')")
+    public Object queryChildrenDayStudentList(StudentManageQueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+            queryInfo.setOrganId(employee.getOrganIdList());
+        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+            return failed("用户所在分部异常");
+        }else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                return failed("非法请求");
+            }
+        }
+        return succeed(studentService.queryPage(queryInfo));
+    }
+
+    @ApiOperation(value = "修改学员排课资格")
+    @PostMapping("/updateChildrenDayStudent")
+    @PreAuthorize("@pcs.hasPermissions('studentManage/updateChildrenDayStudent')")
+    public Object updateChildrenDayStudent(ActivityCourseDetailDto activityCourseDetailDto){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        studentManageService.updateChildrenDayStudent(activityCourseDetailDto);
+        return succeed();
+    }
+
     @ApiOperation(value = "获取指定分部学生列表")
     @GetMapping("/queryOrganStudentList")
     @PreAuthorize("@pcs.hasPermissions('studentManage/queryOrganStudentList')")