RetentionMoneyLogic.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * @author 林海涛
  4. * @date 2024/7/28 下午2:36
  5. */
  6. namespace app\adminapi\logic\master_worker;
  7. use app\common\enum\worker\WorkerAccountLogEnum;
  8. use app\common\logic\BaseLogic;
  9. use app\common\model\master_worker\MasterWorker;
  10. use app\common\model\master_worker\MasterWorkerRetentionMoneyLog;
  11. class RetentionMoneyLogic extends BaseLogic
  12. {
  13. public static function totalAmount($params)
  14. {
  15. try{
  16. $model = MasterWorker::findOrEmpty($params['worker_id']);
  17. if($model->isEmpty()){
  18. throw new \Exception('用户不存在');
  19. }
  20. $where = [];
  21. $where[] = ['worker_id','=',$params['worker_id']] ;
  22. $incWhere =$where;
  23. $incWhere[] = ['action', '=',WorkerAccountLogEnum::INC];
  24. $data = [];
  25. $data['amount_inc_total'] = MasterWorkerRetentionMoneyLog::where($incWhere)
  26. ->sum('amount');
  27. $outWhere = $where;
  28. $outWhere[] =['action', '=',WorkerAccountLogEnum::DEC];
  29. $data['amount_dec_total'] = MasterWorkerRetentionMoneyLog::where($outWhere)
  30. ->sum('amount');
  31. $data['amount_available_total'] = $data['amount_inc_total'] - $data['amount_dec_total'];
  32. $data['retention_money_status'] = $model->retention_money_status;
  33. $data['retention_money_status_text'] = $model->retention_money_status_text;
  34. $data['retention_pay_status'] = $model->retention_pay_status;
  35. $data['retention_pay_status_text'] = $model->retention_pay_status_text;
  36. $data['worker_number'] = $model->worker_number;
  37. $data['real_name'] = $model->real_name;
  38. $data['worker_id'] = $model->id;
  39. return $data;
  40. } catch(\Exception $e){
  41. self::setError($e->getMessage());
  42. return false;
  43. }
  44. }
  45. }