StatKdMonthClass.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace biz\stat\classes;
  3. use biz\base\classes\BaseClass;
  4. use biz\stat\models\StatCg;
  5. use common\components\dict;
  6. use common\components\util;
  7. class StatKdMonthClass extends BaseClass
  8. {
  9. public static $baseFile = '\biz\stat\models\StatKdMonth';
  10. //每月花材统计 shish 20211012
  11. public static function replace($shop, $amount, $payWay, $date = null)
  12. {
  13. if ($date == null) {
  14. $time = date('Ym');
  15. $year = date('Y');
  16. $month = date('m');
  17. } else {
  18. $timestamp = strtotime($date);
  19. $time = date('Ym', $timestamp);
  20. $year = date('Y', $timestamp);
  21. $month = date('m', $timestamp);
  22. }
  23. $sjId = $shop->sjId ?? 0;
  24. $shopId = $shop->id ?? 0;
  25. $stat = self::getByCondition(['sjId' => $sjId, 'shopId' => $shopId, 'time' => $time], true);
  26. if (empty($stat)) {
  27. $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'time' => $time, 'year' => $year, 'month' => $month], true);
  28. }
  29. $id = $stat->id;
  30. $unique = self::getLockById($id);
  31. $currentAmount = bcadd($unique->amount, $amount, 2);
  32. $unique->amount = $currentAmount;
  33. $payWayMap = dict::getDict('payWay');
  34. switch ($payWay) {
  35. case $payWayMap['wxPay']:
  36. $currentWx = bcadd($unique->wx, $amount, 2);
  37. $unique->wx = $currentWx;
  38. break;
  39. case $payWayMap['alipay']:
  40. $currentAliPay = bcadd($unique->alipay, $amount, 2);
  41. $unique->alipay = $currentAliPay;
  42. break;
  43. case $payWayMap['balancePay']:
  44. $currentBalance = bcadd($unique->balance, $amount, 2);
  45. $unique->balance = $currentBalance;
  46. break;
  47. case $payWayMap['debtPay']:
  48. $currentDebt = bcadd($unique->debt, $amount, 2);
  49. $unique->debt = $currentDebt;
  50. break;
  51. case $payWayMap['cash']:
  52. $currentCash = bcadd($unique->cash, $amount, 2);
  53. $unique->cash = $currentCash;
  54. break;
  55. case $payWayMap['bankCard']:
  56. $currentBank = bcadd($unique->bank, $amount, 2);
  57. $unique->bank = $currentBank;
  58. break;
  59. default:
  60. }
  61. $unique->save();
  62. }
  63. }