From 2c191a448d8317156aff6b16b956f641ebac9e17 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Fri, 21 Jun 2024 15:34:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E9=94=99=E8=AF=AF=E5=AF=BC=E8=87=B4=E9=A4=90?= =?UTF-8?q?=E8=B4=B9=E7=A7=AF=E5=88=86=E6=9C=AA=E6=AD=A3=E5=B8=B8=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E5=92=8C=E8=A7=A3=E5=86=BB=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=EF=BC=9A=E5=9C=A8=E7=BA=BF=E4=B9=B0=E5=8D=95=20-=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=A4=90=E8=B4=B9=E7=A7=AF=E5=88=86=E6=8A=B5=E6=89=A3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/dao/store/order/StoreGroupOrderDao.php | 2 +- app/common/dao/store/order/StoreOrderDao.php | 4 ++-- .../store/order/StoreOrderCreateRepository.php | 6 ++++++ app/controller/api/store/order/OnlinePay.php | 2 +- app/listener/exchangeQuota/OrderPaySuccessEvent.php | 10 ++++++++++ app/listener/shareholder/ShareholderListen.php | 12 ++++++------ 6 files changed, 26 insertions(+), 10 deletions(-) diff --git a/app/common/dao/store/order/StoreGroupOrderDao.php b/app/common/dao/store/order/StoreGroupOrderDao.php index 2a5c737..0dd2cd6 100644 --- a/app/common/dao/store/order/StoreGroupOrderDao.php +++ b/app/common/dao/store/order/StoreGroupOrderDao.php @@ -51,7 +51,7 @@ class StoreGroupOrderDao extends BaseDao ->when(isset($where['paid']) && $where['paid'] !== '',function($query) use ($where){ $query->where('paid',$where['paid']); }) - ->whereNotIn('activity_type',[30,31,32,33,34]) + ->whereNotIn('activity_type',[30,31,32,33,34,36,37,38]) ->when(isset($where['paid']) && $where['paid'] !== '',function($query) use ($where){ $query->where('paid',$where['paid']); }) diff --git a/app/common/dao/store/order/StoreOrderDao.php b/app/common/dao/store/order/StoreOrderDao.php index e0e2b62..05bbbad 100644 --- a/app/common/dao/store/order/StoreOrderDao.php +++ b/app/common/dao/store/order/StoreOrderDao.php @@ -90,9 +90,9 @@ class StoreOrderDao extends BaseDao $isWithGoods = $where['is_with_goods'] ?? 0; $activityType = $where['activity_type'] ?? 0; if($isWithGoods == 1 || $activityType == 35){ - $query->whereNotIn('StoreOrder.activity_type',[20,30,31,32,33,34]); + $query->whereNotIn('StoreOrder.activity_type',[20,30,31,32,33,34,36,37,38]); }else if($activityType == 0){ - $query->whereNotIn('StoreOrder.activity_type',[20,30,31,32,33,34,35]); + $query->whereNotIn('StoreOrder.activity_type',[20,30,31,32,33,34,35,36,37,38]); } $query->when(($sysDel !== null), function ($query) use ($sysDel) { diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index 01563c8..a8749b3 100644 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -3121,6 +3121,11 @@ class StoreOrderCreateRepository extends StoreOrderRepository{ $payMoney = abs((float)$payInfo['money']); $merId = array_key_exists('mer_id',$payInfo) ? (int)$payInfo['mer_id'] : 0; $uid = $user->uid; + // 判断:在线买单时 计算积分抵扣信息 + $integralUse = $payInfo['integral_use'] ?? 0; + if($activityType == 30 && $integralUse > 0){ + $payMoney -= $integralUse; + } // 是否自购 $isSelfBuy = $user->is_promoter && systemConfig('extension_self') ? 1 : 0; if($isSelfBuy){ @@ -3166,6 +3171,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository{ 'platform_coupon_price' => '', 'pay_type' => $payType, 'refund_switch' => 0, + 'merchant_shareholder_integral' => $integralUse, ]; $groupOrder = [ 'uid' => $uid, diff --git a/app/controller/api/store/order/OnlinePay.php b/app/controller/api/store/order/OnlinePay.php index 90c995b..8c06fa3 100644 --- a/app/controller/api/store/order/OnlinePay.php +++ b/app/controller/api/store/order/OnlinePay.php @@ -65,7 +65,7 @@ class OnlinePay extends BaseController{ */ public function createOrder(StoreOrderCreateRepository $orderCreateRepository){ // 参数获取 - $payInfo = $this->request->params(['money','pay_type', 'mer_id', 'return_url']); + $payInfo = $this->request->params(['money','pay_type', 'mer_id', 'return_url','integral_use']); if (!in_array($payInfo['pay_type'], StoreOrderRepository::PAY_TYPE, true)) return app('json')->fail('请选择正确的支付方式'); if ((float)$payInfo['money'] <= 0) return app('json')->fail('支付金额必须大于0!'); if ((int)$payInfo['mer_id'] <= 0) return app('json')->fail('请选择商户!'); diff --git a/app/listener/exchangeQuota/OrderPaySuccessEvent.php b/app/listener/exchangeQuota/OrderPaySuccessEvent.php index 737a11f..4761066 100644 --- a/app/listener/exchangeQuota/OrderPaySuccessEvent.php +++ b/app/listener/exchangeQuota/OrderPaySuccessEvent.php @@ -4,6 +4,7 @@ namespace app\listener\exchangeQuota; use app\common\model\marketing\activity\Record; use app\common\model\marketing\agent\AgentDelivery; +use app\common\model\system\merchant\MerchantShareholderIntegral; use app\common\model\user\ExchangeIntegralRecord; use app\common\model\user\ExchangeQuota; use app\common\model\user\ExchangeQuotaRecord; @@ -280,6 +281,15 @@ class OrderPaySuccessEvent{ 'source' => 0 ]; } + // 是否存在餐费积分使用情况 存在则减少餐费积分 + $useIntegral = $orderInfo->merchant_shareholder_integral ?? 0; + if($useIntegral > 0){ + MerchantShareholderIntegral::where('status',1) + ->where('uid','=',$orderInfo->uid) + ->where('mer_id','=',$orderInfo->mer_id) + ->inc('integral_use',$useIntegral) + ->update(); + } } // 修改用户持有 $userHoldInfo->save(); diff --git a/app/listener/shareholder/ShareholderListen.php b/app/listener/shareholder/ShareholderListen.php index 4a324d0..be01a4e 100644 --- a/app/listener/shareholder/ShareholderListen.php +++ b/app/listener/shareholder/ShareholderListen.php @@ -11,18 +11,18 @@ use crmeb\interfaces\ListenerInterface; class ShareholderListen extends TimerService implements ListenerInterface{ public function handle($event): void{ - $this->tick(1000 * 5, function () { - // Log::info('餐费积分定时任务被触发:'); + $this->tick(1000 * 60 * 5, function () { + Log::info('餐费积分定时任务被触发:'); request()->clearCache(); try{ // 积分解冻 预计解冻时间小于当前时间,且状态为冻结中 MerchantShareholderIntegral::where('status',0) - ->where('expect_thaw_time','<=',time()) - ->update(['status' => 1]); + ->where('expect_thaw_time','<=', date("Y-m-d H:i:s")) + ->update(['status' => 1,'real_thaw_time' => date("Y-m-d H:i:s", time())]); // 积分过期 预计过期时间小于当前时间,且状态为使用中 MerchantShareholderIntegral::where('status',1) - ->where('expect_overdue_time','<=',time()) - ->update(['status' => 2]); + ->where('expect_overdue_time','<=', date("Y-m-d H:i:s")) + ->update(['status' => 2,'real_overdue_time' => date("Y-m-d H:i:s", time())]); }catch(\Exception $e){ Log::info('餐费积分定时任务 - 错误:' . $e->getMessage()); }