You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
4.0 KiB
156 lines
4.0 KiB
<?php
|
|
|
|
namespace addons\qingdong\controller;
|
|
|
|
use addons\qingdong\model\Product as ProductModel;
|
|
use addons\qingdong\model\ProductPart;
|
|
use addons\qingdong\model\Producttype;
|
|
|
|
|
|
/**
|
|
* 产品
|
|
*/
|
|
class Product extends StaffApi
|
|
{
|
|
protected $noNeedLogin = [];
|
|
protected $noNeedRight = [];
|
|
|
|
|
|
/**
|
|
* 获取select产品列表
|
|
*/
|
|
public function getSelectList()
|
|
{
|
|
$name = input('name');
|
|
$type_id = input('type_id');
|
|
$where = [];
|
|
if ($name) {
|
|
$where['name|num'] = ['like', "%{$name}%"];
|
|
}
|
|
if ($type_id) {
|
|
$where['type_id'] = $type_id;
|
|
}
|
|
$list = ProductModel::where($where)->field('id,name,type,num,img,unit,price,min_price,status,cost_price,wholesale')->select();
|
|
$this->success('请求成功', $list);
|
|
}
|
|
|
|
/**
|
|
* 获取产品分类列表
|
|
*/
|
|
public function getProducttypeList()
|
|
{
|
|
$name = input('name');
|
|
$where=[];
|
|
if ($name) {
|
|
$where['name'] = ['like', "%{$name}%"];
|
|
}
|
|
$list = Producttype::where($where)->field('id,name')->select();
|
|
|
|
$this->success('请求成功', $list);
|
|
}
|
|
|
|
/**
|
|
* 获取产品配置列表
|
|
*/
|
|
public function getPartList()
|
|
{
|
|
$product_id = input('product_id');
|
|
$name = input('name');
|
|
$where = [];
|
|
if ($name) {
|
|
$where['name'] = ['like', "%{$name}%"];
|
|
}
|
|
$where['product_id'] = $product_id;
|
|
$list = ProductPart::where($where)->field('id,name,img,description')->select();
|
|
$this->success('请求成功', $list);
|
|
}
|
|
|
|
/**
|
|
* 获取产品详情
|
|
*/
|
|
public function getProductDetail()
|
|
{
|
|
$id = input('id');
|
|
$product = ProductModel::where(['id' => $id])->find();
|
|
if (empty($product)) {
|
|
$this->error('产品不存在');
|
|
}
|
|
preg_match_all("/(<img .*?src=\")(.*?)(\".*?>)/is", $product['description'], $matchpic);
|
|
foreach ($matchpic[2] as $url) {
|
|
$img = cdnurl($url, true);
|
|
$product['description'] = str_replace($url, $img, $product['description']);
|
|
}
|
|
$this->success('请求成功', $product);
|
|
}
|
|
|
|
/**
|
|
* 添加产品
|
|
*/
|
|
public function addProduct()
|
|
{
|
|
$params = $this->request->post();
|
|
if ($params) {
|
|
$parts = $params['parts'] ?? [];
|
|
|
|
$model = new ProductModel();
|
|
$model->allowField(true)->save($params);
|
|
$lastid = $model->getLastInsID();
|
|
$partModel = new ProductPart();
|
|
foreach ($parts as &$v) {
|
|
$v['product_id'] = $lastid;
|
|
}
|
|
$partModel->allowField(true)->saveAll($parts);
|
|
$this->success('添加产品成功');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 添加产品配件
|
|
*/
|
|
public function addProductPart()
|
|
{
|
|
$params = $this->request->post();
|
|
if ($params) {
|
|
$partModel = new ProductPart();
|
|
|
|
$partModel->save($params);
|
|
$this->success('添加产品配置成功');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 修改产品信息
|
|
*/
|
|
public function editProduct()
|
|
{
|
|
$params = $this->request->post();
|
|
if ($params) {
|
|
$model = new ProductModel();
|
|
$row = $model->get($params['id']);
|
|
if (empty($row)) {
|
|
$this->error('产品不存在');
|
|
}
|
|
$row->allowField(true)->save($params);
|
|
|
|
$this->success('添加产品成功');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 修改产品配件
|
|
*/
|
|
public function editProductPart()
|
|
{
|
|
$params = $this->request->post();
|
|
if ($params) {
|
|
$partModel = new ProductPart();
|
|
$row = $partModel->get($params['id']);
|
|
if (empty($row)) {
|
|
$this->error('产品配置不存在');
|
|
}
|
|
$row->allowField(true)->save($params);
|
|
|
|
$this->success('修改产品配置成功');
|
|
}
|
|
}
|
|
}
|
|
|