Kirin %!s(int64=3) %!d(string=hai) anos
pai
achega
3ba54d3753

+ 5 - 0
app/admin/controller/company/Finance.php

@@ -66,6 +66,7 @@ class Finance extends AuthController
             ['page', 1],
             ['type', ''],
         ]);
+        $where = array_merge($where, $this->main_where);
         Json::successlayui(StoreBill::getBillList($where));
     }
 
@@ -112,6 +113,10 @@ class Finance extends AuthController
     {
         $store_info = SystemStore::where('id', $this->adminInfo['store_id'])->find();
         if (!$store_info) Json::fail('门店不存在');
+        $uid = \app\models\user\User::where('user_store_id', $store_info['id'])->column('uid');
+        if (!count($uid)) Json::fail('推荐用户不足100人');
+        $count = \app\models\user\User::where('spread_uid', 'in', $uid)->count();
+        if ($count < 100) Json::fail('推荐用户不足100人');
         $data = UtilService::postMore([
             ['alipay_code', ''],
             ['extract_type', ''],

+ 1 - 0
app/admin/controller/store/StoreProduct.php

@@ -314,6 +314,7 @@ class StoreProduct extends AuthController
             ['activity', []],
             ['is_consumer', 0],
             ['bar_code', ''],
+            ['store_bag', 0],
         ]);
         foreach ($data['activity'] as $k => $v) {
             if ($v == '秒杀') {

+ 1 - 0
app/admin/controller/system/SystemStore.php

@@ -145,6 +145,7 @@ class SystemStore extends AuthController
             ['is_triple', 0],
             ['recommend', 0],
             ['commission', 0],
+            ['commission_order', 0],
             ['spread_uid', 0],
         ]);
         SystemStoreModel::beginTrans();

+ 19 - 19
app/admin/controller/user/User.php

@@ -459,7 +459,7 @@ class User extends AuthController
         $f[] = Form::radio('is_promoter', '推广员', $user->getData('is_promoter'))->options([['value' => 1, 'label' => '开启'], ['value' => 0, 'label' => '关闭']]);
         $f[] = Form::select('spread_uid', '推荐人', (string)$user->getData('spread_uid'))->options(array_merge([['value' => 0, 'label' => '无']], UserModel::where('uid', '<>', $uid)->field('uid as value,nickname as label')->select()->toArray()))->filterable(true);
         $f[] = Form::radio('lock_spread', '推荐锁定', $user->getData('lock_spread'))->options([['value' => 1, 'label' => '锁定'], ['value' => 0, 'label' => '解锁']]);
-        $f[] = Form::select('m_spread_uid', '异业推荐人', (string)$user->getData('m_spread_uid'))->options(array_merge([['value' => 0, 'label' => '无']], UserModel::where('uid', '<>', $uid)->field('uid as value,nickname as label')->select()->toArray()))->filterable(true);
+//        $f[] = Form::select('m_spread_uid', '异业推荐人', (string)$user->getData('m_spread_uid'))->options(array_merge([['value' => 0, 'label' => '无']], UserModel::where('uid', '<>', $uid)->field('uid as value,nickname as label')->select()->toArray()))->filterable(true);
         $f[] = Form::radio('status', '状态', $user->getData('status'))->options([['value' => 1, 'label' => '开启'], ['value' => 0, 'label' => '锁定']]);
         $form = Form::make_post_form('添加用户通知', $f, Url::buildUrl('update', array('uid' => $uid)), 5);
         $this->assign(compact('form'));
@@ -481,7 +481,7 @@ class User extends AuthController
             ['integration', 0],
             ['status', 0],
             ['spread_uid', 0],
-            ['m_spread_uid', 0],
+//            ['m_spread_uid', 0],
             ['lock_spread', 0],
         ]);
         if (!$uid) return $this->failed('数据不存在');
