['area_id', 'lease_status'], '%like%'=>['name'], ]; } /** * @notes 资产信息列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author ljj * @date 2022/2/16 3:18 下午 */ public function lists(): array { $parms = $this->request->get(); $where=[]; if (!empty($parms['create_time_start']) && !empty($parms['create_time_end'])) { $where[] = ['create_time', 'between', [strtotime($parms['create_time_start']), strtotime($parms['create_time_end'] . ' 23:59:59')]]; } $lists = (new AssetInfo())->field('id,name,address,images,contacts,mobile,area,content,status,lease_status,lease_expiration_time,create_time,sort') ->append(['status_desc','lease_status_desc']) ->where($this->searchWhere) ->where($where) ->limit($this->limitOffset, $this->limitLength) ->Order('sort desc') ->select() ->toArray(); return $lists; } /** * @notes 资产信息数量 * @return int * @author ljj * @date 2022/2/16 3:18 下午 */ public function count(): int { return (new AssetInfo())->where($this->searchWhere)->count(); } /** * @notes 添加资产 * @param array $params * @author heshihu * @date 2022/2/22 9:57 */ public static function add(array $params) { AssetInfo::create([ 'name' => $params['name'], 'images' => $params['images'] ?? '', 'address' => $params['address'] ?? '', 'contacts' => $params['contacts']?? '', // 联系人 'mobile' => $params['mobile'] ?? '', 'area' => $params['area'] ?? '', 'content' => $params['content'] ?? '', // 'image' => $params['image'] ? FileService::setFileUrl($params['image']) : '', 'lease_expiration_time'=>$params['lease_expiration_time'] ?? '', 'status' => $params['status'] ?? 1, 'area_id' => $params['area_id'] ?? 0, 'sort' => $params['sort'] ?? 0, // 排序 ]); } /** * @notes 编辑资产 * @param array $params * @return bool * @author heshihu * @date 2022/2/22 10:12 */ public static function edit(array $params) : bool { try { AssetInfo::update([ 'id' => $params['id'], 'name' => $params['name'], 'images' => $params['images'], 'address' => $params['address'], 'contacts' => $params['contacts'], 'mobile' => $params['mobile'], 'area' => $params['area'] ?? '', 'content' => $params['content'] ?? '', 'status' => $params['status'] ?? 1, 'sort' => $params['sort'] ?? 0, 'content' => $params['content'] ?? '', 'area_id' => $params['area_id'] ?? 0, ]); return true; } catch (\Exception $e) { self::setError($e->getMessage()); return false; } } /** * @notes 删除资产 * @param array $params * @author heshihu * @date 2022/2/22 10:17 */ public static function delete(array $params) { $ret = AssetInfo::destroy($params['id']); if($ret){ $where['a_id'] = $params['id']; $rets =AssetLeaseInfo::destroy($where); } } /** * @notes 查看资产详情 * @param $params * @return array * @author heshihu * @date 2022/2/22 10:15 */ public static function detail($params) : array { return AssetInfo::findOrEmpty($params['id'])->append(['status_desc','lease_status_desc'])->toArray(); } public static function getRentAssetList($params) : array { $where = [] ; if(!empty($params)){ $where[]=['name','like','%'.$params['name'].'%']; } $where[]=['status','=',1]; $where[]=['lease_status','in',[1,3]]; $assetList = AssetInfo::where($where)->field('id,name,area')->select()->toArray(); return $assetList; } public static function getAssetData():array { $where = [] ; $where[]=['status','=',1]; $assetList = AssetInfo::where($where)->field('lease_status,count(id) total_number')->append(['lease_status_desc'])->group('lease_status')->select()->toArray(); $all_lease_status = AssetEnum::LEASE_STATTUS_SCENE; $lease_satus = array_column($assetList,'lease_status'); $diff_lease_satus = array_diff($all_lease_status, $lease_satus); if(!empty($diff_lease_satus)){ foreach($diff_lease_satus as $dv){ $pushData['lease_status_desc'] = AssetEnum::getLeaseStatusDesc($dv); $pushData['lease_status'] = $dv; $pushData['total_number'] = 0; $assetList[]=$pushData; } } $totalNumber = sumValues($assetList,'total_number'); $leave_unused = 0; foreach($assetList as $av){ if($av['lease_status'] == 1){ $leave_unused = $av['total_number']; } } $unused_rate = $totalNumber?round(($leave_unused/$totalNumber*100),2):100; $return_data['leave_unused_num'] = $leave_unused; $return_data['unused_rate'] = $unused_rate; $return_data['asset_list'] = $assetList; //费用 $leaseinfo = AssetLeaseInfo::field('count(id) value,is_pay')->where(['approval_status'=>5])->group('is_pay')->select()->toArray(); foreach($leaseinfo as &$v){ switch ($v['is_pay']){ case 1: $v['name'] = '已缴费'; break; case 0: $v['name'] = '未缴费'; break; case 2: $v['name'] = '部分缴费'; break; } unset($v['is_pay']); } $return_data['pay_info'] = $leaseinfo; return $return_data; } }