初始版本
This commit is contained in:
256
server/app/adminapi/logic/finance/WithdrawLogic.php
Executable file
256
server/app/adminapi/logic/finance/WithdrawLogic.php
Executable file
@@ -0,0 +1,256 @@
|
||||
<?php
|
||||
namespace app\adminapi\logic\finance;
|
||||
use app\common\enum\accountLog\CoachAccountLogEnum;
|
||||
use app\common\enum\accountLog\ShopAccountLogEnum;
|
||||
use app\common\logic\CoachAccountLogLogic;
|
||||
use app\common\logic\ShopAccountLogLogic;
|
||||
use app\common\model\coach\Coach;
|
||||
use app\common\model\shop\Shop;
|
||||
use app\common\model\withdraw\WithdrawApply;
|
||||
use Exception;
|
||||
use think\facade\Db;
|
||||
|
||||
class WithdrawLogic
|
||||
{
|
||||
|
||||
/**
|
||||
* @notes 详情
|
||||
* @param $id
|
||||
* @return WithdrawApply|array|\think\Model
|
||||
* @author cjhao
|
||||
* @date 2024/10/31 16:22
|
||||
*/
|
||||
public function detail($id)
|
||||
{
|
||||
$detail = WithdrawApply::where(['id'=>$id])->append(['apply_type_desc'])->findOrEmpty();
|
||||
if(1 == $detail['source']){
|
||||
$detail['relation_info'] = Coach::where(['id'=>$detail['relation_id']])->field('id,name,sn,work_photo as image,mobile')->findOrEmpty()->toArray();
|
||||
}else {
|
||||
$detail['relation_info'] = Shop::where(['id' => $detail['relation_id']])->field('id,name,sn,logo as image,mobile')->findOrEmpty()->toArray();
|
||||
}
|
||||
return $detail->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 审核
|
||||
* @param $params
|
||||
* @return string|true
|
||||
* @author cjhao
|
||||
* @date 2024/10/31 17:44
|
||||
*/
|
||||
public function audit($params)
|
||||
{
|
||||
try {
|
||||
Db::startTrans();
|
||||
$id = $params['id'] ?? '';
|
||||
$status = $params['status'] ?? '';
|
||||
$remark = $params['remark'] ?? '';
|
||||
if(empty($id)){
|
||||
throw new Exception('请选择提现记录');
|
||||
}
|
||||
if('' == $status){
|
||||
throw new Exception('请选择审核操作');
|
||||
}
|
||||
if(empty($remark) && 0 == $status){
|
||||
throw new Exception('请输入备注');
|
||||
}
|
||||
$apply = WithdrawApply::where(['id'=>$id])->findOrEmpty();
|
||||
if(1 != $apply->status){
|
||||
throw new Exception('记录状态已改变');
|
||||
}
|
||||
$auditStatus = 2;
|
||||
if(0 == $status){
|
||||
$auditStatus = 3;
|
||||
}
|
||||
|
||||
$apply->status = $auditStatus;
|
||||
$apply->verify_remark = $remark;
|
||||
$apply->save();
|
||||
//拒绝,退回余额
|
||||
if(0 == $status){
|
||||
|
||||
//申请类型
|
||||
if(1 == $apply['apply_type']){
|
||||
//类型
|
||||
if( 1 == $apply['source']){
|
||||
$relation = Coach::where(['id'=>$apply['relation_id']])->findOrEmpty();
|
||||
//余额
|
||||
$relation->money = round($relation->money+$apply['money']);
|
||||
$relation->save();
|
||||
CoachAccountLogLogic::add(
|
||||
$relation->id,
|
||||
CoachAccountLogEnum::MONEY,
|
||||
CoachAccountLogEnum::WITHDRAW_INC_MONEY,
|
||||
1,
|
||||
$apply['money'],
|
||||
$apply['sn']
|
||||
);
|
||||
|
||||
}else{
|
||||
$relation = shop::where(['id'=> $apply['relation_id']])->findOrEmpty();
|
||||
//余额
|
||||
$relation->money = round($relation->money+$apply['money']);
|
||||
$relation->save();
|
||||
ShopAccountLogLogic::add(
|
||||
$relation->id,
|
||||
ShopAccountLogEnum::MONEY,
|
||||
ShopAccountLogEnum::WITHDRAW_INC_MONEY,
|
||||
1,
|
||||
$apply['money'],
|
||||
$apply['sn']
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
}else{
|
||||
if( 1 == $apply['source']){
|
||||
$relation = coach::where(['id'=> $apply['relation_id']])->findOrEmpty();
|
||||
//余额
|
||||
$relation->deposit = round($relation->deposit+$apply['money']);
|
||||
$relation->save();
|
||||
CoachAccountLogLogic::add(
|
||||
$relation->id,
|
||||
CoachAccountLogEnum::DEPOSIT,
|
||||
CoachAccountLogEnum::WITHDRAW_INC_DEPOSIT,
|
||||
1,
|
||||
$apply['money'],
|
||||
$apply['sn']
|
||||
|
||||
);
|
||||
}else{
|
||||
$relation = shop::where(['id'=> $apply['relation_id']])->findOrEmpty();
|
||||
//余额
|
||||
$relation->deposit = round($relation->deposit+$apply['money']);
|
||||
$relation->save();
|
||||
ShopAccountLogLogic::add(
|
||||
$relation->id,
|
||||
ShopAccountLogEnum::DEPOSIT,
|
||||
ShopAccountLogEnum::WITHDRAW_INC_DEPOSIT,
|
||||
1,
|
||||
$apply['money'],
|
||||
$apply['sn']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Db::commit();
|
||||
return true;
|
||||
}catch (Exception $e){
|
||||
Db::rollback();
|
||||
return $e->getMessage();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 转账
|
||||
* @param $params
|
||||
* @return string|true
|
||||
* @author cjhao
|
||||
* @date 2024/10/31 18:13
|
||||
*/
|
||||
public function transfer($params)
|
||||
{
|
||||
|
||||
try {
|
||||
Db::startTrans();
|
||||
$id = $params['id'] ?? '';
|
||||
$status = $params['status'] ?? '';
|
||||
$remark = $params['remark'] ?? '';
|
||||
$transferProof = $params['transfer_proof'] ?? '';
|
||||
if(empty($id)){
|
||||
throw new Exception('请选择提现记录');
|
||||
}
|
||||
if('' == $status){
|
||||
throw new Exception('请选择审核操作');
|
||||
}
|
||||
if(empty($remark) && 0 == $status){
|
||||
throw new Exception('请输入备注');
|
||||
}
|
||||
$auditStatus = 5;
|
||||
if(1 == $status){
|
||||
if(empty($transferProof)){
|
||||
throw new Exception('请上传转账凭证');
|
||||
}
|
||||
}else{
|
||||
$auditStatus = 6;
|
||||
}
|
||||
$apply = WithdrawApply::where(['id'=>$id])->findOrEmpty();
|
||||
$apply->status = $auditStatus;
|
||||
$apply->verify_remark = $remark;
|
||||
$apply->transfer_proof = $transferProof;
|
||||
$apply->save();
|
||||
//拒绝,退回余额
|
||||
if(0 == $status){
|
||||
|
||||
//申请类型
|
||||
if(1 == $apply['apply_type']){
|
||||
//类型
|
||||
if( 1 == $apply['source']){
|
||||
$relation = Coach::where(['id'=>$apply['relation_id']])->findOrEmpty();
|
||||
//余额
|
||||
$relation->money = round($relation->money+$apply['money']);
|
||||
$relation->save();
|
||||
CoachAccountLogLogic::add(
|
||||
$relation->id,
|
||||
CoachAccountLogEnum::MONEY,
|
||||
CoachAccountLogEnum::WITHDRAW_INC_MONEY,
|
||||
1,
|
||||
$apply['money'],
|
||||
);
|
||||
|
||||
}else{
|
||||
$relation = shop::where(['id'=> $apply['relation_id']])->findOrEmpty();
|
||||
//余额
|
||||
$relation->money = round($relation->money+$apply['money']);
|
||||
$relation->save();
|
||||
ShopAccountLogLogic::add(
|
||||
$relation->id,
|
||||
ShopAccountLogEnum::MONEY,
|
||||
ShopAccountLogEnum::WITHDRAW_INC_MONEY,
|
||||
1,
|
||||
$apply['money'],
|
||||
);
|
||||
}
|
||||
|
||||
}else{
|
||||
if( 1 == $apply['source']){
|
||||
$relation = coach::where(['id'=>$apply['relation_id']])->findOrEmpty();
|
||||
//余额
|
||||
$relation->deposit = round($relation->deposit+$apply['money']);
|
||||
$relation->save();
|
||||
CoachAccountLogLogic::add(
|
||||
$relation->id,
|
||||
CoachAccountLogEnum::DEPOSIT,
|
||||
CoachAccountLogEnum::WITHDRAW_INC_DEPOSIT,
|
||||
1,
|
||||
$apply['money'],
|
||||
);
|
||||
}else{
|
||||
$relation = shop::where(['id'=> $apply['relation_id']])->findOrEmpty();
|
||||
//余额
|
||||
$relation->deposit = round($relation->deposit+$apply['money']);
|
||||
$relation->save();
|
||||
ShopAccountLogLogic::add(
|
||||
$relation->id,
|
||||
ShopAccountLogEnum::DEPOSIT,
|
||||
ShopAccountLogEnum::WITHDRAW_INC_DEPOSIT,
|
||||
1,
|
||||
$apply['money'],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Db::commit();
|
||||
return true;
|
||||
}catch (Exception $e){
|
||||
Db::rollback();
|
||||
return $e->getMessage();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user