xhStatIncomeMonthService.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. namespace common\services;
  3. use common\components\stringUtil;
  4. use Yii;
  5. use common\models\xhStatIncomeMonth;
  6. use common\components\configDict;
  7. class xhStatIncomeMonthService
  8. {
  9. /**
  10. * 添加与更新
  11. */
  12. public static function replace($merchantId, $totalFee, $payWay)
  13. {
  14. $year = date("Y");
  15. $month = date("n");
  16. $income = self::getByIds($merchantId, $year, $month);
  17. $weixin = 0;
  18. $alipay = 0;
  19. $balancePay = 0;
  20. $cash = 0;
  21. $addTime = time();
  22. $payList = configDict::getConfig('payWay');
  23. if ($payList['weixinPay'] == $payWay) {
  24. $weixin = $totalFee;
  25. } elseif ($payWay == $payList['alipay']) {
  26. $alipay = $totalFee;
  27. } elseif ($payWay == $payList['balancePay']) {
  28. $balancePay = $totalFee;
  29. } elseif ($payWay == $payList['cashPay']) {
  30. $cash = $totalFee;
  31. } elseif ($payWay == $payList['mini']) {
  32. $weixin = $totalFee;
  33. }
  34. if (empty($income)) {
  35. $data = ['year' => $year,
  36. 'month' => $month,
  37. 'amount' => $totalFee,
  38. 'merchantId' => $merchantId,
  39. 'addTime' => $addTime,
  40. 'weixin' => $weixin,
  41. 'alipay' => $alipay,
  42. 'balancePay' => $balancePay,
  43. 'cash' => $cash,
  44. ];
  45. self::add($data);
  46. } else {
  47. $amount = stringUtil::calcAdd($income['amount'], $totalFee);
  48. $weixin = stringUtil::calcAdd($income['weixin'], $weixin);
  49. $cash = stringUtil::calcAdd($income['cash'], $cash);
  50. $balancePay = stringUtil::calcAdd($income['balancePay'], $balancePay);
  51. $alipay = stringUtil::calcAdd($income['alipay'], $alipay);
  52. $data = [
  53. 'amount' => $amount,
  54. 'weixin' => $weixin,
  55. 'alipay' => $alipay,
  56. 'balancePay' => $balancePay,
  57. 'cash' => $cash,
  58. ];
  59. self::updateByIds($merchantId, $year, $month, $data);
  60. }
  61. }
  62. public static function updateByIds($merchantId, $year, $month, $data)
  63. {
  64. xhStatIncomeMonth::updateByCondition(['year' => $year, 'month' => $month, 'merchantId' => $merchantId], $data);
  65. self::getByIds($merchantId, $year, $month);
  66. $cacheKey = configDict::getCacheKey('xhStatIncomeMonth') . '_' . $merchantId . '_' . $year . '_' . $month;
  67. $params = [$cacheKey];
  68. if (!empty($data)) {
  69. foreach ($data as $key => $val) {
  70. $params[] = $key;
  71. $params[] = $val;
  72. }
  73. }
  74. Yii::$app->redis->executeCommand('HMSET', $params);
  75. return self::getByIds($merchantId, $year, $month);
  76. }
  77. public static function add($data)
  78. {
  79. $return = xhStatIncomeMonth::add($data);
  80. return $return;
  81. }
  82. public static function getByIds($merchantId, $year, $month)
  83. {
  84. $income = xhStatIncomeMonth::find()->where(['merchantId' => $merchantId, 'year' => $year, 'month' => $month])->asArray()->one();
  85. return $income;
  86. }
  87. /**
  88. * 获取本月收入
  89. */
  90. public static function getMonthIncome($merchantId, $year, $month)
  91. {
  92. $income = self::getByIds($merchantId, $year, $month);
  93. $amount = 0;
  94. if (!empty($income)) {
  95. $amount = $income['amount'];
  96. }
  97. return $amount;
  98. }
  99. }