浏览代码

云教练订单优化

zouxuan 3 年之前
父节点
当前提交
93733e05b4

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -214,4 +214,14 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
     List<StudentPaymentOrder> queryByDealStatus(String musicGroupId, OrderTypeEnum orderType, DealStatusEnum status);
 
     StudentPaymentOrder lockOrder(Long paymentOrderId);
+
+    /**
+    * @description: 退还账户余额和优惠券
+     * @param studentPaymentOrder
+     * @param memo
+    * @return void
+    * @author zx
+    * @date 2022/1/20 16:23
+    */
+    void returnBalanceAndCoupon(StudentPaymentOrder studentPaymentOrder,String memo);
 }

+ 12 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountDetailService.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service;
 import java.math.BigDecimal;
 
 import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
@@ -13,11 +14,7 @@ import com.ym.mec.common.service.BaseService;
 
 public interface SysUserCashAccountDetailService extends BaseService<Long, SysUserCashAccountDetail> {
 	
-	final static String MUSIC_GROUP = "group";
-	
-	final static String ORGAN = "organ";
-	
-	final static String COURSE_SCHEDULE = "cs";
+	String ORGAN = "organ";
 
 	SysUserCashAccountDetail queryDetailByTransNo(String transNo);
 
@@ -44,4 +41,14 @@ public interface SysUserCashAccountDetailService extends BaseService<Long, SysUs
 	 */
 	PageInfo<SysUserCashAccountDetail> queryAccountDetail(CashAccountDetail queryInfo);
 
+	/**
+	* @description: 付款成功后插入交易明细
+	 * @param studentPaymentOrder
+	 * @param comment
+	* @return void
+	* @author zx
+	* @date 2022/1/20 16:14
+	*/
+	void saveSysUserCashAccountDetail(StudentPaymentOrder studentPaymentOrder, String comment);
+
 }

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

@@ -228,12 +228,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 		studentPaymentOrderService.update(studentPaymentOrder);
 
 		if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
-
-			if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
-				sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(),
-						PlatformCashAccountDetailTypeEnum.REFUNDS, "购买会员支付失败");
-			}
-			sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
+			//退还优惠券和余额
+			studentPaymentOrderService.returnBalanceAndCoupon(studentPaymentOrder,"购买会员支付失败");
 			return true;
 		}
 
@@ -261,40 +257,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 			cloudCoachPaymentProgram.setPaymentUserNum(cloudCoachPaymentProgram.getPaymentUserNum() + 1);
 			cloudCoachPaymentProgramService.update(cloudCoachPaymentProgram);
 			// 插入交易明细
-			BigDecimal amount = studentPaymentOrder.getActualAmount();
-			if (amount.compareTo(BigDecimal.ZERO) > 0) {
-				SysUserCashAccount cashAccount = sysUserCashAccountService.get(userId);
-				// 充值
-				SysUserCashAccountDetail rechargeDetail = new SysUserCashAccountDetail();
-				rechargeDetail.setAmount(amount);
-				rechargeDetail.setBalance(cashAccount.getBalance().add(amount));
-				rechargeDetail.setComment("缴费前充值");
-				rechargeDetail.setCreateTime(nowDate);
-				rechargeDetail.setStatus(DealStatusEnum.SUCCESS);
-				rechargeDetail.setTransNo(studentPaymentOrder.getTransNo());
-				rechargeDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
-				rechargeDetail.setUpdateTime(nowDate);
-				rechargeDetail.setUserId(userId);
-				rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
-				rechargeDetail.setComAmount(studentPaymentOrder.getComAmount());
-				rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount());
-				sysUserCashAccountDetailService.insert(rechargeDetail);
+			sysUserCashAccountDetailService.saveSysUserCashAccountDetail(studentPaymentOrder,"购买会员");
 
-				// 缴费
-				SysUserCashAccountDetail paymentDetail = new SysUserCashAccountDetail();
-				paymentDetail.setAmount(amount.negate());
-				paymentDetail.setBalance(cashAccount.getBalance());
-				paymentDetail.setComment("购买会员");
-				paymentDetail.setCreateTime(nowDate);
-				paymentDetail.setStatus(DealStatusEnum.SUCCESS);
-				paymentDetail.setTransNo(studentPaymentOrder.getTransNo());
-				paymentDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
-				paymentDetail.setUpdateTime(nowDate);
-				paymentDetail.setUserId(userId);
-				rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
-				sysUserCashAccountDetailService.insert(paymentDetail);
-			}
-//
 			try {
 				contractService.transferProduceContract(userId, null, CourseViewTypeEnum.MEMBER_FEE);
 			} catch (Exception e) {
@@ -304,6 +268,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 		return true;
 	}
 
+
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
 	public HttpResponseResult ActiveBuy(Integer userId, Integer memberRankId, PeriodEnum month, BigDecimal amount, boolean isUseBalance, Integer buyNum, int giveNum, int activeRemark, String remark,boolean repay) throws Exception {

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

@@ -894,5 +894,15 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         return studentPaymentOrderDao.lockOrder(paymentOrderId);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void returnBalanceAndCoupon(StudentPaymentOrder studentPaymentOrder,String memo){
+        if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
+            sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(),
+                    PlatformCashAccountDetailTypeEnum.REFUNDS, memo);
+        }
+        sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
+    }
+
 
 }

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountDetailServiceImpl.java

@@ -4,6 +4,7 @@ import java.math.BigDecimal;
 import java.util.*;
 
 import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -100,4 +101,43 @@ public class SysUserCashAccountDetailServiceImpl extends BaseServiceImpl<Long, S
 		pageInfo.setRows(dataList);
 		return pageInfo;
 	}
+
+    @Override
+	@Transactional(rollbackFor = Exception.class)
+	public void saveSysUserCashAccountDetail(StudentPaymentOrder studentPaymentOrder,String comment){
+		BigDecimal amount = studentPaymentOrder.getActualAmount();
+		if (amount.compareTo(BigDecimal.ZERO) > 0) {
+			Date nowDate = new Date();
+			SysUserCashAccount cashAccount = sysUserCashAccountService.get(studentPaymentOrder.getUserId());
+			// 充值
+			SysUserCashAccountDetail rechargeDetail = new SysUserCashAccountDetail();
+			rechargeDetail.setAmount(amount);
+			rechargeDetail.setBalance(cashAccount.getBalance().add(amount));
+			rechargeDetail.setComment("缴费前充值");
+			rechargeDetail.setCreateTime(nowDate);
+			rechargeDetail.setStatus(DealStatusEnum.SUCCESS);
+			rechargeDetail.setTransNo(studentPaymentOrder.getTransNo());
+			rechargeDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
+			rechargeDetail.setUpdateTime(nowDate);
+			rechargeDetail.setUserId(studentPaymentOrder.getUserId());
+			rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
+			rechargeDetail.setComAmount(studentPaymentOrder.getComAmount());
+			rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount());
+			this.insert(rechargeDetail);
+
+			// 缴费
+			SysUserCashAccountDetail paymentDetail = new SysUserCashAccountDetail();
+			paymentDetail.setAmount(amount.negate());
+			paymentDetail.setBalance(cashAccount.getBalance());
+			paymentDetail.setComment(comment);
+			paymentDetail.setCreateTime(nowDate);
+			paymentDetail.setStatus(DealStatusEnum.SUCCESS);
+			paymentDetail.setTransNo(studentPaymentOrder.getTransNo());
+			paymentDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
+			paymentDetail.setUpdateTime(nowDate);
+			paymentDetail.setUserId(studentPaymentOrder.getUserId());
+			rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
+			this.insert(paymentDetail);
+		}
+	}
 }