Ver código fonte

续费 与 采购

shish 5 anos atrás
pai
commit
75efec691d

+ 1 - 1
app-ghs/controllers/OrderController.php

@@ -377,4 +377,4 @@ class OrderController extends BaseController
         util::success($respond);
     }
 
-}
+}

+ 3 - 9
app-ghs/controllers/RenewController.php

@@ -27,18 +27,12 @@ class RenewController extends BaseController
     public function actionWxPay()
     {
         ini_set('date.timezone', 'Asia/Shanghai');
-        $sj = $this->sj;
-        $setId = isset($sj['setId']) ? $sj['setId'] : 0;
-        $set = SetMealService::getById($setId);
-        if (empty($set)) {
-            util::fail('没有找到套餐');
-        }
         $shopAdminId = $this->shopAdminId;
         $addData['shopAdminId'] = $shopAdminId;
         $shopAdmin = $this->shopAdmin;
         $adminName = $shopAdmin['name'] ?? '';
         $addData['shopAdminName'] = $adminName;
-        $price = $set['price'];
+        $price = 3980;
         $prePrice = $price;
         $actPrice = $price;
         $addData['actPrice'] = $actPrice;
@@ -46,12 +40,12 @@ class RenewController extends BaseController
         $addData['merchantId'] = $this->sjId;
         $now = time();
         $expireTime = $now + 300;//订单5分钟后过期
-        $addData['deadline'] = $expireTime;
+        $addData['deadline'] = date("Y-m-d H:i:s", $expireTime);
         $order = RenewService::addOrder($addData);
         $orderId = $order['id'];
         $orderSn = $order['orderSn'];
         $couponId = 0;
-        $name = $set['name'] . '开通续费';
+        $name = '基础版开通续费';
         $totalFee = $actPrice;
         $admin = $this->admin;
         //小程序使用miniOpenId

+ 0 - 5
app-hd/controllers/PurchaseController.php

@@ -75,11 +75,6 @@ class PurchaseController extends BaseController
         $orderSn = $get['orderSn'] ?? 0;
         $info = PurchaseClass::getByCondition(['orderSn' => $orderSn], true);
         PurchaseClass::valid($info->attributes, $this->shopId);
-        $deadline = $info->deadline;
-        if ($deadline <= date("Y-m-d H:i:s")) {
-            PurchaseClass::cancel($info);
-            util::fail('订单已失效,请重新采购');
-        }
         $ghsId = $info->ghsId;
         $ghs = GhsClass::getGhsInfo($ghsId);
         $customId = $ghs['customId'] ?? 0;

+ 5 - 12
app-hd/controllers/RenewController.php

@@ -27,18 +27,12 @@ class RenewController extends BaseController
     public function actionWxPay()
     {
         ini_set('date.timezone', 'Asia/Shanghai');
-        $sj = $this->sj;
-        $setId = isset($sj['setId']) ? $sj['setId'] : 0;
-        $set = SetMealService::getById($setId);
-        if (empty($set)) {
-            util::fail('没有找到套餐');
-        }
         $shopAdminId = $this->shopAdminId;
         $addData['shopAdminId'] = $shopAdminId;
         $shopAdmin = $this->shopAdmin;
         $adminName = $shopAdmin['name'] ?? '';
         $addData['shopAdminName'] = $adminName;
-        $price = $set['price'];
+        $price = 3980;
         $prePrice = $price;
         $actPrice = $price;
         $addData['actPrice'] = $actPrice;
@@ -46,17 +40,16 @@ class RenewController extends BaseController
         $addData['merchantId'] = $this->sjId;
         $now = time();
         $expireTime = $now + 300;//订单5分钟后过期
-        $addData['deadline'] = $expireTime;
+        $addData['deadline'] = date("Y-m-d H:i:s", $expireTime);
         $order = RenewService::addOrder($addData);
         $orderId = $order['id'];
         $orderSn = $order['orderSn'];
         $couponId = 0;
-        $name = $set['name'] . '开通续费';
+        $name = '基础版开通续费';
         $totalFee = $actPrice;
-        $userId = $addData['userId'];
-        $user = UserService::getById($userId);
+        $admin = $this->admin;
         //小程序使用miniOpenId
-        $openId = $user['miniOpenId'];
+        $openId = $admin['miniOpenId'];
 
         $capitalType = dict::getDict('capitalType', 'xhRenew', 'id');
         $attach = 'capitalType=' . $capitalType . '&couponId=' . $couponId;//将流水类型、优惠卷传过去

+ 13 - 0
biz-ghs/order/classes/OrderClass.php

@@ -7,6 +7,7 @@ use biz\shop\classes\ShopClass;
 use biz\shop\models\Shop;
 use bizGhs\custom\models\Custom;
 use bizGhs\express\services\DadaExpressServices;
+use bizGhs\order\models\Order;
 use bizGhs\order\traits\OrderTrait;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\admin\classes\AdminClass;
@@ -607,4 +608,16 @@ class OrderClass extends BaseClass
         return self::getLimitList('*', $where, $limit, $order, $with);
     }
 
+    //销售单取消 shish 2021.5.14
+    public static function cancel($id)
+    {
+        $order = Order::findBySql('select * from ' . Order::tableName() . ' where id = :id for update', ['id' => $id])->one();
+        if ($order->status != OrderClass::ORDER_STATUS_UN_PAY) {
+            util::fail("销售单{$id}不是待付款状态,无法取消");
+        }
+        $order->status = self::ORDER_STATUS_CANCEL;
+        $order->save();
+        return $order;
+    }
+
 }

