소스 검색

供求链

shish 5 년 전
부모
커밋
8dae777289

+ 0 - 166
app-ghs/controllers/OrderController.php

@@ -2,10 +2,8 @@
 
 namespace ghs\controllers;
 
-use biz\sj\services\MerchantExtendService;
 use bizGhs\express\services\DadaExpressServices;
 use bizHd\wx\classes\WxOpenClass;
-use bizGhs\admin\classes\AdminClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\merchant\services\ShopService;
 use bizGhs\order\classes\OrderClass;
@@ -15,10 +13,8 @@ use bizGhs\product\classes\ProductClass;
 use common\components\dict;
 use common\components\dateUtil;
 use common\components\httpUtil;
-use common\services\xhPayToolService;
 use Yii;
 use common\components\util;
-use common\components\stringUtil;
 
 class OrderController extends BaseController
 {
@@ -358,168 +354,6 @@ class OrderController extends BaseController
         util::complete();
     }
 
-    //快捷付款订单
-    public function actionFastPay()
-    {
-        ini_set('date.timezone', 'Asia/Shanghai');
-        $post = Yii::$app->request->post();
-        $payWay = isset($post['payWay']) ? $post['payWay'] : 0;
-        $post['shopId'] = 2;
-        //默认门店订单
-        $store = isset($post['store']) ? $post['store'] : 1;
-        $post['store'] = $store;
-        $fromType = $post['fromType'] ?? 1;
-        $post['userId'] = $this->adminId;
-        $admin = $this->admin;
-        $post['bookName'] = isset($admin['name']) ? $admin['name'] : '';
-        $bookMobile = isset($post['bookMobile']) && !empty($post['bookMobile']) && stringUtil::isMobile($post['bookMobile']) ? $post['bookMobile'] : '';
-        $bookMobile = empty($bookMobile) && isset($admin['mobile']) && !empty($admin['mobile']) ? $admin['mobile'] : $bookMobile;
-        $post['bookMobile'] = $bookMobile;
-        $prePrice = round($post['prePrice'], 2);
-        $couponId = isset($post['couponId']) ? $post['couponId'] : 0;
-        $sourceType = 0;
-        $discountData = OrderService::getDiscountPrice(['price' => $prePrice, 'sourceType' => $sourceType, 'couponId' => $couponId, 'userId' => $this->adminId]);
-        $actPrice = $discountData['price'];
-        $post['discountType'] = $discountData['discountType'];
-        $post['discountAmount'] = $discountData['discountAmount'];
-        $post['actPrice'] = $actPrice;
-        $post['payStyle'] = 0;
-        $post['merchantId'] = $this->sjId;
-        $now = time();
-        //订单5分钟后过期
-        $expireTime = $now + 300;
-        $post['createTime'] = date("Y-m-d H:i:s", $now);
-        $post['deadline'] = $expireTime;
-        if ($actPrice <= 0) {
-            util::fail('请填写正确的金额');
-        }
-        //微信支付订单提交不能修改价格
-        $post['modPrice'] = $this->isWx ? 0 : 1;
-        $post['sourceType'] = $sourceType;
-        $post['goodsNum'] = 1;
-        $post['fromType'] = $fromType;
-        $post['product'] = [];
-        $order = OrderClass::addOrder($post);
-        $id = $order['id'];
-        $orderSn = $order['orderSn'];
-        $merchantId = $this->sjId;
-        if ($payWay == 0) {
-            $id = $order['id'];
-            $name = '购买商品';
-            $totalFee = $actPrice;
-            $admin = AdminClass::getAdminById($this->adminId);
-            //小程序使用miniOpenId
-            $openId = $admin['miniOpenId'];
-            $capitalType = dict::getDict('capitalType', 'xhGhsOrder', 'id');
-            //流水类型、优惠卷、微信支付(h5还是小程序支付)类型 带到回调
-            $wxPayType = 0;
-            if (httpUtil::isMiniProgram()) {
-                $wxPayType = 1;
-            }
-            $attach = 'capitalType=' . $capitalType . '&couponId=' . $couponId . '&wxPayType=' . $wxPayType;
-            $wx = Yii::getAlias("@vendor/weixin");
-            require_once($wx . '/lib/WxPay.Api.php');
-            require_once($wx . '/example/WxPay.JsApiPay.php');
-            $input = new \WxPayUnifiedOrder();
-            $input->SetBody($name);
-            $input->SetOut_trade_no($orderSn);
-            $input->SetTotal_fee($totalFee * 100);
-            $input->SetTime_start(date("YmdHis", $now));
-            $input->SetAttach($attach);
-            //设置订单有效期5分钟
-            $input->SetTime_expire(date("YmdHis", $expireTime));
-            $input->SetNotify_url(Yii::$app->params['ghsHost'] . '/notice/wx-callback/');
-            $input->SetTrade_type("JSAPI");
-
-            //花卉宝代为申请的微信支付
-            //$merchantExtend = $this->sjExtend;
-            $merchantExtend = WxOpenClass::getGhsWxInfo();
-            if (isset($merchantExtend['wxPayApply']) && $merchantExtend['wxPayApply'] == 1) {
-                $input->SetSub_openid($openId);
-            } else {
-                $input->SetOpenid($openId);
-            }
-            //小程序使用miniAppId
-            if (httpUtil::isMiniProgram()) {
-                $merchantExtend['wxAppId'] = $merchantExtend['miniAppId'];
-            }
-            //强制使用小程序的appId
-            $merchantExtend['wxAppId'] = $merchantExtend['miniAppId'];
-            Yii::info('支付发起使用小程序信息' . json_encode($merchantExtend));
-            $wxOrder = \WxPayApi::unifiedOrder($input, 6, $merchantExtend);
-            $tools = new \JsApiPay();
-            $jsApiParameters = $tools->GetJsApiParameters($wxOrder, $merchantExtend);
-            $newParams = json_decode($jsApiParameters, true);
-            $newParams['orderId'] = $id;
-            util::success($newParams);
-        } elseif ($payWay == 1) {
-            $extend = MerchantExtendService::getByMerchantId($merchantId);
-            if (isset($extend['alipayInit']) == false || $extend['alipayInit'] == 0) {
-                util::fail('支付宝付款即将开通...');
-            }
-            $config = [
-                //应用ID,您的APPID。
-                'app_id' => $extend['alipayPId'],
-                //商户私钥,您的原始格式RSA私钥
-                'merchant_private_key' => $extend['alipayKey'],
-                //异步通知地址
-                'notify_url' => Yii::$app->params['ghsHost'] . "/notice/ali-callback",
-                //同步跳转
-                'return_url' => "",
-                //编码格式
-                'charset' => "UTF-8",
-                //签名方式
-                'sign_type' => "RSA2",
-                //支付宝网关
-                'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
-                //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
-                'alipay_public_key' => $extend['alipayPublicKey'],
-            ];
-
-            Yii::info(json_encode($config) . ' aplipay config');
-
-            $alipayWap = Yii::getAlias("@vendor/alipayWap");
-            require_once($alipayWap . '/wappay/service/AlipayTradeService.php');
-            require_once($alipayWap . '/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php');
-
-            $totalFee = $order['actPrice'];
-            $out_trade_no = $orderSn;//商户订单号,商户网站订单系统中唯一订单号,必填
-            $subject = '购买商品';//订单名称,必填
-            $total_amount = $totalFee;//付款金额,必填
-            $body = '';//商品描述,可空
-            $timeout_express = "1m";//超时时间
-
-            $capitalType = dict::getDict('capitalType', 'xhGhsOrder', 'id');
-            $passBackParams = 'capitalType=' . $capitalType . '&couponId=' . $couponId . '&merchantId=' . $merchantId;//将流水类型、优惠卷传过去
-            $passBackParams = urlencode($passBackParams);
-
-            $payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
-            $payRequestBuilder->setBody($body);
-            $payRequestBuilder->setSubject($subject);
-            $payRequestBuilder->setOutTradeNo($out_trade_no);
-            $payRequestBuilder->setTotalAmount($total_amount);
-            $payRequestBuilder->setTimeExpress($timeout_express);
-            //在异步通知时将该参数原样返回
-            $payRequestBuilder->setPassbackParams($passBackParams);
-            //同步通知
-            $returnUrl = Yii::$app->params['mallDomain'] . "/#/pages/callback/success?account={$merchantId}&shopId={$shopId}&orderSn={$orderSn}&totalPrice={$totalFee}&pageStatus=3&payDiscountPrice=0&payDiscountType=0";
-            //异步通知
-            $notifyUrl = Yii::$app->params['ghsHost'] . "/notice/ali-callback";
-            $payResponse = new \AlipayTradeService($config);
-            $result = $payResponse->wapPay($payRequestBuilder, $returnUrl, $notifyUrl);
-            //直接将支付宝的html返回给前端
-            echo $result;
-        } elseif ($payWay == 2) {
-            $capitalType = dict::getDict('capitalType', 'xhGhsOrder', 'id');
-            $callbackParams = [];
-            $respond = xhPayToolService::balancePay($callbackParams, $orderSn, $actPrice, $capitalType, $couponId);
-            $balance = isset($respond['balance']) ? $respond['balance'] : 0;
-            util::success(['discountAmount' => $discountData['discountAmount'], 'discountType' => $discountData['discountType'], 'orderSn' => $orderSn, 'orderId' => $id, 'balance' => $balance]);
-        } else {
-            util::fail('无效的支付方式');
-        }
-    }
-
     //下单要用到的相关信息 ssh 2019.12.6
     public function actionOrderRelate()
     {

+ 1 - 2
app-ghs/controllers/PurchaseOrderController.php

@@ -63,9 +63,8 @@ class PurchaseOrderController extends BaseController
         $order = PurchaseOrderClass::addOrder($post);
         if ($order) {
             util::success($order);
-        } else {
-            util::fail();
         }
+        util::fail();
     }
 
     //订单列表

