瀏覽代碼

Merge remote-tracking branch 'origin/saas' into saas

yanite 3 年之前
父節點
當前提交
53c2b30ac9
共有 22 個文件被更改,包括 265 次插入198 次删除
  1. 23 8
      cms/src/main/java/com/ym/mec/cms/interceptor/TenantInterceptor.java
  2. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentCalenderDto.java
  3. 3 43
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalender.java
  4. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupPaymentCalenderService.java
  5. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  6. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EduPracticeGroupServiceImpl.java
  8. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java
  9. 3 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  10. 116 88
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java
  11. 53 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java
  12. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  13. 9 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  14. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  15. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponIssueRecordServiceImpl.java
  16. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantAssetsInfoServiceImpl.java
  17. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantCloudCourseRecordServiceImpl.java
  18. 7 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java
  19. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java
  20. 4 17
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml
  21. 0 3
      mec-common/common-core/src/main/java/com/ym/mec/common/page/PageUtil.java
  22. 4 4
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

+ 23 - 8
cms/src/main/java/com/ym/mec/cms/interceptor/TenantInterceptor.java

@@ -3,6 +3,7 @@ package com.ym.mec.cms.interceptor;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -11,11 +12,14 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.cms.dal.entity.TenantInfo;
 import com.ym.mec.cms.service.TenantInfoService;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.tenant.TenantContextHolder;
 
 public class TenantInterceptor extends HandlerInterceptorAdapter {
 
 	private static final String DATA_SOURCE_ID = "datasourceId";
+	
+	private static final String TENANT_ID = "tenantId";
 
 	@Autowired
 	@Lazy
@@ -27,16 +31,27 @@ public class TenantInterceptor extends HandlerInterceptorAdapter {
 	@Override
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
 		
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		
-		if(sysUser != null && sysUser.getId() != null){
-			TenantContextHolder.setTenantId(sysUser.getTenantId());
-			
-			TenantInfo tenantInfo = tenantInfoService.get(sysUser.getTenantId());
+		String tenantId = request.getParameter(TENANT_ID);
+
+        if (StringUtils.isBlank(tenantId)) {
+            tenantId = request.getHeader(TENANT_ID);
+        }
+
+        if (StringUtils.isBlank(tenantId)) {
+            SysUser sysUser = sysUserFeignService.queryUserInfo();
+            if (sysUser != null && sysUser.getTenantId() != null) {
+                tenantId = sysUser.getTenantId().toString();
+            }
+        }
+        if (StringUtils.isNotBlank(tenantId)) {
+            TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
+            TenantInfo tenantInfo = tenantInfoService.get(Integer.parseInt(tenantId));
 			if(tenantInfo != null){
 				request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
-			}
-		}
+			} else {
+                throw new BizException("机构信息异常,请联系管理员");
+            }
+        }
 		
 		return true;
 	}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupPaymentCalenderDto.java