+ 8 - 0
biz-ghs/order/services/OrderService.php

@@ -290,4 +290,12 @@ class OrderService extends BaseService
         return ['price' => $discountPrice, 'discountType' => $discountType, 'discountAmount' => $discountAmount];
     }
 
+    //订单失效后的操作 shish 2021.5.14
+    public static function expire($id)
+    {
+        $order = OrderClass::cancel($id);
+        $purchaseId = $order->purchaseId;
+        PurchaseClass::cancel($purchaseId);
+    }
+
 }

+ 0 - 22
biz-hd/merchant/classes/ShopClass.php

@@ -29,28 +29,6 @@ class ShopClass extends BaseClass
         return isset($merchant['defaultShopId']) ? $merchant['defaultShopId'] : 0;
     }
 
-    //创建门店 ssh 2020.2.8
-    public static function addShop($data)
-    {
-        $data['createTime'] = date("Y-m-d H:i:s");
-        $shopName = isset($data['shopName']) ? $data['shopName'] : '';
-        if (empty($shopName)) {
-            util::fail('请填写门店名称');
-        }
-        $exists = self::getByCondition(['merchantId' => $data['merchantId'], 'shopName' => $shopName]);
-        if (!empty($exists)) {
-            util::fail('门店名称已经存在');
-        }
-        $data['img'] = isset($data['img']) ? json_encode($data['img']) : json_encode([]);
-        $shop = self::add($data);
-        $newShopId = $shop['id'];
-        //初始化花材 linqh 2021.5.11
-        $adminId = $data['adminId']??0;
-        $shopId = $data['shopId']??0;
-        ProductClass::newShopInitProduct($data['merchantId'],$shopId,$newShopId,$adminId);
-        return $shop;
-    }
-
     //更新门店 ssh 2020.2.29
     public static function updateShop($id, $data)
     {

+ 15 - 5
biz-hd/purchase/classes/PurchaseClass.php

@@ -9,9 +9,11 @@ use bizGhs\admin\classes\AdminClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\custom\models\Custom;
 use bizGhs\order\classes\OrderSendClass;
+use bizGhs\order\models\Order;
 use bizGhs\order\traits\OrderTrait;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\order\classes\OrderClass;
+use bizHd\purchase\models\Purchase;
 use common\components\dict;
 use common\components\orderSn;
 use common\components\util;
@@ -265,6 +267,11 @@ class PurchaseClass extends BaseClass
         if (empty($info)) {
             util::fail('没有找到订单');
         }
+        $deadline = $info->deadline;
+        if ($deadline <= date("Y-m-d H:i:s")) {
+            self::cancel($info->id);
+            util::fail('订单已失效,请重新采购');
+        }
         if (isset($info->status) == false || $info->status != self::STATUS_UN_PAY) {
             util::fail('订单不是待付款状态');
         }
@@ -321,16 +328,18 @@ class PurchaseClass extends BaseClass
     }
 
     //订单取消,变更状态,占用库存释放 shish 2021.5.8
-    public static function cancel($order)
+    public static function cancel($id)
     {
-        $order->status = self::STATUS_CANCEL;
-        $order->save();
+        $purchase = Purchase::findBySql('select * from ' . Purchase::tableName() . ' where id = :id for update', ['id' => $id])->one();
+        $purchase->status = self::STATUS_CANCEL;
+        $purchase->save();
         //供货商那边加回库存
-        $orderSn = $order->orderSn;
+        $orderSn = $purchase->orderSn;
         $purchaseItem = PurchaseItemClass::getAllByCondition(['orderSn' => $orderSn], null, "*");
         foreach ($purchaseItem as $v) {
             ProductClass::addStockByItemNum($v['ghsProductId'], $v['itemNum']);
         }
+        return $purchase;
     }
 
     //采购统计2021-05-08
