| 
														
															@@ -1409,7 +1409,43 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService 
														 | 
													
												
											
												
													
														| 
														 | 
														
															    @Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRED) 
														 | 
														
														 | 
														
															    @Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRED) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															    public R finishStoreOrder(Long orderId){ 
														 | 
														
														 | 
														
															    public R finishStoreOrder(Long orderId){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         FsStoreOrder order= fsStoreOrderMapper.selectFsStoreOrderById(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.setFinishTime(new Date()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             order.setStatus(3); 
														 | 
														
														 | 
														
															             order.setStatus(3); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fsStoreOrderMapper.updateFsStoreOrder(order); 
														 | 
														
														 | 
														
															             fsStoreOrderMapper.updateFsStoreOrder(order); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1424,7 +1460,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //模板消息支付成功发布事件 
														 | 
														
														 | 
														
															             //模板消息支付成功发布事件 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             TemplateBean templateBean = TemplateBean.builder() 
														 | 
														
														 | 
														
															             TemplateBean templateBean = TemplateBean.builder() 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     .orderId(order.getId().toString()) 
														 | 
														
														 | 
														
															                     .orderId(order.getId().toString()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    .orderCode(order.getOrderCode().toString()) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    .orderCode(order.getOrderCode()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     .remark("您的订单已签收成功") 
														 | 
														
														 | 
														
															                     .remark("您的订单已签收成功") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     .finishTime(order.getFinishTime()) 
														 | 
														
														 | 
														
															                     .finishTime(order.getFinishTime()) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     .userId(order.getUserId()) 
														 | 
														
														 | 
														
															                     .userId(order.getUserId()) 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1434,7 +1470,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             return R.ok("操作成功"); 
														 | 
														
														 | 
														
															             return R.ok("操作成功"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else { 
														 | 
														
														 | 
														
															         else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            return R.error("非法操作"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            throw new RuntimeException("待收货状态才允许完成交易!"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1498,57 +1534,17 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             storeOrder.setPayTime(new Date()); 
														 | 
														
														 | 
														
															             storeOrder.setPayTime(new Date()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             fsStoreOrderMapper.updateFsStoreOrder(storeOrder); 
														 | 
														
														 | 
														
															             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 
														 | 
														
														 | 
														
															             //非处方直接提交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()); 
														 | 
														
														 | 
														
															                     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){ 
														 | 
														
														 | 
														
															         catch (Exception e){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             logger.info("payConfirm:"+e.getMessage()); 
														 | 
														
														 | 
														
															             logger.info("payConfirm:"+e.getMessage()); 
														 |