@@ -54,6 +54,16 @@ public class MusicGroupPaymentCalenderDto extends BaseEntity {
 	//会员等级编号
 	private Integer memberRankSettingId;
 
+	private BigDecimal originalAmount;
+
+	public BigDecimal getOriginalAmount() {
+		return originalAmount;
+	}
+
+	public void setOriginalAmount(BigDecimal originalAmount) {
+		this.originalAmount = originalAmount;
+	}
+
 	public Integer getMemberValidDate() {
 		return memberValidDate;
 	}

+ 3 - 43
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupPaymentCalender.java

@@ -2,20 +2,16 @@ package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.dal.enums.PeriodEnum;
+import com.ym.mec.common.entity.BaseEntity;
+import com.ym.mec.common.enums.BaseEnum;
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
-import com.ym.mec.common.entity.BaseEntity;
-import com.ym.mec.common.enums.BaseEnum;
-
-import static com.ym.mec.biz.dal.enums.PeriodEnum.MONTH;
-
 /**
  * 对应数据库表(music_group_payment_calender):
  */
@@ -205,18 +201,6 @@ public class MusicGroupPaymentCalender extends BaseEntity {
 	//废弃字段
 	private Boolean memberOptionalFlag = false;
 
-	//乐保年限
-	//废弃字段
-	private BigDecimal musicRepairNum = BigDecimal.ZERO;
-
-	//乐保购买价格
-	//废弃字段
-	private BigDecimal musicRepairActualPrice = BigDecimal.ZERO;
-
-	//乐保是否必选
-	//废弃字段
-	private Boolean musicRepairOptionalFlag = false;
-
 	//申请价格
 	private BigDecimal currentTotalAmount;
 
@@ -275,30 +259,6 @@ public class MusicGroupPaymentCalender extends BaseEntity {
 		this.memberOptionalFlag = memberOptionalFlag;
 	}
 
-	public BigDecimal getMusicRepairNum() {
-		return musicRepairNum;
-	}
-
-	public void setMusicRepairNum(BigDecimal musicRepairNum) {
-		this.musicRepairNum = musicRepairNum;
-	}
-
-	public BigDecimal getMusicRepairActualPrice() {
-		return musicRepairActualPrice;
-	}
-
-	public void setMusicRepairActualPrice(BigDecimal musicRepairActualPrice) {
-		this.musicRepairActualPrice = musicRepairActualPrice;
-	}
-
-	public Boolean getMusicRepairOptionalFlag() {
-		return musicRepairOptionalFlag;
-	}
-
-	public void setMusicRepairOptionalFlag(Boolean musicRepairOptionalFlag) {
-		this.musicRepairOptionalFlag = musicRepairOptionalFlag;
-	}
-
 	public PeriodEnum getMemberPeriod() {
 		return memberPeriod;
 	}

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

@@ -14,7 +14,7 @@ import com.ym.mec.common.service.BaseService;
 public interface MusicGroupPaymentCalenderService extends BaseService<Long, MusicGroupPaymentCalender> {
 
 	/**
-	 * 创建缴费信息
+	 * 创建缴费信息(目前只支持合班缴费)
 	 * @param musicGroupPaymentCalenderDto
 	 * @return
 	 */

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -385,6 +385,12 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     //云教练试用时间最晚截止时间
     String EXPERIENCE_MEMBERSHIP_END_TIME = "experience_membership_end_time";
 
+    //小课收入是否由平台收款
+    String IS_OPEN_SMALL_CLASS_INCOME_TO_PLATFORM = "is_open_small_class_income_to_platform";
+
+    //平台收款账户
+    String PLATFORM_PAYEE_ACCOUNT = "platform_payee_account";
+
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig
      * @params paramName

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -4592,6 +4592,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         paymentCalenderDto.setMusicGroupId(musicGroup.getId());
         boolean containsAll = musicGroupPaymentCalenderStudentDetails.containsAll(calenderStudentDetails);
+        BigDecimal originalPrice = BigDecimal.ZERO;
+        if(musicGroupPaymentCalenderStudentDetails != null && musicGroupPaymentCalenderStudentDetails.size() > 0){
+            originalPrice = musicGroupPaymentCalenderStudentDetails.stream().map(e -> e.getCourseCurrentPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
+        }
+        paymentCalenderDto.setOriginalAmount(originalPrice);
         if (!containsAll) {
             paymentCalenderDto.setStatus(AUDITING);
         } else {

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

@@ -1015,7 +1015,7 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         Map result = new HashMap();
         String practiceSubjectIdListConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_SUBJECT_ID_LIST,tenantId);
         if(StringUtils.isEmpty(practiceSubjectIdListConfig)){
-            throw new BizException("请配置陪练课可预约声部");
+            throw new BizException("未设置网管课可选分部,请联系老师");
         }
         SysConfig practiceApplyIntervalTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_INTERVAL_TIME);
         SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);

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

@@ -113,15 +113,15 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 		Long paymentId = memberPayParamDto.getPaymentId();
 		CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(paymentId);
 		if(cloudCoachPaymentProgram == null){
-			throw new BizException("云教练缴费订单不存在,请联系指导老师");
+			throw new BizException("团练保缴费订单不存在,请联系指导老师");
 		}
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		StudentCloudCoachPaymentDetails cloudCoachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(paymentId,sysUser.getId());
 		if(cloudCoachPaymentDetails == null){
-			throw new BizException("您不在当前云教练缴费项目中,请联系指导老师");
+			throw new BizException("您不在当前团练保缴费项目中,请联系指导老师");
 		}
 		if(cloudCoachPaymentDetails.getPaymentStatus() == 1){
-			throw new BizException("当前云教练订单已支付,感谢您的支持");
+			throw new BizException("当前团练保订单已支付,感谢您的支持");
 		}
 		//判断用户是否已存在订单
 		List<StudentPaymentOrder> applyOrderList = studentPaymentOrderService.queryByDealStatus(paymentId.toString(), OrderTypeEnum.MEMBER,DealStatusEnum.ING);

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

@@ -162,10 +162,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			}
 		}
 
-		if ((paymentType == PaymentType.ADD_COURSE)) {
-			if(musicGroupPaymentDateRangeList.size() > 1){
-				throw new BizException("[临时加课]不支持多周期缴费");
-			}
+		if(musicGroupPaymentDateRangeList.size() > 1){
+			throw new BizException("创建缴费失败:不支持多周期缴费");
 		}
 		MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
 		if (musicGroup == null) {
@@ -202,9 +200,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		if (sysUser == null) {
 			throw new BizException("请登录");
 		}
-		if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE && musicGroupPaymentDateRangeList.size() > 1) {
-			throw new BizException("创建缴费失败:会员收费乐团不支持多周期缴费");
-		}
 		// 所有缴费项目已完成排课才能创建下一个缴费项目
 		String organBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null,musicGroupPaymentCalenderDto.getIgnoreBatchNoList());
 		if (StringUtils.isNoneBlank(organBatchNo)) {
@@ -394,6 +389,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				musicGroupPaymentCalender.setMusicGroupPaymentCalenderCourseSettingsList(newCSList);
 			}
 			musicGroupPaymentCalender.setCurrentTotalAmount(totalPaymentAmount);
