diff --git a/crmeb/app/api/controller/v1/order/StoreOrderController.php b/crmeb/app/api/controller/v1/order/StoreOrderController.php index f27603e93..74f282d8c 100644 --- a/crmeb/app/api/controller/v1/order/StoreOrderController.php +++ b/crmeb/app/api/controller/v1/order/StoreOrderController.php @@ -430,6 +430,7 @@ class StoreOrderController * 订单删除 * @param Request $request * @return mixed + * @throws \Psr\SimpleCache\InvalidArgumentException */ public function del(Request $request) { diff --git a/crmeb/app/jobs/UnpaidOrderCancelJob.php b/crmeb/app/jobs/UnpaidOrderCancelJob.php index 81fb32355..6e11539c4 100644 --- a/crmeb/app/jobs/UnpaidOrderCancelJob.php +++ b/crmeb/app/jobs/UnpaidOrderCancelJob.php @@ -33,7 +33,7 @@ class UnpaidOrderCancelJob extends BaseJobs public function doJob($orderId) { /** @var StoreOrderServices $services */ - $services = app()->make(StoreOrderServices::class); + $services = app()->make(StoreOrderServices::class); $orderInfo = $services->get($orderId); if (!$orderInfo) { return true; @@ -49,21 +49,21 @@ class UnpaidOrderCancelJob extends BaseJobs } /** @var StoreOrderCartInfoServices $cartServices */ $cartServices = app()->make(StoreOrderCartInfoServices::class); - $cartInfo = $cartServices->getOrderCartInfo($orderId); + $cartInfo = $cartServices->getOrderCartInfo($orderId); /** @var StoreOrderRefundServices $refundServices */ $refundServices = app()->make(StoreOrderRefundServices::class); try { $res = $refundServices->transaction(function () use ($orderInfo, $refundServices) { //回退积分和优惠卷 - $refundServices->integralAndCouponBack($orderInfo); + $refundServices->integralAndCouponBack($orderInfo, 'cancel'); //回退库存和销量 $refundServices->regressionStock($orderInfo); return true; }); if ($res) { $orderInfo->is_del = 1; - $orderInfo->mark = '订单未支付已超过系统预设时间'; + $orderInfo->mark = '订单未支付已超过系统预设时间'; $orderInfo->save(); } return $res; diff --git a/crmeb/app/services/order/StoreOrderComputedServices.php b/crmeb/app/services/order/StoreOrderComputedServices.php index b83502338..75f19060a 100644 --- a/crmeb/app/services/order/StoreOrderComputedServices.php +++ b/crmeb/app/services/order/StoreOrderComputedServices.php @@ -391,7 +391,7 @@ class StoreOrderComputedServices extends BaseServices foreach ($temp_num as $k => $v) { if (isset($temp[$v['temp_id']]['appoint']) && $temp[$v['temp_id']]['appoint'] && isset($freeList[$v['temp_id']])) { $free = $freeList[$v['temp_id']]; - $condition = $v['type'] == 1 ? $free['number'] <= $v['number'] : $free['number'] >= $v['number']; + $condition = $free['number'] <= $v['number']; if ($free['price'] <= $v['price'] && $condition) { unset($temp_num[$k]); } diff --git a/crmeb/app/services/order/StoreOrderRefundServices.php b/crmeb/app/services/order/StoreOrderRefundServices.php index 481886199..b0926ab9c 100644 --- a/crmeb/app/services/order/StoreOrderRefundServices.php +++ b/crmeb/app/services/order/StoreOrderRefundServices.php @@ -426,25 +426,26 @@ class StoreOrderRefundServices extends BaseServices /** * 回退积分和优惠卷 * @param $order + * @param string $type * @return bool */ - public function integralAndCouponBack($order) + public function integralAndCouponBack($order, $type = 'refund') { /** @var StoreOrderStatusServices $statusService */ $statusService = app()->make(StoreOrderStatusServices::class); $res = true; -// //回退优惠卷 拆分子订单不退优惠券 -// if (!$order['pid'] && $order['coupon_id'] && $order['coupon_price']) { -// /** @var StoreCouponUserServices $couponUserServices */ -// $couponUserServices = app()->make(StoreCouponUserServices::class); -// $res = $couponUserServices->recoverCoupon((int)$order['coupon_id']); -// $statusService->save([ -// 'oid' => $order['id'], -// 'change_type' => 'coupon_back', -// 'change_message' => '商品退优惠券', -// 'change_time' => time() -// ]); -// } + //取消的订单退回优惠券 + if ($type == 'cancel' && $order['coupon_id'] && $order['coupon_price']) { + /** @var StoreCouponUserServices $couponUserServices */ + $couponUserServices = app()->make(StoreCouponUserServices::class); + $res = $couponUserServices->recoverCoupon((int)$order['coupon_id']); + $statusService->save([ + 'oid' => $order['id'], + 'change_type' => 'coupon_back', + 'change_message' => '商品退优惠券', + 'change_time' => time() + ]); + } //回退积分 $order = $this->regressionIntegral($order); $statusService->save([ diff --git a/crmeb/app/services/order/StoreOrderServices.php b/crmeb/app/services/order/StoreOrderServices.php index 0933c9aa6..ebacd3ed3 100644 --- a/crmeb/app/services/order/StoreOrderServices.php +++ b/crmeb/app/services/order/StoreOrderServices.php @@ -1855,9 +1855,10 @@ HTML; /** * 删除订单 - * @param $uni - * @param $uid + * @param string $uni + * @param int $uid * @return bool + * @throws \Psr\SimpleCache\InvalidArgumentException */ public function removeOrder(string $uni, int $uid) { @@ -1879,21 +1880,6 @@ HTML; 'change_time' => time() ]); if ($order->save() && $res) { - //未支付和已退款的状态下才可以退积分退库存退优惠券 - if ($order['_status']['_type'] == 0 || $order['_status']['_type'] == -2) { - /** @var StoreOrderRefundServices $refundServices */ - $refundServices = app()->make(StoreOrderRefundServices::class); - $this->transaction(function () use ($order, $refundServices) { - //回退积分和优惠卷 - $res = $refundServices->integralAndCouponBack($order); - //回退库存 - $res = $res && $refundServices->regressionStock($order); - if (!$res) { - throw new ApiException(100020); - } - }); - - } return true; } else throw new ApiException(100020); @@ -1924,7 +1910,7 @@ HTML; $refundServices = app()->make(StoreOrderRefundServices::class); $this->transaction(function () use ($refundServices, $order) { - $res = $refundServices->integralAndCouponBack($order) && $refundServices->regressionStock($order); + $res = $refundServices->integralAndCouponBack($order, 'cancel') && $refundServices->regressionStock($order); $order->is_del = 1; if (!($res && $order->save())) { throw new ApiException(100020); @@ -2136,7 +2122,7 @@ HTML; try { $this->transaction(function () use ($order, $refundServices) { //回退积分和优惠卷 - $res = $refundServices->integralAndCouponBack($order); + $res = $refundServices->integralAndCouponBack($order, 'cancel'); //回退库存和销量 $res = $res && $refundServices->regressionStock($order); //修改订单状态 diff --git a/crmeb/app/services/product/product/StoreProductServices.php b/crmeb/app/services/product/product/StoreProductServices.php index 9c6956c5d..5bca46e8b 100644 --- a/crmeb/app/services/product/product/StoreProductServices.php +++ b/crmeb/app/services/product/product/StoreProductServices.php @@ -1815,7 +1815,7 @@ class StoreProductServices extends BaseServices $memberCardService = app()->make(MemberCardServices::class); $vipStatus = $memberCardService->isOpenMemberCard('vip_price'); foreach ($list as &$item) { - if (!($vipStatus && $item['is_vip'])) { + if (!$this->vipIsOpen(!!$item['is_vip'], $vipStatus)) { $item['vip_price'] = 0; } } diff --git a/template/admin/src/components/couponList/index.vue b/template/admin/src/components/couponList/index.vue index f14613332..cb109fef9 100644 --- a/template/admin/src/components/couponList/index.vue +++ b/template/admin/src/components/couponList/index.vue @@ -81,7 +81,7 @@ export default { isTemplate: false, loading: false, tableFrom: { - receive_type: 1, + receive_type: 3, page: 1, limit: 10, }, diff --git a/template/admin/src/components/sendCoupons/index.vue b/template/admin/src/components/sendCoupons/index.vue index 885b6896b..d6bbdd03b 100644 --- a/template/admin/src/components/sendCoupons/index.vue +++ b/template/admin/src/components/sendCoupons/index.vue @@ -97,7 +97,7 @@ export default { page: 1, // 当前页 limit: 15, coupon_title: '', - receive_type: 1, + receive_type: 3, }, total: 0, // 总条数 }; diff --git a/template/admin/src/pages/marketing/storeCouponIssue/create.vue b/template/admin/src/pages/marketing/storeCouponIssue/create.vue index 0d3d0beda..24c5a055a 100644 --- a/template/admin/src/pages/marketing/storeCouponIssue/create.vue +++ b/template/admin/src/pages/marketing/storeCouponIssue/create.vue @@ -18,13 +18,17 @@ + + + - 普通券 - 新人券 - - 会员券 + 手动领取 + 新用户自动发放 + 后台赠送 + 付费会员专享 +
手动领取:用户需要手动领取优惠券;新用户自动发放:新注册的用户自动发放;后台赠送:后台发放制定用户或者添加到商品里面用户购买该商品获得;付费会员专享:仅付费会员可以领取和使用
@@ -50,9 +54,6 @@
选择商品的品类
- - - 无门槛 @@ -462,4 +463,7 @@ export default { right: 0; transform: translate(50%, -50%); } +.tip { + color: #888; +} diff --git a/template/admin/src/pages/marketing/storeCouponIssue/index.vue b/template/admin/src/pages/marketing/storeCouponIssue/index.vue index d1b7bad3a..b04fbafb3 100644 --- a/template/admin/src/pages/marketing/storeCouponIssue/index.vue +++ b/template/admin/src/pages/marketing/storeCouponIssue/index.vue @@ -22,10 +22,9 @@