+ 30 - 25
biz-ghs/order/classes/OrderClass.php

@@ -142,7 +142,7 @@ class OrderClass extends BaseClass
         $shop->save();
         $current = time() + 300;
         $data['deadline'] = isset($data['deadline']) ? $data['deadline'] : date("Y-m-d H:i:s", $current);
-        $return = self::add($data);
+        $return = self::add($data, true);
         return $return;
     }
 
@@ -460,14 +460,17 @@ class OrderClass extends BaseClass
     //自取和免发货流程的处理 ssh 2021.1.24
     public static function withoutSend($order)
     {
-        $id = $order['id'];
-        if ($order['status'] == self::ORDER_STATUS_COMPLETE) {
+        $id = $order->id ?? 0;
+        if (isset($order->status) == false) {
+            util::fail('没有订单状态');
+        }
+        if ($order->status == self::ORDER_STATUS_COMPLETE) {
             util::fail('订单已完成');
         }
 
         //自取订单,订单直接完成。【现在有三个地方有订单完成操作】,找不到请搜索【】内关键词。
         $currentOrder = self::getById($id, true);
-        $shopId = $order['shopId'] ?? 0;
+        $shopId = $order->shopId ?? 0;
         $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
         if (empty($shop)) {
             util::fail('没有找到门店');
@@ -501,38 +504,40 @@ class OrderClass extends BaseClass
         $shop->save();
     }
 
-    //员工开单选择付款方式 ssh 2021.3.15
-    // $type 1 商家点欠款 2商家点已付款 3客户微信支付
-    public static function staffKdPay($order, $type, $shop)
+    public static function payAfter($order)
     {
         //不是待付款和待确认订单
-        if ($order['status'] != self::ORDER_STATUS_UN_PAY) {
+        if (isset($order->status)) {
+            util::fail('没有订单状态');
+        }
+        if ($order->status != self::ORDER_STATUS_UN_PAY) {
             util::fail('已操作过了');
         }
 
-        $amount = $order['actPrice'] ?? 0.00;
-        //更新订单基础状态和支付状态
-        $unSend = self::ORDER_STATUS_UN_SEND;
-        $upData = ['status' => $unSend];
-        if ($type == 2) {
-            //已付款
-            $upData['payStatus'] = self::PAY_STATUS_HAS_PAY;
-        } elseif ($type == 1) {
+        if (isset($order->debt) && $order->debt == OrderClass::DEBT_YES) {
             //欠款
-            $customId = $order['customId'] ?? 0;
+            $customId = $order->customId ?? 0;
             $customInfo = CustomClass::getCustom($customId);
             if (empty($customInfo)) {
-                util::fail('欠款必须选客户');
+                util::fail('欠款开单必须选客户');
             }
-        } else {
-            util::fail('未知的付款成功类型');
         }
-        $orderId = $order['id'];
-        $orderSn = $order['orderSn'];
-        self::updateById($orderId, $upData);
+
+        $currentShopId = $order->shopId ?? 0;
+        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $currentShopId])->one();
+        if (empty($shop)) {
+            util::fail('没有找到门店');
+        }
+
+        $amount = $order->actPrice ?? 0.00;
+        //更新订单基础状态和支付状态
+        $orderId = $order->id;
+        $orderSn = $order->orderSn;
+        $order->status = self::ORDER_STATUS_UN_SEND;
+        $order->save();
 
         //员工业绩、总业绩增加
-        $shopAdminId = $order['shopAdminId'] ?? 0;
+        $shopAdminId = $order->shopAdminId ?? 0;
         if (!empty($shopAdminId)) {
             $shopAdmin = ShopAdminClass::getById($shopAdminId, true);
             $shopAdmin->kdAmount = bcadd($shopAdmin->kdAmount, $amount, 2);
@@ -547,7 +552,7 @@ class OrderClass extends BaseClass
         $shop->save();
 
         //每天和每月收入
-        StatIncomeClass::updateOrInsert($shop, $order['actPrice']);
+        StatIncomeClass::updateOrInsert($shop, $order->actPrice);
         //今日订单+1
         StatOrderClass::updateOrInsert($shop);
 

+ 4 - 1
biz-ghs/order/classes/OrderSendClass.php

@@ -128,7 +128,10 @@ class OrderSendClass extends BaseClass
     //免发货和自取流程处理 ssh 2021.1.24
     public static function withoutSend($info)
     {
-        $orderSn = $info['orderSn'];
+        $orderSn = $info->orderSn ?? '';
+        if (empty($orderSn)) {
+            util::faill('没有找到订单编号');
+        }
         self::deleteByCondition(['orderSn' => $orderSn]);
     }
 

+ 7 - 19
biz-ghs/order/services/OrderService.php

@@ -22,7 +22,7 @@ class OrderService extends BaseService
     {
         //供货商销售单
         $return = OrderClass::addOrder($data);
-        $saleId = $return['id'] ?? 0;
+        $saleId = $return->id ?? 0;
 
         $customSjId = $custom['sjId'] ?? 0;
         $customShopId = $custom['shopId'] ?? 0;
@@ -57,34 +57,22 @@ class OrderService extends BaseService
             'customId' => $customId,
             'payWay' => $payWay,
             'status' => PurchaseClass::STATUS_UN_PAY,
-            'orderType'=>PurchaseClass::ORDER_TYPE_GHS_ADD,
+            'orderType' => PurchaseClass::ORDER_TYPE_GHS_ADD,
         ];
         $purchase = PurchaseClass::addPurchase($purchaseData);
         $purchaseId = $purchase->id ?? 0;
-        OrderClass::updateById($saleId, ['purchaseId' => $purchaseId]);
 
-        $currentShopId = $data['shopId'] ?? 0;
-        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $currentShopId])->one();
-        if (empty($shop)) {
-            util::fail('没有找到门店');
-        }
-        $debt = $data['debt'] ?? 0;
-        if ($debt == 1) {
-            //欠款
-            OrderClass::staffKdPay($return, 1, $shop);
-            PurchaseClass::debt($purchase);
-        } else {
-            //已收款
-            OrderClass::staffKdPay($return, 2, $shop);
-            PurchaseClass::staffKdPay($purchase);
-        }
+        $return->purchaseId = $purchaseId;
+        $return->save();
+        OrderClass::payAfter($return);
+        PurchaseClass::payAfter($purchase);
 
         //自取订单直接完成
         if (isset($data['sendType']) && $data['sendType'] == OrderClass::SEND_TYPE_NO) {
             OrderClass::withoutSend($return);
         }
 
-        return $return;
+        return $return->attributes;
     }
 
     //获取订单信息 ssh 2019.11.28

+ 3 - 3
biz-ghs/stat/classes/StatYjClass.php

@@ -53,7 +53,7 @@ class StatYjClass extends BaseClass
     //增加业绩 ssh 2021.3.20
     public static function addYj($order, $date = null)
     {
-        $shopAdminId = $order['shopAdminId'] ?? 0;
+        $shopAdminId = $order->shopAdminId ?? 0;
         if (empty($shopAdminId)) {
             return false;
         }
@@ -67,8 +67,8 @@ class StatYjClass extends BaseClass
         }
         $stat->num += 1;
         $stat->totalNum += 1;
-        $stat->amount = bcadd($order['actPrice'], $stat->amount, 2);
-        $stat->totalAmount = bcadd($order['actPrice'], $stat->totalAmount, 2);
+        $stat->amount = bcadd($order->actPrice, $stat->amount, 2);
+        $stat->totalAmount = bcadd($order->actPrice, $stat->totalAmount, 2);
         $stat->save();
         StatYjMonthClass::addYj($order);
     }

