From 1442f149019ee0590389abd7a88a79c4d9b59034 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 27 五月 2025 18:23:34 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryServeController.java |  147 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 143 insertions(+), 4 deletions(-)

diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryServeController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryServeController.java
index c6b81ad..bc3882e 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryServeController.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryServeController.java
@@ -1,10 +1,23 @@
 package com.ruoyi.user.controller;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.system.api.model.LoginUserInfo;
+import com.ruoyi.user.entity.RecoveryClassify;
 import com.ruoyi.user.entity.RecoveryServe;
+import com.ruoyi.user.entity.UserCollect;
+import com.ruoyi.user.entity.UserRecipient;
+import com.ruoyi.user.service.RecoveryClassifyService;
 import com.ruoyi.user.service.RecoveryServeService;
+import com.ruoyi.user.service.UserCollectService;
+import com.ruoyi.user.service.UserRecipientService;
+import com.ruoyi.user.vo.ServeDetailVO;
 import com.ruoyi.user.vo.ServeListVO;
+import com.ruoyi.user.vo.UserServeTypeVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -15,6 +28,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -32,6 +46,58 @@
 
     @Resource
     private RecoveryServeService recoveryServeService;
+    @Resource
+    private RecoveryClassifyService recoveryClassifyService;
+    @Resource
+    private UserCollectService collectService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private UserRecipientService userRecipientService;
+
+    /**
+     * 获取服务列表
+     */
+    @GetMapping(value = "/serveType")
+    @ApiOperation(value = "获取服务分类", tags = {"用户端-服务"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "服务类型(0:以旧换新;1:家电回收)", name = "type", dataType = "Integer", required = true)
+    })
+    public R<List<UserServeTypeVO>> serveType(@RequestParam("type") Integer type) {
+        String serveType;
+        if (Constants.ZERO.equals(type)) {
+            serveType = Constants.TRADE_IN;
+        } else {
+            serveType = Constants.RECOVERY;
+        }
+        List<RecoveryClassify> serveList = recoveryClassifyService.lambdaQuery()
+                .eq(RecoveryClassify::getIsDelete, 0)
+                .eq(RecoveryClassify::getSupClassify, serveType)
+                .orderByAsc(RecoveryClassify::getSort)
+                .orderByDesc(RecoveryClassify::getCreateTime).list();
+        List<UserServeTypeVO> list = new ArrayList<>();
+        for (RecoveryClassify classify : serveList) {
+            list.add(new UserServeTypeVO(classify.getId(), classify.getSubClassify(),
+                    classify.getClassificationPicture(), classify.getTypeDescribe(), type));
+        }
+        return R.ok(list);
+    }
+
+    /**
+     * 获取服务列表
+     */
+    @GetMapping(value = "/servePage")
+    @ApiOperation(value = "根据所选分类获取服务列表", tags = {"用户端-服务"})
+    public R<IPage<RecoveryServe>> servePage(@RequestParam("id") String id,
+                                             @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                             @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        Page<RecoveryServe> page = recoveryServeService.lambdaQuery()
+                .eq(RecoveryServe::getClassifyId, id)
+                .eq(RecoveryServe::getIsDelete, 0)
+                .orderByDesc(RecoveryServe::getSort)
+                .orderByDesc(RecoveryServe::getCreateTime).page(Page.of(pageNum, pageSize));
+        return R.ok(page);
+    }
 
     /**
      * 获取服务列表
@@ -48,13 +114,86 @@
     @GetMapping(value = "/serveDetail")
     @ApiOperation(value = "获取服务详情", tags = {"用户端-服务"})
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "服务id", name = "serveId", dataType = "Integer", required = true)
+            @ApiImplicitParam(value = "服务id", name = "serveId", dataType = "String", required = true)
     })
-    public R<RecoveryServe> serveDetail(@RequestParam Integer serveId) {
-        return R.ok(recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
-                .eq(RecoveryServe::getIsDelete, 0).orderByAsc(RecoveryServe::getSort).one());
+    public R<ServeDetailVO> serveDetail(@RequestParam String serveId) {
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+        if (null == loginUser) {
+            RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
+                    .eq(RecoveryServe::getIsDelete, 0).one();
+                recoveryServe.setIsCollect(Boolean.FALSE);
+
+            // 获取服务分类
+            Integer classifyId = recoveryServe.getClassifyId();
+            RecoveryClassify classify = recoveryClassifyService.lambdaQuery()
+                    .eq(RecoveryClassify::getId, classifyId).one();
+            if (classify.getSupClassify().equals(Constants.TRADE_IN)) {
+                recoveryServe.setType(Constants.ZERO);
+            } else {
+                recoveryServe.setType(Constants.ONE);
+            }
+
+
+            return R.ok(new ServeDetailVO(recoveryServe, null));
+        }
+        RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
+                .eq(RecoveryServe::getIsDelete, 0).one();
+        // 用户是否收藏
+        UserCollect one = collectService.lambdaQuery()
+                .eq(UserCollect::getServeId, serveId)
+                .eq(UserCollect::getUserId, loginUser.getUserid())
+                .eq(UserCollect::getIsDelete, 0).one();
+        if (null != one) {
+            recoveryServe.setIsCollect(Boolean.TRUE);
+        } else {
+            recoveryServe.setIsCollect(Boolean.FALSE);
+        }
+        // 获取服务分类
+        Integer classifyId = recoveryServe.getClassifyId();
+        RecoveryClassify classify = recoveryClassifyService.lambdaQuery()
+                .eq(RecoveryClassify::getId, classifyId).one();
+        if (classify.getSupClassify().equals(Constants.TRADE_IN)) {
+            recoveryServe.setType(Constants.ZERO);
+        } else {
+            recoveryServe.setType(Constants.ONE);
+        }
+        // 获取用户默认收货地址
+        UserRecipient userRecipient = userRecipientService.lambdaQuery()
+                .eq(UserRecipient::getIsDefault, Constants.ONE)
+                .eq(UserRecipient::getUserId, loginUser.getUserid())
+                .eq(UserRecipient::getIsDelete, Constants.ZERO)
+                .last("limit 1")
+                .one();
+        return R.ok(new ServeDetailVO(recoveryServe, userRecipient));
     }
 
+    /**
+     * 服务收藏
+     */
+    @GetMapping(value = "/serveCollect")
+    @ApiOperation(value = "服务收藏", tags = {"用户端-服务"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "服务id", name = "serveId", dataType = "Integer", required = true)
+    })
+    public R<String> serveCollect(@RequestParam Integer serveId) {
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+        if (null == loginUser) {
+            return R.loginExpire("登录失效!");
+        }
+        UserCollect collect = collectService.lambdaQuery()
+                .eq(UserCollect::getUserId, loginUser.getUserid())
+                .eq(UserCollect::getServeId, serveId)
+                .eq(UserCollect::getIsDelete, 0).one();
+        boolean result;
+        if (null != collect) {
+            collect.setIsDelete(Constants.ONE);
+            result = collectService.updateById(collect);
+        } else {
+            collect = new UserCollect(loginUser.getUserid(), serveId);
+            result = collectService.save(collect);
+        }
 
+        return result ? R.ok() : R.fail();
+    }
 
 }

--
Gitblit v1.7.1