182 lines
4.6 KiB
PHP
182 lines
4.6 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 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
|
|
]);
|
|
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
|
|
]);
|
|
if(!empty($data['mer_id'])){
|
|
$merchant = Merchant::where('mer_id',$data['mer_id'])->findOrEmpty();
|
|
$merchant->where('mer_id',$data['mer_id'])->update([
|
|
'mer_money' => bcsub($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' => bcsub($supplier['mer_money'],$data['amount'],2)
|
|
]);
|
|
}
|
|
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();
|
|
}
|
|
} |