RechargeClass.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace biz\recharge\classes;
  3. use biz\base\classes\BaseClass;
  4. use biz\ghs\classes\GhsClass;
  5. use biz\shop\classes\ShopCouponClass;
  6. use biz\sj\classes\SjClass;
  7. use bizHd\merchant\classes\ShopClass;
  8. use common\components\dict;
  9. use common\components\noticeUtil;
  10. use common\components\orderSn;
  11. class RechargeClass extends BaseClass
  12. {
  13. public static $baseFile = '\biz\recharge\models\Recharge';
  14. const PAY_STATUS_UN_PAY = 1;
  15. const PAY_STATUS_HAS_PAY = 2;
  16. //充值记录 ssh 2021.2.21
  17. public static function getRechargeList($where)
  18. {
  19. $data = self::getList('*', $where, 'addTime DESC');
  20. return $data;
  21. }
  22. //创建订单 ssh 2021.2.21
  23. public static function addOrder($data, $returnObj = false)
  24. {
  25. $data['orderSn'] = orderSn::getRechargeSn();
  26. return self::add($data, $returnObj);
  27. }
  28. //处理充值流程 ssh 2021.2.21
  29. public static function complete($recharge, $payWay, $rechargeRenew = 0, $ghsId = 0)
  30. {
  31. $recharge->payWay = $payWay;
  32. $recharge->payStatus = self::PAY_STATUS_HAS_PAY;
  33. $orderSn = $recharge->orderSn;
  34. $shopId = $recharge->shopId;
  35. $shop = ShopClass::getLockById($shopId);
  36. if (empty($shop)) {
  37. noticeUtil::push("充值支付回调通知,没有找到门店 orderSn:{$orderSn}");
  38. return false;
  39. }
  40. $amount = $recharge->amount;
  41. $recharge->save();
  42. if (!empty($ghsId)) {
  43. $shop->fixGhsId = $ghsId;
  44. $shop->save();
  45. }
  46. //门店和平台余额增加
  47. $tx = dict::getDict('yeTx', 'canNot');
  48. $capitalType = dict::getDict('capitalType', 'xhRecharge');
  49. //余额是否指定门店使用
  50. $fix = false;
  51. //免费续期功能暂时关闭
  52. // if ($rechargeRenew == 1) {
  53. // $sjId = $recharge->sjId;
  54. // SjClass::renewOneYear($sjId, 2, ['amount' => $recharge->amount, 'orderSn' => $orderSn]);
  55. // $fix = true;
  56. //
  57. // if (!empty($ghsId)) {
  58. // $ghs = GhsClass::getById($ghsId);
  59. // $ghsName = $ghs['name'] ?? '';
  60. // $customName = $shop->shopName ?? '';
  61. // noticeUtil::push("客户[{$customName}]在供应商[{$ghsName}]充值花款{$recharge->amount}元,免费续期一年", '15280215347');
  62. // }
  63. // }
  64. //充值发红包
  65. if ($recharge->sjStyle == SjClass::STYLE_RETAIL && !empty($recharge->ghsId)) {
  66. ShopCouponClass::rechargeGiveCoupon($recharge);
  67. }
  68. \biz\shop\classes\ShopClass::rechargeAddBalance($shop, $amount, $recharge, $tx, $capitalType, $fix);
  69. }
  70. //第三支付后流程 shish 2021.4.27
  71. public static function thirdPay($payWay, $orderSn, $totalFee, $attach)
  72. {
  73. $recharge = RechargeClass::getByCondition(['orderSn' => $orderSn], true);
  74. if (empty($recharge)) {
  75. noticeUtil::push('充值付款成功,收到回调,但没有找到充值记录,orderSn:' . $orderSn, '15280215347');
  76. return false;
  77. }
  78. if ($totalFee != $recharge->amount) {
  79. noticeUtil::push("充值付款成功,收到回调,但金额不一致 {$totalFee} {$recharge->amount},orderSn:" . $orderSn, '15280215347');
  80. return false;
  81. }
  82. if ($recharge->payStatus == RechargeClass::PAY_STATUS_HAS_PAY) {
  83. noticeUtil::push("充值付款成功,收到回调,但订单是已经支付过了,orderSn:" . $orderSn, '15280215347');
  84. return false;
  85. }
  86. //临时解决微信一秒内通知二次问题
  87. $id = $recharge->id;
  88. $recharge = RechargeClass::getLockById($id);
  89. parse_str($attach);
  90. //是否充值免费续期
  91. $rechargeRenew = isset($rechargeRenew) ? $rechargeRenew : 0;
  92. $ghsId = isset($ghsId) ? $ghsId : 0;
  93. //处理充值成功的流程
  94. self::complete($recharge, $payWay, $rechargeRenew, $ghsId);
  95. return $recharge;
  96. }
  97. }