isAjax()){ $param = input('param.'); $limit = $param['pageSize']; $offset = ($param['pageNumber'] - 1) * $limit; $where = isset($this->where['group_id']) ? ['id' => $this->where['group_id']] : []; $result = db('groups')->where($where)->limit($offset, $limit)->order('id desc')->select(); foreach($result as $key=>$vo){ // 优化显示状态 if(1 == $vo['status']){ $result[$key]['status'] = '启用'; }else{ $result[$key]['status'] = '禁用'; } // 统计平台人数 $result[$key]['users_num'] = db('users')->where('group_id', $vo['id'])->count(); // 生成操作按钮 $result[$key]['operate'] = $this->makeBtn($vo['id']); //生成下载客服聊天记录按钮 $result[$key]['down_service_log'] = $this->makeServiceLogBtn($vo['id']); // 管理员名称 $admin = db('admins')->where('id', $vo['admin_id'])->field('user_name')->find(); $result[$key]['admin_name'] = isset($admin['user_name']) ? $admin['user_name'] : '暂无'; // 充值赠送类型 $type_arr = config('recharge_gift_type'); $result[$key]['recharge_gift_type'] = $type_arr && isset($type_arr[$vo['recharge_gift_type']]) ? $type_arr[$vo['recharge_gift_type']] : ''; } $return['total'] = db('groups')->where($where)->count(); //总数据 $return['rows'] = $result; return json($return); } return $this->fetch(); } // 添加平台 public function addGroup() { $adb = db('admins'); $rdb = db('role'); if(request()->isPost()){ $param = input('post.'); $param['name'] = htmlentities($param['name']); $has = db('groups')->field('id')->where('name', $param['name'])->find(); if(!empty($has)){ return json(['code' => -1, 'data' => '', 'msg' => '该平台已经存在']); } // 检测是否有平台管理员角色 $role = $rdb->where('name', '平台管理员')->field('id')->find(); if (!$role) return json(['code' => -1, 'data' => '', 'msg' => "请先添加名称为'平台管理员'的角色"]); $rule = "/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/"; if (!preg_match($rule, $param['password'])) { return json(['code' => -2, 'data' => '', 'msg' => '密码必须是8-16位的字母和数字组成!']); }; $has = $adb->field('id')->where('user_name', $param['user_name'])->find(); if(!empty($has)){ return json(['code' => -1, 'data' => '', 'msg' => '该管理员已经存在']); } $param['date'] = date('Y-m-d H:i'); try{ // 先添加平台管理员 $admin_data = [ 'user_name' => $param['user_name'], 'password' => password_hash($param['password'], PASSWORD_DEFAULT), 'user_avatar' => getImageHost().'/static/common/images/avatar.png', 'status' => 1, ]; $add_admin = $adb->insertGetId($admin_data); db('admin_role')->insertGetId(['role_id' => $role['id'], 'admin_id' => $add_admin]); $param['admin_id'] = $add_admin; unset($param['user_name']); unset($param['password']); $save = db('groups')->insertGetId($param); // 资金流动记录 $this->saveMoneyFlowLog($this->admin_id, 'g_' . $add_admin, $param['money'], "'{$param['name']}'平台分配金额"); }catch(\Exception $e){ return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]); } LogRepository::write('支付管理', '成功添加平台--'.$param['name']); return json(['code' => 1, 'data' => '', 'msg' => '添加平台成功']); } $this->assign([ 'status' => config('kf_status') ]); return $this->fetch('addgroup'); } // 编辑平台 public function editGroup() { if(request()->isAjax()){ $param = input('post.'); $param['name'] = htmlentities($param['name']); $gdb = db('groups'); // 检测用户修改的用户名是否重复 $has = $gdb->where('name', $param['name'])->where('id', '<>', $param['id'])->find(); if(!empty($has)){ return json(['code' => -1, 'data' => '', 'msg' => '该平台已经存在']); } if ($param['min_recharge_amount'] < 0) { return json(['code' => -1, 'data' => '', 'msg' => '最低充值金额不能小于 0']); } try{ $group = $gdb->where('id', $param['id'])->find(); $gdb->where('id', $param['id'])->update($param); if ($this->is_root) { // 资金流动记录 $compare = $param['money'] > $group['money']; $money = $compare ? $param['money'] - $group['money'] : abs($param['money'] - $group['money']); if ($compare) { $this->saveMoneyFlowLog($this->admin_id, 'g_' . $group['admin_id'], $money, "'{$param['name']}'平台分配金额"); } } }catch(\Exception $e){ return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]); } return json(['code' => 1, 'data' => '', 'msg' => '编辑平台成功']); } $id = input('param.id/d'); $info = db('groups')->where('id', $id)->find(); $admin = $this->getPlatformList(); $this->assign([ 'info' => $info, 'status' => config('kf_status'), 'recharge_gift_type' => config('recharge_gift_type'), 'admin' => $admin, ]); return $this->fetch('editgroup'); } // 删除平台 public function delGroup() { if(request()->isAjax()){ $id = input('param.id/d'); // 查询该平台下是否有客服 $has = db('users')->where('group_id', $id)->count(); $hasOrganize = db('organize')->where('group_id', $id)->count(); if($has > 0 || $hasOrganize > 0){ return json(['code' => -2, 'data' => '', 'msg' => '该平台下还有组或者客服,不可删除']); } try{ $group = db('groups')->where('id', $id)->find(); db('groups')->where('id', $id)->delete(); if (isset($group['admin_id'])) { db('admins')->where('id', $group['admin_id'])->delete(); } }catch(\Exception $e){ return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]); } return json(['code' => 1, 'data' => '', 'msg' => '删除平台成功']); } } // 生成按钮 private function makeBtn($id) { $operate = ''; $operate .= ' '; if ($this->is_root) { $operate .= ' '; } //$operate .= ''; //$operate .= ''; return $operate; } // 生成支付账号详情按钮 private function makeServiceLogBtn($id) { $operate = ''; // $operate .= ' '; $operate .= ' '; return $operate; } }