shish пре 5 година
родитељ
комит
470ead10c8
3 измењених фајлова са 228 додато и 203 уклоњено
  1. 200 199
      biz-ghs/order/classes/OrderClass.php
  2. 13 3
      biz/purchase/classes/PurchaseClass.php
  3. 15 1
      sql.sql

+ 200 - 199
biz-ghs/order/classes/OrderClass.php

@@ -4,209 +4,210 @@ namespace bizGhs\order\classes;
 
 use biz\merchant\classes\MerchantAssetClass;
 use bizGhs\stat\classes\StatOrderCountClass;
+use common\components\orderSn;
 use common\components\stringUtil;
 use Yii;
 use bizGhs\base\classes\BaseClass;
 
 class OrderClass extends BaseClass
 {
-
-    public static $baseFile = '\bizGhs\order\models\Order';
-
-
-    //已退款
-    const ORDER_STATUS_REFUND = 6;
-    //完成
-    const ORDER_STATUS_COMPLETE = 5;
-    //已取消
-    const ORDER_STATUS_CANCEL = 4;
-    //待通知
-    const ORDER_STATUS_UN_NOTICE = 3;
-    //配送中
-    const ORDER_STATUS_SENDING = 2;
-    //待配送
-    const ORDER_STATUS_UN_SEND = 1;
-    //待付款
-    const ORDER_STATUS_UN_PAY = 0;
-    //订单总流程数
-    const ORDER_TOTAL_FLOW = 4;
-
-    //未确认配送方式
-    const SEND_TYPE_UNKNOWN = 0;
-    //自取
-    const SEND_TYPE_NO = 1;
-    //自己送
-    const SEND_TYPE_MYSELF = 2;
-    //代送
-    const SEND_TYPE_OTHER = 3;
-
-    //送达时间段
-    public static $reachPeriod = [0 => '上午', 1 => '下午', 2 => '晚上'];
-
-    //优惠金额
-    public static $randDiscount = [
-        50 => [1, 3],
-        100 => [5, 9],
-        300 => [10, 15],
-        500 => [16, 18],
-        1000 => [18, 30],
-        20000 => [90, 100],
-    ];
-
-    //添加订单 shish 2019.12.5
-    public static function addOrder($data)
-    {
-        $date = date("Y-m-d H:i:s");
-        $merchantId = $data['merchantId'] ?? 0;
-        $adminId = $data['adminId'] ?? 0;
-        $data['orderSn'] = stringUtil::generateOrderNo($merchantId, $adminId);
-        $data['payStatus'] = 0;
-        $data['createTime'] = $date;
-        $data['addTime'] = time();
-
-        $month = date("Ym");
-        $riseNum = StatOrderCountClass::addOrder($month, $merchantId);
-        //将花店每月的总订单数作为编号
-        $data['sendNum'] = $riseNum;
-        $data['totalFlow'] = OrderClass::ORDER_TOTAL_FLOW;
-        $return = self::add($data);
-
-        //全部订单+1,待付款订单+1
-        $merchantAsset = MerchantAssetClass::getByMerchantId($merchantId, true);
-        $merchantAsset->unPayOrder += 1;
-        $merchantAsset->totalOrder += 1;
-        $merchantAsset->save();
-
-        return $return;
-    }
-
-    public static function getByOrderSn($orderSn)
-    {
-        return self::getByCondition(['orderSn' => $orderSn]);
-    }
-
-    //评价 shish 2019.12.16
-    public static function comment($data)
-    {
-        $id = $data['id'];
-        unset($data['id']);
-        return self::updateById($id, $data);
-    }
-
-    //订单
-    public static function getOrderById($id)
-    {
-        $order = self::getById($id);
-        if (empty($order)) {
-            return [];
-        }
-        $order['goodsInfoList'] = OrderGoodsClass::getGoodsListById($id);
-        return $order;
-    }
-
-    //根据订单查询 shish 2020.1.4
-    public static function getOrderBySn($orderSn)
-    {
-        $order = self::getByCondition(['orderSn' => $orderSn]);
-        if (empty($order)) {
-            return [];
-        }
-        $id = $order['id'];
-        $order['goodsInfoList'] = OrderGoodsClass::getGoodsListById($id);
-        return $order;
-    }
-
-    //返回随机优惠金额 shish 2019.9.12
-    public static function getRandDiscount($amount)
-    {
-        if ($amount <= 0) {
-            return 0;
-        }
-        $randDiscount = self::$randDiscount;
-        krsort($randDiscount);
-        $rand = 0;
-        foreach ($randDiscount as $currentAmount => $val) {
-            if ($amount >= $currentAmount) {
-                $rand = rand($val[0], $val[1]);
-                break;
-            }
-        }
-        return $rand / 10;
-    }
-
-    //订单完成 shish 2020.3.12
-    public static function complete($order, $currentFlow)
-    {
-        $id = $order['id'];
-        self::updateById($id, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'currentFlow' => $currentFlow]);
-    }
-
-    //转化出送到时间 shish 2020.3.15
-    public static function getReachTime($order)
-    {
-        $reachTime = '';
-        if (isset($order['reachDate']) && !empty($order['reachDate'])) {
-            $prev = date("n-j", strtotime($order['reachDate']));
-            $periodData = self::$reachPeriod;
-            $periodKey = $order['reachPeriod'];
-            $period = isset($periodData[$periodKey]) ? $periodData[$periodKey] : '上午';
-            $reachTime = $prev . ' ' . $period;
-        }
-        return $reachTime;
-    }
-
-    //支付成功获取unionId shish 2020.5.12
-    public static function payToUpdateUnionId($merchant, $merchantExtend, $orderSn, $user)
-    {
-        $mcId = $merchantExtend['wxPayMerchantId'];
-        $miniOpenId = isset($user['miniOpenId']) ? $user['miniOpenId'] : '';
-        $unionId = isset($user['unionId']) ? $user['unionId'] : '';
-        $userId = $user['id'];
-        if (empty($unionId)) {
-            $unionId = miniUtil::getPaidUnionId($merchant, $miniOpenId, $mcId, (string)$orderSn, 0);
-            if (!empty($unionId)) {
-                $findUser = UserClass::getByUnionId($unionId);
-                if (empty($findUser)) {
-                    UserClass::updateByCondition(['id' => $userId], ['unionId' => $unionId]);
-                } else {
-                    UserClass::mergeUser($findUser, $user);
-                }
-            }
-        }
-    }
-
-    //订单到期未付款的订单置成取消状态 shish 2020.5.25
-    public static function setExpire($order)
-    {
-        $now = time();
-        if (!empty($order['deadline']) && $now > $order['deadline']) {
-            if ($order['status'] == 0) {
-                $id = $order['id'];
-                OrderClass::updateById($id, ['status' => 4]);
-            }
-        }
-    }
-
-    //支付成功需要处理的流程 shish 2020.5.25
-    public static function payAfter($order, $updateData)
-    {
-        $orderId = $order['id'];
-        $now = time();
-        self::updateById($orderId, $updateData);
-        //发货流程的完成下单
-        OrderSendClass::placeOrder(['orderId' => $orderId, 'payTime' => $now]);
-        $merchantId = $order['merchantId'];
-        $asset = MerchantAssetClass::getByMerchantId($merchantId);
-        //增加订单数
-        StatOrderClass::addOrder($merchantId, $asset);
-        //如果门店和朋友圈订单并且没有填写收花人的直接将订单置为自取并且是完成状态
-        if (isset($order['fromType']) && in_array($order['fromType'], [0, 2])) {
-            if (isset($order['receiveMobile']) && isset($order['receiveAddress'])) {
-                if (empty($order['receiveMobile']) && empty($order['receiveAddress'])) {
-                    OrderSendClass::withoutSend($order);
-                }
-            }
-        }
-    }
-
+	
+	public static $baseFile = '\bizGhs\order\models\Order';
+	
+	
+	//已退款
+	const ORDER_STATUS_REFUND = 6;
+	//完成
+	const ORDER_STATUS_COMPLETE = 5;
+	//已取消
+	const ORDER_STATUS_CANCEL = 4;
+	//待通知
+	const ORDER_STATUS_UN_NOTICE = 3;
+	//配送中
+	const ORDER_STATUS_SENDING = 2;
+	//待配送
+	const ORDER_STATUS_UN_SEND = 1;
+	//待付款
+	const ORDER_STATUS_UN_PAY = 0;
+	//订单总流程数
+	const ORDER_TOTAL_FLOW = 4;
+	
+	//未确认配送方式
+	const SEND_TYPE_UNKNOWN = 0;
+	//自取
+	const SEND_TYPE_NO = 1;
+	//自己送
+	const SEND_TYPE_MYSELF = 2;
+	//代送
+	const SEND_TYPE_OTHER = 3;
+	
+	//送达时间段
+	public static $reachPeriod = [0 => '上午', 1 => '下午', 2 => '晚上'];
+	
+	//优惠金额
+	public static $randDiscount = [
+		50 => [1, 3],
+		100 => [5, 9],
+		300 => [10, 15],
+		500 => [16, 18],
+		1000 => [18, 30],
+		20000 => [90, 100],
+	];
+	
+	//添加订单 shish 2019.12.5
+	public static function addOrder($data)
+	{
+		$date = date("Y-m-d H:i:s");
+		$merchantId = $data['merchantId'] ?? 0;
+		$adminId = $data['adminId'] ?? 0;
+		$data['orderSn'] = orderSn::getGhsOrderSn();
+		$data['payStatus'] = 0;
+		$data['createTime'] = $date;
+		$data['addTime'] = time();
+		
+		$month = date("Ym");
+		$riseNum = StatOrderCountClass::addOrder($month, $merchantId);
+		//将花店每月的总订单数作为编号
+		$data['sendNum'] = $riseNum;
+		$data['totalFlow'] = OrderClass::ORDER_TOTAL_FLOW;
+		$return = self::add($data);
+		
+		//全部订单+1,待付款订单+1
+		$merchantAsset = MerchantAssetClass::getByMerchantId($merchantId, true);
+		$merchantAsset->unPayOrder += 1;
+		$merchantAsset->totalOrder += 1;
+		$merchantAsset->save();
+		
+		return $return;
+	}
+	
+	public static function getByOrderSn($orderSn)
+	{
+		return self::getByCondition(['orderSn' => $orderSn]);
+	}
+	
+	//评价 shish 2019.12.16
+	public static function comment($data)
+	{
+		$id = $data['id'];
+		unset($data['id']);
+		return self::updateById($id, $data);
+	}
+	
+	//订单
+	public static function getOrderById($id)
+	{
+		$order = self::getById($id);
+		if (empty($order)) {
+			return [];
+		}
+		$order['goodsInfoList'] = OrderGoodsClass::getGoodsListById($id);
+		return $order;
+	}
+	
+	//根据订单查询 shish 2020.1.4
+	public static function getOrderBySn($orderSn)
+	{
+		$order = self::getByCondition(['orderSn' => $orderSn]);
+		if (empty($order)) {
+			return [];
+		}
+		$id = $order['id'];
+		$order['goodsInfoList'] = OrderGoodsClass::getGoodsListById($id);
+		return $order;
+	}
+	
+	//返回随机优惠金额 shish 2019.9.12
+	public static function getRandDiscount($amount)
+	{
+		if ($amount <= 0) {
+			return 0;
+		}
+		$randDiscount = self::$randDiscount;
+		krsort($randDiscount);
+		$rand = 0;
+		foreach ($randDiscount as $currentAmount => $val) {
+			if ($amount >= $currentAmount) {
+				$rand = rand($val[0], $val[1]);
+				break;
+			}
+		}
+		return $rand / 10;
+	}
+	
+	//订单完成 shish 2020.3.12
+	public static function complete($order, $currentFlow)
+	{
+		$id = $order['id'];
+		self::updateById($id, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'currentFlow' => $currentFlow]);
+	}
+	
+	//转化出送到时间 shish 2020.3.15
+	public static function getReachTime($order)
+	{
+		$reachTime = '';
+		if (isset($order['reachDate']) && !empty($order['reachDate'])) {
+			$prev = date("n-j", strtotime($order['reachDate']));
+			$periodData = self::$reachPeriod;
+			$periodKey = $order['reachPeriod'];
+			$period = isset($periodData[$periodKey]) ? $periodData[$periodKey] : '上午';
+			$reachTime = $prev . ' ' . $period;
+		}
+		return $reachTime;
+	}
+	
+	//支付成功获取unionId shish 2020.5.12
+	public static function payToUpdateUnionId($merchant, $merchantExtend, $orderSn, $user)
+	{
+		$mcId = $merchantExtend['wxPayMerchantId'];
+		$miniOpenId = isset($user['miniOpenId']) ? $user['miniOpenId'] : '';
+		$unionId = isset($user['unionId']) ? $user['unionId'] : '';
+		$userId = $user['id'];
+		if (empty($unionId)) {
+			$unionId = miniUtil::getPaidUnionId($merchant, $miniOpenId, $mcId, (string)$orderSn, 0);
+			if (!empty($unionId)) {
+				$findUser = UserClass::getByUnionId($unionId);
+				if (empty($findUser)) {
+					UserClass::updateByCondition(['id' => $userId], ['unionId' => $unionId]);
+				} else {
+					UserClass::mergeUser($findUser, $user);
+				}
+			}
+		}
+	}
+	
+	//订单到期未付款的订单置成取消状态 shish 2020.5.25
+	public static function setExpire($order)
+	{
+		$now = time();
+		if (!empty($order['deadline']) && $now > $order['deadline']) {
+			if ($order['status'] == 0) {
+				$id = $order['id'];
+				OrderClass::updateById($id, ['status' => 4]);
+			}
+		}
+	}
+	
+	//支付成功需要处理的流程 shish 2020.5.25
+	public static function payAfter($order, $updateData)
+	{
+		$orderId = $order['id'];
+		$now = time();
+		self::updateById($orderId, $updateData);
+		//发货流程的完成下单
+		OrderSendClass::placeOrder(['orderId' => $orderId, 'payTime' => $now]);
+		$merchantId = $order['merchantId'];
+		$asset = MerchantAssetClass::getByMerchantId($merchantId);
+		//增加订单数
+		StatOrderClass::addOrder($merchantId, $asset);
+		//如果门店和朋友圈订单并且没有填写收花人的直接将订单置为自取并且是完成状态
+		if (isset($order['fromType']) && in_array($order['fromType'], [0, 2])) {
+			if (isset($order['receiveMobile']) && isset($order['receiveAddress'])) {
+				if (empty($order['receiveMobile']) && empty($order['receiveAddress'])) {
+					OrderSendClass::withoutSend($order);
+				}
+			}
+		}
+	}
+	
 }

