PerformanceLogic.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace app\api\logic;
  3. use app\common\enum\worker\WorkerAccountLogEnum;
  4. use app\common\logic\BaseLogic;
  5. use app\common\logic\WorkerAccountLogLogic;
  6. use app\common\model\performance\PerformanceRules;
  7. use think\facade\Db;
  8. /**
  9. * 师傅业绩逻辑层
  10. * Class PerformanceLogic
  11. * @package app\api\logic
  12. */
  13. class PerformanceLogic extends BaseLogic
  14. {
  15. /**
  16. * @param $work
  17. * @return false|void
  18. */
  19. public static function calculatePerformance($work)
  20. {
  21. //工单已完结,进行结算,结算完成后设置work_pay_status为2,已结算
  22. $rule = PerformanceRules::whereFindInSet('goods_category_ids',$work->goods_category_id)->findOrEmpty();
  23. if($rule->isEmpty()){
  24. $work->work_pay_status = 3;
  25. }else{
  26. $work->work_pay_status = 2;
  27. }
  28. $work->save();
  29. //师傅金额结算
  30. if(!$rule->isEmpty()){
  31. if($rule['type']==0){
  32. $work_price = $work->work_total;
  33. }else{
  34. $work_price = $work->work_amount;
  35. }
  36. $settlement_amount = bcmul($work_price, $rule['rate']);
  37. WorkerAccountLogLogic::addAccountLog($work,$settlement_amount,WorkerAccountLogEnum::UM_INC_ADMIN,WorkerAccountLogEnum::INC);
  38. }
  39. }
  40. }