+ 3 - 3
biz-ghs/stat/classes/StatYjMonthClass.php

@@ -15,7 +15,7 @@ class StatYjMonthClass extends BaseClass
     //增加业绩 ssh 2021.3.15
     public static function addYj($order, $month = null)
     {
-        $shopAdminId = $order['shopAdminId'] ?? 0;
+        $shopAdminId = $order->shopAdminId ?? 0;
         if (empty($shopAdminId)) {
             return false;
         }
@@ -29,8 +29,8 @@ class StatYjMonthClass extends BaseClass
         }
         $stat->num += 1;
         $stat->totalNum += 1;
-        $stat->amount = bcadd($order['actPrice'], $stat->amount, 2);
-        $stat->totalAmount = bcadd($order['actPrice'], $stat->totalAmount, 2);
+        $stat->amount = bcadd($order->actPrice, $stat->amount, 2);
+        $stat->totalAmount = bcadd($order->actPrice, $stat->totalAmount, 2);
         $stat->save();
         $stat->save();
     }

+ 24 - 58
biz-hd/purchase/classes/PurchaseClass.php

@@ -207,14 +207,26 @@ class PurchaseClass extends BaseClass
     public static function debt($info)
     {
         $payWay = dict::getDict('payWay', 'debtPay');
-        self::payAfter($info, $payWay);
+        $info->payWay = $payWay;
+        $info->save();
+        self::payAfter($info);
+
+        $saleId = $info->saleId ?? 0;
+        $order = OrderClass::getById($saleId, true);
+        OrderClass::payAfter($order);
     }
 
     //余额支付 ssh 2021.1.24
     public static function balancePay($info)
     {
         $payWay = dict::getDict('payWay', 'balancePay');
-        self::payAfter($info, $payWay);
+        $info->payWay = $payWay;
+        $info->save();
+        self::payAfter($info);
+
+        $saleId = $info->saleId ?? 0;
+        $order = OrderClass::getById($saleId, true);
+        OrderClass::payAfter($order);
     }
 
     //检查采购单