@@ -374,4 +383,5 @@ class PurchaseClass extends BaseClass
         ];
 
     }
-}
+
+}

+ 11 - 0
biz-hd/purchase/services/PurchaseService.php

@@ -10,6 +10,7 @@ use bizHd\purchase\classes\PurchaseClass;
 use bizGhs\admin\classes\AdminClass;
 use common\components\imgUtil;
 use common\components\util;
+use Yii;
 
 class PurchaseService extends BaseService
 {
@@ -102,4 +103,14 @@ class PurchaseService extends BaseService
         return ['list' => $list, 'debtNum' => $count];
     }
 
+    //采购单失效 shish 2021.5.14
+    public static function expire($id)
+    {
+        //采购单失效
+        $purchase = PurchaseClass::cancel($id);
+        $saleId = $purchase->saleId;
+        //销售单失效
+        OrderClass::cancel($saleId);
+    }
+
 }

+ 40 - 41
biz-hd/saas/classes/RenewClass.php

@@ -4,51 +4,50 @@ namespace bizHd\saas\classes;
 
 use biz\sj\classes\MerchantClass;
 use bizHd\user\classes\UserClass;
+use common\components\orderSn;
 use common\components\stringUtil;
 use Yii;
 use bizHd\base\classes\BaseClass;
 
 class RenewClass extends BaseClass
 {
-	
-	public static $baseFile = '\bizHd\saas\models\Renew';
-	
-	public static function getRenewList($where)
-	{
-		$data = self::getList('*', $where, 'addTime DESC');
-		$list = isset($data['list']) ? $data['list'] : [];
-		if (empty($list)) {
-			return $data;
-		}
-		$ids = array_column($list, 'merchantId');
-		$merchant = MerchantClass::getMerchantByIds($ids);
-		$userIdList = array_column($list, 'userId');
-		$user = UserClass::getUserByIds($userIdList);
-		$setIds = array_column($list, 'setId');
-		$setIds = array_filter(array_unique($setIds));
-		$set = SetMealClass::getSetByIds($setIds);
-		foreach ($list as $key => $val) {
-			$merchantId = $val['merchantId'];
-			$userId = $val['userId'];
-			$setId = $val['setId'];
-			$list[$key]['name'] = isset($merchant[$merchantId]['name']) ? $merchant[$merchantId]['name'] : '';
-			$list[$key]['userName'] = isset($user[$userId]['userName']) ? $user[$userId]['userName'] : '';
-			$list[$key]['mobile'] = isset($user[$userId]['mobile']) ? $user[$userId]['mobile'] : '';
-			$list[$key]['setName'] = isset($set[$setId]['name']) ? $set[$setId]['name'] : '';
-		}
-		$data['list'] = $list;
-		return $data;
-	}
-	
-	//增加续费订单 ssh 2020.1.14
-	public static function addOrder($data)
-	{
-		$merchantId = $data['merchantId'];
-		$data['orderSn'] = stringUtil::generateOrderNo($merchantId, $data['userId']);
-		$data['payStatus'] = 0;
-		$data['addTime'] = time();
-		$return = self::add($data);
-		return $return;
-	}
-	
+
+    public static $baseFile = '\bizHd\saas\models\Renew';
+
+    public static function getRenewList($where)
+    {
+        $data = self::getList('*', $where, 'addTime DESC');
+        $list = isset($data['list']) ? $data['list'] : [];
+        if (empty($list)) {
+            return $data;
+        }
+        $ids = array_column($list, 'merchantId');
+        $merchant = MerchantClass::getMerchantByIds($ids);
+        $userIdList = array_column($list, 'userId');
+        $user = UserClass::getUserByIds($userIdList);
+        $setIds = array_column($list, 'setId');
+        $setIds = array_filter(array_unique($setIds));
+        $set = SetMealClass::getSetByIds($setIds);
+        foreach ($list as $key => $val) {
+            $merchantId = $val['merchantId'];
+            $userId = $val['userId'];
+            $setId = $val['setId'];
+            $list[$key]['name'] = isset($merchant[$merchantId]['name']) ? $merchant[$merchantId]['name'] : '';
+            $list[$key]['userName'] = isset($user[$userId]['userName']) ? $user[$userId]['userName'] : '';
+            $list[$key]['mobile'] = isset($user[$userId]['mobile']) ? $user[$userId]['mobile'] : '';
+            $list[$key]['setName'] = isset($set[$setId]['name']) ? $set[$setId]['name'] : '';
+        }
+        $data['list'] = $list;
+        return $data;
+    }
+
+    //增加续费订单 ssh 2020.1.14
+    public static function addOrder($data)
+    {
+        $data['orderSn'] = orderSn::getRenewSn();
+        $data['payStatus'] = 0;
+        $return = self::add($data);
+        return $return;
+    }
+
 }

