<?php

namespace app\admin\controller;
use think\Db;

class ShopGoods extends Auth {
    public function index() {
        if (request()->isAjax()) {
            //分页参数
            $length = input('rows', 10, 'intval');   //每页条数
            $page = input('page', 1, 'intval');      //第几页
            $start = ($page - 1) * $length;     //分页开始位置
            //排序
            $sortRow = input('sidx', 'id', 'trim');      //排序列
            $sort = input('sord', 'asc', 'trim');        //排序方式
            $order = $sortRow . ' ' . $sort;
            $title = input('title', '', 'trim');
            if ($title) {
                $map[] = ['title', 'like', '%' . $title . '%'];
            }
            $enable = input('enable', '', 'trim');
            if ($enable != '') {
                $map[] = ['enable', '=', $enable];
            }
            $map[] = ['org_id', '=', $this->orgId];
            $map[] = ['del', '=', 0];
            $map = empty($map) ? true : $map;
            //数据查询
            $lists = Db::name('shop_goods')
                ->where($map)->limit($start, $length)
                ->order($order)->select();
            foreach ($lists as $k => $v) {
                $lists[$k]['cate_name'] = Db::name('shop_goods_cate')
                    ->where('id', $v['cate_id'])->value('name');
            }
            //数据返回
            $totalCount = Db::name('shop_goods')->where($map)->count();
            $totalPage = ceil($totalCount / $length);
            $result['page'] = $page;
            $result['total'] = $totalPage;
            $result['records'] = $totalCount;
            $result['rows'] = $lists;
            return json($result);
        }
        else {
            $this->assign('meta_title', '商品列表');
            return $this->fetch();
        }
    }
    /**
     * 新增/编辑
     */
    public function add($id = 0) {
        if (request()->isPost()) {
            $model = new \app\common\model\ShopGoods();
            $res = $model->updates();
            if ($res) {
                $this->success('操作成功', url('index'));
            }
            else {
                $this->error($model->getError());
            }
        }
        else {
            $meta_title = '新增商品';
            if ($id) {
                $info = Db::name('shop_goods')->where('id', $id)->find();
                $this->assign('info', $info);
                $meta_title = '编辑商品';
            }
            //获取分类
            $map['org_id'] = $this->orgId;
            $cate = Db::name('shop_goods_cate')
                ->field('id as cate_id,name')->where($map)->select();
            $this->assign('goods_cate', $cate);
            $this->assign('meta_title', $meta_title);
            return $this->fetch();
        }
    }
    /**
     * 删除记录
     * @param int $id
     */
    public function del($id = 0) {
        if (!$id) {
            $this->error('参数错误');
        }
        $res = Db::name('shop_goods')->where('id', $id)->update(['del' => 1]);
        if ($res) {
            $this->success('删除成功');
        }
        else {
            $this->error('删除失败');
        }
    }
    /**
     * 改变字段值
     * @param int $fv
     * @param string $fn
     * @param int $fv
     */
    public function changeField($id = 0, $fn = '', $fv = 0) {
        if (!$fn || !$id) {
            $this->error('参数错误');
        }
        $res = Db::name('shop_goods')->where('id', $id)->update([$fn => $fv]);
        if ($res) {
            $this->success('操作成功');
        }
        else {
            $this->error('操作失败');
        }
    }
}