+			musicGroupPaymentCalender.setOriginalTotalAmount(musicGroupPaymentCalenderDto.getOriginalAmount());
 
 			if (paymentType == PaymentType.MUSIC_APPLY) {
 				if (i == 0) {

+ 116 - 88
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java

@@ -1,10 +1,49 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.function.BiPredicate;
+import java.util.function.Consumer;
+import java.util.function.Function;
+
+import org.apache.commons.lang3.StringUtils;
+import org.redisson.api.RBucket;
+import org.redisson.api.RedissonClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.DigestUtils;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.entity.SysPaymentConfig;
+import com.ym.mec.biz.dal.entity.TenantConfig;
+import com.ym.mec.biz.dal.entity.TenantOrderRecord;
+import com.ym.mec.biz.dal.entity.TenantPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.CloudTeacherOrderService;
+import com.ym.mec.biz.service.OrderPayOpsService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysPaymentConfigService;
+import com.ym.mec.biz.service.TenantConfigService;
+import com.ym.mec.biz.service.TenantOrderRecordService;
+import com.ym.mec.biz.service.TenantPaymentOrderService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.thirdparty.adapay.ConfigInit;
@@ -12,24 +51,6 @@ import com.ym.mec.thirdparty.adapay.Payment;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
 import com.ym.mec.util.json.JsonUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.redisson.api.RBucket;
-import org.redisson.api.RedissonClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.DigestUtils;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.TimeUnit;
-import java.util.function.BiPredicate;
-import java.util.function.Consumer;
-import java.util.function.Function;
 
 /**
  * @author hgw
@@ -56,6 +77,9 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
     private SysConfigService sysConfigService;
 
     @Autowired
+    private SysConfigDao sysConfigDao;
+    
+    @Autowired
     private SysPaymentConfigService sysPaymentConfigService;
 
     //支付类型
@@ -300,77 +324,81 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
         paymentParams.put("pay_amt", payParam.getAmount().setScale(2, RoundingMode.HALF_UP));
         paymentParams.put("goods_title", payParam.getOrderSubject());
         paymentParams.put("goods_desc", payParam.getOrderBody());
+        
+        TenantConfig tenantConfig = tenantConfigService.queryByTenantId(payParam.getTenantId());
+        if (tenantConfig == null) {
+            throw new BizException("机构[{}]信息找不到", payParam.getTenantId());
+        }
+        
+        if (clazz instanceof StudentPaymentOrder || clazz instanceof TenantPaymentOrder) {
+        	
+        	if (payParam.getTenantId() == 1) {
+                // 延时分账
+                paymentParams.put("pay_mode", "delay");
+            } else {
 
-        if (payParam.getTenantId() == 1) {
-            // 延时分账
-            paymentParams.put("pay_mode", "delay");
-        } else {
-            TenantConfig tenantConfig = tenantConfigService.queryByTenantId(payParam.getTenantId());
-            if (tenantConfig == null) {
-                throw new BizException("机构[{}]信息找不到", payParam.getTenantId());
-            }
-            String merNos;
-            BigDecimal amount;
-            Function<BigDecimal, BigDecimal> amountTo = (a) -> a
-                    .multiply(tenantConfig.getChargeRate())
-                    .divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
-
-            if (clazz instanceof StudentPaymentOrder) {
-                StudentPaymentOrder st = (StudentPaymentOrder) clazz;
-                merNos = st.getMerNos();
-                amount = amountTo.apply(st.getActualAmount());
-
-                List<Map<String, Object>> divMemberList = new ArrayList<>();
+                Function<BigDecimal, BigDecimal> amountTo = (a) -> a
+                        .multiply(tenantConfig.getChargeRate())
+                        .divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
+                
+            	StudentPaymentOrder st = (StudentPaymentOrder) clazz;
+            	BigDecimal amount = amountTo.apply(st.getActualAmount()).setScale(2, RoundingMode.HALF_UP);
+		        
+				List<Map<String, Object>> divMemberList = new ArrayList<>();
                 // 实时分账
-                if (amount.doubleValue() > 0) {
-
-                    SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
-                    if (Objects.isNull(config)) {
-                        throw new BizException("平台收款账户没有设置[platform_collection_organ]");
-                    }
-
-                    SysPaymentConfig sysPaymentConfig = sysPaymentConfigService.findPaymentConfigByOrganId(Integer.parseInt(config.getParanValue()));
-
-                    if (sysPaymentConfig == null || StringUtils.isBlank(sysPaymentConfig.getHfMerNo())) {
-                        throw new BizException("分部[{}]没有设置收款账号", config.getParanValue());
-                    }
-
-                    Map<String, Object> divMember = new HashMap<>();
-                    divMember.put("member_id", sysPaymentConfig.getHfMerNo());
-                    divMember.put("amount", amount);
-                    divMember.put("fee_flag", "Y");
-                    divMemberList.add(divMember);
-                }
-
-                Map<String, Object> divMember1 = new HashMap<>();
-                divMember1.put("member_id", merNos);
-                divMember1.put("amount", payParam.getAmount().subtract(amount));
-                divMember1.put("fee_flag", "N");
-                divMemberList.add(divMember1);
-
-                paymentParams.put("div_members", JsonUtil.toJSONString(divMemberList));
-
-            } else if (clazz instanceof TenantOrderRecord) {//向平台支付,不分账
-                TenantOrderRecord tor = (TenantOrderRecord) clazz;
-                merNos = tor.getMerNos();
-
-                List<Map<String, Object>> divMemberList = new ArrayList<>();
-                Map<String, Object> divMember = new HashMap<>();
-                divMember.put("member_id", merNos);
-                divMember.put("amount", tor.getActualAmount());
-                divMember.put("fee_flag", "Y");
-                divMemberList.add(divMember);
-
-                paymentParams.put("div_members", JsonUtil.toJSONString(divMemberList));
-
-            } /*else if (clazz instanceof TenantPaymentOrder) {
-                TenantPaymentOrder tpo = (TenantPaymentOrder) clazz;
-                merNos = tpo.getMerNos();
-                amount = amountTo.apply(tpo.getActualAmount());
-            } */ else {
-                throw new BizException("订单[{}]找不到", payParam.getOrderNo());
+    			if (amount.doubleValue() > 0) {
+    				
+    				/*SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
+    		        if (Objects.isNull(config)) {
+    		            throw new BizException("平台收款账户没有设置[platform_collection_organ]");
+    		        }
+    	        	
+    	        	SysPaymentConfig sysPaymentConfig = sysPaymentConfigService.findPaymentConfigByOrganId(Integer.parseInt(config.getParanValue()));
+    	        	
+    	        	if(sysPaymentConfig == null || StringUtils.isBlank(sysPaymentConfig.getHfMerNo())){
+    	        		throw new BizException("分部[{}]没有设置收款账号", config.getParanValue());
+    	        	}*/
+    				
+    				String platformAccount = sysConfigDao.findConfigValue(SysConfigService.PLATFORM_PAYEE_ACCOUNT);
+    	        	
+    	        	if(StringUtils.isBlank(platformAccount)){
+    	        		throw new BizException("平台收款账户查询失败");
+    	        	}
+    	        	
+    				Map<String, Object> divMember = new HashMap<>();
+    				divMember.put("member_id", platformAccount);
+    				divMember.put("amount", amount);
+    				divMember.put("fee_flag", "Y");
+    				divMemberList.add(divMember);
+    			}
+
+				Map<String, Object> divMember1 = new HashMap<>();
+				divMember1.put("member_id", st.getMerNos());
+				divMember1.put("amount", payParam.getAmount().subtract(amount));
+				if (divMemberList.size() > 0) {
+					divMember1.put("fee_flag", "N");
+				} else {
+					divMember1.put("fee_flag", "Y");
+				}
+				divMemberList.add(divMember1);
+				
+				paymentParams.put("div_members", JsonUtil.toJSONString(divMemberList));
             }
-        }
+        	
+        } else if (clazz instanceof TenantOrderRecord) {//向平台支付,不分账
+        	TenantOrderRecord tor = (TenantOrderRecord) clazz;
+            
+            List<Map<String, Object>> divMemberList = new ArrayList<>();
+			Map<String, Object> divMember = new HashMap<>();
+			divMember.put("member_id", tor.getMerNos());
+			divMember.put("amount", tor.getActualAmount());
+			divMember.put("fee_flag", "Y");
+			divMemberList.add(divMember);
+
+			paymentParams.put("div_members", JsonUtil.toJSONString(divMemberList));
+        } else {
+	        throw new BizException("订单[{}]找不到", payParam.getOrderNo());
+	    }
 
         //手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方
         //paymentParams.put("fee_mode", "I");

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

