hjl
2024-07-18 b9da8289051937fbbbd47bbda97414ad6c769a90
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::getSort).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();
    }
}