package com.sinata.rest.modular.mall.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.sinata.rest.common.ApiUtils;
|
import com.sinata.rest.modular.auth.util.ThreadPoolUtil;
|
import com.sinata.rest.modular.mall.controller.body.BodyMallUserCollet;
|
import com.sinata.rest.modular.mall.controller.vo.VoMallUserCollet;
|
import com.sinata.rest.modular.mall.model.MallUserCollect;
|
import com.sinata.rest.modular.mall.service.IMallGoodsService;
|
import com.sinata.rest.modular.mall.service.IMallUserCollectService;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
|
/**
|
* <p>
|
* 收藏商品 前端控制器
|
* </p>
|
*
|
* @author chenhan
|
* @since 2023-03-18
|
*/
|
@RestController
|
@RequestMapping("/mallUserCollect")
|
//@Api(tags = "我的商品收藏接口", description = "商品收藏接口")
|
public class MallUserCollectController {
|
|
@Autowired
|
IMallUserCollectService collectService;
|
|
@Autowired
|
IMallGoodsService mallGoodsService;
|
|
@GetMapping("/list")
|
@ApiOperation(value = "获取收藏列表", notes = "获取收藏列表", response = VoMallUserCollet.class)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "userId", value = "用户id", defaultValue = "1", dataType = "Integer", paramType = "query", required = true),
|
@ApiImplicitParam(name = "current", value = "当前页数", defaultValue = "1", dataType = "Int", paramType = "query", required = true),
|
@ApiImplicitParam(name = "size", value = "每页条数", defaultValue = "20", dataType = "Int", paramType = "query", required = true)
|
})
|
public Object collectList(Integer userId,int current,int size){
|
Page page = new Page<VoMallUserCollet>(current, size);
|
List<VoMallUserCollet> list = collectService.selectAll(userId,page);
|
return ApiUtils.returnOK(list);
|
}
|
|
@PostMapping("/add")
|
@ApiOperation(value = "收藏", notes = "收藏", response = ApiUtils.class)
|
public Object add(@RequestBody BodyMallUserCollet body) {
|
// 获取用户ID
|
Integer userId = ThreadPoolUtil.getUserId();
|
MallUserCollect collect = collectService.getOne(
|
new QueryWrapper<MallUserCollect>().eq("user_id", userId).eq("goods_id", body.getGoodsId()));
|
if (collect == null) {
|
MallUserCollect collect1 = new MallUserCollect();
|
collect1.setUserId(userId);
|
collect1.setGoodsId(body.getGoodsId());
|
collectService.save(collect1);
|
// 增加一次收藏
|
mallGoodsService.addCollectCount(body.getGoodsId());
|
}
|
return ApiUtils.returnOK();
|
}
|
|
|
@DeleteMapping(value = "/delete")
|
@ApiOperation(value = "取消收藏", notes = "取消收藏", response = ApiUtils.class)
|
@ApiImplicitParam(name = "id", value = "商品id", dataType = "Integer", paramType = "query", required = true)
|
public Object delete(Integer id) {
|
Integer userId = ThreadPoolUtil.getUserId();
|
collectService.remove(new QueryWrapper<MallUserCollect>().eq("goods_id", id).eq("user_id", userId));
|
// 减少一次收藏
|
mallGoodsService.subCollectCount(id);
|
return ApiUtils.returnOK();
|
}
|
}
|