@@ -28,10 +28,12 @@ import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
 import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.dal.entity.SysPaymentConfig;
 import com.ym.mec.biz.dal.enums.FeeTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
 import com.ym.mec.biz.service.PayService;
 import com.ym.mec.biz.service.SellOrderService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysPaymentConfigService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.redis.service.RedisCache;
@@ -108,6 +110,49 @@ public class PayServiceImpl implements PayService {
             return unionPay;
         }
         
+        //如果当前是买的小课/网管课
+		if (studentPaymentOrder.getType() == OrderTypeEnum.SMALL_CLASS_TO_BUY || studentPaymentOrder.getType() == OrderTypeEnum.PRACTICE_GROUP_BUY
+				|| studentPaymentOrder.getType() == OrderTypeEnum.PRACTICE_GROUP_RENEW) {
+			
+			// 是否由平台收款
+			String isPlatformCollection = sysConfigDao.findConfigValue(SysConfigService.IS_OPEN_SMALL_CLASS_INCOME_TO_PLATFORM);
+			
+			if (StringUtils.equals("1", isPlatformCollection)) {
+				Date date = new Date();
+	        	
+	        	String merNo = sysConfigDao.findConfigValue(SysConfigService.PLATFORM_PAYEE_ACCOUNT);
+	        	
+	        	if(StringUtils.isBlank(merNo)){
+	        		throw new BizException("平台收款账户查询失败");
+	        	}
+	        	
+	        	StudentPaymentRouteOrder studentPaymentRouteOrder = new StudentPaymentRouteOrder();
+	            studentPaymentRouteOrder.setOrderNo(orderNo);
+	            studentPaymentRouteOrder.setRouteOrganId(organId);
+	            studentPaymentRouteOrder.setFeeFlag("Y");
+	            studentPaymentRouteOrder.setRouteAmount(amount);
+	            studentPaymentRouteOrder.setRouteBalanceAmount(balanceAmount);
+	            studentPaymentRouteOrder.setMerNo(merNo);
+	            studentPaymentRouteOrder.setSaleAmount(BigDecimal.ZERO);
+	            studentPaymentRouteOrder.setServiceAmount(amount);
+	            studentPaymentRouteOrder.setCreateTime(date);
+	            studentPaymentRouteOrder.setUpdateTime(date);
+	            studentPaymentRouteOrderDao.insert(studentPaymentRouteOrder);
+	            
+	            Map<String, Object> unionPay = new HashMap<>();
+	            Map<String, Object> payMap = Payment.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody);
+	            
+	            PaymentChannelEnum payType = PaymentChannelEnum.ADAPAY;
+
+	            unionPay.put("orderNo", orderNo);
+	            unionPay.put("type", payType.getCode());
+	            unionPay.put("payMap", payMap);
+	            unionPay.put("routingMerNos", merNo);
+	            return unionPay;
+			}
+			
+		}
+        
         String usePaymentConfig = sysConfigDao.findConfigValue("use_payment_config");// 是否用收费配置(1:使用 0:不使用)
         List<RouteScaleDto> routeScaleDtos = null;
         //使用配置开关
