瀏覽代碼

feat:购买套餐发送优惠券转移为交易成功后

xdd 2 月之前
父節點
當前提交
2a46d7938f
共有 1 個文件被更改,包括 46 次插入50 次删除
  1. 46 50
      fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

+ 46 - 50
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -1409,7 +1409,43 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
    @Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRED)
    public R finishStoreOrder(Long orderId){
         FsStoreOrder order= fsStoreOrderMapper.selectFsStoreOrderById(orderId);
-        if(order.getStatus()==OrderInfoEnum.STATUS_2.getValue()){
+
+        // 如果是套餐类型的
+        if(ObjectUtil.equal(order.getIsPackage(),1)) {
+           logger.info("订单是套餐类型, 订单ID: {}", order.getId());
+           // 如果该套餐有定时发放优惠券,就放置到定时发放优惠券队列
+           FsStoreProductPackage fsStoreProductPackage = productPackageService.selectFsStoreProductPackageById(order.getPackageId());
+           logger.info("查询到的套餐信息: {}", fsStoreProductPackage);
+
+           if(ObjectUtil.equal(1,fsStoreProductPackage.getIcgEnable())){
+               logger.info("套餐开启了定时发放优惠券功能, 套餐ID: {}", fsStoreProductPackage.getPackageId());
+
+               FsCouponSchedule fsCouponSchedule = new FsCouponSchedule();
+               fsCouponSchedule.setOrderId(order.getId());
+               fsCouponSchedule.setSetmealId(fsStoreProductPackage.getPackageId());
+               fsCouponSchedule.setSetmealTitle(fsStoreProductPackage.getTitle());
+               fsCouponSchedule.setMonth(fsStoreProductPackage.getIcgMonth().longValue());
+               fsCouponSchedule.setCount(0L);
+               fsCouponSchedule.setPage(fsStoreProductPackage.getIcgUrl());
+               fsCouponSchedule.setCouponIds(StringUtils.join(fsStoreProductPackage.getIcgCouponsId(),","));
+               fsCouponSchedule.setRemark(fsStoreProductPackage.getIcgMark());
+               fsCouponSchedule.setStatus(IcgProcessStatusEnum.PENDING.getCode());
+               fsCouponSchedule.setOrderTime(LocalDateTime.now());
+               fsCouponSchedule.setUserId(order.getUserId());
+               // 如果上次发送时间为空,那么预计发送时间等于=下单时间+1月
+               // 获取下个月10号
+               fsCouponSchedule.setSendTime(fsCouponSchedule.getOrderTime().plusMonths(1L).withDayOfMonth(10));
+               fsCouponSchedule.setRetryCount(0);
+
+               fsCouponSchedule.setCompanyId(order.getCompanyId());
+               fsCouponSchedule.setCompanyUserId(order.getCompanyUserId());
+
+               fsCouponScheduleService.insertFsCouponSchedule(fsCouponSchedule);
+
+               logger.info("插入优惠券定时发放任务成功,任务ID:{}",fsCouponSchedule.getId());
+           }
+        }
+        if(ObjectUtil.equal(order.getStatus(),OrderInfoEnum.STATUS_2.getValue())){
             order.setFinishTime(new Date());
             order.setStatus(3);
             fsStoreOrderMapper.updateFsStoreOrder(order);
@@ -1424,7 +1460,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             //模板消息支付成功发布事件
             TemplateBean templateBean = TemplateBean.builder()
                     .orderId(order.getId().toString())
-                    .orderCode(order.getOrderCode().toString())
+                    .orderCode(order.getOrderCode())
                     .remark("您的订单已签收成功")
                     .finishTime(order.getFinishTime())
                     .userId(order.getUserId())
@@ -1434,7 +1470,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             return R.ok("操作成功");
         }
         else {
-            return R.error("非法操作");
+            throw new RuntimeException("待收货状态才允许完成交易!");
         }
     }
 
@@ -1498,57 +1534,17 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             storeOrder.setPayTime(new Date());
             fsStoreOrderMapper.updateFsStoreOrder(storeOrder);
 
-            // 如果是套餐类型的
-            if(ObjectUtil.equal(order.getIsPackage(),1)) {
-                logger.info("订单是套餐类型, 订单ID: {}", order.getId());
-                // 如果该套餐有定时发放优惠券,就放置到定时发放优惠券队列
-                FsStoreProductPackage fsStoreProductPackage = productPackageService.selectFsStoreProductPackageById(order.getPackageId());
-                logger.info("查询到的套餐信息: {}", fsStoreProductPackage);
-
-                if(ObjectUtil.equal(1,fsStoreProductPackage.getIcgEnable())){
-                    logger.info("套餐开启了定时发放优惠券功能, 套餐ID: {}", fsStoreProductPackage.getPackageId());
-
-                    FsCouponSchedule fsCouponSchedule = new FsCouponSchedule();
-                    fsCouponSchedule.setOrderId(order.getId());
-                    fsCouponSchedule.setSetmealId(fsStoreProductPackage.getPackageId());
-                    fsCouponSchedule.setSetmealTitle(fsStoreProductPackage.getTitle());
-                    fsCouponSchedule.setMonth(fsStoreProductPackage.getIcgMonth().longValue());
-                    fsCouponSchedule.setCount(0L);
-                    fsCouponSchedule.setPage(fsStoreProductPackage.getIcgUrl());
-                    fsCouponSchedule.setCouponIds(StringUtils.join(fsStoreProductPackage.getIcgCouponsId(),","));
-                    fsCouponSchedule.setRemark(fsStoreProductPackage.getIcgMark());
-                    fsCouponSchedule.setStatus(IcgProcessStatusEnum.PENDING.getCode());
-                    fsCouponSchedule.setOrderTime(LocalDateTime.now());
-                    fsCouponSchedule.setUserId(order.getUserId());
-                    // 如果上次发送时间为空,那么预计发送时间等于=下单时间+1月
-                    // 获取下个月10号
-                    fsCouponSchedule.setSendTime(fsCouponSchedule.getOrderTime().plusMonths(1L).withDayOfMonth(10));
-                    fsCouponSchedule.setRetryCount(0);
-
-                    fsCouponSchedule.setCompanyId(order.getCompanyId());
-                    fsCouponSchedule.setCompanyUserId(order.getCompanyUserId());
-
-                    fsCouponScheduleService.insertFsCouponSchedule(fsCouponSchedule);
-
-                    logger.info("插入优惠券定时发放任务成功,任务ID:{}",fsCouponSchedule.getId());
-                }
-            }
             //非处方直接提交OMS
-            try {
-                if(order.getIsPrescribe().equals(0)){
+            if(order.getIsPrescribe().equals(0)){
+                createOmsOrder(order.getId());
+            }
+            else if(order.getIsPrescribe().equals(1)){
+                //是否已开方
+                FsPrescribe prescribe=prescribeService.selectFsPrescribeByOrderId(order.getId());
+                if(prescribe!=null&&prescribe.getStatus()==1){
                     createOmsOrder(order.getId());
                 }
-                else if(order.getIsPrescribe().equals(1)){
-                    //是否已开方
-                    FsPrescribe prescribe=prescribeService.selectFsPrescribeByOrderId(order.getId());
-                    if(prescribe!=null&&prescribe.getStatus()==1){
-                        createOmsOrder(order.getId());
-                    }
-                }
-            }catch (Exception e){
-
             }
-
         }
         catch (Exception e){
             logger.info("payConfirm:"+e.getMessage());