<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台(PHP版)
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用,可去除界面版权logo
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
// | github下载:https://github.com/likeshop-github/likeadmin
// | 访问官网:https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------

namespace app\adminapi\lists\informationg;


use app\adminapi\lists\BaseAdminDataLists;
use app\common\model\informationg\UserInformationg;
use app\common\model\informationg\UserInformationgDemand;
use app\common\lists\ListsSearchInterface;


/**
 * UserInformationg列表
 * Class UserInformationgLists
 * @package app\adminapi\listsinformationg
 */
class UserInformationgLists extends BaseAdminDataLists implements ListsSearchInterface
{


    /**
     * @notes 设置搜索条件
     * @return \string[][]
     * @author likeadmin
     * @date 2023/08/01 15:00
     */
    public function setSearch(): array
    {
        return [
            '=' => ['create_user_id', 'user_id', 'area_id', 'street_id', 'village_id', 'brigade_id', 'address', 'name', 'phone', 'sex', 'age', 'wechat', 'family', 'child', 'child_arr', 'highway', 'smart_phone', 'status'],
        ];
    }


    /**
     * @notes 获取列表
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     * @author likeadmin
     * @date 2023/08/01 15:00
     */
    public function lists(): array
    {
        $lists = UserInformationg::where($this->searchWhere)
            ->field(['id','create_user_id','company_id','area_id','area_id area_name','street_id','street_id street_name','village_id','village_id village_name', 'brigade_id','brigade_id brigade_name', 'address', 'name', 'phone', 'sex', 'age','update_time','create_time','status'])
            ->append(['extend'])
            ->order(['id' => 'desc'])
            ->limit($this->limitOffset, $this->limitLength)
            ->select()
            ->toArray();
        $informationIdArray = [];
        foreach($lists as $k=>$v) {
            $informationIdArray[] = $v['id'];
        }
        $data = UserInformationgDemand::whereIn('information_id', $informationIdArray)->order('id', 'desc')->select();
        $aianalyseArray = [];
        foreach($data as $kk=>$vv) {
            if (!empty($vv['ai_aianalyse'])) {
                $aianalyseArray[$vv['information_id']][] = $vv['id'];
            }
        }
        foreach($lists as $k=>$v) {
            $lists[$k]['aianalyse_status'] = 0;
            if (!empty($aianalyseArray[$v['id']])) {
                $lists[$k]['aianalyse_status'] = 1;
            }
        }
        return $lists;
    }


    /**
     * @notes 获取数量
     * @return int
     * @author likeadmin
     * @date 2023/08/01 15:00
     */
    public function count(): int
    {
        return UserInformationg::where($this->searchWhere)->count();
    }

}