<?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\property;


use app\adminapi\lists\BaseAdminDataLists;
use app\common\model\property\PropertyHead;
use app\common\lists\ListsSearchInterface;
use app\common\model\sale\Sale;


/**
 * PropertyHead列表
 * Class PropertyHeadLists
 * @package app\adminapi\lists
 */
class PropertyHeadLists extends BaseAdminDataLists implements ListsSearchInterface
{


    /**
     * @notes 设置搜索条件
     * @return \string[][]
     * @author likeadmin
     * @date 2024/09/19 10:48
     */
    public function setSearch(): array
    {
        return [
            '=' => ['is_cooperate','type','sale_type','sale_id','property_name', 'village_name', 'address', 'head_name', 'head_mobile', 'ratio', 'head_bank_card', 'remark', 'user_id', 'all_profit_amount', 'surplus_profit_amount', 'extract_profit_amount'],

        ];
    }

    /**
     * 获取数据权限
     * $this->adminInfo['data_rules']
     * province city admin_id sale_group_id sale_id  property_head_id
     */
    public function queryDataWhere(){
        $where = [];
        $data_rules = $this->adminInfo['data_rules'];
        if (isset($data_rules['province']) && !empty($data_rules['province'])) {
            $where[] = ['province','in' ,$data_rules['province']];
        }
        if (isset($data_rules['city']) && !empty($data_rules['city'])) {
            $where[] = ['city','in' ,$data_rules['city']];
        }
        if (isset($data_rules['sale_group_id']) && !empty($data_rules['sale_group_id'])) {
            $sale_ids = Sale::where('sale_group_id','in',$data_rules['sale_group_id'])->column('id')??[];
            $where[] = ['sale_id','in' ,$sale_ids];
        }
        if (isset($data_rules['sale_id']) && !empty($data_rules['sale_id'])) {
            $where[] = ['sale_id','in' ,$data_rules['sale_id']];
        }
        if (isset($data_rules['property_head_id']) && !empty($data_rules['property_head_id'])) {
            $where[] = ['id','in' ,$data_rules['property_head_id']];
        }
        return $where;
    }
    /**
     * @notes 获取列表
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     * @author likeadmin
     * @date 2024/09/19 10:48
     */
    public function lists(): array
    {
        return PropertyHead::where($this->searchWhere)->where($this->queryDataWhere())
            ->field(['*'])
            ->limit($this->limitOffset, $this->limitLength)
            ->order(['id' => 'desc'])
            ->select()
            ->toArray();
    }


    /**
     * @notes 获取数量
     * @return int
     * @author likeadmin
     * @date 2024/09/19 10:48
     */
    public function count(): int
    {
        return PropertyHead::where($this->searchWhere)->where($this->queryDataWhere())->count();
    }
    public function setExcelComplexFields(): array
    {
        $zh_cn_fields = [
            '是否合作','代理名称','小区名称','小区地址','负责人名称', '负责人手机号',
            '提成比例','对公账户名称','对公银行','对公银行卡号','备注','代理人类型','注册用户ID',
            '总收益金额(累计)','剩余收益金额','已提收益金额(累计)','经度','纬度','绑定天数'
        ];
        $data_fields = [function($row){
                                    switch ($row['is_cooperate']){
                                        case 1:
                                            return '合作中';
                                        case 2:
                                            return '已结束';
                                        case 3:
                                            return '待审核';
                                        case 4:
                                            return '不通过';
                                        default:
                                            return '';
                                    }
        },'property_name','village_name','address','head_name','head_mobile',
            'ratio','corporate_bank_name','head_corporate_bank','head_bank_card','remark',
            function($row){
                switch ($row['type']){
                    case 1:
                        return '常规代理人';
                    case 2:
                        return '拼团对接代理人';
                    default:
                        return '';
                }
            },
            'user_id',
            'all_profit_amount','surplus_profit_amount','extract_profit_amount','lon','lat','bind_date'];
        return [
            'zh_cn_fields' => $zh_cn_fields,
            'data_fields' => $data_fields
        ];
    }
}