[ ''], '%like%'=>['tenant_name','tenant_mobile'], ]; } /** * @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 { $admin_info = $this->adminInfo; $parms = $this->request->get(); $where = [] ; if(!empty($parms)) { if(isset($parms['asset_name'])) { if (!empty($parms['asset_name'])) { $awhere = []; $awhere[] = ['name', 'like', '%' . $parms['asset_name'] . '%']; $assetList = AssetInfo::where($awhere)->select()->toArray(); $a_id_Arr = array_column($assetList, 'id'); $where[] = ['a_id', 'in', $a_id_Arr]; } } if(isset($parms['date_type'])) { if (!empty($parms['start_time']) && !empty($parms['end_time'])) { if($parms['date_type'] == 1){ $where[] = ['create_time', 'between', [strtotime($parms['start_time']),strtotime($parms['end_time']. ' 23:59:59')]]; }else if($parms['date_type'] == 2){ $where[] = ['lease_start_time', '>=', $parms['start_time']]; $where[] = ['lease_end_time', '<=', $parms['end_time']]; } } } if(isset($parms['approval_status'])) { if ($parms['approval_status']) { $where[] = ['approval_status', '=', $parms['approval_status']]; } } } if(!$admin_info['root']) { // $where[] = ['lease_start_time', '>=', $parms['start_time']]; $jwhere = []; $jwhere[] = ['admin_id', '=', $admin_info['admin_id']]; $jobs_list = AdminJobs::where($jwhere)->select()->toArray(); $all = false; $first = false; $second = false; foreach ($jobs_list as $v) { switch ($v['jobs_id']) { case 1: $all = true; break; case 2: $first = true; break; case 3: $second = true; break; } } if (!$all) { if(!($first && $second)){ if($first){ $where[] = ['approval_status','in',[1,2]]; } if($second){ $where[] = ['approval_status','in',[3,4,5]]; } } } } $lists = (new AssetLeaseInfo())->field('*') ->append(['first_status_desc','second_status_desc','approval_status_desc']) ->with('asset') ->with('referee') ->where($where) ->where($this->searchWhere) ->limit($this->limitOffset, $this->limitLength) ->Order('id desc') ->select() ->toArray(); foreach($lists as &$v){ $v['first_name'] = adminModel::where(['id'=>$v['first_uid']])->value('name') ?? ''; $v['second_name'] = adminModel::where(['id'=>$v['second_uid']])->value('name') ?? '' ; } return $lists; } /** * @notes 资产信息数量 * @return int * @author ljj * @date 2022/2/16 3:18 下午 */ public function count(): int { $parms = $this->request->get(); $where = [] ; if(!empty($parms)) { if(isset($parms['asset_name'])) { if (!empty($parms['asset_name'])) { $awhere = []; $awhere[] = ['name', 'like', '%' . $parms['asset_name'] . '%']; $assetList = AssetInfo::where($awhere)->select()->toArray(); $a_id_Arr = array_column($assetList, 'id'); $where[] = ['a_id', 'in', $a_id_Arr]; } } if(isset($parms['date_type'])) { if (!empty($parms['start_time']) && !empty($parms['end_time'])) { if($parms['date_type'] == 1){ $where[] = ['create_time', 'between', [strtotime($parms['start_time']),strtotime($parms['end_time']. ' 23:59:59')]]; }else if($parms['date_type'] == 2){ $where[] = ['lease_start_time', '>=', $parms['start_time']]; $where[] = ['lease_end_time', '<=', $parms['end_time']]; } } } if(isset($parms['approval_status'])) { if ($parms['approval_status']) { $where[] = ['approval_status', '=', $parms['approval_status']]; } } } return (new AssetLeaseInfo())->where($this->searchWhere)->where($where)->count(); } /** * @notes 添加租赁资产订单 * @param array $params * @author heshihu * @date 2022/2/22 9:57 */ public static function add(array $params) { if ($params['lease_end_time']<$params['lease_start_time']) { return ['code' => 0, 'msg' => '租赁时间范围有误请检查!']; } $where = []; $where[] = ['lease_end_time', '>=', $params['lease_start_time']]; $where[] = ['a_id', '=', $params['a_id']]; $assetLeaseInfo = AssetLeaseInfo::where($where)->findOrEmpty(); if (!$assetLeaseInfo->isEmpty()) { return ['code' => 0, 'msg' => '租赁期内有未到期的租赁信息!']; } AssetLeaseInfo::create([ 'a_id' => $params['a_id'], 'tenant_name' => $params['tenant_name'] ?? '', 'tenant_mobile' => $params['tenant_mobile'] ?? '', 'license_number' => $params['license_number'] ?? '', 'license_image' => $params['license_image'] ?? '', 'lease_contract_image' => $params['lease_contract_image'] ?? '', 'lease_money' => $params['lease_money'] ?? 0, 'lease_start_time' => $params['lease_start_time'] ?? '', 'lease_end_time' => $params['lease_end_time'] ?? '', // 联系人 'purpose' => $params['purpose'] ?? '', 'referee_name' =>$params['referee_name'], 'referee_uid' =>$params['referee_uid'], 'remark' => $params['remark'] ?? '', ]); return ['code' => 200, 'msg' => '新增租赁信息成功!']; } /** * @notes 编辑租赁信息资产 * @param array $params * @return bool * @author heshihu * @date 2022/2/22 10:12 */ public static function edit(array $params) : bool { try { if ($params['lease_end_time']<$params['lease_start_time']) { throw new \Exception('租赁时间范围有误请检查'); } $where = []; $where[] = ['lease_end_time', '>=', $params['lease_start_time']]; $where[] = ['id', '<>', $params['id']]; $where[] = ['a_id', '=', $params['a_id']]; $assetLeaseInfo = AssetLeaseInfo::where($where)->findOrEmpty(); if (!$assetLeaseInfo->isEmpty()) { throw new \Exception('租赁期内有未到期的租赁信息'); } AssetLeaseInfo::update([ 'id'=>$params['id'], 'a_id' => $params['a_id'], 'tenant_name' => $params['tenant_name'] ?? '', 'tenant_mobile' => $params['tenant_mobile'] ?? '', 'license_number' => $params['license_number'] ?? '', 'license_image' => $params['license_image'] ?? '', 'lease_contract_image' => $params['lease_contract_image'] ?? '', 'lease_money' => $params['lease_money'] ?? 0, 'lease_start_time' => $params['lease_start_time'] ?? '', 'lease_end_time' => $params['lease_end_time'] ?? '', // 联系人 'purpose' => $params['purpose'] ?? '', 'referee_name' =>$params['referee_name'], 'referee_uid' =>$params['referee_uid'], 'remark' => $params['remark'] ?? '', 'first_status'=>$params['first_status'] ?? 1, 'first_uid'=>$params['first_uid'] ?? 0, 'second_status'=>$params['second_status'] ?? 0, 'second_uid'=>$params['second_uid'] ?? 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) { AssetInfo::destroy($params['id']); } /** * @notes 查看资产详情 * @param $params * @return array * @author heshihu * @date 2022/2/22 10:15 */ public static function detail($params) : array { return AssetLeaseInfo::with('asset')->findOrEmpty($params['id'])->append(['first_status_desc','second_status_desc'])->toArray(); } }