xhStatIncomeMonthService.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. $time = date("Ym");
  17. $income = self::getByTime($merchantId, $time);
  18. $weixin = 0;
  19. $alipay = 0;
  20. $balancePay = 0;
  21. $cash = 0;
  22. $addTime = time();
  23. $payList = configDict::getConfig('payWay');
  24. if ($payList['weixinPay'] == $payWay) {
  25. $weixin = $totalFee;
  26. } elseif ($payWay == $payList['alipay']) {
  27. $alipay = $totalFee;
  28. } elseif ($payWay == $payList['balancePay']) {
  29. $balancePay = $totalFee;
  30. } elseif ($payWay == $payList['cashPay']) {
  31. $cash = $totalFee;
  32. } elseif ($payWay == $payList['mini']) {
  33. $weixin = $totalFee;
  34. }
  35. if (empty($income)) {
  36. $data = ['year' => $year,
  37. 'month' => $month,
  38. 'time' => $time,
  39. 'amount' => $totalFee,
  40. 'merchantId' => $merchantId,
  41. 'addTime' => $addTime,
  42. 'weixin' => $weixin,
  43. 'alipay' => $alipay,
  44. 'balancePay' => $balancePay,
  45. 'cash' => $cash,
  46. ];
  47. self::add($data);
  48. } else {
  49. $amount = stringUtil::calcAdd($income['amount'], $totalFee);
  50. $weixin = stringUtil::calcAdd($income['weixin'], $weixin);
  51. $cash = stringUtil::calcAdd($income['cash'], $cash);
  52. $balancePay = stringUtil::calcAdd($income['balancePay'], $balancePay);
  53. $alipay = stringUtil::calcAdd($income['alipay'], $alipay);
  54. $data = [
  55. 'amount' => $amount,
  56. 'weixin' => $weixin,
  57. 'alipay' => $alipay,
  58. 'balancePay' => $balancePay,
  59. 'cash' => $cash,
  60. ];
  61. self::updateByIds($merchantId, $year, $month, $data);
  62. }
  63. }
  64. public static function updateByIds($merchantId, $year, $month, $data)
  65. {
  66. xhStatIncomeMonth::updateByCondition(['year' => $year, 'month' => $month, 'merchantId' => $merchantId], $data);
  67. self::getByIds($merchantId, $year, $month);
  68. $cacheKey = configDict::getCacheKey('xhStatIncomeMonth') . '_' . $merchantId . '_' . $year . '_' . $month;
  69. $params = [$cacheKey];
  70. if (!empty($data)) {
  71. foreach ($data as $key => $val) {
  72. $params[] = $key;
  73. $params[] = $val;
  74. }
  75. }
  76. Yii::$app->redis->executeCommand('HMSET', $params);
  77. return self::getByIds($merchantId, $year, $month);
  78. }
  79. public static function add($data)
  80. {
  81. $return = xhStatIncomeMonth::add($data);
  82. return $return;
  83. }
  84. public static function getByIds($merchantId, $year, $month)
  85. {
  86. $income = xhStatIncomeMonth::find()->where(['merchantId' => $merchantId, 'year' => $year, 'month' => $month])->asArray()->one();
  87. return $income;
  88. }
  89. public static function getByTime($merchantId, $time)
  90. {
  91. $income = xhStatIncomeMonth::find()->where(['merchantId' => $merchantId, 'time' => $time])->asArray()->one();
  92. return $income;
  93. }
  94. /**
  95. * 获取本月收入
  96. */
  97. public static function getMonthIncome($merchantId, $year, $month)
  98. {
  99. $income = self::getByIds($merchantId, $year, $month);
  100. $amount = 0;
  101. if (!empty($income)) {
  102. $amount = $income['amount'];
  103. }
  104. return $amount;
  105. }
  106. }