瀏覽代碼

会员拆分

zouxuan 9 月之前
父節點
當前提交
f91d6028fb

+ 20 - 12
mec-application/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -1,7 +1,10 @@
 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.dto.MemberPayParamDto;
+import com.ym.mec.biz.dal.entity.MemberRankOrganizationFeeMapper;
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
 import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
 import com.ym.mec.biz.service.*;
@@ -9,37 +12,42 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RequestMapping("${app-config.url.student:}/memberRank")
 @Api(tags = "会员收费设置服务")
 @RestController
 public class MemberRankController extends BaseController {
 
-    @Autowired
+    @Resource
     private MemberFeeSettingService memberFeeSettingService;
-
-    @Autowired
+    @Resource
     private MemberRankSettingService memberRankSettingService;
-
-    @Autowired
+    @Resource
     private MemberRankPrivilegesService memberRankPrivilegesService;
-
-    @Autowired
+    @Resource
     private CloudTeacherOrderService cloudTeacherOrderService;
-
-    @Autowired
+    @Resource
     private SysUserService sysUserService;
+    @Resource
+    private MemberRankOrganizationFeeMapperDao memberRankOrganizationFeeMapperDao;
 
     @ApiOperation(value = "获取所有的收费标准")
     @GetMapping("/queryList")
     public Object getMemberDefaultFee() {
         SysUser sysUser = sysUserService.getUser();
-        List<MemberRankSetting> result = memberRankSettingService.queryListByIsDefault(false);
-
+        List<MemberRankOrganizationFeeMapper> feeMappers = memberRankOrganizationFeeMapperDao.queryByOrganId(sysUser.getOrganId());
+        if (CollectionUtils.isEmpty(feeMappers)) {
+            return Lists.newArrayList();
+        }
+        List<Integer> memberIds = feeMappers.stream()
+                .map(MemberRankOrganizationFeeMapper::getMemberRankSettingId).distinct().collect(Collectors.toList());
+        List<MemberRankSetting> result = memberRankSettingService.listByIds(memberIds);
         for (MemberRankSetting mrs : result) {
             mrs.setMemberFeeSetting(memberFeeSettingService.findByRankIdAndOrganId(sysUser.getOrganId(), mrs.getId()));
             mrs.setMemberPrivilegesItemList(memberRankPrivilegesService.queryByMemberRankId(mrs.getId()));

+ 17 - 1
mec-application/src/main/java/com/ym/mec/student/controller/StudentController.java

@@ -5,9 +5,12 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.RegisterUserDto;
 import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.entity.StudentPreRegistration;
+import com.ym.mec.biz.dal.wrapper.CloudTeacherOrderWrapper;
+import com.ym.mec.biz.service.CloudTeacherOrderService;
 import com.ym.mec.biz.service.StudentService;
 import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,7 +21,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 @RequestMapping("${app-config.url.student:}/student")
 @Api(tags = "学生服务")
@@ -29,8 +34,10 @@ public class StudentController extends BaseController {
     private SysUserFeignService sysUserFeignService;
 	@Resource
 	private SysUserService sysUserService;
-    @Autowired
+    @Resource
     private StudentService studentService;
+    @Resource
+    private CloudTeacherOrderService cloudTeacherOrderService;
 
     @ApiOperation("注册")
     @PostMapping(value = "/registering")
@@ -75,4 +82,13 @@ public class StudentController extends BaseController {
 		studentService.update(student);
 		return succeed();
 	}
+
+	@ApiOperation("获取学员生效中的会员")
+	@PostMapping(value = "/getEffectiveMember")
+	public HttpResponseResult<List<CloudTeacherOrderWrapper.StudentMemberDetail>> getEffectiveMember() {
+		Integer userId = sysUserService.getUserId();
+		List<Integer> userIds = new ArrayList<>();
+		userIds.add(userId);
+		return succeed(cloudTeacherOrderService.getEffectiveCloudTeacherOrder(userIds));
+	}
 }

+ 16 - 16
mec-application/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -336,32 +336,32 @@ public class StudentOrderController extends BaseController {
                 musicGroupRegCalender.setMusicGroupPaymentCalenderCourseSettingsList(courseSettings);
                 //如果包含vip和网管,代表购买了活动包
                 List<Long> activityList = orderDetail1.stream().filter(e -> e.getType() == OrderDetailTypeEnum.VIP
-                        || e.getType() == OrderDetailTypeEnum.PRACTICE).map(e -> e.getStudentInstrumentId())
+                        || e.getType() == OrderDetailTypeEnum.PRACTICE).map(StudentPaymentOrderDetail::getStudentInstrumentId)
                         .collect(Collectors.toList());
                 if(CollectionUtils.isNotEmpty(activityList)){
                     orderDetail.put("activity", musicGroupPaymentCalenderActivityService.findByActivityIds(activityList,musicGroupRegCalender.getId()));
                 }
             }
             orderDetail.put("calender", musicGroupRegCalender);
+            List<Long> ids = orderDetail1.stream().filter(e -> e.getType() == OrderDetailTypeEnum.CLOUD_TEACHER).map(StudentPaymentOrderDetail::getStudentInstrumentId).collect(Collectors.toList());
+            if(CollectionUtils.isNotEmpty(ids)){
+                List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberService.findByIds(ids);
+                List<CloudTeacherOrderWrapper.StudentMemberOrderDetail> memberOrderDetails = new ArrayList<>();
+                for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
+                    CloudTeacherOrderWrapper.StudentMemberOrderDetail memberOrderDetail = new CloudTeacherOrderWrapper.StudentMemberOrderDetail();
+                    memberOrderDetail.setMemberRankId(calenderMember.getMemberRankSettingId());
+                    memberOrderDetail.setMemberRankName(calenderMember.getName());
+                    memberOrderDetail.setIntro(calenderMember.getIntro());
+                    memberOrderDetails.add(memberOrderDetail);
+                }
+                orderDetail.put("member", memberOrderDetails);
+            }
 
             //判断是否是系统收费
-            if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
+            /*if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
                 orderDetail.put("member", cloudTeacherOrderService.queryOrderInfoByOrderId(orderByOrderNo.getId()));
             }else {
-                List<Long> ids = orderDetail1.stream().filter(e -> e.getType() == OrderDetailTypeEnum.CLOUD_TEACHER).map(StudentPaymentOrderDetail::getStudentInstrumentId).collect(Collectors.toList());
-                if(CollectionUtils.isNotEmpty(ids)){
-                    List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberService.findByIds(ids);
-                    List<CloudTeacherOrderWrapper.StudentMemberOrderDetail> memberOrderDetails = new ArrayList<>();
-                    for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
-                        CloudTeacherOrderWrapper.StudentMemberOrderDetail memberOrderDetail = new CloudTeacherOrderWrapper.StudentMemberOrderDetail();
-                        memberOrderDetail.setMemberRankId(calenderMember.getMemberRankSettingId());
-                        memberOrderDetail.setMemberRankName(calenderMember.getName());
-                        memberOrderDetail.setIntro(calenderMember.getIntro());
-                        memberOrderDetails.add(memberOrderDetail);
-                    }
-                    orderDetail.put("member", memberOrderDetails);
-                }
-            }
+            }*/
         } else if (orderByOrderNo.getGroupType().equals(GroupType.VIP) || orderByOrderNo.getGroupType().equals(GroupType.LIVE)) {
             if(orderByOrderNo.getType() == OrderTypeEnum.ACTIVITY){
                 orderDetail.put("activity", vipGroupActivityService.getDao().queryByIds(orderByOrderNo.getActivityId()));

+ 8 - 45
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TenantConfigDetail.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
+import lombok.Data;
+
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.List;
@@ -22,52 +24,13 @@ public class TenantConfigDetail implements Serializable {
      */
     private CloudRoomRule cloud_room_rule;
 
+    @Data
     public static class MemberConfig implements Serializable {
-        private BigDecimal day_divide;
-        private BigDecimal month_divide;
-        private BigDecimal quarter_divide;
-        private BigDecimal half_year_divide;
-        private BigDecimal year_divide;
-
-        public BigDecimal getDay_divide() {
-            return day_divide;
-        }
-
-        public void setDay_divide(BigDecimal day_divide) {
-            this.day_divide = day_divide;
-        }
-
-        public BigDecimal getMonth_divide() {
-            return month_divide;
-        }
-
-        public void setMonth_divide(BigDecimal month_divide) {
-            this.month_divide = month_divide;
-        }
-
-        public BigDecimal getQuarter_divide() {
-            return quarter_divide;
-        }
-
-        public void setQuarter_divide(BigDecimal quarter_divide) {
-            this.quarter_divide = quarter_divide;
-        }
-
-        public BigDecimal getHalf_year_divide() {
-            return half_year_divide;
-        }
-
-        public void setHalf_year_divide(BigDecimal half_year_divide) {
-            this.half_year_divide = half_year_divide;
-        }
-
-        public BigDecimal getYear_divide() {
-            return year_divide;
-        }
-
-        public void setYear_divide(BigDecimal year_divide) {
-            this.year_divide = year_divide;
-        }
+        private BigDecimal dayDivide;
+        private BigDecimal monthDivide;
+        private BigDecimal quarterDivide;
+        private BigDecimal halfYearDivide;
+        private BigDecimal yearDivide;
     }
 
     public static class CloudRoomRule implements Serializable {

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

@@ -1259,7 +1259,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
 
                 //齐齐哈尔走特殊规则
-                if (calender.getOrganId() == 55 && CollectionUtils.isEmpty(registerPayDto.getNewCourse()) && !buyCloudTeacher) {
+                if (calender.getOrganId() == 55 && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE && !buyCloudTeacher) {
                     //取商品零售价
                     if (StringUtils.isNotBlank(goodsGroup.getGoodsIdList())) {
                         List<Goods> goodsList = goodsDao.findGoodsByIds(goodsGroup.getGoodsIdList());

+ 10 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantConfigServiceImpl.java

@@ -91,11 +91,11 @@ public class TenantConfigServiceImpl extends ServiceImpl<TenantConfigDao, Tenant
         if(CollectionUtils.isNotEmpty(rankSettings)){
             rankSettings.forEach(e -> {
                 TenantConfigDetail.MemberConfig memberConfig = JSON.parseObject(e.getMemberConfig(), TenantConfigDetail.MemberConfig.class);
-                result.put(e.getMemberRankSettingId(), memberConfig.getDay_divide().compareTo(BigDecimal.ZERO) == 0 &&
-                        memberConfig.getMonth_divide().compareTo(BigDecimal.ZERO) == 0 &&
-                        memberConfig.getHalf_year_divide().compareTo(BigDecimal.ZERO) == 0 &&
-                        memberConfig.getQuarter_divide().compareTo(BigDecimal.ZERO) == 0 &&
-                        memberConfig.getYear_divide().compareTo(BigDecimal.ZERO) == 0);
+                result.put(e.getMemberRankSettingId(), memberConfig.getDayDivide().compareTo(BigDecimal.ZERO) == 0 &&
+                        memberConfig.getMonthDivide().compareTo(BigDecimal.ZERO) == 0 &&
+                        memberConfig.getHalfYearDivide().compareTo(BigDecimal.ZERO) == 0 &&
+                        memberConfig.getQuarterDivide().compareTo(BigDecimal.ZERO) == 0 &&
+                        memberConfig.getYearDivide().compareTo(BigDecimal.ZERO) == 0);
             });
         }
         return result;
@@ -123,15 +123,15 @@ public class TenantConfigServiceImpl extends ServiceImpl<TenantConfigDao, Tenant
         }
         switch (period) {
             case DAY:
-                return memberConfig.getBigDecimal("day_divide");
+                return memberConfig.getBigDecimal("dayDivide");
             case MONTH:
-                return memberConfig.getBigDecimal("month_divide");
+                return memberConfig.getBigDecimal("monthDivide");
             case QUARTERLY:
-                return memberConfig.getBigDecimal("quarter_divide");
+                return memberConfig.getBigDecimal("quarterDivide");
             case YEAR_HALF:
-                return memberConfig.getBigDecimal("half_year_divide");
+                return memberConfig.getBigDecimal("halfYearDivide");
             case YEAR:
-                return memberConfig.getBigDecimal("year_divide");
+                return memberConfig.getBigDecimal("yearDivide");
             default:
                 return BigDecimal.ZERO;
         }

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

@@ -436,6 +436,9 @@
             <if test="orderNo != null and orderNo != ''">
                 AND tor.order_no_ LIKE CONCAT('%', #{orderNo}, '%')
             </if>
+            <if test="memberRankId != null">
+                AND cto.level_ = #{memberRankId}
+            </if>
             <if test="startTime != null">
                 <![CDATA[ AND tor.created_time_ >= #{startTime} ]]>
             </if>