CouponCode = model('coupon.Code'); } public function index(){ $this->assign('meta_title','券码管理'); return $this->fetch(); } public function load(){ $page = input('get.page'); $limit = input('get.limit'); $where = []; $no = input('param.no'); if (!empty($no)) { $where['cc.no|cc.secret'] = $no; } $search = input('get.search'); if (!empty($search)) { $where['c.cname|c.id'] = ['like','%'.$search.'%']; } $list = $this->CouponCode->field('cc.*') ->alias('cc') ->join('Coupon c','c.id = cc.coupon_id') ->where($where)->order('id desc')->paginate($limit,false,['page'=>$page]); $data = []; foreach ($list as $key => $value) { $data[$key]['id'] = $value['id']; $coupon = $value['coupon']; $data[$key]['coupon'] = $coupon['cname'].'['.$coupon['id'].']'; $coupon_type = $coupon['type']; $data[$key]['type'] = $coupon_type['cname']; $data[$key]['sale_price'] = $coupon['sale_price']; $data[$key]['no'] = $value['no']; $data[$key]['secret'] = $value['secret']; $data[$key]['qrcode'] = ''; $data[$key]['barcode'] = ''; $data[$key]['url'] = $value['url']; $data[$key]['expire_time'] = $value['expire_time']; $data[$key]['state'] = $value['state']; $data[$key]['state_text'] = $value['state_text']; $data[$key]['sale_time'] = date('Y-m-d H:i:s',$value['sale_time']); $data[$key]['create_time'] = $value['create_time']; } $this->output(0,'获取成功',$data,$list->total()); } public function add(){ if($this->request->isPost()) { $coupon_id = input('post.coupon_id'); if (empty($coupon_id)) { $this->output(1,'请选择电子券'); } $Coupon = model('Coupon'); $coupon = $Coupon->where(['id'=>$coupon_id])->find(); if (!$coupon) { $this->output(1,'参数错误'); } $coupon_type = $coupon['type']; $type_name = $coupon_type['name']; $type_value = input('post.'.$type_name); if (empty($type_value)) { $this->output(1,'请输入'.$type['cname']); } if ($type_name == 'secret') { $no = input('post.no'); if (empty($no)) { $this->output(1,'请输入卡号'); } $this->CouponCode->no = $no; } $expire_time = input('post.expire_time'); list($expire_start_time,$expire_end_time) = explode('~',$expire_time); if (strtotime($expire_end_time) < $this->request->time()) { $this->output(1,'有效结束时间必须大于当期时间'); } $this->CouponCode->coupon_id = $coupon['id']; $this->CouponCode->$type_name = $type_value; $this->CouponCode->expire_time = $expire_time; $result = $this->CouponCode->save(); if (!$result) { $this->output(1,'保存失败'); } $this->output(0,'保存成功'); }else{ $Coupon = model('Coupon'); $coupons = $Coupon->where(['state'=>1])->select(); $coupon_group = []; foreach ($coupons as $key => $value) { $supplier = $value['supplier']; $coupon_group[$supplier['id']]['cname'] = $supplier['cname']; $option['id'] = $value['id']; $option['cname'] = $value['cname']; $option['type_name'] = $value['type']['name']; $coupon_group[$supplier['id']]['options'][] = $option; } $this->assign('coupon_group',$coupon_group); $this->assign('meta_title','添加券码'); return $this->fetch(); } } public function edit(){ if($this->request->isPost()) { $id = input('post.id'); $code = $this->CouponCode->where(['id'=>$id])->find(); if (!$code) { $this->output(1,'参数错误'); } $coupon_id = input('post.coupon_id'); if (empty($coupon_id)) { $this->output(1,'请选择电子券'); } $Coupon = model('Coupon'); $coupon = $Coupon->where(['id'=>$coupon_id])->find(); if (!$coupon) { $this->output(1,'参数错误'); } $coupon_type = $coupon['type']; $type_name = $coupon_type['name']; if ($type_name == 'secret') { $no = input('post.no'); if (empty($no)) { $this->output(1,'请输入卡号'); } $code->no = $no; } $type_value = input('post.'.$type_name); if (empty($type_value)) { $this->output(1,'请输入'.$type['cname']); } $expire_time = input('post.expire_time'); list($expire_start_time,$expire_end_time) = explode('~',$expire_time); if (strtotime($expire_end_time) < $this->request->time()) { $this->output(1,'有效结束时间必须大于当期时间'); } $code->coupon_id = $coupon['id']; $code->$type_name = $type_value; $code->expire_time = $expire_time; $result = $code->save(); if (!$result) { $this->output(1,'保存失败'); } $this->output(0,'保存成功'); }else{ $id = input('get.id'); $code = $this->CouponCode->where(['id'=>$id])->find(); if (!$code) { $this->output(1,'参数错误'); } $this->assign('code',$code); $Coupon = model('Coupon'); $coupons = $Coupon->where(['state'=>1])->group('supplier_id')->select(); $coupon_group = []; foreach ($coupons as $key => $value) { $supplier = $value['supplier']; $coupon_group[$supplier['id']]['cname'] = $supplier['cname']; $option['id'] = $value['id']; $option['cname'] = $value['cname']; $option['type_name'] = $value['type']['name']; $coupon_group[$supplier['id']]['options'][] = $option; } $this->assign('coupon_group',$coupon_group); $this->assign('meta_title','编辑券码'); return $this->fetch(); } } public function state(){ if($this->request->isPost()){ $id = input('post.id'); $code = $this->CouponCode->where(['id'=>$id])->find(); if (!$code) { $this->output(1,'参数错误'); } $state = input('post.state'); $code->state = $state == 'true'?1:0; $result = $code->save(); if (!$result) { $this->output(1,'保存失败'); } $this->output(0,'保存成功'); } } public function delete(){ if ($this->request->isPost()) { $id = input('post.id'); $code = $this->CouponCode->where(['id'=>$id])->find(); if (!$code) { $this->output(1,'参数错误'); } $result = $code->delete(); if (!$result) { $this->output(1,'删除失败'); } $this->output(0,'删除成功'); } } public function import(){ vendor('PHPExcel.PHPExcel'); $path = input('param.path'); if (empty($path)) { $this->output(1,'文件地址不能为空'); } $path_arr = explode('.',$path); $exts = $path_arr[count($path_arr) - 1]; //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入 vendor('PHPExcel.PHPExcel'); //创建PHPExcel对象,注意,不能少了\ $PHPExcel = new \PHPExcel(); //如果excel文件后缀名为.xls,导入这个类 if ($exts == 'xls') { Vendor('PHPExcel.PHPExcel.Reader.Excel5'); $PHPReader = new \PHPExcel_Reader_Excel5(); } else if ($exts == 'xlsx') { Vendor('PHPExcel.PHPExcel.Reader.Excel2007'); $PHPReader = new \PHPExcel_Reader_Excel2007(); } //载入文件 $PHPExcel = $PHPReader->load(ROOT_PATH.'public'.$path); //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推 $currentSheet = $PHPExcel->getSheet(0); //获取总列数 $allColumn = $currentSheet->getHighestColumn(); //获取总行数 $allRow = $currentSheet->getHighestRow(); $fields = ['A'=>'coupon_id','B'=>'no','C'=>'secret','D'=>'qrcode','E'=>'barcode','F'=>'expire_time']; //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始 $data = []; for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) { //从哪列开始,A表示第一列 for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) { //数据坐标 $address = $currentColumn . $currentRow; //读取到的数据,保存到数组$data中 $cell = $currentSheet->getCell($address)->getValue(); if ($cell instanceof PHPExcel_RichText) { $cell = $cell->__toString(); } if (!isset($fields[$currentColumn])) { break; } $field = $fields[$currentColumn]; $data[$currentRow - 1][$field] = $cell; // print_r($cell); } } var_dump($data);exit(); $count = count($data); if ($count > 0) { $this->CouponCode->saveAll($data); } $this->output(0,'导入成功 条数:'.$count); } }