作者 刘朕
1 个管道 的构建 通过 耗费 20 秒

后台用户、订单列表优化,订单生成优化

@@ -12,37 +12,34 @@ class PlatformordersController extends AdminBaseController{ @@ -12,37 +12,34 @@ class PlatformordersController extends AdminBaseController{
12 */ 12 */
13 public function plat_list(){ 13 public function plat_list(){
14 14
15 - if($this -> request -> isPost()){  
16 - $where = [  
17 - "indent_type" => 1  
18 - ];  
19 - if(!empty($_POST['start_time']) && !empty($_POST['end_time'])){  
20 - $start_time = strtotime($_POST['start_time']);  
21 - $end_time = strtotime($_POST['end_time']);  
22 - $where['create_time'] = [['>=',$start_time],['<=',$end_time]];  
23 - }  
24 - if(!empty($_POST['keyword'])){  
25 - $where['order_number'] = $_POST['keyword'];  
26 - }  
27 - if(!empty($_POST['state'])){  
28 - $where['state'] = $_POST['state'];  
29 - }  
30 - $data = Db::name('indent') -> where($where) -> paginate(1000000);  
31 - $data1 = $data -> toArray();  
32 - if(count($data1['data'])!=0){  
33 - foreach ($data1['data'] as $key => $val){  
34 - $data1['data'][$key]['dizhi'] = Db::name('address') -> where('id',$val['indent_address']) -> find();  
35 - }  
36 - }  
37 - $this -> assign('data1',$data1['data']);  
38 - }else{  
39 - $data = Db::name('indent') -> where('indent_type','1') -> paginate(12);  
40 - $data1 = $data -> toArray(); 15 + $param = $this->request->param();
  16 + $where = [
  17 + "indent_type" => 1
  18 + ];
  19 + if(!empty($param['start_time']) && !empty($param['end_time'])){
  20 + $start_time = strtotime($param['start_time']);
  21 + $end_time = strtotime($param['end_time']);
  22 + $where['create_time'] = [['>=',$start_time],['<=',$end_time]];
  23 + }
  24 + if(!empty($param['keyword'])){
  25 + $where['order_number|name|phone'] = ['like','%'.$param['keyword'].'%'];
  26 + }
  27 + if(!empty($param['state'])){
  28 + $where['state'] = $param['state'];
  29 + }
  30 + $data = Db::name('indent') -> where($where)->order('create_time','DESC') -> paginate(12);
  31 + $data->appends($param);
  32 + $data1 = $data -> toArray();
  33 + if(count($data1['data'])!=0){
41 foreach ($data1['data'] as $key => $val){ 34 foreach ($data1['data'] as $key => $val){
42 $data1['data'][$key]['dizhi'] = Db::name('address') -> where('id',$val['indent_address']) -> find(); 35 $data1['data'][$key]['dizhi'] = Db::name('address') -> where('id',$val['indent_address']) -> find();
43 } 36 }
44 - $this -> assign('data1',$data1['data']);  
45 } 37 }
  38 + $this -> assign('data1',$data1['data']);
  39 + $this->assign('start_time', isset($param['start_time']) ? $param['start_time'] : '');
  40 + $this->assign('end_time', isset($param['end_time']) ? $param['end_time'] : '');
  41 + $this->assign('keyword', isset($param['keyword']) ? $param['keyword'] : '');
  42 + $this->assign('state', isset($param['state']) ? $param['state'] : '');
46 $this -> assign('data',$data); 43 $this -> assign('data',$data);
47 return $this -> fetch(); 44 return $this -> fetch();
48 45
@@ -57,15 +54,17 @@ class PlatformordersController extends AdminBaseController{ @@ -57,15 +54,17 @@ class PlatformordersController extends AdminBaseController{
57 $indent_id = $id['id']; 54 $indent_id = $id['id'];
58 $data_goods = Db::name('indent_goods') -> where('indent_id',$indent_id) -> select(); 55 $data_goods = Db::name('indent_goods') -> where('indent_id',$indent_id) -> select();
59 $data_in = Db::name('indent') -> where('id',$indent_id) -> find(); 56 $data_in = Db::name('indent') -> where('id',$indent_id) -> find();
60 - $this -> assign('data_goods',$data_goods);  
61 - $this -> assign('data_in',$data_in);  
62 //地址查询 57 //地址查询
63 $address = Db::name('address') -> where("id",$data_in['indent_address']) -> find(); 58 $address = Db::name('address') -> where("id",$data_in['indent_address']) -> find();
64 - if(!empty($address)){ 59 + if($address){
  60 + $data_in['name'] = $address['name'];
  61 + $data_in['phone'] = $address['phone'];
65 $this -> assign('address',$address); 62 $this -> assign('address',$address);
66 }else{ 63 }else{
67 $this -> assign('address',null); 64 $this -> assign('address',null);
68 } 65 }
  66 + $this -> assign('data_goods',$data_goods);
  67 + $this -> assign('data_in',$data_in);
69 68
70 return $this -> fetch(); 69 return $this -> fetch();
71 70
@@ -85,11 +84,132 @@ class PlatformordersController extends AdminBaseController{ @@ -85,11 +84,132 @@ class PlatformordersController extends AdminBaseController{
85 84
86 85
87 86
  87 + public function out()
  88 + {
  89 + // 进行查询条件的处理
  90 + $param = $this->request->param();
  91 + $where = [
  92 + "indent_type" => 1
  93 + ];
  94 + if(!empty($param['start_time']) && !empty($param['end_time'])){
  95 + $start_time = strtotime($param['start_time']);
  96 + $end_time = strtotime($param['end_time']);
  97 + $where['create_time'] = [['>=',$start_time],['<=',$end_time]];
  98 + }
  99 + if(!empty($param['keyword'])){
  100 + $where['order_number|name|phone'] = ['like','%'.$param['keyword'].'%'];
  101 + }
  102 + if(!empty($param['state'])){
  103 + $where['state'] = $param['state'];
  104 + }
  105 + $data = Db::name('indent') -> where($where)->order('create_time','DESC') -> paginate(12);
  106 + $data->appends($param);
  107 + $data1 = $data -> toArray();
  108 + if(count($data1['data'])!=0){
  109 + foreach ($data1['data'] as $key => $val){
  110 + $data1['data'][$key]['dizhi'] = Db::name('address') -> where('id',$val['indent_address']) -> find();
  111 + }
  112 + }
  113 + $this->expList($data1['data']);
  114 + }
88 115
89 116
  117 + // 数据导出
  118 + public function expList($array){
  119 +
  120 + //导出Excel
  121 + $objPHPExcel = new \PHPExcel();
  122 +
  123 + //Add some data
  124 + $objPHPExcel->setActiveSheetIndex(0)
  125 + ->setCellValue('A1', '序号')
  126 + ->setCellValue('B1', '订单号')
  127 + ->setCellValue('C1', '姓名')
  128 + ->setCellValue('D1', '手机号')
  129 + ->setCellValue('E1', '收货地址')
  130 + ->setCellValue('F1', '数量')
  131 + ->setCellValue('G1', '价钱')
  132 + ->setCellValue('H1', '订单状态')
  133 + ->setCellValue('I1', '创建时间');
  134 +
  135 + // sheet个数
  136 + $sheet_index = 0;
  137 + $sheet_count = 1;
  138 + if(count($array) > 65535) {
  139 + $sheet_count = ceil(count($array)/65535);
  140 + for ($j = 1; $j < $sheet_count; $j++) {
  141 + $objPHPExcel->createSheet();
  142 + $objPHPExcel->setActiveSheetIndex($sheet_index+$j)
  143 + ->setCellValue('A1', '序号')
  144 + ->setCellValue('B1', '订单号')
  145 + ->setCellValue('C1', '姓名')
  146 + ->setCellValue('D1', '手机号')
  147 + ->setCellValue('E1', '收货地址')
  148 + ->setCellValue('F1', '数量')
  149 + ->setCellValue('G1', '价钱')
  150 + ->setCellValue('H1', '订单状态')
  151 + ->setCellValue('I1', '创建时间');
  152 + }
  153 + }
90 154
  155 + // 设置单元格宽度
  156 + $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
  157 + $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25);
  158 + $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
  159 + $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
  160 + $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);
  161 + $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);
  162 + $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(15);
  163 + $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
  164 + $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(25);
  165 +
  166 + $i = 2;
  167 + // 计数器
  168 + $cnt = 0;
  169 + // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
  170 + $limit = 35000;
  171 + foreach ($array as $k=>$v) {
  172 + $cnt ++;
  173 + if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
  174 + ob_flush();
  175 + flush();
  176 + $cnt = 0;
  177 + }
  178 + $state = '待付款';
  179 + if($v['state'] == 1) {
  180 + $state = '已付款';
  181 + }
  182 + if($v['state'] == 2) {
  183 + $state = '未完成';
  184 + }
  185 + if($v['state'] == 3) {
  186 + $state = '已完成';
  187 + }
  188 + $objPHPExcel->setActiveSheetIndex($sheet_index)
  189 + ->setCellValue('A' . $i, $v['id'])
  190 + ->setCellValue('B' . $i, $v['order_number'])
  191 + ->setCellValue('C' . $i, $v['name'])
  192 + ->setCellValue('D' . $i, $v['phone'])
  193 + ->setCellValue('E' . $i, $v['dizhi']['region'].' '.$v['dizhi']['detailed'])
  194 + ->setCellValue('F' . $i, $v['book_num'])
  195 + ->setCellValue('G' . $i, $v['money'])
  196 + ->setCellValue('H' . $i, $state)
  197 + ->setCellValue('I' . $i, date('Y-m-d H:i:s',$v['create_time']));
  198 + $i++;
  199 + if($k == ($sheet_index+1)*65535) {
  200 + $i = 2;
  201 + $sheet_index++;
  202 + }
  203 + }
91 204
92 -  
93 -  
94 - 205 + $filename = '平台订单数据'. date('Y-m-d').'.xls';
  206 + ob_end_clean();
  207 + header('Content-Type: text/csv');
  208 +// header('Content-Type: application/vnd.ms-excel');
  209 + header('Content-Disposition: attachment;filename="' . $filename . '"');
  210 + header('Cache-Control: max-age=0');
  211 + $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  212 + $objWriter->save('php://output');
  213 + exit;
  214 + }
95 } 215 }
@@ -11,25 +11,26 @@ class SalesmanController extends AdminBaseController{ @@ -11,25 +11,26 @@ class SalesmanController extends AdminBaseController{
11 * 业务员列表 11 * 业务员列表
12 */ 12 */
13 public function salesman_list(){ 13 public function salesman_list(){
14 -  
15 - if($this -> request -> isPost()){  
16 - $where = [  
17 - 'a.status' => 2  
18 - ];  
19 - if(!empty($_POST['start_time']) && !empty($_POST['end_time'])){  
20 - $start_time = strtotime($_POST['start_time']);  
21 - $end_time = strtotime($_POST['end_time']);  
22 - $where['audit_time'] = [['>=',$start_time],['<=',$end_time]];  
23 - }  
24 - if(!empty($_POST['keyword'])){  
25 - $keyword = $_POST['keyword'];  
26 - $where['b.phone'] = $keyword;  
27 - }  
28 - $data = Db::name('my_user') -> alias('a') -> field("a.uid,a.id,a.balance,a.audit_time,a.is_pro,b.phone") -> join('sale_audit b','a.uid = b.uid','LEFT') -> where($where) -> group('a.id') -> paginate(1000000);  
29 - }else{  
30 - $data = Db::name('my_user') -> alias('a') -> field("a.uid,a.id,a.balance,a.audit_time,a.is_pro,b.phone") -> join('sale_audit b','a.uid = b.uid','LEFT') -> where('a.status',2) -> group('a.id') -> paginate(12);  
31 - 14 + $param = $this->request->param();
  15 + $where = [
  16 + 'a.status' => 2
  17 + ];
  18 + if(!empty($param['start_time']) && !empty($param['end_time'])){
  19 + $start_time = strtotime($param['start_time']);
  20 + $end_time = strtotime($param['end_time']);
  21 + $where['audit_time'] = [['>=',$start_time],['<=',$end_time]];
  22 + }
  23 + if(!empty($param['keyword'])){
  24 + $keyword = $param['keyword'];
  25 + $where['b.phone'] = $keyword;
32 } 26 }
  27 + $data = Db::name('my_user')->alias('a')
  28 + ->field("a.uid,a.id,a.balance,a.audit_time,a.is_pro,b.phone")
  29 + ->join('sale_audit b','a.uid = b.uid','LEFT')
  30 + ->where('a.status',2)
  31 + ->group('a.id')
  32 + ->order(['a.balance'=>'DESC','a.create_time'=>'DESC'])
  33 + ->paginate(12);
33 34
34 $data_arr = $data -> toArray(); 35 $data_arr = $data -> toArray();
35 /* array(1) { 36 /* array(1) {
@@ -46,6 +47,11 @@ class SalesmanController extends AdminBaseController{ @@ -46,6 +47,11 @@ class SalesmanController extends AdminBaseController{
46 $data_user = Db::name('user') -> where('id',$val['uid']) -> find(); 47 $data_user = Db::name('user') -> where('id',$val['uid']) -> find();
47 $data_arr['data'][$key]['name'] = $data_user['user_nickname']; 48 $data_arr['data'][$key]['name'] = $data_user['user_nickname'];
48 $data_arr['data'][$key]['money'] = $data_money['platform_ratio']; 49 $data_arr['data'][$key]['money'] = $data_money['platform_ratio'];
  50 + // 获取提现数据
  51 + $ti_count = Db::name('money_expend')->where('uid',$val['uid'])->where('state',1)->sum('money');// 已提金额
  52 + $unti_count = Db::name('money_expend')->where('uid',$val['uid'])->where('state',0)->sum('money');// 提现审核中金额
  53 + $data_arr['data'][$key]['ti_count'] = $ti_count;
  54 + $data_arr['data'][$key]['all_count'] = $ti_count + $unti_count + $val['balance'];
49 } 55 }
50 $this -> assign('data_arr',$data_arr['data']); 56 $this -> assign('data_arr',$data_arr['data']);
51 $this -> assign('data',$data); 57 $this -> assign('data',$data);
@@ -384,30 +390,25 @@ class SalesmanController extends AdminBaseController{ @@ -384,30 +390,25 @@ class SalesmanController extends AdminBaseController{
384 public function salesman_money(){ 390 public function salesman_money(){
385 391
386 $uid = $this -> request -> param(); 392 $uid = $this -> request -> param();
387 - $data = Db::name('money_income') -> alias('a') -> join("indent b","a.indent_id=b.id","LEFT") -> where('a.uid',$uid['uid']) -> select() -> toArray();  
388 - /* if(!empty($data)){  
389 - foreach ($data as $key=>$val){  
390 - if($val['type']==2){  
391 - $book_name = Db::name('indent_goods') -> where('indent_id',$val['indent_id']) -> select() -> toArray();  
392 - $data[$key]['book_name'] = 393 + $data = Db::name('money_income') -> where('uid',$uid['uid']) -> select() -> toArray();
  394 + $money_ratio = Db::name('money_ratio')->where('id',1)->find();
  395 + if(!empty($data)){
  396 + foreach ($data as $key => $val){
  397 + if($val['type'] == 2){
  398 + $data[$key]['indent'] = Db::name('indent') -> where('id',$val['indent_id']) -> find();
  399 + $indent_good = Db::name('indent_goods') -> where('indent_id',$val['indent_id']) -> select() -> toArray();
  400 + $indent_goods = '';
  401 + foreach ($indent_good as $key1 => $val1){
  402 + $indent_goods .= $val1['book_name'].',';
  403 + }
  404 + $data[$key]['indent_good'] = $indent_goods;
  405 + }else{
  406 + $data[$key]['indent'] = Db::name('indent') -> where('id',$val['indent_id']) -> find();
  407 + $data[$key]['indent_good'] = $val['book_name'];
393 } 408 }
  409 + $data[$key]['money'] = $val['money'] * $money_ratio['salesman_ratio'];
394 } 410 }
395 } 411 }
396 - dump($data);die;*/  
397 - if(!empty($data)){  
398 - foreach ($data as $key => $val){  
399 - if($val['type'] == 2){  
400 - $indent_good = Db::name('indent_goods') -> where('indent_id',$val['indent_id']) -> select() -> toArray();  
401 - $indent_goods = '';  
402 - foreach ($indent_good as $key1 => $val1){  
403 - $indent_goods .= $val1['book_name'].',';  
404 - }  
405 - $data[$key]['indent_good'] = $indent_goods;  
406 - }else{  
407 - $data[$key]['indent_good'] = $val['book_name'];  
408 - }  
409 - }  
410 - }  
411 $this -> assign('data',$data); 412 $this -> assign('data',$data);
412 return $this -> fetch(); 413 return $this -> fetch();
413 414
@@ -12,55 +12,68 @@ class SalesmanorderController extends AdminBaseController{ @@ -12,55 +12,68 @@ class SalesmanorderController extends AdminBaseController{
12 * 业务员订单列表 12 * 业务员订单列表
13 */ 13 */
14 public function sale_order_list(){ 14 public function sale_order_list(){
15 -  
16 - if($this -> request -> isPost()){  
17 - $where = [  
18 - 'indent_type' => 2  
19 - ];  
20 - if(!empty($_POST['start_time']) && !empty($_POST['end_time'])){  
21 - $start_time = strtotime($_POST['start_time']);  
22 - $end_time = strtotime($_POST['end_time']);  
23 - $where['create_time'] = [['>=',$start_time],['<=',$end_time]];  
24 - }  
25 - if(!empty($_POST['keyword'])){  
26 - $where['order_number'] = $_POST['keyword'];  
27 - }  
28 - if(!empty($_POST['state'])){  
29 - $where['state'] = $_POST['state'];  
30 - }  
31 - if(!empty($_POST['uid'])){  
32 - $where['salesman_uid'] = $_POST['uid'];  
33 - }  
34 - if(!empty($_POST['school'])){  
35 - $where['school'] = $_POST['school'];  
36 - }  
37 - if(!empty($_POST['grade'])){  
38 - $where['grade'] = $_POST['grade'];  
39 - }  
40 - $data = Db::name('indent') -> where($where) -> paginate(1000000);  
41 - $data_arr = $data -> toArray();  
42 - }else{  
43 - $data = Db::name('indent') -> where('indent_type',2) -> paginate(12);  
44 - $data_arr = $data -> toArray(); 15 + $param = $this->request->param();
  16 + $where = [
  17 + 'indent_type' => 2
  18 + ];
  19 + if(!empty($param['keyword'])){
  20 + $where['order_number|name|phone'] = ['like','%'.trim($param['keyword']).'%'];
  21 + }
  22 + if(!empty($param['state'])){
  23 + $where['state'] = $param['state'];
  24 + }
  25 + if(!empty($param['uid'])){
  26 + $where['salesman_uid'] = $param['uid'];
  27 + }
  28 + if(!empty($param['school'])){
  29 + $where['school'] = $param['school'];
45 } 30 }
  31 + if(!empty($param['grade'])){
  32 + $where['grade'] = $param['grade'];
  33 + }
  34 + $data = Db::name('indent') -> where($where)->order('create_time','DESC') -> paginate(12);
  35 + $data->appends($param);
  36 + $data_arr = $data -> toArray();
46 $money = 0; 37 $money = 0;
47 foreach($data_arr['data'] as $key => $val){ 38 foreach($data_arr['data'] as $key => $val){
48 $data_arr['data'][$key]['grade_class'] = $val['school'].'-'.$val['grade'].$val['class']; 39 $data_arr['data'][$key]['grade_class'] = $val['school'].'-'.$val['grade'].$val['class'];
49 - }  
50 - foreach ($data_arr['data'] as $key => $val){ 40 + $nickname = '';
  41 + if($val['salesman_uid']) {
  42 + $nickname = Db::name('user')->where('id',$val['salesman_uid'])->value('user_nickname');
  43 + }
  44 + $data_arr['data'][$key]['nickname'] = $nickname;
51 if($val['state'] == 2 || $val['state'] == 3 || $val['state'] == 5){ 45 if($val['state'] == 2 || $val['state'] == 3 || $val['state'] == 5){
52 $money += $data_arr['data'][$key]['money']; 46 $money += $data_arr['data'][$key]['money'];
53 } 47 }
54 } 48 }
  49 + // 学校筛选列表
55 $data_school = Db::name('school') -> group('school') -> select() -> toArray(); 50 $data_school = Db::name('school') -> group('school') -> select() -> toArray();
56 foreach($data_school as $key => $val){ 51 foreach($data_school as $key => $val){
57 $school[$key] = $val['school']; 52 $school[$key] = $val['school'];
58 } 53 }
  54 + // 业务员筛选列表
59 $uid = Db::name('my_user') -> alias('a') -> join('user b','a.uid = b.id','LEFT') -> where('a.status = 2') -> select(); 55 $uid = Db::name('my_user') -> alias('a') -> join('user b','a.uid = b.id','LEFT') -> where('a.status = 2') -> select();
60 - /* foreach($uid as $key => $val){  
61 - $sales[$key]['uid'] = $val['id'];  
62 - $sales[$key]['name'] = $val['user_nickname'];  
63 - }*/ 56 + // 年级筛选列表
  57 + $grade_array = [
  58 + '一年级' => '一年级',
  59 + '二年级' => '二年级',
  60 + '三年级' => '三年级',
  61 + '四年级' => '四年级',
  62 + '五年级' => '五年级',
  63 + '六年级' => '六年级',
  64 + '初一' => '初一',
  65 + '初二' => '初二',
  66 + '初三' => '初三',
  67 + '高一' => '高一',
  68 + '高二' => '高二',
  69 + '高三' => '高三'
  70 + ];
  71 + $this->assign('keyword', isset($param['keyword']) ? trim($param['keyword']) : '');
  72 + $this->assign('state', isset($param['state']) ? $param['state'] : '');
  73 + $this->assign('uid', isset($param['uid']) ? $param['uid'] : '');
  74 + $this->assign('school_val', isset($param['school']) ? $param['school'] : '');
  75 + $this->assign('grade', isset($param['grade']) ? $param['grade'] : '');
  76 + $this->assign('grade_array', $grade_array);
64 $this -> assign('data_arr',$data); 77 $this -> assign('data_arr',$data);
65 $this -> assign('school',$school); 78 $this -> assign('school',$school);
66 $this -> assign('sales',$uid); 79 $this -> assign('sales',$uid);
@@ -10,40 +10,60 @@ class UsersController extends AdminBaseController{ @@ -10,40 +10,60 @@ class UsersController extends AdminBaseController{
10 * 显示用户列表 10 * 显示用户列表
11 */ 11 */
12 public function user_list(){ 12 public function user_list(){
13 -  
14 - if($this -> request -> isPost()){  
15 - $where = [  
16 - 'a.create_time' => ['>=', 0],  
17 - ];  
18 - if(!empty($_POST['start_time']) && !empty($_POST['end_time'])){  
19 - $start_time = strtotime($_POST['start_time']);  
20 - $end_time = strtotime($_POST['end_time']);  
21 - $where['a.create_time'] = [['>=',$start_time],['<=',$end_time]];  
22 - }  
23 - if(!empty($_POST['keyword'])){  
24 - $keyword = $_POST['keyword'];  
25 - $where['b.user_nickname'] = ['like',"%$keyword%"]; 13 + $param = $this->request->param();
  14 + $where = [
  15 + 'a.create_time' => ['>=', 0],
  16 + ];
  17 + if(!empty($param['keyword'])){
  18 + $keyword = $param['keyword'];
  19 + $where['b.user_nickname'] = ['like',"%$keyword%"];
  20 + }
  21 + if(!empty($param['id'])){
  22 + $where['a.id'] = ['eq',$param['id']];
  23 + }
  24 + if(!empty($param['identity'])){
  25 + if($param['identity'] == -1){
  26 + $where['a.status'] = ['eq',0];
  27 + }else{
  28 + $where['a.status'] = ['eq',$param['identity']];
26 } 29 }
27 - if(!empty($_POST['id'])){  
28 - $where['a.id'] = ['eq',$_POST['id']]; 30 + }
  31 + $data = Db::name('my_user') -> alias('a')
  32 + ->field('a.*,b.user_nickname')
  33 + ->join('user b','a.uid = b.id','LEFT')
  34 + ->order(['a.balance'=>'DESC','a.create_time'=>'DESC'])
  35 + ->paginate(12);
  36 + $list = $data->items();
  37 + foreach ($list as $k=>$v) {
  38 + // 获取邀请人昵称
  39 + $invite_nickname = '';
  40 + if($v['pid']) {
  41 + $invite = Db::name('my_user')->alias('m')
  42 + ->field('u.user_nickname')
  43 + ->join('user u','m.uid = u.id')
  44 + ->where('m.id',$v['pid'])
  45 + ->find();
  46 + $invite_nickname = $invite['user_nickname'];
29 } 47 }
30 - if($_POST['identity'] != ""){  
31 - if($_POST['identity'] == -1){  
32 - $where['a.status'] = ['eq',0];  
33 - }else{  
34 - $where['a.status'] = ['eq',$_POST['identity']];  
35 - } 48 + $list[$k]['invite_nickname'] = $invite_nickname;
  49 + // 获取提现数据
  50 + $ti_count = Db::name('money_expend')->where('uid',$v['uid'])->where('state',1)->sum('money');// 已提金额
  51 + $unti_count = Db::name('money_expend')->where('uid',$v['uid'])->where('state',0)->sum('money');// 提现审核中金额
  52 + $list[$k]['ti_count'] = $ti_count;
  53 + $list[$k]['all_count'] = $ti_count + $unti_count + $v['balance'];
  54 + // 获取邀请人数
  55 + $invite_count = 0;
  56 + if(in_array($v['status'],[2,3])) {
  57 + $invite_count = Db::name('my_user')->where('pid',$v['uid'])->count();
36 } 58 }
37 - $data = Db::name('my_user') -> alias('a') -> field('a.*,b.user_nickname') -> join('user b','a.uid = b.id','LEFT') -> where($where) -> paginate(1000000);  
38 - }else{  
39 - $data = Db::name('my_user') -> alias('a') -> field('a.*,b.user_nickname') -> join('user b','a.uid = b.id','LEFT') -> paginate(12);  
40 - 59 + $list[$k]['invite_count'] = $invite_count;
41 } 60 }
42 - $this -> assign('data',$data);  
43 - $this->assign('user_nickname',!empty($_POST['user_nickname']) ? $_POST['user_nickname'] : '');  
44 - $this->assign('status',!empty($_POST['status']) ? $_POST['status'] : '');  
45 - $this->assign('id',!empty($_POST['id']) ? $_POST['id'] : '');  
46 - return $this -> fetch(); 61 + $this->assign('list',$list);
  62 + $this->assign('data',$data);
  63 + $this->assign('user_nickname',!empty($param['user_nickname']) ? $param['user_nickname'] : '');
  64 + $this->assign('status',!empty($param['status']) ? $param['status'] : '');
  65 + $this->assign('id',!empty($param['id']) ? $param['id'] : '');
  66 + return $this->fetch();
47 67
48 } 68 }
49 69
@@ -150,6 +170,8 @@ class UsersController extends AdminBaseController{ @@ -150,6 +170,8 @@ class UsersController extends AdminBaseController{
150 170
151 $uid = $this -> request -> param(); 171 $uid = $this -> request -> param();
152 $data = Db::name('money_income') -> where('uid',$uid['uid']) -> select() -> toArray(); 172 $data = Db::name('money_income') -> where('uid',$uid['uid']) -> select() -> toArray();
  173 + $my_user = Db::name('my_user')->where('uid',$uid['uid'])->find();
  174 + $money_ratio = Db::name('money_ratio')->where('id',1)->find();
153 if(!empty($data)){ 175 if(!empty($data)){
154 foreach ($data as $key => $val){ 176 foreach ($data as $key => $val){
155 if($val['type'] == 2){ 177 if($val['type'] == 2){
@@ -164,6 +186,12 @@ class UsersController extends AdminBaseController{ @@ -164,6 +186,12 @@ class UsersController extends AdminBaseController{
164 $data[$key]['indent'] = Db::name('indent') -> where('id',$val['indent_id']) -> find(); 186 $data[$key]['indent'] = Db::name('indent') -> where('id',$val['indent_id']) -> find();
165 $data[$key]['indent_good'] = $val['book_name']; 187 $data[$key]['indent_good'] = $val['book_name'];
166 } 188 }
  189 + if($my_user['status'] == 2) {
  190 + $data[$key]['money'] = $val['money'] * $money_ratio['salesman_ratio'];
  191 + }
  192 + if($my_user['status'] == 3) {
  193 + $data[$key]['money'] = $val['money'] * $money_ratio['teacher_ratio'];
  194 + }
167 } 195 }
168 } 196 }
169 $this -> assign('data',$data); 197 $this -> assign('data',$data);
@@ -171,28 +199,4 @@ class UsersController extends AdminBaseController{ @@ -171,28 +199,4 @@ class UsersController extends AdminBaseController{
171 199
172 } 200 }
173 201
174 -  
175 -  
176 -  
177 -  
178 -  
179 -  
180 -  
181 -  
182 -  
183 -  
184 -  
185 -  
186 -  
187 -  
188 -  
189 -  
190 -  
191 -  
192 -  
193 -  
194 -  
195 -  
196 -  
197 -  
198 } 202 }
@@ -212,9 +212,15 @@ class OrderpageController extends WeChatBaseController{ @@ -212,9 +212,15 @@ class OrderpageController extends WeChatBaseController{
212 * 平台商品去支付时 更新买家留言 212 * 平台商品去支付时 更新买家留言
213 */ 213 */
214 public function goods_leave_word_update(){ 214 public function goods_leave_word_update(){
215 -  
216 - $_POST['is_courier'] = 2;  
217 - $data = Db::name('indent') -> update($_POST); 215 + $param = $this->request->param();
  216 + $param['is_courier'] = 2;
  217 + $address = Db::name('address')->where('id',$param['indent_address'])->find();
  218 + if(!$address) {
  219 + return false;
  220 + }
  221 + $param['name'] = $address['name'];
  222 + $param['phone'] = $address['phone'];
  223 + $data = Db::name('indent') -> update($param);
218 return true; 224 return true;
219 225
220 } 226 }
@@ -19,18 +19,19 @@ @@ -19,18 +19,19 @@
19 <input type="text" class="form-control js-bootstrap-datetime" name="end_time" 19 <input type="text" class="form-control js-bootstrap-datetime" name="end_time"
20 value="{$end_time|default=''}" 20 value="{$end_time|default=''}"
21 style="width: 140px;" autocomplete="off"> &nbsp; 21 style="width: 140px;" autocomplete="off"> &nbsp;
22 - 关键字: 22 + 订单搜索:
23 <input type="text" class="form-control" name="keyword" style="width: 200px;" 23 <input type="text" class="form-control" name="keyword" style="width: 200px;"
24 - value="{$keyword|default=''}" placeholder="请输入订单号..."> 24 + value="{$keyword|default=''}" placeholder="请输入订单号/姓名/手机号">
25 订单状态: 25 订单状态:
26 <select name="state" class="form-control"> 26 <select name="state" class="form-control">
27 <option value="">全部</option> 27 <option value="">全部</option>
28 - <option value="3">已完成</option>  
29 - <option value="2">未完成</option>  
30 - <option value="4">待付款</option> 28 + <option value="3" <eq name="state" value="3">selected</eq> >已完成</option>
  29 + <option value="2" <eq name="state" value="2">selected</eq> >未完成</option>
  30 + <option value="4" <eq name="state" value="4">selected</eq> >待付款</option>
31 </select> 31 </select>
32 <input type="submit" class="btn btn-primary" value="搜索"/> 32 <input type="submit" class="btn btn-primary" value="搜索"/>
33 <a class="btn btn-danger" href="{:url('Platformorders/plat_list')}">清空</a> 33 <a class="btn btn-danger" href="{:url('Platformorders/plat_list')}">清空</a>
  34 + <input type="button" class="btn btn-primary" id="excel" value="导出"/>
34 </form> 35 </form>
35 <table class="table table-bordered"> 36 <table class="table table-bordered">
36 <thead> 37 <thead>
@@ -52,8 +53,8 @@ @@ -52,8 +53,8 @@
52 <tr class="tr{$vo.id}"> 53 <tr class="tr{$vo.id}">
53 <td>{$vo.id}</td> 54 <td>{$vo.id}</td>
54 <td>{$vo.order_number}</td> 55 <td>{$vo.order_number}</td>
55 - <td>{$vo.dizhi.name}</td>  
56 - <td>{$vo.dizhi.phone}</td> 56 + <td>{$vo.name}</td>
  57 + <td>{$vo.phone}</td>
57 <td>{$vo.dizhi['region']} {$vo.dizhi['detailed']}</td> 58 <td>{$vo.dizhi['region']} {$vo.dizhi['detailed']}</td>
58 <td>{$vo.book_num}</td> 59 <td>{$vo.book_num}</td>
59 <td>{$vo.money}</td> 60 <td>{$vo.money}</td>
@@ -92,6 +93,38 @@ @@ -92,6 +93,38 @@
92 }); 93 });
93 } 94 }
94 } 95 }
  96 + function reloadPage(win) {
  97 + win.location.reload();
  98 + }
  99 + $('#excel').click(function () {
  100 + var url1 = "{:url('out')}";
  101 + var url2 = url1.split('.',5);
  102 + var start_time = $('input[name=start_time]').val();
  103 + var end_time = $('input[name=end_time]').val();
  104 + var state = $('select[name=state]').val();
  105 + var keyword = $('input[name=keyword]').val();
  106 + var param = '/excel/1';
  107 + var ids = [];
  108 + $('.js-check').each(function(index,element) {
  109 + if($(this).prop('checked') == true) {
  110 + ids.push($(this).val());
  111 + }
  112 + });
  113 + if(start_time.length > 0) {
  114 + param += '/start_time/'+start_time;
  115 + }
  116 + if(end_time.length > 0) {
  117 + param += '/end_time/'+end_time;
  118 + }
  119 + if(state.length > 0) {
  120 + param += '/state/'+state;
  121 + }
  122 + if(keyword.length > 0) {
  123 + param += '/keyword/'+keyword;
  124 + }
  125 + var url = url2[0]+param+'.html';
  126 + window.open(url);
  127 + });
95 </script> 128 </script>
96 </body> 129 </body>
97 </html> 130 </html>
@@ -31,6 +31,8 @@ @@ -31,6 +31,8 @@
31 <th>序号</th> 31 <th>序号</th>
32 <th>微信昵称</th> 32 <th>微信昵称</th>
33 <th>手机号</th> 33 <th>手机号</th>
  34 + <th>历史总收入</th>
  35 + <th>已提金额</th>
34 <th>余额</th> 36 <th>余额</th>
35 <th>平台佣金比例</th> 37 <th>平台佣金比例</th>
36 <th>创建时间</th> 38 <th>创建时间</th>
@@ -43,6 +45,8 @@ @@ -43,6 +45,8 @@
43 <td>{$vo.id}</td> 45 <td>{$vo.id}</td>
44 <td>{$vo.name}</td> 46 <td>{$vo.name}</td>
45 <td>{$vo.phone}</td> 47 <td>{$vo.phone}</td>
  48 + <td>{$vo.all_count}</td>
  49 + <td>{$vo.ti_count}</td>
46 <td>{$vo.balance}</td> 50 <td>{$vo.balance}</td>
47 <td>{$vo.money}</td> 51 <td>{$vo.money}</td>
48 <td>{$vo.audit_time|date="Y-m-d H:i:s",###}</td> 52 <td>{$vo.audit_time|date="Y-m-d H:i:s",###}</td>
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 团购收入 27 团购收入
28 </if> 28 </if>
29 </td> 29 </td>
30 - <td>{$vo.order_number}</td> 30 + <td>{$vo.indent.order_number}</td>
31 <td> 31 <td>
32 {$vo.indent_good} 32 {$vo.indent_good}
33 </td> 33 </td>
@@ -12,53 +12,37 @@ @@ -12,53 +12,37 @@
12 <li class="active"><a href="#">业务员订单列表</a></li> 12 <li class="active"><a href="#">业务员订单列表</a></li>
13 </ul> 13 </ul>
14 <form class="well form-inline margin-top-20" method="post" action="{:url('Salesmanorder/sale_order_list')}"> 14 <form class="well form-inline margin-top-20" method="post" action="{:url('Salesmanorder/sale_order_list')}">
15 - 时间:  
16 - <input type="text" class="form-control js-bootstrap-datetime" name="start_time"  
17 - value="{$start_time|default=''}"  
18 - style="width: 140px;" autocomplete="off">-  
19 - <input type="text" class="form-control js-bootstrap-datetime" name="end_time"  
20 - value="{$end_time|default=''}"  
21 - style="width: 140px;" autocomplete="off"> &nbsp;  
22 关键字: 15 关键字:
23 <input type="text" class="form-control" name="keyword" style="width: 200px;" 16 <input type="text" class="form-control" name="keyword" style="width: 200px;"
24 - value="{$keyword|default=''}" placeholder="请输入订单号..."> 17 + value="{$keyword|default=''}" placeholder="请输入订单号/姓名/手机号">
25 订单状态: 18 订单状态:
26 <select name="state" class="form-control"> 19 <select name="state" class="form-control">
27 <option value="">全部</option> 20 <option value="">全部</option>
28 - <option value="3">已完成</option>  
29 - <option value="2">未完成</option>  
30 - <option value="4">待付款</option>  
31 - <option value="5">已发货</option> 21 + <option value="3" <eq name="state" value="3">selected</eq> >已完成</option>
  22 + <option value="2" <eq name="state" value="2">selected</eq> >未完成</option>
  23 + <option value="4" <eq name="state" value="4">selected</eq> >待付款</option>
  24 + <option value="5" <eq name="state" value="5">selected</eq> >已发货</option>
32 </select> 25 </select>
33 业务员: 26 业务员:
34 <select name="uid" class="form-control"> 27 <select name="uid" class="form-control">
35 <option value="">全部</option> 28 <option value="">全部</option>
36 <volist name="sales" id="vo"> 29 <volist name="sales" id="vo">
37 - <option value="{$vo.uid}">{$vo.user_nickname}</option> 30 + <option value="{$vo.uid}" <eq name="uid" value="$vo['uid']">selected</eq> >{$vo.user_nickname}</option>
38 </volist> 31 </volist>
39 </select> 32 </select>
40 学校: 33 学校:
41 <select name="school" class="form-control"> 34 <select name="school" class="form-control">
42 <option value="">全部</option> 35 <option value="">全部</option>
43 <volist name="school" id="val"> 36 <volist name="school" id="val">
44 - <option value="{$val}">{$val}</option> 37 + <option value="{$val}" <eq name="school_val" value="$val">selected</eq> >{$val}</option>
45 </volist> 38 </volist>
46 </select> 39 </select>
47 年级: 40 年级:
48 <select name="grade" class="form-control"> 41 <select name="grade" class="form-control">
49 <option value="">全部</option> 42 <option value="">全部</option>
50 - <option value="一年级">一年级</option>  
51 - <option value="二年级">二年级</option>  
52 - <option value="三年级">三年级</option>  
53 - <option value="四年级">四年级</option>  
54 - <option value="五年级">五年级</option>  
55 - <option value="六年级">六年级</option>  
56 - <option value="初一">初一</option>  
57 - <option value="初二">初二</option>  
58 - <option value="初三">初三</option>  
59 - <option value="高一">高一</option>  
60 - <option value="高二">高二</option>  
61 - <option value="高三">高三</option> 43 + <volist name="grade_array" id="vo">
  44 + <option value="{$vo}" <eq name="grade" value="$vo">selected</eq> >{$vo}</option>
  45 + </volist>
62 </select> 46 </select>
63 <input type="submit" class="btn btn-primary" value="搜索"/> 47 <input type="submit" class="btn btn-primary" value="搜索"/>
64 <a class="btn btn-danger" href="{:url('Salesmanorder/sale_order_list')}">清空</a> 48 <a class="btn btn-danger" href="{:url('Salesmanorder/sale_order_list')}">清空</a>
@@ -74,6 +58,7 @@ @@ -74,6 +58,7 @@
74 <th>姓名</th> 58 <th>姓名</th>
75 <th>手机号</th> 59 <th>手机号</th>
76 <th>地区</th> 60 <th>地区</th>
  61 + <th>业务员</th>
77 <th>数量</th> 62 <th>数量</th>
78 <th>价钱</th> 63 <th>价钱</th>
79 <th>学校-班级</th> 64 <th>学校-班级</th>
@@ -90,6 +75,7 @@ @@ -90,6 +75,7 @@
90 <td>{$vo.name}</td> 75 <td>{$vo.name}</td>
91 <td>{$vo.phone}</td> 76 <td>{$vo.phone}</td>
92 <td>{$vo.region}</td> 77 <td>{$vo.region}</td>
  78 + <td>{$vo.nickname}</td>
93 <td>{$vo.book_num}</td> 79 <td>{$vo.book_num}</td>
94 <td>{$vo.money}</td> 80 <td>{$vo.money}</td>
95 <td>{$vo.grade_class}</td> 81 <td>{$vo.grade_class}</td>
@@ -44,14 +44,19 @@ @@ -44,14 +44,19 @@
44 <th>微信昵称</th> 44 <th>微信昵称</th>
45 <th>身份</th> 45 <th>身份</th>
46 <th>手机号</th> 46 <th>手机号</th>
  47 + <th>邀请人序号</th>
  48 + <th>邀请人姓名</th>
47 <th>邀请人</th> 49 <th>邀请人</th>
  50 + <th>邀请人数</th>
  51 + <th>历史总收入</th>
  52 + <th>已提金额</th>
48 <th>余额</th> 53 <th>余额</th>
49 <th>创建时间</th> 54 <th>创建时间</th>
50 <th>操作</th> 55 <th>操作</th>
51 </tr> 56 </tr>
52 </thead> 57 </thead>
53 <tbody> 58 <tbody>
54 - <volist name="data" id="val"> 59 + <volist name="list" id="val">
55 <tr> 60 <tr>
56 <td>{$val.id}</td> 61 <td>{$val.id}</td>
57 <td>{$val.user_nickname}</td> 62 <td>{$val.user_nickname}</td>
@@ -65,7 +70,12 @@ @@ -65,7 +70,12 @@
65 <td>自由人</td> 70 <td>自由人</td>
66 </if> 71 </if>
67 <td>{$val.phone}</td> 72 <td>{$val.phone}</td>
  73 + <td>{$val.pid}</td>
  74 + <td>{$val.invite_nickname}</td>
68 <td>{$val.inviter_phone}</td> 75 <td>{$val.inviter_phone}</td>
  76 + <td>{$val.invite_count}</td>
  77 + <td>{$val.all_count}</td>
  78 + <td>{$val.ti_count}</td>
69 <td>{$val.balance}</td> 79 <td>{$val.balance}</td>
70 <if condition="$val.status eq 2"> 80 <if condition="$val.status eq 2">
71 <td>{$val.audit_time|date="Y-m-d H:i:s",###}</td> 81 <td>{$val.audit_time|date="Y-m-d H:i:s",###}</td>
@@ -152,10 +152,11 @@ class Bootstrap extends Paginator @@ -152,10 +152,11 @@ class Bootstrap extends Paginator
152 ); 152 );
153 } else { 153 } else {
154 return sprintf( 154 return sprintf(
155 - '%s %s %s', 155 + '%s %s %s %s',
156 $this->getPreviousButton(), 156 $this->getPreviousButton(),
157 $this->getLinks(), 157 $this->getLinks(),
158 - $this->getNextButton() 158 + $this->getNextButton(),
  159 + $this->getCount()
159 ); 160 );
160 } 161 }
161 } 162 }
@@ -239,4 +240,14 @@ class Bootstrap extends Paginator @@ -239,4 +240,14 @@ class Bootstrap extends Paginator
239 } 240 }
240 241
241 242
  243 + /**
  244 + * 数据总数
  245 + *
  246 + * @return string
  247 + */
  248 + protected function getCount()
  249 + {
  250 + return '<li style="border: none;"><span style="border: none;">总共 ' . $this->total . ' 条记录</span></li>';
  251 + }
  252 +
242 } 253 }