181 lines
7.2 KiB
PHP
181 lines
7.2 KiB
PHP
<?php
|
||
|
||
namespace app\controller\admin;
|
||
|
||
use crmeb\basic\BaseController;
|
||
use think\facade\Db;
|
||
use think\facade\Log;
|
||
|
||
class ProductLibrary extends BaseController
|
||
{
|
||
|
||
public function lst()
|
||
{
|
||
[$page, $limit] = $this->getPage();
|
||
$param = $this->request->param();
|
||
$list = Db::name('product_library')->page($page)->limit($limit)->order('id desc')->select();
|
||
$count = Db::name('product_library')->count();
|
||
return app('json')->success(['list' => $list, 'count' => $count]);
|
||
}
|
||
|
||
public function add()
|
||
{
|
||
$param = $this->request->param();
|
||
$data['store_name'] = $param['store_name'];
|
||
$data['store_info'] = $param['store_info'];
|
||
$data['keyword'] = $param['keyword'];
|
||
$data['bar_code'] = $param['bar_code'];
|
||
$data['is_used'] = 1;
|
||
$data['status'] = 1;
|
||
$data['cate_id'] = $param['cate_id'];
|
||
$data['unit_name'] = $param['unit_name'];
|
||
$data['price'] = $param['price'];
|
||
$data['cost'] = $param['cost'];
|
||
$data['ot_price'] = $param['ot_price'];
|
||
$data['stock'] = $param['stock'];
|
||
$data['create_time'] = date('Y-m-d H:i:s');
|
||
$data['image'] = $param['image'];
|
||
$data['slider_image'] = $param['slider_image'];
|
||
$data['images'] = $param['images'];
|
||
$res = Db::name('product_library')->insert($data);
|
||
if ($res) {
|
||
return app('json')->success('添加成功');
|
||
} else {
|
||
return app('json')->fail('添加失败');
|
||
}
|
||
}
|
||
|
||
public function edit()
|
||
{
|
||
$param = $this->request->param();
|
||
$data['store_name'] = $param['store_name'];
|
||
$data['store_info'] = $param['store_info'];
|
||
$data['keyword'] = $param['keyword'];
|
||
$data['bar_code'] = $param['bar_code'];
|
||
$data['is_used'] = 1;
|
||
$data['status'] = 1;
|
||
$data['cate_id'] = $param['cate_id'];
|
||
$data['unit_name'] = $param['unit_name'];
|
||
$data['price'] = $param['price'];
|
||
$data['cost'] = $param['cost'];
|
||
$data['ot_price'] = $param['ot_price'];
|
||
$data['stock'] = $param['stock'];
|
||
$data['create_time'] = date('Y-m-d H:i:s');
|
||
$data['image'] = $param['image'];
|
||
$data['slider_image'] = $param['slider_image'];
|
||
$data['images'] = $param['images'];
|
||
$res = Db::name('product_library')->where('id', $param['id'])->update($data);
|
||
if ($res) {
|
||
return app('json')->success('修改成功');
|
||
} else {
|
||
return app('json')->fail('修改失败');
|
||
}
|
||
}
|
||
|
||
public function del()
|
||
{
|
||
$param = $this->request->param();
|
||
$res = Db::name('product_library')->where('id', $param['id'])->update(['is_del' => 1]);
|
||
if ($res) {
|
||
return app('json')->success('删除成功');
|
||
} else {
|
||
return app('json')->fail('删除失败');
|
||
}
|
||
}
|
||
|
||
public function caiji()
|
||
{
|
||
$code = $this->request->param('code');
|
||
$url_host=$this->request->host();
|
||
if ($code=='') {
|
||
return app('json')->fail('编码不能为空');
|
||
}
|
||
$host = "https://codequery.market.alicloudapi.com";
|
||
$path = "/querybarcode";
|
||
$method = "GET";
|
||
$appcode = "7d2824a6331244918c66830cf33d2c4e"; //开通服务后 买家中心-查看AppCode
|
||
$headers = array();
|
||
array_push($headers, "Authorization:APPCODE " . $appcode);
|
||
$querys = "code=".$code;
|
||
$bodys = "";
|
||
$url = $host . $path . "?" . $querys;
|
||
|
||
$curl = curl_init();
|
||
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
|
||
curl_setopt($curl, CURLOPT_URL, $url);
|
||
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
||
curl_setopt($curl, CURLOPT_FAILONERROR, false);
|
||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
||
curl_setopt($curl, CURLOPT_HEADER, true);
|
||
if (1 == strpos("$" . $host, "https://")) {
|
||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
|
||
}
|
||
$out_put = curl_exec($curl);
|
||
|
||
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||
|
||
list($header, $body) = explode("\r\n\r\n", $out_put, 2);
|
||
if ($httpCode == 200) {
|
||
$param=json_decode($body,true)['result'];
|
||
$data['store_name'] = $param['goodsName'].' '.$param['spec'];
|
||
$data['store_info'] = '';
|
||
$data['keyword'] = '';
|
||
$data['bar_code'] = $param['code'];
|
||
$data['is_used'] = 1;
|
||
$data['status'] = 1;
|
||
$data['cate_id'] = 0;
|
||
$data['unit_name'] = '';
|
||
$data['price'] = 0;
|
||
$data['cost'] = 0;
|
||
$data['ot_price'] = 0;
|
||
$data['stock'] =9999999;
|
||
$data['create_time'] = date('Y-m-d H:i:s');
|
||
$data['images'] = '';
|
||
$data['slider_image'] = '';
|
||
if($param['img']!=''){
|
||
$filename = basename($param['img']); // 获取文件名
|
||
$destination = public_path('uploads').'img/' .date('Y-m-d').'/'. $filename; // 目标路径
|
||
$data['image']= $url_host.'/uploads/img/'.date('Y-m-d').'/'. $filename;
|
||
file_put_contents($destination, file_get_contents($param['img']));
|
||
}else{
|
||
$data['image'] = '';
|
||
}
|
||
$res = Db::name('product_library')->insert($data);
|
||
if($res){
|
||
return app('json')->success('添加成功');
|
||
}else{
|
||
return app('json')->fail('添加失败');
|
||
}
|
||
} else {
|
||
if ($httpCode == 400 && strpos($header, "Invalid Param Location") !== false) {
|
||
return app('json')->fail("参数错误");
|
||
} elseif ($httpCode == 400 && strpos($header, "Invalid AppCode") !== false) {
|
||
return app('json')->fail("AppCode错误");
|
||
} elseif ($httpCode == 400 && strpos($header, "Invalid Url") !== false) {
|
||
return app('json')->fail("请求的 Method、Path 或者环境错误");
|
||
} elseif ($httpCode == 403 && strpos($header, "Unauthorized") !== false) {
|
||
return app('json')->fail("服务未被授权(或URL和Path不正确)");
|
||
} elseif ($httpCode == 403 && strpos($header, "Quota Exhausted") !== false) {
|
||
return app('json')->fail("套餐包次数用完");
|
||
} elseif ($httpCode == 403 && strpos($header, "Api Market Subscription quota exhausted") !== false) {
|
||
return app('json')->fail("套餐包次数用完,请续购套餐");
|
||
} elseif ($httpCode == 500) {
|
||
return app('json')->fail("API网关错误");
|
||
} elseif ($httpCode == 0) {
|
||
return app('json')->fail("URL错误");
|
||
} else {
|
||
$headers = explode("\r\n", $header);
|
||
$headList = array();
|
||
foreach ($headers as $head) {
|
||
$value = explode(':', $head);
|
||
$headList[$value[0]] = $value[1];
|
||
}
|
||
Log::error('商品采集错误:'.$headList['x-ca-error-message']);
|
||
return app('json')->fail("参数名错误 或 其他错误");
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|