Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 5 years ago
parent
commit
c706c68cb6

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -559,4 +559,22 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      */
     List<SuperClassGroupDto> superFindClassGroups(Map<String, Object> params);
     int superCountClassGroups(Map<String, Object> params);
+
+    /**
+     * @describe 根据关键字查询学生相关的班级编号
+     * @author Joburgess
+     * @date 2019/12/31
+     * @param search:
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findClassGroupIdsByStudent(@Param("search") String search);
+
+    /**
+     * @describe 根据关键字查询教师相关的班级编号
+     * @author Joburgess
+     * @date 2019/12/31
+     * @param search:
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findClassGroupIdsByTeacher(@Param("search") String search);
 }

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -936,4 +936,22 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     List<CourseScheduleEndDto> endFindCourseSchedules(Map<String, Object> params);
     int endCountCourseSchedules(Map<String, Object> params);
+
+    /**
+     * @describe 根据关键字查询学生相关的课程编号
+     * @author Joburgess
+     * @date 2019/12/31
+     * @param search: 搜索关键字
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findCourseIdsByStudent(String search);
+
+    /**
+     * @describe 根据关键字查询教师相关的课程编号
+     * @author Joburgess
+     * @date 2019/12/31
+     * @param search: 搜索关键字
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findCourseIdsByTeacher(String search);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPaymentOrderExportDto.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
 
@@ -35,6 +36,8 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
 
     private List<StudentPaymentOrderDetail> orderDetailList;
 
+    private List<Goods> goodsList;
+
     public BigDecimal getSporadicAmount() {
         return sporadicAmount;
     }
@@ -130,4 +133,12 @@ public class StudentPaymentOrderExportDto extends StudentPaymentOrder {
     public void setCourseFee(BigDecimal courseFee) {
         this.courseFee = courseFee;
     }
+
+    public List<Goods> getGoodsList() {
+        return goodsList;
+    }
+
+    public void setGoodsList(List<Goods> goodsList) {
+        this.goodsList = goodsList;
+    }
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrderDetail.java

@@ -37,7 +37,7 @@ public class StudentPaymentOrderDetail {
 	/** 订单编号(对应student_payment_order) */
 	@ApiModelProperty(value = "订单编号",required = true)
 	private Long paymentOrderId;
-	
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java

@@ -19,6 +19,28 @@ public class EndCourseScheduleQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "班级编号")
     private Integer classGroupId;
 
+    @ApiModelProperty(value = "学生编号")
+    private Integer studentId;
+
+    @ApiModelProperty(value = "教师编号")
+    private Integer teacherId;
+
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
     public GroupType getGroupType() {
         return groupType;
     }

+ 12 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -2212,6 +2212,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             if(!CollectionUtils.isEmpty(groups)){
                 params.put("groups", groups);
             }
+            List<Integer> studentClassGroupIds=classGroupDao.findClassGroupIdsByStudent(queryInfo.getSearch());
+            List<Integer> teacherClassGroupIds=classGroupDao.findClassGroupIdsByTeacher(queryInfo.getSearch());
+            studentClassGroupIds.addAll(teacherClassGroupIds);
+            if(!CollectionUtils.isEmpty(studentClassGroupIds)){
+                params.put("classGroupIds", studentClassGroupIds);
+            }
         }
 
         List<SuperClassGroupDto> results = new ArrayList<>();
@@ -2229,10 +2235,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             groups = groupDao.findByGroupIds(groups);
             Map<String, Map<GroupType, List<Group>>> groupsGroupByGroup = groups.stream().collect(Collectors.groupingBy(Group::getId, Collectors.groupingBy(Group::getGroupType)));
             results.forEach(result -> {
-                List<Group> groupTemps = groupsGroupByGroup.get(result.getMusicGroupId())
-                        .get(result.getGroupType());
-                if(!CollectionUtils.isEmpty(groupTemps)){
-                    result.setGroupName(groupTemps.get(0).getGroupName());
+                Map<GroupType, List<Group>> groupsTypeMap = groupsGroupByGroup.get(result.getMusicGroupId());
+                if(Objects.nonNull(groupsTypeMap)){
+                    List<Group> groupTemps = groupsTypeMap.get(result.getGroupType());
+                    if(!CollectionUtils.isEmpty(groupTemps)){
+                        result.setGroupName(groupTemps.get(0).getGroupName());
+                    }
                 }
             });
         }

