UserEquityLists.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace app\api\lists;
  3. use app\common\model\equity\EquityConfig;
  4. use app\common\model\equity\UserEquity;
  5. class UserEquityLists extends BaseApiDataLists
  6. {
  7. public function queryWhere()
  8. {
  9. $where = [];
  10. $where[] = ['user_id','=',$this->userId];
  11. $where[] = ['number','>',0];
  12. $where[] = ['end_time','>=',time()];
  13. $equityConfigIds = EquityConfig::where('status',1)->column('id')??[-1];
  14. $where[] = ['equity_id','in',$equityConfigIds];
  15. if(isset($this->params['goods_id']) && !empty($this->params['goods_id'])){
  16. $where[] = ['goods_id','=',$this->params['goods_id']];
  17. }
  18. return $where;
  19. }
  20. public function lists():array
  21. {
  22. $list = UserEquity::with(['equityConfig'=>function ($query) {
  23. $query->field(['*']);
  24. },'goods'=>function ($query) {
  25. $query->field(['id','goods_image','goods_name','goods_banners','good_unit','sell_num','base_service_fee',
  26. 'service_total','service_fee','service_image','fee_schedule','warranty_period','goods_payment_type','goods_category_id']);
  27. }])->where($this->queryWhere())
  28. ->field(['id','user_id','equity_id','goods_id','number','end_time'])
  29. ->limit($this->limitOffset, $this->limitLength)
  30. ->order('end_time')
  31. ->select()
  32. ->each(function ($item) {
  33. $item->end_time = date('Y-m-d H:i:s',$item['end_time']);
  34. })
  35. ->toArray();
  36. /*foreach ($list as &$item) {
  37. $item['all_num'] = $item['equityConfig']['number'];
  38. $item['price'] = $item['equityConfig']['price'];
  39. $item['equity_name'] = $item['equityConfig']['equity_name'];
  40. $item['goods_name'] = $item['goods']['goods_name'];
  41. }*/
  42. return $list;
  43. }
  44. public function count(): int
  45. {
  46. return UserEquity::where($this->queryWhere())->count();
  47. }
  48. }