浏览代码

会员拆分

zouxuan 9 月之前
父节点
当前提交
bc48f49c08
共有 21 个文件被更改,包括 414 次插入241 次删除
  1. 3 3
      mec-application/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java
  2. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherOrderDao.java
  3. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MemberRankPrivilegesDao.java
  4. 5 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderMemberDao.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentBaseCalender.java
  6. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankPrivilegesService.java
  7. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderMemberService.java
  8. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderService.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  10. 28 20
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java
  11. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberFeeSettingServiceImpl.java
  12. 33 19
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankPrivilegesServiceImpl.java
  13. 35 25
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java
  14. 55 16
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderMemberServiceImpl.java
  15. 87 78
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  16. 13 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  17. 45 37
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java
  18. 33 27
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  19. 3 0
      mec-biz/src/main/resources/config/mybatis/CloudTeacherOrderMapper.xml
  20. 6 0
      mec-biz/src/main/resources/config/mybatis/MemberRankPrivilegesMapper.xml
  21. 49 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMemberMapper.xml

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

@@ -53,7 +53,7 @@ public class MusicGroupPaymentCalenderController extends BaseController {
 
     @ApiOperation(value = "查询审核人")
     @GetMapping(value = "/queryUser")
-    public Object queryUser(MusicGroupPaymentCalenderQueryInfo queryInfo) {
+    public HttpResponseResult<List<Map<String, String>>> queryUser(MusicGroupPaymentCalenderQueryInfo queryInfo) {
         queryInfo.setOrganId(organizationService.getEmployeeOrgan(queryInfo.getOrganId()));
         return succeed(musicGroupPaymentCalenderService.queryUser(queryInfo));
     }
@@ -61,14 +61,14 @@ public class MusicGroupPaymentCalenderController extends BaseController {
     @ApiOperation(value = "获取缴费信息")
     @GetMapping("/getDetail")
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/getDetail')")
-    public Object getDetail(Long id) {
+    public HttpResponseResult<Map<String, Object>> getDetail(Long id) {
         return succeed(musicGroupPaymentCalenderService.getDetail(id));
     }
 
     @ApiOperation(value = "新增乐团缴费日历")
     @PostMapping(value = "/add", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/add')")
-    public HttpResponseResult add(@RequestBody MusicGroupPaymentCalenderDto musicGroupPaymentCalenderDto) {
+    public HttpResponseResult<ModelMap> add(@RequestBody MusicGroupPaymentCalenderDto musicGroupPaymentCalenderDto) {
     	String batchNo = musicGroupPaymentCalenderService.create(musicGroupPaymentCalenderDto);
         ModelMap map = new ModelMap(1);
         map.put("musicGroupPaymentCalenderBatchNo", batchNo);

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

@@ -132,4 +132,6 @@ public interface CloudTeacherOrderDao extends BaseDAO<Long, CloudTeacherOrder> {
     List<CloudCoachActivationDetailsDto> exportMusicGroupNoCourse(@Param("organId") String organId);
 
     int countByMemberRankSetttingId(@Param("memberRankSettingId") Integer memberRankSettingId);
+
+    Date getActivationMaxTime(@Param("studentId") Integer studentId, @Param("level") Integer level);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MemberRankPrivilegesDao.java

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.entity.MemberRankPrivileges;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Arrays;
 import java.util.List;
 
 public interface MemberRankPrivilegesDao extends BaseDAO<Integer, MemberRankPrivileges>{
@@ -21,4 +22,6 @@ public interface MemberRankPrivilegesDao extends BaseDAO<Integer, MemberRankPriv
      * @return
      */
     boolean hasPrivileges(Integer parentId);
+
+    List<MemberRankPrivileges> findByRankSettingIds(@Param("memberRankIds") List<Integer> memberRankIds);
 }

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupPaymentCalenderMemberDao.java

@@ -11,5 +11,9 @@ public interface MusicGroupPaymentCalenderMemberDao extends BaseDAO<Long, MusicG
 
     void deleteByCalenderId(@Param("calenderId") Long calenderId);
 
-    MusicGroupPaymentCalenderMember findByCalenderId(@Param("calenderId") Long calenderId);
+    List<MusicGroupPaymentCalenderMember> findByCalenderId(@Param("calenderId") Long calenderId);
+
+    void batchInsert(@Param("beans") List<MusicGroupPaymentCalenderMember> calenderMemberList);
+
+    void batchUpdate(@Param("beans") List<MusicGroupPaymentCalenderMember> calenderMemberList);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentBaseCalender.java

@@ -49,7 +49,7 @@ public class MusicGroupPaymentBaseCalender {
 	private MusicGroupPaymentCalenderAddress calenderAddress;
 
 	@ApiModelProperty(value = "会员相关缴费信息", required = false)
-	private MusicGroupPaymentCalenderMember calenderMember;
+	private List<MusicGroupPaymentCalenderMember> calenderMemberList;
 
 	@ApiModelProperty(value = "乐保信息", required = false)
 	private MusicGroupPaymentCalenderRepair musicRepair;

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankPrivilegesService.java

@@ -14,4 +14,6 @@ public interface MemberRankPrivilegesService extends BaseService<Integer, Member
 	 * @return
 	 */
 	List<MemberPrivilegesItem> queryByMemberRankId(Integer memberRankId);
+
+	List<MemberPrivilegesItem> queryByMemberRankIds(List<Integer> memberRankIds);
 }

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderMemberService.java

@@ -3,9 +3,15 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderMember;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface MusicGroupPaymentCalenderMemberService extends BaseService<Long, MusicGroupPaymentCalenderMember> {
 
     void deleteByCalenderId(Long calenderId);
 
-    MusicGroupPaymentCalenderMember findByCalenderId(Long calenderId);
+    List<MusicGroupPaymentCalenderMember> findByCalenderId(Long calenderId);
+
+    void batchInsert(List<MusicGroupPaymentCalenderMember> calenderMemberList);
+
+    void batchUpdate(List<MusicGroupPaymentCalenderMember> calenderMemberList);
 }

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

@@ -213,5 +213,5 @@ public interface MusicGroupPaymentCalenderService extends BaseService<Long, Musi
 	*/
 	Map<Long, Integer>  findCooperationByIds(List<Long> calenderIds);
 
-    Object queryUser(MusicGroupPaymentCalenderQueryInfo queryInfo);
+	List<Map<String,String>> queryUser(MusicGroupPaymentCalenderQueryInfo queryInfo);
 }

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

@@ -102,7 +102,7 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
     List<StudentPaymentOrderDetail> addOrder1(StudentPaymentOrder studentPaymentOrder,
                    MusicGroupPaymentCalender calender,
                    List<MusicGroupPaymentCalenderCourseSettings> newCourses,
-                   MusicGroupPaymentCalenderMember calenderMember,
+                   List<MusicGroupPaymentCalenderMember> calenderMembers,
                    MusicGroupPaymentCalenderRepair calenderRepair,
                    List<MusicGroupPaymentCalenderActivity> calenderActivities
     ) throws Exception;

+ 28 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java

@@ -27,6 +27,7 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import jodd.util.StringUtil;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -238,7 +239,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     @Transactional(rollbackFor = Exception.class)
     public Map<String, Object> pay(List<CloudTeacherStudent> cloudTeacherStudents) throws Exception {
 
-        if (cloudTeacherStudents.size() == 0) {
+        if (CollectionUtils.isEmpty(cloudTeacherStudents)) {
             throw new Exception("请选择选择一条记录");
         }
         List<Integer> ids = cloudTeacherStudents.stream().map(CloudTeacherStudent::getCloudTeacherOrderId).collect(
@@ -367,29 +368,36 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void addOrderDetail2CloudTeacher(StudentPaymentOrder order, BigDecimal cloudTeacherFee) {
-        CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
-        cloudTeacherOrder.setTenantId(order.getTenantId());
-        cloudTeacherOrder.setOrganId(order.getOrganId());
-        cloudTeacherOrder.setOrderId(order.getId());
-        MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(order.getCalenderId());
-        cloudTeacherOrder.setLevel(calenderMember.getMemberRankSettingId());
-        cloudTeacherOrder.setTime(calenderMember.getNum().intValue());
-        cloudTeacherOrder.setType(calenderMember.getPeriod());
-        cloudTeacherOrder.setAmount(cloudTeacherFee);
-        cloudTeacherOrder.setStudentId(order.getUserId());
-        cloudTeacherOrder.setStatus(1);
-        cloudTeacherOrder.setMusicGroupId(order.getMusicGroupId());
-        cloudTeacherOrder.setOperatingAmount(calenderMember.getIncome().compareTo(BigDecimal.ZERO) == 0?cloudTeacherFee:calenderMember.getIncome());
-        //保存云教练订单
-        this.save(cloudTeacherOrder,calenderMember.getAutoActivationFlag());
+        List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberService.findByCalenderId(order.getCalenderId());
+        for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
+            CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+            cloudTeacherOrder.setTenantId(order.getTenantId());
+            cloudTeacherOrder.setOrganId(order.getOrganId());
+            cloudTeacherOrder.setOrderId(order.getId());
+            cloudTeacherOrder.setLevel(calenderMember.getMemberRankSettingId());
+            cloudTeacherOrder.setTime(calenderMember.getNum().intValue());
+            cloudTeacherOrder.setType(calenderMember.getPeriod());
+            cloudTeacherOrder.setAmount(cloudTeacherFee);
+            cloudTeacherOrder.setStudentId(order.getUserId());
+            cloudTeacherOrder.setStatus(1);
+            cloudTeacherOrder.setMusicGroupId(order.getMusicGroupId());
+            cloudTeacherOrder.setOperatingAmount(calenderMember.getIncome().compareTo(BigDecimal.ZERO) == 0?cloudTeacherFee:calenderMember.getIncome());
+            //保存云教练订单
+            this.save(cloudTeacherOrder,calenderMember.getAutoActivationFlag());
+        }
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void activationMember(Date now,CloudTeacherOrder cloudTeacherOrder){
-        Student student = studentService.get(cloudTeacherOrder.getStudentId());
-        if(student.getMembershipEndTime() != null && student.getMembershipEndTime().compareTo(now) > 0){
-            now = student.getMembershipEndTime();
+//        Student student = studentService.get(cloudTeacherOrder.getStudentId());
+//        if(student.getMembershipEndTime() != null && student.getMembershipEndTime().compareTo(now) > 0){
+//            now = student.getMembershipEndTime();
+//        }
+        //获取已激活的云教练最大时间
+        Date maxTime = cloudTeacherOrderDao.getActivationMaxTime(cloudTeacherOrder.getStudentId(),cloudTeacherOrder.getLevel());
+        if (maxTime != null && maxTime.compareTo(now) > 0) {
+            now = maxTime;
         }
         Date startTime = DateUtil.trunc(now);
         Date endTime = this.calcCloudTeacherOrderTime(cloudTeacherOrder, startTime);
@@ -401,7 +409,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
         }else {
             cloudTeacherOrderDao.update(cloudTeacherOrder);
         }
-        studentService.updateMemberRank(cloudTeacherOrder.getStudentId(), cloudTeacherOrder.getType(), cloudTeacherOrder.getTime(), 1);
+//        studentService.updateMemberRank(cloudTeacherOrder.getStudentId(), cloudTeacherOrder.getType(), cloudTeacherOrder.getTime(), 1);
     }
 
     public Date calcCloudTeacherOrderTime(CloudTeacherOrder cloudTeacherOrder, Date startTime) {

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

@@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Objects;
 import java.util.function.BiFunction;
 
@@ -38,7 +39,7 @@ public class MemberFeeSettingServiceImpl extends BaseServiceImpl<Integer, Member
             throw new BizException("操作失败:请配置当前分部会员收费标准");
         }
         //获取总价(原价或者现价)
-        return func.apply(period, memberFee).multiply(num).setScale(0, BigDecimal.ROUND_HALF_UP);
+        return func.apply(period, memberFee).multiply(num).setScale(0, RoundingMode.HALF_UP);
     }
 
     public static BigDecimal getGroupPurchaseFee(PeriodEnum periodEnum, MemberFeeSetting memberFee) {

+ 33 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankPrivilegesServiceImpl.java

@@ -1,14 +1,5 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.biz.dal.dao.MemberPrivilegesItemDao;
 import com.ym.mec.biz.dal.dao.MemberRankPrivilegesDao;
 import com.ym.mec.biz.dal.entity.MemberPrivilegesItem;
@@ -16,14 +7,23 @@ import com.ym.mec.biz.dal.entity.MemberRankPrivileges;
 import com.ym.mec.biz.service.MemberRankPrivilegesService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class MemberRankPrivilegesServiceImpl extends BaseServiceImpl<Integer, MemberRankPrivileges> implements MemberRankPrivilegesService {
 
-	@Autowired
+	@Resource
 	private MemberRankPrivilegesDao memberRankPrivilegesDao;
 
-	@Autowired
+	@Resource
 	private MemberPrivilegesItemDao memberPrivilegesItemDao;
 
 	@Override
@@ -33,31 +33,45 @@ public class MemberRankPrivilegesServiceImpl extends BaseServiceImpl<Integer, Me
 
 	@Override
 	public List<MemberPrivilegesItem> queryByMemberRankId(Integer memberRankId) {
-		List<Integer> memberPrivilegesIdList = memberRankPrivilegesDao.findByRankSettingId(memberRankId).stream().map(e -> e.getMemberPrivilegesId())
+		List<Integer> memberPrivilegesIdList = memberRankPrivilegesDao.
+				findByRankSettingId(memberRankId).stream().map(MemberRankPrivileges::getMemberPrivilegesId)
 				.collect(Collectors.toList());
 		
-		if (memberPrivilegesIdList == null || memberPrivilegesIdList.size() == 0) {
-			return new ArrayList<MemberPrivilegesItem>();
+		if (CollectionUtils.isEmpty(memberPrivilegesIdList)) {
+			return new ArrayList<>();
+		}
+		return initMemberPrivilegesItem(memberPrivilegesIdList);
+	}
+
+	@Override
+	public List<MemberPrivilegesItem> queryByMemberRankIds(List<Integer> memberRankIds) {
+		List<Integer> memberPrivilegesIdList = memberRankPrivilegesDao.
+				findByRankSettingIds(memberRankIds).stream().map(MemberRankPrivileges::getMemberPrivilegesId)
+				.collect(Collectors.toList());
+
+		if (CollectionUtils.isEmpty(memberPrivilegesIdList)) {
+			return new ArrayList<>();
 		}
+		return initMemberPrivilegesItem(memberPrivilegesIdList);
+	}
 
+	private List<MemberPrivilegesItem> initMemberPrivilegesItem(List<Integer> memberPrivilegesIdList) {
 		List<MemberPrivilegesItem> memberPrivilegesItemList = memberPrivilegesItemDao.findById(memberPrivilegesIdList);
 
 		Map<Integer, MemberPrivilegesItem> map = new HashMap<Integer, MemberPrivilegesItem>();
 
 		for (MemberPrivilegesItem item : memberPrivilegesItemList) {
-			
-			if(!map.containsKey(item.getId())){
+			if (!map.containsKey(item.getId())) {
 				MemberPrivilegesItem memberPrivilegesItem = queryParentBysubId(item);
-				
-				if (map.containsKey(memberPrivilegesItem.getId())) {
 
+				if (map.containsKey(memberPrivilegesItem.getId())) {
 					memberPrivilegesItem = addSubItemToParent(map.get(memberPrivilegesItem.getId()), item);
 				}
 				map.put(memberPrivilegesItem.getId(), memberPrivilegesItem);
 			}
 		}
 
-		return map.values().stream().collect(Collectors.toList());
+		return new ArrayList<>(map.values());
 	}
 
 	private MemberPrivilegesItem queryParentBysubId(MemberPrivilegesItem memberPrivilegesItem) {

+ 35 - 25
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -228,10 +228,10 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
         if(CollectionUtils.isNotEmpty(calenderActivities)){
             List<VipGroupActivity> vipGroupActivities = vipGroupActivityDao.queryByIds(calenderActivities.stream().
                     map(e -> e.getActivityId().toString()).distinct().collect(Collectors.joining(",")));
-            collect = vipGroupActivities.stream().collect(Collectors.groupingBy(e -> e.getId(),
+            collect = vipGroupActivities.stream().collect(Collectors.groupingBy(VipGroupActivity::getId,
                     Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
         }
-        MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(musicGroupPaymentCalenderId);
+        List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberService.findByCalenderId(musicGroupPaymentCalenderId);
         for (Integer studentId : userIdList) {
             musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
             musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
@@ -248,27 +248,29 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
             musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
             musicGroupPaymentCalenderDetail.setMusicGroupId(musicGroupPaymentCalender.getMusicGroupId());
             //设置云教练、课程收入
-            this.setCourseIncome(calenderMember,musicGroupPaymentCalenderDetail);
+            this.setCourseIncome(calenderMembers,musicGroupPaymentCalenderDetail);
             Integer organId = musicGroupPaymentCalender.getOrganId();
             musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
             if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0 || musicGroupPaymentCalender.getPayUserType() == SCHOOL) {
                 // 添加会员
-                if (calenderMember != null) {
-                    CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
-                    cloudTeacherOrder.setOrganId(organId);
-                    cloudTeacherOrder.setType(calenderMember.getPeriod());
-                    cloudTeacherOrder.setAmount(BigDecimal.ZERO);
-                    cloudTeacherOrder.setStudentId(studentId);
-                    cloudTeacherOrder.setLevel(calenderMember.getMemberRankSettingId());
-                    cloudTeacherOrder.setTime(calenderMember.getNum().intValue());
-                    cloudTeacherOrder.setStatus(1);
-                    if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
-                        cloudTeacherOrder.setRemark("学校缴费新增学员");
-                    }else {
-                        cloudTeacherOrder.setRemark("缴费项目0元新增学员");
+                if (CollectionUtils.isNotEmpty(calenderMembers)) {
+                    for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
+                        CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+                        cloudTeacherOrder.setOrganId(organId);
+                        cloudTeacherOrder.setType(calenderMember.getPeriod());
+                        cloudTeacherOrder.setAmount(BigDecimal.ZERO);
+                        cloudTeacherOrder.setStudentId(studentId);
+                        cloudTeacherOrder.setLevel(calenderMember.getMemberRankSettingId());
+                        cloudTeacherOrder.setTime(calenderMember.getNum().intValue());
+                        cloudTeacherOrder.setStatus(1);
+                        if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
+                            cloudTeacherOrder.setRemark("学校缴费新增学员");
+                        }else {
+                            cloudTeacherOrder.setRemark("缴费项目0元新增学员");
+                        }
+                        cloudTeacherOrder.setMusicGroupId(musicGroupId);
+                        cloudTeacherOrderService.save(cloudTeacherOrder,calenderMember.getAutoActivationFlag());
                     }
-                    cloudTeacherOrder.setMusicGroupId(musicGroupId);
-                    cloudTeacherOrderService.save(cloudTeacherOrder,calenderMember.getAutoActivationFlag());
                 }
                 //添加小课包
                 if (calenderActivities != null && calenderActivities.size() > 0) {
@@ -321,19 +323,27 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
         }
     }
 
-    public void setCourseIncome(MusicGroupPaymentCalenderMember calenderMember, MusicGroupPaymentCalenderDetail calenderDetail){
-        if(Objects.nonNull(calenderMember)){
+    public void setCourseIncome(List<MusicGroupPaymentCalenderMember> calenderMembers, MusicGroupPaymentCalenderDetail calenderDetail){
+        if(CollectionUtils.isNotEmpty(calenderMembers)){
             MusicGroup musicGroup = musicGroupDao.get(calenderDetail.getMusicGroupId());
             if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
                 //获取云教练溢出费用
-                BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
-                        calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
-                if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
+                BigDecimal courseIncome = BigDecimal.ZERO;
+                BigDecimal actualAmount = BigDecimal.ZERO;
+                for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
+                    courseIncome.add(memberFeeSettingService.getAmount(musicGroup.getOrganId(),
+                        calenderMember.getMemberRankSettingId(),
+                        calenderMember.getPeriod(),
+                        calenderMember.getNum(),
+                        MemberFeeSettingServiceImpl::getIncome));
+                    actualAmount = actualAmount.add(calenderMember.getActualAmount());
+                }
+                if(actualAmount.compareTo(courseIncome) > 0){
                     calenderDetail.setExpectMemberAmount(courseIncome);
-                    calenderDetail.setActualAmount(calenderMember.getActualAmount().subtract(courseIncome));
+                    calenderDetail.setActualAmount(actualAmount.subtract(courseIncome));
                 }
             }else {
-                calenderDetail.setExpectMemberAmount(calenderMember.getActualAmount());
+                calenderDetail.setExpectMemberAmount(calenderMembers.stream().map(MusicGroupPaymentCalenderMember::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
                 calenderDetail.setActualAmount(BigDecimal.ZERO);
             }
         }

+ 55 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderMemberServiceImpl.java

@@ -12,10 +12,13 @@ import com.ym.mec.biz.service.MusicGroupPaymentCalenderMemberService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.util.List;
 import java.util.function.BiFunction;
 
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
@@ -25,37 +28,42 @@ import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalende
 public class MusicGroupPaymentCalenderMemberServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalenderMember>
         implements MusicGroupPaymentCalenderBaseService<MusicGroupPaymentCalenderMember>, MusicGroupPaymentCalenderMemberService {
 
-    @Autowired
+    @Resource
     private MusicGroupPaymentCalenderMemberDao musicGroupPaymentCalenderMemberDao;
+    @Resource
+    private MemberFeeSettingService memberFeeSettingService;
+    @Resource
+    private MemberRankSettingDao memberRankSettingDao;
 
     @Override
     public BaseDAO<Long, MusicGroupPaymentCalenderMember> getDAO() {
         return musicGroupPaymentCalenderMemberDao;
     }
 
-    @Autowired
-    private MemberFeeSettingService memberFeeSettingService;
-    @Autowired
-    private MemberRankSettingDao memberRankSettingDao;
-
     public MusicGroupPaymentCalenderMemberServiceImpl() {
         MusicGroupPaymentCalenderBaseService.calenderBaseServiceMap.put(CalenderBaseServiceEnum.MEMBER,this);
     }
 
     @Override
     public MusicGroupPaymentCalender.PaymentCalenderStatusEnum checkComponentAmount(MusicGroupPaymentBaseCalender baseCalender) {
-        if(getAmount(baseCalender, MemberFeeSettingServiceImpl::getGroupPurchaseFee).
-                compareTo(baseCalender.getCalenderMember().getActualAmount()) != 0){
-            return AUDITING;
+        List<MusicGroupPaymentCalenderMember> calenderMemberList = baseCalender.getCalenderMemberList();
+        if(CollectionUtils.isEmpty(calenderMemberList)){
+            return NO;
+        }
+        for (MusicGroupPaymentCalenderMember calenderMember : calenderMemberList) {
+            if(getAmount(baseCalender,calenderMember, MemberFeeSettingServiceImpl::getGroupPurchaseFee).
+                    compareTo(calenderMember.getActualAmount()) != 0){
+                return AUDITING;
+            }
         }
         return NO;
     }
 
     @Override
     public BigDecimal getActualAmount(MusicGroupPaymentBaseCalender baseCalender) {
-        MusicGroupPaymentCalenderMember calenderMember = baseCalender.getCalenderMember();
-        if(calenderMember != null){
-            return calenderMember.getActualAmount();
+        List<MusicGroupPaymentCalenderMember> calenderMemberList = baseCalender.getCalenderMemberList();
+        if(CollectionUtils.isNotEmpty(calenderMemberList)){
+            return calenderMemberList.stream().map(MusicGroupPaymentCalenderBase::getActualAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
         }
         return BigDecimal.ZERO;
     }
@@ -78,13 +86,32 @@ public class MusicGroupPaymentCalenderMemberServiceImpl extends BaseServiceImpl<
             if(memberRankSetting == null){
                 throw new BizException("会员信息不存在");
             }
-            calenderMember.setName(memberRankSetting.getName());
+            String name = memberRankSetting.getName();
+            if(memberRankSetting.getParentId() != 0){
+                MemberRankSetting rankSetting = memberRankSettingDao.get(memberRankSetting.getParentId());
+                if(rankSetting != null){
+                    name = rankSetting.getName() + "-" + name;
+                }
+            }
+            calenderMember.setName(name);
         }
         return bean;
     }
 
     private BigDecimal getAmount(MusicGroupPaymentBaseCalender baseCalender, BiFunction<PeriodEnum,MemberFeeSetting,BigDecimal> func){
-        MusicGroupPaymentCalenderMember calenderMember = baseCalender.getCalenderMember();
+        List<MusicGroupPaymentCalenderMember> calenderMemberList = baseCalender.getCalenderMemberList();
+        if(CollectionUtils.isNotEmpty(calenderMemberList)){
+            MusicGroup musicGroup = baseCalender.getMusicGroup();
+            BigDecimal amount = BigDecimal.ZERO;
+            for (MusicGroupPaymentCalenderMember calenderMember : calenderMemberList) {
+                amount = amount.add(memberFeeSettingService.getAmount(musicGroup.getOrganId(), calenderMember.getMemberRankSettingId(),
+                        calenderMember.getPeriod(), calenderMember.getNum(), func));
+            }
+        }
+        return BigDecimal.ZERO;
+    }
+
+    private BigDecimal getAmount(MusicGroupPaymentBaseCalender baseCalender,MusicGroupPaymentCalenderMember calenderMember, BiFunction<PeriodEnum,MemberFeeSetting,BigDecimal> func){
         if(calenderMember != null){
             MusicGroup musicGroup = baseCalender.getMusicGroup();
             //会员价格是否变动
@@ -100,7 +127,19 @@ public class MusicGroupPaymentCalenderMemberServiceImpl extends BaseServiceImpl<
     }
 
     @Override
-    public MusicGroupPaymentCalenderMember findByCalenderId(Long calenderId) {
+    public List<MusicGroupPaymentCalenderMember> findByCalenderId(Long calenderId) {
         return musicGroupPaymentCalenderMemberDao.findByCalenderId(calenderId);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void batchInsert(List<MusicGroupPaymentCalenderMember> calenderMemberList) {
+        musicGroupPaymentCalenderMemberDao.batchInsert(calenderMemberList);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void batchUpdate(List<MusicGroupPaymentCalenderMember> calenderMemberList) {
+        musicGroupPaymentCalenderMemberDao.batchUpdate(calenderMemberList);
+    }
 }

+ 87 - 78
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -204,8 +204,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         musicGroupPaymentCalender.setMusicGroupId(musicGroupId);
         musicGroupPaymentCalender.setMusicGroupOrganizationCourseSettingId(musicGroupPaymentCalenderDto.getMusicGroupOrganizationCourseSettingId());
 
-        musicGroupPaymentCalender.setOriginalTotalAmount(calenderStudentDetails.stream().map(e -> e.getCourseOriginalPrice()).reduce(BigDecimal.ZERO, BigDecimal::add));
-        musicGroupPaymentCalender.setCurrentTotalAmount(calenderStudentDetails.stream().map(e -> e.getCourseCurrentPrice()).reduce(BigDecimal.ZERO, BigDecimal::add));
+        musicGroupPaymentCalender.setOriginalTotalAmount(calenderStudentDetails.stream().map(MusicGroupPaymentCalenderStudentDetail::getCourseOriginalPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
+        musicGroupPaymentCalender.setCurrentTotalAmount(calenderStudentDetails.stream().map(MusicGroupPaymentCalenderStudentDetail::getCourseCurrentPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
         musicGroupPaymentCalender.setPaymentType(paymentType);
         musicGroupPaymentCalender.setPayUserType(musicGroupPaymentCalenderDto.getPayUserType());
         musicGroupPaymentCalender.setStartPaymentDate(musicGroupPaymentDateRange.getStartPaymentDate());
@@ -301,7 +301,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 List<MusicGroupPaymentCalender> list = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
                 //排除商品采购
                 List<MusicGroupPaymentCalender> collect = list.stream().filter(e -> e.getPaymentType() != GOODS_PURCHASE).collect(Collectors.toList());
-                if (collect.size() > 0) {
+                if (CollectionUtils.isNotEmpty(collect)) {
                     throw new BizException("创建失败,已经存在缴费信息");
                 }
             }
@@ -318,7 +318,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         BigDecimal originalTotalAmount = courseOriginalAmount.add(memberOriginalAmount)
                 .add(activityOriginalAmount)
                 .add(goodsOriginalAmount)
-                .add(repairOriginalAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
+                .add(repairOriginalAmount).setScale(0, RoundingMode.HALF_UP);
 
         //计算缴费项目总金额(前端录入)
         BigDecimal courseActualAmount = musicGroupPaymentCalenderCourseSettingsService.getActualAmount(musicGroupPaymentBaseCalender);
@@ -330,7 +330,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         BigDecimal actualTotalAmount = courseActualAmount.add(memberActualAmount)
                 .add(repairActualAmount)
                 .add(goodsActualAmount)
-                .add(activityActualAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
+                .add(activityActualAmount).setScale(0, RoundingMode.HALF_UP);
         //标记是否云教练缴费
         if(musicGroupPaymentCalender.getPayUserType() == STUDENT && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
             if(musicGroupPaymentCalender.getPaymentType() == ADD_STUDENT){
@@ -364,8 +364,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             BigDecimal courseCurrentAmount = musicGroupPaymentCalenderCourseSettingsService.getCurrentAmount(musicGroupPaymentBaseCalender);
             //如果课程价格是0元,那么需要审核
             if(courseCurrentAmount.compareTo(BigDecimal.ZERO) == 0 &&
-                    musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList() != null &&
-                    musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList().size() > 0){
+                    CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList())){
                 status = AUDITING;
             }else {
                 BigDecimal memberCurrentAmount = musicGroupPaymentCalenderMemberService.getCurrentAmount(musicGroupPaymentBaseCalender);
@@ -375,7 +374,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 BigDecimal currentTotalAmount = courseCurrentAmount.add(memberCurrentAmount)
                         .add(goodsCurrentAmount)
                         .add(repairCurrentAmount)
-                        .add(activityCurrentAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
+                        .add(activityCurrentAmount).setScale(0, RoundingMode.HALF_UP);
                 status = actualTotalAmount.compareTo(currentTotalAmount) == 0 ? NO : AUDITING;
             }
         }
@@ -413,13 +412,15 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         operatingReportCloudService.save(musicGroupPaymentCalender);
         Long calenderId = musicGroupPaymentCalender.getId();
         //保存会员缴费信息
-        MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentBaseCalender.getCalenderMember();
-        if (calenderMember != null) {
-            calenderMember = musicGroupPaymentCalenderMemberService.initBean(calenderMember);
-            calenderMember.setActualAmount(memberActualAmount);
-            calenderMember.setOriginalAmount(memberOriginalAmount);
-            calenderMember.setCalenderId(calenderId);
-            musicGroupPaymentCalenderMemberService.insert(calenderMember);
+        List<MusicGroupPaymentCalenderMember> calenderMemberList = musicGroupPaymentBaseCalender.getCalenderMemberList();
+        if (CollectionUtils.isNotEmpty(calenderMemberList)) {
+            for (MusicGroupPaymentCalenderMember calenderMember : calenderMemberList) {
+                calenderMember = musicGroupPaymentCalenderMemberService.initBean(calenderMember);
+                calenderMember.setActualAmount(memberActualAmount);
+                calenderMember.setOriginalAmount(memberOriginalAmount);
+                calenderMember.setCalenderId(calenderId);
+            }
+            musicGroupPaymentCalenderMemberService.batchInsert(calenderMemberList);
         }
         //保存乐保缴费信息
         MusicGroupPaymentCalenderRepair musicRepair = musicGroupPaymentBaseCalender.getMusicRepair();
@@ -442,17 +443,21 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 e.setOverflowCoursePrice(BigDecimal.ZERO);
             });
             //是否会员团
-            if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE && Objects.nonNull(calenderMember)){
-                //获取云教练溢出费用
-                BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
-                        calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
-                calenderMember.setIncome(courseIncome);
-                musicGroupPaymentCalenderMemberService.update(calenderMember);
-                //获取云教练溢出费用
-                BigDecimal currentFee = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
-                        calenderMember.getNum(), MemberFeeSettingServiceImpl::getCurrentFee);
+            if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE && CollectionUtils.isNotEmpty(calenderMemberList)){
+                BigDecimal totalCourseIncome = BigDecimal.ZERO;
+                BigDecimal currentFee = BigDecimal.ZERO;
+                for (MusicGroupPaymentCalenderMember calenderMember : calenderMemberList) {
+                    //获取云教练溢出费用
+                    BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), calenderMember.getMemberRankSettingId(), calenderMember.getPeriod(),
+                            calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
+                    calenderMember.setIncome(courseIncome);
+                    //获取云教练溢出费用
+                    currentFee = currentFee.add(memberFeeSettingService.getAmount(musicGroup.getOrganId(), calenderMember.getMemberRankSettingId(), calenderMember.getPeriod(),
+                            calenderMember.getNum(), MemberFeeSettingServiceImpl::getCurrentFee));
+                }
+                musicGroupPaymentCalenderMemberService.batchUpdate(calenderMemberList);
                 //平摊金额
-                distributeTotalAmount(courseSettingsList,currentFee.subtract(courseIncome));
+                distributeTotalAmount(courseSettingsList,currentFee.subtract(totalCourseIncome));
             }
             musicGroupPaymentCalender.setMusicGroupPaymentCalenderCourseSettingsList(courseSettingsList);
             musicGroupPaymentCalenderCourseSettingsService.batchInsert(musicGroupPaymentCalender);
@@ -460,7 +465,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         //保存商品缴费信息
         if (musicGroupPaymentCalender.getPaymentType() == GOODS_PURCHASE) {
             if(CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getCalenderGoodsList())){
-                List<Integer> goodsIds = musicGroupPaymentBaseCalender.getCalenderGoodsList().stream().map(e -> e.getGoodsId()).collect(Collectors.toList());
+                List<Integer> goodsIds = musicGroupPaymentBaseCalender.getCalenderGoodsList().stream().map(MusicGroupPaymentCalenderGoods::getGoodsId).collect(Collectors.toList());
                 Map<Integer, Goods> goodsMap = goodsDao.getGoodies(goodsIds).stream().collect(Collectors.toMap(Goods::getId, e -> e));
                 for (MusicGroupPaymentCalenderGoods e : musicGroupPaymentBaseCalender.getCalenderGoodsList()) {
                     Goods goods = goodsMap.get(e.getGoodsId());
@@ -506,6 +511,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             this.updateNoPaymentAndZeroPaymentStatus(musicGroupPaymentCalender, true);
             List<MusicGroupPaymentCalenderCourseSettings> settingsList = musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList();
             // 学生加到班级
+            assert calenderAddStudent != null;
             classGroupService.addStudentToClassGroupAndCourseArranging(calenderAddStudent.getStudentIds(), calenderAddStudent.getClassGroupIds(),
                     batchNo, settingsList, musicGroup);
             //记录经营报表学员课程费用
@@ -531,7 +537,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         }
         BigDecimal remainingAmount = totalAmount;
         int lastIndex = settings.size() - 1;
-        BigDecimal totalUnitPrice = settings.stream().map(e -> e.getUnitPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal totalUnitPrice = settings.stream().map(MusicGroupPaymentCalenderCourseSettings::getUnitPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
 
         // 分摊总金额
         for (int i = 0; i < lastIndex; i++) {
@@ -568,7 +574,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             }
         }
         List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = musicGroupPaymentCalenderDetailDao.queryNotPaymentStudentByUserIdAndMusicGroupId(userId, musicGroup.getId());
-        if (musicGroupPaymentCalenderDetailList != null && musicGroupPaymentCalenderDetailList.size() > 0) {
+        if (CollectionUtils.isNotEmpty(musicGroupPaymentCalenderDetailList)) {
             throw new BizException("创建缴费失败:已存在缴费项目");
         }
     }
@@ -576,17 +582,17 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
     public Map<String, Object> getCalenderDetail(Map<String, Object> result, Long calenderId) {
         //课程
         List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsService.queryCalenderCourseSettings(calenderId);
-        result.put("course", courseSettingsList==null?null:courseSettingsList.size() == 0?null:courseSettingsList);
+        result.put("course", CollectionUtils.isEmpty(courseSettingsList)?null:courseSettingsList);
         //乐保
         result.put("repair", musicGroupPaymentCalenderRepairService.findByCalenderId(calenderId));
-        MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(calenderId);
+        List<MusicGroupPaymentCalenderMember> calenderMemberList = musicGroupPaymentCalenderMemberService.findByCalenderId(calenderId);
         //会员信息
-        result.put("member", calenderMember);
+        result.put("member", calenderMemberList);
         //活动相关信息
         List<MusicGroupPaymentCalenderActivity> byCalenderId = musicGroupPaymentCalenderActivityService.findByCalenderId(calenderId);
-        result.put("activity", byCalenderId==null?null:byCalenderId.size() == 0?null:byCalenderId);
-        if (calenderMember != null) {
-            result.put("memberPrivilegesItemList", memberRankPrivilegesService.queryByMemberRankId(calenderMember.getMemberRankSettingId()));
+        result.put("activity", CollectionUtils.isEmpty(byCalenderId)?null:byCalenderId);
+        if (CollectionUtils.isNotEmpty(calenderMemberList)) {
+            result.put("memberPrivilegesItemList", memberRankPrivilegesService.queryByMemberRankIds(calenderMemberList.stream().map(MusicGroupPaymentCalenderMember::getMemberRankSettingId).collect(Collectors.toList())));
         }
         //获取商品采购信息
         result.put("goods",musicGroupPaymentCalenderGoodsService.lambdaQuery().eq(MusicGroupPaymentCalenderGoods::getCalenderId,calenderId).list());
@@ -616,14 +622,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         MusicGroupPaymentCalender calender = musicGroupPaymentCalenderDao.get(id);
         //统计预计缴费人数
         Map<Long, Long> expectNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countExpectNum(id));
-        if (expectNumMap != null) {
-            calender.setExpectNum(expectNumMap.get(id) == null ? 0 : expectNumMap.get(id).intValue());
-        }
+        calender.setExpectNum(expectNumMap.get(id) == null ? 0 : expectNumMap.get(id).intValue());
         //统计实际缴费人数
         Map<Long, Long> actualNumMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.countActualNum(id));
-        if (actualNumMap != null) {
-            calender.setActualNum(actualNumMap.get(id) == null ? 0 : actualNumMap.get(id).intValue());
-        }
+        calender.setActualNum(actualNumMap.get(id) == null ? 0 : actualNumMap.get(id).intValue());
         //如果是学校缴费并且金额不为0,返回费用信息
         if (calender.getPayUserType() == SCHOOL && calender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) > 0){
             List<MusicGroupCalenderRefundPeriod> list = musicGroupCalenderRefundPeriodService.findByCalenderId(id);
@@ -633,7 +635,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             } else {
                 List<MusicGroupCalenderRefundPeriodWrapper.MusicGroupCalenderRefundPeriod> parseArray = JSON.parseArray(JSON.toJSONString(list), MusicGroupCalenderRefundPeriodWrapper.MusicGroupCalenderRefundPeriod.class);
 
-                List<Integer> userIds = list.stream().map(o -> o.getResponsiblePerson()).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+                List<Integer> userIds = list.stream().map(MusicGroupCalenderRefundPeriod::getResponsiblePerson).filter(Objects::nonNull).distinct().collect(Collectors.toList());
                 if (CollectionUtils.isNotEmpty(userIds)) {
                     Map<Long, SysUser> mapByIds = sysUserService.getMapByIds(userIds);
                     parseArray.forEach(o -> {
@@ -680,7 +682,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         String batchNo = musicGroupPaymentCalenderDto.getBatchNo();
 
         List<MusicGroupPaymentCalender> musicGroupPaymentCalenderList = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
-        if (musicGroupPaymentCalenderList == null || musicGroupPaymentCalenderList.size() == 0) {
+        if (CollectionUtils.isEmpty(musicGroupPaymentCalenderList)) {
             throw new BizException("[批次号]参数错误");
         }
         PaymentCalenderStatusEnum status = musicGroupPaymentCalenderList.get(0).getStatus();
@@ -717,7 +719,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         List<Integer> studentIdList = JSON.parseArray(adjust.getStudentIds(), Integer.class);
         //获取欠费学员列表
         List<Integer> noPaymentUserIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(musicGroup.getId(), studentIdList,null);
-        if (noPaymentUserIds.size() > 0) {
+        if (CollectionUtils.isNotEmpty(noPaymentUserIds)) {
             throw new BizException("操作失败:有欠费的学员不允许创建缴费");
         }
         //获取缴费状态在审核中或者已拒绝的缴费项目的学员
@@ -751,8 +753,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         musicGroupPaymentCalender.setMemo(musicGroupPaymentCalenderDto.getMemo());
         musicGroupPaymentCalender.setMusicGroupId(musicGroupId);
         musicGroupPaymentCalender.setMusicGroupOrganizationCourseSettingId(musicGroupPaymentCalenderDto.getMusicGroupOrganizationCourseSettingId());
-        musicGroupPaymentCalender.setOriginalTotalAmount(calenderStudentDetails.stream().map(e -> e.getCourseOriginalPrice()).reduce(BigDecimal.ZERO, BigDecimal::add));
-        musicGroupPaymentCalender.setCurrentTotalAmount(calenderStudentDetails.stream().map(e -> e.getCourseCurrentPrice()).reduce(BigDecimal.ZERO, BigDecimal::add));
+        musicGroupPaymentCalender.setOriginalTotalAmount(calenderStudentDetails.stream().map(MusicGroupPaymentCalenderStudentDetail::getCourseOriginalPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
+        musicGroupPaymentCalender.setCurrentTotalAmount(calenderStudentDetails.stream().map(MusicGroupPaymentCalenderStudentDetail::getCourseCurrentPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
         musicGroupPaymentCalender.setPaymentType(paymentType);
         musicGroupPaymentCalender.setPayUserType(musicGroupPaymentCalenderDto.getPayUserType());
         musicGroupPaymentCalender.setStartPaymentDate(musicGroupPaymentDateRange.getStartPaymentDate());
@@ -854,15 +856,15 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             if(CollectionUtils.isNotEmpty(calenderActivities)){
                 List<VipGroupActivity> vipGroupActivities = vipGroupActivityDao.queryByIds(calenderActivities.stream().
                         map(e -> e.getActivityId().toString()).distinct().collect(Collectors.joining(",")));
-                collect = vipGroupActivities.stream().collect(Collectors.groupingBy(e -> e.getId(),
+                collect = vipGroupActivities.stream().collect(Collectors.groupingBy(VipGroupActivity::getId,
                         Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
             }
-            MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(musicGroupPaymentCalender.getId());
+            List<MusicGroupPaymentCalenderMember> calenderMemberList = musicGroupPaymentCalenderMemberService.findByCalenderId(musicGroupPaymentCalender.getId());
             for (String studentId : studentIdStr.split(",")) {
                 if (termCourseDetail != null) {
                     //是否已经预排部分课程
                     List<CourseSchedule> courseSchedules = courseScheduleDao.queryPreCourseListByMusicGroupId(musicGroup.getId());
-                    if (courseSchedules.size() > 0) {
+                    if (CollectionUtils.isNotEmpty(courseSchedules)) {
                         throw new BizException("操作失败:该乐团存在预排课课程,请优先完成预排课");
                     } else {
                         MusicGroupSchoolTermStudentCourseDetail studentCourseDetail = new MusicGroupSchoolTermStudentCourseDetail();
@@ -886,21 +888,23 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 //如果是0元那么更新fee表和studentRegistration表
                 if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0) {
                     // 添加会员有效时长
-                    if (calenderMember != null) {
-                        CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
-                        cloudTeacherOrder.setLevel(calenderMember.getMemberRankSettingId());
-                        cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
-                        cloudTeacherOrder.setType(calenderMember.getPeriod());
-                        cloudTeacherOrder.setStudentId(Integer.parseInt(studentId));
-                        cloudTeacherOrder.setTime(calenderMember.getNum().intValue());
-                        cloudTeacherOrder.setAmount(BigDecimal.ZERO);
-                        cloudTeacherOrder.setStatus(1);
-                        cloudTeacherOrder.setRemark("进行中乐团0元加学生");
-                        cloudTeacherOrder.setMusicGroupId(musicGroup.getId());
-                        cloudTeacherOrderService.save(cloudTeacherOrder,calenderMember.getAutoActivationFlag());
+                    if (CollectionUtils.isNotEmpty(calenderMemberList)) {
+                        for (MusicGroupPaymentCalenderMember calenderMember : calenderMemberList) {
+                            CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+                            cloudTeacherOrder.setLevel(calenderMember.getMemberRankSettingId());
+                            cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
+                            cloudTeacherOrder.setType(calenderMember.getPeriod());
+                            cloudTeacherOrder.setStudentId(Integer.parseInt(studentId));
+                            cloudTeacherOrder.setTime(calenderMember.getNum().intValue());
+                            cloudTeacherOrder.setAmount(BigDecimal.ZERO);
+                            cloudTeacherOrder.setStatus(1);
+                            cloudTeacherOrder.setRemark("进行中乐团0元加学生");
+                            cloudTeacherOrder.setMusicGroupId(musicGroup.getId());
+                            cloudTeacherOrderService.save(cloudTeacherOrder,calenderMember.getAutoActivationFlag());
+                        }
                     }
                     //添加小课包
-                    if (calenderActivities != null && calenderActivities.size() > 0) {
+                    if (CollectionUtils.isNotEmpty(calenderActivities)) {
                         List<ActivityUserMapper> activityUserMapperList = new ArrayList<>();
                         for (MusicGroupPaymentCalenderActivity calenderActivity : calenderActivities) {
                             ActivityUserMapper activityUserMapper = new ActivityUserMapper();
@@ -950,10 +954,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = musicGroupPaymentCalenderDao.queryAuditList(params);
-            List<Integer> collect = dataList.stream().map(e -> e.getOrganId()).collect(Collectors.toList());
+            List<Integer> collect = dataList.stream().map(MusicGroupPaymentCalenderAuditDto::getOrganId).collect(Collectors.toList());
             collect.removeAll(Collections.singleton(null));
             Map<Integer, String> organNameMap = getMap("organization", "id_", "name_", collect, queryInfo.getTenantId(), Integer.class, String.class);
-            List<Integer> operatorIds = dataList.stream().map(e -> e.getOperator()).collect(Collectors.toList());
+            List<Integer> operatorIds = dataList.stream().map(MusicGroupPaymentCalenderAuditDto::getOperator).collect(Collectors.toList());
             operatorIds.removeAll(Collections.singleton(null));
             Map<Integer, String> realNameMap = getMap("sys_user", "id_", "real_name_", operatorIds, queryInfo.getTenantId(), Integer.class, String.class);
             dataList.forEach(e -> {
@@ -975,7 +979,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         calenderAuditDetailDto.setAuditDto(auditDto);
         //获取缴费周期
         List<MusicGroupPaymentCalender> groupPaymentCalenders = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
-        if (groupPaymentCalenders == null || groupPaymentCalenders.size() == 0) {
+        if (CollectionUtils.isEmpty(groupPaymentCalenders)) {
             throw new BizException("缴费项目异常,请联系管理员");
         }
         calenderAuditDetailDto.setMusicGroupPaymentCalenders(groupPaymentCalenders);
@@ -1058,7 +1062,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 List<Integer> userIds = Arrays.stream(calender.getStudentIds().split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
                 //获取欠费学员列表
                 List<Integer> noPaymentUserIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(calender.getMusicGroupId(), userIds,null);
-                if (noPaymentUserIds.size() > 0) {
+                if (CollectionUtils.isNotEmpty(noPaymentUserIds)) {
                     throw new BizException("{} 有欠费的学员不允许创建缴费", musicGroup.getName());
                 }
                 //获取缴费状态在审核中或者已拒绝的缴费项目的学员
@@ -1123,7 +1127,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 String orderNo = "Y" + idGeneratorService.generatorId("payment");
                 //获取账期金额
                 List<MusicGroupCalenderRefundPeriod> refundPeriods = musicGroupCalenderRefundPeriodService.findByCalenderId(calender.getId());
-                BigDecimal totalAmount = refundPeriods.stream().map(e -> e.getRefundAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal totalAmount = refundPeriods.stream().map(MusicGroupCalenderRefundPeriod::getRefundAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
                 //管乐迷应收订单创建
                 StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
                 studentPaymentOrder.setActualAmount(totalAmount);
@@ -1161,7 +1165,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
     public void saveSellOrder(List<MusicGroupPaymentCalenderGoods> goods, StudentPaymentOrder studentPaymentOrder) {
         List<SellOrder> sellOrderList = new ArrayList<>();
-        BigDecimal originalTotalAmount = goods.stream().map(e -> e.getTotalPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal originalTotalAmount = goods.stream().map(MusicGroupPaymentCalenderGoods::getTotalPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
         //获取优惠金额
         BigDecimal totalDiscountAmount = originalTotalAmount.subtract(studentPaymentOrder.getExpectAmount());
         //待分配优惠
@@ -1187,7 +1191,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             for (Integer i = 0; i < calenderGood.getNum(); i++) {
                 List<ComplementGoodsDto> goodsDtoList = JSON.parseArray(calenderGood.getChildGoodsJson(), ComplementGoodsDto.class);
                 //获取总成本
-                BigDecimal totalCostPrice = goodsDtoList.stream().map(e->e.getOrganCostPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+                BigDecimal totalCostPrice = goodsDtoList.stream().map(ComplementGoodsDto::getOrganCostPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
                 //待分配金额
                 BigDecimal totalAmount;
                 if(i == calenderGood.getNum() - 1){
@@ -1246,7 +1250,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
     public void updateSellOrder(List<SellOrder> sellOrderList, StudentPaymentOrder studentPaymentOrder) {
         //获取总价
-        BigDecimal totalCostPrice = sellOrderList.stream().map(e->e.getExpectAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal totalCostPrice = sellOrderList.stream().map(SellOrder::getExpectAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
         //待分配金额
         BigDecimal waitAmount = studentPaymentOrder.getExpectAmount();
         for (int i = 0; i < sellOrderList.size(); i++) {
@@ -1369,7 +1373,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         
         for (String batchNo : split) {
             List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
-            if (musicGroupPaymentCalenders == null || musicGroupPaymentCalenders.size() == 0) {
+            if (CollectionUtils.isEmpty(musicGroupPaymentCalenders)) {
                 throw new BizException("缴费项目不存在");
             }
             for (MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenders) {
@@ -1410,7 +1414,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         if (studentIds == null) {
             studentIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentStudentIds(calenderId);
         }
-        if (studentIds.size() > 0) {
+        if (CollectionUtils.isNotEmpty(studentIds)) {
             String baseUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL_MDAYA);
             StringBuffer memo = new StringBuffer("4?").append(baseUrl).append("/#/musicGroupRenew?calenderId=").append(calenderId).append("&id=").append(musicGroup.getId());
             Map<Integer, String> push = new HashMap<>(studentIds.size());
@@ -1421,7 +1425,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
             //获取未缴费且不是0元的学员列表
             Map<Integer, String> studentMaps = MapUtil.convertMybatisMap(musicGroupPaymentCalenderDetailDao.queryNoPaymentAndNotZeroStudent(calenderId, studentIds));
-            if (studentMaps.size() > 0) {
+            if (!studentMaps.isEmpty()) {
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_WAIT_RENEW_MESSAGE, studentMaps,
                         null, 0, memo.toString(), null, musicGroup.getName());
             }
@@ -1432,7 +1436,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public void revoke(String batchNo) {
         List<MusicGroupPaymentCalender> calenders = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
-        if (calenders.size() == 0) {
+        if (CollectionUtils.isEmpty(calenders)) {
             throw new BizException("缴费批次不存在");
         }
         SysUser sysUser = sysUserService.getUser();
@@ -1475,9 +1479,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = musicGroupPaymentCalenderDao.queryCalenderPage(params);
-            Set<Integer> organIdList = dataList.stream().map(e -> e.getOrganId()).collect(Collectors.toSet());
+            Set<Integer> organIdList = dataList.stream().map(MusicGroupPaymentCalenderResultDto::getOrganId).collect(Collectors.toSet());
             Map<Integer, String> organNameMap = getMap("organization", "id_", "name_", organIdList, queryInfo.getTenantId(), Integer.class, String.class);
-            List<Integer> operatorIds = dataList.stream().map(e -> e.getOperator()).collect(Collectors.toList());
+            List<Integer> operatorIds = dataList.stream().map(MusicGroupPaymentCalender::getOperator).collect(Collectors.toList());
             operatorIds.removeAll(Collections.singleton(null));
             Map<Integer, String> realNameMap = getMap("sys_user", "id_", "real_name_", operatorIds, queryInfo.getTenantId(), Integer.class, String.class);
             dataList.forEach(e -> {
@@ -1532,13 +1536,18 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
     @Override
     public BigDecimal getMemberAmount(Long calenderId) {
-        return getActualAmount(musicGroupPaymentCalenderMemberService.findByCalenderId(calenderId));
+        List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberService.findByCalenderId(calenderId);
+        if (CollectionUtils.isEmpty(calenderMembers)) {
+            return BigDecimal.ZERO;
+        }
+        //汇总实际金额
+        return calenderMembers.stream().map(MusicGroupPaymentCalenderBase::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
     }
 
     @Override
     public BigDecimal getActivityAmount(List<Long> buyCalenderActivityIdList) {
         List<MusicGroupPaymentCalenderActivity> activityList = musicGroupPaymentCalenderActivityService.findByIds(buyCalenderActivityIdList);
-        return activityList.stream().map(e -> e.getActualAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
+        return activityList.stream().map(MusicGroupPaymentCalenderBase::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
     }
 
     @Override
@@ -1573,7 +1582,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
     }
 
     @Override
-    public Object queryUser(MusicGroupPaymentCalenderQueryInfo queryInfo) {
+    public List<Map<String,String>> queryUser(MusicGroupPaymentCalenderQueryInfo queryInfo) {
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
         if ("MUSIC".equals(queryInfo.getType())) {

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

@@ -465,13 +465,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	public void importStudentToMusicGroup1(List<MusicGroupPaymentImportDto> importDtos, MusicGroupPaymentCalender calender) throws Exception {
 		String musicGroupId = calender.getMusicGroupId();
 		//查询导入的声部是否正确
-    	List<String> subjectNameList = importDtos.stream().distinct().map(t->t.getSubjectName()).distinct().collect(Collectors.toList());
+    	List<String> subjectNameList = importDtos.stream().distinct().map(MusicGroupPaymentImportDto::getSubjectName).distinct().collect(Collectors.toList());
 
     	List<MusicGroupSubjectPlan> musicGroupSubjectPlanList = musicGroupSubjectPlanDao.getMusicSubjectClassPlan(musicGroupId);
 
     	Map<String,Integer> subjectMap = musicGroupSubjectPlanList.stream().collect(Collectors.toMap(MusicGroupSubjectPlan :: getSubName, MusicGroupSubjectPlan :: getSubjectId));
 
-    	List<String> allSubjectNameList = musicGroupSubjectPlanList.stream().map(t -> t.getSubName()).collect(Collectors.toList());
+    	List<String> allSubjectNameList = musicGroupSubjectPlanList.stream().map(MusicGroupSubjectPlan::getSubName).collect(Collectors.toList());
 
     	for(String subName : subjectNameList){
     		if(!allSubjectNameList.contains(subName)){
@@ -481,10 +481,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		Date now = new Date();
 		Long calenderId = calender.getId();
 		Boolean freeFlag = calender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0;
-		List<String> phones = importDtos.stream().map(e -> e.getPhone()).collect(Collectors.toList());
+		List<String> phones = importDtos.stream().map(MusicGroupPaymentImportDto::getPhone).collect(Collectors.toList());
         List<BasicUserDto> userList = teacherDao.queryUserByPhones(phones);
 //		List<String> existPhones = studentDao.queryExistStuByPhone(phones);
-		Map<String, BasicUserDto> userDtoMap = userList.stream().collect(Collectors.groupingBy(e -> e.getPhone(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
+		Map<String, BasicUserDto> userDtoMap = userList.stream().collect(Collectors.groupingBy(BasicUserDto::getPhone, Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
 		Organization organization = organizationDao.get(calender.getOrganId());
 		//检查用户是否已入团或在其他机构已注册
 		List<StudentRegistration> allList = new ArrayList<>();
@@ -493,7 +493,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		Student student = null;
 		Integer applyNum = 0;
 		MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-		MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberDao.findByCalenderId(calenderId);
+		List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberDao.findByCalenderId(calenderId);
 		MusicGroupPaymentCalenderRepair calenderRepair = musicGroupPaymentCalenderRepairDao.findByCalenderId(calenderId);
 		List<MusicGroupPaymentCalenderActivity> calenderActivities = musicGroupPaymentCalenderActivityDao.findByCalenderId(calenderId);
 		List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettings(calenderId);
@@ -589,7 +589,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			studentPaymentOrder.setRemitFee(BigDecimal.ZERO);
 			studentPaymentOrder.setCourseRemitFee(BigDecimal.ZERO);
 			studentPaymentOrderService.insert(studentPaymentOrder);
-			List<StudentPaymentOrderDetail> orderDetails = studentRegistrationService.addOrder1(studentPaymentOrder, calender, courseSettings, calenderMember, calenderRepair, calenderActivities);
+			List<StudentPaymentOrderDetail> orderDetails = studentRegistrationService.addOrder1(studentPaymentOrder,
+					calender,
+					courseSettings,
+					calenderMembers,
+					calenderRepair,
+					calenderActivities);
 			studentPaymentRouteOrderService.addRouteOrder(orderNo, calender.getOrganId(), calender.getCurrentTotalAmount());
 			studentPaymentOrderDetailService.addOrderDetailTo1(studentPaymentOrder, musicGroup, studentRegistration,orderDetails);
 		}
@@ -1165,7 +1170,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 					}
 				}
 				MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
-				MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberDao.findByCalenderId(calenderId);
+				List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberDao.findByCalenderId(calenderId);
 				MusicGroupPaymentCalenderRepair calenderRepair = musicGroupPaymentCalenderRepairDao.findByCalenderId(calenderId);
 				List<MusicGroupPaymentCalenderActivity> calenderActivities = musicGroupPaymentCalenderActivityDao.findByCalenderId(calenderId);
 				List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettings(calenderId);
@@ -1195,7 +1200,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 					studentPaymentOrderDao.insert(studentPaymentOrder);
 					StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(studentPaymentOrder.getUserId(), calender.getMusicGroupId());
 					//支付成功后处理课程、云教练、活动等数据
-					List<StudentPaymentOrderDetail> orderDetails = studentRegistrationService.addOrder1(studentPaymentOrder, calender, courseSettings, calenderMember, calenderRepair, calenderActivities);
+					List<StudentPaymentOrderDetail> orderDetails = studentRegistrationService.addOrder1(studentPaymentOrder, calender, courseSettings, calenderMembers, calenderRepair, calenderActivities);
 					studentPaymentRouteOrderService.addRouteOrder(orderNo, calender.getOrganId(), calender.getCurrentTotalAmount());
 					studentPaymentOrderDetailService.addOrderDetailTo1(studentPaymentOrder, musicGroup, studentRegistration,orderDetails);
 				}

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

@@ -530,7 +530,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
                         orderTotalAmount = orderTotalAmount.add(subjectChange.getChangeAccessoriesPrice());
                     }
                 }
-            } else if (isChangeAccessories == false || isChangeMusical == false) {
+            } else if (!isChangeAccessories || !isChangeMusical) {
                 if (subjectChange != null) {
                     if(deliveryStatus != null){
     					if (deliveryStatus == 0 && StringUtils.isNotBlank(subjectChange.getDeliveryBatchNo())) {
@@ -621,8 +621,8 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
             if (spod.getType() == OrderDetailTypeEnum.ACCESSORIES || spod.getType() == OrderDetailTypeEnum.MUSICAL
                     || spod.getType() == OrderDetailTypeEnum.TEACHING) {
                 List<Goods> goods = goodsService.findGoodsByIds(spod.getGoodsIdList());
-                if (goods != null && goods.size() > 0) {
-                    spod.setName(goods.stream().map(t -> t.getName()).collect(Collectors.joining(",")));
+                if (CollectionUtils.isNotEmpty(goods)) {
+                    spod.setName(goods.stream().map(Goods::getName).collect(Collectors.joining(",")));
                 }
             }
         }
@@ -706,7 +706,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 
         //活动小课包处理
         List<StudentPaymentOrderDetail> activity = allDetails.stream().filter(o -> o.getType() == PRACTICE || o.getType() == VIP).collect(Collectors.toList());
-        if (activity != null && activity.size() > 0) {
+        if (CollectionUtils.isNotEmpty(activity)) {
             activityUserMapperService.addOrderDetail2Activity(studentPaymentOrder, activity);
         }
 
@@ -729,22 +729,26 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
             }
             if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
                 //获取云教练溢出费用
-                MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberDao.findByCalenderId(paymentCalenderDetail.getMusicGroupPaymentCalenderId());
-                BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
-                        calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
-                if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
-                    BigDecimal subtract = calenderMember.getActualAmount().subtract(courseIncome);
-                    //累加充值金额
-                    studentRegistrationDao.updateCourseFee(studentRegistration.getId(),subtract);
-                    //添加日志
-                    StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
-                    studentCourseFeeDetail.setTenantId(tenantId);
-                    studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
-                    studentCourseFeeDetail.setAmount(subtract);
-                    studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(subtract));
-                    studentCourseFeeDetail.setMemo("会员团,购买云教练赠送课费");
-                    studentCourseFeeDetail.setOperator(userId);
-                    studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
+                List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberDao.findByCalenderId(paymentCalenderDetail.getMusicGroupPaymentCalenderId());
+                if (CollectionUtils.isNotEmpty(calenderMembers)) {
+                    for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
+                        BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
+                                calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
+                        if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
+                            BigDecimal subtract = calenderMember.getActualAmount().subtract(courseIncome);
+                            //累加充值金额
+                            studentRegistrationDao.updateCourseFee(studentRegistration.getId(),subtract);
+                            //添加日志
+                            StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
+                            studentCourseFeeDetail.setTenantId(tenantId);
+                            studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
+                            studentCourseFeeDetail.setAmount(subtract);
+                            studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(subtract));
+                            studentCourseFeeDetail.setMemo("会员团,购买云教练赠送课费");
+                            studentCourseFeeDetail.setOperator(userId);
+                            studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
+                        }
+                    }
                 }
             }
             BigDecimal cloudTeacherFee = allDetails.stream().filter(o -> o.getType() == CLOUD_TEACHER)
@@ -805,7 +809,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
 
         //活动小课包处理
         List<StudentPaymentOrderDetail> activity = allDetails.stream().filter(o -> o.getType() == PRACTICE || o.getType() == VIP).collect(Collectors.toList());
-        if (activity != null && activity.size() > 0) {
+        if (CollectionUtils.isNotEmpty(activity)) {
             activityUserMapperService.addOrderDetail2Activity(studentPaymentOrder, activity);
         }
 
@@ -828,22 +832,26 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
             }
             if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
                 //获取云教练溢出费用
-                MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberDao.findByCalenderId(paymentCalenderDetail.getMusicGroupPaymentCalenderId());
-                BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
-                        calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
-                if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
-                    BigDecimal subtract = calenderMember.getActualAmount().subtract(courseIncome);
-                    //累加充值金额
-                    studentRegistrationDao.updateCourseFee(studentRegistration.getId(),subtract);
-                    //添加日志
-                    StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
-                    studentCourseFeeDetail.setTenantId(tenantId);
-                    studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
-                    studentCourseFeeDetail.setAmount(subtract);
-                    studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(subtract));
-                    studentCourseFeeDetail.setMemo("会员团,购买云教练赠送课费");
-                    studentCourseFeeDetail.setOperator(userId);
-                    studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
+                List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberDao.findByCalenderId(paymentCalenderDetail.getMusicGroupPaymentCalenderId());
+                if (CollectionUtils.isNotEmpty(calenderMembers)) {
+                    for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
+                        BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
+                                calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
+                        if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
+                            BigDecimal subtract = calenderMember.getActualAmount().subtract(courseIncome);
+                            //累加充值金额
+                            studentRegistrationDao.updateCourseFee(studentRegistration.getId(),subtract);
+                            //添加日志
+                            StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
+                            studentCourseFeeDetail.setTenantId(tenantId);
+                            studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
+                            studentCourseFeeDetail.setAmount(subtract);
+                            studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(subtract));
+                            studentCourseFeeDetail.setMemo("会员团,购买云教练赠送课费");
+                            studentCourseFeeDetail.setOperator(userId);
+                            studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
+                        }
+                    }
                 }
             }
             BigDecimal cloudTeacherFee = allDetails.stream().filter(o -> o.getType() == CLOUD_TEACHER)

+ 33 - 27
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -701,20 +701,23 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         //云教练/云教练+  todo  团练宝
         if (registerPayDto.getBuyCloudTeacher() || (Objects.nonNull(calender) && calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL)) {
-            MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(studentPaymentOrder.getCalenderId());
-            if(Objects.nonNull(calenderMember)){
-                StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
-                cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
-                cloudTeacherOrderDetail.setPrice(calenderMember.getActualAmount());
-                if(calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL){
-                    cloudTeacherOrderDetail.setPrice(BigDecimal.ZERO);
+            List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberService.findByCalenderId(studentPaymentOrder.getCalenderId());
+            if(CollectionUtils.isNotEmpty(calenderMembers)){
+                for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
+                    StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
+                    cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
+                    cloudTeacherOrderDetail.setPrice(calenderMember.getActualAmount());
+                    if(calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL){
+                        cloudTeacherOrderDetail.setPrice(BigDecimal.ZERO);
+                    }
+                    cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
+                    cloudTeacherOrderDetail.setCreateTime(date);
+                    cloudTeacherOrderDetail.setUpdateTime(date);
+                    cloudTeacherOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+                    cloudTeacherOrderDetail.setIsRenew(0);
+                    cloudTeacherOrderDetail.setStudentInstrumentId(calenderMember.getMemberRankSettingId().longValue());
+                    studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
                 }
-                cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
-                cloudTeacherOrderDetail.setCreateTime(date);
-                cloudTeacherOrderDetail.setUpdateTime(date);
-                cloudTeacherOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
-                cloudTeacherOrderDetail.setIsRenew(0);
-                studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
             }
         }
 
@@ -811,7 +814,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     public List<StudentPaymentOrderDetail> addOrder1(StudentPaymentOrder studentPaymentOrder,
                           MusicGroupPaymentCalender calender,
                           List<MusicGroupPaymentCalenderCourseSettings> newCourses,
-                          MusicGroupPaymentCalenderMember calenderMember,
+                          List<MusicGroupPaymentCalenderMember> calenderMembers,
                           MusicGroupPaymentCalenderRepair calenderRepair,
                           List<MusicGroupPaymentCalenderActivity> calenderActivities
                           ){
@@ -865,19 +868,22 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
 
         //云教练/云教练+  todo  团练宝
-        if(Objects.nonNull(calenderMember)){
-            StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
-            cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
-            cloudTeacherOrderDetail.setPrice(calenderMember.getActualAmount());
-            if(calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL){
-                cloudTeacherOrderDetail.setPrice(BigDecimal.ZERO);
-            }
-            cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
-            cloudTeacherOrderDetail.setCreateTime(date);
-            cloudTeacherOrderDetail.setUpdateTime(date);
-            cloudTeacherOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
-            cloudTeacherOrderDetail.setIsRenew(0);
-            studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
+        if(CollectionUtils.isNotEmpty(calenderMembers)){
+            for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
+                StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
+                cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
+                cloudTeacherOrderDetail.setPrice(calenderMember.getActualAmount());
+                if(calender.getPayUserType() == MusicGroupPaymentCalender.PayUserType.SCHOOL){
+                    cloudTeacherOrderDetail.setPrice(BigDecimal.ZERO);
+                }
+                cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
+                cloudTeacherOrderDetail.setCreateTime(date);
+                cloudTeacherOrderDetail.setUpdateTime(date);
+                cloudTeacherOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+                cloudTeacherOrderDetail.setIsRenew(0);
+                cloudTeacherOrderDetail.setStudentInstrumentId(calenderMember.getMemberRankSettingId().longValue());
+                studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
+            }
         }
         //添加订单明细
         studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);

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

@@ -615,4 +615,7 @@
     <select id="countByMemberRankSetttingId" resultType="int">
         select count(1) from cloud_teacher_order where member_rank_setting_id_ = #{memberRankSettingId}
     </select>
+    <select id="getActivationMaxTime" resultType="java.util.Date">
+        select max(end_time_) from cloud_teacher_order where student_id_ = #{studentId} and level_ = #{level} and status_ = 2
+    </select>
 </mapper>

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/MemberRankPrivilegesMapper.xml

@@ -63,4 +63,10 @@
     <select id="hasPrivileges" resultType="java.lang.Boolean">
 		SELECT COUNT(member_privileges_id_) > 0 FROM member_rank_privileges WHERE member_privileges_id_ = #{parentId}
 	</select>
+    <select id="findByRankSettingIds" resultMap="MemberRankPrivileges">
+		SELECT * FROM member_rank_privileges WHERE member_rank_id_ IN
+		<foreach collection="memberRankIds" item="item" open="(" close=")" separator=",">
+			#{item}
+		</foreach>
+	</select>
 </mapper>

+ 49 - 2
mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMemberMapper.xml

@@ -40,7 +40,17 @@
 		VALUES(#{calenderId},#{name},#{num},#{period,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{memberRankSettingId},#{optionalFlag},#{actualAmount},
 		       #{originalAmount},NOW(),NOW(),#{tenantId},#{autoActivationFlag},#{income})
 	</insert>
-	
+	<insert id="batchInsert">
+		INSERT INTO music_group_payment_calender_member (calender_id_,name_,num_,period_,
+		member_rank_setting_id_,optional_flag_,actual_amount_,original_amount_,create_time_,update_time_,tenant_id_,auto_activation_flag_,income_)
+		VALUES
+		<foreach collection="beans" item="item" index="index" separator=",">
+			(#{item.calenderId},#{item.name},#{item.num},#{item.period,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			 #{item.memberRankSettingId},#{item.optionalFlag},#{item.actualAmount},
+			#{item.originalAmount},NOW(),NOW(),#{item.tenantId},#{item.autoActivationFlag},#{item.income})
+		</foreach>
+	</insert>
+
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderMember">
 		UPDATE music_group_payment_calender_member <set>
@@ -77,7 +87,44 @@
 		update_time_ = NOW()
 	</set> WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
-	
+	<update id="batchUpdate">
+		<foreach collection="beans" item="item" index="index" separator=";">
+			UPDATE music_group_payment_calender_member <set>
+			<if test="item.period != null">
+			period_ = #{item.period,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="item.memberRankSettingId != null">
+			member_rank_setting_id_ = #{item.memberRankSettingId},
+			</if>
+			<if test="item.num != null">
+			num_ = #{item.num},
+			</if>
+			<if test="item.autoActivationFlag != null">
+				auto_activation_flag_ = #{item.autoActivationFlag},
+			</if>
+			<if test="item.calenderId != null">
+			calender_id_ = #{item.calenderId},
+			</if>
+			<if test="item.optionalFlag != null">
+			optional_flag_ = #{item.optionalFlag},
+			</if>
+			<if test="item.actualAmount != null">
+			actual_amount_ = #{item.actualAmount},
+			</if>
+			<if test="item.originalAmount != null">
+			original_amount_ = #{item.originalAmount},
+			</if>
+			<if test="item.income != null">
+				income_ = #{item.income},
+			</if>
+			<if test="item.name != null">
+			name_ = #{item.name},
+			</if>
+			update_time_ = NOW()
+			</set> WHERE id_ = #{item.id} and tenant_id_ = #{item.tenantId}
+		</foreach>
+	</update>
+
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM music_group_payment_calender_member WHERE id_ = #{id}