shop-php/app/controller/admin/ProductLibrary.php

177 lines
6.8 KiB
PHP
Raw Normal View History

2023-11-01 11:57:51 +08:00
<?php
namespace app\controller\admin;
use crmeb\basic\BaseController;
use think\facade\Db;
2023-11-01 14:11:50 +08:00
use think\facade\Log;
2023-11-01 20:17:32 +08:00
use crmeb\services\UploadService;
2023-11-02 14:13:04 +08:00
use think\api\Client;
2023-11-01 11:57:51 +08:00
class ProductLibrary extends BaseController
{
public function lst()
{
[$page, $limit] = $this->getPage();
$param = $this->request->param();
2023-11-02 14:13:04 +08:00
$where = ['is_del' => 0];
2023-11-01 18:37:12 +08:00
$list = Db::name('product_library')->where($where)->page($page)->limit($limit)->order('id desc')->select();
2023-11-01 11:57:51 +08:00
$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'];
2023-11-01 14:11:50 +08:00
$res = Db::name('product_library')->where('id', $param['id'])->update($data);
2023-11-01 11:57:51 +08:00
if ($res) {
return app('json')->success('修改成功');
} else {
return app('json')->fail('修改失败');
}
}
public function del()
{
$param = $this->request->param();
2023-11-01 14:11:50 +08:00
$res = Db::name('product_library')->where('id', $param['id'])->update(['is_del' => 1]);
2023-11-01 11:57:51 +08:00
if ($res) {
return app('json')->success('删除成功');
} else {
return app('json')->fail('删除失败');
}
}
2023-11-02 14:13:04 +08:00
public function caiji($code = '')
2023-11-01 11:57:51 +08:00
{
2023-11-02 14:13:04 +08:00
if ($code == '') {
2023-11-01 14:11:50 +08:00
return app('json')->fail('编码不能为空');
}
2023-11-02 17:06:50 +08:00
$first_char = substr($code, 0, 1);
if($first_char!=0){
$codes='0'.$code;
}else{
$codes=$code;
}
2023-11-02 14:13:04 +08:00
$client = new Client("b1eb52b9-0379-4c56-b795-47d90a73ca6a");
2023-11-01 14:11:50 +08:00
2023-11-02 14:13:04 +08:00
$result = $client->barcodeQuery()
2023-11-02 17:06:50 +08:00
->withCode($codes)
2023-11-02 14:13:04 +08:00
->request();
try {
if ($result['code'] == 0) {
2023-11-01 20:17:32 +08:00
$upload = UploadService::create();
$dir = 'def/' . date('Y-m-d');
2023-11-02 09:22:02 +08:00
2023-11-02 14:13:04 +08:00
$param = $result['data'];
$data['store_name'] = $param['goodsName'];
$data['store_info'] = '';
$data['keyword'] = '';
2023-11-02 14:31:26 +08:00
$data['bar_code'] = $code;
2023-11-02 14:13:04 +08:00
$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'] = '';
2023-11-02 15:17:09 +08:00
if ($param['img'] != '') {
$oss = $upload->to($dir)->stream(file_get_contents($param['img']));
2023-11-02 14:13:04 +08:00
$data['image'] = $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';
2023-11-01 14:11:50 +08:00
}
2023-11-02 14:13:04 +08:00
$arr=[];
foreach($param['imgList'] as $k=>$v){
2023-11-02 15:13:11 +08:00
$oss=$upload->to($dir)->stream(file_get_contents($v));
$arr[] = $oss->filePath;
2023-11-02 14:13:04 +08:00
}
if(count($arr)>0){
$data['slider_image'] =implode(',',$arr);
}else{
2023-11-04 13:51:22 +08:00
$data['slider_image']=$data['image'];
2023-11-02 14:13:04 +08:00
}
$data['images'] = '';
$res = Db::name('product_library')->insert($data);
2023-11-02 15:13:11 +08:00
2023-11-02 14:13:04 +08:00
if ($res) {
2023-11-08 11:10:26 +08:00
$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')]);
}
}
2023-11-02 14:13:04 +08:00
return app('json')->success('添加成功');
} else {
throw new \think\exception\ValidateException('添加失败');
}
} else {
2023-11-01 14:11:50 +08:00
2023-11-02 14:13:04 +08:00
Log::error('商品采集错误:' . $result['message']);
throw new \think\exception\ValidateException($result['message']);
2023-11-01 14:11:50 +08:00
}
2023-11-02 14:13:04 +08:00
} catch (\Exception $e) {
throw new \think\exception\ValidateException($e->getMessage());
2023-11-01 14:11:50 +08:00
}
}
2023-11-01 11:57:51 +08:00
}