['c.org_id', 'c.dept_id', 'c.name', 'c.custom_type', 'c.phone', 'c.credit_rating', 'c.province', 'c.city', 'c.status'], ]; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2023/11/11 22:10 */ public function lists(): array { return Db::name('Custom')->alias('c') ->where($this->searchWhere) ->whereNull('c.delete_time') ->leftJoin('orgs o','o.id = c.org_id') ->leftJoin('dept d','d.id = c.dept_id') ->field('c.*, d.name as dept_name, o.name as org_name') ->limit($this->limitOffset, $this->limitLength) ->order(['c.id' => 'desc']) ->select()->each(function($item, $key){ //关联数据后续添加 if (!empty($item['other_contacts'])) { $otherContactsArray = json_decode($item['other_contacts'], true); if (is_array($otherContactsArray)) { $item['other_contacts'] = $otherContactsArray; } } $item['last_follow_date'] = '-'; $item['next_follow_date'] = '-'; $customFollow = CustomFollow::where('custom_id', $item['id'])->order('id', 'desc')->limit(1)->findOrEmpty(); if (!$customFollow->isEmpty()) { $interval = date_diff(date_create($customFollow['date']), date_create(date('Y-m-d H:i:s'))); if ($interval->days <= 3) { $item['last_follow_date'] = $interval->days . '天内'; } else if ($interval->days <= 7) { $item['last_follow_date'] = '1周内'; } else if ($interval->days <= 30) { $item['last_follow_date'] = '30天内'; } else if ($interval->days <= 60) { $item['last_follow_date'] = '60天内'; } else { $item['last_follow_date'] = '超过60天内'; } $item['next_follow_date'] = $customFollow['next_follow_date']; } return $item; }) ->toArray(); } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2023/11/11 22:10 */ public function count(): int { return Db::name('Custom')->alias('c') ->where($this->searchWhere) ->whereNull('c.delete_time') ->leftJoin('orgs o','o.id = c.org_id') ->leftJoin('dept d','d.id = c.dept_id')->count(); } }