229 lines
7.7 KiB
PHP
229 lines
7.7 KiB
PHP
<?php namespace Phpcmf\Controllers\Admin;
|
|
/**
|
|
* https://www.besyun.com
|
|
* BESCMS
|
|
* 本文件是框架系统文件,二次开发时不可以修改本文件
|
|
**/
|
|
|
|
// 资金流水
|
|
class Paylog extends \Phpcmf\Table
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
// 支持附表存储
|
|
$this->is_data = 0;
|
|
// 模板前缀(避免混淆)
|
|
$this->my_field = array(
|
|
'title' => array(
|
|
'ismain' => 1,
|
|
'name' => dr_lang('关键字'),
|
|
'fieldname' => 'title',
|
|
'fieldtype' => 'Text',
|
|
'setting' => array(
|
|
'option' => array(
|
|
'width' => 200,
|
|
),
|
|
)
|
|
),
|
|
'touid' => array(
|
|
'ismain' => 1,
|
|
'name' => dr_lang('收款人'),
|
|
'fieldname' => 'touid',
|
|
'fieldtype' => 'Uid',
|
|
'setting' => array(
|
|
'option' => array(
|
|
'width' => 200,
|
|
),
|
|
)
|
|
),
|
|
'uid' => array(
|
|
'ismain' => 1,
|
|
'isint' => 1,
|
|
'name' => dr_lang('付款人'),
|
|
'fieldname' => 'uid',
|
|
'fieldtype' => 'Uid',
|
|
'setting' => array(
|
|
'option' => array(
|
|
'width' => 200,
|
|
),
|
|
)
|
|
),
|
|
);
|
|
// 表单显示名称
|
|
$this->name = dr_lang('资金流水');
|
|
// 初始化数据表
|
|
$this->_init([
|
|
'table' => 'member_paylog',
|
|
'field' => $this->my_field,
|
|
'order_by' => 'inputtime desc',
|
|
'date_field' => 'inputtime',
|
|
]);
|
|
\Phpcmf\Service::V()->assign([
|
|
'field' => $this->my_field,
|
|
]);
|
|
}
|
|
|
|
// index
|
|
public function index() {
|
|
\Phpcmf\Service::M()->set_where_list('`status`=1');
|
|
$this->_List();
|
|
\Phpcmf\Service::V()->assign([
|
|
'not_pay' => 1,
|
|
'menu' => \Phpcmf\Service::M('auth')->_admin_menu(
|
|
[
|
|
'已付流水' => [ 'pay/'.\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-calendar'],
|
|
'help' => [ 594 ],
|
|
]
|
|
),
|
|
]);
|
|
\Phpcmf\Service::V()->display('paylog_list.html');
|
|
}
|
|
|
|
// index
|
|
public function not_index() {
|
|
\Phpcmf\Service::M()->set_where_list('`status`=0');
|
|
$this->_List();
|
|
\Phpcmf\Service::V()->assign([
|
|
'not_pay' => 1,
|
|
'menu' => \Phpcmf\Service::M('auth')->_admin_menu(
|
|
[
|
|
'未付流水' => ['pay/'.\Phpcmf\Service::L('Router')->class.'/not_index', 'fa fa-calendar'],
|
|
'help' => [ 595 ],
|
|
]
|
|
),
|
|
]);
|
|
\Phpcmf\Service::V()->display('paylog_list.html');
|
|
}
|
|
|
|
// edit
|
|
public function edit() {
|
|
list($tpl, $data) = $this->_Post((int)\Phpcmf\Service::L('input')->get('id'), [], 1);
|
|
if (!$data) {
|
|
$this->_admin_msg(0, dr_lang('支付记录不存在'));
|
|
}
|
|
if (!$data['status']) {
|
|
\Phpcmf\Service::V()->assign([
|
|
'data' => $data,
|
|
'menu' => \Phpcmf\Service::M('auth')->_admin_menu(
|
|
[
|
|
'未付流水' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/not_index', 'fa fa-calendar'],
|
|
'付款详情' => [APP_DIR.'/'.\Phpcmf\Service::L('Router')->class.'/edit', 'fa fa-edit'],
|
|
]
|
|
),
|
|
'reply_url' => str_replace('m=index', 'm=not_index', \Phpcmf\Service::V()->get_value('reply_url'))
|
|
]);
|
|
} else {
|
|
\Phpcmf\Service::V()->assign([
|
|
'data' => $data,
|
|
'menu' => \Phpcmf\Service::M('auth')->_admin_menu(
|
|
[
|
|
'已付流水' => [ 'pay/'.\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-calendar'],
|
|
'help' => [ 594 ],
|
|
]
|
|
),
|
|
]);
|
|
}
|
|
|
|
\Phpcmf\Service::V()->display('paylog_edit.html');
|
|
}
|
|
|
|
// 系统回收
|
|
public function system_edit() {
|
|
|
|
$id = (int)\Phpcmf\Service::L('input')->get('id');
|
|
$data = \Phpcmf\Service::M('Pay')->table('member_paylog')->get($id);
|
|
if (!$data) {
|
|
$this->_json(0, dr_lang('支付记录不存在'));
|
|
} elseif (1 != $data['status']) {
|
|
$this->_json(0, dr_lang('支付记录不满足回收条件'));
|
|
} elseif ($data['value'] < 0) {
|
|
$this->_json(0, dr_lang('付款金额不满足回收条件'));
|
|
} elseif ($data['mid'] != 'recharge') {
|
|
$this->_json(0, dr_lang('只能回收充值金额'));
|
|
} elseif (\Phpcmf\Service::M()->table('member_paylog')->where('mid', 'system-recovery-'.$id)->counts()) {
|
|
$this->_json(0, dr_lang('此交易已经被回收过'));
|
|
}
|
|
|
|
$user = \Phpcmf\Service::M('member')->table('member')->get($data['uid']);
|
|
if (!$user) {
|
|
$this->_json(0, dr_lang('用户记录不存在'));
|
|
}
|
|
|
|
if (IS_AJAX_POST) {
|
|
$post = \Phpcmf\Service::L('input')->post('data');
|
|
if ($user['money'] - $data['value'] < 0) {
|
|
$this->_json(0, dr_lang('付款账号余额不足'));
|
|
} elseif (!$post['note']) {
|
|
$this->_json(0, dr_lang('回收备注一定要填写'), ['field' => 'note']);
|
|
}
|
|
// 扣除付款方的钱
|
|
$rt = \Phpcmf\Service::M('Pay')->add_money($data['uid'], -$data['value']);
|
|
if (!$rt['code']) {
|
|
$this->_json(0, $rt['msg']);
|
|
}
|
|
// 增加到交易流水
|
|
$rt = \Phpcmf\Service::M('Pay')->add_paylog([
|
|
'uid' => $data['uid'],
|
|
'touid' => 0,
|
|
'mid' => 'system-recovery-'.$id,
|
|
'title' => dr_lang('系统回收'),
|
|
'value' => -$data['value'],
|
|
'type' => 'finecms',
|
|
'status' => 1,
|
|
'result' => $post['note'],
|
|
'paytime' => SYS_TIME,
|
|
'inputtime' => SYS_TIME,
|
|
]);
|
|
if (!$rt['code']) {
|
|
$this->_json(0, $rt['msg']);
|
|
}
|
|
$this->_json(1, dr_lang('操作成功'));
|
|
}
|
|
|
|
\Phpcmf\Service::V()->assign([
|
|
'data' => $data,
|
|
'user' => $user,
|
|
'form' => dr_form_hidden(),
|
|
]);
|
|
\Phpcmf\Service::V()->display('paylog_system.html');exit;
|
|
}
|
|
|
|
// 短信催付
|
|
public function notice_del() {
|
|
|
|
$ids = \Phpcmf\Service::L('input')->get_post_ids();
|
|
if (!$ids) {
|
|
$this->_json(0, dr_lang('所选数据不存在'));
|
|
}
|
|
|
|
$sql = 'select phone from `'.\Phpcmf\Service::M()->dbprefix('member').'` where `id` in (select `uid` from `'.\Phpcmf\Service::M()->dbprefix('member_paylog').'` where `id` in ('.implode(',', $ids).') )';
|
|
$data = \Phpcmf\Service::M()->db->query($sql)->getResultArray();
|
|
if (!$data) {
|
|
$this->_json(0, dr_lang('所选数据不存在'));
|
|
}
|
|
|
|
$i = 0;
|
|
foreach ($data as $t) {
|
|
$rt = \Phpcmf\Service::M('member')->sendsms_text($t['phone'], dr_lang('您还有未付款的交易,请尽快付款;若已付,请忽略此消息'));
|
|
if ($rt['code']) {
|
|
$i ++;
|
|
}
|
|
}
|
|
|
|
$this->_json(1, dr_lang('已发送给%s个用户', $i));
|
|
}
|
|
|
|
// 删除
|
|
public function del() {
|
|
$this->_Del(
|
|
\Phpcmf\Service::L('input')->get_post_ids(),
|
|
null,
|
|
null,
|
|
\Phpcmf\Service::M()->dbprefix($this->init['table'])
|
|
);
|
|
}
|
|
|
|
}
|