修改用户提现记录

This commit is contained in:
邹景立 2021-03-15 17:52:45 +08:00
parent 8991dddb7c
commit a74b216dfd
5 changed files with 154 additions and 5 deletions

View File

@ -3,6 +3,7 @@
namespace app\data\controller; namespace app\data\controller;
use app\data\service\UserService; use app\data\service\UserService;
use app\data\service\UserUpgradeService;
use think\admin\Controller; use think\admin\Controller;
use think\admin\extend\CodeExtend; use think\admin\extend\CodeExtend;
use think\admin\service\AdminService; use think\admin\service\AdminService;
@ -20,6 +21,25 @@ class UserTransfer extends Controller
*/ */
private $table = 'DataUserTransfer'; private $table = 'DataUserTransfer';
/**
* 奖励提现配置
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function config()
{
$this->skey = 'TransferRule';
$this->title = '奖励提现配置';
if ($this->request->isGet()) {
$this->data = sysdata($this->skey);
$this->fetch();
} else {
sysdata($this->skey, $this->request->post());
$this->success('配置修改成功');
}
}
/** /**
* 用户提现管理 * 用户提现管理
* @menu true * @menu true

View File

@ -3,6 +3,8 @@
namespace app\data\controller\api\auth; namespace app\data\controller\api\auth;
use app\data\controller\api\Auth; use app\data\controller\api\Auth;
use app\data\service\UserUpgradeService;
use think\admin\extend\CodeExtend;
/** /**
* 用户返利管理 * 用户返利管理
@ -28,4 +30,55 @@ class Rebate extends Auth
$query = $this->_query($this->table)->where(['uid' => $this->uuid]); $query = $this->_query($this->table)->where(['uid' => $this->uuid]);
$query->like('create_at#date')->order('id desc')->page(true, false, false, 15); $query->like('create_at#date')->order('id desc')->page(true, false, false, 15);
} }
/**
* 提交用户提现审核
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function addUsed()
{
if (!empty($this->user['status'])) {
$this->error('账户异常,请联系客服');
}
$data = $this->_vali([
'amount.require' => '提现金额不能为空',
'remark.default' => '用户主动提交审核',
]);
$params = sysdata('TransferRule') ?: [];
if (empty($params['transfer_state'])) $this->error('提现功能已经关闭');
[$total, $count] = UserUpgradeService::instance()->syncRebate($this->uuid);
if ($total - $count - $data['amount'] < 0) $this->error('可提现金额不足');
if ($data['amount'] < $params['transfer_min']) $this->error("提现不能少于{$params['transfer_min']}");
if ($data['amount'] > $params['transfer_max']) $this->error("提现不能大于{$params['transfer_max']}");
$result = $this->app->db->name('DataUserTransfer')->insert([
'uid' => $this->uuid,
'code' => CodeExtend::uniqidDate(20, 'T'),
'openid' => $this->user['openid1'],
'status' => $params['transfer_audit'] > 0 ? 2 : 1,
'amount' => $data['amount'],
'remark' => $data['remark'],
]);
if ($result !== false) {
UserUpgradeService::instance()->syncRebate($this->uuid);
$this->success('提交申请成功');
} else {
$this->error('提交申请失败');
}
}
/**
* 获取用户提现记录
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getUsed()
{
$date = input('date', date('Y-m-'));
$map = [['mid', '=', $this->mid], ['create_at', 'like', "{$date}%"]];
$query = $this->_query('DataUserTransfer')->in('status')->order('id desc');
$this->success('获取提现记录', $query->where($map)->page(true, false, false, 15));
}
} }

View File

@ -69,13 +69,13 @@ class UserUpgradeService extends Service
*/ */
public function syncRebate(int $uuid): array public function syncRebate(int $uuid): array
{ {
$total = abs($this->app->db->name('DataUserRebate')->where("uid='{$uuid}' and status=1 and amount>0 and deleted=0")->sum('amount')); $count = abs($this->app->db->name('DataUserTransfer')->where("uid='{$uuid}' and status>0")->sum('amount'));
$count = abs($this->app->db->name('DataUserRebate')->where("uid='{$uuid}' and status=1 and amount<0 and deleted=0")->sum('amount')); $total = abs($this->app->db->name('DataUserRebate')->where("uid='{$uuid}' and status=1 and deleted=0")->sum('amount'));
$lockd = abs($this->app->db->name('DataUserRebate')->where("uid='{$uuid}' and status=0 and amount<0 and deleted=0")->sum('amount')); $locks = abs($this->app->db->name('DataUserRebate')->where("uid='{$uuid}' and status=0 and deleted=0")->sum('amount'));
$this->app->db->name('DataUser')->where(['id' => $uuid])->update([ $this->app->db->name('DataUser')->where(['id' => $uuid])->update([
'rebate_total' => $total, 'rebate_used' => $count, 'rebate_lock' => $lockd, 'rebate_total' => $total, 'rebate_used' => $count, 'rebate_lock' => $locks,
]); ]);
return [$total, $count, $lockd]; return [$total, $count, $locks];
} }
/** /**

View File

@ -0,0 +1,73 @@
<form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
<div class="layui-card-body padding-left-40">
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">是否开启提现</span>
<span class="color-desc margin-left-5">Transfer State</span>
<div class="layui-textarea padding-15" style="min-height:auto">
{php} $data['transfer_state'] = $data['transfer_state'] ?? 0; {/php}
{foreach ['关闭用户提现', '开启用户提现'] as $k => $v}
{if $data.transfer_state eq $k}
<input checked class="layui-input layui-bg-gray" type="radio" title="{$v}" name="transfer_state" value="{$k}">
{else}
<input class="layui-input layui-bg-gray" type="radio" title="{$v}" name="transfer_state" value="{$k}">
{/if}{/foreach}
</div>
</div>
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">提现金额范围</span>
<span class="color-desc margin-left-5">Transfer Range</span>
<div class="padding-10">
<div class="layui-inline">
<label class="layui-input-inline" style="width:200px;">
<span class="font-s12 color-blue">最小提现金额( </span>
<input type="text" placeholder="" class="layui-input" data-blur-number="2" name="transfer_min" value="{$data.transfer_min|default='1.00'}">
</label>
<div class="layui-form-mid text-center notselect">
<span class="block"> </span>
<span class="block">-</span>
</div>
<label class="layui-input-inline" style="width:200px;">
<span class="font-s12 color-blue">最大提现金额( </span>
<input type="text" placeholder="" class="layui-input" data-blur-number="2" name="transfer_max" value="{$data.transfer_max|default='2000.00'}">
</label>
</div>
</div>
</div>
<div class="layui-form-item relative block">
<span class="color-green font-w7 label-required-prev">提现是否需要审核</span>
<span class="color-desc margin-left-5">Transfer Audit</span>
<div class="layui-textarea padding-15" style="min-height:auto">
{php} $data['transfer_audit'] = $data['transfer_audit'] ?? 0; {/php}
{foreach ['提现无需审核', '提现需要审核'] as $k => $v}
{if $data.transfer_audit eq $k}
<input checked class="layui-input layui-bg-gray" type="radio" title="{$v}" name="transfer_audit" value="{$k}">
{else}
<input class="layui-input layui-bg-gray" type="radio" title="{$v}" name="transfer_audit" value="{$k}">
{/if}{/foreach}
</div>
</div>
<div class="layui-form-item relative block">
<span class="color-green font-w7">用户提现描述内容</span>
<span class="color-desc margin-left-5">Transfer Remark</span>
<label class="relative block">
<textarea class="layui-textarea" placeholder="请输入用户提现描述内容" name="remark">{$data.remark|default=''}</textarea>
</label>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="layui-form-item text-center">
<button class="layui-btn" type='submit'>保存数据</button>
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
</div>
<script>
layui.form.render();
</script>
</form>

View File

@ -1,6 +1,9 @@
{extend name="../../admin/view/main"} {extend name="../../admin/view/main"}
{block name="button"} {block name="button"}
<!--{if auth('config')}-->
<a class="layui-btn layui-btn-sm layui-btn-primary" data-modal="{:url('config')}">提现配置</a>
<!--{/if}-->
<!--{if auth('sync')}--> <!--{if auth('sync')}-->
<a class="layui-btn layui-btn-sm layui-btn-primary" data-queue="{:url('sync')}">打款服务</a> <a class="layui-btn layui-btn-sm layui-btn-primary" data-queue="{:url('sync')}">打款服务</a>
<!--{/if}--> <!--{/if}-->