|
|
@@ -2,16 +2,25 @@
|
|
|
|
|
|
namespace App\Http\Controllers\Api\Museum;
|
|
|
|
|
|
-use App\Http\Controllers\Controller;
|
|
|
-use Illuminate\Http\Request;
|
|
|
+use App\Http\Controllers\Api\Api;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
use App\Servers\Wenlv\MuseumServer;
|
|
|
use App\Models\Api\Museum\Spot as SpotModel;
|
|
|
use App\Models\Api\Museum\SpotTmp as SpotTmpModel;
|
|
|
use App\Models\Manager\Citys as CitysModel;
|
|
|
use App\Servers\Tenxunyun\TextTranslate;
|
|
|
+use App\Models\Api\Museum\SpotLikes as SpotLikesModel;
|
|
|
+use App\Models\Api\Museum\SpotHates as SpotHatesModel;
|
|
|
+use App\Http\Requests\Api\Museum\Spot as Request;
|
|
|
+use League\CommonMark\Extension\Embed\EmbedParser;
|
|
|
|
|
|
-class Spot extends Controller
|
|
|
+/**
|
|
|
+ * 博物馆数据接口
|
|
|
+ * @author 唐远望
|
|
|
+ * @version 1.0
|
|
|
+ * @date 2026-04-02
|
|
|
+ */
|
|
|
+class Spot extends Api
|
|
|
{
|
|
|
/**
|
|
|
* 采集博物馆列表数据
|
|
|
@@ -188,4 +197,172 @@ class Spot extends Controller
|
|
|
return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 博物馆点赞
|
|
|
+ * @author 唐远望
|
|
|
+ * @version 1.0
|
|
|
+ * @date 2026-04-09
|
|
|
+ */
|
|
|
+ public function set_like(Request $request, SpotModel $SpotModel, SpotLikesModel $SpotLikesModel)
|
|
|
+ {
|
|
|
+ // 验证参数
|
|
|
+ $request->scene('set_like')->validate();
|
|
|
+ $user_info = $this->checkLogin();
|
|
|
+ $uid = $user_info['uid'];
|
|
|
+ // 接收数据
|
|
|
+ $id = request('id', 0);
|
|
|
+ $museum_spot = $SpotModel->where('id', $id)->first();
|
|
|
+ if (!$museum_spot) {
|
|
|
+ return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
+ }
|
|
|
+ //查询点赞记录
|
|
|
+ $like_log = $SpotLikesModel->where('museum_spot_id', $id)->where('userid', $uid)->first();
|
|
|
+ if (!empty($like_log)) {
|
|
|
+ return json_send(['code' => 'success', 'msg' => '操作成功']);
|
|
|
+ }
|
|
|
+ DB::beginTransaction();
|
|
|
+ try {
|
|
|
+ //添加点赞记录
|
|
|
+ $insert_data = [
|
|
|
+ 'museum_spot_id' => $id,
|
|
|
+ 'userid' => $uid,
|
|
|
+ 'insert_time' => time(),
|
|
|
+ ];
|
|
|
+ $like_id = $SpotLikesModel->insertGetId($insert_data);
|
|
|
+ //更新博物馆点赞数量
|
|
|
+ $SpotModel->where('id', $id)->increment('like_count');
|
|
|
+ DB::commit();
|
|
|
+ return json_send(['code' => 'success', 'msg' => '操作成功']);
|
|
|
+ // 成功处理...
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ // 错误处理...
|
|
|
+ return json_send(['code' => 'error', 'msg' => '操作失败', 'data' => $e->getMessage()]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 博物馆取消点赞
|
|
|
+ * @author 唐远望
|
|
|
+ * @version 1.0
|
|
|
+ * @date 2026-04-09
|
|
|
+ */
|
|
|
+ public function cancel_like(Request $request, SpotModel $SpotModel, SpotLikesModel $SpotLikesModel)
|
|
|
+ {
|
|
|
+ // 验证参数
|
|
|
+ $request->scene('cancel_like')->validate();
|
|
|
+ $user_info = $this->checkLogin();
|
|
|
+ $uid = $user_info['uid'];
|
|
|
+ // 接收数据
|
|
|
+ $id = request('id', 0);
|
|
|
+ // 执行修改
|
|
|
+ $museum_spot = $SpotModel->where('id', $id)->first();
|
|
|
+ if (!$museum_spot) {
|
|
|
+ return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
+ }
|
|
|
+ //查询点赞记录
|
|
|
+ $like_log = $SpotLikesModel->where('museum_spot_id', $id)->where('userid', $uid)->first();
|
|
|
+ if (empty($like_log)) {
|
|
|
+ return json_send(['code' => 'success', 'msg' => '操作成功']);
|
|
|
+ }
|
|
|
+ DB::beginTransaction();
|
|
|
+ try {
|
|
|
+ //删除点赞记录
|
|
|
+ $SpotLikesModel->where('museum_spot_id', $museum_spot->id)->where('userid', $uid)->delete();
|
|
|
+ //更新博物馆点赞数量
|
|
|
+ $SpotModel->where('id', $id)->decrement('like_count');
|
|
|
+ DB::commit();
|
|
|
+ return json_send(['code' => 'success', 'msg' => '操作成功2']);
|
|
|
+ // 成功处理...
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ // 错误处理...
|
|
|
+ return json_send(['code' => 'error', 'msg' => '操作失败']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 博物馆踩
|
|
|
+ * @author 唐远望
|
|
|
+ * @version 1.0
|
|
|
+ * @date 2026-04-09
|
|
|
+ */
|
|
|
+ public function set_hate(Request $request, SpotModel $SpotModel, SpotHatesModel $SpotHatesModel)
|
|
|
+ {
|
|
|
+ // 验证参数
|
|
|
+ $request->scene('set_hate')->validate();
|
|
|
+ $user_info = $this->checkLogin();
|
|
|
+ $uid = $user_info['uid'];
|
|
|
+ // 接收数据
|
|
|
+ $id = request('id', 0);
|
|
|
+ $museum_spot = $SpotModel->where('id', $id)->first();
|
|
|
+ if (!$museum_spot) {
|
|
|
+ return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
+ }
|
|
|
+ //查询点赞记录
|
|
|
+ $hate_log = $SpotHatesModel->where('museum_spot_id', $id)->where('userid', $uid)->first();
|
|
|
+ if (!empty($hate_log)) {
|
|
|
+ return json_send(['code' => 'success', 'msg' => '操作成功']);
|
|
|
+ }
|
|
|
+ DB::beginTransaction();
|
|
|
+ try {
|
|
|
+ //添加踩记录
|
|
|
+ $insert_data = [
|
|
|
+ 'museum_spot_id' => $id,
|
|
|
+ 'userid' => $uid,
|
|
|
+ 'insert_time' => time(),
|
|
|
+ ];
|
|
|
+ $like_id = $SpotHatesModel->insertGetId($insert_data);
|
|
|
+ //更新博物馆踩数量
|
|
|
+ $SpotModel->where('id', $id)->increment('hate_count');
|
|
|
+ DB::commit();
|
|
|
+ return json_send(['code' => 'success', 'msg' => '操作成功']);
|
|
|
+ // 成功处理...
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ // 错误处理...
|
|
|
+ return json_send(['code' => 'error', 'msg' => '操作失败']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 博物馆取消踩
|
|
|
+ * @author 唐远望
|
|
|
+ * @version 1.0
|
|
|
+ * @date 2026-04-09
|
|
|
+ */
|
|
|
+ public function cancel_hate(Request $request, SpotModel $SpotModel, SpotHatesModel $SpotHatesModel)
|
|
|
+ {
|
|
|
+ // 验证参数
|
|
|
+ $request->scene('cancel_hate')->validate();
|
|
|
+ $user_info = $this->checkLogin();
|
|
|
+ $uid = $user_info['uid'];
|
|
|
+ // 接收数据
|
|
|
+ $id = request('id', 0);
|
|
|
+ // 执行修改
|
|
|
+ $museum_spot = $SpotModel->where('id', $id)->first();
|
|
|
+ if (!$museum_spot) {
|
|
|
+ return json_send(['code' => 'error', 'msg' => '记录不存在']);
|
|
|
+ }
|
|
|
+ //查询踩记录
|
|
|
+ $hate_log = $SpotHatesModel->where('museum_spot_id', $id)->where('userid', $uid)->first();
|
|
|
+ if (empty($hate_log)) {
|
|
|
+ return json_send(['code' => 'success', 'msg' => '操作成功']);
|
|
|
+ }
|
|
|
+ DB::beginTransaction();
|
|
|
+ try {
|
|
|
+ //删除踩记录
|
|
|
+ $SpotHatesModel->where('id', $hate_log->id)->delete();
|
|
|
+ //更新博物馆踩数量
|
|
|
+ $SpotModel->where('id', $id)->decrement('hate_count');
|
|
|
+ DB::commit();
|
|
|
+ return json_send(['code' => 'success', 'msg' => '操作成功']);
|
|
|
+ // 成功处理...
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ // 错误处理...
|
|
|
+ return json_send(['code' => 'error', 'msg' => '操作失败']);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|