value('real_name'); } public function getMerAdminIdAttr($value) { return MerchantAdmin::where('merchant_admin_id',$value)->value('real_name'); } public function searchFinancialIdAttr($query,$value) { $query->where('financial_id',$value); } public function searchMerIdAttr($query,$value) { $query->where('mer_id',$value); } public function searchStatusAttr($query,$value) { $query->where('status',$value); } public function searchFinancailStatusAttr($query,$value) { $query->where('financial_status',$value); } public function searchFinancailTypeAttr($query,$value) { $query->where('financial_type',$value); } public function searchKeywordsAttr($query,$value) { $query->whereLike('keywords',"%{$value}%"); } public function searchDateAttr($query,$value) { getModelTime($query,$value); } public function searchIsDelAttr($query,$value) { $query->where('is_del',$value); } public function merchant() { return $this->hasOne(Merchant::class,'mer_id','mer_id'); } /** * TODO 商户列表 * @param array $where * @param int $page * @param int $limit * * @return array */ public function getAdminList(array $where,int $page,int $limit) { $where['is_del'] = 0; $query = $this->search($where)->with([ 'merchant' => function($query){ $query->field('mer_id,mer_name,is_trader,mer_avatar,type_id,mer_phone,mer_address,is_margin,margin,real_name'); $query->with([ 'merchantType', 'marginOrder' => function($query){ $query->field('order_id,order_sn,pay_price')->where('status',10); } ]); } ]); $count = $query->count(); $list = $query->page($page, $limit)->select(); return compact('count','list'); } /** * 组合sql条件 * @param array $where * @return object Query */ protected function search(array $where) { $query = Financial::hasWhere('merchant',function($query) use ($where){ $query->when(isset($where['is_trader']) && $where['is_trader'] !=='',function($query) use($where){ $query->where('is_trader',$where['is_trader']); }); $query->when(isset($where['type_id']) && $where['type_id'] !=='',function($query) use($where){ $query->where('type_id',$where['type_id']); }); $query->when(isset($where['category_id']) && $where['category_id'] !=='',function($query) use($where){ $query->where('category_id',$where['category_id']); }); $query->where('is_del',0); }); $query->when(isset($where['status']) && $where['status'] !=='',function($query) use($where){ $query->where('Financial.status',$where['status']); }) ->when(isset($where['financial_type']) && $where['financial_type'] !=='',function($query) use($where){ $query->where('Financial.financial_type',$where['financial_type']); }) ->when(isset($where['mer_id']) && $where['mer_id'] !=='',function($query) use($where){ $query->where('Financial.mer_id',$where['mer_id']); }) ->when(isset($where['financial_status']) && $where['financial_status'] !=='',function($query) use($where){ $query->where('Financial.financial_status',$where['financial_status']); }) ->when(isset($where['keyword']) && $where['keyword'] !=='',function($query) use($where){ $query->join('SystemAdmin A','Financial.admin_id = A.admin_id') ->field('A.real_name,A.admin_id,A.account') ->whereLike('A.real_name|A.account',"%{$where['keyword']}%"); }) ->when(isset($where['keywords_']) && $where['keywords_'] !=='',function($query) use($where){ $query->join('MerchantAdmin M','Financial.mer_admin_id = M.merchant_admin_id') ->field('M.real_name,M.account,M.merchant_admin_id') ->whereLike('M.real_name|M.account',"%{$where['keywords_']}%"); }) ->when(isset($where['financial_id']) && $where['financial_id'] !=='',function($query) use($where){ $query->where('Financial.financial_id',$where['financial_id']); }) ->when(isset($where['date']) && $where['date'] !=='',function($query) use($where){ getModelTime($query,$where['date'],'Financial.create_time'); }) ->when(isset($where['is_del']) && $where['is_del'] !=='',function($query) use($where){ $query->where('Financial.is_del',$where['is_del']); }) ->when(isset($where['type']) && $where['type'] !=='',function($query) use($where){ $query->where('Financial.type',$where['type']); });; $query->order('Financial.create_time DESC'); return $query; } }