isAjax()){
$param = input('param.');
$limit = empty($param['pageSize']) ? 1 : $param['pageSize'];
$offset = (empty($param['pageNumber']) ? 20 : $param['pageNumber'] - 1) * $limit;
$result = db('payment')->where($this->where)->alias('p')->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]['create_time'] =date("Y-m-d H:i:s",$vo['create_time']);
$pay_type = db('payment_type')->where('id', $vo['payment_type'])->field('type_name')->find();
// 生成操作按钮
$result[$key]['operate'] = $this->makeBtn($vo['id']);
$result[$key]['type_name'] = isset($pay_type['type_name']) ? $pay_type['type_name'] : '暂无';
// 所属分组
$organize = db('organize')->field('name')->where('id', $vo['organize_id'])->find();
$result[$key]['organize_name'] = !empty($organize) ? $organize['name'] : '暂无';
// 所属平台
$group = db('groups')->field('name')->where('id', $vo['group_id'])->find();
$result[$key]['group_name'] = !empty($group) ? $group['name'] : '暂无';
}
$return['total'] = db('payment')->count(); //总数据
$return['rows'] = $result;
return json($return);
}
return $this->fetch();
}
// 添加支付
public function addpayment()
{
if(request()->isPost()){
$param = input('post.');
unset($param['file']); // 删除layui头像上传隐藏字段
if(empty($param['payment_type'])){
return json(['code' => -4, 'data' => '', 'msg' => '请选择支付类型']);
}
if(empty($param['kf_id'])){
return json(['code' => -4, 'data' => '', 'msg' => '请选择客服']);
}
$kf_info = db('users')->where('id', $param['kf_id'])->find();
$param['account_num'] = htmlentities($param['account_num']);
$has = db('payment')->field('id')->where(['account_num'=> $param['account_num'],'kf_id'=>$param['kf_id']])->find();
// $has = db('payment')->field('id')->where(['account_num'=> $param['account_num'],'group_id'=>$kf_info['group_id']])->find();
if(!empty($has)){
return json(['code' => -2, 'data' => '', 'msg' => '该账号已经存在']);
}
$param['group_id'] = $kf_info['group_id'];
$param['organize_id'] = $kf_info['organize_id'];
// 检测分组
// if ($this->role_name == '组长') {
// $param['organize_id'] = $this->where['organize_id'];
// $organize = db('organize')->where('id', $this->where['organize_id'])->find();
// }
// if (!isset($param['organize_id'])) return resultJson(0, '请选择分组');
$param['name'] = htmlentities($param['name']);
$data['name'] = $param['name'];
$data['account_num'] = $param['account_num'];
$data['payment_type'] = $param['payment_type'];
$data['create_time'] = time();
$data['kf_id'] = $param['kf_id'];
$data['status'] = $param['status'];
$data['group_id'] = $param['group_id'];
$data['organize_id'] = $param['organize_id'];
// 检测当前用户是否支付账号还为空
$check = db('payment')->field('id')->where(['kf_id' => $data['kf_id'], 'payment_type' => $data['payment_type'], 'is_use' => 1, 'status' => 1])->find();
if (!$check) {
$data['is_use'] = 1;
}
switch ($param['payment_type']) {
case "1":
case "2":
case "3":
case "4":
unset($param['open_bank'],$param['branch_bank']);
if(empty($param['payment_img'])){
return json(['code' => -1, 'data' => '', 'msg' => '请上传二维码']);
}
$data['payment_img'] = $param['payment_img'];
break;
case "5":
if(empty($param['open_bank']) || empty($param['branch_bank'])){
return json(['code' => -4, 'data' => '', 'msg' => '开户银行和开户支行必须填写']);
}
unset($param['payment_img']);
$data['open_bank'] = $param['open_bank'];
$data['branch_bank'] = $param['branch_bank'];
break;
case "6":
// unset($param['open_bank'],$param['branch_bank']);
// if(empty($param['payment_img'])){
// return json(['code' => -1, 'data' => '', 'msg' => '请上传二维码']);
// }
// $data['payment_img'] = $param['payment_img'];
// break;
default:
# code...
break;
}
try{
db('payment')->insert($data);
}catch(\Exception $e){
return json(['code' => -3, 'data' => '', 'msg' => $e->getMessage()]);
}
LogRepository::write('支付管理', '成功添加支付账号--'.$data['account_num']);
$paymentLog = [
'pay_account' => $param['account_num'],
'history_qrcode' => '',
'new_qrcode' => empty($param['payment_img']) ? '': $param['payment_img'],
'history_kf' => '',
'new_kf' => $param['kf_id'],
'action_type' => "新增",
];
LogRepository::paymentLogWrite($paymentLog);
return json(['code' => 1, 'data' => '', 'msg' => '添加账号成功']);
}
// 平台
$platform = db('groups')->where('status', 1)->select();
// 如果是平台管理员获取分组
if ($this->role_name == '平台管理员') {
$organize = db('organize')->where($this->where)->select();
} else {
$organize = [];
}
$this->assign([
'paytype'=> db('payment_type')->select(),
'users' => db('users')->where($this->where)->select(),
'status' => config('kf_status'),
'platform' => $platform,
'organize' => $organize,
]);
return $this->fetch();
}
/**
* 支付方式列表
*/
public function getpaymenttype(){
}
/**
* 添加支付方式
*/
public function addpaymenttype(){
if(request()->isPost()){
$param = input('post.');
if(!$param['alias_id']){
// if(!ctype_alpha($param['alias_id'])){
return json(['code' => -1, 'data' => '', 'msg' => 'ID只能为字母']);
}
$param['type_name'] = htmlentities($param['type_name']);
$has = db('payment_type')->field('id')->where('type_name', $param['type_name'])->find();
if(!empty($has)){
return json(['code' => -1, 'data' => '', 'msg' => '该支付类型已经存在']);
}
// if (!$this->is_root) {
// $param['group_id'] = $this->where['group_id'];
// }
try{
db('payment_type')->insert($param);
}catch(\Exception $e){
return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
}
$redis = new Redis();
$redis::instance()->del("payment");
return json(['code' => 1, 'data' => '', 'msg' => '添加支付类型成功']);
}
// 平台
$platform = db('groups')->where('status', 1)->select();
$this->assign([
'status' => config('kf_status'),
'platform' => $platform,
]);
return $this->fetch();
}
/**
* 编辑
*/
public function editpayment()
{
if(request()->isAjax()){
$param = input('post.');
$account = $param['account_num'];
unset($param['file']); // 删除layui头像上传隐藏字段
unset($param['account_num']); //账号不允许修改
// 修改支付类型
if(empty($param['payment_type'])){
unset($param['payment_type']);
}
// 修改支付二维码
if(empty($param['payment_img'])){
unset($param['payment_img']);
}
// 修改所属客服
if(empty($param['kf_id'])){
return json(['code' => -1, 'data' => '', 'msg' => '请选择客服']);
}
$kf_info = db('users')->where('id', $param['kf_id'])->find();
$param['group_id'] = $kf_info['group_id'];
$param['organize_id'] = $kf_info['organize_id'];
// if(empty($param['group_id']) && $this->is_root){
// return json(['code' => -4, 'data' => '', 'msg' => '请选择分组']);
// } elseif(empty($param['group_id']) && $this->role_name == '平台管理员') {
// $param['group_id'] = $this->where['group_id'];
// }
// 检测分组
// if ($this->role_name == '组长') {
// $param['organize_id'] = $this->where['organize_id'];
// $organize = db('organize')->where('id', $this->where['organize_id'])->find();
// $param['group_id'] = $organize['group_id'];
// }
// if (!isset($param['organize_id'])) return resultJson(0, '请选择分组');
try{
$historyPayment = db('payment')->where('id', $param['id'])->find();
db('payment')->where('id', $param['id'])->update($param);
}catch(\Exception $e){
return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
}
LogRepository::write('支付管理', '成功编辑支付账号--'.$account);
$paymentLog = [
'pay_account' => $account,
'history_qrcode' => $historyPayment['payment_img'],
'new_qrcode' => empty($param['payment_img']) ? '': $param['payment_img'],
'history_kf' => $historyPayment['kf_id'],
'new_kf' => empty($param['kf_id']) ? $historyPayment['kf_id'] : $param['kf_id'],
'action_type' => "修改",
];
LogRepository::paymentLogWrite($paymentLog);
return json(['code' => 1, 'data' => '', 'msg' => '编辑账号成功']);
}
$id = input('param.id/d');
$info = db('payment')->where('id', $id)->find();
// 平台
$platform = db('groups')->where('status', 1)->select();
// 如果是平台管理员获取分组
if ($this->role_name == '平台管理员' || $info['group_id']) {
$where = $info['group_id'] ? ['group_id' => $info['group_id']] : $this->where;
$organize = db('organize')->where($where)->select();
} else {
$organize = [];
}
$this->assign([
'info' => $info,
'status' => config('kf_status'),
'paytype'=> db('payment_type')->select(),
'users' => db('users')->where($this->where)->select(),
'platform' => $platform,
'organize' => $organize,
]);
return $this->fetch();
}
// 生成按钮
private function makeBtn($id)
{
$operate = '';
$operate .= ' ';
$operate .= ' ';
return $operate;
}
public function upQrcode()
{
if(request()->isAjax()) {
$file = request()->file('file');
if (!empty($file)) {
$fileInfo = $file->getInfo();
/*if($fileInfo['size'] > 1024 * 1024 * 2){
// 上传失败获取错误信息
return json( ['code' => -2, 'data' => '', 'msg' => '文件超过2M'] );
}*/
//检测图片格式
$ext = explode('.', $fileInfo['name']);
$ext = array_pop($ext);
$extArr = explode('|', 'jpg|png|gif|jpeg');
if(!in_array($ext, $extArr)){
return json(['code' => -3, 'data' => '', 'msg' => '只能上传jpg|png|gif|jpeg的文件']);
}
// 移动到框架应用根目录/public/uploads/ 目录下
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads' . DS . 'qrcode');
if ($info) {
$src = config('img_take_prefix').'/uploads/qrcode' . '/' . date('Ymd') . '/' . $info->getFilename();
return json(['code' => 0, 'data' => ['src' => $src], 'msg' => 'ok']);
} else {
// 上传失败获取错误信息
return json(['code' => -1, 'data' => '', 'msg' => $file->getError()]);
}
}
}
}
/**
* 删除支付账号
*/
public function delPayment()
{
$id = input('post.id');
if (!$id) return resultJson(0, '参数错误');
$del = db('payment')->where('id', $id)->delete();
if (!$del) return resultJson(0, '删除失败');
return resultJson(1, '删除成功');
}
/**
* 会员权限列表
*/
public function member_level_list()
{
$db = db('member_level');
// 返回视图
if(request()->isAjax()) {
// 分页请求
$param = input('get.');
$where = $this->where;
$keyword = input('search_input');
if (!empty($keyword)) {
$where['name|id'] = $keyword;
}
//获取总条数
$count = $db->where($where)->count();
// $count=count($list);
//获取每页显示的条数
$limit = $param['limit'];
//获取当前页数
$page = $param['page'];
//计算出从那条开始查询
$start = ($page-1)*$limit;
$list = $db
->where($where)
->limit($start, $limit)
->order('id desc')
->select();
foreach($list as $key=>$vo){
// 平台名称
$group = db('groups')->where('id', $vo['group_id'])->field('name')->find();
$list[$key]['group_name'] = isset($group['name']) ? $group['name'] : '暂无';
}
$result = resultJson(0, '获取成功', $list);
$result['count'] = $count;
return $result;
}
return $this->fetch();
}
/**
* 添加会员等级
*/
public function add_member_level()
{
$db = db('member_level');
$gdb = db('groups');
if (request()->isPost()) {
$level = input('post.level');
$name = input('post.name');
$group_id = input('post.group_id');
if ($level === '' || !$name) return resultJson(0, '参数错误');
if(empty($group_id) && $this->is_root){
return resultJson(0, '请选择平台');
} elseif(empty($group_id) && $this->role_name == '平台管理员') {
$group_id = $this->where['group_id'];
}
$where['group_id'] = $group_id;
$where['level'] = $level;
$info = $db->where($where)->find();
if ($info) return resultJson(2, '等级已存在');
$data = [
'level' => $level,
'name' => $name,
'group_id' => $group_id,
'date' => date("Y-m-d H:i:s"),
];
$save = $db->insert($data);
if ($save == 1) return resultJson(1, '成功');
return resultJson(0, '保存失败');
}
// 平台
$group = $gdb->where('status', 1)->order('id desc')->select();
$this->assign([
'group' => $group,
]);
return $this->fetch();
}
/**
* 编辑会员等级权限
*/
public function member_level_edit()
{
$mldb = db('member_level');
$ptdb = db('payment_type');
if(request()->isAjax()) {
$id = input('post.id');
$pay_type = isset($_POST['pay_type']) ? $_POST['pay_type'] : [];
if (!is_array($pay_type) || !$pay_type) return resultJson(0, '参数错误');
$data['rules'] = implode(',', $pay_type);
if (!$id) return resultJson(0, '参数错误');
$save = $mldb->where('id', $id)->update($data);
if (!$save) return resultJson(0, '保存失败');
return resultJson(1, '成功');
}
$id = input('id');
$pay_type = $ptdb->where('status', 1)->select();
$info = $mldb->find($id);
// 检测是否已经选中
$rules_arr = explode(',', $info['rules']);
foreach($pay_type as &$vo) {
if(!in_array($vo['id'], $rules_arr)) {
$vo['checked'] = false;
continue;
}
$vo['checked'] = true;
}
$this->assign([
'pay_type' => $pay_type,
'id' => $id,
]);
return $this->fetch();
}
/*
* 删除会员等级
*/
public function del_member_level()
{
if(request()->isPost()) {
$id = input('post.id');
if (!$id) return resultJson(0, '参数错误');
$del = db('member_level')->where('id', $id)->delete();
if (!$del) return resultJson(0, '删除失败');
return resultJson(1, '删除成功');
}
}
}