| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341 | <?phpnamespace app\admin\controller;use app\admin\BaseController;use app\common\model\Config;use app\common\model\User as UserModel;use app\common\model\Worker as WorkerModel;use app\common\model\Agent as AgentModel;use app\common\model\Broker as BrokerModel;use app\common\model\Resident as ResidentModel;use app\common\model\BrokerForm as BrokerFormModel;use app\common\validate\Broker as BrokerValidate;use think\exception\ValidateException;class Broker extends BaseController{    public function brokerList()    {        $workerlist = WorkerModel::order(['id' => 'desc'])->select();        $agentlist  = AgentModel::order(['id' => 'desc'])->select();        return view('broker/brokerlist', [            'workerlist' => $workerlist,            'agentlist'  => $agentlist,        ]);    }    public function brokerForm()    {        $id         = input('id/d, 0');        $broker     = BrokerModel::findOrEmpty($id);        $workerlist = WorkerModel::with(['agent', 'muser'])->order(['id' => 'desc'])->select();        return view('broker/brokerform', [            'workerlist' => $workerlist,            'broker'     => $broker,        ]);    }    public function editBroker()    {        $id   = input('id/d');        $data = [            'title'       => input('title/s', ""),            'mobile'      => input('mobile/s', ""),            'weixin'      => input('weixin/s', ""),            'qq'          => input('qq/s', ""),            'province'    => input('province/s', ""),            'city'        => input('city/s', ""),            'district'    => input('district/s', ""),            'details'     => input('details/s', ""),            'powerreport' => input('powerreport/d') == 1 ? 1 : 2,            'status'      => input('status/d') == 1 ? 1 : 2,        ];        if (empty($id)) {            $vdata = [                'id'     => $id,                'mobile' => input('mobile/s'),            ];            try {                validate(BrokerValidate::class)->check($vdata);            } catch (ValidateException $e) {                exit(json_encode([                    'code' => 1,                    'msg'  => $e->getError(),                ]));            }            $muser = UserModel::where(['mobile' => input('musermobile/s', '')])->findOrEmpty();            if ($muser->isEmpty()) {                exit(json_encode([                    'code' => 1,                    'msg'  => "关联的用户不存在。",                ]));            }            $workeragentarr = explode(",", input('workeragent/s'));            $workerid       = isset($workeragentarr[0]) ? $workeragentarr[0] : 0;            $agentid        = isset($workeragentarr[1]) ? $workeragentarr[1] : 0;            if (empty($workerid) || empty($agentid)) {                exit(json_encode([                    'code' => 1,                    'msg'  => "请选择劳务公司和代理门店。",                ]));            }            $broker_user = BrokerModel::where('userid', $muser->id)->find();            if (!empty($broker_user)) {                exit(json_encode([                    'code' => 1,                    'msg'  => "该用户已是经纪人。",                ]));            }            $data['userid']     = $muser->id;            $data['workerid']   = $workerid;            $data['agentid']    = $agentid;            $data['createtime'] = time();            $broker             = BrokerModel::create($data);            event('brokerAdd', $broker);        } else {            $broker = BrokerModel::find($id);            $broker->save($data);        }        exit(json_encode([            'code' => 0,        ]));    }    public function fieldBroker()    {        $id     = input('id/d', 0);        $broker = BrokerModel::findOrEmpty($id);        if ($broker->isEmpty()) {            exit(json_encode([                'code' => 1,                'msg'  => "信息不存在",            ]));        } else {            $broker->save([                input('field/s') => input('value'),            ]);        }        exit(json_encode([            'code' => 0,        ]));    }    public function delBroker()    {        $access_admin = session('access_admin');        $password     = input('password');        if ($access_admin['password'] !== md5($password)) {            exit(json_encode([                'code' => 1,                'msg'  => "操作密码验证失败",            ]));        }        $idarr      = input('idarr/a');        $user_check = UserModel::whereIn('brokerid', $idarr)->findOrEmpty();        if (!empty($user_check)) {            exit(json_encode([                'code' => 1,                'msg'  => "该经纪人还有下线,请先转移再删除",            ]));        }        $user_ids       = BrokerModel::whereIn('id', $idarr)->column('userid');        $resident_check = ResidentModel::whereIn('userid', $user_ids)->findOrEmpty();        if (empty($resident_check)) {            exit(json_encode([                'code' => 1,                'msg'  => "该经纪人是驻场老师,请取消驻场老师资格",            ]));        }        $result = BrokerModel::whereIn('id', $idarr)->delete();        if ($result) {            exit(json_encode([                'code' => 0,                'msg'  => "",            ]));        }        exit(json_encode([            'code' => 1,            'msg'  => "删除失败,请稍后重试",        ]));    }    public function listBroker()    {        $limit    = input('limit/d', 20);        $page     = input('page/d', 1);        $map      = [];        $keywords = input('keywords/s');        if (!empty($keywords)) {            $map[] = ['title', 'like', '%' . $keywords . '%'];        }        $status = input('status/d');        if (!empty($status)) {            $map[] = ['status', '=', $status];        }        $workerid = input('workerid/d');        if (!empty($workerid)) {            $map[] = ['workerid', '=', $workerid];        }        $list  = BrokerModel::with(['worker', 'agent', 'muser'])->withCount(['user'])->where($map)->order('id', 'DESC')->limit($limit)->page($page)->append(['status_text', 'powerreport_text'])->select();        $count = BrokerModel::where($map)->count();        if ($count == 0) {            exit(json_encode([                'code' => 1,                'msg'  => "未查询到数据",            ]));        }        exit(json_encode([            'code'  => 0,            'msg'   => "",            'count' => $count,            'data'  => $list,        ]));    }    // 申请注册经纪人    public function fbrokerList()    {        return view('broker/fbrokerlist');    }    public function fbrokerForm()    {        $id      = input('id/d, 0');        $fbroker = BrokerFormModel::findOrEmpty($id);        return view('broker/fbrokerform', [            'fbroker' => $fbroker,        ]);    }    public function editFbroker()    {        $id      = input('id/d');        $fbroker = BrokerFormModel::findOrEmpty($id);        $fbroker->save([            'realname'    => input('realname/s', ""),            'mobile'      => input('mobile/s', ""),            'address'     => input('address/s', ""),            'idcard'      => input('idcard/s', ""),            'recommender' => input('recommender/s', ""),            'status'      => input('status/d', 1),            'remark'      => input('remark/s', ""),            'createtime'  => input('createtime/s', ""),        ]);        exit(json_encode([            'code' => 0,        ]));    }    public function fieldFbroker()    {        $id   = input('id/d', 0);        $info = BrokerFormModel::findOrEmpty($id);        if ($info->isEmpty()) {            exit(json_encode([                'code' => 1,                'msg'  => "信息不存在",            ]));        } else {            $info->save([                input('field/s') => input('value'),            ]);        }        exit(json_encode([            'code' => 0,        ]));    }    public function delFbroker()    {        $idarr   = input('idarr/a');        $fbroker = BrokerFormModel::whereIn('id', $idarr)->select();        $result  = $fbroker->delete();        if ($result) {            exit(json_encode([                'code' => 0,                'msg'  => "",            ]));        }        exit(json_encode([            'code' => 1,            'msg'  => "删除失败,请稍后重试",        ]));    }    public function listFbroker()    {        $limit    = input('limit');        $page     = input('page');        $map      = [];        $keywords = input('keywords/s');        if (!empty($keywords)) {            $map[] = ['realname|mobile', 'like', '%' . $keywords . '%'];        }        $status = input('status/d');        if (!empty($status)) {            $map[] = ['status', '=', $status];        }        $list  = BrokerFormModel::where($map)->order('id', 'DESC')->limit($limit)->page($page)->append(['status_text', 'powerreport_text'])->select();        $count = BrokerFormModel::where($map)->count();        if ($count == 0) {            exit(json_encode([                'code' => 1,                'msg'  => "未查询到数据",            ]));        }        exit(json_encode([            'code'  => 0,            'msg'   => "",            'count' => $count,            'data'  => $list,        ]));    }    public function brokerdefault()    {        $broker_id = Config::getConfigValue("default_broker");        $broker    = [];        if (!empty($broker_id)) {            $broker = BrokerModel::where('id', $broker_id)->find();        }        return view('broker/brokerdefault', [            'broker' => $broker,        ]);    }    public function brokerajax()    {        $keyword = input('keyword');        $list    = BrokerModel::where('title|mobile', 'like', "%{$keyword}%")->limit(10)->select();        exit(json_encode([            'code' => 0,            'msg'  => "",            'data' => $list,        ]));    }    public function editdefault()    {        $brokerid = input('brokerid/d',0);        if (empty($brokerid)) {            exit(json_encode([                'code' => 1,                'msg'  => "请选择经纪人",            ]));        }        Config::setConfigValue('default_broker',$brokerid);        exit(json_encode(['code'  => 0]));    }}
 |