@@ -229,12 +241,6 @@ class PurchaseClass extends BaseClass
         util::fail('没有权限操作');
     }
 
-    //供货商的员工开单,直接生成采购单 shish 2021.5.8
-    public static function staffKdPay($info)
-    {
-        $payWay = $info->payWay;
-        self::payAfter($info, $payWay);
-    }
 
     //采购订单支付成功后回调处理流程
     public static function thirdPay($payWay, $orderSn, $totalFee, $attach)
@@ -250,11 +256,17 @@ class PurchaseClass extends BaseClass
             Yii::info($msg);
             util::fail($msg);
         }
-        self::payAfter($info, $payWay);
+        $info->payWay = $payWay;
+        $info->save();
+        self::payAfter($info);
+
+        $saleId = $info->saleId ?? 0;
+        $order = OrderClass::getById($saleId, true);
+        OrderClass::payAfter($order);
     }
 
     //第三方支付、余额支付和欠款支付后调用的流程 shish 2021.4.27
-    public static function payAfter($info, $payWay)
+    public static function payAfter($info)
     {
         if (empty($info)) {
             util::fail('没有找到订单');
@@ -264,7 +276,7 @@ class PurchaseClass extends BaseClass
         }
 
         /**零售采购单状态变化**/
-        $info->payWay = $payWay;
+        $payWay = $info->payWay;
         $info->status = self::STATUS_UN_SEND;
         if ($payWay == dict::getDict('payWay', 'debtPay')) {
             //欠款支付
@@ -305,59 +317,13 @@ class PurchaseClass extends BaseClass
         $ghs->expendNum += 1;
         $ghs->save();
 
-        /**供货商销售单状态变化**/
-        $saleId = $info->saleId ?? 0;
-        $ghsOrder = OrderClass::getById($saleId, true);
-        if (empty($ghsOrder)) {
-            util::fail('没有找到对应供货商的销售单订单');
-        }
-        $ghsOrder->status = OrderClass::ORDER_STATUS_UN_SEND;
-        $ghsOrder->debt = OrderClass::DEBT_YES;
-        $ghsOrder->save();
-
-        /**供货商门店资产变化**/
-        $shopId = $ghsOrder->shopId;
-        $actPrice = $ghsOrder->actPrice;
-        $shop = Shop::findBySql('select * from ' . Shop::tableName() . ' where id = :id for update', ['id' => $shopId])->one();
-        if (empty($shop)) {
-            util::fail('没有找到供货商门店');
-        }
-        $shop->totalIncome = bcadd($shop->totalIncome, $actPrice, 2);
-        $shop->totalOrderNum += 1;
-        $shop->unPayOrder -= 1;
-        $shop->unSendOrder += 1;
-        $shop->save();
-
-        /**增加供货商已下单流程**/
-        $time = date("Y-m-d H:i:s");
-        $currentOrderSn = $ghsOrder->orderSn;
-        $placeData = ['payTime' => $time, 'orderSn' => $currentOrderSn, 'orderId' => $saleId];
-        OrderSendClass::placeOrder($placeData);
-
-        //自取订单,订单直接完成,【现在有三个地方有订单完成操作】,找不到请搜索【】内关键词。
-        if (isset($ghsOrder->sendType) && $ghsOrder->sendType == OrderClass::SEND_TYPE_NO) {
-            OrderClass::withoutSend($ghsOrder->attributes);
-        }
-
-        /**供货商的客户资产变化**/
-        $customId = $ghsOrder->customId;
-        $custom = Custom::findBySql('select * from ' . Custom::tableName() . ' where id = :id for update', ['id' => $customId])->one();
-        if ($payWay == dict::getDict('payWay', 'debtPay')) {
-            //欠款支付
-            $custom->isDebt = CustomClass::IS_DEBT_YES;
-            $custom->debtAmount = bcadd($custom->debtAmount, $actPrice, 2);
-            $custom->debtNum += 1;
-        }
-        $custom->buyNum += 1;
-        $custom->buyAmount = bcadd($custom->buyAmount, $actPrice, 2);
-        $custom->save();
-
         /********订单完成后加库存 linqh 2021-05-10*********/
         $orderSn = $info->orderSn;
         $purchaseItem = PurchaseItemClass::getAllByCondition(['orderSn' => $orderSn], null, "*");
         foreach ($purchaseItem as $v) {
             ProductClass::addStockByItemNum($v['productId'], $v['itemNum']);
         }
+
     }
 
     //订单取消,变更状态,占用库存释放 shish 2021.5.8

+ 1 - 1
common/services/xhPayToolService.php

@@ -318,7 +318,7 @@ class xhPayToolService
             $updateData['wxPayType'] = $wxPayType;
             switch ($capitalType) {
                 case $capitalTypeList['xhOrder']['id']:
-                    //OrderClass::payAfter($order, $updateData);
+                    //OrderClass::payAfter($order);
                     break;
                 case $capitalTypeList['xhActiveOrder']['id']://活动报名
                     xhActiveOrderService::updateById($orderId, $updateData);