StatItemController.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace ghs\controllers;
  3. use biz\stat\classes\StatItemClass;
  4. use bizGhs\product\classes\ProductClass;
  5. use common\components\arrayUtil;
  6. use common\components\dateUtil;
  7. use Yii;
  8. use common\components\util;
  9. class StatItemController extends BaseController
  10. {
  11. //花材销量 shish 20211021
  12. public function actionProfile()
  13. {
  14. $get = Yii::$app->request->get();
  15. $where = [];
  16. $where['shopId'] = $this->shopId;
  17. if (isset($get['shopId']) && !empty($get['shopId'])) {
  18. $where['shopId'] = $get['shopId'];
  19. }
  20. $selectTime = $get['selectTime'] ?? '';
  21. if (!empty($selectTime)) {
  22. $startTime = $get['startTime'] ?? '';
  23. $endTime = $get['endTime'] ?? '';
  24. $period = dateUtil::formatTime($selectTime, $startTime, $endTime, true);
  25. $where['time'] = ['between', [$period['startTime'], $period['endTime']]];
  26. }
  27. $list = StatItemClass::getAllByCondition($where, null, '*');
  28. if (empty($list)) {
  29. util::success(['list' => $list]);
  30. }
  31. $ids = array_column($list, 'itemId');
  32. $ids = array_unique(array_filter($ids));
  33. $productInfo = ProductClass::getByIds($ids, null, 'id');
  34. $stat = [];
  35. foreach ($list as $key => $val) {
  36. $itemId = $val['itemId'] ?? 0;
  37. $idsData[$itemId] = 0;
  38. $num = $val['num'] ?? 0;
  39. $amount = $val['amount'] ?? 0;
  40. $name = $productInfo[$itemId]['name'] ?? '';
  41. $stat[$itemId]['productId'] = $itemId;
  42. $stat[$itemId]['name'] = $name;
  43. if (isset($stat[$itemId]['num'])) {
  44. $stat[$itemId]['num'] = bcadd($stat[$itemId]['num'], $num, 2);
  45. } else {
  46. $stat[$itemId]['num'] = $num;
  47. }
  48. if (isset($stat[$itemId]['amount'])) {
  49. $stat[$itemId]['amount'] = bcadd($stat[$itemId]['amount'], $amount, 2);
  50. } else {
  51. $stat[$itemId]['amount'] = $amount;
  52. }
  53. }
  54. $stat = arrayUtil::arraySort($stat, 'num');
  55. util::success(['list' => $stat]);
  56. }
  57. }