Parcourir la source

Merge branch 'feature/1022_vip' into develop

shangke il y a 11 mois
Parent
commit
1fc3aee41d

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

@@ -49,6 +49,9 @@ public class MemberRankSettingWrapper {
         @ApiModelProperty("移除ID")
         private List<Integer> removeIds;
 
+        @ApiModelProperty("学生ID")
+        private Integer studentId;
+
         public String jsonString() {
             return JSON.toJSONString(this);
         }

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

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.dto.Cloud2022ActivityDto;
 import com.ym.mec.biz.dal.dto.MemberPayParamDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.wrapper.CloudTeacherOrderWrapper;
 import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
 import com.ym.mec.biz.dal.wrapper.MemberRankSettingWrapper;
 import com.ym.mec.biz.dal.wrapper.MusicSheetWrapper;
@@ -952,7 +953,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 //保存团练宝数据
                 CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
                 cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
-                cloudTeacherOrder.setLevel(1);
+                cloudTeacherOrder.setLevel(activity.getGiveMemberRankId());
                 cloudTeacherOrder.setStatus(1);
                 cloudTeacherOrder.setType(activity.getPeriodEnum());
                 cloudTeacherOrder.setTime(studentPaymentOrder.getActivityBuyNum());
@@ -960,7 +961,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
                 cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
                 cloudTeacherOrder.setOperatingAmount(studentPaymentOrder.getExpectAmount());
-                cloudTeacherOrderService.save(cloudTeacherOrder,tenantConfigService.autoActivationFlag(cloudTeacherOrder.getTenantId(),1));
+                cloudTeacherOrderService.save(cloudTeacherOrder,tenantConfigService.autoActivationFlag(cloudTeacherOrder.getTenantId(),activity.getGiveMemberRankId()));
 
                 Map<Integer, String> phoneMaps = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(userId.toString()));
                 String baseApiUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
@@ -1093,6 +1094,16 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
         List<MemberRankSetting> dataList = this.getDAO().queryPage(params);
+
+        // 根据学生ID,只返回可扣费的会员
+        if (Objects.nonNull(queryInfo.getStudentId()))  {
+            List<Integer> collect = cloudTeacherOrderService.getEffectiveCloudTeacherOrder(Lists.newArrayList(queryInfo.getStudentId())).stream()
+                .map(CloudTeacherOrderWrapper.StudentMemberDetail::getMemberRankId)
+                .distinct().collect(Collectors.toList());
+            // 过滤学生已经购买的会员
+            dataList = dataList.stream().filter(e -> collect.contains(e.getId())).collect(Collectors.toList());
+        }
+
         if (CollectionUtils.isEmpty(dataList)) {
             return new ArrayList<>();
         }

+ 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);

+ 17 - 7
mec-biz/src/main/resources/config/mybatis/MemberRankSettingMapper.xml

@@ -155,7 +155,22 @@
     </select>
 
 	<select id="getByIdsAndType" resultMap="MemberRankSetting">
-        SELECT distinct mrs.* FROM member_rank_setting mrs
+        SELECT mrs.id_
+             , mrs.parent_id_
+             , mrs.name_
+             , mrs.intro_
+             , mrs.icon_
+             , mrs.experience_icon_
+             , mrs.create_time_
+             , mrs.update_time_
+             , mrs.operator_
+        <if test="type !=null and type == 'MUSIC'">
+            , sum(if(mrcm.category_id_ = #{typeId},1,0)) is_default_
+        </if>
+        <if test="type !=null and type == 'LESSON'">
+            , sum(if(mrctm.course_type_ = #{typeId},1,0)) is_default_
+        </if>
+        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>
@@ -166,11 +181,6 @@
         <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>
+        group by mrs.id_
     </select>
 </mapper>