adminInfo)['root']; $userId = (request()->adminInfo)['user_id']; $status = 1; if ($root && !empty($params['user_id'])) { $userId = $params['user_id']; } if (!empty($params['land_id'])) { $res = Db::name('land_product')->where('land_id', $params['land_id'])->find(); if ($res) { self::setError('该土地已绑定产品'); return false; } $status = 2; } Db::startTrans(); try { $product = Product::create([ 'user_id' => $userId, 'code' => $params['code'], 'name' => $params['name'], 'status' => $status, ]); if (!empty($params['land_id'])) { Db::name('land_product')->insert([ 'land_id' => $params['land_id'], 'product_id' => $product['id'], 'create_time' => time(), 'update_time' => time() ]); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2023/11/25 16:16 */ public static function edit(array $params): bool { $root = (request()->adminInfo)['root']; $userId = (request()->adminInfo)['user_id']; $status = 1; if ($root && !empty($params['user_id'])) { $userId = $params['user_id']; } if (!empty($params['land_id'])) { $res = Db::name('land_product')->where('land_id', $params['land_id'])->where('product_id', '<>' ,$params['id'])->find(); if ($res) { self::setError('该土地已绑定产品'); return false; } $status = 2; } Db::startTrans(); try { Product::where('id', $params['id'])->update([ 'user_id' => $userId, 'code' => $params['code'], 'name' => $params['name'], 'status' => $status, ]); Db::name('land_product')->where('product_id', $params['id'])->delete(); if (!empty($params['land_id'])) { Db::name('land_product')->insert([ 'land_id' => $params['land_id'], 'product_id' => $params['id'], 'create_time' => time(), 'update_time' => time() ]); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2023/11/25 16:16 */ public static function delete(array $params): bool { Db::name('land_product')->where('product_id', $params['id'])->delete(); Db::name('monitor_data')->where('product_id', $params['id'])->delete(); return Product::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2023/11/25 16:16 */ public static function detail($params): array { return Product::findOrEmpty($params['id'])->toArray(); } public static function bind($params): bool { $userId = (request()->adminInfo)['user_id']; if (!empty($params['id'])) { $userId = Db::name('product')->where('id', $params['id'])->value('user_id'); } Db::startTrans(); try { Db::name('product_device')->whereIn('device_id', $params['device_id'])->delete(); Db::name('product_device')->where('product_id', $params['id'])->delete(); Db::name('device')->whereIn('id', $params['device_id'])->update([ 'user_id' => $userId ]); $deviceList = Db::name('device')->whereIn('id', $params['device_id'])->select()->toArray(); $insertData = []; foreach($deviceList as $d) { $insertData[] = [ 'product_id' => $params['id'], 'device_id' => $d['id'], 'device_type' => $d['type'], 'create_time' => time(), 'update_time' => time() ]; } Db::name('product_device')->insertAll($insertData); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } }