Browse Source

完善功能

gorden 9 months ago
parent
commit
6b70b9ce7f

+ 31 - 2
app/admin/controller/notify/RechargeController.php

@@ -12,9 +12,38 @@ use support\Request;
 
 class RechargeController
 {
-    public function paySuccess(Request $request)
+    /**
+     * @Desc 计划任务
+     * @Author Gorden
+     * @Date 2024/5/29 11:31
+     *
+     * @return void
+     */
+    public function disposePaySuccess()
+    {
+//        $unix = strtotime(date("Y-m-d H:i",strtotime("-1 minute")).':00');
+        $payDetails = PayDetail::where('pay_category', 'RECHARGE')
+            ->where('pay_status', 'SUCCESS')
+            ->where(function ($query) {
+                $query->whereNull('pay_extend_json')
+                    ->orWhereJsonDoesntContain('pay_extend_json->notify', 'success');
+            })
+            ->get()
+            ->toArray();
+        if (!$payDetails) {
+            return;
+        }
+
+        foreach ($payDetails as $payDetail) {
+            $this->paySuccess($payDetail['pay_id']);
+        }
+    }
+
+//    public function paySuccess(Request $request)
+//    {
+//        $id = $request->post('pay_id', null);
+    public function paySuccess($id)
     {
-        $id = $request->post('pay_id', null);
         if (!$id) {
             return json_fail('参数异常');
         }

+ 7 - 8
app/admin/service/notify/RechargeService.php

@@ -51,17 +51,16 @@ class RechargeService
      */
     public static function disposeRole($memberId, $payAmount)
     {
-        $memberAccount = MemberAccount::where('join_account_member_id', $memberId)->first();
-        if ($memberAccount->member_account_income > $memberAccount->member_account_expend) {
-            $money = $memberAccount->member_account_incom;
-        } else {
-            $money = $memberAccount->member_account_expend;
-        }
+        $memberAccount = MemberAccount::where('member_account_classify', 'CASH')
+            ->where('join_account_member_id', $memberId)
+            ->first();
+        $income = floatval($memberAccount->member_account_income);
+        $expend = floatval($memberAccount->member_account_expen);
+        $money = max($income,$expend);
 
         $memberRoles = MemberRole::where('member_role_status', 'ACTIVED')->get()->toArray();
         foreach ($memberRoles as $role) {
-            $amount = floatval($money) + floatval($payAmount);
-            if ($amount >= floatval($role['member_role_range_begin']) && $amount < floatval($role['member_role_range_end'])) {
+            if ($money >= floatval($role['member_role_range_begin']) && $money < floatval($role['member_role_range_end'])) {
                 return $role['member_role_id'];
             }
         }

+ 5 - 2
process/Task.php

@@ -2,6 +2,7 @@
 
 namespace process;
 
+use app\admin\controller\notify\RechargeController;
 use app\admin\service\goods\GoodsService;
 use app\admin\service\order\OrderService;
 use Workerman\Crontab\Crontab;
@@ -12,10 +13,12 @@ class Task
     {
         // 每分钟执行一次
         new Crontab('0 */1 * * * *', function () {
+            // 充值成功,更新会员等级
+            (new RechargeController)->disposePaySuccess();
             // 商品自动上架
-            GoodsService::checkListing();
+//            GoodsService::checkListing();
             // 商品自动下架
-            GoodsService::checkOffListing();
+//            GoodsService::checkOffListing();
             // 未支付30分钟取消
             OrderService::checkPayingOrder();
         });