setQueryDefaultValue($param, [ 'betweenTime' => [], // 起止时间 'userId' => 0, // 会员ID 'nickName'=>'', //会员昵称 'mobile'=>'',//手机号码 'role'=>-1,//角色 'clearingStatus'=>-1, //结算状态,0:待结算,1:已结算 2:已退款 'shopName'=>'', //门店 'cityName'=>'' ]); // 检索查询条件 $filter = []; // 用户id $params['userId'] > 0 && $filter[] = ['cm.user_id', '=', (int)$params['userId']]; if(!empty($params['cityName'])){ $region = new RegionModel; $city_id_arr = $region->where('name','like','%'.$params['cityName'].'%')->where('level',2)->column("id"); if(count($city_id_arr)>0){ $filter[] = ['s.city_id','in',$city_id_arr]; } } //会员昵称 if(!empty($params['nickName'])){ $filter[] = ['u.nick_name','like',"%{$params['nickName']}%"]; } //用户手机 !empty($params['mobile']) && $filter[] = ['u.mobile', 'like', "%{$params['mobile']}%"]; //店铺名称 !empty($params['shopName']) && $filter[] = ['s.shop_name', 'like', "%{$params['shopName']}%"]; // 订单号 if (!empty($params['orderNo'])) { $filter[] = ['o.order_no', 'like', "%{$params['orderNo']}%"]; } //角色 if(isset($params['role'])&&$params['role']>-1){ $filter[] = ['cm.role','=',$params['role']]; } // 下单起止时间 if (!empty($params['betweenTime'])) { $times = between_time_format($params['betweenTime']); $filter[] = ['cm.order_create_time', '>=', $times['start_time']]; $filter[] = ['cm.order_create_time', '<', $times['end_time']]; } //结算状态,0:待结算,1:已结算 2:已退款 if(isset($params['clearingStatus'])&&$params['clearingStatus']>-1){ $filter[] = ['cm.clearing_status','=',$params['clearingStatus']]; } return $filter; } public function getList($param){ $filter = $this->getQueryFilter($param); $order = new OrderModel; return CommissionDetail::alias('cm')->where($filter) ->leftJoin('order o','cm.order_id=o.order_id') ->leftJoin('user u','u.user_id=cm.user_id') ->leftJoin('shops s','s.shop_id=cm.shop_id') // ->where('cm.clearing_status',0) ->field('cm.remark,u.nick_name,u.mobile,cm.role,cm.id,cm.order_id,cm.user_id,cm.clearing_money,cm.commission_percent,o.order_no,cm.order_create_time,cm.clearing_status,cm.shop_id,s.shop_name,s.city_id,s.province_id,cm.order_sale_volume')->where("cm.shop_id",">",0) ->paginate(15)->each(function($item) use($order){ $item['order_create_time'] = Date("Y-m-d H:i:s",$item['order_create_time']); $item['shop_name'] = $item['shop_name']??''; $region = ''; if(isset($item['city_id'])){ $province = RegionModel::getNameById($item['province_id']); $city = RegionModel::getNameById($item['city_id']); if($province==$city){ $region = $province; }else{ $region = $province.$city; } } $item['region'] = $region; // $item['remark'] = ''; $order_amount = 0; // $order_id_arr = [$item['order_id']]; // $order_amount = $order->getOrderSellPrice($order_id_arr); $item['order_amount'] = helper::bcadd($item['order_sale_volume'],0,2); $item['role_text'] = CommissionDetail::ROLE[$item['role']]??''; $item['clearing_status_text'] = CommissionDetail::CLEARING_STATUS[$item['clearing_status']]??''; $item['commission_percent'] = $item['commission_percent']."%"; if($item['clearing_status']==2){ $item['clearing_money'] = '0.00'; }else{ $item['clearing_money'] = helper::bcadd($item['clearing_money'],0,2); } }); } /** * 推荐官基本佣金明细 * @param $params * @return mixed * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function commerDetails($params){ $times = null; if (!empty($params['betweenTime'])){ $times = between_time($params['betweenTime']); } $where[] = ['commission_detail.is_delete','=',0]; $where[] = ['user.role','=',User::COMMISSION_USER]; if (!empty($params['userId']) && $params['userId'] >0 )$where[] = ['commission_detail.user_id','=', $params['userId']]; if (!empty($params['nickName']))$where[] = ['user.nick_name', 'like','%'.$params['nickName'].'%']; if (!empty($params['mobile']))$where[] = ['user.mobile', 'like','%'.$params['mobile'].'%']; if (!empty($params['sellerGrade']) && $params['sellerGrade'] >0)$where[] = ['user.seller_grade','=', $params['sellerGrade']]; if (!empty($params['cLevel']) && $params['cLevel'] >0)$where[] = ['commission_detail.commission_level','=', $params['cLevel']]; if (!empty($params['orderNo']))$where[] = ['order.order_no', 'like','%'.$params['orderNo'].'%']; if (isset($params['clearingStatus']) && intval($params['clearingStatus']) >=0)$where[] = ['commission_detail.clearing_status','=', $params['clearingStatus']]; if ($times){ $where[] = ['commission_detail.order_create_time','>=', $times['start_time']]; $where[] = ['commission_detail.order_create_time','<=', $times['end_time']]; } return self::alias('commission_detail') ->leftJoin('user user','commission_detail.user_id=user.user_id') ->leftJoin('order order','commission_detail.order_id=order.order_id') ->where($where) ->field('user.user_id,user.nick_name,user.mobile,order.order_no, commission_detail.id,commission_detail.order_id,commission_detail.clearing_money,commission_detail.clearing_status, commission_detail.commission_level,commission_detail.seller_grade,commission_detail.commission_percent,commission_detail.order_sale_volume, commission_detail.order_create_time,commission_detail.remark,order.staff_user_id') ->order('commission_detail.id desc') ->paginate(15)->each(function(&$item){ $item->order_create_time = date('Y-m-d H:i:s',$item->order_create_time); $item->down_user = null; if ($item->commission_level == 2){ /* $firstUserId = self::where('order_id',$item->order_id)->where('commission_level',1) ->field('user_id')->find();*/ $item->down_user = \app\store\model\User::where('user_id',$item->staff_user_id) ->field('user_id,nick_name,mobile')->find(); } if ($item->clearing_status == 2){ $item->clearing_money = 0.0000; } }); } }