From b9da8289051937fbbbd47bbda97414ad6c769a90 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期四, 18 七月 2024 14:37:00 +0800
Subject: [PATCH] feat: 代码重构

---
 ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryServeController.java |  116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 112 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 04319dd..0204b90 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,20 @@
 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.service.RecoveryClassifyService;
 import com.ruoyi.user.service.RecoveryServeService;
+import com.ruoyi.user.service.UserCollectService;
 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 +25,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -32,6 +43,56 @@
 
     @Resource
     private RecoveryServeService recoveryServeService;
+    @Resource
+    private RecoveryClassifyService recoveryClassifyService;
+    @Resource
+    private UserCollectService collectService;
+    @Resource
+    private TokenService tokenService;
+
+    /**
+     * 获取服务列表
+     */
+    @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)
+                .orderByAsc(RecoveryServe::getSort)
+                .orderByDesc(RecoveryServe::getCreateTime).page(Page.of(pageNum, pageSize));
+        return R.ok(page);
+    }
 
     /**
      * 获取服务列表
@@ -48,13 +109,60 @@
     @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::getOrder).one());
+    public R<RecoveryServe> serveDetail(@RequestParam String serveId) {
+        RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
+                .eq(RecoveryServe::getIsDelete, 0).orderByAsc(RecoveryServe::getSort).one();
+        // 用户是否收藏
+        UserCollect one = collectService.lambdaQuery()
+                .eq(UserCollect::getServeId, serveId)
+                .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)
+                .eq(RecoveryClassify::getIsDelete, 0).one();
+        if (classify.getSupClassify().equals(Constants.TRADE_IN)) {
+            recoveryServe.setType(Constants.ZERO);
+        } else {
+            recoveryServe.setType(Constants.ONE);
+        }
+        return R.ok(recoveryServe);
     }
 
+    /**
+     * 服务收藏
+     */
+    @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