Quellcode durchsuchen

增加齐齐哈尔活动关闭订单功能

hgw vor 3 Jahren
Ursprung
Commit
9a76a13610

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MemberPayParamDto.java

@@ -12,6 +12,9 @@ public class MemberPayParamDto extends PayParamBasicDto {
     //购买数量
     private Integer val;
 
+    //如果isRepeatPay = true 则需要传入订单号
+    private String orderNo;
+
     public BigDecimal getAmount() {
         return amount;
     }
@@ -35,4 +38,12 @@ public class MemberPayParamDto extends PayParamBasicDto {
     public void setVal(Integer val) {
         this.val = val;
     }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankSettingService.java

@@ -29,6 +29,10 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
 
     HttpResponseResult buy2Qqhe(MemberPayParamDto memberPayParamDto) throws Exception;
 
+    HttpResponseResult queryBuy2Qqhe();
+
+    HttpResponseResult closeBuy2Qqhe(String orderNo);
+
     /**
      * 订单回调
      *

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

@@ -173,18 +173,25 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public HttpResponseResult buy2Qqhe(MemberPayParamDto memberPayParamDto) throws Exception {
-        Optional<SysUser> sysUserOpt = Optional.ofNullable(sysUserFeignService.queryUserInfo());
-        SysUser sysUser = sysUserOpt.orElseThrow(() -> new BizException("未查询到学生信息,请重新登录!"));
-        sysUserOpt.map(SysUser::getId)
-                .map(studentService::getLocked)
-                .orElseThrow(() -> new BizException("非法访问"));
+    public HttpResponseResult buy2Qqhe(MemberPayParamDto dto) throws Exception {
+        //获取学员信息
+        SysUser sysUser = getSysUser();
         //防止重复点击
         RBucket<Object> bucket = redissonClient.getBucket(BUY_2_QQHE_LOCK + sysUser.getId());
         if (!bucket.trySet(1, 2, TimeUnit.SECONDS)) {
             throw new BizException("请勿频繁操作!");
         }
-        int val = memberPayParamDto.getVal();
+
+        //重新支付 需要传入订单号
+        if (dto.getRepeatPay() && StringUtils.isNotBlank(dto.getOrderNo())) {
+            StudentPaymentOrder studentPaymentOrder = Optional.ofNullable(dto.getOrderNo())
+                    .map(studentPaymentOrderService::findOrderByOrderNo)
+                    .orElseThrow(() -> new BizException("未查询到继续支付的订单!"));
+            Map<String, Object> result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
+            return BaseController.succeed(result);
+        }
+
+        int val = dto.getVal();
         if (val < 0) {
             throw new BizException("最少购买1个月!");
         }
@@ -204,9 +211,9 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         //优惠券使用范围
         String[] checkCoupon = CouponDetailTypeEnum.getAllowType(MEMBER);
         //使用优惠券
-        StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(memberPayParamDto.getCouponIdList(), amount, true, checkCoupon);
+        StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(dto.getCouponIdList(), amount, true, checkCoupon);
         //创建订单
-        Map<String, Object> result = getMap(memberPayParamDto.getAmount(), memberPayParamDto.getUseBalancePayment(), sysUser.getId(), sysUser.getOrganId(), studentPaymentOrder);
+        Map<String, Object> result = getMap(dto.getAmount(), dto.getUseBalancePayment(), sysUser.getId(), sysUser.getOrganId(), studentPaymentOrder);
         //写cloud order
         LocalDate now = LocalDate.now();
         CloudTeacherOrder cto = new CloudTeacherOrder();
@@ -228,6 +235,46 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         return BaseController.succeed(result);
     }
 
+    /**
+     * 查询是否有订单待支付
+     */
+    @Override
+    public HttpResponseResult queryBuy2Qqhe() {
+        SysUser sysUser = getSysUser();
+        List<StudentPaymentOrder> studentPaymentOrders = studentPaymentOrderService.queryByCondition(GroupType.MEMBER,
+                null, sysUser.getId(), DealStatusEnum.ING, OrderTypeEnum.MEMBER);
+        if (CollectionUtils.isEmpty(studentPaymentOrders)) {
+            BaseController.succeed();
+        }
+        return BaseController.succeed(studentPaymentOrders.get(0));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResponseResult closeBuy2Qqhe(String orderNo) {
+        StudentPaymentOrder orderByOrderNo = studentPaymentOrderService.findOrderByOrderNo(orderNo);
+        if (Objects.isNull(orderByOrderNo)) {
+            logger.info("closeBuy2Qqhe>>>>> 未找到 orderNo {}", orderNo);
+            return BaseController.succeed();
+        }
+        //关闭订单  退余额 退优惠券
+        studentPaymentOrderService.quitCouponAndBalance(orderByOrderNo);
+        //将订单关闭
+        orderByOrderNo.setStatus(DealStatusEnum.CLOSE);
+        orderByOrderNo.setUpdateTime(new Date());
+        studentPaymentOrderService.update(orderByOrderNo);
+        return BaseController.succeed();
+    }
+
+    private SysUser getSysUser() {
+        Optional<SysUser> sysUserOpt = Optional.ofNullable(sysUserFeignService.queryUserInfo());
+        SysUser sysUser = sysUserOpt.orElseThrow(() -> new BizException("未查询到学生信息,请重新登录!"));
+        sysUserOpt.map(SysUser::getId)
+                .map(studentService::getLocked)
+                .orElseThrow(() -> new BizException("非法访问"));
+        return sysUser;
+    }
+
     private BigDecimal getGiveMonth(int val) {
         BigDecimal giveMonth;
         //最小数o  最大数s
@@ -370,6 +417,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 Map<Integer, String> userPhones = new HashMap<>();
                 userPhones.put(sysUser.getId(), sysUser.getPhone());
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.CLOUD_TEACHER_ORDER_SUCCESS, userPhones, null, 0, null, null);
+                //删除标记
+                cache.delete();
             } else {
                 CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(Long.parseLong(studentPaymentOrder.getMusicGroupId()));
                 StudentCloudCoachPaymentDetails coachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(cloudCoachPaymentProgram.getId(), studentPaymentOrder.getUserId());

+ 61 - 52
mec-student/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -2,24 +2,22 @@ package com.ym.mec.student.controller;
 
 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.dto.MemberPayParamDto;
 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.biz.service.CloudTeacherOrderService;
+import com.ym.mec.biz.service.MemberFeeSettingService;
+import com.ym.mec.biz.service.MemberRankPrivilegesService;
+import com.ym.mec.biz.service.MemberRankSettingService;
 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 org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
-import java.math.BigDecimal;
-import java.util.Date;
 import java.util.List;
 
 @RequestMapping("memberRank")
@@ -27,43 +25,43 @@ import java.util.List;
 @RestController
 public class MemberRankController extends BaseController {
 
-	@Autowired
-	private MemberFeeSettingService memberFeeSettingService;
+    @Autowired
+    private MemberFeeSettingService memberFeeSettingService;
 
-	@Autowired
-	private MemberRankSettingService memberRankSettingService;
+    @Autowired
+    private MemberRankSettingService memberRankSettingService;
 
-	@Autowired
-	private MemberRankPrivilegesService memberRankPrivilegesService;
-	
-	@Autowired
-	private CloudTeacherOrderService cloudTeacherOrderService;
+    @Autowired
+    private MemberRankPrivilegesService memberRankPrivilegesService;
 
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private CloudTeacherOrderService cloudTeacherOrderService;
 
-	@ApiOperation(value = "获取所有的收费标准")
-	@GetMapping("/queryList")
-	public Object getMemberDefaultFee() {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
-		List<MemberRankSetting> result = memberRankSettingService.queryListByIsDefault(false);
+    @ApiOperation(value = "获取所有的收费标准")
+    @GetMapping("/queryList")
+    public Object getMemberDefaultFee() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
 
-		for (MemberRankSetting mrs : result) {
-			mrs.setMemberFeeSetting(memberFeeSettingService.findByRankIdAndOrganId(sysUser.getOrganId(), mrs.getId()));
-			mrs.setMemberPrivilegesItemList(memberRankPrivilegesService.queryByMemberRankId(mrs.getId()));
-		}
-		return succeed(result);
-	}
+        List<MemberRankSetting> result = memberRankSettingService.queryListByIsDefault(false);
 
-	@ApiOperation(value = "购买会员")
-	@PostMapping("/buy")
-	public Object buy(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
-		return memberRankSettingService.buy(memberPayParamDto);
-	}
+        for (MemberRankSetting mrs : result) {
+            mrs.setMemberFeeSetting(memberFeeSettingService.findByRankIdAndOrganId(sysUser.getOrganId(), mrs.getId()));
+            mrs.setMemberPrivilegesItemList(memberRankPrivilegesService.queryByMemberRankId(mrs.getId()));
+        }
+        return succeed(result);
+    }
+
+    @ApiOperation(value = "购买会员")
+    @PostMapping("/buy")
+    public Object buy(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
+        return memberRankSettingService.buy(memberPayParamDto);
+    }
 
     /**
      * 齐齐哈尔购买团练宝-默认激活
@@ -96,11 +94,22 @@ public class MemberRankController extends BaseController {
         return memberRankSettingService.buy2Qqhe(memberPayParamDto);
     }
 
+    @ApiOperation(value = "查询是否有待支付的活动订单")
+    @GetMapping("/queryBuy2Qqhe")
+    public Object queryBuy2Qqhe() {
+        return memberRankSettingService.queryBuy2Qqhe();
+    }
 
-	@ApiOperation(value = "2021-09活动购买会员")
-	@PostMapping("/activeBuy")
-	public HttpResponseResult ActiveBuy(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
-		throw new BizException("活动已结束,谢谢关注");
+    @ApiOperation(value = "关闭活动订单")
+    @GetMapping("/closeBuy2Qqhe")
+    public Object closeBuy2Qqhe(String orderNo) {
+        return memberRankSettingService.closeBuy2Qqhe(orderNo);
+    }
+
+    @ApiOperation(value = "2021-09活动购买会员")
+    @PostMapping("/activeBuy")
+    public HttpResponseResult ActiveBuy(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
+        throw new BizException("活动已结束,谢谢关注");
 //		Date nowTime = new Date();
 //		String startTimeStr = sysConfigDao.findConfigValue("cloud_teacher_active_start_time");
 //		Date startTime = DateUtil.stringToDate(startTimeStr);
@@ -131,27 +140,27 @@ public class MemberRankController extends BaseController {
 //				buyNum,
 //				giveNum,
 //				202109,remark,memberPayParamDto.isRepay());
-	}
-	
+    }
+
     @ApiOperation(value = "查询订单列表")
     @GetMapping("/queryOrderPage")
     public Object queryOrderPage(CloudTeacherOrderQueryInfo queryInfo) {
-    	SysUser user = sysUserFeignService.queryUserInfo();
-		if (user == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-		queryInfo.setStudentId(user.getId());
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        queryInfo.setStudentId(user.getId());
         return succeed(cloudTeacherOrderService.queryPage(queryInfo));
     }
 
     @ApiOperation(value = "获取学员购买的云教练活动订单")
     @GetMapping("/queryActiveOrderPage")
     public Object queryActiveOrderPage() {
-    	SysUser user = sysUserFeignService.queryUserInfo();
-		if (user == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-        return succeed(cloudTeacherOrderService.queryActiveOrderPage(user.getId(),202109,null));
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(cloudTeacherOrderService.queryActiveOrderPage(user.getId(), 202109, null));
     }
 
 }