183 lines
7.1 KiB
PHP
Executable File
183 lines
7.1 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\controller\admin;
|
|
|
|
use crmeb\basic\BaseController;
|
|
use think\facade\Db;
|
|
use think\facade\Log;
|
|
use crmeb\services\UploadService;
|
|
use think\api\Client;
|
|
use GuzzleHttp\Client as http_client;
|
|
|
|
class ProductLibrary extends BaseController
|
|
{
|
|
|
|
public function lst()
|
|
{
|
|
[$page, $limit] = $this->getPage();
|
|
$param = $this->request->param();
|
|
$where = ['is_del' => 0];
|
|
$list = Db::name('product_library')->where($where)->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 = '')
|
|
{
|
|
if ($code == '') {
|
|
return app('json')->fail('编码不能为空');
|
|
}
|
|
$first_char = substr($code, 0, 1);
|
|
if($first_char!=0){
|
|
$codes='0'.$code;
|
|
}else{
|
|
$codes=$code;
|
|
}
|
|
$client = new Client("b1eb52b9-0379-4c56-b795-47d90a73ca6a");
|
|
|
|
$result = $client->barcodeQuery()
|
|
->withCode($codes)
|
|
->request();
|
|
try {
|
|
if ($result['code'] == 0) {
|
|
$upload = UploadService::create();
|
|
$dir = 'def/' . date('Y-m-d');
|
|
|
|
$param = $result['data'];
|
|
$data['store_name'] = $param['goodsName'];
|
|
$data['store_info'] = '';
|
|
$data['keyword'] = '';
|
|
$data['bar_code'] = $code;
|
|
$data['is_used'] = 1;
|
|
$data['status'] = 1;
|
|
$data['cate_id'] = 0;
|
|
$data['unit_name'] = '';
|
|
$data['spec'] =$param['spec'];
|
|
$data['trademark'] =$param['trademark'];
|
|
$data['goods_type'] =$param['goodsType'];
|
|
$data['ycg'] =$param['ycg'];
|
|
$data['note'] =$param['note'];
|
|
$data['manu_address'] =$param['manuAddress'];
|
|
$data['price'] = $param['price']??0;
|
|
$data['cost'] = 0;
|
|
$data['ot_price'] = 0;
|
|
$data['stock'] = 9999999;
|
|
$data['create_time'] = date('Y-m-d H:i:s');
|
|
$data['images'] = '';
|
|
$arr=[];
|
|
if ($param['img'] != '') {
|
|
$oss = $upload->to($dir)->stream($this->getPic($param['img']));
|
|
$data['image'] = $oss->filePath;
|
|
$arr[]=$oss->filePath;
|
|
} else {
|
|
$data['image'] = 'https://lihai001.oss-cn-chengdu.aliyuncs.com/uploads/20230130/00ebcfdf75684f5494c0193075055d1.png';
|
|
$data['slider_image'] = 'https://lihai001.oss-cn-chengdu.aliyuncs.com/uploads/20230130/00ebcfdf75684f5494c0193075055d1.png';
|
|
}
|
|
foreach($param['imgList'] as $k=>$v){
|
|
$oss=$upload->to($dir)->stream($this->getPic($v));
|
|
$arr[] = $oss->filePath;
|
|
}
|
|
if(count($arr)>0){
|
|
$data['slider_image'] =implode(',',$arr);
|
|
}else{
|
|
$data['slider_image']=$data['image'];
|
|
}
|
|
$data['images'] = '';
|
|
$res = Db::name('product_library')->insert($data);
|
|
|
|
if ($res) {
|
|
$group_id=Db::name('system_group')->where('group_key','product_caiji_count')->value('group_id');
|
|
if($group_id){
|
|
$find=Db::name('system_group_data')->where('group_id',$group_id)->whereDay('create_time')->find();
|
|
if($find){
|
|
$count=json_decode($find['value'],true)['count']+1;
|
|
Db::name('system_group_data')->where('group_data_id',$find['group_data_id'])->update(['value'=>json_encode(['count'=>$count])]);
|
|
}else{
|
|
Db::name('system_group_data')->insert(['group_id'=>$group_id,'value'=>'{"count":1}','create_time'=>date('Y-m-d H:i:s')]);
|
|
}
|
|
}
|
|
return app('json')->success('添加成功');
|
|
} else {
|
|
throw new \think\exception\ValidateException('添加失败');
|
|
}
|
|
} else {
|
|
Log::error('一维码商品采集错误:' . $result['data']['remark']);
|
|
throw new \think\exception\ValidateException('一维码商品采集错误:'. $result['data']['remark']);
|
|
}
|
|
} catch (\Exception $e) {
|
|
throw new \think\exception\ValidateException('一维码商品采集错误:'.$e->getMessage());
|
|
}
|
|
}
|
|
|
|
public function getPic($url){
|
|
$client = new http_client();
|
|
$a=$client->get($url);
|
|
return $a->getBody()->getContents();
|
|
}
|
|
}
|