dao = $dao; } /*创建用户第三方pid*/ public function createPid($data = []) { $res = Db::name("user_third")->insertGetId($data); return $res; } /*获取第三方pid*/ public function getDetail($where = [], $field = "*") { $res = Db::name("user_third")->where($where)->field($field)->find(); return $res; } /*获取配置信息*/ public function config() { $config = $data = [ 'promoter_rate_technology' => systemConfig('promoter_rate_technology'), //技术服务费 'yanglao_Meeting' => systemConfig('yanglao_Meeting'),//会费比例 'yanglao_Meeting_total' => systemConfig('yanglao_Meeting_total'),//会费总金额 'yanglaojin_admin' => systemConfig('yanglaojin_admin'), //养老金比例 'mer_rate' => systemConfig('mer_rate'), //商家比例 'third_day' => systemConfig('third_day'), //第三方订单结算天数 ]; return $config; } /*获取信息*/ public function getOrderDetail($table, $where = [], $field = "*") { $res = DB::name("$table")->where($where)->field($field)->find(); return $res; } /*创建订单*/ public function createOrder($table, $data, $time = 0) { //获取订单结算时间 $day = $this->config(); if ($time > 0) { $data['bill_end_time'] = $time + $day['third_day'] * 24 * 60 * 60; } $res = Db::name("$table")->insertGetId($data); return $res; } //获取第三方订单的计算时间 public function getSettleTime($time) { //获取订单结算时间 $day = $this->config(); if ($time > 0) { $time = $time + $day['third_day'] * 24 * 60 * 60; } return $time; } /*修改订单*/ public function saveOrder($table, $where = [], $data = []) { $res = Db::name("$table")->where($where)->update($data); return $res; } /*计算用户本年已经扣除的会费*/ public function getTotalHui($uid) { $data = Db::name("admin_bill")->where(['pm' => 0, 'status' => 1, 'type' => 2, 'link_id' => $uid])->count("number"); return $data; } /*获取用户商家信息*/ public function getMer($uid) { $data = Db::name("user")->where(['uid' => $uid])->value("mer_id"); return $data; } /*处理订单反养老金逻辑 *$order_id 订单id *$commission 佣金 * $pid 用户广告位id * $order_sn 订单号 * $table 表名 */ public function successOrder($order_id, $commission, $pid, $order_sn, $type, $table) { try { $bill= Db::name("user_bill")->where("order_sn",$order_sn)->select(); foreach ($bill as $v){ if ($v["commission_type"]==5){ Db::name("user")->where("uid",$v["uid"])->inc('annuity',$v["number"]) ->update(); Db::name("user")->where("uid",$v["uid"])->inc('annuity_num', 1) ->update(); }else{ if($v['title']!='平台奖励'){ Db::name("user")->where("uid",$v["uid"])->inc('brokerage_price', $v["number"]) ->update(); }else{ Db::name("user")->where("uid",$v["uid"])->inc('now_score', $v["number"]) ->update(); } } $annuity_once = Db::name("user")->where("uid",$v['uid'])->value('annuity_once'); if($annuity_once == 0){ $spreadUid = Db::name('user') -> where('uid',$v['uid']) -> value('spread_uid'); // Db::name('user')->where('uid',$spreadUid)->inc('score', systemConfig('ylj_first_score'))->update(); // $ins_data['uid'] = $spreadUid; // $ins_data['reward_socre'] = systemConfig('ylj_first_score'); // $ins_data['addtime'] = time(); // $ins_data['status'] = 1; // $ins_data['mark'] = '好友首次获得已结算养老金奖励积分'; // Db::name('user_sign_score')->insert($ins_data); $userRepository = app()->make(UserRepository::class); $userRepository -> sign_add($spreadUid,systemConfig('ylj_first_score'),1,'好友首次获得已结算养老金奖励积分','','',''); Db::name("user")->where("uid",$v['uid'])->update(['annuity_once'=>1]); } } Db::name("user_bill")->where("order_sn",$order_sn)->update(["status"=>1]); $orderUpdate = ['bill_status' => 1]; if ($type == 6) {//京东订单 $orderUpdate['bill_create_time'] = time(); } else { $orderUpdate['bill_create_time'] = date("Y-m-d H:i:s"); } Db::name("$table")->where($table . "_id", $order_id)->update($orderUpdate); } catch (\Exception $e) { log::error($e->getFile().':'.$e->getLine().'【'.$e->getMessage().'】'); throw new ValidateException($e->getMessage()); } } public function invalidOrder($order_sn){ return Db::name("user_bill")->where("order_sn",$order_sn)->update(["status"=>-1]); } /*处理订单预估反养老金逻辑 *$order_id 订单id *$commission 佣金 * $pid 用户广告位id * $order_sn 订单号 * $table 表名 */ public function yuguOrder($order_id, $commission, $pid, $order_sn, $type, $table) { //配置信息 $config = $this->config(); //用户pid信息 // if ($type == 6) {//京东联盟改成京推推 // $user['uid'] = intval($pid - pow(10, 5)); // } else { // $user = $this->getDetail(['pid' => $pid, 'type' => $type]); // } //用户商家信息 $user_mer = $this->getMer($pid); try { $money=$commission; //返佣比例 $base_commission= floatval(systemConfig('extension_tao_rate')); //刷卡手续费 $souxufees=0; $souxufee =floatval(systemConfig('yanglao')); if ($souxufee){ $souxufees = bcmul($money, $souxufee * 0.01, 3); } //返佣总额 返利总额=(交易金额-手续费)*返利比例 $moneys=bcmul($money-$souxufees,$base_commission/100,3); $extension_one=$moneys; $order=[ "order_sn"=>$order_sn, "order_id"=>$order_id, "uid"=>$pid, "mer_id"=>$user_mer, "total_price"=>$commission, "extension_one"=>$extension_one, "type_shop"=>$type, "table"=>$table ]; return $order; // var_dump($order,$pid);exit; $StoreOrderRepository = app()->make(StoreOrderRepository::class); // $StoreOrderRepository->yugu_rebate($order); $StoreOrderRepository->yugu_rebate_gong_fu($order); // $money_hui = 0; // $money_user = 0; // $money_jishu = 0; // $money_mer = 0; // //给用户返 // $huiTotal = $this->getTotalHui($user['uid']); //计算已经扣除的会费 // if ($huiTotal < $config['yanglao_Meeting_total']) { // $money_hui = $commission * ($config['yanglaojin_admin'] / 100) * ($config['yanglao_Meeting'] / 100);//会费 // //存储会费记录 // if (number_format($money_hui, 2) >= 0.01) { // $this->admin_bill($user['uid'], $money_hui, '养老金扣除会费' . $config['yanglao_Meeting'] . '%', '第三方平台', $order_sn, '2'); // } // $money_user = ($commission * $config['yanglaojin_admin']) / 100 - $money_hui;//养老金 // } else { // $money_user = $commission * $config['yanglaojin_admin'] / 100; // } //// if (number_format($money_user, 2) >= 0.01) { //// $this->add_bill($order_id, $user['uid'], $money_user, $order_sn, $type, '购买商品获得养老金' . $config['yanglaojin_admin'] . '%', '第三方平台',$type,0); //// //修改用户养老金信息 //// Db::name("user")->where("uid", $user['uid'])->inc('annuity', $money_user)->update(); //// } // //给用户所属商家返 // if ($user_mer) { // $money_jishu = $commission * $config['mer_rate'] / 100 * $config['promoter_rate_technology'] / 100; // $money_mer = $commission * $config['mer_rate'] / 100 - $money_jishu; // if (number_format($money_jishu, 2) >= 0.01) { // $this->admin_bill($user_mer, $money_jishu, '佣金扣除技术服务费' . $config['yanglao_Meeting'] . '%', '第三方平台', $order_sn, '4'); // } // if (number_format($money_mer, 2) >= 0.01) { // $this->add_bill($order_id, $user_mer, $money_mer, $order_sn, $type, '用户购买商品获得佣金' . $config['mer_rate'] . '%', '第三方平台',$type,0); // //修改商户佣金 // Db::name("user")->where("uid", $user_mer)->inc('brokerage_price', $money_mer)->update(); // } // } // //所有金额都小于0.01 佣金金额全归平台所有 // if (number_format($money_hui, 2) <= 0 && number_format($money_jishu, 2) <= 0 && number_format($money_user, 2) <= 0 && number_format($money_mer, 2) <= 0) { // $this->admin_bill($user['uid'], $commission, '分成后所有金额小于一分存于平台', '第三方平台,不参与用户分成', $order_sn, '5'); // } //修改订单结算状态 // $orderUpdate = ['bill_status' => 1]; // if ($type == 6) {//京东订单 // $orderUpdate['bill_create_time'] = time(); // } else { // $orderUpdate['bill_create_time'] = date("Y-m-d H:i:s"); // } // Db::name("$table")->where($table . "_id", $order_id)->update($orderUpdate); } catch (\Exception $e) { throw new ValidateException($e->getMessage()); } } /** * 平台账单记录 * `type` int(1) DEFAULT '0' COMMENT '类型 1刷卡手续费 2 会费', * `number` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '明细数字', * `title` varchar(64) NOT NULL COMMENT '账单标题', * `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0 = 待确定 1 = 有效 -1 = 无效', */ public function admin_bill($uid, $number, $title, $mark, $order_sn, $type) { $number = round($number, 2); $data = [ 'link_id' => $uid, "pm" => 1, "title" => $title, // "category"=>"now_money", "type" => $type, "number" => $number, // "balance"=>0, "mark" => $mark, "status" => 1, "order_sn" => $order_sn, ]; Db::name("admin_bill")->insert($data); } /** * 账单记录 * @param $order * @param $spread_uid * @param $commission * @param string $title * @param $mark * @throws \think\db\exception\DbException */ public function add_bill($order_id, $uid, $commission, $order_sn, $type, $title = "养老金", $mark = '',$type_shop=0,$status=1) { $data = [ 'link_id' => $order_id, "uid" => $uid, "title" => $title, "category" => "now_money", "type" => "commission", "number" => $commission, "balance" => 0, "mark" => $mark, "status" =>$status, // 'type' => $type, "commission_type" => 3, "order_sn" => $order_sn, "type_shop"=>$type_shop ]; Db::name("user_bill")->insert($data); // Db::name("user")->where("uid",$spread_uid)->inc('brokerage_price', $commission) ->update(); } /*淘宝物料分类*/ public function getMaterial() { $data = Db::name("material")->where(['status' => 1])->select(); return $data; } /*京东订单*/ public function GetJdOrder($where = [], $page = 1, $limit = 10) { $query = Db::name("order_jd"); $query = $query->when(isset($where['date']) && $where['date'] != '', function ($query) use ($where) { getModelTime($query, $where['date']); })->when(isset($where['status']) && $where['status'] != '', function ($query) use ($where) { $query->where('status', $where['status']); })->when(isset($where['order_sn']) && $where['order_sn'] != '', function ($query) use ($where) { $query->where('order_sn', $where['order_sn']); })->when($where['bill_status'] != '', function ($query) use ($where) { $query->where('bill_status', $where['bill_status']); })->when(isset($where['keywords']) && $where['keywords'] != '', function ($query) use ($where) { $query->whereLike("shop_name|uid", "%" . $where['keywords'] . "%"); }); $count = $query->count(); $list = $query->page($page, $limit)->order('order_jd_id DESC')->select(); $sql = $query->getLastSql(); $userList = User::whereIn('uid', $list->column('uid'))->column('*', 'uid'); $list->each(function ($value) use ($userList) { $info = $userList[$value['uid']] ?? []; if ($info) { $value['account'] = $info['account']; } else { $value['account'] = '匹配用户不存在'; } return $value; }); return compact('count', 'list', 'sql'); } /*拼多多订单*/ public function GetPddOrder($where = [], $page = 1, $limit = 10) { $query = Db::name("order_pdd"); $query = $query->when(isset($where['date']) && $where['date'] != '', function ($query) use ($where) { getModelTime($query, $where['date']); })->when(isset($where['pin_order_status']) && $where['pin_order_status'] != '', function ($query) use ($where) { $query->where('pin_order_status', $where['pin_order_status']); })->when(isset($where['order_sn']) && $where['order_sn'] != '', function ($query) use ($where) { $query->where('order_sn', $where['order_sn']); })->when($where['bill_status'] != '', function ($query) use ($where) { $query->where('bill_status', $where['bill_status']); })->when(isset($where['keywords']) && $where['keywords'] != '', function ($query) use ($where) { $query->whereLike("goods_name|uid", "%" . $where['keywords'] . "%"); }); $count = $query->count(); $list = $query->page($page, $limit)->order('create_time DESC')->select(); $userList = User::whereIn('uid', $list->column('uid'))->column('*', 'uid'); $list->each(function ($value) use ($userList) { $info = $userList[$value['uid']] ?? []; if ($info) { $value['account'] = $info['account']; } else { $value['account'] = '匹配用户不存在'; } return $value; }); return compact('count', 'list'); } /*唯品会订单*/ public function GetVipOrder($where = [], $page = 1, $limit = 10) { $query = Db::name("order_vip"); $query = $query->when(isset($where['date']) && $where['date'] != '', function ($query) use ($where) { getModelTime($query, $where['date']); }) ->when(isset($where['settled']) && $where['settled'] != '', function ($query) use ($where) { $query->where('settled', $where['settled']); })->when(isset($where['order_status']) && $where['order_status'] != '', function ($query) use ($where) { $query->where('order_status', $where['order_status']); })->when(isset($where['order_sn']) && $where['order_sn'] != '', function ($query) use ($where) { $query->where('order_sn', $where['order_sn']); })->when($where['bill_status'] != '', function ($query) use ($where) { $query->where('bill_status', $where['bill_status']); })->when(isset($where['keywords']) && $where['keywords'] != '', function ($query) use ($where) { $query->whereLike("goods_name|uid", "%" . $where['keywords'] . "%"); }); $count = $query->count(); $list = $query->page($page, $limit)->order('order_vip_id DESC')->select()->each(function ($value) { $orderTime = $value['order_time']; // $value['order_time'] = date('Y-m-d H:i:s', $orderTime); //订单关联用户信息 $value['account'] = User::where('uid', $value['uid'])->value('account', '匹配用户不存在'); return $value; }); return compact('count', 'list'); } /*苏宁订单*/ public function GetSuOrder($where = [], $page = 1, $limit = 10) { $query = Db::name("order_su"); $query = $query->when(isset($where['date']) && $where['date'] != '', function ($query) use ($where) { getModelTime($query, $where['date']); })->when(isset($where['status']) && $where['status'] != '', function ($query) use ($where) { $query->where('status', $where['status']); })->when(isset($where['order_sn']) && $where['order_sn'] != '', function ($query) use ($where) { $query->where('order_sn', $where['order_sn']); })->when($where['bill_status'] != '', function ($query) use ($where) { $query->where('bill_status', $where['bill_status']); })->when(isset($where['keywords']) && $where['keywords'] != '', function ($query) use ($where) { $query->whereLike("goods_name|uid", "%" . $where['keywords'] . "%"); }); $count = $query->count(); $list = $query->page($page, $limit)->order('create_time DESC')->select()->each(function ($value) { $orderTime = $value['order_time']; $value['order_time'] = date('Y-m-d H:i:s', $orderTime); $payTime = $value['pay_time']; $value['pay_time'] = date('Y-m-d H:i:s', $payTime); //订单关联用户信息 $value['account'] = User::where('uid', $value['uid'])->value('account', '匹配用户不存在'); return $value; }); return compact('count', 'list'); } /*淘宝订单*/ public function GetTbOrder($where = [], $page = 1, $limit = 10) { $query = Db::name("order_tb"); $query = $query->when(isset($where['date']) && $where['date'] != '', function ($query) use ($where) { getModelTime($query, $where['date']); })->when(isset($where['tk_status']) && $where['tk_status'] != '', function ($query) use ($where) { $query->where('tk_status', $where['tk_status']); })->when(isset($where['order_sn']) && $where['order_sn'] != '', function ($query) use ($where) { $query->where('order_sn', $where['order_sn']); })->when($where['bill_status'] != '', function ($query) use ($where) { $query->where('bill_status', $where['bill_status']); })->when(isset($where['keywords']) && $where['keywords'] != '', function ($query) use ($where) { $query->whereLike("item_title|uid", "%" . $where['keywords'] . "%"); }); $count = $query->count(); $list = $query->page($page, $limit)->order('create_time DESC')->select()->each(function ($value) { $orderTime = $value['create_time']; // $value['create_time'] = date('Y-m-d H:i:s', $orderTime); //淘客订单状态 $tkStatus = $value['tk_status']; $tkStatusName = TbOrderModel::$statusName[$tkStatus] ?? '未知状态'; $value['status_name'] = $tkStatusName; //订单关联用户信息 $value['account'] = User::where('uid', $value['uid'])->value('account', '匹配用户不存在'); return $value; }); return compact('count', 'list'); } /*详情*/ public function GetThirdDetail($id, $table) { $data = Db::name("order_" . $table)->where(['order_' . $table . '_id' => $id])->find(); //养老金修改 $commission = $data['commission']; $yanglao = 0; if ($commission) { $yanglao = app()->make(ProductRepository::class)->yanglaojin(0, $commission); } $data['yanglao'] = $yanglao; switch ($table) { case 'jd': $billEndTime = $data['bill_end_time']; $data['bill_end_time'] = $billEndTime ? date('Y-m-d H:i:s', $billEndTime) : ''; break; case 'vip': $orderTime = $data['order_time']; $data['order_time'] = date('Y-m-d H:i:s', $orderTime); $updateTime = $data['last_update_time']; $data['last_update_time'] = date('Y-m-d H:i:s', $updateTime); $billEndTime = $data['bill_end_time']; $data['bill_end_time'] = $billEndTime ? date('Y-m-d H:i:s', $billEndTime) : ''; break; case 'pdd': $payTime = $data['pay_time']; $data['pay_time'] = $payTime ? date('Y-m-d H:i:s', $payTime) : ''; $groupTime = $data['group_time']; $data['group_time'] = $groupTime ? date('Y-m-d H:i:s', $groupTime) : ''; $billEndTime = $data['bill_end_time']; $data['bill_end_time'] = $billEndTime ? date('Y-m-d H:i:s', $billEndTime) : ''; break; case 'su': $payTime = $data['pay_time']; $data['pay_time'] = $payTime ? date('Y-m-d H:i:s', $payTime) : ''; $billEndTime = $data['bill_end_time']; $data['bill_end_time'] = $billEndTime ? date('Y-m-d H:i:s', $billEndTime) : ''; break; case 'tb': $createTime = $data['create_time']; $data['create_time'] = $createTime ? $createTime : ''; $billEndTime = $data['bill_end_time']; $data['bill_end_time'] = $billEndTime ? date('Y-m-d H:i:s', $billEndTime) : ''; break; } return $data; } /*pdd满足分佣的订单*/ public function pddOrder() { $query = Db::name("order_pdd"); $data = $query->where(['pin_order_status' => 5, 'bill_status' => 0]) ->whereTime("bill_end_time", '<=', time()) ->order('create_time DESC') ->select()->toArray(); return $data; } /*京东满足分佣的订单*/ public function JdOrder() { $query = Db::name("order_jd"); $data = $query->where(['status' => 17, 'bill_status' => 0]) ->whereTime("bill_end_time", '<=', time()) ->order('order_jd_id DESC') ->select()->toArray(); return $data; } /*抖音满足分佣的订单*/ public function dyOrder() { $query = Db::name("order_dy"); $data = $query->where(['flow_point' => 'SETTLE', 'bill_status' => 0]) ->whereTime("bill_end_time", '<=', time()) ->order('order_dy_id DESC') ->select()->toArray(); return $data; } /*苏宁满足分佣的订单*/ public function SuOrder() { $query = Db::name("order_su"); $data = $query->where(['status' => '已结算', 'bill_status' => 0]) ->whereTime("bill_end_time", '<=', time()) ->order('create_time DESC') ->select()->toArray(); return $data; } /** * 添加预估积分记录 */ //预估养老金 public static function yuguJifen($price,$user_id,$order_sn,$type_shop) { if (empty($user_id)) { Db::name('log')->insert(['data' => "type_shop:{$type_shop}, $order_sn, $order_sn, 赠送积分, 不存在用户ID"]); return false; } //查询用户是否已经存在该订单 $user_sign_score_list = Db::name('user_sign_score') ->where('uid', $user_id) ->where('order_type', $type_shop) ->where('order_id', $order_sn) ->find(); if (!empty($user_sign_score_list)) { Db::name('log')->insert(['data' => "type_shop:{$type_shop}, $order_sn, $order_sn, 赠送积分, 订单已存在积分发放记录"]); return false; } Db::name('log')->insert(['data' => "type_shop:{$type_shop}, $order_sn, $order_sn, 赠送积分, $price"]); Db::startTrans(); try { //更新用户积分 $user = Db::name('user')->where('uid', $user_id)->find(); $inc_score = decimal2($price*0.5);//pv=佣金的50%=积分=贡献值 $user_score = $user['score']; $ins_data['uid'] = $user_id; $ins_data['reward_socre'] = $inc_score; $ins_data['addtime'] = time(); $ins_data['status'] = -1; $ins_data['order_type'] = $type_shop; $ins_data['order_id'] = $order_sn; $ins_data['mark'] = "购买三方商品赠送积分"; $ins_data['desc'] = ''; $ins_data['surplus'] = $user_score + $inc_score; $ins_data['type'] = 1; $ins_data['pm'] = 1; $ins_data['source_type'] =3; //更新贡献值 $gongxian_data['uid'] = $user_id; $gongxian_data['number'] = $inc_score; $gongxian_data['addtime'] = time(); $gongxian_data['status'] = -1; $gongxian_data['order_type'] = $type_shop; $gongxian_data['order_id'] = $order_sn; $gongxian_data['mark'] = "购买三方商品赠送贡献值"; $gongxian_data['desc'] = ''; $gongxian_data['surplus'] = $user_score + $inc_score; $gongxian_data['type'] = 1; $gongxian_data['pm'] = 1; $gongxian_data['source_type'] =3; Db::name('user_sign_score')->insertGetId($ins_data);//添加积分记录 Db::name('user_sign_gongxian')->insertGetId($gongxian_data);//添加贡献记录 // // Db::name('user')->where('uid', $user_id)->inc('score', $inc_score)->update(); // Db::name('user')->where('uid', $user_id)->inc('contribute', $inc_score)->update(); Db::commit(); // $now_score= Db::name('user')->where('uid',$user_id)->value('now_score_estimate'); // $now_score_no= Db::name('user')->where('uid',$user_id)->value('now_score'); // Db::name('user')->where('uid',$user_id)->update(['now_score_estimate'=>$now_score+$price]); // $insertDta=[ // 'user_id'=>$user_id, // 'before_price'=>$now_score,//变化前的积分 // 'price'=>$price,//此次变化的积分 // 'after_price'=>$now_score+$price,//变化后的积分 // 'type'=>$type,// 类型 1自营订单 2 第三方订单 3 签到积分 6 其它渠道的积分 // 'third_type'=>$third_type,//第三方的类型 1 淘宝 2 京东 3 唯品会 4 拼多多 5 苏宁易购 // 'other'=>$order_sn,//商城订单 记录订单号 签到记录日期 其它渠道记录获取方式 // 'ctime'=>time(),//创建时间 // 'thaw_time'=>$bill_end_time,//结算的时间 // ]; // $billData=[ // 'uid'=>$user_id, // 'link_id'=>1, // 'pm'=>1, // 'title'=>'平台奖励', // 'category'=>'now_money', // 'type'=>'integral', // 'number'=>$price, // 'balance'=>$now_score_no, // 'mark'=>'购买商品获得积分 比例 1:1', // 'create_time'=>date("Y-m-d H:i:s",time()), // 'status'=>0, // 'order_sn'=>$order_sn, // 'type_shop'=>$type_shop, // 'commission_type'=>8, // 'order_type'=>2 // ]; // Db::name('integral_log')->insert($insertDta); // Db::name('user_bill')->insert($billData); } catch (\Exception $e) { Db::rollback(); return app("json")->fail($e->getMessage()); } } public static function yuguZhitui($commission, $user_id, $type_shop, $order_sn, $order_id) { //查询直推人身份 $user_info = Db::name('user')->where('uid', $user_id)->find(); if (empty($user_info)) { Db::name('log')->insert(['data' => "type_shop:{$type_shop}, $order_sn, 三方订单直推奖, 用户信息不存在"]); return false; } $spread_uid = $user_info['spread_uid']; $spread_info = Db::name('user')->where('uid', $spread_uid)->find(); if (empty($user_info)) { Db::name('log')->insert(['data' => "type_shop:{$type_shop}, $order_sn, 三方订单直推奖, 不存在推荐人"]); return false; } $user_bill = Db::name('user_bill')->where('uid', $spread_uid)->where('order_sn', $order_sn)->where('type_shop', $type_shop)->find(); if (!empty($user_bill)) { Db::name('log')->insert(['data' => "type_shop:{$type_shop}, $order_sn, 订单已分润"]); return false; } $base_commission = 0; if ($spread_info['user_group'] == 2) { $base_commission = 20; } if ($spread_info['user_group'] >= 3) { $base_commission = 30; } if ($base_commission == 0) { Db::name('log')->insert(['data' => "type_shop:{$type_shop}, $order_sn, 三方订单直推奖, 收益比例不能为0"]); return false; } $souxufees=0; $souxufee =floatval(systemConfig('yanglao')); if ($souxufee){ $souxufees = bcmul($commission, $souxufee * 0.01, 3); } $zhitui_money = bcmul($commission-$souxufees,$base_commission/100,3); if (empty($user_id)) { return false; } Db::name('log')->insert(['data' => "type_shop:{$type_shop}, $order_id, 三方订单直推奖, 收益:{$commission},手续费:{$souxufees},分润比例:{$base_commission},最终收益:{$zhitui_money}"]); $StoreOrderRepository = app()->make(StoreOrderRepository::class); $mark = $user_info['nickname'] . '购买商品'; $title = "直推奖".date('m.d'); $commission_type = 3; $StoreOrderRepository->add_bill_gongfu($title, $zhitui_money, $spread_uid, $mark, $commission_type, $order_sn, $order_id, 0, 0, 0, $type_shop); } }