+ 13 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -2085,7 +2085,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Override
     public PageInfo endFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo) {
         PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-        Map<String, Object> params = new HashMap<>();
+        Map<String, Object> params = new HashMap<>(16);
         MapUtil.populateMap(params, queryInfo);
 
         if(StringUtils.isNotBlank(queryInfo.getSearch())){
@@ -2093,6 +2093,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             if(!CollectionUtils.isEmpty(groups)){
                 params.put("groups", groups);
             }
+            List<Integer> studentCourseIds=courseScheduleDao.findCourseIdsByStudent(queryInfo.getSearch());
+            List<Integer> teacherCourseIds=courseScheduleDao.findCourseIdsByTeacher(queryInfo.getSearch());
+            studentCourseIds.addAll(teacherCourseIds);
+            if(!CollectionUtils.isEmpty(studentCourseIds)){
+                params.put("courseIds", studentCourseIds);
+            }
         }
 
         List<CourseScheduleEndDto> results = new ArrayList<>();
@@ -2110,10 +2116,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             groups = groupDao.findByGroupIds(groups);
             Map<String, Map<GroupType, List<Group>>> groupsGroupByGroup = groups.stream().collect(Collectors.groupingBy(Group::getId, Collectors.groupingBy(Group::getGroupType)));
             results.forEach(result -> {
-                List<Group> groupTemps = groupsGroupByGroup.get(result.getMusicGroupId())
-                        .get(result.getGroupType());
-                if(!CollectionUtils.isEmpty(groupTemps)){
-                    result.setGroupName(groupTemps.get(0).getGroupName());
+                Map<GroupType, List<Group>> groupsTypeMap = groupsGroupByGroup.get(result.getMusicGroupId());
+                if(Objects.nonNull(groupsTypeMap)){
+                    List<Group> groupTemps = groupsTypeMap.get(result.getGroupType());
+                    if(!CollectionUtils.isEmpty(groupTemps)){
+                        result.setGroupName(groupTemps.get(0).getGroupName());
+                    }
                 }
             });
         }

+ 7 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1981,8 +1981,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			oldVipGroupInfo.setOfflineClassesUnitPrice(vipGroupApplyBaseInfo.getOfflineClassesUnitPrice());
 			isChange=true;
 		}
-		if(Objects.nonNull(vipGroupApplyBaseInfo.getTeacherSchoolId())
-			&&!vipGroupApplyBaseInfo.getTeacherSchoolId().equals(oldVipGroupInfo.getTeacherSchoolId())){
+		if(Objects.nonNull(vipGroupApplyBaseInfo.getTeacherSchoolId())){
 			oldVipGroupInfo.setTeacherSchoolId(vipGroupApplyBaseInfo.getTeacherSchoolId());
 			courseScheduleDao.updateCourseSchoolByGroup(oldVipGroupInfo.getId().toString(), GroupType.VIP.getCode(), oldVipGroupInfo.getTeacherSchoolId());
 			isChange=true;
@@ -2276,7 +2275,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 		}
 
-		BigDecimal avgCourseFee = surplusCoursesPrice.divide(surplusCourseNum,CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP);
+		if(Objects.nonNull(vipGroupActivity)){
+            if(vipGroupActivity.getType().equals(VipGroupActivityTypeEnum.DISCOUNT)){
+                VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(), VipGroupSalarySettlementDto.class);
+                surplusCoursesPrice=surplusCoursesPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP);
+            }
+        }
 
 		//生成学生单课缴费信息
 		for (Integer studentId:studentIds) {

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -934,6 +934,12 @@
                         #{group.id}
                     </foreach>
                 </if>
+                <if test="classGroupIds != null">
+                    OR cg.id_ IN
+                    <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+                        #{classGroupId}
+                    </foreach>
+                </if>
                 )
             </if>
             <if test="groupType != null">
@@ -963,5 +969,22 @@
             class_group cg
             <include refid="superFindClassGroupsCondition"/>
     </select>
+    <select id="findClassGroupIdsByStudent" resultType="int">
+        SELECT
+            cgsm.class_group_id_
+        FROM
+            class_group_student_mapper cgsm
+            LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
+        WHERE su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
+    </select>
+    <select id="findClassGroupIdsByTeacher" resultType="int">
+        SELECT
+            cgtm.class_group_id_
+        FROM
+            class_group_teacher_mapper cgtm
+            LEFT JOIN sys_user su ON cgtm.user_id_ = su.id_
+        WHERE su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
+    </select>
+
 
 </mapper>

+ 22 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1861,6 +1861,12 @@
                           #{group.id}
                       </foreach>
                   </if>
+                  <if test="courseIds != null">
+                    OR cs.id_ IN
+                    <foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+                        #{courseId}
+                    </foreach>
+                  </if>
                 )
             </if>
             <if test="groupType != null">
@@ -1904,4 +1910,20 @@
           LEFT JOIN class_group cg ON cg.id_=cs.class_group_id_
         <include refid="endFindCourseSchedulesCondition"/>
     </select>
