TakeCashQueryCommand.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace app\common\command;
  3. use app\common\model\MoneyLog;
  4. use app\common\model\TakeCash;
  5. use app\common\model\User;
  6. use app\service\WechatTransferSvc;
  7. use think\console\Command;
  8. use think\console\Input;
  9. use think\console\Output;
  10. use think\Db;
  11. use think\Log;
  12. class TakeCashQueryCommand extends Command{
  13. protected function configure()
  14. {
  15. $this->setName('tk:query')->setDescription('提现确认');
  16. }
  17. protected function execute(Input $input, Output $output)
  18. {
  19. $cashes=TakeCash::where('check_status',0)
  20. ->where('status',TakeCash::STATUS_PASS)
  21. ->limit(10)
  22. ->select();
  23. $class=new WechatTransferSvc();
  24. foreach ($cashes as $cash){
  25. Db::startTrans();
  26. try {
  27. list($succ,$data)=$class->checkDetail($cash['order_no'],$cash['detail_no']);
  28. if(in_array($data['detail_status'],['SUCCESS','PROCESSING'])){
  29. $cash['check_status']=$data['detail_status']=='SUCCESS'?1:2;
  30. if($cash['check_status']==2) {
  31. $cash['check_data'] = $data['fail_reason'] ?? json_encode($data, 256);
  32. }
  33. if($cash['check_status']==2){
  34. User::money($this['amount'],$cash['user_id'],MoneyLog::TYPE_TAKECASH_REJECT,'提现打款失败');
  35. }
  36. $cash->save();
  37. }
  38. Db::commit();
  39. }catch (\Exception $e){
  40. Db::rollback();
  41. }
  42. }
  43. }
  44. }