501 lines
19 KiB
PHP
501 lines
19 KiB
PHP
<?php
|
|
/**
|
|
* 系统控制器
|
|
*/
|
|
|
|
namespace app\admin\controller;
|
|
use Repository\LogRepository;
|
|
use app\service\controller\Redis;
|
|
|
|
class Payment extends Base
|
|
{
|
|
public function index(){
|
|
if(request()->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'] = '<span class="label label-primary">启用</span>';
|
|
}else{
|
|
$result[$key]['status'] = '<span class="label label-danger">禁用</span>';
|
|
}
|
|
$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 = '<a href="' . url('payment/editpayment', ['id' => $id]) . '">';
|
|
$operate .= '<button type="button" class="btn btn-primary btn-sm"><i class="fa fa-paste"></i> 编辑</button></a> ';
|
|
|
|
$operate .= '<a href="javascript:del(' . $id . ')"><button type="button" class="btn btn-danger btn-sm">';
|
|
$operate .= '<i class="fa fa-trash-o"></i> 删除</button></a> ';
|
|
|
|
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, '删除成功');
|
|
}
|
|
}
|
|
|
|
} |