+    <select id="findCourseIdsByStudent" resultType="int">
+        SELECT
+            cssp.course_schedule_id_
+        FROM
+            course_schedule_student_payment cssp
+            LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
+        WHERE su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
+    </select>
+    <select id="findCourseIdsByTeacher" resultType="int">
+        SELECT
+            csts.course_schedule_id_
+        FROM
+            course_schedule_teacher_salary csts
+            LEFT JOIN sys_user su ON csts.user_id_ = su.id_
+        WHERE real_name_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
+    </select>
 </mapper>

+ 7 - 2
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -425,16 +425,21 @@
             <result column="detail_type_" property="type"/>
             <result column="detail_price_" property="price"/>
         </collection>
+        <collection property="goodsList" ofType="com.ym.mec.biz.dal.entity.Goods">
+            <result column="goods_id" property="id"/>
+            <result column="goods_name" property="name"/>
+        </collection>
     </resultMap>
 
     <!-- 分页查询 -->
     <select id="ExportQueryPage" resultMap="orderAndDetail" parameterType="map">
-        SELECT spo.*,u.username_,spod.id_ detail_id_,spod.type_ detail_type_,spod.price_ detail_price_,o.name_ organ_name,sci.charge_type_
-        FROM student_payment_order spo
+        SELECT spo.*,u.username_,spod.id_ detail_id_,spod.type_ detail_type_,spod.price_ detail_price_,o.name_ organ_name,
+        sci.charge_type_,g.id_ goods_id, g.name_ goods_name FROM student_payment_order spo
         LEFT JOIN sys_user u on spo.user_id_ = u.id_
         LEFT JOIN student_payment_order_detail spod on spo.id_ = spod.payment_order_id_
         LEFT JOIN organization o on spo.organ_id_ = o.id_
         LEFT JOIN sporadic_charge_info sci on spo.music_group_id_ = sci.id_
+        LEFT JOIN goods g on FIND_IN_SET(g.id_,spod.goods_id_list_)
         <include refid="queryPaymentOrder"/>
         ORDER BY spo.id_ ASC
     </select>

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

@@ -543,11 +543,11 @@
         GROUP BY sr.music_group_id_
     </select>
     <select id="queryUserByPhone" resultMap="StudentRegistration">
-        SELECT sr.user_id_,sr.parents_name_,sr.parents_phone_,sr.current_grade_,
+        SELECT su.id_,su.real_name_,su.phone_,sr.current_grade_,
         sr.current_class_,su.username_ name_,su.birthdate_,su.gender_
-        FROM student_registration sr
-        LEFT JOIN sys_user su ON sr.user_id_ = su.id_
-        WHERE sr.parents_phone_ = #{mobile}
+        FROM sys_user su
+        LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
+        WHERE su.phone_ = #{mobile}
         LIMIT 1
     </select>
     <select id="queryPurchaseTypeMap" resultType="java.util.Map">

+ 0 - 1
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -199,7 +199,6 @@ public class MusicGroupController extends BaseController {
 
         Integer userId = studentRegistration.getUserId();
 
-
         StudentPaymentOrder ApplyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.SUCCESS);
         StudentPaymentOrder waitPay = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
         if (ApplyOrder != null && waitPay == null) {

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -37,6 +37,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @RequestMapping
 @Api(tags = "数据导出服务")
@@ -190,10 +191,12 @@ public class ExportController extends BaseController {
             BigDecimal musicalFee = BigDecimal.ZERO;
             BigDecimal teachingFee = BigDecimal.ZERO;
             BigDecimal courseFee = BigDecimal.ZERO;
+            String goodsName = "";
             if (row.getOrderDetailList() != null) {
                 for (StudentPaymentOrderDetail orderDetail : row.getOrderDetailList()) {
                     if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL)) {
                         musicalFee = musicalFee.add(orderDetail.getPrice());
+
                     } else if (orderDetail.getType().equals(OrderDetailTypeEnum.COURSE)) {
                         courseFee = courseFee.add(orderDetail.getPrice());
                     } else if (orderDetail.getType().equals(OrderDetailTypeEnum.ACCESSORIES) || orderDetail.getType().equals(OrderDetailTypeEnum.TEACHING) || orderDetail.getType().equals(OrderDetailTypeEnum.OTHER)) {
@@ -201,9 +204,13 @@ public class ExportController extends BaseController {
                     }
                 }
             }
+            if(row.getGoodsList() != null){
+                goodsName = row.getGoodsList().stream().map(goods -> goods.getName()).collect(Collectors.joining("|"));
+            }
             row.setCourseFee(courseFee);
             row.setMusicalFee(musicalFee);
             row.setTeachingFee(teachingFee);
+            row.setMemo(goodsName);
             //专业
             if (row.getGroupType().equals(GroupType.MUSIC)) {
                 StudentRegistration studentRegistration = studentRegistrationDao.findStudentByMusicGroupIdAndUserId(row.getMusicGroupId(), row.getUserId());