RefundOrderItemClass.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace bizGhs\order\classes;
  3. use bizGhs\order\models\RefundOrderItem;
  4. use Yii;
  5. use bizGhs\base\classes\BaseClass;
  6. class RefundOrderItemClass extends BaseClass
  7. {
  8. public static $baseFile = '\bizGhs\order\models\RefundOrderItem';
  9. public static function getRefundItemList($where)
  10. {
  11. $data = self::getList('*', $where, 'id DESC');
  12. $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
  13. if (empty($list)) {
  14. return $data;
  15. }
  16. $orderSnList = array_column($list, 'orderSn');
  17. $infoList = RefundOrderClass::getAllByCondition(['orderSn' => ['in', $orderSnList]], null, '*', 'orderSn');
  18. foreach ($list as $key => $val) {
  19. $orderSn = $val['orderSn'] ?? '';
  20. $info = $infoList[$orderSn] ?? [];
  21. $list[$key]['refundInfo'] = $info;
  22. }
  23. $data['list'] = $list;
  24. $where2 = $where;
  25. if (isset($where2['productId'])) {
  26. $newIds = $where2['productId'][1];
  27. unset($where2['productId']);
  28. $where2['productId'] = $newIds;
  29. }
  30. if (isset($where2['addTime'])) {
  31. $start = $where2['addTime'][1][0];
  32. $end = $where2['addTime'][1][1];
  33. unset($where2['addTime']);
  34. $totalAmount = RefundOrderItem::find()->where($where2)->andWhere(['between', 'addTime', $start, $end])->sum('xhPrice');
  35. $totalCost = RefundOrderItem::find()->where($where2)->andWhere(['between', 'addTime', $start, $end])->sum('itemCost*xhNum');
  36. } else {
  37. $totalAmount = RefundOrderItem::find()->where($where2)->sum('xhPrice');
  38. $totalCost = RefundOrderItem::find()->where($where2)->sum('itemCost*xhNum');
  39. }
  40. $data['totalAmount'] = $totalAmount;
  41. $data['totalCost'] = $totalCost;
  42. return $data;
  43. }
  44. public static function addData($data, $order)
  45. {
  46. self::add($data);
  47. }
  48. public static function batchAddOrderItem($data)
  49. {
  50. self::batchAdd($data);
  51. }
  52. public static function getOrderItemDetail($orderSn)
  53. {
  54. return self::getAllByCondition(['orderSn' => $orderSn], null, '*');
  55. }
  56. }