Files
liche/admin/controllers/auto/Attr.php
T
2023-03-07 17:21:24 +08:00

257 lines
8.8 KiB
PHP

<?php
/**
* Created by Vim
* User: lcc
* Date: 2020/08/05
* Time: 10:19
*/
defined('BASEPATH') OR exit('No direct script access allowed');
class Attr extends HD_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('auto/auto_brand_model');
$this->load->model('auto/auto_series_model');
$this->load->model('auto/auto_attr_model');
}
public function index()
{
$this->lists();
}
public function lists()
{
$params = $this->input->get();
$page = $this->input->get('page');
!$page && $page = 1;
$size = 20;
$where["status > -1"] = null;
$params['title'] && $where["title like '%{$params['title']}%'"] = null;
$where['s_id in (select id from lc_auto_series where brand_id in (select id from lc_auto_brand where status > -1))'] = null;
if ($params['s_id']) {
$where['s_id'] = $params['s_id'];
}
if ($params['brand_id']) {
$where_sery = array('status > -1' => null, 'brand_id' => $params['brand_id']);
$rows_sery = $this->auto_series_model->select($where_sery, 'id desc', 0, 0, 'id');
if ($rows_sery) {
$sery_ids = array_column($rows_sery, 'id');
$str_ids = implode(',', $sery_ids);
$where["s_id in ({$str_ids})"] = null;
} else {
$where['s_id'] = -1;
}
}
strlen($params['type']) && $where['type'] = $params['type'];
if (!strlen($params['status'])){
$params['status'] = $where['status'] = 1;
}
elseif ($params['status'] == -9){
# pass
}
else{
$where['status'] = $params['status'];
}
!$params['s_id'] && $params['s_id'] = '';
!$params['brand_id'] && $params['brand_id'] = '';
!strlen($params['type']) && $params['type'] = '';
$count = $this->auto_attr_model->count($where);
$rows = $this->auto_attr_model->select($where, 'id desc', $page, $size, '*, (select brand_id from lc_auto_series where id=lc_auto_attr.s_id) as brand_id');
$type_arr = $this->auto_attr_model->get_type();
$status_arr = $this->auto_brand_model->get_status();
//获取品牌map
$where_brand = array('status > -1' => null);
$map_brand = $this->auto_brand_model->map_brand($where_brand);
$list = [];
if ($rows) {
$series_arr = array_column($rows, 's_id');
$series_rows = $this->auto_series_model->get_map_by_ids($series_arr, 'id,name');
foreach ($rows as $key => $val) {
$list[] = [
'id' => $val['id'],
'title' => $val['title'],
'brand_name' => $map_brand[$val['brand_id']] ? $map_brand[$val['brand_id']] : '',
's_name' => $series_rows[$val['s_id']] ? $series_rows[$val['s_id']][0]['name'] : '',
'status_name' => $status_arr[$val['status']],
'status' => $val['status'],
'type_cn' => $type_arr[$val['type']],
'c_time' => date('Y-m-d H:i:s', $val['c_time'])
];
}
}
$status_arr_list = $status_arr;
unset($status_arr_list[-1]);
$this->data['status_arr'] = $status_arr_list;
$this->data['type_arr'] = $type_arr;
$this->data['lists'] = $list;
$this->data['params'] = $params;
$this->data['brandAry'] = $this->auto_brand_model->map_brand_list($map_brand);
$this->data['pager'] = array('count' => ceil($count / $size), 'curr' => $page, 'totle' => $count);
$this->data['_title'] = '属性管理';
$this->show_view('auto/attr/lists', true);
}
public function get()
{
$id = $this->input->get('id');
$info = [
'title' => ''
];
if ($id) {
$info = $this->auto_attr_model->get(array('id' => $id));
if (!$info || empty($info)) {
return $this->show_json(SYS_CODE_FAIL, '数据不存在!');
}
$info['jsondata'] = json_decode($info['jsondata'], true);
$info['jsondata']['img'] && $info['jsondata']['s_img'] = build_qiniu_image_url($info['jsondata']['img']);
}
$brand_id = '';
if ($info['s_id']) {
$row_sery = $this->auto_series_model->get(array('id' => $info['s_id']));
$brand_id = $row_sery['brand_id'];
}
$type_arr = $this->auto_attr_model->get_type();
!$info['type'] && $info['type'] = 0;
$info['brand_id'] = $brand_id;
!$info['s_id'] && $info['s_id'] = '';
!$info['jsondata']['img'] && $info['jsondata']['img'] = '';
$this->data['type_arr'] = $type_arr;
$this->data['info'] = $info;
$this->data['_title'] = $id ? '编辑' : '新增';
return $this->show_view('auto/attr/edit', true);
}
public function add()
{
if (!$this->if_ajax) {
return $this->show_json(SYS_CODE_FAIL, '提交出错!');
}
$post = $this->input->post();
if (!$post['title']) {
return $this->show_json(SYS_CODE_FAIL, '标题不能为空');
}
$add_data = [
'title' => $post['title'],
's_id' => $post['s_id'],
'type' => $post['type'],
'c_time' => time()
];
$post['jsondata'] && $add_data['jsondata'] = json_encode($post['jsondata'], JSON_UNESCAPED_UNICODE);
$result = $this->auto_attr_model->add($add_data);
if (!$result) {
return $this->show_json(SYS_CODE_FAIL, '添加失败');
}
return $this->show_json(SYS_CODE_SUCCESS, '添加成功');
}
public function edit()
{
if (!$this->if_ajax) {
return $this->show_json(SYS_CODE_FAIL, '提交出错!');
}
$post = $this->input->post();
$row = $this->auto_attr_model->get(['id' => $post['id']]);
if (!$row) {
return $this->show_json(SYS_CODE_FAIL, '数据不存在');
}
if (!$post['title']) {
return $this->show_json(SYS_CODE_FAIL, '标题不能为空');
}
$update = [
'title' => $post['title'],
's_id' => $post['s_id'],
'type' => $post['type'],
];
$post['jsondata'] && $update['jsondata'] = json_encode($post['jsondata'], JSON_UNESCAPED_UNICODE);
$result = $this->auto_attr_model->update($update, ['id' => $row['id']]);
if (!$result) {
return $this->show_json(SYS_CODE_FAIL, '保存失败');
}
return $this->show_json(SYS_CODE_SUCCESS, '保存成功');
}
public function del()
{
$id = $this->input->post('id');
if (!$id) {
$this->show_json(SYS_CODE_FAIL, '参数错误');
}
$stauts = $this->input->post('status');
$where = ['id' => $id];
$this->auto_attr_model->update(['status' => $stauts], $where);
return $this->show_json(SYS_CODE_SUCCESS, '操作成功');
}
public function batch()
{
}
public function export()
{
}
/**
* 属性选项列表
* @return bool
*/
function json_lists()
{
$s_id = $this->input->get_post('s_id');
$status = $this->input->get_post('status');
$type = $this->input->get_post('type');
$page = $this->input->get_post('page');
$size = $this->input->get_post('size');
$where = array();
$s_id && $where['s_id'] = $s_id;
strlen($type) > 0 && $where['type'] = $type;
/*if ($status == 3) {//搜索专用
$where['status'] = 1;
} else {
$where['status>'] = -1;
}*/
if(strlen($status) > 0){
if (strpos($status,'>') !== false || strpos($status,'<') !== false || strpos($status,'in') !== false){
$where["status {$status}"] = null;
}
else{
if ($status == 3) {//搜索专用
$where['status'] = 1;
} else {
$where['status>'] = -1;
}
}
} else {
$where['status > -1'] = null;
}
$where['status>-1'] = null;
$total = $this->auto_attr_model->count($where);
$lists = array();
if ($total) {
$orderby = 'id desc';
$select = 'id, title';
$rows = $this->auto_attr_model->select($where, $orderby, $page, $size, $select);
foreach ($rows as $v) {
$lists[] = array(
'id' => $v['id'],
'title' => $v['title'],
);
}
}
$this->data = array('total' => $total, 'list' => $lists);
return $this->show_json(SYS_CODE_SUCCESS);
}
}