diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php
index e033c3815..50ebcfd5e 100644
--- a/app/api/logic/order/OrderLogic.php
+++ b/app/api/logic/order/OrderLogic.php
@@ -15,6 +15,7 @@ use app\common\model\dict\DictData;
use app\common\model\dict\DictType;
use app\common\model\order\Cart;
use app\common\model\store_branch_product\StoreBranchProduct;
+use app\common\model\store_finance_flow\StoreFinanceFlow;
use app\common\model\store_order\StoreOrder;
use app\common\model\store_order_cart_info\StoreOrderCartInfo;
use app\common\model\store_product\StoreProduct;
@@ -405,10 +406,11 @@ class OrderLogic extends BaseLogic
*/
public static function writeOff($params): bool
{
- $data = StoreOrder::with('store')->where([
+ $order = StoreOrder::with('store')->where([
'verify_code' => $params['verify_code']
])->find();
- if (empty($data)) {
+ if (empty($order)) {
+ self::setError('订单不存在');
return false;
}
Db::startTrans();
@@ -420,7 +422,7 @@ class OrderLogic extends BaseLogic
'update_time' => time(),
'store_id' => $params['store_id'],
'staff_id' => $params['staff_id']??0,
- ], ['id' => $data['id']]);
+ ], ['id' => $order['id']]);
(new StoreOrderCartInfo())->update([
'verify_code'=>$params['verify_code'].'-1',
'writeoff_time' => time(),
@@ -428,20 +430,33 @@ class OrderLogic extends BaseLogic
'store_id' => $params['store_id'],
'staff_id' => $params['staff_id']??0,
'update_time' => time(),
- ], ['oid' => $data['id']]);
+ ], ['oid' => $order['id']]);
// $financeFlow = (new StoreFinanceFlowLogic)->getStoreOrder($data['id'], $data['store_id']);
// if (!empty($financeFlow)) {
// $capitalFlowLogic = new CapitalFlowLogic($data->store, 'store');
// $capitalFlowLogic->storeIncome('store_order_income', 'order', $data['id'], $financeFlow['number']);
// }
- $order=StoreOrder::where('id',$data['id'])->find();
- // PayNotifyLogic::afterPay($order);
PayNotifyLogic::descStock($order['id']);
- if($order['uid'] && $order['total_price'] >= 500){
+ $financeFlow=new StoreFinanceFlow();
+ $financeFlowLogic=new StoreFinanceFlowLogic();
+ $select_1=$financeFlow->where(['order_id'=>$order['id'],'financial_pm'=>1,'financial_type'=>['in'=>14,15],'other_uid'=>['>'=>0]])->select();
+ foreach($select_1 as $k=>$v){
+ $financeFlowLogic->updateStatusUser($v['id'],$v['other_uid'],$v['number'],$v['order_id']);
+ }
+ if($order['uid'] && $order['pay_price'] >= 500){
$user_number = bcmul($order['pay_price'], '0.10', 2);
User::where('id', $order['uid'])->inc('integral', $user_number)->update();
UserSign::where(['uid' => $order['uid'],'order_id' => $order['order_id']])->update(['status'=>1]);
}
+ if ($order['spread_uid'] > 0) {
+ $spread_number=$financeFlow->where(['order_id'=>$order['id'],'financial_pm'=>1,'financial_type'=>12,'other_uid'=>$order['spread_uid']])->value('number');
+ if($spread_number){
+ $financeFlowLogic->updateStatusUser($v['id'],$order['spread_uid'],$spread_number,$v['order_id']);
+ }
+ }
+ $deposit=$financeFlow->where(['order_id'=>$order['id'],'financial_pm'=>1,'financial_type'=>11])->value('number');
+ $money=$financeFlow->where(['order_id'=>$order['id'],'financial_pm'=>1,'financial_type'=>2])->value('number');
+ $financeFlowLogic->updateStatusStore($v['id'],$order['store_id'],$money,$deposit);
Db::commit();
return true;
diff --git a/app/common/logic/PayNotifyLogic copy.php b/app/common/logic/PayNotifyLogic copy.php
new file mode 100644
index 000000000..fac778279
--- /dev/null
+++ b/app/common/logic/PayNotifyLogic copy.php
@@ -0,0 +1,999 @@
+getMessage() . ',lien:' . $e->getLine() . ',file:' . $e->getFile());
+ throw new \Exception($e->getMessage());
+ }
+ }
+
+ /**
+ * 余额支付
+ * @param $orderSn
+ * @param $extra
+ * @return bool
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+ public static function balancePay($orderSn, $extra = [])
+ {
+ $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty();
+ $user = User::where('id', $order['uid'])->find();
+ if ($user['now_money'] < $order['pay_price']) {
+ throw new \Exception('余额不足');
+ }
+ $order->money = $order['pay_price'];
+ $order->paid = 1;
+ $order->pay_time = time();
+ if (!$order->save()) {
+ throw new \Exception('订单保存出错');
+ }
+ if($order['is_storage']==1){
+ $order->status=2;
+ UserProductStorageLogic::add($order);
+ }
+ // 减去余额
+ $user->now_money = bcsub($user['now_money'], $order['pay_price'], 2);
+ $user->save();
+
+ if ($order['spread_uid'] > 0 && $user['user_ship'] == 1) {
+ $oldUser = User::where('id', $order['spread_uid'])->value('purchase_funds');
+ if ($oldUser < $order['pay_price']) {
+ $order['pay_price'] = $oldUser;
+ }
+ }
+ // self::addUserSing($order);
+ $capitalFlowDao = new CapitalFlowLogic($user);
+ $capitalFlowDao->userExpense('user_order_balance_pay', 'order', $order['id'], $order['pay_price'], '', 0, $order['store_id']);
+ self::dealProductLog($order);
+// if ($order['shipping_type'] == 3) {
+// self::descStock($order['id']);
+// }
+ self::afterPay($order);
+ if ($extra && $extra['store_id']) {
+ $params = [
+ 'verify_code' => $order['verify_code'],
+ 'store_id' => $extra['store_id'],
+ 'staff_id' => $extra['staff_id']
+ ];
+ OrderLogic::writeOff($params);
+ }
+ // Redis::send('push-platform-print', ['id' => $order['id']], 60);
+ // PushService::push('store_merchant_' . $order['store_id'], $order['store_id'], ['type' => 'store_merchant', 'msg' => '您有一笔新的订单']);
+ }
+
+ /**
+ * 礼品券支付
+ * @param $orderSn
+ * @param $extra
+ * @return void
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+
+ public static function gift_pay($orderSn, $extra = [])
+ {
+ $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty();
+ $user = User::where('id', $order['uid'])->find();
+ if ($user['integral'] < $order['pay_price']) {
+ throw new \Exception('礼品券不足');
+ }
+ $order->money = $order['pay_price'];
+ $order->paid = 1;
+ $order->pay_time = time();
+ if (!$order->save()) {
+ throw new \Exception('订单保存出错');
+ }
+ // 减去礼品券
+ $user->integral = bcsub($user['integral'], $order['pay_price'], 2);
+ $user->save();
+ //入礼品券表扣款记录
+ $sing[] = [
+ 'uid' => $order['uid'],
+ 'order_id' => $order['order_id'],
+ 'title' => '订单扣除兑换券',
+ 'store_id' => $order['store_id'],
+ 'number' => $order['pay_price'],
+ 'financial_pm' => 0,
+ 'user_ship' => $user['user_ship'],
+ ];
+ (new UserSign())->saveAll($sing);
+
+ if ($extra && $extra['store_id']) {
+ $params = [
+ 'verify_code' => $order['verify_code'],
+ 'store_id' => $extra['store_id'],
+ 'staff_id' => $extra['staff_id']
+ ];
+ OrderLogic::lessWriteOff($params);
+ }
+ self::dealProductLog($order);
+ }
+
+
+ /**
+ * 采购款支付
+ * @param $orderSn
+ * @param $extra
+ * @return void
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+ public static function purchase_funds($orderSn, $extra = [])
+ {
+ $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty();
+ $user = User::where('id', $order['uid'])->find();
+ if ($user['purchase_funds'] < $order['pay_price']) {
+ throw new \Exception('采购款不足');
+ }
+ $order->money = $order['pay_price'];
+ $order->paid = 1;
+ $order->pay_time = time();
+ if (!$order->save()) {
+ throw new \Exception('订单保存出错');
+ }
+ if($order['is_storage']==1){
+ $order->status=2;
+ UserProductStorageLogic::add($order);
+ }
+ // 减去采购款
+ $user->purchase_funds = bcsub($user['purchase_funds'], $order['pay_price'], 2);
+ $user->save();
+
+ $capitalFlowDao = new CapitalFlowLogic($user);
+ $capitalFlowDao->userExpense('user_order_purchase_pay', 'order', $order['id'], $order['pay_price'], '', 1, $order['store_id']);
+ // if ($user['user_ship'] == 1) {
+ // self::dealVipAmount($order, PayEnum::PURCHASE_FUNDS);
+ // }
+ // self::addUserSing($order);
+ self::afterPay($order);
+ if ($extra && $extra['store_id']) {
+ $params = [
+ 'verify_code' => $order['verify_code'],
+ 'store_id' => $extra['store_id'],
+ 'staff_id' => $extra['staff_id']
+ ];
+ OrderLogic::writeOff($params);
+ }
+ self::dealProductLog($order);
+ // if($order['shipping_type'] == 3){
+ // self::descStock($order['id']);
+ // }
+
+
+ // Redis::send('push-platform-print', ['id' => $order['id']], 60);
+ // PushService::push('store_merchant_' . $order['store_id'], $order['store_id'], ['type' => 'store_merchant', 'msg' => '您有一笔新的订单']);
+ }
+
+ /**
+ * @notes 微信通用回调
+ * @param $orderSn
+ * @param array $extra
+ * @date 2023/2/27 15:28
+ */
+ public static function wechat_common($orderSn, $extra = [])
+ {
+ $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty();
+
+ if ($order->isEmpty() || $order->paid == PayEnum::ISPAID) {
+ return true;
+ }
+ $order->status = 1;
+ $order->paid = 1;
+ $order->pay_time = time();
+ if($order['is_storage']==1){
+ $order->status=2;
+ UserProductStorageLogic::add($order);
+ }
+ if ($order->pay_type != 10) {
+ $order->pay_price = bcdiv($extra['amount']['payer_total'], 100, 2);
+ } else {
+ $extra['transaction_id'] = time();
+ }
+ $user = User::where('id', $order['uid'])->find();
+ if ($order->pay_type == OrderEnum::CASHIER_ORDER_PAY || $order->pay_type == OrderEnum::CASHIER_ORDER_ALI_PAY) { //收银台支付
+ $order->status = 2;
+ } else {
+ $capitalFlowDao = new CapitalFlowLogic($user);
+ //微信支付和用户余额无关
+ $capitalFlowDao->userExpense('user_order_pay', 'order', $order['id'], $order->pay_price, '', 1, $order['store_id']);
+ }
+ $order->save();
+ self::afterPay($order, $extra['transaction_id']);
+ // self::addUserSing($order);
+ self::dealProductLog($order);
+ if ($order['shipping_type'] == 3) {
+ self::descStock($order['id']);
+ }
+ if (!empty($extra['payer']['openid']) && $order->pay_type == 7) {
+ Redis::send('push-delivery', ['order_id' => $order['order_id'], 'openid' => $extra['payer']['openid']], 4);
+ }
+ return true;
+ }
+
+ //退款
+ public static function refund($orderSn, $extra = [])
+ {
+ //更新状态
+ $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty();
+ if ($order->isEmpty() || $order->status == OrderEnum::REFUND_PAY) {
+ //充值
+ $orderRe = UserRecharge::where('order_id', $orderSn)->findOrEmpty();
+ if ($orderRe->isEmpty() || $orderRe->status == -1) {
+ return true;
+ }
+ $orderRe->status = -1;
+ $orderRe->refund_price = $orderRe->price;
+ $orderRe->refund_time = time();
+ $orderRe->remarks = '';
+ $orderRe->save();
+
+ return true;
+ }
+ $order->status = OrderEnum::REFUND_PAY;
+ $order->refund_status = OrderEnum::REFUND_STATUS_FINISH;
+ $order->refund_price = bcdiv($extra['amount']['refund'], 100, 2);
+ $order->refund_reason_time = time();
+ $order->refund_num += 1;
+ $order->save();
+ //日志记录
+ //加用户余额,采购款, 日志记录 加数量
+ $user = User::where('id', $order['uid'])->findOrEmpty();
+ $capitalFlowDao = new CapitalFlowLogic($user);
+ $deal_money = bcdiv($extra['amount']['refund'], 100, 2);
+ $check_user_sing = UserSign::where('order_id',$order['order_id'])->count();
+ if (in_array($order['pay_type'], [PayEnum::BALANCE_PAY, PayEnum::PURCHASE_FUNDS])) {
+ if ($order['pay_type'] == PayEnum::BALANCE_PAY) { //用户余额
+ $user->now_money = bcadd($user->now_money, $deal_money, 2);
+ $user->save();
+ //增加数量
+ self::addStock($order['id']);
+ //退款
+ $capitalFlowDao->userIncome('system_balance_back', 'system_back', $order['id'], $deal_money);
+ }
+ if ($order['pay_type'] == PayEnum::PURCHASE_FUNDS) { //采购款
+ $user->purchase_funds = bcadd($user->purchase_funds, $deal_money, 2);
+ $user->save();
+ //增加数量
+ self::addStock($order['id']);
+ //退款
+ $capitalFlowDao->userIncome('system_purchase_back', 'system_back', $order['id'], $deal_money);
+ }
+ if($check_user_sing){
+ self::descUserSing($order);
+ }
+ return true;
+ }
+ //积分
+ if($check_user_sing){
+ self::descUserSing($order);
+ }
+ //微信日志 user_order_refund
+ $capitalFlowDao->userIncome('user_order_refund', 'system_back', $order['id'], $deal_money, '', 1);
+ //处理财务流水退还
+ self::store_finance_back($orderSn);
+ self::addStock($order['id']); //微信
+ return true;
+ // self::afterPay($order,$extra['transaction_id']);
+ }
+
+ //退积分
+ public static function descUserSing($order)
+ {
+ $user_sing = new UserSign();
+ if ($order['uid'] > 0 ) {
+ $user_number = bcmul($order['refund_price'], '0.10', 2);
+ $sing = [
+ 'uid' => $order['uid'],
+ 'order_id' => $order['order_id'],
+ 'title' => '退款扣除兑换券',
+ 'financial_pm' => 0,
+ 'store_id' => $order['store_id'],
+ 'number' => $user_number,
+ ];
+ $user_sing->save($sing);
+ $now_int = User::where('id',$order['uid'])->find();
+ if($now_int){
+ if($now_int['integral'] > $user_number){
+ User::where('id',$order['uid'])->dec('integral',$user_number)->update();
+ }else{
+ User::where('id',$order['uid'])->dec('integral',$now_int['integral'])->update();
+ }
+
+ }
+ }
+ return true;
+
+ }
+
+
+
+ /**
+ * 财务退还金额相关
+ * @param $orderSn
+ * @return void
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+ public static function store_finance_back($orderSn)
+ {
+ $data = StoreFinanceFlow::where('order_sn', $orderSn)
+ ->where(['financial_pm' => 1])
+ ->select()->toArray();
+ foreach ($data as &$value) {
+ unset($value['id']);
+ $value['financial_record_sn'] = (new StoreFinanceFlowLogic)->getSn();
+ $value['financial_pm'] = 0;
+ $value['financial_type'] = OrderEnum::PAY_BACK;
+ $value['create_time'] = time();
+ }
+ (new StoreFinanceFlow)->saveAll($data);
+ }
+
+ /**
+ * 现金退款相关
+ * @param $orderSn
+ * @param $extra
+ * @return true
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+ public static function cash_refund($orderSn, $extra = [])
+ {
+ $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty();
+ if ($order->isEmpty() || $order->status == OrderEnum::REFUND_PAY) {
+ return true;
+ }
+ $order->refund_status = OrderEnum::REFUND_STATUS_FINISH;
+ $order->refund_price = $order->pay_price;
+ $order->refund_reason_time = time();
+ $order->refund_num += 1;
+ $order->save();
+ //日志记录
+ $model = new StoreCashFinanceFlow();
+ $model->store_id = $order['store_id'] ?? 0;
+ $model->cash_price = $order->pay_price;
+ $model->receivable = $order->pay_price;
+ $model->remark = '退款';
+ $model->type = 1;
+ $model->status = YesNoEnum::YES;
+ $model->save();
+ //增加数量
+ self::addStock($order['id']);
+ return true;
+ }
+
+ /**
+ * 充值现金退款相关
+ * @param $orderId
+ * @param $extra
+ * @return true
+ */
+ public static function recharge_cash_refund($orderId, $extra = [])
+ {
+ $order = UserRecharge::where('id', $orderId)->findOrEmpty();
+ if ($order->isEmpty() || $order->status == -1) {
+ return true;
+ }
+ $order->status = -1;
+ $order->refund_price = $order->price;
+ $order->refund_time = time();
+ $order->remarks = '';
+ $order->save();
+ return true;
+ }
+
+ //入冻结礼品券
+ public static function addUserSing($order)
+ {
+ $user_sing = new UserSign();
+ if ($order['uid'] > 0 && $order['total_price'] >= 500) {
+ $user_number = bcmul($order['pay_price'], '0.10', 2);
+ $sing = [
+ 'uid' => $order['uid'],
+ 'order_id' => $order['order_id'],
+ 'title' => '购买商品获得兑换券',
+ 'financial_pm' => 1,
+ 'store_id' => $order['store_id'],
+ 'number' => $user_number,
+ ];
+ $user_sing->save($sing);
+ }
+ return true;
+ }
+
+
+ /**
+ * 充值
+ */
+ public static function recharge($orderSn, $extra = [], $type = 'wechat')
+ {
+ $order = UserRecharge::where('order_id', $orderSn)->findOrEmpty();
+ if ($order->isEmpty() || $order->paid == PayEnum::ISPAID) {
+ return true;
+ }
+ if ($type == 'wechat') {
+ $price = bcdiv($extra['amount']['payer_total'], 100, 2);
+ } else {
+ $price = $extra['buyer_pay_amount'];
+ }
+ $order->price = $price;
+ $order->paid = 1;
+ $order->pay_time = time();
+ $order->save();
+ $uid = $order->uid;
+ $user = User::where('id', $uid)->findOrEmpty();
+ //用户的财务add
+ $capitalFlowDao = new CapitalFlowLogic($user);
+ $capitalFlowDao->userIncome('user_balance_recharge', 'user_recharge', $order['id'], $price);
+
+ if ($user->isEmpty()) {
+ return true;
+ }
+ bcscale(2);
+ // $user->now_money = bcadd($user->now_money, $price, 2);//v.1
+ //更新等级
+ if ($price >= Config::where('name','recharge')->value('value')) {
+ $user->user_ship = 1; //v.1
+ }
+ $user->purchase_funds = bcadd($user->purchase_funds, $price, 2);
+ $user->total_recharge_amount = bcadd($user->total_recharge_amount, $price, 2);
+ $user->save();
+ if($order['other_uid']>0){
+ $uid=$order['other_uid'];
+ }
+ PushService::push('wechat_mmp_' . $uid, $uid, ['type'=>'INDUSTRYMEMBERS','msg'=>'订单支付成功','data'=>['id'=>$order['id'],'paid'=>1]]);
+ PushService::push('store_merchant_' . $order['store_id'], $order['store_id'], ['type'=>'INDUSTRYMEMBERS','msg'=>'订单支付成功','data'=>['id'=>$order['id'],'paid'=>1]]);
+ if (!empty($extra['payer']['openid'])) {
+ Redis::send('push-delivery', ['order_id' => $order['order_id'], 'openid' => $extra['payer']['openid'], 'logistics_type' => 3], 4);
+ }
+ return true;
+ }
+
+ /**
+ * 现金支付
+ */
+ public static function cash_pay($orderSn)
+ {
+ $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty();
+
+ if ($order->isEmpty() || $order->paid == PayEnum::ISPAID) {
+ return true;
+ }
+ $order->paid = 1;
+ $order->pay_time = time();
+ $order->status = 2;
+ if (!$order->save()) {
+ throw new \Exception('订单保存出错');
+ }
+ self::afterPay($order);
+ $cashFlowLogic = new CashFlowLogic();
+ $cashFlowLogic->insert($order['store_id'], $order['pay_price']);
+ self::dealProductLog($order);
+ if ($order['shipping_type'] == 3) {
+ self::descStock($order['id']);
+ }
+ // Redis::send('push-platform-print', ['id' => $order['id']]);
+ return true;
+ }
+
+ /**
+ * @notes 阿里回调
+ * @param $orderSn
+ * @param array $extra
+ * @author 段誉
+ * @date 2023/2/27 15:28
+ */
+ public static function alipay_cashier($orderSn, $extra = [])
+ {
+ $order = StoreOrder::where('order_id', $orderSn)->findOrEmpty();
+
+ if ($order->isEmpty() || $order->paid == PayEnum::ISPAID) {
+ return true;
+ }
+ if ($order->pay_type != 10) {
+ $order->money = $extra['buyer_pay_amount'];
+ $order->paid = 1;
+ $order->pay_time = time();
+ $order->status = 1;
+ $order->save();
+ } else {
+ $extra['transaction_id'] = time();
+ }
+ if ($order->pay_type == 9) {
+ $order->status = 2;
+ self::afterPay($order);
+ }
+ self::dealProductLog($order);
+ if ($order['shipping_type'] == 3) {
+ self::descStock($order['id']);
+ }
+
+ // if ($order->pay_type == 9) {
+ // $extra['create_time'] = $order['create_time'];
+ // PushService::push('store_merchant_' . $order['store_id'], $order['store_id'], ['type' => 'cash_register', 'msg' => '您有一笔订单已支付', 'data' => $extra]);
+ // Redis::send('push-platform-print', ['id' => $order['id']]);
+ // }
+ // else {
+ // PushService::push('store_merchant_' . $order['store_id'], $order['store_id'], ['type' => 'store_merchant', 'msg' => '您有一笔新的订单']);
+ // }
+ return true;
+ }
+
+ /**
+ * 支付后逻辑
+ * @param $order
+ * @return void
+ */
+ public static function afterPay($order, $transaction_id = 0)
+ {
+ $financeLogic = new StoreFinanceFlowLogic();
+ $user_sing = new UserSign();
+ $off_activity = Config::where('name', 'off_activity')->value('value');
+ if ($off_activity == 1) {
+ //-----活动价结算更改
+ $financeLogic->order = $order;
+ $financeLogic->user = ['uid' => $order['uid']];
+ $financeLogic->in($transaction_id, $order['pay_price'], OrderEnum::USER_ORDER_PAY, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //用户订单支付
+ $financeLogic->in($transaction_id, $order['pay_price'], OrderEnum::SUPPLIER_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']);
+ $financeLogic->out($transaction_id, $order['pay_price'], OrderEnum::SUPPLIER_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
+ if ($order['uid'] > 0 && $order['total_price'] > 500 && $order['pay_type'] !=18
+ && $order['pay_type'] !=3) {
+ $user_number = bcmul($order['pay_price'], '0.10', 2);
+ $sing = [
+ 'uid' => $order['uid'],
+ 'order_id' => $order['order_id'],
+ 'title' => '购买商品获得兑换券',
+ 'financial_pm' => 1,
+ 'store_id' => $order['store_id'],
+ 'number' => $user_number,
+ ];
+ $user_sing->save($sing);
+ }
+ return false;
+ }
+ $vipFen = 0;
+ if ($order['uid'] > 0) {
+ // 结算金额 要支付的钱减去冻结得钱去走后面得逻辑 发得兑换券也要去减去
+ //用户下单该用户等级为1得时候才处理冻结金额
+ $user = User::where('id', $order['uid'])->find();
+ //纯在分销关系的时候要去判断分销出来的用户的采购款的额度 (只有会员按照这个逻辑拆分,其余的还是按照正常的支付金额)
+ if ($order['spread_uid'] > 0) {
+ $oldUser = User::where('id', $order['spread_uid'])->field('purchase_funds,user_ship')->find();
+ if ($oldUser && $oldUser['user_ship'] == 1) {
+ if ($oldUser['purchase_funds'] < $order['pay_price']) {
+ $vipFen = $oldUser['purchase_funds'];
+ }
+ }
+ } elseif ($user['user_ship'] == 1 && $order['pay_type'] != PayEnum::CASH_PAY) {
+ $vipFrozenAmount = self::dealFrozenPrice($order['id']);
+ //为1的时候要去减活动价
+ // $final_price = bcsub($order['pay_price'],$order['deduction_price'],2);
+ // d($final_price,$vipFrozenAmount);
+ $order['pay_price'] = bcsub($order['pay_price'], $vipFrozenAmount, 2);
+ self::dealVipAmount($order, $order['pay_type']);
+ }
+ if($order['total_price'] > 500 && $order['pay_type'] !=18
+ && $order['pay_type'] !=3){
+ $user_number = bcmul($order['pay_price'], '0.10', 2);
+ $sing = [
+ 'uid' => $order['uid'],
+ 'order_id' => $order['order_id'],
+ 'title' => '购买商品获得兑换券',
+ 'financial_pm' => 1,
+ 'store_id' => $order['store_id'],
+ 'number' => $user_number,
+ 'status' => 0,
+ ];
+ $user_sing->save($sing);
+ }
+
+ // User::where('id', $order['uid'])->inc('integral', $user_number)->update();
+ }
+
+
+ $financeLogic->order = $order;
+ $financeLogic->user = ['uid' => $order['uid']];
+ // if ($order->pay_type != 9 || $order->pay_type != 10) {
+ $financeLogic->in($transaction_id, $order['pay_price'], OrderEnum::USER_ORDER_PAY, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //用户订单支付
+ $count_frees = 0;
+
+ //平台手续费
+ $fees = bcdiv(bcmul($order['pay_price'], '0.02', 2), 1, 2);
+ $count_frees = bcadd($count_frees, $fees, 2);
+ if ($fees > 0) {
+ $financeLogic->in($transaction_id, $fees, OrderEnum::ORDER_HANDLING_FEES, $order['store_id'], 0, 0, $order['pay_type']); //平台手续费
+ $financeLogic->out($transaction_id, $fees, OrderEnum::ORDER_HANDLING_FEES, $order['store_id'], $order['staff_id'], 0, $order['pay_type']); //商户平台手续费支出
+ }
+ // $frozen = bcsub($order->profit, $fees, 2);
+ //缴纳齐全了就加商户没有就加到平台
+ $money_limt = SystemStore::where('id', $order['store_id'])->field('paid_deposit,security_deposit')->find();
+ $deposit = bcsub($money_limt['security_deposit'], $money_limt['paid_deposit'], 2); //保证金剩余额度
+ $store_profit = bcdiv(bcmul($order['pay_price'], '0.05', 2), 1, 2);
+ $count_frees = bcadd($count_frees, $store_profit, 2);
+ if ($deposit > 0) {
+ if ($deposit > $store_profit) {
+ if ($store_profit > 0) {
+ SystemStore::where('id', $order['store_id'])->inc('paid_deposit', $store_profit)->update();
+ $financeLogic->out($transaction_id, $store_profit, OrderEnum::ORDER_MARGIN, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
+ $financeLogic->in($transaction_id, 0, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']); //平台手续费
+ }
+ } else {
+ $money = bcsub($store_profit, $deposit, 2);
+ if ($deposit > 0) {
+ SystemStore::where('id', $order['store_id'])->inc('paid_deposit', $deposit)->update();
+ $financeLogic->out($transaction_id, $deposit, OrderEnum::ORDER_MARGIN, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
+ }
+ if ($money) {
+ SystemStore::where('id', $order['store_id'])->inc('store_money', $money)->update();
+ $financeLogic->in($transaction_id, $money, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']); //平台手续费
+ }
+ }
+ } else {
+ if ($store_profit > 0) {
+ SystemStore::where('id', $order['store_id'])->inc('store_money', $store_profit)->update();
+ $financeLogic->in($transaction_id, $store_profit, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']); //平台手续费
+ }
+ }
+ // if ($order['is_vip'] >= 1) {
+ if ($order['spread_uid'] > 0) {
+ $financeLogic->other_arr['vip_uid'] = $order['spread_uid'];
+ if ($vipFen) {
+ $fees = bcdiv(bcmul($vipFen, '0.08', 2), 1, 2);
+ } else {
+ $fees = bcdiv(bcmul($order['pay_price'], '0.08', 2), 1, 2);
+ }
+ $count_frees = bcadd($count_frees, $fees, 2);
+ if ($fees > 0) {
+ User::where('id', $order['spread_uid'])->inc('now_money', $fees)->update();
+ //记录用户余额收入
+ $GiveUser = User::where('id', $order['spread_uid'])->find();
+ $capitalFlowDao = new CapitalFlowLogic($GiveUser);
+ $capitalFlowDao->userIncome('system_balance_add', 'order', $order['id'], $fees);
+
+ $financeLogic->in($transaction_id, $fees, OrderEnum::VIP_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']); //vip订单获得
+ $financeLogic->out($transaction_id, $fees, OrderEnum::VIP_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
+ }
+ }
+ $fees = bcdiv(bcmul($order['pay_price'], '0.01', 2), 1, 2);
+ $count_frees = bcadd($count_frees, bcmul($fees, 3, 2), 2);
+ $village_uid = 0;
+ $brigade_uid = 0;
+ //查询用户对应的村长和队长
+ if ($order['uid'] > 0) {
+ $address = UserAddress::where(['uid' => $order['uid'], 'is_default' => 1])->find();
+ if ($address) {
+ $arr1 = UserAddress::where(['village' => $address['village'], 'is_default' => 1])->column('uid');
+ if ($arr1) {
+ $uid = User::where('id', 'in', $arr1)->where('user_ship', 2)->value('id');
+ if ($uid) {
+ User::where('id', $uid)->inc('integral', $fees)->update();
+ $village_uid = $uid;
+ }
+ }
+ $arr2 = UserAddress::where(['village' => $address['village'], 'brigade' => $address['brigade'], 'is_default' => 1])->column('uid');
+ if ($arr2) {
+ $uid = User::where('id', 'in', $arr1)->where('user_ship', 3)->value('id');
+ if ($uid) {
+ User::where('id', $uid)->inc('integral', $fees)->update();
+ $brigade_uid = $uid;
+ }
+ }
+ }
+ }
+ if ($fees > 0) {
+ //村长获得
+ // $sing = [];
+
+ // $sing[] = [
+ // 'uid' => $village_uid,
+ // 'order_id' => $order['order_id'],
+ // 'title' => '村长订单获得兑换券',
+ // 'store_id' => $order['store_id'],
+ // 'number' => $fees,
+ // 'financial_pm' => 1,
+ // 'user_ship' => 2,
+ // ];
+ // $sing[] = [
+ // 'uid' => $brigade_uid,
+ // 'order_id' => $order['order_id'],
+ // 'title' => '队长订单获得兑换券',
+ // 'store_id' => $order['store_id'],
+ // 'number' => $fees,
+ // 'financial_pm' => 1,
+ // 'user_ship' => 3,
+ // ];
+ // $sing[] = [
+ // 'uid' => $village_uid,
+ // 'order_id' => $order['order_id'],
+ // 'title' => '订单扣除兑换券',
+ // 'store_id' => $order['store_id'],
+ // 'number' => $fees,
+ // 'financial_pm' => 0,
+ // 'user_ship' => 2,
+ // ];
+ // $sing[] = [
+ // 'uid' => $brigade_uid,
+ // 'order_id' => $order['order_id'],
+ // 'title' => '订单扣除兑换券',
+ // 'store_id' => $order['store_id'],
+ // 'number' => $fees,
+ // 'financial_pm' => 0,
+ // 'user_ship' => 3,
+ // ];
+ if ($village_uid > 0) {
+ SystemStore::where('id', $village_uid)->inc('store_money', $fees)->update();
+ $financeLogic->other_arr['vip_uid'] = $village_uid;
+ }
+ $financeLogic->in($transaction_id, $fees, OrderEnum::VILLAGE_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']);
+ $financeLogic->out($transaction_id, $fees, OrderEnum::VILLAGE_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
+ //队长获得
+ if ($brigade_uid > 0) {
+ SystemStore::where('id', $brigade_uid)->inc('store_money', $fees)->update();
+ $financeLogic->other_arr['vip_uid'] = $brigade_uid;
+ }
+ $financeLogic->in($transaction_id, $fees, OrderEnum::BRIGADE_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']);
+ $financeLogic->out($transaction_id, $fees, OrderEnum::BRIGADE_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
+ // $user_sing->saveAll($sing);
+ //其他获得
+ $financeLogic->other_arr['vip_uid'] = 0;
+ $financeLogic->in($transaction_id, $fees, OrderEnum::OTHER_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']);
+ $financeLogic->out($transaction_id, $fees, OrderEnum::OTHER_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
+ }
+ // }
+ $fees = bcsub($order['pay_price'], $count_frees, 2);
+ //供应链订单获得
+ if ($fees > 0) {
+ $financeLogic->in($transaction_id, $fees, OrderEnum::SUPPLIER_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']);
+ $financeLogic->out($transaction_id, $fees, OrderEnum::SUPPLIER_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
+ }
+ // }
+ $financeLogic->save();
+ // }
+ }
+
+ /**
+ * 回调日志
+ * @param $order
+ * @param $extra
+ * @return void
+ */
+ public static function notifyLog($order, $extra)
+ {
+ $data = [
+ 'pay_type' => 'wechat',
+ 'type' => OrderEnum::PAY,
+ 'amount' => $extra['amount']['payer_total'], //分
+ 'order_sn' => $order,
+ 'out_trade_no' => $extra['transaction_id'],
+ 'attach' => $extra['attach'],
+ 'create_time' => date('Y-m-d H:i:s', time()),
+ ];
+ PayNotify::create($data);
+ }
+
+ /**
+ * 冻结金额
+ * @param $oid
+ * @return int|mixed
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+
+ public static function dealFrozenPrice($oid)
+ {
+ $detail = StoreOrderCartInfo::where('oid', $oid)->select()->toArray();
+ $total_vip = 0;
+ foreach ($detail as $value) {
+ $total_vip += $value['cart_info']['vip_frozen_price'];
+ }
+ return $total_vip;
+ }
+
+
+ /**
+ * 处理用户为vip1时得冻结资金
+ * @param $order
+ * @param $pay_type
+ * @param $transaction_id
+ * @return true
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+ public static function dealVipAmount($order, $pay_type = 1, $transaction_id = 0)
+ {
+ $total_vip = self::dealFrozenPrice($order['id']);
+ $data = [
+ 'order_id' => $order['id'],
+ 'transaction_id' => $transaction_id ?? 0,
+ 'order_sn' => $order['order_id'],
+ 'user_id' => $order['uid'],
+ 'number' => $total_vip,
+ 'pay_type' => $pay_type ?? 1,
+ 'status' => 0,
+ 'store_id' => $order['store_id'],
+ 'staff_id' => $order['staff_id'],
+ 'create_time' => time()
+ ];
+ Db::name('vip_flow')->insert($data);
+ return true;
+ }
+
+ /**
+ * 商品统计逻辑
+ * @param $order
+ * @return true
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+ public static function dealProductLog($order)
+ {
+ $store_id = $order['store_id'];
+ $cart_id = $order['cart_id'];
+ $uid = $order['uid'];
+ if ($uid && $cart_id && $store_id) {
+ $cart_id = explode(',', $cart_id);
+ $productLog = StoreProductLog::where([
+ 'uid' => $uid
+ ])->whereIn('cart_id', $cart_id)
+ ->select()->toArray();
+
+ foreach ($productLog as &$value) {
+ $value['pay_uid'] = $uid;
+ $value['oid'] = $order['id'];
+ $cart_info = StoreOrderCartInfo::where([
+ 'uid' => $uid, 'old_cart_id' => $value['cart_id'], 'store_id' => $store_id
+ ])->find();
+ $value['order_num'] = $cart_info['cart_num'] ?? 1;
+ $value['pay_num'] = $cart_info['cart_num'] ?? 1;
+ $value['pay_price'] = $cart_info['price'] ?? 0;
+ $value['cost_price'] = $cart_info['cart_info']['cost'] ?? 0;
+ $value['update_time'] = time();
+ unset($value['create_time'], $value['delete_time']);
+ }
+
+ (new StoreProductLog())->saveAll($productLog);
+ }
+ return true;
+ }
+
+
+ public static function descSwap($oid)
+ {
+ $updateData = [];
+ $goods_list = StoreOrderCartInfo::where('oid', $oid)->select()->toArray();
+ foreach ($goods_list as $v) {
+ $StoreBranchProduct = StoreBranchProduct::where(
+ [
+ 'store_id' => $v['store_id'],
+ 'product_id' => $v['product_id'],
+ ]
+ )->withTrashed()->find();
+ $updateData[] = [
+ 'id' => $StoreBranchProduct['id'],
+ 'swap' => $StoreBranchProduct['swap'] - $v['cart_num'],
+ 'sales' => ['inc', $v['cart_num']]
+ ];
+ }
+
+ (new StoreBranchProduct())->saveAll($updateData);
+ }
+
+
+ /**
+ * 扣库存
+ * @param $oid
+ * @return void
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+ public static function descStock($oid)
+ {
+ $updateData = [];
+ $goods_list = StoreOrderCartInfo::where('oid', $oid)->select()->toArray();
+ foreach ($goods_list as $v) {
+ $StoreBranchProduct = StoreBranchProduct::where(
+ [
+ 'store_id' => $v['store_id'],
+ 'product_id' => $v['product_id'],
+ ]
+ )->withTrashed()->find();
+ if ($StoreBranchProduct) {
+ $updateData[] = [
+ 'id' => $StoreBranchProduct['id'],
+ 'stock' => $StoreBranchProduct['stock'] - $v['cart_num'],
+ 'sales' => ['inc', $v['cart_num']]
+ ];
+ }
+ }
+
+ (new StoreBranchProduct())->saveAll($updateData);
+ }
+
+ /**
+ * 加库存
+ * @param $oid
+ * @return void
+ * @throws \think\db\exception\DataNotFoundException
+ * @throws \think\db\exception\DbException
+ * @throws \think\db\exception\ModelNotFoundException
+ */
+ public static function addStock($oid)
+ {
+ $updateData = [];
+ $goods_list = StoreOrderCartInfo::where('oid', $oid)->select()->toArray();
+ foreach ($goods_list as $v) {
+ $StoreBranchProduct = StoreBranchProduct::where(
+ [
+ 'store_id' => $v['store_id'],
+ 'product_id' => $v['product_id'],
+ ]
+ )->withTrashed()->find();
+ if ($StoreBranchProduct) {
+ $updateData[] = [
+ 'id' => $StoreBranchProduct['id'],
+ 'stock' => $StoreBranchProduct['stock'] + $v['cart_num'],
+ // 'sales' => ['inc', $v['cart_num']]
+ // 'sales' => ['inc', $v['cart_num']]
+ ];
+ }
+ }
+
+ (new StoreBranchProduct())->saveAll($updateData);
+ }
+}
diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php
index 5d808912e..d98d02b16 100644
--- a/app/common/logic/PayNotifyLogic.php
+++ b/app/common/logic/PayNotifyLogic.php
@@ -586,19 +586,6 @@ class PayNotifyLogic extends BaseLogic
$financeLogic = new StoreFinanceFlowLogic();
$user_sing = new UserSign();
$off_activity = Config::where('name', 'off_activity')->value('value');
- try{
- $url=getenv('WETCHA_PUSH');
- if($url){
- $order_id=$order['order_id'];
- $pay_price=$order['pay_price'];
- $arr=["msgtype"=>"markdown","markdown"=>["content"=> "有新的订单请及时跟踪\n
- >单号:$order_id
- >金额:$pay_price"]];
- (new Curl())->post($url,$arr);
- }
- }catch(\Exception $e){
- Log::error('推送订单失败',['order_id'=>$order['id'],'error'=>$e->getMessage()]);
- }
if ($off_activity == 1) {
//-----活动价结算更改
$financeLogic->order = $order;
@@ -683,46 +670,35 @@ class PayNotifyLogic extends BaseLogic
if ($deposit > 0) {
if ($deposit > $store_profit) {
if ($store_profit > 0) {
- SystemStore::where('id', $order['store_id'])->inc('paid_deposit', $store_profit)->update();
+ // SystemStore::where('id', $order['store_id'])->inc('paid_deposit', $store_profit)->update();
$financeLogic->out($transaction_id, $store_profit, OrderEnum::ORDER_MARGIN, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
$financeLogic->in($transaction_id, 0, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']); //平台手续费
}
} else {
$money = bcsub($store_profit, $deposit, 2);
if ($deposit > 0) {
- SystemStore::where('id', $order['store_id'])->inc('paid_deposit', $deposit)->update();
+ // SystemStore::where('id', $order['store_id'])->inc('paid_deposit', $deposit)->update();
$financeLogic->out($transaction_id, $deposit, OrderEnum::ORDER_MARGIN, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
}
if ($money) {
- SystemStore::where('id', $order['store_id'])->inc('store_money', $money)->update();
+ // SystemStore::where('id', $order['store_id'])->inc('store_money', $money)->update();
$financeLogic->in($transaction_id, $money, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']); //平台手续费
}
}
} else {
if ($store_profit > 0) {
- SystemStore::where('id', $order['store_id'])->inc('store_money', $store_profit)->update();
+ // SystemStore::where('id', $order['store_id'])->inc('store_money', $store_profit)->update();
$financeLogic->in($transaction_id, $store_profit, OrderEnum::MERCHANT_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']); //平台手续费
}
}
// if ($order['is_vip'] >= 1) {
if ($order['spread_uid'] > 0) {
- $financeLogic->other_arr['vip_uid'] = $order['spread_uid'];
if ($vipFen) {
$fees = bcdiv(bcmul($vipFen, '0.08', 2), 1, 2);
} else {
$fees = bcdiv(bcmul($order['pay_price'], '0.08', 2), 1, 2);
}
$count_frees = bcadd($count_frees, $fees, 2);
- if ($fees > 0) {
- User::where('id', $order['spread_uid'])->inc('now_money', $fees)->update();
- //记录用户余额收入
- $GiveUser = User::where('id', $order['spread_uid'])->find();
- $capitalFlowDao = new CapitalFlowLogic($GiveUser);
- $capitalFlowDao->userIncome('system_balance_add', 'order', $order['id'], $fees);
-
- $financeLogic->in($transaction_id, $fees, OrderEnum::VIP_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']); //vip订单获得
- $financeLogic->out($transaction_id, $fees, OrderEnum::VIP_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
- }
}
$fees = bcdiv(bcmul($order['pay_price'], '0.01', 2), 1, 2);
$count_frees = bcadd($count_frees, bcmul($fees, 3, 2), 2);
@@ -736,7 +712,7 @@ class PayNotifyLogic extends BaseLogic
if ($arr1) {
$uid = User::where('id', 'in', $arr1)->where('user_ship', 2)->value('id');
if ($uid) {
- User::where('id', $uid)->inc('integral', $fees)->update();
+ // User::where('id', $uid)->inc('integral', $fees)->update();
$village_uid = $uid;
}
}
@@ -744,7 +720,7 @@ class PayNotifyLogic extends BaseLogic
if ($arr2) {
$uid = User::where('id', 'in', $arr1)->where('user_ship', 3)->value('id');
if ($uid) {
- User::where('id', $uid)->inc('integral', $fees)->update();
+ // User::where('id', $uid)->inc('integral', $fees)->update();
$brigade_uid = $uid;
}
}
@@ -791,14 +767,14 @@ class PayNotifyLogic extends BaseLogic
// 'user_ship' => 3,
// ];
if ($village_uid > 0) {
- SystemStore::where('id', $village_uid)->inc('store_money', $fees)->update();
+ // SystemStore::where('id', $village_uid)->inc('store_money', $fees)->update();
$financeLogic->other_arr['vip_uid'] = $village_uid;
}
$financeLogic->in($transaction_id, $fees, OrderEnum::VILLAGE_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']);
$financeLogic->out($transaction_id, $fees, OrderEnum::VILLAGE_ORDER_OBTAINS, $order['store_id'], $order['staff_id'], 0, $order['pay_type']);
//队长获得
if ($brigade_uid > 0) {
- SystemStore::where('id', $brigade_uid)->inc('store_money', $fees)->update();
+ // SystemStore::where('id', $brigade_uid)->inc('store_money', $fees)->update();
$financeLogic->other_arr['vip_uid'] = $brigade_uid;
}
$financeLogic->in($transaction_id, $fees, OrderEnum::BRIGADE_ORDER_OBTAINS, $order['store_id'], 0, 0, $order['pay_type']);
diff --git a/app/common/logic/StoreFinanceFlowLogic.php b/app/common/logic/StoreFinanceFlowLogic.php
index a65052b9a..299b9e05d 100644
--- a/app/common/logic/StoreFinanceFlowLogic.php
+++ b/app/common/logic/StoreFinanceFlowLogic.php
@@ -5,6 +5,7 @@ namespace app\common\logic;
use app\common\enum\OrderEnum;
use app\common\enum\PayEnum;
use app\common\model\store_finance_flow\StoreFinanceFlow;
+use app\common\model\system_store\SystemStore;
use app\common\model\user\User;
class StoreFinanceFlowLogic extends BaseLogic
@@ -128,7 +129,7 @@ class StoreFinanceFlowLogic extends BaseLogic
}
/**
- * 核销后更新余额
+ * 核销后更新用户余额
*/
public function updateStatusUser($id,$uid,$money,$order_id){
StoreFinanceFlow::where('id', $id)->update(['status' => 1]);
@@ -137,6 +138,17 @@ class StoreFinanceFlowLogic extends BaseLogic
$capitalFlowDao->userIncome('system_balance_add', 'order', $order_id, $money);
$find->inc('now_money',$money)->update();
}
-
+ /**
+ * 核销后更新门店余额
+ */
+ public function updateStatusStore($id,$store_id,$money,$deposit){
+ StoreFinanceFlow::where('id', $id)->update(['status' => 1]);
+ if($money){
+ SystemStore::where('id', $store_id)->inc('store_money', $money)->update();
+ }
+ if($deposit){
+ SystemStore::where('id', $store_id)->inc('paid_deposit', $deposit)->update();
+ }
+ }
}