@@ -548,23 +548,23 @@ class User extends AuthController
         if ($data['spread_uid'] != $user['spread_uid']) {
             $res_sp = \app\models\user\User::setSpread($data['spread_uid'], $uid);
         }
-        if ($data['m_spread_uid'] != $user['m_spread_uid']) {
-            if ($uid == $data['m_spread_uid']) {
-                return Json::fail('不可绑定自己');
-            }
-            $spread_uid = $data['m_spread_uid'];
-            $sp = $data['m_spread_uid'];
-            $userlist = \app\models\user\User::column('uid,m_spread_uid', 'uid');
-            while ($sp) {
-                if ($sp == $uid) {
-                    $spread_uid = 0;
-                    break;
-                }
-                $sp = $userlist[$sp]['m_spread_uid'] ?? 0;
-            }
-            if (!$spread_uid) return Json::fail('绑定用户不满足');
-            $edit['m_spread_uid'] = $data['m_spread_uid'];
-        }
+//        if ($data['m_spread_uid'] != $user['m_spread_uid']) {
+//            if ($uid == $data['m_spread_uid']) {
+//                return Json::fail('不可绑定自己');
+//            }
+//            $spread_uid = $data['m_spread_uid'];
+//            $sp = $data['m_spread_uid'];
+//            $userlist = \app\models\user\User::column('uid,m_spread_uid', 'uid');
+//            while ($sp) {
+//                if ($sp == $uid) {
+//                    $spread_uid = 0;
+//                    break;
+//                }
+//                $sp = $userlist[$sp]['m_spread_uid'] ?? 0;
+//            }
+//            if (!$spread_uid) return Json::fail('绑定用户不满足');
+//            $edit['m_spread_uid'] = $data['m_spread_uid'];
+//        }
         $edit['status'] = $data['status'];
         $edit['real_name'] = $data['real_name'];
         $edit['phone'] = $data['phone'];

+ 5 - 1
app/admin/model/system/StoreBill.php

@@ -68,6 +68,10 @@ class StoreBill extends BaseModel
         if ($where['nickname'] != '') {
             $model = $model->where('B.name|B.id', 'like', "%$where[nickname]%");
         }
+
+        if (isset($where['store_id']) && $where['store_id'] != '') {
+            $model = $model->where('A.store_id', $where['store_id']);
+        }
         return $model->field(['A.*', 'A.add_time', 'B.id', 'B.name']);
     }
 
@@ -77,7 +81,7 @@ class StoreBill extends BaseModel
      */
     public static function getBrokerageCount()
     {
-        return self::where('pm', 1)->where('type','product_sale')->sum('number');
+        return self::where('pm', 1)->where('type', 'product_sale')->sum('number');
     }
 
 }

+ 15 - 1
app/admin/view/store/store_product/create.php

@@ -853,6 +853,19 @@
                                             </div>
                                         </div>
                                     </div>
+                                    <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
+                                        <div class="grid-demo grid-demo-bg1">
+                                            <div class="layui-form-item">
+                                                <label class="layui-form-label">商家商品</label>
+                                                <div class="layui-input-block">
+                                                    <input type="radio" name="store_bag" lay-filter="store_bag" value="1" title="开启"
+                                                           :checked="formData.store_bag == 1 ? true : false">
+                                                    <input type="radio" name="store_bag" lay-filter="store_bag" value="0" title="关闭"
+                                                           :checked="formData.store_bag == 0 ? true : false">
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
                                     <div class="layui-row layui-col-space15">
                                         <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
                                             <div class="grid-demo grid-demo-bg1">
@@ -954,6 +967,7 @@
                 is_new: 0,
                 is_good: 0,
                 is_suit: 0,
