Преглед на файлове

订单定时确认收货

gorden преди 11 месеца
родител
ревизия
a32e520cbc

+ 0 - 3
app/admin/controller/asset/HouseTypeController.php

@@ -46,7 +46,6 @@ class HouseTypeController extends Curd
         $data['asset_id'] = 'AE' . date('YmdHis') . random_string(6, 'up');
         $data['asset_house_json'] = json_encode(['floor_plan' => str_replace(getenv('STORAGE_DOMAIN'), '', $data['floor_plan'])]);
         $data['asset_json'] = json_encode(['address' => $data['asset_house_address']]);
-        dump($data);
 
         return $data;
     }
@@ -73,8 +72,6 @@ class HouseTypeController extends Curd
             $data['asset_json'] = json_encode($assetJson);
         }
 
-        dump($data);
-
         unset($data[$primary_key]);
         return [$id, $data];
     }

+ 3 - 2
app/admin/controller/order/WholeController.php

@@ -15,6 +15,7 @@ use app\model\OrderSheet;
 use app\model\SysSerial;
 use support\Db;
 use support\exception\BusinessException;
+use support\Redis;
 use support\Request;
 use support\Response;
 
@@ -112,9 +113,9 @@ class WholeController extends Curd
         try {
             Db::beginTransaction();
             // 该订单状态
-            Order::where('order_id', $request->post('order_id'))->update(['order_status_system' => 'RECVING','order_status_storage'=>'EXPRESSING']);
+            Order::where('order_id', $request->post('order_id'))->update(['order_status_system' => 'RECVING', 'order_status_storage' => 'EXPRESSING']);
             // 订单包含的产品
-            $sheet = OrderSheet::where('join_sheet_order_id',$request->post('order_id'))
+            $sheet = OrderSheet::where('join_sheet_order_id', $request->post('order_id'))
                 ->select('join_sheet_goods_id')
                 ->get();
             // 入配送记录表

+ 3 - 4
app/admin/service/goods/GoodsService.php

@@ -191,7 +191,7 @@ class GoodsService
             self::goodsSkuSet($params, 'insert');
             // 待上架状态,上架时间大于当前时间
             if ($params['goods_status'] == 'PENDING' && strtotime($params['goods_on_addtimes']) > time()) {
-                $redis = Redis::connection('listing');
+                $redis = Redis::connection();
                 $key = date('YmdHi', strtotime($params['goods_on_addtimes']));
                 $redis->sAdd(Goods::LISTING_KEY_PREFIX . $key, $params['goods_id']);
             }
@@ -456,7 +456,7 @@ class GoodsService
             $row = Goods::find($data['goods_id']);
             // 上架时间有变动
             if ($data['goods_status'] == 'PENDING' && $row->goods_on_addtimes != $data['goods_on_addtimes']) {
-                $redis = Redis::connection('listing');
+                $redis = Redis::connection();
                 // 删掉原来的
                 $oldKey = Goods::LISTING_KEY_PREFIX . date('YmdHi', $row->goods_on_addtimes);
                 $redis->srem($oldKey, $data['goods_id']);
@@ -633,7 +633,6 @@ class GoodsService
                 $data[$col] = null;
             }
             if (is_array($item)) {
-                dump($item);
                 $data[$col] = implode(',', $item);
             }
             if ($item != '' && (strpos(strtolower($columns[$col]), 'varchar') || strpos(strtolower($columns[$col]), 'text'))) {
@@ -678,7 +677,7 @@ class GoodsService
     public static function checkListing()
     {
         $key = Goods::LISTING_KEY_PREFIX . date('YmdHi');
-        $redis = Redis::connection('listing');
+        $redis = Redis::connection();
         if ($redis->exists($key)) {
             $goodsIds = $redis->sMembers($key);
             if (Goods::whereIn('goods_id', $goodsIds)->update(['goods_status' => 'ON'])) {

+ 32 - 0
app/admin/service/order/OrderService.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace app\admin\service\order;
+
+use app\model\Order;
+use support\Redis;
+
+class OrderService
+{
+
+    /**
+     * @Desc 自动确认收货
+     * @Author Gorden
+     * @Date 2024/4/11 16:09
+     *
+     * @return void
+     */
+    public static function AutomaticReceipt()
+    {
+        $redis = Redis::connection();
+        $key = Order::AUTOMATIC_RECEIPT_PREFIX . date('Ymd');
+        if (!$redis->exists($key)) {
+            return;
+        }
+        try {
+            $orderIds = $redis->smembers($key);
+            Order::whereIn('order_id', $orderIds)->update(['order_is_complete' => 'Y', 'order_status_system' => 'CONFIRM']);
+            $redis->del($key);
+        } catch (\Exception $e) {
+        }
+    }
+}

+ 0 - 1
app/admin/validate/goods/GoodsValidate.php

@@ -78,7 +78,6 @@ class GoodsValidate extends Validate
         if (is_json($value)) {
             return true;
         }
-dump($value);
         return "数据格式错误";
     }
 }

+ 2 - 0
app/model/Order.php

@@ -19,6 +19,8 @@ class Order extends Model
 
     const UPDATED_AT = null;
 
+    const AUTOMATIC_RECEIPT_PREFIX = 'ORDER:AUTOMATIC:RECEIPT:';
+
     public function serializeDate(DateTimeInterface $date)
     {
         return $date->format('Y-m-d H:i:s');

+ 11 - 2
process/Task.php

@@ -1,16 +1,25 @@
 <?php
+
 namespace process;
 
 use app\admin\service\goods\GoodsService;
+use app\admin\service\order\OrderService;
 use Workerman\Crontab\Crontab;
 
 class Task
 {
     public function onWorkerStart()
-    {        // 每分钟执行一次
-        new Crontab('0 */1 * * * *', function(){
+    {
+        // 每分钟执行一次
+        new Crontab('0 */1 * * * *', function () {
+            // 商品自动上架
             GoodsService::checkListing();
         });
 
+        // 每天的8点执行,注意这里省略了秒位
+        new Crontab('0 8 * * *', function () {
+            // 自动确认收货
+            OrderService::AutomaticReceipt();
+        });
     }
 }