@@ -145,7 +190,7 @@ public class PayServiceImpl implements PayService {
 	public Map<String, Object> getPayToPlatformMap(PaymentChannelEnum paymentChannel, BigDecimal amount, BigDecimal balanceAmount, String orderNo, String notifyUrl, String returnUrl,
 			String orderSubject, String orderBody) throws Exception {
     	
-    	SysConfig config = sysConfigDao.findByParamName("platform_collection_organ");
+    	/*SysConfig config = sysConfigDao.findByParamName("platform_collection_organ");
         if (Objects.isNull(config)) {
             throw new BizException("平台收款账户没有设置[platform_collection_organ]");
         }
@@ -156,7 +201,13 @@ public class PayServiceImpl implements PayService {
     		throw new BizException("分部[{}]没有设置收款账号", config.getParanValue());
     	}
     	
-    	String payeeMerNo = sysPaymentConfig.getHfMerNo();
+    	String payeeMerNo = sysPaymentConfig.getHfMerNo();*/
+    	
+    	String payeeMerNo = sysConfigDao.findConfigValue(SysConfigService.PLATFORM_PAYEE_ACCOUNT);
+    	
+    	if(StringUtils.isBlank(payeeMerNo)){
+    		throw new BizException("平台收款账户查询失败");
+    	}
     	
         Map<String, Object> payMap = null;
         

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

@@ -271,7 +271,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         Map result = new HashMap(7);
         String practiceSubjectIdListConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_SUBJECT_ID_LIST, tenantId);
         if (StringUtils.isEmpty(practiceSubjectIdListConfig)) {
-            throw new BizException("请配置陪练课可预约声部");
+            throw new BizException("未设置网管课可选分部,请联系老师");
         }
 //        String practiceApplyStartTimeConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_APPLY_START_TIME,tenantId);
 //        String practiceApplyEndTimeConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_APPLY_END_TIME,tenantId);
@@ -302,7 +302,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     public Object getPracticeApplySubjects(Integer tenantId) {
         String practiceSubjectIdListConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_SUBJECT_ID_LIST, tenantId);
         if (StringUtils.isEmpty(practiceSubjectIdListConfig)) {
-            throw new BizException("请配置陪练课可预约声部");
+            throw new BizException("未设置网管课可选分部,请联系老师");
         }
         return subjectDao.findBySubjectByIdList(practiceSubjectIdListConfig);
     }
@@ -1218,7 +1218,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         Map result = new HashMap();
         String practiceSubjectIdListConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_SUBJECT_ID_LIST, practiceGroup.getTenantId());
         if (StringUtils.isEmpty(practiceSubjectIdListConfig)) {
-            throw new BizException("请配置陪练课可预约声部");
+            throw new BizException("未设置网管课可选分部,请联系老师");
         }
         if (Objects.isNull(practiceGroup.getSubjectId())
                 || !Arrays.asList(practiceSubjectIdListConfig.split(",")).contains(practiceGroup.getSubjectId().toString())) {
@@ -1803,7 +1803,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         Map result = new HashMap();
         String practiceSubjectIdListConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_SUBJECT_ID_LIST, tenantId);
         if (StringUtils.isEmpty(practiceSubjectIdListConfig)) {
-            throw new BizException("请配置陪练课可预约声部");
+            throw new BizException("未设置网管课可选分部,请联系老师");
         }
 //        String practiceApplyStartTimeConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_APPLY_START_TIME,tenantId);
 //        String practiceApplyEndTimeConfig = sysTenantConfigService.getTenantConfigValue(SysConfigService.PRACTICE_APPLY_END_TIME,tenantId);

+ 9 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -323,9 +323,10 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     @Override
     public void quitCouponAndBalance(StudentPaymentOrder order){
         //增加用户余额
-        sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount(),
-                PlatformCashAccountDetailTypeEnum.REFUNDS, order.getMemo() + ",订单号:" + order.getOrderNo());
-
+        if(order.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0){
+            sysUserCashAccountService.updateBalance(order.getUserId(), order.getBalancePaymentAmount(),
+                    PlatformCashAccountDetailTypeEnum.REFUNDS, order.getMemo() + ",订单号:" + order.getOrderNo());
+        }
         //退还优惠券
         sysCouponCodeService.quit(order.getCouponCodeId());
     }
@@ -348,7 +349,11 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             if (updateCount <= 0) {
                 throw new BizException("订单更新失败");
             }
