...
|
...
|
@@ -9,7 +9,7 @@ use app\admin\model\litestore\Litestorespecvalue as SpecValueModel; |
|
|
use think\Db;
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
*
|
|
|
*
|
|
|
* @icon fa fa-circle-o
|
|
|
*/
|
...
|
...
|
@@ -26,7 +26,7 @@ class Litestoregoods extends Backend |
|
|
public function _initialize()
|
|
|
{
|
|
|
parent::_initialize();
|
|
|
$this->SpecModel = new SpecModel;
|
|
|
$this->SpecModel = new SpecModel;
|
|
|
$this->SpecValueModel = new SpecValueModel;
|
|
|
|
|
|
$this->model = new \app\admin\model\litestore\Litestoregoods;
|
...
|
...
|
@@ -40,13 +40,13 @@ class Litestoregoods extends Backend |
|
|
$this->view->assign("spec_attr", '');
|
|
|
$this->view->assign("spec_list", '');
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
|
|
|
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
|
|
|
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查看
|
...
|
...
|
@@ -57,35 +57,33 @@ class Litestoregoods extends Backend |
|
|
$this->relationSearch = true;
|
|
|
//设置过滤方法
|
|
|
$this->request->filter(['strip_tags']);
|
|
|
if ($this->request->isAjax())
|
|
|
{
|
|
|
if ($this->request->isAjax()) {
|
|
|
//如果发送的来源是Selectpage,则转发到Selectpage
|
|
|
if ($this->request->request('keyField'))
|
|
|
{
|
|
|
if ($this->request->request('keyField')) {
|
|
|
return $this->selectpage();
|
|
|
}
|
|
|
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
|
|
$total = $this->model
|
|
|
->with(['category','activity'])
|
|
|
->where($where)
|
|
|
->order($sort, $order)
|
|
|
->count();
|
|
|
->with(['category', 'activity'])
|
|
|
->where($where)
|
|
|
->order($sort, $order)
|
|
|
->count();
|
|
|
|
|
|
$list = $this->model
|
|
|
->with(['category','activity'])
|
|
|
->where($where)
|
|
|
->order($sort, $order)
|
|
|
->limit($offset, $limit)
|
|
|
->select();
|
|
|
->with(['category', 'activity'])
|
|
|
->where($where)
|
|
|
->order($sort, $order)
|
|
|
->limit($offset, $limit)
|
|
|
->select();
|
|
|
|
|
|
foreach ($list as $row) {
|
|
|
|
|
|
|
|
|
$row->getRelation('category')->visible(['name']);
|
|
|
$row->getRelation('activity')->visible(['name']);
|
|
|
// $row->getRelation('freight')->visible(['name']);
|
|
|
$row->stock_num = Litestoregoodsspec::where('goods_id',$row['goods_id'])->sum('stock_num');
|
|
|
$row->stock_num = Litestoregoodsspec::where('goods_id', $row['goods_id'])->sum('stock_num');
|
|
|
}
|
|
|
$list = collection($list)->toArray();
|
|
|
$list = collection($list)->toArray();
|
|
|
$result = array("total" => $total, "rows" => $list);
|
|
|
|
|
|
return json($result);
|
...
|
...
|
@@ -93,14 +91,15 @@ class Litestoregoods extends Backend |
|
|
return $this->view->fetch();
|
|
|
}
|
|
|
|
|
|
public function addSpec($spec_name, $spec_value){
|
|
|
// 判断规格组是否存在
|
|
|
public function addSpec($spec_name, $spec_value)
|
|
|
{
|
|
|
// 判断规格组是否存在
|
|
|
if (!$specId = $this->SpecModel->getSpecIdByName($spec_name)) {
|
|
|
// 新增规格组and规则值
|
|
|
if ($this->SpecModel->add($spec_name)
|
|
|
&& $this->SpecValueModel->add($this->SpecModel['id'], $spec_value))
|
|
|
return $this->success('', '', [
|
|
|
'spec_id' => (int)$this->SpecModel['id'],
|
|
|
'spec_id' => (int)$this->SpecModel['id'],
|
|
|
'spec_value_id' => (int)$this->SpecValueModel['id'],
|
|
|
]);
|
|
|
return $this->error();
|
...
|
...
|
@@ -109,14 +108,14 @@ class Litestoregoods extends Backend |
|
|
// 判断规格值是否存在
|
|
|
if ($specValueId = $this->SpecValueModel->getSpecValueIdByName($specId, $spec_value)) {
|
|
|
return $this->success('', '', [
|
|
|
'spec_id' => (int)$specId,
|
|
|
'spec_id' => (int)$specId,
|
|
|
'spec_value_id' => (int)$specValueId,
|
|
|
]);
|
|
|
}
|
|
|
// 添加规则值
|
|
|
if ($this->SpecValueModel->add($specId, $spec_value))
|
|
|
return $this->success('', '', [
|
|
|
'spec_id' => (int)$specId,
|
|
|
'spec_id' => (int)$specId,
|
|
|
'spec_value_id' => (int)$this->SpecValueModel['id'],
|
|
|
]);
|
|
|
return $this->error();
|
...
|
...
|
@@ -153,13 +152,13 @@ class Litestoregoods extends Backend |
|
|
if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
|
|
|
$params[$this->dataLimitField] = $this->auth->id;
|
|
|
}
|
|
|
if($params['spec_type'] == '20' && !$this->request->post("spec_many/a")){
|
|
|
if ($params['spec_type'] == '20' && !$this->request->post("spec_many/a")) {
|
|
|
$this->error('请添加规格');
|
|
|
}
|
|
|
try {
|
|
|
//是否采用模型验证
|
|
|
if ($this->modelValidate) {
|
|
|
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
|
|
|
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
|
|
|
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : true) : $this->modelValidate;
|
|
|
$this->model->validate($validate);
|
|
|
}
|
...
|
...
|
@@ -167,7 +166,7 @@ class Litestoregoods extends Backend |
|
|
if ($result !== false) {
|
|
|
//成功之后 存储商品规格
|
|
|
$spec_many_params = $this->request->post("spec_many/a");
|
|
|
$this->model->addGoodsSpec($params,$spec_many_params,$this->request->post("spec/a"));
|
|
|
$this->model->addGoodsSpec($params, $spec_many_params, $this->request->post("spec/a"));
|
|
|
$this->success();
|
|
|
} else {
|
|
|
$this->error($this->model->getError());
|
...
|
...
|
@@ -189,12 +188,12 @@ class Litestoregoods extends Backend |
|
|
public function del($ids = "")
|
|
|
{
|
|
|
if ($ids) {
|
|
|
$pk = $this->model->getPk();
|
|
|
$pk = $this->model->getPk();
|
|
|
$adminIds = $this->getDataLimitAdminIds();
|
|
|
if (is_array($adminIds)) {
|
|
|
$count = $this->model->where($this->dataLimitField, 'in', $adminIds);
|
|
|
}
|
|
|
$list = $this->model->where($pk, 'in', $ids)->select();
|
|
|
$list = $this->model->where($pk, 'in', $ids)->select();
|
|
|
$count = 0;
|
|
|
foreach ($list as $k => $v) {
|
|
|
// 删除商品sku
|
...
|
...
|
@@ -228,13 +227,13 @@ class Litestoregoods extends Backend |
|
|
if ($this->request->isPost()) {
|
|
|
$params = $this->request->post("row/a");
|
|
|
if ($params) {
|
|
|
if($params['spec_type'] == '20' && !$this->request->post("spec_many/a")){
|
|
|
if ($params['spec_type'] == '20' && !$this->request->post("spec_many/a")) {
|
|
|
$this->error('请添加规格');
|
|
|
}
|
|
|
try {
|
|
|
//是否采用模型验证
|
|
|
if ($this->modelValidate) {
|
|
|
$name = basename(str_replace('\\', '/', get_class($this->model)));
|
|
|
$name = basename(str_replace('\\', '/', get_class($this->model)));
|
|
|
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : true) : $this->modelValidate;
|
|
|
$row->validate($validate);
|
|
|
}
|
...
|
...
|
@@ -242,11 +241,11 @@ class Litestoregoods extends Backend |
|
|
if ($result !== false) {
|
|
|
//成功之后 存储商品规格
|
|
|
$spec_many_params = $this->request->post("spec_many/a");
|
|
|
$row->addGoodsSpec($params,$spec_many_params,$this->request->post("spec/a"), true);
|
|
|
$row->addGoodsSpec($params, $spec_many_params, $this->request->post("spec/a"), true);
|
|
|
// 删除购物车
|
|
|
Db::name('cart')->where('goods_id',$row->goods_id)->delete();
|
|
|
Db::name('cart')->where('goods_id', $row->goods_id)->delete();
|
|
|
//删除我常买
|
|
|
Db::name('user_buylist')->where('goods_id',$row->goods_id)->delete();
|
|
|
Db::name('user_buylist')->where('goods_id', $row->goods_id)->delete();
|
|
|
$this->success();
|
|
|
} else {
|
|
|
$this->error($row->getError());
|
...
|
...
|
@@ -261,11 +260,77 @@ class Litestoregoods extends Backend |
|
|
}
|
|
|
// 多规格信息
|
|
|
$specData = 'null';
|
|
|
if ($row['spec_type'] === '20'){
|
|
|
if ($row['spec_type'] === '20') {
|
|
|
$specData = json_encode($this->model->getManySpecData($row['spec_rel'], $row['spec']));
|
|
|
}
|
|
|
$row['specData'] = $specData;
|
|
|
$this->view->assign("row", $row);
|
|
|
return $this->view->fetch();
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 导出
|
|
|
*/
|
|
|
public function clubpeople(){
|
|
|
//1.从数据库中导出需要进行要导出的数据
|
|
|
$list =Db::query('SELECT stu_list.stu_name,stu_list.stu_department,stu_list.stu_phone,stu_list.stu_email,stu_list.stu_profess
|
|
|
,club_branch.* FROM club_branch INNER JOIN stu_list ON club_branch.stu_number = stu_list.stu_number
|
|
|
where club_branch.club_id=:acc order by club_branch.club_branch_name ',['acc'=>$clubid]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//重要补助
|
|
|
//2.加载PHPExcle类库
|
|
|
vendor('PHPExcel.PHPExcel');
|
|
|
//3.实例化PHPExcel类
|
|
|
$objPHPExcel = new \PHPExcel();
|
|
|
//4.激活当前的sheet表
|
|
|
$objPHPExcel->setActiveSheetIndex(0);
|
|
|
//5.设置表格头(即excel表格的第一行)
|
|
|
$objPHPExcel->setActiveSheetIndex(0)
|
|
|
->setCellValue('A1', '部门')
|
|
|
->setCellValue('B1', '职位')
|
|
|
->setCellValue('C1', '学号')
|
|
|
->setCellValue('D1', '学生姓名')
|
|
|
->setCellValue('E1', '联系方式')
|
|
|
->setCellValue('F1', '邮箱')
|
|
|
->setCellValue('G1', '院系')
|
|
|
->setCellValue('H1', '专业');
|
|
|
//设置A列水平居中
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment()
|
|
|
->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
|
|
|
//设置单元格宽度
|
|
|
//6.循环刚取出来的数组,将数据逐一添加到excel表格。
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(10);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(20);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(20);
|
|
|
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30);
|
|
|
|
|
|
for($i=0;$i<count($list);$i++){
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('A'.($i+2),$list[$i]['club_branch_name']);//ID
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('B'.($i+2),$list[$i]['club_position']);//标签码
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('C'.($i+2),$list[$i]['stu_number']);//防伪码
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('D'.($i+2),$list[$i]['stu_name']);//ID
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('E'.($i+2),$list[$i]['stu_phone']);//标签码
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('F'.($i+2),$list[$i]['stu_email']);//ID
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('G'.($i+2),$list[$i]['stu_department']);//标签码
|
|
|
$objPHPExcel->getActiveSheet()->setCellValue('H'.($i+2),$list[$i]['stu_profess']);//防伪码
|
|
|
}
|
|
|
//7.设置保存的Excel表格名称
|
|
|
$filename = $club_name.'人员名单'.date('ymd',time()).'.xls';
|
|
|
//8.设置当前激活的sheet表格名称;
|
|
|
$objPHPExcel->getActiveSheet()->setTitle('人员名单');
|
|
|
//9.设置浏览器窗口下载表格
|
|
|
header("Content-Type: application/force-download");
|
|
|
header("Content-Type: application/octet-stream");
|
|
|
header("Content-Type: application/download");
|
|
|
header('Content-Disposition:inline;filename="'.$filename.'"');
|
|
|
//生成excel文件
|
|
|
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
|
//下载文件在浏览器窗口
|
|
|
$objWriter->save('php://output');
|
|
|
exit;
|
|
|
}
|
|
|
} |
...
|
...
|
|