فهرست منبع

Merge branch 'master' into yonge

yonge 5 سال پیش
والد
کامیت
78c9996556
26فایلهای تغییر یافته به همراه328 افزوده شده و 490 حذف شده
  1. 90 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherDefaultSalaryDto.java
  2. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeRegistration.java
  3. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SporadicChargeInfo.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  5. 15 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/DegreeQueryInfo.java
  6. 0 55
      mec-biz/src/main/java/com/ym/mec/biz/service/PayService.java
  7. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  8. 24 19
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeRegistrationServiceImpl.java
  9. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  10. 20 362
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java
  11. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultVipGroupSalaryServiceImpl.java
  12. 6 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  13. 9 2
      mec-biz/src/main/resources/config/mybatis/DegreeRegistrationMapper.xml
  14. 1 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  15. 4 0
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml
  16. 23 18
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  17. 18 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  18. 3 0
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  19. 6 2
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  20. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/DegreeController.java
  21. 19 7
      mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java
  22. BIN
      mec-thirdparty/libs/adapay-java-sdk-1.0.2.jar
  23. 1 1
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/ConfigInit.java
  24. 2 2
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/Payment.java
  25. 29 0
      mec-web/src/main/java/com/ym/mec/web/controller/DegreeController.java
  26. 14 8
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

+ 90 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherDefaultSalaryDto.java