+                store_bag: 0,
                 is_sub:0,
                 is_consumer:consumer,
                 items: [
@@ -992,7 +1006,7 @@
             activity:{'秒杀':'#1E9FFF','砍价':'#189688','拼团':'#FEB900'},
             attr: [],//临时属性
             newRule: false,//是否添加新规则
-            radioRule: ['is_sub','is_show','is_award', 'is_hot', 'is_benefit', 'is_new','is_good','is_suit' ,'is_best', 'spec_type'],//radio 当选规则
+            radioRule: ['is_sub','is_show','is_award', 'is_hot', 'is_benefit', 'is_new','is_good','store_bag','is_suit' ,'is_best', 'spec_type'],//radio 当选规则
             rule: { //多图选择规则
                 slider_image: {
                     maxLength: 5

+ 9 - 0
app/admin/view/system/system_store/add.php

@@ -168,6 +168,14 @@
                                 </Row>
                             </Form-Item>
                             <Form-Item>
+                                <Row>
+                                    <i-Col span="13">
+                                        <span>订单手续费:</span>
+                                        <i-Input placeholder="%" v-model="form.commission_order" style="width: 80%"
+                                                 type="text"></i-Input>
+                                    </i-Col>
+                                </Row>
+                            </Form-Item> <Form-Item>
                                 <Row>
                                     <i-Col span="13">
                                         <span>提现手续费:</span>
@@ -238,6 +246,7 @@
                         terminal_number: storeData.terminal_number || '',
                         uid: storeData.uid || 0,
                         commission: storeData.commission || 0,
+                        commission_order: storeData.commission_order || 0,
                         recommend: storeData.recommend || 0,
                         spread_uid: storeData.spread_uid || 0,
                         is_triple: storeData.is_triple || "0",

+ 1 - 0
app/api/controller/PublicController.php

@@ -75,6 +75,7 @@ class PublicController
         $info['fastList'] = StoreCategory::byIndexList((int)$fastNumber, false);//TODO 快速选择分类个数
         $info['bastList'] = StoreProduct::getBestProduct('id,image,store_name,cate_id,price,ot_price,IFNULL(sales,0) + IFNULL(ficti,0) as sales,unit_name', (int)$bastNumber, $request->uid(), false);//TODO 精品推荐个数
         $info['suitList'] = StoreProduct::getSuitProduct('id,image,store_name,cate_id,price,ot_price,IFNULL(sales,0) + IFNULL(ficti,0) as sales,unit_name', (int)$bastNumber, $request->uid(), false);//TODO 精品推荐个数
+        $info['storeList'] = StoreProduct::getStoreProduct('id,image,store_name,cate_id,price,ot_price,IFNULL(sales,0) + IFNULL(ficti,0) as sales,unit_name', (int)$bastNumber, $request->uid(), false);//TODO 精品推荐个数
         $info['integralList'] = StoreProduct::getIntegralProduct('id,image,store_name,cate_id,price,ot_price,IFNULL(sales,0) + IFNULL(ficti,0) as sales,unit_name,max_use_integral', (int)$bastNumber, $request->uid(), false);//TODO 精品推荐个数
         $info['firstList'] = StoreProduct::getNewProduct('id,image,store_name,cate_id,price,unit_name,IFNULL(sales,0) + IFNULL(ficti,0) as sales', (int)$firstNumber, $request->uid(), false);//TODO 首发新品个数
         $info['bastBanner'] = sys_data('routine_home_bast_banner') ?? [];//TODO 首页精品推荐图片

+ 2 - 1
app/api/controller/order/StoreOrderController.php

@@ -64,7 +64,8 @@ class StoreOrderController
         $other = [
             'offlinePostage' => sys_config('offline_postage'),
             'integralRatio' => sys_config('integral_ratio'),
-            'suit' => $cartGroup['suit']
+            'suit' => $cartGroup['suit'],
+            'store_bag' => $cartGroup['store_bag'] ? 1 : 0,
         ];
         $usableCoupons = StoreCouponUser::getUsableCouponList($uid, $cartGroup, $priceGroup['totalPrice']);
         $usableCoupon = isset($usableCoupons[0]) ? $usableCoupons[0] : null;

+ 29 - 0
app/api/controller/user/UserController.php

@@ -777,4 +777,33 @@ class UserController
         $count = User::where('m_spread_uid', $request->uid())->count();
         return app('json')->successful('ok', compact('list', 'count'));
     }
+
+    public function applyStore(Request $request)
+    {
+        $data = UtilService::postMore([
+            ['name', ''],
+            ['introduction', ''],
+            ['phone', ''],
+            ['address', ''],
+            ['detailed_address', ''],
+            ['image', ''],
+            ['latitude', ''],
+            ['longitude', ''],
+            ['leader', ''],
+            ['id_card', ''],
+            ['job', ''],
+            ['cert', ''],
+            ['spread_uid', ''],
+        ], $request);
+        $uid = $request->uid();
+        $user = User::get($uid);
+        if ($user['user_store_id'] > 0) return app('json')->fail('已开通商家身份');
+        if (!StoreOrder::where('uid', $uid)->where('refund_status', 0)
+            ->where('is_del', 0)->where('is_system_del')
+            ->where('paid', 1)->where('store_bag', 1)->where('status', '>=', 0)->find()) {
+            return app('json')->fail('未购买商家礼包');
+        }
+
+
+    }
 }

+ 91 - 0
app/api/controller/user/UserStoreController.php

@@ -0,0 +1,91 @@
+<?php
+
+
+namespace app\api\controller\user;
+
+
+use app\admin\model\system\StoreBill;
+use app\admin\model\system\StoreExtract;
+use app\admin\model\system\SystemStore;
+use app\models\user\User;
+use app\Request;
+use crmeb\services\FormBuilder as Form;
+use crmeb\services\JsonService as Json;
+use crmeb\services\UtilService;
+use crmeb\services\UtilService as Util;
+use think\facade\Route as Url;
+
+class UserStoreController
+{
+
+
+    /**
+     * 显示资金记录
+     */
+    public function index(Request $request)
+    {
+        $user = $request->user();
+        if (!$user['user_store_id']) return app('json')->fail('非商家身份');
+        $where['store_id'] = $user['user_store_id'];
+        $list = StoreBill::where($where)
+            ->field(['title', 'type'])
+            ->group('type')
+            ->distinct(true)
+            ->select()
+            ->toArray();
+        $balance = SystemStore::where('id', $user['user_store_id'])->value('money');
+        return app('json')->successful('ok', compact('list', 'balance'));
+    }
+
+    /**
+     * 显示资金记录ajax列表
+     */
+    public function billlist(Request $request)
+    {
+        $user = $request->user();
+        if (!$user['user_store_id']) return app('json')->fail('非商家身份');
+        $where = Util::getMore([
+            ['start_time', ''],
+            ['end_time', ''],
+            ['nickname', ''],
+            ['limit', 20],
+            ['page', 1],
+            ['type', ''],
+        ], $request);
+        $where['store_id'] = $user['user_store_id'];
+        return app('json')->successful('ok', StoreBill::getBillList($where));
+    }
+
+    /**
+     * 添加/修改
+     * @param int $id
+     */
+    public function saveExtract(Request $request)
+    {
+        $user = $request->user();
+        if (!$user['user_store_id']) return app('json')->fail('非商家身份');
+        $store_info = SystemStore::where('id', $user['user_store_id'])->find();
+        if (!$store_info) return app('json')->fail('门店不存在');
+        $uid = User::where('user_store_id', $store_info['id'])->column('uid');
+        if (!count($uid)) return app('json')->fail('推荐用户不足100人');
+        $count = User::where('spread_uid', 'in', $uid)->count();
+        if ($count < 100) return app('json')->fail('推荐用户不足100人');
+        $data = UtilService::postMore([
+            ['alipay_code', ''],
+            ['extract_type', ''],
+            ['money', 0],
+            ['name', ''],
+            ['bankname', ''],
+            ['cardnum', ''],
+            ['weixin', ''],
+        ], $request);
+        if ($data['money'] > $store_info['money']) Json::fail('可提余额不足');
+        if (!$data['cardnum'] == '')
+            if (!preg_match('/^([1-9]{1})(\d{14}|\d{18})$/', $data['cardnum']))
+                return app('json')->fail('银行卡号输入有误');
+        if (StoreExtract::userExtract($store_info, $data))
+            return app('json')->success('申请提现成功!');
+        else
+            return app('json')->fail(StoreExtract::getErrorInfo('提现失败'));
+    }
+}

+ 19 - 6
app/models/order/PaymentReceived.php

@@ -2,6 +2,8 @@
 
 namespace app\models\order;
 
+use app\admin\model\system\StoreBill;
+use app\models\system\SystemStore;
 use crmeb\traits\ModelTrait;
 use crmeb\basic\BaseModel;
 use think\Exception;
@@ -80,19 +82,30 @@ class PaymentReceived extends BaseModel
             if (bcsub($pay_user[$field], $amount, 2) < 0) return self::setErrorInfo($title . '不足!', true);
             $paid = 1;
             $pay_time = time();
-            $transfer = bcdiv(bcmul($amount, sys_config('pay_collection_commission'), 2), 100, 2);
-            $recommend = bcdiv(bcmul($amount, sys_config('pay_collection_recommend'), 2), 100, 2);
+            if ($collect_user['user_store_id'] == 0) {
+                $transfer = bcdiv(bcmul($amount, sys_config('pay_collection_commission'), 2), 100, 2);
+                $recommend = bcdiv(bcmul($amount, sys_config('pay_collection_recommend'), 2), 100, 2);
+            } else {
+                $transfer = bcdiv(bcmul($amount, sys_config('store_pay_collection_commission'), 2), 100, 2);
+                $recommend = bcdiv(bcmul($amount, sys_config('store_pay_collection_recommend'), 2), 100, 2);
+            }
             $service_charge = $transfer;
             $res = self::create(compact('pay_type', 'pay_uid', 'code', 'collect_uid', 'amount', 'order_id', 'add_time', 'paid', 'pay_time', 'service_charge', 'type'));
             if ($res) {
                 $now_money = bcsub($amount, $transfer, 2);
                 @file_put_contents("pay.txt", 'uid:' . $pay_uid . 'collect_uid:' . $collect_uid . '--' . $amount . '--' . $transfer . '--' . $now_money);
-                User::where('uid', $collect_uid)->inc($field, $now_money)->update();
                 User::where('uid', $pay_uid)->dec($field, $amount)->update();
-                $str = sprintf("收到%s用户%.2f%s,到账:%.2f%s,手续费:%.2f", $pay_user['nickname'], $amount, $title, $now_money, $title, $transfer);
-                $res1 = UserBill::income('扫码收款-' . $title, $collect_uid, 'now_money', 'qr_add_' . $field, $now_money, $res['id'], bcadd($collect_user[$field], $now_money, 2), $str);
                 $res2 = UserBill::expend("扫码付款-" . $title, $pay_uid, 'now_money', 'qr_des_' . $field, $amount, $res['id'], bcsub($pay_user[$field], $amount, 2), '支付给' . $collect_user['nickname'] . $amount . $title, 1);
-                $spread = User::get($collect_user['m_spread_uid']);
+                $str = sprintf("收到%s用户%.2f%s,到账:%.2f%s,手续费:%.2f", $pay_user['nickname'], $amount, $title, $now_money, $title, $transfer);
+                $store = SystemStore::get($collect_user['user_store_id']);
+                if ($collect_user['user_store_id'] > 0 && $store && $field == 'now_money') {
+                    $res1 = StoreBill::income('扫码收款-' . $title, $collect_user['user_store_id'], 'product_sale', $now_money, $res['id'], bcadd($store['money'], $now_money, 2), $str);
+                    $res2 = SystemStore::bcInc($collect_user['user_store_id'], 'money', $now_money, 'id');
+                } else {
+                    User::where('uid', $collect_uid)->inc($field, $now_money)->update();
+                    $res1 = UserBill::income('扫码收款-' . $title, $collect_uid, 'now_money', 'qr_add_' . $field, $now_money, $res['id'], bcadd($collect_user[$field], $now_money, 2), $str);
+                }
+                $spread = User::get($collect_user['spread_uid']);
                 $res3 = true;
                 if ($spread && $recommend > 0) {
                     User::where('uid', $spread['uid'])->inc($field, $recommend)->update();

+ 4 - 2
app/models/store/StoreCart.php

@@ -177,13 +177,14 @@ class StoreCart extends BaseModel
 
     public static function getUserProductCartList($uid, $cartIds = '', $status = 0)
     {
-        $productInfoField = 'id,image,price,ot_price,vip_price,postage,give_integral,sales,stock,store_name,unit_name,is_show,is_del,is_postage,cost,is_sub,temp_id,is_consumer,is_suit,max_use_integral,store_id';
+        $productInfoField = 'id,image,price,ot_price,vip_price,postage,give_integral,sales,stock,store_name,unit_name,is_show,is_del,is_postage,cost,is_sub,temp_id,is_consumer,is_suit,max_use_integral,store_id,store_bag';
         $seckillInfoField = 'id,image,price,ot_price,postage,give_integral,sales,stock,title as store_name,unit_name,is_show,is_del,is_postage,cost,temp_id,weight,volume,start_time,stop_time,time_id';
         $bargainInfoField = 'id,image,min_price as price,price as ot_price,postage,give_integral,sales,stock,title as store_name,unit_name,status as is_show,is_del,is_postage,cost,temp_id,weight,volume';
         $combinationInfoField = 'id,image,price,postage,sales,stock,title as store_name,is_show,is_del,is_postage,cost,temp_id,weight,volume';
         $model = new self();
         $valid = $invalid = [];
         $suit = 0;
+        $store_bag = false;
         $model = $model->alias('c')->field('c.*')->join('store_product p', 'c.product_id = p.id')->where('c.uid', $uid)->where('c.type', 'product')->where('c.is_pay', 0)
             ->where('c.is_del', 0);
         if (!$status) $model = $model->where('c.is_new', 0);
@@ -303,6 +304,7 @@ class StoreCart extends BaseModel
                 unset($valid[$k]['productInfo']['is_del'], $valid[$k]['productInfo']['is_del'], $valid[$k]['productInfo']['is_show']);
             }
             $suit += ($cart['productInfo']['is_suit'] ?? 0) * $cart['cart_num'];
+            $store_bag = $store_bag || ($cart['productInfo']['store_bag'] ?? 0);
         }
         foreach ($invalid as $k => $cart) {
             unset($valid[$k]['uid'], $valid[$k]['is_del'], $valid[$k]['is_new'], $valid[$k]['is_pay'], $valid[$k]['add_time']);
@@ -311,7 +313,7 @@ class StoreCart extends BaseModel
             }
         }
 
-        return compact('valid', 'invalid', 'suit');
+        return compact('valid', 'invalid', 'suit', 'store_bag');
     }
 
     /**

+ 1 - 0
app/models/store/StoreOrder.php

@@ -483,6 +483,7 @@ class StoreOrder extends BaseModel
                 'is_consumer' => $is_consumer,
                 'reg_store_id' => $userInfo['reg_store_id'],
                 'suit' => $other['suit'] ?? 0,
+                'store_bag' => $other['store_bag'] ?? 0,
             ];
             if ($shipping_type === 2) {
                 $orderInfo['verify_code'] = self::getStoreCode();

+ 12 - 0
app/models/store/StoreProduct.php

@@ -281,6 +281,18 @@ class StoreProduct extends BaseModel
         return count($list) ? $list->toArray() : [];
     }
 
+    public static function getStoreProduct($field = '*', $limit = 0, $uid = 0, bool $bool = true, $page = 0, $limits = 0)
+    {
+        if (!$limit && !$bool) return [];
+        $model = self::where('store_bag', 1)->where('is_del', 0)->where('mer_id', 0)
+            ->where('stock', '>', 0)->where('is_show', 1)->field($field)
+            ->order('sort DESC, id DESC');
+        if ($limit) $model->limit($limit);
+        if ($page) $model->page((int)$page, (int)$limits);
+        $list = $model->select();
+        return count($list) ? $list->toArray() : [];
+    }
+
     public static function getIntegralProduct($field = '*', $limit = 0, $uid = 0, bool $bool = true, $page = 0, $limits = 0)
     {
         if (!$limit && !$bool) return [];

+ 16 - 12
app/models/user/User.php

@@ -374,18 +374,22 @@ class User extends BaseModel
             foreach ($brokeragePrice as $k => $v) {
                 $store_info = SystemStore::get($k);
                 if ($store_info && $store_info['is_triple'] && $v > 0) {
-                    $balance = bcadd($store_info['money'], $v, 2);
-                    $mark = '订单【' . $orderInfo['order_id'] . '】内,存在店铺商品,扣除佣金后获得销售额' . $v . '元';
-                    $res1 = StoreBill::income('商品销售额', $store_info['id'], 'product_sale', $v, $orderInfo['id'], $balance, $mark);
-                    $res2 = SystemStore::bcInc($store_info['id'], 'money', $v, 'id');
-                    $res = $res && $res1 && $res2;
-                    $spread = User::getUserInfo($store_info['spread_uid']);
-                    if ($spread) {
-                        $brokeragePrice2 = bcmul(bcdiv($store_info['recommend'], 100, 4), $v, 2);
-                        if ($brokeragePrice2 > 0) {
-                            $mark = '推荐的第三方门店获得营业额,获得推荐奖' . $brokeragePrice2;
-                            $res = $res && UserBill::income('推荐门店奖', $spread['uid'], 'now_money', 'brokerage', $brokeragePrice2, $orderInfo['id'], bcadd($spread['brokerage_price'], $brokeragePrice2, 2), $mark);
-                            $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $brokeragePrice2)->update();
+                    $commission = bcmul(bcdiv($store_info['commission_order'], 100, 4), $v, 2);
+                    $v = bcsub($v, $commission, 2);
+                    if ($v > 0) {
+                        $balance = bcadd($store_info['money'], $v, 2);
+                        $mark = '订单【' . $orderInfo['order_id'] . '】内,存在店铺商品,扣除佣金,手续费后获得销售额' . $v . '元';
+                        $res1 = StoreBill::income('商品销售额', $store_info['id'], 'product_sale', $v, $orderInfo['id'], $balance, $mark);
+                        $res2 = SystemStore::bcInc($store_info['id'], 'money', $v, 'id');
+                        $res = $res && $res1 && $res2;
+                        $spread = User::getUserInfo($store_info['spread_uid']);
+                        if ($spread) {
+                            $brokeragePrice2 = bcmul(bcdiv($store_info['recommend'], 100, 4), $v, 2);
+                            if ($brokeragePrice2 > 0) {
+                                $mark = '推荐的第三方门店获得营业额,获得推荐奖' . $brokeragePrice2;
+                                $res = $res && UserBill::income('推荐门店奖', $spread['uid'], 'now_money', 'brokerage', $brokeragePrice2, $orderInfo['id'], bcadd($spread['brokerage_price'], $brokeragePrice2, 2), $mark);
+                                $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $brokeragePrice2)->update();
+                            }
                         }
                     }
                 }