+ 26 - 26
console/config/main.php

@@ -1,32 +1,32 @@
 <?php
 $params = array_merge(
-	require(__DIR__ . '/../../common/config/params.php'),
-	require(__DIR__ . '/../../common/config/params-local.php'),
-	require(__DIR__ . '/params.php'),
-	require(__DIR__ . '/params-local.php')
+    require(__DIR__ . '/../../common/config/params.php'),
+    require(__DIR__ . '/../../common/config/params-local.php'),
+    require(__DIR__ . '/params.php'),
+    require(__DIR__ . '/params-local.php')
 );
 
 return [
-	'id' => 'app-console',
-	'basePath' => dirname(__DIR__),
-	'bootstrap' => ['log'],
-	'controllerNamespace' => 'console\controllers',
-	'components' => [
-		'log' => [
-			'targets' => [
-				[
-					'class' => 'yii\log\FileTarget',
-					'levels' => ['error', 'warning'],
-				],
-			],
-		],
-		'db' => [
-			'class' => 'yii\db\Connection',
-			'dsn' => getenv('DB_DSN_CONSOLE'),
-			'username' => getenv('DB_USERNAME'),
-			'password' => getenv('DB_PASSWORD'),
-			'charset' => 'utf8',
-		],
-	],
-	'params' => $params,
+    'id' => 'app-console',
+    'basePath' => dirname(__DIR__),
+    'bootstrap' => ['log'],
+    'controllerNamespace' => 'console\controllers',
+    'components' => [
+        'log' => [
+            'targets' => [
+                [
+                    'class' => 'yii\log\FileTarget',
+                    'levels' => ['info', 'error', 'warning'],
+                ],
+            ],
+        ],
+        'db' => [
+            'class' => 'yii\db\Connection',
+            'dsn' => getenv('DB_DSN_CONSOLE'),
+            'username' => getenv('DB_USERNAME'),
+            'password' => getenv('DB_PASSWORD'),
+            'charset' => 'utf8',
+        ],
+    ],
+    'params' => $params,
 ];

+ 48 - 0
console/controllers/PurchaseController.php

@@ -0,0 +1,48 @@
+<?php
+
+namespace console\controllers;
+
+use bizHd\purchase\classes\PurchaseClass;
+use bizHd\purchase\models\Purchase;
+use bizHd\purchase\services\PurchaseService;
+use yii\console\Controller;
+use Yii;
+
+class PurchaseController extends Controller
+{
+
+    //采购订单过期变更状态 shish 2021.5.14
+    // ./yii purchase/expire-order
+    public function actionExpireOrder()
+    {
+        $query = new \yii\db\Query();
+        $query->from(Purchase::tableName());
+        $date = date("Y-m-d H:i:s");
+        $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->andWhere(['<=', 'deadline', $date]);
+        $query->orderBy('deadline ASC');
+        $connection = Yii::$app->db;//事务处理
+        $transaction = $connection->beginTransaction();
+        try {
+            $arr = [];
+            foreach ($query->batch() as $purchases) {
+                foreach ($purchases as $purchase) {
+                    $id = $purchase['id'] ?? 0;
+                    PurchaseService::expire($id);
+                    $log = "过期的采购单:{$id} json:" . json_encode($purchase);
+                    $arr[] = $log;
+                }
+            }
+            $transaction->commit();
+            if (!empty($arr)) {
+                foreach ($arr as $item) {
+                    Yii::info($item);
+                }
+            }
+        } catch (Exception $e) {
+            $transaction->rollBack();
+            echo 'error';
+        }
+        echo 'ok';
+    }
+
+}

+ 2 - 1
sql.sql

@@ -2494,4 +2494,5 @@ ADD INDEX `idx_ptStyle` (`ptStyle`) ;
 
 
 -----shish 20210514
-ALTER TABLE xhPurchase MODIFY `status` TINYINT(2) NOT NULL DEFAULT '1' COMMENT '订单状态 1待付款,待确认,2待配送,3配送中,4已完成 5已取消';
+ALTER TABLE xhPurchase MODIFY `status` TINYINT(2) NOT NULL DEFAULT '1' COMMENT '订单状态 1待付款,待确认,2待配送,3配送中,4已完成 5已取消';
+ALTER TABLE xhPurchase ADD INDEX expire(`status`,`deadline`);