Procházet zdrojové kódy

Merge branch 'feature/1022_vip' into test

shangke před 9 měsíci
rodič
revize
f252979316

+ 15 - 2
mec-application/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -3,9 +3,11 @@ package com.ym.mec.student.controller;
 import com.google.common.collect.Lists;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.MemberRankOrganizationFeeMapperDao;
+import com.ym.mec.biz.dal.dao.SysMusicScoreDao;
 import com.ym.mec.biz.dal.dto.MemberPayParamDto;
 import com.ym.mec.biz.dal.entity.MemberRankOrganizationFeeMapper;
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
+import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
@@ -13,6 +15,8 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -37,17 +41,26 @@ public class MemberRankController extends BaseController {
     @Resource
     private MemberRankOrganizationFeeMapperDao memberRankOrganizationFeeMapperDao;
 
+    @Autowired
+    private SysMusicScoreDao sysMusicScoreDao;
+
     @ApiOperation(value = "获取所有的收费标准")
     @GetMapping("/queryList")
-    public Object getMemberDefaultFee() {
+    public Object getMemberDefaultFee(String  type,Integer  typeId) {
         SysUser sysUser = sysUserService.getUser();
         List<MemberRankOrganizationFeeMapper> feeMappers = memberRankOrganizationFeeMapperDao.queryByOrganId(sysUser.getOrganId());
         if (CollectionUtils.isEmpty(feeMappers)) {
             return Lists.newArrayList();
         }
+        if (StringUtils.isNotBlank(type)&& "MUSIC".equals(type) && typeId !=null) {
+            SysMusicScore sysMusicScore = sysMusicScoreDao.get(typeId);
+            if (sysMusicScore != null) {
+                typeId = sysMusicScore.getCbsMusicCategoriesId();
+            }
+        }
         List<Integer> memberIds = feeMappers.stream()
                 .map(MemberRankOrganizationFeeMapper::getMemberRankSettingId).distinct().collect(Collectors.toList());
-        List<MemberRankSetting> result = memberRankSettingService.listByIds(memberIds);
+        List<MemberRankSetting> result = memberRankSettingService.getByIdsAndType(memberIds,type,typeId);
         for (MemberRankSetting mrs : result) {
             mrs.setMemberFeeSetting(memberFeeSettingService.findByRankIdAndOrganId(sysUser.getOrganId(), mrs.getId()));
             mrs.setMemberPrivilegesItemList(memberRankPrivilegesService.queryByMemberRankId(mrs.getId()));

+ 3 - 3
mec-application/src/main/java/com/ym/mec/student/controller/MemberRankSettingController.java

@@ -23,11 +23,11 @@ public class MemberRankSettingController extends BaseController {
 
     @ApiOperation(value = "获取可用的会员树状列表")
     @GetMapping("/queryTree")
-    public HttpResponseResult<List<MemberRankSettingWrapper.MemberRankSetting>> queryTree(MemberRankSettingWrapper.MemberRankSettingStudentQuery query) {
-        if (query.getMusicGroupId() == null && query.getOrganId() == null && query.getStudentId() == null) {
+    public HttpResponseResult<List<MemberRankSettingWrapper.MemberRankSetting>> queryTree(String musicGroupId,Integer organId,Integer studentId) {
+        if (musicGroupId == null && organId == null && studentId == null) {
             return failed("参数错误");
         }
-        return succeed(memberRankSettingService.queryTree(query));
+        return succeed(memberRankSettingService.queryTree(musicGroupId,organId,studentId));
     }
 
 }

+ 3 - 3
mec-application/src/main/java/com/ym/mec/web/controller/MemberRankSettingController.java

@@ -89,10 +89,10 @@ public class MemberRankSettingController extends BaseController {
 
     @ApiOperation(value = "获取可用的会员树状列表")
     @GetMapping("/queryTree")
-    public HttpResponseResult<List<MemberRankSettingWrapper.MemberRankSetting>> queryTree(MemberRankSettingWrapper.MemberRankSettingStudentQuery query) {
-        if (query.getMusicGroupId() == null && query.getOrganId() == null && query.getStudentId() == null) {
+    public HttpResponseResult<List<MemberRankSettingWrapper.MemberRankSetting>> queryTree(String musicGroupId,Integer organId,Integer studentId) {
+        if (musicGroupId == null && organId == null && studentId == null) {
             return failed("参数错误");
         }
-        return succeed(memberRankSettingService.queryTree(query));
+        return succeed(memberRankSettingService.queryTree(musicGroupId,organId,studentId));
     }
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MemberRankSettingDao.java

@@ -18,4 +18,6 @@ public interface MemberRankSettingDao extends BaseDAO<Integer, MemberRankSetting
     void deleteById(@Param("id") Integer id);
 
     List<MemberRankSetting> getNotDelByIds(@Param("ids") List<Integer> parentIds);
+
+    List<MemberRankSetting> getByIdsAndType(@Param("memberIds") List<Integer> memberIds, @Param("type") String type, @Param("typeId") Integer typeId);
 }

+ 0 - 28
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/MemberRankSettingWrapper.java

@@ -49,14 +49,6 @@ public class MemberRankSettingWrapper {
         @ApiModelProperty("移除ID")
         private List<Integer> removeIds;
 
-
-
-        @ApiModelProperty("类型 MUSIC:曲目,LESSON:课程")
-        private String  type;
-
-        @ApiModelProperty("类型ID")
-        private Integer  typeId;
-
         public String jsonString() {
             return JSON.toJSONString(this);
         }
@@ -168,24 +160,4 @@ public class MemberRankSettingWrapper {
         @ApiModelProperty("学练宝云课堂内容")
         private List<SysMusicScoreCategories> lessonCategories;
     }
-
-
-    @Data
-    @Builder
-    @NoArgsConstructor
-    @AllArgsConstructor
-    @ApiModel(" MemberRankSettingQuery-会员等级设置")
-    public static class MemberRankSettingStudentQuery implements QueryInfo {
-        private String musicGroupId;
-        private Integer organId;
-        private Integer studentId;
-
-        @ApiModelProperty("类型 MUSIC:曲目,LESSON:课程")
-        private String  type;
-
-        @ApiModelProperty("类型ID")
-        private Integer  typeId;
-    }
-
-
 }

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

@@ -61,7 +61,7 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
 
     List<MemberRankSetting> listByIds(List<Integer> ids);
 
-    List<MemberRankSettingWrapper.MemberRankSetting> queryTree(MemberRankSettingWrapper.MemberRankSettingStudentQuery query);
+    List<MemberRankSettingWrapper.MemberRankSetting> queryTree(String musicGroupId, Integer organId, Integer studentId);
 
 
     //获取会员全名称
@@ -73,4 +73,6 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
     List<MemberRankSetting> findByOrganIds(List<Integer> organIds);
 
     Map<Integer,MemberRankSetting> getMapByIds(List<Integer> memberRankSettingIds);
+
+    List<MemberRankSetting> getByIdsAndType(List<Integer> memberIds, String type, Integer typeId);
 }

+ 14 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -1228,32 +1228,26 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
     }
 
     @Override
-    public List<MemberRankSettingWrapper.MemberRankSetting> queryTree(MemberRankSettingWrapper.MemberRankSettingStudentQuery query) {
-        if(query.getOrganId() == null){
-            if(StringUtils.isNotEmpty(query.getMusicGroupId())){
-                MusicGroup musicGroup = musicGroupDao.get(query.getMusicGroupId());
+    public List<MemberRankSettingWrapper.MemberRankSetting> queryTree(String musicGroupId, Integer organId, Integer studentId) {
+        if(organId == null){
+            if(StringUtils.isNotEmpty(musicGroupId)){
+                MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
                 if (musicGroup == null) {
                     throw new BizException("乐团不存在");
                 }
-                query.setOrganId(musicGroup.getOrganId());
-            }else if (query.getStudentId() != null){
-                SysUser user = studentService.getDao().getUser(query.getStudentId());
+                organId = musicGroup.getOrganId();
+            }else if (studentId != null){
+                SysUser user = studentService.getDao().getUser(studentId);
                 if (user == null) {
                     throw new BizException("学生不存在");
                 }
-                query.setOrganId(user.getOrganId());
+                organId = user.getOrganId();
             }else {
                 throw new BizException("参数错误");
             }
         }
-        if (StringUtils.isNotBlank(query.getType())&& query.getType().equals("MUSIC") && query.getTypeId() !=null) {
-            SysMusicScore sysMusicScore = sysMusicScoreDao.get(query.getTypeId());
-            if (sysMusicScore != null) {
-                query.setTypeId(sysMusicScore.getCbsMusicCategoriesId());
-            }
-        }
         //获取机构可用会员编号
-        List<MemberRankOrganizationFeeMapper> feeMappers = memberRankOrganizationFeeMapperDao.queryByOrganId(query.getOrganId());
+        List<MemberRankOrganizationFeeMapper> feeMappers = memberRankOrganizationFeeMapperDao.queryByOrganId(organId);
         if (CollectionUtils.isEmpty(feeMappers)) {
             return Lists.newArrayList();
         }
@@ -1261,8 +1255,6 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         MemberRankSettingWrapper.MemberRankSettingQuery queryInfo = new MemberRankSettingWrapper.MemberRankSettingQuery();
         queryInfo.setMemberIds(rankIds);
         queryInfo.setHasChildren(true);
-        queryInfo.setType(query.getType());
-        queryInfo.setTypeId(query.getTypeId());
         return this.queryPage2(queryInfo);
     }
 
@@ -1317,4 +1309,9 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         }
         return memberRankSettings.stream().collect(Collectors.toMap(MemberRankSetting::getId, o -> o, (o1, o2) -> o1));
     }
+
+    @Override
+    public List<MemberRankSetting> getByIdsAndType(List<Integer> memberIds, String type, Integer typeId) {
+        return memberRankSettingDao.getByIdsAndType(memberIds, type, typeId);
+    }
 }

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

@@ -742,7 +742,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
                 //获取云教练溢出费用
                 if (CollectionUtils.isNotEmpty(calenderMembers)) {
                     for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
-                        BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
+                        BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), calenderMember.getMemberRankSettingId(), calenderMember.getPeriod(),
                                 calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
                         if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
                             BigDecimal subtract = calenderMember.getActualAmount().subtract(courseIncome);
@@ -846,7 +846,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
             if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
                 //获取云教练溢出费用
                 for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
-                    BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
+                    BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), calenderMember.getMemberRankSettingId(), calenderMember.getPeriod(),
                             calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
                     if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
                         BigDecimal subtract = calenderMember.getActualAmount().subtract(courseIncome);

+ 27 - 25
mec-biz/src/main/resources/config/mybatis/MemberRankSettingMapper.xml

@@ -64,20 +64,14 @@
 		update_time_ = NOW()
 	</set>WHERE id_ = #{id}
 	</update>
-
+	
 	<!-- 分页查询 -->
-    <select id="queryPage" resultMap="MemberRankSetting" parameterType="map">
-        SELECT mrs.*,su.real_name_ operator_name_ FROM member_rank_setting mrs
-        LEFT JOIN sys_user su ON su.id_ = mrs.operator_
-        <if test="type !=null and type == 'MUSIC'">
-            left join member_rank_category_mapper mrcm on mrs.id_ = mrcm.rank_id_
-        </if>
-        <if test="type !=null and type == 'LESSON'">
-            left join member_rank_course_type_mapper mrctm on mrs.id_ = mrctm.rank_id_
-        </if>
-        <include refid="queryPageSql"/>
-        <include refid="global.limit"/>
-    </select>
+	<select id="queryPage" resultMap="MemberRankSetting" parameterType="map">
+		SELECT mrs.*,su.real_name_ operator_name_ FROM member_rank_setting mrs
+		LEFT JOIN sys_user su ON su.id_ = mrs.operator_
+		<include refid="queryPageSql"/>
+		<include refid="global.limit"/>
+	</select>
 
 	<sql id="queryPageSql">
 		<where>
@@ -85,12 +79,6 @@
 			<if test="search != null and search != ''">
 				AND (mrs.name_ LIKE CONCAT('%',#{search},'%') OR mrs.id_ = #{search})
 			</if>
-            <if test="type !=null and type == 'MUSIC'">
-                and mrcm.category_id_ = #{typeId}
-            </if>
-            <if test="type !=null and type == 'LESSON'">
-                and mrctm.course_type_ = #{typeId}
-            </if>
             <if test="updateStartTime !=null">
                 AND mrs.update_time_ &gt;= #{updateStartTime}
             </if>
@@ -127,12 +115,6 @@
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(mrs.id_) FROM member_rank_setting mrs
         LEFT JOIN sys_user su ON su.id_ = mrs.operator_
-        <if test="type !=null and type == 'MUSIC'">
-            left join member_rank_category_mapper mrcm on mrs.id_ = mrcm.rank_id_
-        </if>
-        <if test="type !=null and type == 'LESSON'">
-            left join member_rank_course_type_mapper mrctm on mrs.id_ = mrctm.rank_id_
-        </if>
 		<include refid="queryPageSql"/>
 	</select>
 	
@@ -171,4 +153,24 @@
         </foreach>
         and del_flag_=0
     </select>
+
+	<select id="getByIdsAndType" resultMap="MemberRankSetting">
+        SELECT distinct mrs.* FROM member_rank_setting mrs
+        <if test="type !=null and type == 'MUSIC'">
+            left join member_rank_category_mapper mrcm on mrs.id_ = mrcm.rank_id_
+        </if>
+        <if test="type !=null and type == 'LESSON'">
+            left join member_rank_course_type_mapper mrctm on mrs.id_ = mrctm.rank_id_
+        </if>
+        WHERE mrs.id_ IN
+        <foreach collection="memberIds" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+        <if test="type !=null and type == 'MUSIC'">
+            and mrcm.category_id_ = #{typeId}
+        </if>
+        <if test="type !=null and type == 'LESSON'">
+            and mrctm.course_type_ = #{typeId}
+        </if>
+    </select>
 </mapper>