190 lines
5.1 KiB
PHP
190 lines
5.1 KiB
PHP
<?php
|
|
|
|
namespace app\admin\logic\withdraw;
|
|
|
|
|
|
use app\common\model\merchant\Merchant;
|
|
use app\common\model\supplier\Supplier;
|
|
use app\common\model\withdraw\MerchantWithdraw;
|
|
use app\common\logic\BaseLogic;
|
|
use app\common\service\JgPushService;
|
|
use think\facade\Db;
|
|
|
|
|
|
/**
|
|
* 商户供应商提现表逻辑
|
|
* Class MerchantWithdrawLogic
|
|
* @package app\admin\logic\withdraw
|
|
*/
|
|
class MerchantWithdrawLogic extends BaseLogic
|
|
{
|
|
|
|
|
|
/**
|
|
* @notes 添加商户供应商提现表
|
|
* @param array $params
|
|
* @return bool
|
|
* @author likeadmin
|
|
* @date 2024/05/14 11:21
|
|
*/
|
|
public static function add(array $params): bool
|
|
{
|
|
Db::startTrans();
|
|
try {
|
|
MerchantWithdraw::create([
|
|
'mer_id' => $params['mer_id'],
|
|
'supplier_id' => $params['supplier_id'],
|
|
'merchant_bank_id' => $params['merchant_bank_id'],
|
|
'amount' => $params['amount'],
|
|
]);
|
|
|
|
Db::commit();
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
Db::rollback();
|
|
self::setError($e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 编辑商户供应商提现表
|
|
* @param array $params
|
|
* @return bool
|
|
* @author likeadmin
|
|
* @date 2024/05/14 11:21
|
|
*/
|
|
public static function edit(array $params): bool
|
|
{
|
|
Db::startTrans();
|
|
try {
|
|
MerchantWithdraw::where('id', $params['id'])->update([
|
|
'mer_id' => $params['mer_id'],
|
|
'supplier_id' => $params['supplier_id'],
|
|
'merchant_bank_id' => $params['merchant_bank_id'],
|
|
'amount' => $params['amount'],
|
|
]);
|
|
|
|
Db::commit();
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
Db::rollback();
|
|
self::setError($e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @notes 审核
|
|
* @param array $params
|
|
* @return bool
|
|
* @author likeadmin
|
|
* @date 2024/05/14 11:21
|
|
*/
|
|
public static function check(array $params,$admin_id): bool
|
|
{
|
|
$data = MerchantWithdraw::where('id', $params['id'])->findOrEmpty();
|
|
if($data['is_check'] != 0){
|
|
self::setError('此提现申请已审核,无需重复审核');
|
|
return false;
|
|
}
|
|
Db::startTrans();
|
|
try {
|
|
MerchantWithdraw::where('id', $params['id'])->update([
|
|
'is_check' => $params['is_check'],
|
|
'fail_msg' => $params['fail_msg'] ?? '',
|
|
'admin_id' => $admin_id
|
|
]);
|
|
if($params['is_check'] == 2){
|
|
if (!empty($data['mer_id'])) {
|
|
$merchant = Merchant::where('mer_id', $data['mer_id'])->findOrEmpty();
|
|
$merchant->where('mer_id', $data['mer_id'])->update([
|
|
'mer_money' => bcadd($merchant['mer_money'], $data['amount'], 2)
|
|
]);
|
|
}
|
|
if (!empty($data['supplier_id'])) {
|
|
$supplier = Supplier::where('id', $data['supplier_id'])->findOrEmpty();
|
|
$supplier->where('id', $data['supplier_id'])->update([
|
|
'mer_money' => bcadd($supplier['mer_money'], $data['amount'], 2)
|
|
]);
|
|
}
|
|
}
|
|
$pid = !empty($data['mer_id']) ? $data['mer_id'] : $data['supplier_id'];
|
|
$apply_info = Db::name('user_auth_shop')->where('pid', $pid)->findOrEmpty();
|
|
if (!empty($apply_info['jg_register_id'])) {
|
|
(new JgPushService())->sendMsg($apply_info['jg_register_id'], '您的提现申请请求' . ($params['status'] == 1 ? '已审核通过' : '审核未通过'), '/pages/quote/financialyDeatil');
|
|
}
|
|
Db::commit();
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
Db::rollback();
|
|
self::setError($e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @notes 设置到账
|
|
* @param array $params
|
|
* @return bool
|
|
* @author likeadmin
|
|
* @date 2024/05/14 11:21
|
|
*/
|
|
public static function arrival(array $params,$admin_id): bool
|
|
{
|
|
$data = MerchantWithdraw::where('id', $params['id'])->findOrEmpty();
|
|
if($data['is_check'] == 0){
|
|
self::setError('该提现申请还未审核,不能操作');
|
|
return false;
|
|
}
|
|
if($data['is_check'] == 2){
|
|
self::setError('该提现申请审核未通过,不能操作');
|
|
return false;
|
|
}
|
|
if($data['is_arrival'] == 1){
|
|
self::setError('该提现申请已到账,无需设置');
|
|
return false;
|
|
}
|
|
Db::startTrans();
|
|
try {
|
|
MerchantWithdraw::where('id', $params['id'])->update([
|
|
'is_arrival' => 1,
|
|
'arrival_proof' => $params['arrival_proof'] ? json_encode($params['arrival_proof']) : null,
|
|
'arrival_user' => $admin_id
|
|
]);
|
|
Db::commit();
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
Db::rollback();
|
|
self::setError($e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 删除商户供应商提现表
|
|
* @param array $params
|
|
* @return bool
|
|
* @author likeadmin
|
|
* @date 2024/05/14 11:21
|
|
*/
|
|
public static function delete(array $params): bool
|
|
{
|
|
return MerchantWithdraw::destroy($params['id']);
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 获取商户供应商提现表详情
|
|
* @param $params
|
|
* @return array
|
|
* @author likeadmin
|
|
* @date 2024/05/14 11:21
|
|
*/
|
|
public static function detail($params): array
|
|
{
|
|
return MerchantWithdraw::findOrEmpty($params['id'])->toArray();
|
|
}
|
|
} |