This commit is contained in:
mkm 2023-11-01 15:03:33 +08:00
parent be635affa2
commit 8faa050a78
2 changed files with 33 additions and 26 deletions

View File

@ -83,9 +83,8 @@ class ProductLibrary extends BaseController
} }
} }
public function caiji() public function caiji($code='')
{ {
$code = $this->request->param('code');
$url_host=$this->request->host(); $url_host=$this->request->host();
if ($code=='') { if ($code=='') {
return app('json')->fail('编码不能为空'); return app('json')->fail('编码不能为空');
@ -100,6 +99,7 @@ class ProductLibrary extends BaseController
$bodys = ""; $bodys = "";
$url = $host . $path . "?" . $querys; $url = $host . $path . "?" . $querys;
try{
$curl = curl_init(); $curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_URL, $url);
@ -139,31 +139,31 @@ class ProductLibrary extends BaseController
$data['image']= $url_host.'/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'])); file_put_contents($destination, file_get_contents($param['img']));
}else{ }else{
$data['image'] = ''; $data['image'] = 'https://lihai001.oss-cn-chengdu.aliyuncs.com/uploads/20230130/00ebcfdf75684f5494c0193075055d1.png';
} }
$res = Db::name('product_library')->insert($data); $res = Db::name('product_library')->insert($data);
if($res){ if($res){
return app('json')->success('添加成功'); return app('json')->success('添加成功');
}else{ }else{
return app('json')->fail('添加失败'); throw new \think\exception\ValidateException('添加失败');
} }
} else { } else {
if ($httpCode == 400 && strpos($header, "Invalid Param Location") !== false) { if ($httpCode == 400 && strpos($header, "Invalid Param Location") !== false) {
return app('json')->fail("参数错误"); throw new \think\exception\ValidateException("参数错误");
} elseif ($httpCode == 400 && strpos($header, "Invalid AppCode") !== false) { } elseif ($httpCode == 400 && strpos($header, "Invalid AppCode") !== false) {
return app('json')->fail("AppCode错误"); throw new \think\exception\ValidateException("AppCode错误");
} elseif ($httpCode == 400 && strpos($header, "Invalid Url") !== false) { } elseif ($httpCode == 400 && strpos($header, "Invalid Url") !== false) {
return app('json')->fail("请求的 Method、Path 或者环境错误"); throw new \think\exception\ValidateException("请求的 Method、Path 或者环境错误");
} elseif ($httpCode == 403 && strpos($header, "Unauthorized") !== false) { } elseif ($httpCode == 403 && strpos($header, "Unauthorized") !== false) {
return app('json')->fail("服务未被授权或URL和Path不正确"); throw new \think\exception\ValidateException("服务未被授权或URL和Path不正确");
} elseif ($httpCode == 403 && strpos($header, "Quota Exhausted") !== false) { } elseif ($httpCode == 403 && strpos($header, "Quota Exhausted") !== false) {
return app('json')->fail("套餐包次数用完"); throw new \think\exception\ValidateException("套餐包次数用完");
} elseif ($httpCode == 403 && strpos($header, "Api Market Subscription quota exhausted") !== false) { } elseif ($httpCode == 403 && strpos($header, "Api Market Subscription quota exhausted") !== false) {
return app('json')->fail("套餐包次数用完,请续购套餐"); throw new \think\exception\ValidateException("套餐包次数用完,请续购套餐");
} elseif ($httpCode == 500) { } elseif ($httpCode == 500) {
return app('json')->fail("API网关错误"); throw new \think\exception\ValidateException("API网关错误");
} elseif ($httpCode == 0) { } elseif ($httpCode == 0) {
return app('json')->fail("URL错误"); throw new \think\exception\ValidateException("URL错误");
} else { } else {
$headers = explode("\r\n", $header); $headers = explode("\r\n", $header);
$headList = array(); $headList = array();
@ -172,9 +172,12 @@ class ProductLibrary extends BaseController
$headList[$value[0]] = $value[1]; $headList[$value[0]] = $value[1];
} }
Log::error('商品采集错误:'.$headList['x-ca-error-message']); Log::error('商品采集错误:'.$headList['x-ca-error-message']);
return app('json')->fail("参数名错误 或 其他错误"); throw new \think\exception\ValidateException("参数名错误 或 其他错误");
} }
} }
}catch(\Exception $e){
throw new \think\exception\ValidateException($e->getMessage());
}
} }
} }

View File

@ -3,32 +3,36 @@ namespace app\controller\api\store\product;
use app\common\dao\system\merchant\MerchantDao; use app\common\dao\system\merchant\MerchantDao;
use app\common\model\system\merchant\Merchant; use app\common\model\system\merchant\Merchant;
use app\common\repositories\store\product\ProductRepository; use app\common\repositories\store\product\ProductRepository;
use app\controller\admin\ProductLibrary;
use think\facade\Db; use think\facade\Db;
use crmeb\basic\BaseController; use crmeb\basic\BaseController;
use Exception;
class StoreMicro extends BaseController class StoreMicro extends BaseController
{ {
function seach_bar_code($mer_id,$code='',$name=''){ function seach_bar_code($mer_id,$code='',$name=''){
$where = ['is_used' => 1, 'status' => 1, 'is_del' => 0];
$category_id=Db::name('merchant')->where('mer_id',$mer_id)->value('category_id'); $field = 'id,store_name,bar_code,unit_name,price,cost,ot_price,stock,image';
$mer_type_id = Db::name('MerchantType')->where('type_code', 'in',[Merchant::TypeCode['TypeSupplyChain'],Merchant::TypeCode['TypeTownSupplyChain'],Merchant::TypeCode['TypeStore']])->column('mer_type_id');
$platformMerId = app()->make(MerchantDao::class)->getValidMerchant(['category_id' => $category_id])->whereIn('type_id',$mer_type_id)->column('mer_id');
if($platformMerId==null){
return app('json')->fail('没有市级供应链或者镇级供应链');
}
$productWhere = ['is_show' => 1, 'status' => 1, 'mer_status' => 1, 'is_del' => 0];
if($code!=''){ if($code!=''){
if (strlen($code) != 13) { if (strlen($code) <13) {
return app('json')->success('条形码长度不正确'); return app('json')->success('条形码长度不正确');
} }
$product_id_arr=Db::name('store_product_attr_value')->whereIn('mer_id',$platformMerId)->where('bar_code',$code)->column('product_id'); $res=Db::name('product_library')->where('bar_code',$code)->where($where)->field($field)->find();
$product_id_arr=implode(',',$product_id_arr); if($res==null){
$find=Db::name('store_product')->where('product_id',$product_id_arr)->where($productWhere)->select(); $ProductLibrary = app()->make(ProductLibrary::class);
try{
$ProductLibrary->caiji($code);
$res=Db::name('product_library')->where('bar_code',$code)->where($where)->field($field)->find();
}catch(Exception $e){
return app('json')->fail($e->getMessage());
}
}
$find[]=$res;
}else{ }else{
if($name==''){ if($name==''){
return app('json')->fail('参数不能为空'); return app('json')->fail('参数不能为空');
} }
$find=Db::name('store_product')->whereIn('mer_id',$platformMerId)->where('store_name','like','%'.$name.'%')->where($productWhere)->select(); $find=Db::name('product_library')->where('store_name','like','%'.$name.'%')->where($where)->field($field)->select();
} }
if (count($find)==0){ if (count($find)==0){
if($code!=''){ if($code!=''){