diff --git a/app/api/controller/LocalStore.php b/app/api/controller/LocalStore.php index 1d862024..598051e5 100755 --- a/app/api/controller/LocalStore.php +++ b/app/api/controller/LocalStore.php @@ -33,7 +33,6 @@ class LocalStore extends Api $result = $model->getLocalList($data); return JsonServer::success('查询成功',$result); } - public function addLocalStore() { $user_id = $this->user_id; diff --git a/app/api/controller/Pay.php b/app/api/controller/Pay.php index 3d8e7215..faf189e3 100755 --- a/app/api/controller/Pay.php +++ b/app/api/controller/Pay.php @@ -120,8 +120,15 @@ class Pay extends Api return $result; } + // 本地生活余额支付 + public function localBalance() + { + $user_id = $this->user_id; + $post = $this->request->post(); + $result = PayLogic::localBalance($user_id,$post); + return $result; - + } /** * @notes 小程序回调 diff --git a/app/api/logic/PayLogic.php b/app/api/logic/PayLogic.php index 248ee728..72918e7f 100755 --- a/app/api/logic/PayLogic.php +++ b/app/api/logic/PayLogic.php @@ -658,7 +658,6 @@ class PayLogic extends Logic } //本地商家支付 public static function localWxPay($user_id,$post,$client){ - $post['lid'] = 10; $res = WeChatPayServer::localserverWxPay($user_id,$post, $client); if (false === $res) { return JsonServer::error(WeChatPayServer::getError()); @@ -666,50 +665,7 @@ class PayLogic extends Logic if ((is_object($res) || is_string($res)) && $client != Client_::pc) { $res = (array)($res); } - $company = Db::name("local_store")->where("lstore_id",$post['lid'])->where("is_delete",0)->find(); - $dt['lstore_id'] = $post['lid']; - $dt['payment_type'] = $company['bankType']; - $dt['account_name'] = $company['store_nickname']; - $dt['bank_name'] = $company['bankName']; - $dt['bank_card'] = $company['bankCard']; - $dt['large_number'] = $post['largeNumber']; - $dt['separate_account'] = round($post['money']*0.6,2); - $dt['create_time'] = date("Y-m-d H:i:s"); - $dt['user_id'] = $user_id; - $r = Db::name("local_store_order")->save($dt); - // 基本户 5% - $dt1['lstore_id'] = $post['lid']; - $dt1['payment_type'] = 1; - $dt1['account_name'] = "东龙汇"; - $dt1['bank_name'] = "中国工商银行"; - $dt1['bank_card'] = "1204068809100138961"; - $dt1['large_number'] = "102335006882"; - $dt1['separate_account'] = round($post['money']*0.08,2); - $dt1['create_time'] = date("Y-m-d H:i:s"); - $dt1['user_id'] = $user_id; - $r1 = Db::name("local_store_order")->save($dt1); -// 22% 一般户 - $dt2['lstore_id'] = $post['lid']; - $dt2['payment_type'] = 1; - $dt2['account_name'] = "东龙汇"; - $dt2['bank_name'] = "中国工商银行"; - $dt2['bank_card'] = "1204064019200152507"; - $dt2['large_number'] = "102335006405"; - $dt2['separate_account'] = round($post['money']*0.22,2); - $dt2['create_time'] = date("Y-m-d H:i:s"); - $dt2['user_id'] = $user_id; - $r2 = Db::name("local_store_order")->save($dt2); - // 10% 一般户 - $dt3['lstore_id'] = $post['lid']; - $dt3['payment_type'] = 1; - $dt3['account_name'] = "东龙汇"; - $dt3['bank_name'] = "中国工商银行"; - $dt3['bank_card'] = "1204064419000115357"; - $dt3['large_number'] = "1204064419000115357"; - $dt3['separate_account'] = round($post['money']*0.1,2); - $dt3['create_time'] = date("Y-m-d H:i:s"); - $dt3['user_id'] = $user_id; - $r3 = Db::name("local_store_order")->save($dt3); + if (is_string($res)) { $data = [ 'code' => 1, @@ -722,6 +678,88 @@ class PayLogic extends Logic return JsonServer::success('微信支付发起成功', $res, 1); } + // 本地生活余额支付 + public function localBalance($user_id,$post){ + $user_balance = User::where(['id' => $user_id])->value('user_money'); + if ($user_balance < $post['money']) { + return JsonServer::error('余额不足'); + } + $user_balance_dec = User::where(['id' => $user_id]) + ->dec('user_money', $post['money']) + ->update(); + if (!$user_balance_dec) { + Db::rollback(); + return JsonServer::error('余额扣除失败'); + } + //记录余额 + $acountLogResult = AccountLogLogic::AccountRecord($user_id, $post['money'], 2, AccountLog::balance_pay_order); + if ($acountLogResult === false) { + Db::rollback(); + return JsonServer::error('账户明细记录添加失败'); + } + $company = Db::name("local_store")->where("lstore_id",$post['lid'])->where("is_delete",0)->find(); + $dt['lstore_id'] = $post['lid']; + $dt['payment_type'] = $company['bankType']; + $dt['account_name'] = $company['store_nickname']; + $dt['bank_name'] = $company['bankName']; + $dt['bank_card'] = $company['bankCard']; + $dt['large_number'] = $company['largeNumber']; + $dt['separate_account'] = round($post['money']*0.6,2); + $dt['create_time'] = date("Y-m-d H:i:s"); + $dt['user_id'] = $user_id; + $dt['pay_shop_type'] = 1; + $r = Db::name("local_store_order")->save($dt); + if (!$r) { + Db::rollback(); + return JsonServer::error('余额扣除失败'); + } + // 基本户 5% + $dt1['lstore_id'] = $post['lid']; + $dt1['payment_type'] = 1; + $dt1['account_name'] = "东龙汇"; + $dt1['bank_name'] = "中国工商银行"; + $dt1['bank_card'] = "1204068809100138961"; + $dt1['large_number'] = "102335006882"; + $dt1['separate_account'] = round($post['money']*0.08,2); + $dt1['create_time'] = date("Y-m-d H:i:s"); + $dt1['user_id'] = $user_id; + $r1 = Db::name("local_store_order")->save($dt1); + if (!$r1) { + Db::rollback(); + return JsonServer::error('余额扣除失败'); + } +// 22% 一般户 + $dt2['lstore_id'] = $post['lid']; + $dt2['payment_type'] = 1; + $dt2['account_name'] = "东龙汇"; + $dt2['bank_name'] = "中国工商银行"; + $dt2['bank_card'] = "1204064019200152507"; + $dt2['large_number'] = "102335006405"; + $dt2['separate_account'] = round($post['money']*0.22,2); + $dt2['create_time'] = date("Y-m-d H:i:s"); + $dt2['user_id'] = $user_id; + $r2 = Db::name("local_store_order")->save($dt2); + if (!$r2) { + Db::rollback(); + return JsonServer::error('余额扣除失败'); + } + // 10% 一般户 + $dt3['lstore_id'] = $post['lid']; + $dt3['payment_type'] = 1; + $dt3['account_name'] = "东龙汇"; + $dt3['bank_name'] = "中国工商银行"; + $dt3['bank_card'] = "1204064419000115357"; + $dt3['large_number'] = "1204064419000115357"; + $dt3['separate_account'] = round($post['money']*0.1,2); + $dt3['create_time'] = date("Y-m-d H:i:s"); + $dt3['user_id'] = $user_id; + $r3 = Db::name("local_store_order")->save($dt3); + if (!$r3) { + Db::rollback(); + return JsonServer::error('余额扣除失败'); + } + return true; + } /** * @notes 支付宝支付 * @param $order_id diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 9bccbb12..f7d62e83 100755 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -359,6 +359,7 @@ class PayNotifyLogic // 余额充值参与百亿补贴 self::recharge_billions($order, $order['user_id']); + } }