@@ -26,8 +26,26 @@ public class TeacherDefaultSalaryDto {
 	
 	private BigDecimal vip5 = new BigDecimal(0);
 	
+	private BigDecimal vip6 = new BigDecimal(0);
+	
+	private BigDecimal vip7 = new BigDecimal(0);
+	
 	private BigDecimal practiceSalary = new BigDecimal(0);
 	
+	private BigDecimal singleSalary2 = new BigDecimal(0);
+	
+	private BigDecimal mixSalary2 = new BigDecimal(0);
+	
+	private BigDecimal comprehensiveSalary2 = new BigDecimal(0);
+	
+	private BigDecimal traningSigleSalary2 = new BigDecimal(0);
+	
+	private BigDecimal traningMixSalary2 = new BigDecimal(0);
+	
+	private BigDecimal highSalary2 = new BigDecimal(0);
+	
+	private BigDecimal classroomSalary2 = new BigDecimal(0);
+	
 	private BigDecimal singleSalary = new BigDecimal(0);
 	
 	private BigDecimal mixSalary = new BigDecimal(0);
@@ -233,4 +251,76 @@ public class TeacherDefaultSalaryDto {
 	public void setMusicNetwork1Salary(BigDecimal musicNetwork1Salary) {
 		this.musicNetwork1Salary = musicNetwork1Salary;
 	}
+
+	public BigDecimal getSingleSalary2() {
+		return singleSalary2;
+	}
+
+	public void setSingleSalary2(BigDecimal singleSalary2) {
+		this.singleSalary2 = singleSalary2;
+	}
+
+	public BigDecimal getMixSalary2() {
+		return mixSalary2;
+	}
+
+	public void setMixSalary2(BigDecimal mixSalary2) {
+		this.mixSalary2 = mixSalary2;
+	}
+
+	public BigDecimal getComprehensiveSalary2() {
+		return comprehensiveSalary2;
+	}
+
+	public void setComprehensiveSalary2(BigDecimal comprehensiveSalary2) {
+		this.comprehensiveSalary2 = comprehensiveSalary2;
+	}
+
+	public BigDecimal getTraningSigleSalary2() {
+		return traningSigleSalary2;
+	}
+
+	public void setTraningSigleSalary2(BigDecimal traningSigleSalary2) {
+		this.traningSigleSalary2 = traningSigleSalary2;
+	}
+
+	public BigDecimal getTraningMixSalary2() {
+		return traningMixSalary2;
+	}
+
+	public void setTraningMixSalary2(BigDecimal traningMixSalary2) {
+		this.traningMixSalary2 = traningMixSalary2;
+	}
+
+	public BigDecimal getHighSalary2() {
+		return highSalary2;
+	}
+
+	public void setHighSalary2(BigDecimal highSalary2) {
+		this.highSalary2 = highSalary2;
+	}
+
+	public BigDecimal getClassroomSalary2() {
+		return classroomSalary2;
+	}
+
+	public void setClassroomSalary2(BigDecimal classroomSalary2) {
+		this.classroomSalary2 = classroomSalary2;
+	}
+
+	public BigDecimal getVip6() {
+		return vip6;
+	}
+
+	public void setVip6(BigDecimal vip6) {
+		this.vip6 = vip6;
+	}
+
+	public BigDecimal getVip7() {
+		return vip7;
+	}
+
+	public void setVip7(BigDecimal vip7) {
+		this.vip7 = vip7;
+	}
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeRegistration.java

@@ -134,6 +134,8 @@ public class DegreeRegistration {
     @ApiModelProperty(value = "是否重新支付",required = false)
     private Boolean isRepay = false;
 
+    private Integer organId;
+
     public Integer getId() {
         return id;
     }
@@ -309,4 +311,12 @@ public class DegreeRegistration {
     public void setTransNo(String transNo) {
         this.transNo = transNo;
     }
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SporadicChargeInfo.java

@@ -53,6 +53,10 @@ public class SporadicChargeInfo {
 	@ApiModelProperty(value = "是否删除", required = true)
 	private Integer delFlag;
 
+	private String openFlagStr;
+
+	private String orderType;
+
 	public Integer getOpenFlag() {
 		return openFlag;
 	}
@@ -188,4 +192,20 @@ public class SporadicChargeInfo {
 	public void setDiscountAmount(BigDecimal discountAmount) {
 		this.discountAmount = discountAmount;
 	}
+
+	public String getOpenFlagStr() {
+		return openFlagStr;
+	}
+
+	public void setOpenFlagStr(String openFlagStr) {
+		this.openFlagStr = openFlagStr;
+	}
+
+	public String getOrderType() {
+		return orderType;
+	}
+
+	public void setOrderType(String orderType) {
+		this.orderType = orderType;
+	}
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -115,6 +115,9 @@ public class VipGroup {
 	@ApiModelProperty(value = "取消原因")
 	private String stopReason;
 
+	@ApiModelProperty(value = "备注")
+	private String memo;
+
 	@ApiModelProperty(value = "月度消耗百分数")
 	private Integer monthConsumeRate;
 
@@ -242,6 +245,14 @@ public class VipGroup {
 		this.stopReason = stopReason;
 	}
 
+	public String getMemo() {
+		return memo;
+	}
+
+	public void setMemo(String memo) {
+		this.memo = memo;
+	}
+
 	public String getVipGroupActivityName() {
 		return vipGroupActivityName;
 	}

+ 15 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/page/DegreeQueryInfo.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.page;
 
-import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -108,6 +107,13 @@ public class DegreeQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "乐理费用", required = true)
     private BigDecimal theoryMoney;
 
+
+    /**
+     * 分部id
+     */
+    @ApiModelProperty(value = "分部id", required = true)
+    private String organId;
+
     /**
      * 报名时间
      */
@@ -304,4 +310,12 @@ public class DegreeQueryInfo extends QueryInfo {
     public void setTransNo(String transNo) {
         this.transNo = transNo;
     }
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
 }

+ 0 - 55
mec-biz/src/main/java/com/ym/mec/biz/service/PayService.java

@@ -9,56 +9,6 @@ import java.util.Map;
  */
 
 public interface PayService {
-
-
-    /**
-     * 返回订单提交数据
-     *
-     * @param amount       金额
-     * @param orderNo      订单编号
-     * @param notifyUrl    异步通知地址
-     * @param returnUrl    支付返回地址
-     * @param orderSubject 订单标题
-     * @param orderBody    订单内容
-     * @return
-     * @throws Exception
-     */
-    Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId) throws Exception;
-
-
-    /**
-     *
-     * @param amount BigDecimal 支付金额
-     * @param orderNo String 订单号
-     * @param notifyUrl String 异步通知地址
-     * @param returnUrl string 支付返回地址
-     * @param orderSubject String 订单标题
-     * @param orderBody String 订单内容
-     * @param userId int 用户id
-     * @param fee 各种费用
-     * @param organId 机构id
-     * @return
-     * @throws Exception
-     */
-    Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId,Map<String,BigDecimal> fee,Integer organId) throws Exception;
-
-    /**
-     *
-     * @param amount BigDecimal 支付金额
-     * @param orderNo String 订单号
-     * @param notifyUrl String 异步通知地址
-     * @param returnUrl string 支付返回地址
-     * @param orderSubject String 订单标题
-     * @param orderBody String 订单内容
-     * @param userId int 用户id
-     * @param fee Map 各种费用
-     * @param organId int 机构id
-     * @return
-     * @throws Exception
-     */
-    Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId,Map<String,BigDecimal> fee,Integer organId,String receiver) throws Exception;
-
-
     /**
      *
      * @param amount 支付金额
@@ -73,9 +23,4 @@ public interface PayService {
      * @throws Exception
      */
     Map<String, Object> getPayMap(BigDecimal amount,BigDecimal balanceAmount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody,Integer organId,String receiver) throws Exception;
-
-
-
-    Map query(String orderNo) throws Exception;
-
 }

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

@@ -189,9 +189,6 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 
     String PRACTICE_FREE_APPLY_EXPIRE_DATE = "practice_free_apply_expire_date";
 
-    //零星支付收到深圳大雅的分部
-    public static final String SZ_DA_YA_ORGAN_IDS = "sz_da_ya_organ_ids";
-
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig
      * @params paramName

+ 24 - 19
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeRegistrationServiceImpl.java

@@ -7,15 +7,13 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.Organization;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.ym.mec.biz.dal.dao.DegreeRegistrationDao;
-import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.PageInfoDegree;
 import com.ym.mec.biz.dal.entity.DegreeRegistration;
 import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
@@ -54,6 +52,9 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
     @Autowired
     private PayService payService;
 
+    @Autowired
+    private OrganizationDao organizationDao;
+
     @Override
     public BaseDAO<Integer, DegreeRegistration> getDAO() {
         return degreeRegistrationDao;
@@ -69,15 +70,25 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
             throw new BizException("你选的考试级别不存在");
         }
 
-		if (!chargeInfo.getTitle().equals("一级") && !chargeInfo.getTitle().equals("二级") && StringUtils.equals("免考", degreeRegistration.getTheoryLevel())
-				&& StringUtils.isBlank(degreeRegistration.getTheoryCert())) {
-			throw new BizException("报考级别为“" + chargeInfo.getTitle() + "”且乐理级别是“免考”时,必须上传证书");
-		}
+        if (!chargeInfo.getTitle().equals("一级") && !chargeInfo.getTitle().equals("二级") && StringUtils.equals("免考", degreeRegistration.getTheoryLevel())
+                && StringUtils.isBlank(degreeRegistration.getTheoryCert())) {
+            throw new BizException("报考级别为“" + chargeInfo.getTitle() + "”且乐理级别是“免考”时,必须上传证书");
+        }
+
+        List<Organization> organs = organizationDao.findAllOrgans();
+        Integer organId = chargeInfo.getOrganId();
+        for (Organization organ : organs) {
+            if (degreeRegistration.getCity().contains(organ.getName())) {
+                organId = organ.getId();
+                break;
+            }
+        }
 
         String orderNo = idGeneratorService.generatorId("payment") + "";
 
         degreeRegistration.setLevel(chargeInfo.getTitle());
         degreeRegistration.setOrderNo(orderNo);
+        degreeRegistration.setOrganId(organId);
         BigDecimal theoryMoney = BigDecimal.ZERO;
         switch (degreeRegistration.getTheoryLevel()) {
             case "一级":
@@ -133,8 +144,8 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         studentPaymentOrder.setActualAmount(amount);
         studentPaymentOrder.setStatus(DealStatusEnum.ING);
         studentPaymentOrder.setMusicGroupId(degreeRegistration.getSporadicId().toString());
-        studentPaymentOrder.setOrganId(chargeInfo.getOrganId());
-        studentPaymentOrder.setRoutingOrganId(chargeInfo.getOrganId());
+        studentPaymentOrder.setOrganId(organId);
+        studentPaymentOrder.setRoutingOrganId(organId);
         if (theoryMoney.compareTo(BigDecimal.ZERO) > 0) {
             studentPaymentOrder.setMemo("乐理" + degreeRegistration.getTheoryLevel() + ",费用:" + theoryMoney);
         }
@@ -153,12 +164,6 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
 
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
 
-        Map<String, BigDecimal> classFee = new HashMap<>();
-        classFee.put("course", BigDecimal.ZERO);
-        classFee.put("instrument", BigDecimal.ZERO);
-        classFee.put("accessories", BigDecimal.ZERO);
-        classFee.put("other", amount);
-
         String receiver = "kjRegister";
         Map payMap = payService.getPayMap(
                 amount,
@@ -168,11 +173,11 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
                 baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=" + orderNo,
                 chargeInfo.getDetail(),
                 chargeInfo.getDetail(),
-                chargeInfo.getOrganId(),
+                organId,
                 receiver
         );
 
-        studentPaymentOrder.setOrganId(chargeInfo.getOrganId());
+        studentPaymentOrder.setOrganId(organId);
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));
         studentPaymentOrder.setUpdateTime(nowDate);
@@ -181,7 +186,7 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
     }
 
     @Override
-    public Boolean updateStatus(Integer id, Integer status,String orderNo) {
+    public Boolean updateStatus(Integer id, Integer status, String orderNo) {
         DegreeRegistration degree = degreeRegistrationDao.getLock(id);
         if (degree == null || degree.getStatus().equals(2)) {
             return true;

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

@@ -181,6 +181,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT && musicGroup.getStatus() != MusicGroupStatusEnum.AUDIT) {
             throw new BizException("乐团初始状态错误");
         }
+        musicGroup.setDelFlag(false);
         // 保存乐团基本信息
         musicGroupDao.insert(musicGroup);
 
@@ -1853,8 +1854,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             paymentDetail.setUpdateTime(date);
             paymentDetail.setUserId(userId);
             paymentDetail.setChannel(studentPaymentOrder.getPaymentChannel());
-            paymentDetail.setComAmount(studentPaymentOrder.getComAmount().negate());
-            paymentDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
             sysUserCashAccountDetailService.insert(paymentDetail);
             MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
             if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {

+ 20 - 362
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java

@@ -33,223 +33,22 @@ import java.util.stream.Collectors;
  */
 @Service
 public class PayServiceImpl implements PayService {
-
-    @Autowired
-    private UnionPayFeignService unionPayFeignService;
     @Autowired
     private StudentPaymentOrderService studentPaymentOrderService;
     @Autowired
-    private SysAccountService sysAccountService;
-    @Autowired
-    private MusicGroupDao musicGroupDao;
-    @Autowired
     private SysConfigDao sysConfigDao;
     @Autowired
     private SysPaymentConfigService sysPaymentConfigService;
     @Autowired
-    private RedisTemplate<String, String> redisTemplate;
-    @Autowired
     private StudentPaymentRouteOrderDao studentPaymentRouteOrderDao;
 
-
-    public static void main(String[] args) {
-        String baseApiUrl = "http://dev.dayaedu.com";
-
-        try {
-            Map<String, Object> payMap = new PayServiceImpl().getPayMap(
-                    BigDecimal.TEN,
-                    BigDecimal.ONE,
-                    "5435253245",
-                    baseApiUrl + "/api-student/studentOrder/notify",
-                    baseApiUrl + "/api-student/studentOrder/paymentResult?orderNo=5435253245",
-                    "对外课程组购买",
-                    "测试购买",
-                    1,
-                    null
-            );
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 返回订单提交数据
-     *
-     * @param amount       金额
-     * @param orderNo      订单编号
-     * @param notifyUrl    异步通知地址
-     * @param returnUrl    支付返回地址
-     * @param orderSubject 订单标题
-     * @param orderBody    订单内容
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId) throws Exception {
-
-        String company = "daya";
-
-        //支付通道决策
-        Map<String, Object> unionPay = new HashMap<>();
-        SysAccount routingAccount = getRoutingAccount(company, amount);
-        PaymentChannelTypeEnum paymentChannelType = PaymentChannelTypeEnum.COM;
-        if (routingAccount.getType().equals("PER")) {
-            paymentChannelType = PaymentChannelTypeEnum.PER;
-        }
-        Map<String, Object> payMap = null;
-        String type = null;
-        if (routingAccount.getChannel().equals("YQPAY")) {
-            payMap = YqPayUtil.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, routingAccount.getMerNo(), routingAccount.getRoutingMerNo());
-            type = "YQPAY";
-        } else {
-            payMap = Payment.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, routingAccount.getMerNo(), null);
-            type = "ADAPAY";
-        }
-
-        unionPay.put("orderNo", orderNo);
-        unionPay.put("type", type);
-        unionPay.put("paymentChannelType", paymentChannelType);
-        unionPay.put("payMap", payMap);
-        return unionPay;
-    }
-
-    @Override
-    public Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId, Map<String, BigDecimal> fee, Integer organId) throws Exception {
-        String company = "daya";
-        //直接收到深圳的分部
-        String sDaYaOrganIds = sysConfigDao.findConfigValue(SysConfigService.SZ_DA_YA_ORGAN_IDS);
-        if (StringUtils.isNotBlank(sDaYaOrganIds)) {
-            List<String> sDaYaOrganIdList = Arrays.asList(sDaYaOrganIds.split(","));
-            if (sDaYaOrganIdList.contains(organId.toString())) {
-                company = "sdaya";
-            }
-        }
-        //支付通道决策
-        Map<String, Object> unionPay = new HashMap<>();
-        Map<String, BigDecimal> routingFee = getRoutingFee(company, amount, fee, organId);
-        List<SysAccount> accounts = getRoutingAccount(routingFee, company, organId);
-        SysAccount routingAccount = accounts.get(0);
-
-        Map<String, Object> payMap = null;
-        String type = null;
-        List<Map<String, Object>> tempRoutingList = new ArrayList<>();
-        for (SysAccount account : accounts) {
-            Map<String, Object> routingList = new HashMap<>();
-            if (account.getChannel().equals("YQPAY")) {
-                routingList.put("routingMerNo", account.getRoutingMerNo());//分佣账户
-                routingList.put("routingFee", account.getRoutingFee().subtract((account.getRoutingFee().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP))); //分佣金额
-            } else {
-                routingList.put("member_id", account.getMerNo());//分佣账户
-                routingList.put("amount", amount);//分佣金额
-                routingList.put("fee_flag", "Y"); //承担手续费
-            }
-            tempRoutingList.add(routingList);
-        }
-
-        String routingMerNos;
-        if (routingAccount.getChannel().equals("YQPAY")) {
-            if (accounts.size() == 1 && routingAccount.getMerNo().equals(routingAccount.getRoutingMerNo())) {
-                tempRoutingList = null;
-            }
-            payMap = YqPayUtil.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, routingAccount.getMerNo(), tempRoutingList);
-            type = "YQPAY";
-            routingMerNos = accounts.stream().map(sysAccount -> sysAccount.getRoutingMerNo()).collect(Collectors.joining(","));
-        } else {
-            if (accounts.size() == 1 && routingAccount.getRoutingOrganId().equals(organId)) {
-                tempRoutingList = null;
-            }
-            payMap = Payment.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, routingAccount.getMerNo(), tempRoutingList);
-            type = "ADAPAY";
-            routingMerNos = accounts.stream().map(SysAccount::getMerNo).collect(Collectors.joining(","));
-        }
-
-
-        unionPay.put("orderNo", orderNo);
-        unionPay.put("type", type);
-        unionPay.put("payMap", payMap);
-        unionPay.put("routingFee", routingFee);
-        unionPay.put("routingMerNos", routingMerNos);
-        unionPay.put("routingOrganId", accounts.get(0).getRoutingOrganId());
-        return unionPay;
-    }
-
-    @Override
-    public Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer userId, Map<String, BigDecimal> fee, Integer organId, String receiver) throws Exception {
-        String company = "daya";
-        //指定收款方
-        Set<String> companies = new HashSet<>();
-        companies.add("sdaya");
-        companies.add("tq");
-        if (companies.contains(receiver)) {
-            company = receiver;
-            receiver = null;
-        } else {
-            receiver = null;
-        }
-
-        //直接收到深圳的分部
-        String sDaYaOrganIds = sysConfigDao.findConfigValue(SysConfigService.SZ_DA_YA_ORGAN_IDS);
-        if (StringUtils.isNotBlank(sDaYaOrganIds)) {
-            List<String> sDaYaOrganIdList = Arrays.asList(sDaYaOrganIds.split(","));
-            if (sDaYaOrganIdList.contains(organId.toString())) {
-                company = "sdaya";
-            }
-        }
-
-        //支付通道决策
-        Map<String, Object> unionPay = new HashMap<>();
-        Map<String, BigDecimal> routingFee = getRoutingFee(company, amount, fee, organId, receiver);
-        List<SysAccount> accounts = getRoutingAccount(routingFee, company, organId);
-        SysAccount routingAccount = accounts.get(0);
-
-        Map<String, Object> payMap = null;
-        String type = null;
-        List<Map<String, Object>> tempRoutingList = new ArrayList<>();
-        for (SysAccount account : accounts) {
-            Map<String, Object> routingList = new HashMap<>();
-            if (account.getChannel().equals("YQPAY")) {
-                routingList.put("routingMerNo", account.getRoutingMerNo());//分佣账户
-                routingList.put("routingFee", account.getRoutingFee().subtract((account.getRoutingFee().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_UP))); //分佣金额
-            } else {
-                routingList.put("member_id", account.getMerNo());//分佣账户
-                routingList.put("amount", account.getRoutingFee());//分佣金额
-                routingList.put("fee_flag", "Y"); //承担手续费
-            }
-            tempRoutingList.add(routingList);
-        }
-
-        String routingMerNos;
-        if (routingAccount.getChannel().equals("YQPAY")) {
-            if (accounts.size() == 1 && routingAccount.getMerNo().equals(routingAccount.getRoutingMerNo())) {
-                tempRoutingList = null;
-            }
-            payMap = YqPayUtil.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, routingAccount.getMerNo(), tempRoutingList);
-            type = "YQPAY";
-            routingMerNos = accounts.stream().map(SysAccount::getRoutingMerNo).collect(Collectors.joining(","));
-        } else {
-            if (accounts.size() == 1 && routingAccount.getRoutingOrganId().equals(organId)) {
-                tempRoutingList = null;
-            }
-            payMap = Payment.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, routingAccount.getMerNo(), tempRoutingList);
-            type = "ADAPAY";
-            routingMerNos = accounts.stream().map(SysAccount::getMerNo).collect(Collectors.joining(","));
-        }
-        unionPay.put("orderNo", orderNo);
-        unionPay.put("type", type);
-        unionPay.put("payMap", payMap);
-        unionPay.put("routingFee", routingFee);
-        unionPay.put("routingMerNos", routingMerNos);
-        unionPay.put("routingOrganId", accounts.get(0).getRoutingOrganId());
-        return unionPay;
-    }
-
     @Override
     public Map<String, Object> getPayMap(BigDecimal amount, BigDecimal balanceAmount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, Integer organId, String receiver) throws Exception {
         String usePaymentConfig = sysConfigDao.findConfigValue("use_payment_config");
         List<RouteScaleDto> routeScaleDtos = null;
         //使用配置开关
         if (usePaymentConfig.equals("0")) {
-            routeScaleDtos = noUsePaymentConfig(organId, amount);
+            routeScaleDtos = noUsePaymentConfig(amount);
         }
 
         //根据金额获取分润
@@ -268,47 +67,43 @@ public class PayServiceImpl implements PayService {
         return getPayRoute(amount, balanceAmount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, routeScaleDtos);
     }
 
-    private List<RouteScaleDto> noUsePaymentConfig(Integer organId, BigDecimal amount) {
+    private List<RouteScaleDto> noUsePaymentConfig(BigDecimal amount) {
         String paymentChannel = sysConfigDao.findConfigValue("payment_channel");
         List<RouteScaleDto> routeScaleDtos = new ArrayList<>();
         RouteScaleDto routeScaleDto = new RouteScaleDto();
         routeScaleDto.setAmount(amount);
-        routeScaleDto.setOrganId(organId);
+        routeScaleDto.setOrganId(ConfigInit.organId);
         routeScaleDto.setScale(100);
         if (paymentChannel.equals("YQPAY")) {
             routeScaleDto.setMerNo(YqPayUtil.merNo);
             routeScaleDto.setPayType(PaymentChannelEnum.YQPAY);
-            routeScaleDto.setFeeFlag("Y");
         } else {
             routeScaleDto.setMerNo(ConfigInit.merNo);
             routeScaleDto.setPayType(PaymentChannelEnum.ADAPAY);
-            routeScaleDto.setFeeFlag("Y");
         }
+        routeScaleDto.setFeeFlag("Y");
         routeScaleDtos.add(routeScaleDto);
         return routeScaleDtos;
     }
 
     private List<RouteScaleDto> getPaymentConfigChannel(Integer organId, BigDecimal amount) {
         SysPaymentConfig paymentConfig = sysPaymentConfigService.findPaymentConfigByOrganId(organId);
-        if (paymentConfig == null || StringUtils.isBlank(paymentConfig.getRouteScale())) {
-            String paymentChannel = sysConfigDao.findConfigValue("payment_channel");
-            if (paymentConfig != null) {
-                paymentChannel = paymentConfig.getPayType().getCode();
-            }
+        if (paymentConfig == null) {
+            return noUsePaymentConfig(amount);
+        }
+        if (StringUtils.isBlank(paymentConfig.getRouteScale())) {
             List<RouteScaleDto> routeScaleDtos = new ArrayList<>();
             RouteScaleDto routeScaleDto = new RouteScaleDto();
             routeScaleDto.setAmount(amount);
             routeScaleDto.setOrganId(organId);
             routeScaleDto.setScale(100);
-            if (paymentChannel.equals("YQPAY")) {
-                routeScaleDto.setMerNo(YqPayUtil.merNo);
-                routeScaleDto.setPayType(PaymentChannelEnum.YQPAY);
-                routeScaleDto.setFeeFlag("Y");
+            routeScaleDto.setPayType(paymentConfig.getPayType());
+            if (paymentConfig.getPayType().equals(PaymentChannelEnum.YQPAY)) {
+                routeScaleDto.setMerNo(paymentConfig.getYqMerNo());
             } else {
-                routeScaleDto.setMerNo(ConfigInit.merNo);
-                routeScaleDto.setPayType(PaymentChannelEnum.ADAPAY);
-                routeScaleDto.setFeeFlag("Y");
+                routeScaleDto.setMerNo(paymentConfig.getHfMerNo());
             }
+            routeScaleDto.setFeeFlag("Y");
             routeScaleDtos.add(routeScaleDto);
             return routeScaleDtos;
         }
@@ -406,8 +201,8 @@ public class PayServiceImpl implements PayService {
             routeScaleDto.setMerNo(paymentConfig.getYqMerNo());
         } else {
             routeScaleDto.setMerNo(paymentConfig.getHfMerNo());
-            routeScaleDto.setFeeFlag("Y");
         }
+        routeScaleDto.setFeeFlag("Y");
         routeScaleDtos.add(routeScaleDto);
         return routeScaleDtos;
     }
@@ -451,8 +246,8 @@ public class PayServiceImpl implements PayService {
             routeScaleDto.setMerNo(paymentConfig.getYqMerNo());
         } else {
             routeScaleDto.setMerNo(paymentConfig.getHfMerNo());
-            routeScaleDto.setFeeFlag("Y");
         }
+        routeScaleDto.setFeeFlag("Y");
         routeScaleDtos.add(routeScaleDto);
         return routeScaleDtos;
     }
@@ -461,7 +256,7 @@ public class PayServiceImpl implements PayService {
     private Boolean checkHasMaxReceipt(Integer organId, BigDecimal amount) {
         SysPaymentConfig paymentConfig = sysPaymentConfigService.findPaymentConfigByOrganId(organId);
 
-        if (!paymentConfig.getHfMerNo().equals("H004218")) {
+        if (!paymentConfig.getHfMerNo().equals("H004217")) {
             return false;
         }
         BigDecimal monthMaxReceipt = new BigDecimal(75000); //每月限定金额
@@ -481,16 +276,12 @@ public class PayServiceImpl implements PayService {
         }
         BigDecimal totalHasReceipt = studentPaymentRouteOrderDao.getRouteOrderAmount(organId, paymentChannelList, null);
         totalHasReceipt = totalHasReceipt == null ? BigDecimal.ZERO : totalHasReceipt;
-        if (amount.add(totalHasReceipt).compareTo(totalMaxReceipt) >= 0) {
-            return true;
-        }
-        return false;
+        return amount.add(totalHasReceipt).compareTo(totalMaxReceipt) >= 0;
     }
 
     private Map<String, Object> getPayRoute(BigDecimal amount, BigDecimal balanceAmount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, List<RouteScaleDto> routeScaleDtos) throws Exception {
         Map<String, Object> unionPay = new HashMap<>();
         Map<String, Object> payMap = null;
-        String routingMerNos;
 
         List<StudentPaymentRouteOrder> RouteOrders = new ArrayList<>();
 
@@ -503,6 +294,7 @@ public class PayServiceImpl implements PayService {
 
         PaymentChannelEnum patType = null;
         boolean feeFlag = false;
+        Set<String> routingMerNoSet = new HashSet<>();
         for (RouteScaleDto routeScaleDto : routeScaleDtos) {
             patType = routeScaleDto.getPayType();
             Map<String, Object> routingList = new HashMap<>();
@@ -547,6 +339,7 @@ public class PayServiceImpl implements PayService {
             studentPaymentRouteOrder.setRouteBalanceAmount(routeBalanceAmount);
             studentPaymentRouteOrder.setMerNo(routeScaleDto.getMerNo());
             RouteOrders.add(studentPaymentRouteOrder);
+            routingMerNoSet.add(routeScaleDto.getMerNo());
         }
 
         if (studentPaymentRouteOrderDao.batchAdd(RouteOrders) <= 0) {
@@ -561,7 +354,7 @@ public class PayServiceImpl implements PayService {
         } else {
             payMap = Payment.getPayMap(amount, orderNo, notifyUrl, returnUrl, orderSubject, orderBody, ConfigInit.merNo, tempRoutingList);
         }
-        routingMerNos = routeScaleDtos.stream().map(RouteScaleDto::getMerNo).collect(Collectors.joining(","));
+        String routingMerNos = String.join(",", routingMerNoSet);
 
         unionPay.put("orderNo", orderNo);
         unionPay.put("type", patType.getCode());
@@ -570,139 +363,4 @@ public class PayServiceImpl implements PayService {
         return unionPay;
     }
 
-    @Override
-    public Map<String, Object> query(String orderNo) throws Exception {
-        return new UnionPay(unionPayFeignService).query(orderNo);
-    }
-
-    /**
-     * 获取收款账户
-     *
-     * @param company
-     * @param money
-     * @return
-     */
-    private SysAccount getRoutingAccount(String company, BigDecimal money) {
-        SysAccount routingAccount = null;
-        int payOrderNums = studentPaymentOrderService.findPayOrderNum(); //获取支付中和成功的订单数
-        //前几笔收入私户
-        int nums = Integer.parseInt(sysConfigDao.findConfigValue("per_account_nums"));
-
-        String type = null;
-        String channel = null;
-        int rem = (payOrderNums + 1) % 10;
-        if (rem > 0 && rem <= nums) { //私人账户
-            channel = sysConfigDao.findConfigValue("per_account_channel");
-            type = "PER";
-        } else {
-            channel = sysConfigDao.findConfigValue("com_account_channel");
-            type = "COM";
-        }
-        if (company.equals("yaming")) {
-            type = "PER";
-        }
-        SysAccount account = sysAccountService.getOneAccount(company, channel, type, null);
-
-        return account;
-    }
-
-    /**
-     * 获取收款账户
-     *
-     * @param routingFee
-     * @param company
-     * @return
-     */
-    private List<SysAccount> getRoutingAccount(Map<String, BigDecimal> routingFee, String company, Integer organId) {
-        String type = "";
-        if (routingFee.get("COM").compareTo(BigDecimal.ZERO) > 0 && routingFee.get("PER").compareTo(BigDecimal.ZERO) > 0) {
-            type = "COM,PER";
-        } else if (routingFee.get("COM").compareTo(BigDecimal.ZERO) > 0 && routingFee.get("PER").compareTo(BigDecimal.ZERO) == 0) {
-            type = "COM";
-        } else if (routingFee.get("COM").compareTo(BigDecimal.ZERO) == 0 && routingFee.get("PER").compareTo(BigDecimal.ZERO) > 0) {
-            type = "PER";
-        }
-        List<SysAccount> accounts = new ArrayList<>();
-        if (sysConfigDao.findConfigValue("payment_channel").equals("ADAPAY")) {
-            BigDecimal amount = routingFee.get("COM").add(routingFee.get("PER"));
-            routingFee.put("COM", amount);
-            routingFee.put("PER", BigDecimal.ZERO);
-            accounts = sysAccountService.getAdaAccount(organId, "ADAPAY", amount);
-        } else {
-            accounts = sysAccountService.getAccount(company, "YQPAY", type, null);
-        }
-
-        for (SysAccount account : accounts) {
-            if (account.getType().equals("COM")) {
-                account.setRoutingFee(routingFee.get("COM"));
-            } else {
-                account.setRoutingFee(routingFee.get("PER"));
-            }
-        }
-        return accounts;
-    }
-
-    /**
-     * 获取分佣金额
-     *
-     * @param fee
-     * @param organId
-     * @return
-     */
-    private Map<String, BigDecimal> getRoutingFee(String company, BigDecimal amount, Map<String, BigDecimal> fee, Integer organId) {
-        Map<String, BigDecimal> routingFee = new HashMap<>(2);
-        routingFee.put("COM", BigDecimal.ZERO);
-        routingFee.put("PER", BigDecimal.ZERO);
-        if (company.equals("yaming")) {
-            routingFee.put("PER", amount);
-            return routingFee;
-        }
-
-
-        int payOrderNums = studentPaymentOrderService.findPayOrderNum(); //获取支付中和成功的订单数
-        //前几笔收入私户
-        int nums = Integer.parseInt(sysConfigDao.findConfigValue("per_account_nums"));
-
-        String type = null;
-        int rem = (payOrderNums + 1) % 10;
-        if (rem > 0 && rem <= nums) { //私人账户
-            type = "PER";
-        } else {
-            type = "COM";
-        }
-        routingFee.put(type, amount);
-        return routingFee;
-    }
-
-
-    private Map<String, BigDecimal> getRoutingFee(String company, BigDecimal amount, Map<String, BigDecimal> fee, Integer organId, String receiver) {
-        Map<String, BigDecimal> routingFee = new HashMap<>(2);
-        routingFee.put("COM", BigDecimal.ZERO);
-        routingFee.put("PER", BigDecimal.ZERO);
-        if (company.equals("yaming")) {
-            routingFee.put("PER", amount);
-            return routingFee;
-        }
-
-        if (receiver != null) {
-            routingFee.put(receiver, amount);
-            return routingFee;
-        }
-
-        int payOrderNums = studentPaymentOrderService.findPayOrderNum(); //获取支付中和成功的订单数
-        //前几笔收入私户
-        int nums = Integer.parseInt(sysConfigDao.findConfigValue("per_account_nums"));
-
-        String type = null;
-        int rem = (payOrderNums + 1) % 10;
-        if (rem > 0 && rem <= nums) { //私人账户
-            type = "PER";
-        } else {
-            type = "COM";
-        }
-        routingFee.put(type, amount);
-
-        return routingFee;
-    }
-
 }

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

@@ -63,6 +63,7 @@ public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Lon
 	public TeacherDefaultVipGroupSalary findByTeacherAndCategory(Integer userId, Integer categoryId) {
 		TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(userId, categoryId);
 		if (Objects.isNull(byTeacherAndCategory)) {
+			byTeacherAndCategory = new TeacherDefaultVipGroupSalary();
 			byTeacherAndCategory.setOfflineClassesSalary(new BigDecimal(0));
 			byTeacherAndCategory.setOnlineClassesSalary(new BigDecimal(0));
 		}

+ 6 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -603,7 +603,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			imFeignService.groupCreate(new ImGroupModel(vipGroupId.toString(), imGroupMembers, vipGroup.getName()));
 		}*/
 		vipGroup.setAuditStatus(auditStatus);
-		vipGroup.setStopReason(reason);
+		vipGroup.setMemo(reason);
 		vipGroupDao.update(vipGroup);
 		//给老师推送审批短信
 		Teacher teacher = teacherDao.get(vipGroup.getUserId());
@@ -2268,12 +2268,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //			stopVipPush(vipGroup.getId(),vipGroup.getName());
     		return;
 		}
-    	if(VipGroupStatusEnum.APPLYING.equals(vipGroup.getStatus())){
-			Integer studentNum = classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId());
-			if(studentNum>0){
-				throw new BizException("无法停止课程,需要全部学员退学后,才能停止,请先操作学员退学。");
-			}
+
+		Integer studentNum = classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId());
+		if(studentNum>0){
+			throw new BizException("无法停止课程,需要全部学员退学后,才能停止,请先操作学员退学。");
 		}
+
 		List<Map<Integer, BigDecimal>> maps = vipGroupDao.countSurplusCourseFee(vipGroupId);
     	if(CollectionUtils.isEmpty(maps)||(maps.size()==1&&Objects.isNull(maps.get(0)))){
 			if(courseScheduleIds != null && courseScheduleIds.size() > 0){

+ 9 - 2
mec-biz/src/main/resources/config/mybatis/DegreeRegistrationMapper.xml

@@ -6,6 +6,7 @@
         <!--@Table degree_registration-->
         <id column="id_" jdbcType="INTEGER" property="id"/>
         <result column="sporadic_id_" jdbcType="INTEGER" property="sporadicId"/>
+        <result column="organ_id_" jdbcType="INTEGER" property="organId"/>
         <result column="order_no_" jdbcType="VARCHAR" property="orderNo"/>
         <result column="trans_no_" jdbcType="VARCHAR" property="transNo"/>
         <result column="name_" jdbcType="VARCHAR" property="name"/>
@@ -41,6 +42,9 @@
 
     <sql id="queryPageSql">
         <where>
+            <if test="organId != null">
+                AND FIND_IN_SET(organ_id_,#{organId})
+            </if>
             <if test="status != null and status=='reg'">
                 AND <![CDATA[status_ <= 1]]>
             </if>
@@ -117,12 +121,12 @@
     <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.DegreeRegistration"
             useGeneratedKeys="true">
         <!--@mbg.generated-->
-        insert into degree_registration (sporadic_id_,order_no_, name_, gender_,
+        insert into degree_registration (sporadic_id_,organ_id_,order_no_, name_, gender_,
         idcard_, city_, school_,
         subject_,level_, theory_level_,theory_money_, theory_cert_,mobile_,
         money_, memo_, create_time_,
         update_time_, status_)
-        values (#{sporadicId,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{gender,jdbcType=VARCHAR},
+        values (#{sporadicId,jdbcType=INTEGER},#{organId,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{gender,jdbcType=VARCHAR},
         #{idcard,jdbcType=VARCHAR}, #{city,jdbcType=VARCHAR}, #{school,jdbcType=VARCHAR},
         #{subject,jdbcType=VARCHAR},#{level,jdbcType=VARCHAR},
         #{theoryLevel,jdbcType=VARCHAR},#{theoryMoney,jdbcType=DECIMAL},
@@ -133,6 +137,9 @@
         <!--@mbg.generated-->
         update degree_registration
         <set>
+            <if test="organId != null">
+                organ_id_ = #{organId,jdbcType=INTEGER},
+            </if>
             <if test="sporadicId != null">
                 sporadic_id_ = #{sporadicId,jdbcType=INTEGER},
             </if>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -68,7 +68,7 @@
          bill_start_date_, improvent_classes_num_, enroll_classes_, payment_expire_date_, is_extra_class_,
          settlement_type_, cooperation_organ_id_, enlightenment_course_time_,
          parent_meeting_time_, img_, director_user_id_, is_classroom_lessons_, memo_, expect_start_group_date_,
-         ownership_type_, repair_user_id_, fee_type_,del_flag)
+         ownership_type_, repair_user_id_, fee_type_,del_flag_)
         VALUES (#{id}, #{name}, #{organId}, #{schoolId}, #{applyExpireDate}, #{teamTeacherId}, #{educationalTeacherId},
                 #{chargeTypeId}, #{courseForm}, now(), now(),
                 #{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{billStartDate},

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -101,9 +101,11 @@
     <select id="findApplyOrderSuccess" resultMap="StudentPaymentOrderDetail">
         SELECT spod.* FROM student_payment_order spo
         LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
+        LEFT JOIN student_registration sr ON spo.user_id_ = sr.user_id_
         WHERE spo.music_group_id_ = #{musicGroupId}
         AND spo.status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         AND spo.type_ = 'APPLY'
+        AND sr.music_group_id_=#{musicGroupId} AND sr.music_group_status_ != 'QUIT'
     </select>
 
     <!-- 查询订单详情 -->
@@ -134,7 +136,9 @@
     </resultMap>
     <select id="getMusicalListDetail" resultMap="musicalListDetailDtoMap">
         SELECT MAX(spo.id_) payment_order_id_,spo.user_id_  FROM student_payment_order spo
+        LEFT JOIN student_registration sr ON spo.user_id_ = sr.user_id_
         WHERE spo.music_group_id_ = #{musicGroupId}
+        AND sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_!='QUIT'
         GROUP BY spo.user_id_
     </select>
     <select id="queryGoodsNames" resultType="java.util.Map">

+ 23 - 18
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -87,7 +87,7 @@
          per_amount_,
          balance_payment_amount_, remit_fee_, trans_no_,
          status_, memo_, create_time_, update_time_, payment_channel_, payment_business_channel_,
-         payment_account_no_, mer_nos_, order_no_, music_group_id_, class_group_id_,pay_time_)
+         payment_account_no_, mer_nos_, order_no_, music_group_id_, class_group_id_, pay_time_)
         VALUES (#{id}, #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 #{userId}, #{organId}, #{routingOrganId},
                 #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
@@ -96,7 +96,7 @@
                 #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{memo}, now(), now(),
                 #{paymentChannel}, #{paymentBusinessChannel}, #{paymentAccountNo}, #{merNos}, #{orderNo},
                 #{musicGroupId},
-                #{classGroupId},#{payTime})
+                #{classGroupId}, #{payTime})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -316,8 +316,7 @@
         FROM student_payment_order
         WHERE music_group_id_ = #{musicGroupId}
           AND user_id_ = #{userId}
-          AND type_ =
-              'APPLY'
+          AND type_ = 'APPLY'
           AND status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         ORDER BY id_ DESC
         LIMIT 1
@@ -454,9 +453,9 @@
         <result column="organ_name" property="organName"/>
         <result column="username_" property="user.username"/>
         <result column="charge_type_" property="chargeType"/>
-        <result column="routeMerNo" property="routeMerNo" />
-        <result column="routeAmount" property="routeAmount" />
-        <result column="routeBalance" property="routeBalance" />
+        <result column="routeMerNo" property="routeMerNo"/>
+        <result column="routeAmount" property="routeAmount"/>
+        <result column="routeBalance" property="routeBalance"/>
         <collection property="orderDetailList" ofType="com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail">
             <result column="detail_id_" property="id"/>
             <result column="detail_type_" property="type"/>
@@ -588,7 +587,8 @@
     </select>
 
     <select id="getOrderMoneyAmount" parameterType="map" resultMap="StudentPaymentOrder">
-        SELECT SUM(spo.expect_amount_) expect_amount_,SUM(actual_amount_) actual_amount_,SUM(balance_payment_amount_) balance_payment_amount_ FROM student_payment_order spo
+        SELECT SUM(spo.expect_amount_) expect_amount_,SUM(actual_amount_) actual_amount_,SUM(balance_payment_amount_)
+        balance_payment_amount_ FROM student_payment_order spo
         <include refid="queryPaymentOrder"/>
     </select>
 
@@ -629,23 +629,27 @@
         <![CDATA[
         SELECT SUM(actual_amount_)
         FROM student_payment_order
-        WHERE status_ IN ('SUCCESS','ING')
+        WHERE status_ IN ('SUCCESS', 'ING')
           AND create_time_ >= #{firstDate}
           AND create_time_ <= NOW()
-          AND  mer_nos_ = #{merNo}
-    ]]></select>
+          AND mer_nos_ = #{merNo}
+        ]]></select>
     <select id="countGroupOrderWithoutFailed" resultType="int">
         SELECT COUNT(*)
         FROM student_payment_order spo
-        LEFT JOIN class_group_student_mapper cgsm ON spo.music_group_id_=cgsm.music_group_id_ AND spo.user_id_=cgsm.user_id_
+                 LEFT JOIN class_group_student_mapper cgsm
+                           ON spo.music_group_id_ = cgsm.music_group_id_ AND spo.user_id_ = cgsm.user_id_
         WHERE spo.music_group_id_ = #{groupId}
-        AND spo.status_ != 'FAILED'
-        AND cgsm.status_!= 'QUIT'
-        AND spo.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler }
-        AND cgsm.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler }
+          AND spo.status_ != 'FAILED'
+          AND cgsm.status_ != 'QUIT'
+          AND spo.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler }
+          AND cgsm.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler }
     </select>
     <select id="countSporadicOrder" resultType="java.lang.Integer">
-        SELECT COUNT(id_) FROM student_payment_order spo WHERE spo.group_type_ = 'SPORADIC' AND spo.music_group_id_ = #{sporadicId}
+        SELECT COUNT(id_)
+        FROM student_payment_order spo
+        WHERE spo.group_type_ = 'SPORADIC'
+          AND spo.music_group_id_ = #{sporadicId}
     </select>
 
     <!-- 查找支付成功和支付中订单 -->
@@ -653,7 +657,8 @@
         <![CDATA[
         SELECT COUNT(*)
         FROM student_payment_order
-        WHERE organ_id_ = #{organId} AND status_ IN ('SUCCESS','ING')
+        WHERE organ_id_ = #{organId}
+          AND status_ IN ('SUCCESS', 'ING')
         ]]>
     </select>
 </mapper>

+ 18 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -68,7 +68,16 @@
         <result column="vip3" property="vip3"/>
         <result column="vip4" property="vip4"/>
         <result column="vip5" property="vip5"/>
+        <result column="vip6" property="vip6"/>
+        <result column="vip7" property="vip7"/>
         <result column="practice" property="practiceSalary"/>
+        <result column="single2" property="singleSalary2"/>
+        <result column="mix2" property="mixSalary2"/>
+        <result column="comprehensive2" property="comprehensiveSalary2"/>
+        <result column="training_single2" property="traningSigleSalary2"/>
+        <result column="training_mix2" property="traningMixSalary2"/>
+        <result column="high2" property="highSalary2"/>
+        <result column="classroom2" property="classroomSalary2"/>
         <result column="single" property="singleSalary"/>
         <result column="mix" property="mixSalary"/>
         <result column="comprehensive" property="comprehensiveSalary"/>
@@ -1145,7 +1154,16 @@
 		max(case when gc.`name_` = '1V3' then gs.`offline_classes_salary_` else 0 end) vip3,
 		max(case when gc.`name_` = '1V4' then gs.`offline_classes_salary_` else 0 end) vip4,
 		max(case when gc.`name_` = '1V5' then gs.`offline_classes_salary_` else 0 end) vip5,
+		max(case when gc.`name_` = '1V6' then gs.`offline_classes_salary_` else 0 end) vip6,
+		max(case when gc.`name_` = '1V7' then gs.`offline_classes_salary_` else 0 end) vip7,
 		max(pgs.main_teacher_salary_) practice,
+		MAX(case when mgs.course_schedule_type_ = 'SINGLE' then mgs.main_teacher_30min_salary_ ELSE 0 END) single2,
+		MAX(case when mgs.course_schedule_type_ = 'MIX' then mgs.main_teacher_30min_salary_ ELSE 0 END) mix2,
+		MAX(case when mgs.course_schedule_type_ = 'COMPREHENSIVE' then mgs.main_teacher_30min_salary_ ELSE 0 END) comprehensive2,
+		MAX(case when mgs.course_schedule_type_ = 'TRAINING_SINGLE' then mgs.main_teacher_30min_salary_ ELSE 0 END) training_single2,
+		MAX(case when mgs.course_schedule_type_ = 'TRAINING_MIX' then mgs.main_teacher_30min_salary_ ELSE 0 END) training_mix2,
+		MAX(case when mgs.course_schedule_type_ = 'HIGH' then mgs.main_teacher_30min_salary_ ELSE 0 END) high2,
+		MAX(case when mgs.course_schedule_type_ = 'CLASSROOM' then mgs.main_teacher_30min_salary_ ELSE 0 END) classroom2,
 		MAX(case when mgs.course_schedule_type_ = 'SINGLE' then mgs.main_teacher_90min_salary_ ELSE 0 END) single,
 		MAX(case when mgs.course_schedule_type_ = 'MIX' then mgs.main_teacher_90min_salary_ ELSE 0 END) mix,
 		MAX(case when mgs.course_schedule_type_ = 'COMPREHENSIVE' then mgs.main_teacher_90min_salary_ ELSE 0 END) comprehensive,

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

@@ -143,6 +143,9 @@
 			<if test="enable != null and enable == false">
 				AND (NOW() >= end_time_ OR NOW() &lt;= start_time_)
 			</if>
+			<if test="search != null and search != ''">
+				AND (vga.id_=#{search} OR vga.name_ LIKE CONCAT('%', #{search}, '%'))
+			</if>
 		</where>
 	</sql>
 

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -35,6 +35,7 @@
         <result column="give_teach_mode_" property="giveTeachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="organ_id_" property="organId"/>
         <result column="stop_reason_" property="stopReason"/>
+        <result column="memo_" property="memo"/>
         <result column="courses_start_date" property="courseStartDate"/>
         <result column="course_schedules_json_" property="courseSchedulesJson"/>
         <result column="student_id_list_" property="studentIdList"/>
@@ -226,8 +227,8 @@
         </selectKey>
         -->
         INSERT INTO vip_group
-        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,group_status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,audit_status_,courses_start_date,course_schedules_json_,student_id_list_)
-        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{organId},#{stopReason},#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseStartDate},#{courseSchedulesJson},#{studentIdList})
+        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,name_,organ_id_list_,vip_group_activity_id_,group_status_,online_classes_unit_price_,offline_classes_unit_price_,total_price_,give_teach_mode_,vip_group_category_id_,organ_id_,stop_reason_,memo_,audit_status_,courses_start_date,course_schedules_json_,student_id_list_)
+        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{name},#{organIdList},#{vipGroupActivityId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{onlineClassesUnitPrice},#{offlineClassesUnitPrice},#{totalPrice},#{giveTeachMode},#{vipGroupCategoryId},#{organId},#{stopReason},#{memo},#{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{courseStartDate},#{courseSchedulesJson},#{studentIdList})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -289,6 +290,9 @@
             <if test="stopReason!=null">
                 stop_reason_=#{stopReason},
             </if>
+            <if test="memo!=null">
+                memo_=#{memo},
+            </if>
             <if test="courseSchedulesJson!=null">
                 course_schedules_json_=#{courseSchedulesJson},
             </if>

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/DegreeController.java

@@ -32,7 +32,7 @@ import java.util.List;
 import java.util.Map;
 
 @RequestMapping("degree")
-@Api(tags = "级报名服务")
+@Api(tags = "级报名服务")
 @RestController
 public class DegreeController extends BaseController {
 

+ 19 - 7
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.student.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
@@ -28,6 +29,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.util.DigestUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -150,6 +152,22 @@ public class StudentOrderController extends BaseController {
             @ApiImplicitParam(name = "payChannel", value = "支付方式(alipay-支付宝app支付)", required = true, dataType = "String"),
     })
     public Object executePayment(BigDecimal amount, String orderNo, String payChannel, String notifyUrl, String returnUrl, String orderSubject, String orderBody, String sign, String code, String platform) throws Exception {
+        Map<String, Object> signParams = new LinkedHashMap<>();
+        signParams.put("appId", ConfigInit.appId);
+        signParams.put("amount", amount);
+        signParams.put("orderNo", orderNo);
+        signParams.put("notifyUrl", notifyUrl);
+        signParams.put("returnUrl", returnUrl);
+        signParams.put("orderSubject", orderSubject);
+        signParams.put("orderBody", orderBody);
+        signParams.put("wxAppId", ConfigInit.wxAppId);
+
+        String originalStr = JSONObject.toJSONString(signParams);
+        String mewSign = DigestUtils.md5DigestAsHex(originalStr.getBytes());
+        if (mewSign.equals(sign)) {
+            return failed("请勿非法请求");
+        }
+
         String openId = "";
         if (payChannel.equals("wx_pub")) {
             if (code == null || code.isEmpty()) {
@@ -164,7 +182,6 @@ public class StudentOrderController extends BaseController {
         }
 
         Date createTime = null;
-        String merNos = null;
         TenantPaymentOrder tenantPaymentOrder = null;
         StudentPaymentOrder studentPaymentOrder = null;
         if (platform != null && platform.equals("teacher")) {
@@ -176,15 +193,10 @@ public class StudentOrderController extends BaseController {
         if (studentPaymentOrder == null && tenantPaymentOrder == null) {
             return failed("订单不存在");
         }
-        BigDecimal payAmount;
         if (studentPaymentOrder != null) {
             createTime = studentPaymentOrder.getCreateTime();
-            merNos = studentPaymentOrder.getMerNos();
-            payAmount = studentPaymentOrder.getActualAmount();
         } else {
             createTime = tenantPaymentOrder.getCreateTime();
-            merNos = tenantPaymentOrder.getMerNos();
-            payAmount = tenantPaymentOrder.getActualAmount();
         }
 
         Calendar beforeTime = Calendar.getInstance();
@@ -201,7 +213,7 @@ public class StudentOrderController extends BaseController {
         paymentParams.put("app_id", ConfigInit.appId);
         paymentParams.put("order_no", orderNo);
         paymentParams.put("pay_channel", payChannel);
-        paymentParams.put("pay_amt", payAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
+        paymentParams.put("pay_amt", amount);
         paymentParams.put("goods_title", orderSubject);
         paymentParams.put("goods_desc", orderBody);
         paymentParams.put("time_expire", timeExpire);

BIN
mec-thirdparty/libs/adapay-java-sdk-1.0.2.jar


+ 1 - 1
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/ConfigInit.java

@@ -8,7 +8,7 @@ public class ConfigInit {
 
 
     private static ConfigInit instance;
-    public final static Integer organId = 46; //商户对应的分部
+    public final static Integer organId = 16; //商户对应的分部
     public final static String merNo = "B09767221"; //商户对应的分部
     public final static String appId = "app_756972d1-882e-44c6-9f52-e6a6b93c8756";
 

+ 2 - 2
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/adapay/Payment.java

@@ -175,9 +175,9 @@ public class Payment extends ConfigInit {
 
 
     public static Map<String, Object> getPayMap(BigDecimal amount, String orderNo, String notifyUrl, String returnUrl, String orderSubject, String orderBody, String sellerNo, List<Map<String, Object>> tempRoutingList) throws Exception {
-        Map<String, Object> paymentParams = new HashMap<>(9);
+        Map<String, Object> paymentParams = new LinkedHashMap<>();
         paymentParams.put("appId", appId);
-        paymentParams.put("amount", amount);
+        paymentParams.put("amount", amount.setScale(2, BigDecimal.ROUND_HALF_UP));
         paymentParams.put("orderNo", orderNo);
         paymentParams.put("notifyUrl", notifyUrl);
         paymentParams.put("returnUrl", returnUrl);

+ 29 - 0
mec-web/src/main/java/com/ym/mec/web/controller/DegreeController.java

@@ -1,18 +1,26 @@
 package com.ym.mec.web.controller;
 
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.page.DegreeQueryInfo;
 import com.ym.mec.biz.service.DegreeRegistrationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Arrays;
+import java.util.List;
+
 @RequestMapping("degree")
 @Api(tags = "考级报名服务")
 @RestController
@@ -20,12 +28,33 @@ public class DegreeController extends BaseController { ;
 
     @Autowired
     private DegreeRegistrationService degreeRegistrationService;
+    @Autowired
+    private EmployeeDao employeeDao;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
 
     @ApiOperation(value = "查询收费列表")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('degree/queryPage')")
     public HttpResponseResult queryPage(DegreeQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+                return failed("用户所在分部异常");
+            }else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                    return failed("非法请求");
+                }
+            }
+        }
         queryInfo.setSort("create_time_");
         queryInfo.setOrder("DESC");
         return succeed(degreeRegistrationService.getPageList(queryInfo));

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

@@ -599,10 +599,14 @@ public class ExportController extends BaseController {
             }
         }
         List<SporadicChargeInfo> rows = sporadicChargeInfoService.queryDetailPage(queryInfo).getRows();
+        for (SporadicChargeInfo row : rows) {
+            row.setOpenFlagStr(row.getOpenFlag().equals(0) ? "开启" : "关闭");
+            row.setOrderType(row.getUserId() !=null ? "公用" : "个人");
+        }
         OutputStream outputStream = response.getOutputStream();
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "收费类型", "标题", "金额", "时间", "学生姓名", "创建人"}, new String[]{
-                    "organName", "chargeType.msg", "title", "amount", "updateTime", "userName", "operatorName"}, rows);
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "收费类型", "标题", "收费状态", "金额", "时间", "学生姓名","订单类型", "创建人"}, new String[]{
+                    "organName", "chargeType.msg", "title", "openFlagStr", "amount", "updateTime", "userName", "orderType","operatorName"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();
@@ -1948,9 +1952,9 @@ public class ExportController extends BaseController {
         }
 
         try {
-            String[] header = {"序号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "应付金额", "现金支付", "余额支付","分润账户","分润金额","分润余额","到账时间",
+            String[] header = {"序号", "学生姓名", "交易流水号", "订单编号", "收款渠道", "收款账户", "应付金额", "现金支付", "余额支付", "分润账户", "分润金额", "分润余额", "到账时间",
                     "关联乐团ID/VIP课ID", "课程形态", "课程费用", "减免费用", "押金", "乐器", "教辅费用", "零星收款费用", "零星收款类别", "手续费", "专业", "分部", "单位/学校", "合作机构", "备注"};
-            String[] body = {"id", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "expectAmount", "actualAmount", "balancePaymentAmount","routeMerNo","routeAmount","routeBalance", "payTime", "musicGroupId",
+            String[] body = {"id", "user.username", "transNo", "orderNo", "paymentChannel", "merNos", "expectAmount", "actualAmount", "balancePaymentAmount", "routeMerNo", "routeAmount", "routeBalance", "payTime", "musicGroupId",
                     "groupType.desc", "courseFee", "remitFee", "leaseFee", "musicalFee", "teachingFee", "sporadicAmount", "sporadicType", "transferFee", "subjectName", "organName", "schoolName", "cooperationOrganName", "memo"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, studentPaymentOrderExportDtos);
             response.setContentType("application/octet-stream");
@@ -1992,10 +1996,12 @@ public class ExportController extends BaseController {
 		OutputStream outputStream = response.getOutputStream();
 		try {
 
-			String[] header = { "老师编号", "姓名", "分部", "工作类型", "在职状态", "老师状态", "1v1", "1v2", "1v3", "1v4", "1v5", "网管课", "单技课", "合奏课", "综合课", "集训单技课", "集训合奏课",
-					"基础技能课", "课堂课", "线上基础技能课1v3", "线上基础技能课1v4", "线上基础技能课1v5", "乐团网管课1v1" };
-			String[] body = { "userId", "realName", "organName", "jobNature", "demissionStatus", "status", "vip1", "vip2", "vip3", "vip4", "vip5",
-					"practiceSalary", "singleSalary", "mixSalary", "comprehensiveSalary", "traningSigleSalary", "traningMixSalary", "highSalary",
+			String[] header = { "老师编号", "姓名", "分部", "工作类型", "在职状态", "老师状态", "1v1", "1v2", "1v3", "1v4", "1v5", "1v6", "1v7", "网管课", "单技课2.0", "合奏课2.0", "综合课2.0", "集训单技课2.0", "集训合奏课2.0",
+					"基础技能课2.0", "课堂课2.0", "单技课3.0", "合奏课3.0", "综合课3.0", "集训单技课3.0", "集训合奏课3.0",
+					"基础技能课3.0", "课堂课3.0", "线上基础技能课1v3", "线上基础技能课1v4", "线上基础技能课1v5", "乐团网管课1v1" };
+			String[] body = { "userId", "realName", "organName", "jobNature", "demissionStatus", "status", "vip1", "vip2", "vip3", "vip4", "vip5", "vip6", "vip7",
+					"practiceSalary", "singleSalary2", "mixSalary2", "comprehensiveSalary2", "traningSigleSalary2", "traningMixSalary2", "highSalary2",
+					"classroomSalary2", "singleSalary", "mixSalary", "comprehensiveSalary", "traningSigleSalary", "traningMixSalary", "highSalary",
 					"classroomSalary", "highOnline3Salary", "highOnline4Salary", "highOnline5Salary", "musicNetwork1Salary" };
 			HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList);
 			response.setContentType("application/octet-stream");