|
|
@@ -6,6 +6,7 @@
|
|
|
|
|
|
namespace app\api\controller;
|
|
|
|
|
|
+use app\api\controller\Common;
|
|
|
use think\Controller;
|
|
|
use think\Request;
|
|
|
use think\facade\Env;
|
|
|
@@ -68,15 +69,16 @@ class ProductController extends Controller
|
|
|
|
|
|
if ($info) {
|
|
|
$relativePath = 'uploads/' . $year . $month . $day . '/' . $fileName;
|
|
|
- $fileUrl = $this->request->domain() . '/' . str_replace('\\', '/', $relativePath);
|
|
|
+ // $fileUrl = $this->request->domain() . '/' . str_replace('\\', '/', $relativePath);
|
|
|
|
|
|
return json([
|
|
|
'success' => true,
|
|
|
'message' => '上传成功',
|
|
|
'data' => [
|
|
|
- 'url' => $fileUrl
|
|
|
+ // 'url' => $fileUrl
|
|
|
+ 'url' => $relativePath
|
|
|
]
|
|
|
- ]);
|
|
|
+ ]);
|
|
|
} else {
|
|
|
return json([
|
|
|
'success' => false,
|
|
|
@@ -95,27 +97,49 @@ class ProductController extends Controller
|
|
|
*/
|
|
|
public function productAdd()
|
|
|
{
|
|
|
- // 获取请求数据
|
|
|
$data = $this->request->param();
|
|
|
|
|
|
- // 验证数据(示例)
|
|
|
if (empty($data['code'])) {
|
|
|
return json([
|
|
|
'success' => false,
|
|
|
'message' => '产品编码不能为空'
|
|
|
]);
|
|
|
}
|
|
|
+
|
|
|
+ $productImgPath = '';
|
|
|
+ if (!empty($data['image'])) {
|
|
|
+ $base64Data = $data['image'];
|
|
|
+ if (preg_match('/data:image\/(png|jpg|jpeg);base64,([A-Za-z0-9+\/=]+)/i', $base64Data, $m)) {
|
|
|
+ $imageType = strtolower($m[1]);
|
|
|
+ $imageData = base64_decode($m[2]);
|
|
|
+ if ($imageData !== false && strlen($imageData) >= 100) {
|
|
|
+ $productCode = $data['code'];
|
|
|
+ $prefix = strlen($productCode) >= 4 ? substr($productCode, 0, -4) : $productCode;
|
|
|
+ $safeName = preg_replace('/[\\\\\/:*?"<>|]/u', '_', $data['name']);
|
|
|
+ $ext = ($imageType === 'jpeg') ? 'jpg' : $imageType;
|
|
|
+ $fileName = $safeName . '.' . $ext;
|
|
|
+ $saveDir = str_replace('\\', '/', ROOT_PATH . 'public/uploads/merchant/' . $prefix . '/' . $productCode . '/oldimg/');
|
|
|
+ if (!is_dir($saveDir)) {
|
|
|
+ mkdir($saveDir, 0755, true);
|
|
|
+ }
|
|
|
+ if (file_put_contents($saveDir . $fileName, $imageData)) {
|
|
|
+ $productImgPath = 'uploads/merchant/' . $prefix . '/' . $productCode . '/oldimg/' . $fileName;
|
|
|
+ Common::uploadLocalFileToOss($saveDir . $fileName, $productImgPath);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
$res = [
|
|
|
'product_name' => $data['name'],
|
|
|
'product_code' => $data['code'],
|
|
|
- 'product_img' => $data['image'],
|
|
|
+ 'product_img' => $productImgPath,
|
|
|
'createTime' => date('Y-m-d H:i:s'),
|
|
|
'create_name' => '系统摄像头',
|
|
|
];
|
|
|
|
|
|
- $res = db('product')->insert($res);
|
|
|
- if (!$res) {
|
|
|
+ $insertResult = db('product')->insert($res);
|
|
|
+ if (!$insertResult) {
|
|
|
return json([
|
|
|
'success' => false,
|
|
|
'message' => '添加失败'
|