package com.ruoyi.other.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.other.api.domain.Goods; import com.ruoyi.other.api.domain.VipSetting; import com.ruoyi.other.api.feignClient.VipSettingClient; import com.ruoyi.other.service.GoodsService; import com.ruoyi.other.vo.GoodsVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** *

* 前端控制器 *

* * @author luodangjia * @since 2024-11-20 */ @RestController @RequestMapping("/goods") @Api("商品") public class GoodsController extends BaseController { @Resource private GoodsService goodsService; @Resource private VipSettingClient settingClient; /** * 添加商品 */ @PostMapping("/addGoods") @ApiOperation(value = "发布商品", tags = {"管理后台-商品管理"}) public R addGoods(@RequestBody Goods goods) { goodsService.addGoods(goods); return R.ok(); } /** * 管理后台商品列表 */ @GetMapping("/manageGoodsList") @ApiOperation(value = "商品列表", tags = {"管理后台-商品管理"}) public R> manageGoodsList(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("每一页数据大小") Integer pageSize, Goods goods){ return R.ok(goodsService.getManageGoodsList(new Page<>(pageNum, pageSize), goods)); } /** * 后台商品详情 */ @GetMapping("/manageGoodsDetail/{goodsId}") @ApiOperation(value = "商品详情", tags = {"管理后台-商品管理"}) public R manageGoodsDetail(@PathVariable("goodsId") Long goodsId){ return R.ok(goodsService.getManageGoodsDetail(goodsId)); } /** * 后台商品修改 */ @PutMapping("/manageGoodsUpdate") @ApiOperation(value = "商品修改", tags = {"管理后台-商品管理"}) public R manageGoodsUpdate(@RequestBody Goods goods){ goodsService.updateManageGoods(goods); return R.ok(); } /** * 更新上/下架状态 */ @PutMapping("/manageGoodsStatus/{goodsId}/{status}") @ApiOperation(value = "商品上/下架", tags = {"管理后台-商品管理"}) public R manageGoodsStatus(@PathVariable("goodsId") Long goodsId, @PathVariable("status") Integer status){ goodsService.lambdaUpdate().eq(Goods::getId, goodsId).set(Goods::getStatus, status).update(); return R.ok(); } /** * 后台商品删除 */ @DeleteMapping("/manageGoodsDelete/{goodsId}") @ApiOperation(value = "商品删除", tags = {"管理后台-商品管理"}) public R manageGoodsDelete(@PathVariable("goodsId") Long goodsId){ goodsService.removeById(goodsId); return R.ok(); } /** * 获取会员等级信息 */ @GetMapping("/getVipSetting") @ApiOperation(value = "会员等级信息", tags = {"管理后台-商品管理"}) public R> getVipSetting(){ return settingClient.info(); } /** * 商品列表 */ @GetMapping("/goodsList") @ApiOperation(value = "热门商品列表", tags = {"小程序-商城-首页", "小程序-首页"}) public R goodsList(Goods goods){ startPage(); return R.ok(getDataTable(goodsService.goodsList(goods))); } /** * 指定门店商品 */ @GetMapping("/getGoodsListByShopId") @ApiOperation(value = "商品购买列表", tags = {"小程序-首页-门店详情"}) public R getGoodsListByShopId(@ApiParam("门店id") @RequestParam Integer shopId) { startPage(); return R.ok(getDataTable(goodsService.getGoodsListByShopId(shopId))); } /** * 商品详情 */ @GetMapping("/goodsDetail/{goodsId}") @ApiOperation(value = "商品详情", tags = {"小程序-商城-首页"}) public R goodsDetail(@PathVariable("goodsId") Long goodsId){ return R.ok(goodsService.goodsDetail(goodsId)); } /** * 根据类型(1=服务商品,2=单品商品)获取商品数据 * @param type * @return */ @ResponseBody @PostMapping("/getGoodsByType") public R> getGoodsByType(@RequestParam("type") Integer type){ List list = goodsService.list(new LambdaQueryWrapper().eq(Goods::getType, type).eq(Goods::getDelFlag, 0).eq(Goods::getStatus, 2)); return R.ok(list); } /** * 根据id获取商品信息 * @param id * @return */ @ResponseBody @PostMapping("/getGoodsById") public R getGoodsById(@RequestParam("id") Integer id){ Goods goods = goodsService.getById(id); return R.ok(goods); } @ResponseBody @PostMapping("/getGoodsByIds") public R> getGoodsByIds(@RequestParam("ids") String [] ids){ List goods = goodsService.lambdaQuery().in(Goods::getId, ids).list(); return R.ok(goods); } }