fetch(); } /** * 机构申请列表获取 * @return * */ public function lecturer_enter_list() { $where = parent::getMore([ ['page', 1], ['limit', 20], ['title', ''], ['entry_type',2 ] ]); return JsonService::successlayui(UserInstitutionModel::getLecturerList($where)); } /** * 删除机构申请 * @param int $id 修改的主键 * @return json * */ public function delete($id = 0) { if (!$id) return JsonService::fail('缺少参数'); if (UserInstitutionModel::delLecturer($id)) return JsonService::successful('删除成功'); else return JsonService::fail(UserInstitutionModel::getErrorInfo('删除失败')); } /**查看申请 * @param int $id * @return mixed */ public function see($id = 0) { $this->assign(['id' => $id]); return $this->fetch(); } /**申请数据 * @param $id * @throws \think\exception\DbException */ public function getUserEnter($id) { $data = UserInstitutionModel::get($id); $data['label'] = json_decode($data['label']); if ($data['charter']) { $data['charter'] = json_decode($data['charter']); } else { $data['charter'] = []; } $data['certificate'] = json_decode($data['certificate'],true); return JsonService::successful($data); } /**不通过 * @param $id * @throws \think\exception\DbException */ public function fail($id) { $fail_msg = parent::postMore([ ['message', ''], ]); if (!UserInstitutionModel::be(['id' => $id, 'status' => 0])) return JsonService::fail('操作记录不存在或状态错误!'); $enter = UserInstitutionModel::get($id); if (!$enter) return JsonService::fail('操作记录不存!'); if ($enter->status != 0) return Json::fail('您已审核,请勿重复操作'); UserInstitutionModel::beginTrans(); $res = UserInstitutionModel::changeFail($id, $enter['uid'], $fail_msg['message'], $enter); if ($res) { UserInstitutionModel::commitTrans(); return JsonService::successful('操作成功!'); } else { UserInstitutionModel::rollbackTrans(); return JsonService::fail('操作失败!'); } } /**通过 * @param $id * @throws \think\exception\DbException */ public function succ($id) { if (!UserInstitutionModel::be(['id' => $id, 'status' => 0])) return JsonService::fail('操作记录不存在或状态错误!'); $enter = UserInstitutionModel::get($id); if (!$enter) return JsonService::fail('操作记录不存!'); if ($enter->status != 0) return Json::fail('您已审核,请勿重复操作'); UserInstitutionModel::beginTrans(); $res = UserInstitutionModel::changeSuccess($id, $enter['uid'], $enter); if ($res) { UserInstitutionModel::commitTrans(); return JsonService::successful('操作成功!'); } else { UserInstitutionModel::rollbackTrans(); return JsonService::fail('操作失败!'); } } /**生成机构后台 * @return mixed */ public function create($id) { $enter = UserInstitutionModel::get($id); $this->assign([ 'title' => '添加机构后台', 'enter' => json_encode($enter), 'action' => Url::build('save'), 'menus' => json(InstitutionMenus::ruleList())->getContent() ]); return $this->fetch(); } /** * 添加机构商户 */ public function save() { $data = parent::postMore([ 'account', ['id', 0], ['uid', 0], 'conf_pwd', 'pwd', 'mer_name', 'real_name', 'mer_phone', 'mer_special_divide', 'mer_store_divide', 'mer_event_divide', 'mer_data_divide', 'mer_test_divide', 'gold_divide', 'mark', 'mer_address', ['checked_menus', [], '', 'rules'], ['is_source', 0], ['is_audit', 0], ['status', 0] ]); if (!is_array($data['rules']) || !count($data['rules'])) return JsonService::fail('请选择最少一个权限'); foreach ($data['rules'] as &$v) { $pid = InstitutionMenus::where('id', $v)->value('pid'); if (!in_array($pid, $data['rules'])) $data['rules'][] = $pid; } $data['rules'] = implode(',', $data['rules']); if (!$data['account']) return JsonService::fail('请输入机构后台账号'); if (InstitutionAdminModel::where('account', trim($data['account']))->where('is_del', 0)->count()) return JsonService::fail('商户账号已存在,请使用别的商户账号注册'); if (!$data['pwd']) return JsonService::fail('请输入机构后台登陆密码'); if ($data['pwd'] != $data['conf_pwd']) return JsonService::fail('两次输入密码不想同'); if (!$data['mer_name']) return JsonService::fail('请输入机构后台名称'); if (!$data['uid']) return JsonService::fail('请输入绑定的用户ID'); $user = User::where('uid', $data['uid'])->find(); if (!$user) { return JsonService::fail('绑定的用户不存在'); } else { if ($user['business'] == 1) { return JsonService::fail('该用户已是机构'); } } $data['pwd'] = trim(md5($data['pwd'])); $data['reg_time'] = time(); $data['add_time'] = time(); $data['reg_admin_id'] = $this->adminId; $admin = array(); $admin['account'] = trim($data['account']); $admin['pwd'] = $data['pwd']; $enter = UserInstitutionModel::get($data['id']); $data['mer_avatar'] = $enter['merchant_head']; $data['estate'] = 1; UserInstitutionModel::where('id', $data['id'])->update(['status' => 2]); unset($data['id']); unset($data['conf_pwd']); unset($data['account']); unset($data['pwd']); InstitutionModel::beginTrans(); $res = InstitutionModel::set($data); $res1 = false; if ($res) { $admin['uid'] = $data['uid']; $admin['mer_id'] = $res->id; $admin['real_name'] = $data['mer_name']; $admin['rules'] = $data['rules']; $admin['phone'] = $data['mer_phone']; $admin['add_time'] = time(); $admin['status'] = 1; $admin['level'] = 0; $res1 = InstitutionAdminModel::set($admin); } $res2 = false; if ($res1 && $res) { $res2 = Lecturer::addLecturer($enter, $res->id); } $bool = false; if ($res1 && $res && $res2) $bool = true; InstitutionModel::checkTrans($bool); if ($bool) { InstitutionModel::where('id', $res->id)->update(['lecturer_id' => $res2->id]); User::where('uid', $data['uid'])->update(['business' => 1]); Db::name('cache_merchant')->insert( [ 'mer_id' => $res->id, 'add_time' => time(), 'key'=> 'wechat_menus', 'result' => '[{"type":"view","name":"\u8bb2\u5e08\u9996\u9875","sub_button":[],"url":"https:\/\/www.ideaketang.com\/\/h5"},{"type":"click","name":"\u5e73\u53f0\u9996\u9875","sub_button":[],"key":"https:\/\/www.ideaketang.com\/h5"},{"type":"view","name":"\u670d\u52a1\u4e2d\u5fc3","sub_button":[],"key":"https:\/\/www.ideaketang.com\/h5","url":"https:\/\/www.ideaketang.com\/h5"}]' ] ); return JsonService::successful('添加机构后台成功!'); } else { return JsonService::successful('添加机构后台失败!'); } } }