ManyOrder.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. /**
  3. * @author: xaboy<365615158@qq.com>
  4. * @day: 2017/11/11
  5. */
  6. namespace app\admin\model\many;
  7. use app\admin\model\user\UserAddress;
  8. use crmeb\services\PHPExcelService;
  9. use crmeb\traits\ModelTrait;
  10. use crmeb\basic\BaseModel;
  11. /**
  12. * Class StoreCategory
  13. * @package app\admin\model\store
  14. */
  15. class ManyOrder extends BaseModel
  16. {
  17. /**
  18. * 数据表主键
  19. * @var string
  20. */
  21. protected $pk = 'id';
  22. /**
  23. * 模型名称
  24. * @var string
  25. */
  26. protected $name = 'many_order';
  27. use ModelTrait;
  28. protected $autoWriteTimestamp = true;
  29. public static function list($where)
  30. {
  31. $model = self::alias('a')
  32. ->field('a.*,b.name,u.nickname,u.phone')
  33. ->order('a.id DESC')
  34. ->leftJoin('many b', 'b.id = a.many_id')
  35. ->leftJoin('user u', 'u.uid = a.uid');
  36. if ($where['order_id'])$model->where('a.order_id' , '=', $where['order_id']);
  37. if ($where['status'] == 1)$model->where('a.status' , '=', 0);
  38. if ($where['status'] == 2)$model->where('a.status' , '=', 1);
  39. if ($where['status'] == 3)$model->where('a.status' , '=', 2);
  40. if ($where['uid'])$model->where('a.uid' , '=', $where['uid']);
  41. if ($where['stage'])$model->where('a.stage' , '=', $where['stage']);
  42. if (trim($where['many_id']) != '')$model->where('b.id' , '=', $where['many_id']);
  43. if (trim($where['name']) != '')$model->where('u.uid|u.account|u.nickname' , 'like', '%'.$where['name'].'%');
  44. if (trim($where['data']) != '') $model = self::getModelTime($where, $model, 'a.create_time');
  45. if ($where['type']){
  46. $data['user'] = count($model->column('a.uid'));
  47. $data['price'] = $model->sum('price');
  48. return $data;
  49. }
  50. $data['count'] = $model->count();
  51. if (isset($where['excel']) && $where['excel'] == 1) {
  52. $list = ($list = $model->select()) && count($list) ? $list->toArray() : [];
  53. } else {
  54. $list = ($list = $model->page((int)$where['page'], (int)$where['limit'])->select()) && count($list) ? $list->toArray() : [];
  55. }
  56. if (isset($where['excel']) && $where['excel'] == 1) {
  57. self::SaveExcel($list);
  58. }
  59. if ($where['page'] && $where['limit']){
  60. $model->page($where['page'], $where['limit']);
  61. }else{
  62. $model->page(20, 1);
  63. }
  64. $list = $model->select()->toArray();
  65. foreach ($list as &$item)
  66. {
  67. $item['real_name'] = UserAddress::where('uid', $item['uid'])->value('real_name');
  68. if ($item['return_time'] > 0){
  69. $item['return_time'] = date('Y-m-d H:i:s', $item['return_time']);
  70. }
  71. }
  72. $data['data'] = $list;
  73. return $data;
  74. }
  75. /*
  76. * 保存并下载excel
  77. * $list array
  78. * return
  79. */
  80. public static function SaveExcel($list)
  81. {
  82. $export = [];
  83. foreach ($list as $index => $item) {
  84. $status = $item['status']== 0 ? '正常' : $item['status']== 1 ? '成功返还':$item['status']== 2 ? '失败返还': '未知';
  85. $export[] = [
  86. $item['order_id'],
  87. $item['nickname'],
  88. $item['name'],
  89. $item['stage'],
  90. $item['price'],
  91. $status,
  92. $item['create_time'],
  93. ];
  94. }
  95. PHPExcelService::setExcelHeader(['订单号', '用户', '众筹名称', '期数', '金额', '状态',
  96. '订单时间'])
  97. ->setExcelTile('订单导出' . date('YmdHis', time()), '订单信息' . time(), ' 生成时间:' . date('Y-m-d H:i:s', time()))
  98. ->setExcelContent($export)
  99. ->ExcelSave();
  100. }
  101. }