Jelajahi Sumber

充值记录

shish 5 tahun lalu
induk
melakukan
570e66d606

+ 11 - 0
biz/merchant/classes/ShopClass.php

@@ -105,4 +105,15 @@ class ShopClass extends BaseClass
         return \biz\admin\classes\AdminClass::getDetail($adminId);
     }
 
+    //增加余额 shish 2021.2.21
+    //$fix = false 余额使用时不需要指定在谁那边用
+    public static function addBalance($shop, $amount, $fix = false)
+    {
+        $shop->balance += $amount;
+        if ($fix) {
+            $shop->fixBalance += $amount;
+        }
+        $shop->save();
+    }
+
 }

+ 24 - 0
biz/recharge/classes/RechargeClass.php

@@ -3,6 +3,8 @@
 namespace biz\recharge\classes;
 
 use biz\base\classes\BaseClass;
+use biz\merchant\classes\ShopClass;
+use common\components\noticeUtil;
 use common\components\orderSn;
 
 class RechargeClass extends BaseClass
@@ -10,6 +12,9 @@ class RechargeClass extends BaseClass
 
     public static $baseFile = '\biz\recharge\models\Recharge';
 
+    const PAY_STATUS_UN_PAY = 1;
+    const PAY_STATUS_HAS_PAY = 2;
+
     //创建订单 shish 2021.2.21
     public static function addOrder($data)
     {
@@ -17,4 +22,23 @@ class RechargeClass extends BaseClass
         return self::add($data);
     }
 
+    //处理充值流程 shish 2021.2.21
+    public static function complete($recharge)
+    {
+        $recharge->payStatus = self::PAY_STATUS_HAS_PAY;
+        $recharge->save();
+        $orderSn = $recharge->orderSn;
+        $shopId = $recharge->shopId;
+        $shop = ShopClass::getById($shopId, true);
+        if (empty($shop)) {
+            noticeUtil::push("充值支付回调通知,没有找到门店 orderSn:{$orderSn}");
+            return false;
+        }
+        $amount = $recharge->amount;
+        ShopClass::addBalance($shop, $amount);
+
+        //增加充值记录
+
+    }
+
 }

+ 15 - 0
biz/recharge/classes/RechargeLogClass.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace biz\recharge\classes;
+
+use biz\base\classes\BaseClass;
+use biz\merchant\classes\ShopClass;
+use common\components\noticeUtil;
+use common\components\orderSn;
+
+class RechargeLogClass extends BaseClass
+{
+
+    public static $baseFile = '\biz\recharge\models\RechargeLog';
+
+}

+ 15 - 0
biz/recharge/models/RechargeLog.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace biz\recharge\models;
+
+use biz\base\models\Base;
+
+class RechargeLog extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhRechargeLog';
+    }
+
+}

+ 12 - 0
biz/recharge/services/RechargeLogService.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace biz\recharge\services;
+
+use biz\base\services\BaseService;
+
+class RechargeLogService extends BaseService
+{
+
+    public static $baseFile = '\biz\recharge\classes\RechargeLogClass';
+
+}

+ 21 - 0
common/services/xhPayToolService.php

@@ -7,9 +7,11 @@ use biz\merchant\classes\ShopClass;
 use biz\order\classes\OrderClass;
 use biz\order\classes\OrderSendClass;
 use biz\order\services\OrderService;
+use biz\recharge\classes\RechargeClass;
 use biz\user\classes\UserClass;
 use biz\user\services\UserAssetService;
 use biz\user\services\UserService;
+use common\components\noticeUtil;
 use common\components\stringUtil;
 use common\components\util;
 use Yii;
@@ -65,7 +67,26 @@ class xhPayToolService
     //充值回调处理 shish 2021.2.21
     public static function recharge($transaction, $callbackParams, $orderSn, $totalFee, $capitalType, $couponId, $payWay, $alipayParams)
     {
+
+        $recharge = RechargeClass::getByCondition(['orderSn' => $orderSn],true);
+        if (empty($recharge)) {
+            noticeUtil::push('充值付款成功,收到回调,但没有找到充值记录,orderSn:' . $orderSn, '15280215347');
+            return ['amount' => $totalFee];
+        }
+        if ($totalFee != $recharge->amount) {
+            noticeUtil::push("充值付款成功,收到回调,但金额不一致 {$totalFee} {$recharge->amount},orderSn:" . $orderSn, '15280215347');
+            return ['amount' => $totalFee];
+        }
+        if($recharge->payStatus == RechargeClass::PAY_STATUS_HAS_PAY){
+            noticeUtil::push("充值付款成功,收到回调,但订单是已经支付过了,orderSn:" . $orderSn, '15280215347');
+            return ['amount' => $totalFee];
+        }
+
+        //处理充值成功的流程
+        RechargeClass::complete($recharge);
+
         $transaction->commit();
+        return ['amount' => $totalFee];
     }
 
     /**

+ 21 - 1
sql.sql

@@ -1179,4 +1179,24 @@ ALTER TABLE `xhRecharge` ADD `modPrice` TINYINT(4) NOT NULL DEFAULT '1' COMMENT
 ALTER TABLE `xhRecharge` ADD `deadline` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '订单有效时间' AFTER `modPrice`;
 ALTER TABLE xhRecharge ADD payStatus TINYINT NOT NULL DEFAULT 1 COMMENT '1待付款 2已付款' AFTER `totalRecharge`;
 DROP TABLE `xhGhsShopAdmin`;
-DROP TABLE `xhGhsShop`;
+DROP TABLE `xhGhsShop`;
+ALTER TABLE `xhShop` MODIFY `createTime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间';
+ALTER TABLE xhShop ADD balance DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '余额' AFTER `adminId`;
+ALTER TABLE xhShop ADD fixBalance DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '只能向推荐人消费的余额,指定余额' AFTER `balance`;
+ALTER TABLE xhMerchant ADD parentId INT NOT NULL DEFAULT 0 COMMENT '父id' AFTER `adminId`;
+ALTER TABLE `xhRecharge` ADD INDEX `orderSn` (`orderSn`);
+DROP TABLE IF EXISTS `xhRechargeRecord`;
+CREATE TABLE IF NOT EXISTS `xhRechargeRecord`(
+id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
+sjId INT NOT NULL DEFAULT 0 COMMENT '商家id',
+shopId INT NOT NULL DEFAULT 0 COMMENT '门店id',
+`amount` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '充值金额',
+`totalRecharge` DECIMAL(9,2) NOT NULL DEFAULT '0.00' COMMENT '充值金额',
+`remark` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '备注',
+`addTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
+`updateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
+)COMMENT='充值记录';
+ALTER TABLE `xhShop` DROP COLUMN `createTime`;
+ALTER TABLE `xhShop` DROP COLUMN `addTime`;
+ALTER TABLE `xhShop` ADD `addTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间' AFTER `status`;
+ALTER TABLE xhRechargeRecord RENAME TO xhRechargeLog;