MemberSalesController.php 8.0 KB
<?php
/**
 * Created by PhpStorm.
 * User: 29925
 * Date: 2018/8/9
 * Time: 14:26
 */

namespace app\member\controller;

use app\admin\model\OrderSortModel;
use app\member\model\MemberSalesModel;
use cmf\controller\AdminBaseController;

class MemberSalesController extends AdminBaseController
{

    protected $table;
    protected $member_sales_model;
    protected $order_sort_table;
    protected $order_sort_model;
    public function _initialize()
    {
        $this->table = 'MemberSales';
        $this->member_sales_model = new MemberSalesModel();
        $this->order_sort_table = 'OrderSort';
        $this->order_sort_model = new OrderSortModel();
        $sort = $this->singleData($this->order_sort_table,['delete_time'=>0],1,['create_time'=>'DESC']);
        $this->assign('sort',$sort);
    }

    /**
     * 销售人员列表
     * @adminMenu(
     *     'name'   => '销售人员列表',
     *     'parent' => 'user/AdminIndex/default',
     *     'display'=> true,
     *     'hasView'=> true,
     *     'order'  => 10000,
     *     'icon'   => '',
     *     'remark' => '销售人员列表',
     *     'param'  => ''
     * )
     */
    public function index() {
        $param = $this->request->param();
        $where = [
            'delete_time'=>0
        ];
        if(isset($param['keyword'])) {
            $where['name'] = ['like','%'.$param['keyword'].'%'];
        }
        $list = $this->singleData($this->table,$where,2,['create_time'=>'DESC']);
        $list->appends($param);
        $this->assign('list',$list->items());
        $this->assign('page',$list->render());
        $this->assign('keyword',isset($param['keyword']) ? $param['keyword'] : '');
        return $this->fetch();
    }

    /**
     * 添加销售人员
     * @adminMenu(
     *     'name'   => '添加销售人员',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 1,
     *     'icon'   => '',
     *     'remark' => '添加销售人员',
     *     'param'  => ''
     * )
     */
    public function add() {
        return $this->fetch();
    }

    /**
     * 添加销售人员提交
     * @adminMenu(
     *     'name'   => '添加销售人员提交',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 2,
     *     'icon'   => '',
     *     'remark' => '添加销售人员提交',
     *     'param'  => ''
     * )
     */
    public function addPost() {
        if($this->request->isPost()) {
            $post = $this->request->param();
            $post['allow_order'] = implode(',',$post['order_sort']);
            $validate = $this->validate($post,$this->table.'.add');
            if($validate !== true) {
                $this->error($validate);
            }
            $post['user_pass'] = cmf_password($post['user_pass']);
            $result = $this->member_sales_model->addMemberSales($post);
            if(!$result) {
                $this->error('添加失败');
            }
            $this->success('添加成功');
        }
    }

    /**
     * 编辑销售人员
     * @adminMenu(
     *     'name'   => '编辑销售人员',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 3,
     *     'icon'   => '',
     *     'remark' => '编辑销售人员',
     *     'param'  => ''
     * )
     */
    public function edit() {
        $id = $this->request->param('id',0,'intval');
        if(!$id) {
            $this->error('参数错误');
        }
        $info = $this->singleData($this->table,['id'=>$id,'delete_time'=>0]);
        $info['order_sort'] = explode(',',$info['allow_order']);
        $this->assign($info);
        return $this->fetch();
    }

    /**
     * 编辑销售人员提交
     * @adminMenu(
     *     'name'   => '编辑销售人员提交',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 4,
     *     'icon'   => '',
     *     'remark' => '编辑销售人员提交',
     *     'param'  => ''
     * )
     */
    public function editPost() {
        if($this->request->isPost()) {
            $id = $this->request->param('id',0,'intval');
            if(!$id) {
                $this->error('参数错误');
            }
            $post = $this->request->param();
            $post['allow_order'] = implode(',',$post['order_sort']);
            $validate = $this->validate($post,$this->table.'.edit');
            if($validate !== true) {
                $this->error($validate);
            }
            if (empty($post['user_pass'])) {
                unset($post['user_pass']);
            } else {
                $post['user_pass'] = cmf_password($post['user_pass']);
            }
            $result = $this->member_sales_model->editMemberSales($post);
            if(!$result) {
                $this->error('修改失败');
            }
            $this->success('修改成功');
        }
    }

    /**
     * 用户数据导出
     * @adminMenu(
     *     'name'   => '用户数据导出',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 2,
     *     'icon'   => '',
     *     'remark' => '用户数据导出',
     *     'param'  => ''
     * )
     */
    public function excel()
    {
        $param = $this->request->param();
        $where = $param;
        $list = $this->singleData($this->table,$where,1,['create_time'=>'DESC']);
        $this->expList($list);
    }

    // 数据导出
    public function expList($array){

        //导出Excel
        $objPHPExcel = new \PHPExcel();

        //Add some data
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', 'ID')
            ->setCellValue('B1', '用户名')
            ->setCellValue('C1', '昵称')
            ->setCellValue('D1', '姓名')
            ->setCellValue('E1', '学历编码')
            ->setCellValue('F1', '手机号码')
            ->setCellValue('G1', '认证状态')
            ->setCellValue('H1', '认证时间');

        $i = 2;

        foreach ($array as $v) {
            $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A' . $i, $v['id'])
                ->setCellValue('B' . $i, $v['user_nickname'])
                ->setCellValue('C' . $i, $v['user_nickname'])
                ->setCellValue('D' . $i, $v['name'])
                ->setCellValue('E' . $i, $v['number'])
                ->setCellValueExplicit('F' . $i, $v['mobile'],\PHPExcel_Cell_DataType::TYPE_STRING)
                ->setCellValue('G' . $i, $v['status'])
                ->setCellValue('H' . $i, date('Y-m-d',$v['handle_time']));
            $i++;
        }

        $filename = '用户数据导出'. date('Y-m-d').'.xls';
        ob_end_clean();
        header("Content-type:application/vnd.ms-excel;charset=UTF-8");
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="' . $filename . '"');
        header('Cache-Control: max-age=0');
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
    }

    /**
     * 删除表单字段
     * @adminMenu(
     *     'name'   => '删除表单字段',
     *     'parent' => 'index',
     *     'display'=> false,
     *     'hasView'=> false,
     *     'order'  => 5,
     *     'icon'   => '',
     *     'remark' => '删除表单字段',
     *     'param'  => ''
     * )
     */
    public function delete() {
        $id = $this->request->param('id',0,'intval');
        $ids = $this->request->param('ids/a');
        if(isset($id)) {
            $result = $this->member_sales_model->where(['id'=>$id])->update(['delete_time'=>time()]);
        }
        if(isset($ids)) {
            $result = $this->member_sales_model->where(['id'=>['in',$ids]])->update(['delete_time'=>time()]);
        }
        if(!$result) {
            $this->error('删除失败');
        }
        $this->success('删除成功');
    }
}