+ 13 - 3
biz/purchase/classes/PurchaseClass.php

@@ -2,6 +2,8 @@
 
 namespace biz\purchase\classes;
 
+use biz\merchant\classes\ShopClass;
+use biz\order\classes\OrderClass;
 use common\components\orderSn;
 use common\components\stringUtil;
 use Yii;
@@ -9,9 +11,9 @@ use biz\base\classes\BaseClass;
 
 class PurchaseClass extends BaseClass
 {
-
+	
 	public static $baseFile = '\biz\purchase\models\Purchase';
-
+	
 	//添加采购 shish 2021.1.18
 	public static function addPurchase($data)
 	{
@@ -25,8 +27,16 @@ class PurchaseClass extends BaseClass
 			}
 			PurchaseItemClass::batchAdd($productList);
 		}
-	}
 
+		//供货商增加订单
+		$ghsShopId = $data['ghsShopId'] ?? 0;
+		$ghsShop = \bizGhs\merchant\classes\ShopClass::getById($ghsShopId);
+		$ghsId = $ghsShop['merchantId'] ?? 0;
+
+		\bizGhs\order\classes\OrderClass::addOrder($data);
+
+	}
+	
 	//生成订单号 shish 2021.1.19
 	public static function generateOrderNo()
 	{

+ 15 - 1
sql.sql

@@ -705,4 +705,18 @@ ALTER TABLE `xhGhsCustom`  CHANGE `ghsId` `merchantId` INT(11) NOT NULL DEFAULT
 ALTER TABLE `xhGhsCheckOrder`  CHANGE `ghsId` `merchantId` INT(11) NOT NULL DEFAULT '0' COMMENT '供货商id';
 ALTER TABLE `xhGhsOrderExpress`  CHANGE `ghsId` `merchantId` INT(11) NOT NULL DEFAULT '0' COMMENT '供货商id';
 ALTER TABLE `xhGhsStatOrderCount`  CHANGE `ghsId` `merchantId` INT(11) NOT NULL DEFAULT '0' COMMENT '供货商id';
-ALTER TABLE `xhGhsStockOrder`  CHANGE `ghsId` `merchantId` INT(11) NOT NULL DEFAULT '0' COMMENT '供货商id';
+ALTER TABLE `xhGhsStockOrder`  CHANGE `ghsId` `merchantId` INT(11) NOT NULL DEFAULT '0' COMMENT '供货商id';
+ALTER TABLE `xhPurchaseItem` CHANGE `itemId` `productId` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '产品ID';
+ALTER TABLE `xhPurchaseItem` CHANGE `unitPrice` `bigPrice` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '采购大单位价,每扎每包价';
+ALTER TABLE `xhPurchaseItem` ADD `ratio` TINYINT NOT NULL DEFAULT 0 COMMENT '大小单位转换比例,1扎多少支,1包多少支,1箱多少块 0表示只有一个单位' AFTER `num`;
+ALTER TABLE xhPurchaseItem MODIFY `num` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '花材数量,支持小数点';
+ALTER TABLE xhPurchaseItem MODIFY `bigPrice` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '大单位价,每扎价、每包价、每箱价';
+ALTER TABLE xhPurchaseItem MODIFY `num` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '大单位数量,支持小数点';
+ALTER TABLE `xhGhsOrderItem` CHANGE `unitPrice` `bigPrice` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '大单位价格,每扎价格,每包价格,每箱价格';
+ALTER TABLE `xhGhsOrderItem` CHANGE `unitNum` `ratio` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '大小单位转换比例,1扎多少支,1包多少支,1箱多少块 0表示只有一个单位';
+ALTER TABLE `xhGhsOrderItem` MODIFY `num` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '大单位数量,支持小数点';
+ALTER TABLE `xhGhsOrderItem` CHANGE `bigPrice` `price` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '大单位价格,每扎价格,每包价格,每箱价格'
+ALTER TABLE `xhGhsOrderItem` CHANGE `bigUnit` `unit` SMALLINT(6) NOT NULL DEFAULT '1' COMMENT '大单位,扎,箱,包';
+ALTER TABLE `xhPurchaseItem` CHANGE `price` `totalPrice` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '采购总价';
+ALTER TABLE `xhPurchaseItem` CHANGE `bigPrice` `price` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '大单位价,每扎价、每包价、每箱价';
+ALTER  TABLE xhPurchaseItem MODIFY `totalPrice` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '总价';