StatPdSubClass.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace biz\stat\classes;
  3. use biz\base\classes\BaseClass;
  4. use biz\stat\models\StatPdSub;
  5. class StatPdSubClass extends BaseClass
  6. {
  7. public static $baseFile = '\biz\stat\models\StatPdSub';
  8. //获取总和 ssh 20210829
  9. public static function getSum($where)
  10. {
  11. $amount = self::sum($where, 'amount');
  12. return empty($amount) ? 0 : $amount;
  13. }
  14. //盘亏统计 ssh 20210827
  15. public static function replace($main, $shop, $amount, $date = null)
  16. {
  17. $sjId = $shop->sjId ?? 0;
  18. $shopId = $shop->id ?? 0;
  19. $mainId = $main->id ?? 0;
  20. if ($date == null) {
  21. $time = date('Ymd');
  22. } else {
  23. $time = $date;
  24. }
  25. $stat = self::getByCondition(['mainId' => $mainId, 'time' => $time], true);
  26. if (empty($stat)) {
  27. $stat = self::add(['shopId' => $shopId, 'mainId' => $mainId, 'sjId' => $sjId, 'time' => $time, 'num' => 0], true);
  28. }
  29. $id = $stat->id;
  30. $unique = self::getLockById($id);
  31. $currentAmount = bcadd($unique->amount, $amount, 2);
  32. $unique->amount = $currentAmount;
  33. $unique->totalAmount = $main->totalPdSub;
  34. $unique->num += 1;
  35. $unique->save();
  36. StatPdSubMonthClass::replace($main, $shop, $amount, $time);
  37. }
  38. }