-            quitCouponAndBalance(order);
+            sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount(),
+                    PlatformCashAccountDetailTypeEnum.REFUNDS, order.getMemo() + ",订单号:" + order.getOrderNo());
+
+            //退还优惠券
+            sysCouponCodeService.quit(order.getCouponCodeId());
             if (StringUtils.isNotBlank(order.getPaymentChannel())
                     && order.getPaymentChannel().equals("ADAPAY")
                     && !rpMap.containsKey("simulation")) {

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

@@ -1857,7 +1857,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             for (StudentPaymentOrder studentPaymentOrder : studentPaymentOrderList) {
                 if (StringUtils.equals("205", studentPaymentOrder.getPaymentAccountNo())) {
                     studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
-                    studentPaymentOrder.setMemo("云教练审核拒绝");
+                    studentPaymentOrder.setMemo("团练保审核拒绝");
                     updateList.add(studentPaymentOrder);
                     studentPaymentOrderService.quitCouponAndBalance(studentPaymentOrder);
                 }

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

@@ -142,6 +142,7 @@ public class SysCouponIssueRecordServiceImpl extends ServiceImpl<SysCouponIssueR
     public PageInfo<CouponIssueRecordVo> queryIssueRecord(Map<String, Object> param) {
         Page<CouponIssueRecordVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setAsc("a.created_time_");
+        param.put("tenantId",TenantContextHolder.getTenantId());
         return PageUtil.pageInfo(baseMapper.queryIssueRecord(pageInfo, param));
     }
 
@@ -163,6 +164,7 @@ public class SysCouponIssueRecordServiceImpl extends ServiceImpl<SysCouponIssueR
     public PageInfo<?> queryIssueDetail(Map<String, Object> param) {
         Page<?> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setAsc("scc.create_time_");
+        param.put("tenantId",TenantContextHolder.getTenantId());
         return PageUtil.pageInfo(baseMapper.queryIssueDetail(pageInfo, param));
     }
 

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

@@ -156,7 +156,7 @@ public class TenantAssetsInfoServiceImpl extends ServiceImpl<TenantAssetsInfoDao
                 //当前余额
                 BigDecimal balance = assetsInfo.getBalance();
                 //当前余额 减 本次扣费 的剩余额度
-                BigDecimal after = balance.subtract(coursePrice);
+                BigDecimal after = balance.subtract(coursePrice).setScale(2,RoundingMode.HALF_UP);
                 //300
                 BigDecimal threeHundred = new BigDecimal(300);
                 //当前余额大于300 并且 本次扣除后剩余额度小于300 就发信息提醒

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

@@ -10,6 +10,7 @@ import com.ym.mec.biz.dal.vo.TenantCloudCourseRecordVo;
 import com.ym.mec.biz.service.TenantCloudCourseRecordService;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.PageUtil;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +39,7 @@ public class TenantCloudCourseRecordServiceImpl extends ServiceImpl<TenantCloudC
 
         Page<TenantCloudCourseRecordVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setAsc("a.created_time_");
+        param.put("tenantId", TenantContextHolder.getTenantId());
         return PageUtil.pageInfo(baseMapper.queryPage(pageInfo, param));
     }
 

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

@@ -36,7 +36,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
@@ -503,10 +502,6 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      * @param val      购买周期
      */
     public Map<String, Object> tenantRenewPay(Integer tenantId, Integer val) throws Exception {
-        SysConfig config = sysConfigService.findByParamName("platform_collection_organ");
-        if (Objects.isNull(config)) {
-            throw new BizException("未查询到机构收款分部信息!");
-        }
 
         TenantOrderRecordEnum tenantEnum = TenantOrderRecordEnum.TENANT_RENEW;
         Map<String, Object> result = new HashMap<>();
@@ -579,7 +574,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         Map<String, Object> par = new HashMap<>();
         par.put("tenantId", tenantId);
         List<TenantInfoInfoPageVo> tenantInfos = baseMapper.queryPage(par);
-        if(CollectionUtils.isNotEmpty(tenantInfos)){
+        if (CollectionUtils.isNotEmpty(tenantInfos)) {
             TenantInfoInfoPageVo tenantInfo = tenantInfos.get(0);
             //邮件
             if (StringUtils.isNotBlank(tenantInfo.getEmail())) {
@@ -795,7 +790,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         if (tps.getExpiryDateEnd() == null) {
             tps.setValidRemaining(0);
         } else {
-            tps.setValidRemaining(DateUtil.daysBetween(new Date(), tps.getExpiryDateEnd()));
+            Date now = LocalDate.now().toDate();//不能直接new Date()的,不要用带时分秒的时间和不带时分秒的时间做对比!!!
+            tps.setValidRemaining(DateUtil.daysBetween(now, tps.getExpiryDateEnd()));
         }
         tps.setSumBalance(tps.getBalance().add(tps.getFrozenAmount()));
 
@@ -864,6 +860,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
             tenantInfo.setUpdatedBy(-1);
             tenantInfo.setUpdatedTime(now);
             this.updateById(tenantInfo);
+            log.info("checkTenantState stop >>>> tenantInfo {}", tenantInfo);
         });
     }
 
@@ -874,15 +871,15 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         par.put("state", 1);
         par.put("expiryDate", expiryDate);
         List<TenantInfoInfoPageVo> oneTenant = baseMapper.queryPage(par);
-        send(oneTenant, DateUtils.formatDate(expiryDate, "yyyy年MM月dd日"));
+        send(oneTenant, DateUtils.formatDate(expiryDate, "yyyy年MM月dd日"), i);
     }
 
-    private void send(List<TenantInfoInfoPageVo> infoList, String dateStr) {
+    private void send(List<TenantInfoInfoPageVo> infoList, String dateStr, int i) {
         infoList.forEach(t -> {
             //邮件
             if (StringUtils.isNotBlank(t.getEmail())) {
                 //机构名称 服务名称 到期时间 学员数量
-                Object[] emailMsg = {t.getName(), t.getServeName(), dateStr, t.getStudentUpLimit()};
+                Object[] emailMsg = {t.getName(), t.getServeName(), dateStr, t.getStudentUpLimit(), i};
                 Map<Integer, String> sendPar = new HashMap<>();
                 sendPar.put(t.getUserId(), t.getEmail());
                 log.info("platformSendToAll>>> 即将到期 receiveUserId {} email {} objs {} sendPar {}", t.getUserId(), t.getEmail(), emailMsg, sendPar);

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

@@ -266,13 +266,19 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
         // 更新 tenantAssetsInfo
         log.info("checkRechargeCheck  updateAmount>>>>>");
         int ret = assetsInfoService.updateAmount(record.getTenantId(), record.getExpectAmount());
+        try {
+            record.setPayDate(new Date());
+            record.setPayTime(new Date());
+            baseMapper.updateById(record); // 添加支付时间
+        } catch (Exception e) {
+            log.error("更新支付时间错误代码 {}", e);
+        }
         // 取余额
         TenantAssetsInfo assets = assetsInfoService.getOne(new WrapperUtil<TenantAssetsInfo>().hasEq("tenant_id_", record.getTenantId()).queryWrapper());
         TenantInfo tenantInfo = tenantInfoService.getOne(new WrapperUtil<TenantInfo>().hasEq("tenant_id_", record.getTenantId()).queryWrapper());
         Integer receiveUserId = tenantInfo.getUserId();
         String email = tenantInfo.getEmail();
 
-
         Object[] objs = {tenantInfo.getName(), record.getActualAmount(), assets.getBalance()};
 
         // 发邮件, 发短信

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

@@ -39,9 +39,6 @@
         <result column="member_valid_date_" property="memberValidDate"/>
         <result column="member_period_" property="memberPeriod" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="member_optional_flag_" property="memberOptionalFlag"/>
-        <result column="music_repair_num_" property="musicRepairNum"/>
-        <result column="music_repair_actual_price_" property="musicRepairActualPrice"/>
-        <result column="music_repair_optional_flag_" property="musicRepairOptionalFlag"/>
         <result column="current_total_amount_" property="currentTotalAmount"/>
         <result column="original_total_amount_" property="originalTotalAmount"/>
     </resultMap>
@@ -64,15 +61,14 @@
         actual_num_,memo_,is_give_music_network_,create_time_,update_time_,payment_valid_start_date_,payment_valid_end_date_,
         payment_pattern_,payment_type_,payment_amount_,batch_no_,audit_memo_,operator_,attribute1_,
          attribute2_,student_ids_,member_payment_amount_,member_rank_setting_id_,member_valid_date_
-         ,original_member_payment_amount_,member_period_,member_optional_flag_,
-         music_repair_num_,music_repair_actual_price_,music_repair_optional_flag_,current_total_amount_,original_total_amount_,tenant_id_,organ_id_)
+         ,original_member_payment_amount_,member_period_,member_optional_flag_,current_total_amount_,original_total_amount_,tenant_id_,organ_id_)
         VALUES(#{musicGroupId},#{musicGroupOrganizationCourseSettingId},#{payUserType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{rejectReason},#{startPaymentDate},#{deadlinePaymentDate},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{expectNum},#{actualNum},#{memo},#{isGiveMusicNetwork},now(),now(),
         #{paymentValidStartDate},#{paymentValidEndDate},#{paymentPattern},#{paymentType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{paymentAmount},#{batchNo},#{auditMemo},#{operator},#{attribute1},#{attribute2},#{studentIds},
                #{memberPaymentAmount},#{memberRankSettingId},#{memberValidDate},#{originalMemberPaymentAmount},#{memberPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-               #{memberOptionalFlag},#{musicRepairNum},#{musicRepairActualPrice},#{musicRepairOptionalFlag},#{currentTotalAmount},#{originalTotalAmount},#{tenantId},#{organId})
+               #{memberOptionalFlag},#{currentTotalAmount},#{originalTotalAmount},#{tenantId},#{organId})
     </insert>
 
     <insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender" useGeneratedKeys="true"
@@ -82,7 +78,7 @@
         actual_num_,memo_,is_give_music_network_,create_time_,update_time_,payment_valid_start_date_,payment_valid_end_date_,payment_pattern_,payment_amount_,
         payment_type_,batch_no_,audit_memo_,operator_,attribute1_,attribute2_,student_ids_,
          member_payment_amount_,member_rank_setting_id_,member_valid_date_,original_member_payment_amount_,member_period_
-        ,member_optional_flag_,music_repair_num_,music_repair_actual_price_,music_repair_optional_flag_,current_total_amount_,original_total_amount_,tenant_id_,organ_id_)
+        ,member_optional_flag_,current_total_amount_,original_total_amount_,tenant_id_,organ_id_)
         VALUES
         <foreach collection="list" item="item" index="index" separator=",">
         (#{item.musicGroupId},#{item.musicGroupOrganizationCourseSettingId},#{item.payUserType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.rejectReason},#{item.startPaymentDate},#{item.deadlinePaymentDate},#{item.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
@@ -90,7 +86,7 @@
         #{item.paymentValidStartDate},#{item.paymentValidEndDate},#{item.paymentPattern},#{item.paymentAmount},#{item.paymentType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
         #{item.batchNo},#{item.auditMemo},#{item.operator},#{item.attribute1},#{item.attribute2},
          #{item.studentIds},#{item.memberPaymentAmount},#{item.memberRankSettingId},#{item.memberValidDate},#{item.originalMemberPaymentAmount},#{item.memberPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            #{item.memberOptionalFlag},#{item.musicRepairNum},#{item.musicRepairActualPrice},#{item.musicRepairOptionalFlag},
+            #{item.memberOptionalFlag},
          #{item.currentTotalAmount},#{item.originalTotalAmount},#{item.tenantId},#{item.organId})
         </foreach>
     </insert>
@@ -108,15 +104,6 @@
             <if test="memberOptionalFlag != null">
                 member_optional_flag_ = #{memberOptionalFlag},
             </if>
-            <if test="musicRepairNum != null">
-                music_repair_num_ = #{musicRepairNum},
-            </if>
-            <if test="musicRepairActualPrice != null">
-                music_repair_actual_price_ = #{musicRepairActualPrice},
-            </if>
-            <if test="musicRepairOptionalFlag != null">
-                music_repair_optional_flag_ = #{musicRepairOptionalFlag},
-            </if>
             <if test="memberPeriod != null">
                 member_period_ = #{memberPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>

+ 0 - 3
mec-common/common-core/src/main/java/com/ym/mec/common/page/PageUtil.java

@@ -63,9 +63,6 @@ public class PageUtil {
     public static <O, T> Page<T> getPageInfo(Map<String, O> param) {
         int pageSize = getPage(param, "rows").orElse(20);
         int pageIndex = getPage(param, "page").orElse(1);
-        if (!param.containsKey("tenantId")) {
-            param.put("tenantId", (O) TenantContextHolder.getTenantId());
-        }
         return new Page<>(pageIndex, pageSize);
     }
 

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

@@ -854,7 +854,7 @@ public class ExportController extends BaseController {
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员编号", "学员姓名", "性别", "家长姓名",
                     "家长联系电话", "是否激活", "是否有课", "是否有网管课","网管课剩余课时","VIP课剩余课时", "课程余额(元)", "账户余额(元)",
-                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师", "是否签订协议", "是否使用云教练", "会员截止日期", "会员剩余天数", "会员试用结束日期", "会员试用剩余天数"}, new String[]{
+                    "所在乐团", "乐团所属声部", "所在乐团状态", "所在vip课", "所在VIP状态", "服务标签", "运营标签", "指导老师", "是否签订协议", "是否使用团练保", "会员截止日期", "会员剩余天数", "会员试用结束日期", "会员试用剩余天数"}, new String[]{
                     "organName", "userId", "username", "gender.description", "parentsName", "parentsPhone",
                     "isActive.msg", "hasCourse.msg", "hasPracticeCourse.msg","noStartPracticeCourseNum","noStartVipCourseNum", "courseBalance", "balance", "musicGroupName",
                     "subjectName", "musicGroupStatus", "vipGroupName", "vipGroupStatus", "serviceTag.msg", "operatingTag.msg", "teacherName", "isSignedContract ? '是' : '否'", "recordUserId == null ? '否' : '是'",
@@ -1090,7 +1090,7 @@ public class ExportController extends BaseController {
         }
         OutputStream outputStream = response.getOutputStream();
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "乐团", "学员编号", "学员姓名", "声部", "购买乐器", "乐器采购方式", "乐器金额", "购买教辅", "教辅金额", "课程金额", "云教练金额", "乐保金额", "订单总价"}, new String[]{
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "乐团", "学员编号", "学员姓名", "声部", "购买乐器", "乐器采购方式", "乐器金额", "购买教辅", "教辅金额", "课程金额", "团练保金额", "乐保金额", "订单总价"}, new String[]{
                     "organName", "musicGroupName", "userId", "username", "subjectName", "musicalName", "kitGroupPurchaseTypeEnum.msg", "musicalAmount", "accessoriesName", "accessoriesAmount", "courseAmount", "cloudTeacherAmount", "maintenanceAmount", "orderAmount"}, musicalList);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
@@ -1149,7 +1149,7 @@ public class ExportController extends BaseController {
         }
         OutputStream outputStream = response.getOutputStream();
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学生姓名", "家长姓名", "年级", "班级", "性别", "服从调剂", "报名专业", "实际专业", "联系电话", "学员缴费状态", "乐器购买方式","缴费中/审核中","是否购买云教练"}, new String[]{
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学生姓名", "家长姓名", "年级", "班级", "性别", "服从调剂", "报名专业", "实际专业", "联系电话", "学员缴费状态", "乐器购买方式","缴费中/审核中","是否购买团练保"}, new String[]{
                     "studentName", "parentsName", "currentGrade", "currentClass", "gender.description", "isAllowAdjust.msg", "subjectName", "actualSubjectName", "parentsPhone", "paymentStatus.desc", "kitGroupPurchaseTypeEnum.msg","payingStatusStr","hasCloudTeacher==1?'有':'没有'"}, studentApplyDetail);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
@@ -2877,7 +2877,7 @@ public class ExportController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         try {
             String[] header = {"学员编号", "学员","年级","班级", "手机号", "是否新用户", "是否激活", "训练总时长", "连续训练天数", "乐团", "乐团主管", "所属学校", "指导老师", "声部", "是否有小课",
-                    "训练次数", "训练天数", "训练平均时长", "会员有效期", "是否服务", "是否运营", "是否云教练活动目标学员", "活动消费金额", "关心包", "加油包", "未上课数", "vip课剩余课时", "网管课剩余课时"};
+                    "训练次数", "训练天数", "训练平均时长", "会员有效期", "是否服务", "是否运营", "是否团练保活动目标学员", "活动消费金额", "关心包", "加油包", "未上课数", "vip课剩余课时", "网管课剩余课时"};
             String[] body = {"studentId", "studentName","currentGradeNum","currentClass", "phone", "newUser?\"是\":\"否\"", "enable?\"是\":\"否\"",
                             "cloudStudyUseTime+\"分钟\"", "cloudStudyRunningDays+\"天\"", "musicGroupNames", "educationName", "schoolNames",
                             "teacherName", "subjectName", "hasVipGroup>0?\"是\":\"否\"", "cloudStudyUseNum+\"次\"", "cloudStudyUseDays+\"天\"",