Browse Source

云教练活动

zouxuan 3 years ago
parent
commit
15cc2682cd

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

@@ -7,6 +7,7 @@ import java.util.Map;
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.PeriodEnum;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.service.BaseService;
 
 public interface MemberRankSettingService extends BaseService<Integer, MemberRankSetting> {
@@ -48,5 +49,5 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
 	 */
 	boolean orderCallback(StudentPaymentOrder studentPaymentOrder);
 
-	Object ActiveBuy(Integer id, Integer memberRankId, PeriodEnum month, BigDecimal amount, boolean isUseBalance, Integer buyNum, int giveNum, int activeRemark, String remark,boolean repay) throws Exception;
+	HttpResponseResult ActiveBuy(Integer id, Integer memberRankId, PeriodEnum month, BigDecimal amount, boolean isUseBalance, Integer buyNum, int giveNum, int activeRemark, String remark, boolean repay) throws Exception;
 }

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

@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
 
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.entity.HttpResponseResult;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -413,7 +414,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
-	public Object ActiveBuy(Integer userId, Integer memberRankId, PeriodEnum month, BigDecimal amount, boolean isUseBalance, Integer buyNum, int giveNum, int activeRemark, String remark,boolean repay) throws Exception {
+	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 {
+		HttpResponseResult result = new HttpResponseResult();
 		//判断用户是否已存在订单
 		StudentPaymentOrder applyOrder = studentPaymentOrderService.findByUserAndActive(userId,202109,remark,"ING");
 		if (applyOrder != null) {
@@ -424,23 +426,32 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 			}else if(payStatus == PayStatus.PAYING){
 				throw new BizException("订单还在交易中,请稍后重试");
 			}
-			//处理关闭订单
-			applyOrder.setStatus(DealStatusEnum.CLOSE);
-			applyOrder.setMemo("关闭云教练活动订单");
-			if (applyOrder.getBalancePaymentAmount() != null && applyOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
-				sysUserCashAccountService.updateBalance(applyOrder.getUserId(), applyOrder.getBalancePaymentAmount(),
-						PlatformCashAccountDetailTypeEnum.REFUNDS, "购买云教练活动支付失败");
+			if(repay){
+				//处理关闭订单
+				applyOrder.setStatus(DealStatusEnum.CLOSE);
+				applyOrder.setMemo("关闭云教练活动订单");
+				if (applyOrder.getBalancePaymentAmount() != null && applyOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
+					sysUserCashAccountService.updateBalance(applyOrder.getUserId(), applyOrder.getBalancePaymentAmount(),
+							PlatformCashAccountDetailTypeEnum.REFUNDS, "购买云教练活动支付失败");
+				}
+				studentPaymentOrderService.update(applyOrder);
+			}else {
+				result.setCode(HttpStatus.CONTINUE.value());
+				result.setMsg("您有待支付的订单");
+				return result;
 			}
-			studentPaymentOrderService.update(applyOrder);
+
 		}
-		return this.buy(userId,
+		result.setCode(HttpStatus.OK.value());
+		result.setData(this.buy(userId,
 				memberRankId,
 				month,
 				amount,
 				isUseBalance,
 				buyNum,
 				giveNum,
-				activeRemark,remark);
+				activeRemark,remark));
+		return result;
 	}
 
 	//云教练活动赠送优惠券

+ 5 - 4
mec-biz/src/main/resources/config/mybatis/CloudTeacherOrderMapper.xml

@@ -244,6 +244,7 @@
         SELECT COUNT(DISTINCT cto.id_)
         FROM cloud_teacher_order cto
         LEFT JOIN sys_user su ON su.id_ = cto.student_id_
+        LEFT JOIN student st ON st.user_id_ = cto.student_id_
         LEFT JOIN student_registration sr ON sr.user_id_ = cto.student_id_ AND sr.music_group_status_ = 'NORMAL'
         LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_ AND mg.status_ = 'PROGRESS'
         <include refid="queryCloudTeacherActiveDetailSql"/>
@@ -251,7 +252,7 @@
     <select id="queryActiveOrderPage" resultMap="CloudTeacherOrder">
         SELECT GROUP_CONCAT(DISTINCT cto.remark_) FROM cloud_teacher_order cto
         LEFT JOIN student_payment_order spo ON spo.id_ = cto.order_id_
-        WHERE spo.status_ != 'FAILED' AND cto.active_remark_ = #{activeRemark}
+        WHERE spo.status_ IN ('ING','SUCCESS') AND cto.active_remark_ = #{activeRemark}
         AND cto.student_id_ = #{userId}
         <if test="remark != null and remark != ''">
             AND cto.remark_ = #{remark}
@@ -270,13 +271,13 @@
                 AND mg.charge_type_id_ = #{chargeType}
             </if>
             <if test="subjectId != null">
-                AND s.subject_id_list_ = #{subjectId}
+                AND st.subject_id_list_ = #{subjectId}
             </if>
             <if test="teacherId != null">
-                AND s.teacher_id_ = #{teacherId}
+                AND st.teacher_id_ = #{teacherId}
             </if>
             <if test="remarkType != null and remarkType != ''">
-                AND cto.active_remark_ = #{remarkType}
+                AND cto.remark_ = #{remarkType}
             </if>
         </where>
     </sql>

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

@@ -999,7 +999,7 @@
     <select id="findByUserAndActive" resultMap="StudentPaymentOrder">
         SELECT spo.* FROM cloud_teacher_order cto
         LEFT JOIN student_payment_order spo ON spo.id_ = cto.order_id_
-        WHERE spo.status_ != 'FAILED' AND cto.active_remark_ = #{activeRemark}
+        WHERE spo.status_ NOT ('SUCCESS','ING') AND cto.active_remark_ = #{activeRemark}
         AND cto.remark_ = #{remark} AND cto.student_id_ = #{userId}
         <if test="status != null and status != ''">
             AND spo.status_ = #{status}

+ 13 - 39
mec-student/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -1,21 +1,18 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.PayStatus;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.biz.dal.entity.MemberRankSetting;
+import com.ym.mec.biz.dal.enums.PeriodEnum;
+import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -23,12 +20,9 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.MemberRankSetting;
-import com.ym.mec.biz.dal.enums.PeriodEnum;
-import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
-import com.ym.mec.common.controller.BaseController;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 @RequestMapping("memberRank")
 @Api(tags = "会员收费设置服务")
@@ -51,12 +45,6 @@ public class MemberRankController extends BaseController {
 	private SysUserFeignService sysUserFeignService;
 
 	@Autowired
-	private StudentPaymentOrderService studentPaymentOrderService;
-
-	@Autowired
-	private SysUserCashAccountService sysUserCashAccountService;
-
-	@Autowired
 	private SysConfigDao sysConfigDao;
 
 	@ApiOperation(value = "获取所有的收费标准")
@@ -88,7 +76,7 @@ public class MemberRankController extends BaseController {
 
 	@ApiOperation(value = "2021-09活动购买会员")
 	@PostMapping("/activeBuy")
-	public Object ActiveBuy(Integer memberRankId, Integer buyNum, BigDecimal amount, boolean isUseBalance,boolean repay) throws Exception {
+	public HttpResponseResult ActiveBuy(Integer memberRankId, Integer buyNum, BigDecimal amount, boolean isUseBalance, boolean repay) throws Exception {
 		Date nowTime = new Date();
 		String startTimeStr = sysConfigDao.findConfigValue("cloud_teacher_active_start_time");
 		Date startTime = DateUtil.stringToDate(startTimeStr);
@@ -107,28 +95,14 @@ public class MemberRankController extends BaseController {
 		//买2赠1、买3赠2
 		int giveNum = buyNum == 2?1:buyNum == 3?2:0;
 		String remark = buyNum == 2?"2赠1":buyNum == 3?"3赠2":buyNum == 1?"单月":"其他";
-		//判断用户是否已存在订单
-		StudentPaymentOrder applyOrder = studentPaymentOrderService.findByUserAndActive(sysUser.getId(),202109,remark,"ING");
-		if (applyOrder != null) {
-			// 查询订单状态
-			PayStatus payStatus = studentPaymentOrderService.queryPayStatus(applyOrder.getPaymentChannel(), applyOrder.getOrderNo(), applyOrder.getTransNo());
-			if(payStatus == PayStatus.SUCCESSED){
-				throw new BizException("订单已支付成功,请勿重复支付");
-			}else if(payStatus == PayStatus.PAYING){
-				throw new BizException("订单还在交易中,请稍后重试");
-			}
-			if(!repay){
-				return failed(HttpStatus.CONTINUE, "您有待支付的订单");
-			}
-		}
-		return succeed(memberRankSettingService.ActiveBuy(sysUser.getId(),
+		return memberRankSettingService.ActiveBuy(sysUser.getId(),
 				memberRankId,
 				PeriodEnum.MONTH,
 				amount,
 				isUseBalance,
 				buyNum,
 				giveNum,
-				202109,remark,repay));
+				202109,remark,repay);
 	}
 	
     @ApiOperation(value = "查询订单列表")

+ 0 - 1
mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java

@@ -90,7 +90,6 @@ public class OrganizationController extends BaseController {
         return succeed(organizationService.get(id));
     }
 
-
     @ApiOperation(value = "获取用户所在分部的年级列表)")
     @GetMapping("organization/getGradeList")
     @PreAuthorize("@pcs.hasPermissions('organization/getGradeList')")