From 07b70a81dd94f638d31108c2029b44c26f6dde69 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 15 一月 2025 09:58:42 +0800
Subject: [PATCH] 12.18
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 95 insertions(+), 15 deletions(-)
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java
index 2d86a41..b4b019b 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java
@@ -2,19 +2,22 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.redis.annotation.DistributedLock;
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.service.VipSettingService;
import com.ruoyi.other.vo.GoodsVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -36,6 +39,8 @@
private GoodsService goodsService;
@Resource
private VipSettingClient settingClient;
+ @Resource
+ private VipSettingService vipSettingService;
/**
* 添加商品
@@ -43,6 +48,9 @@
@PostMapping("/addGoods")
@ApiOperation(value = "发布商品", tags = {"管理后台-商品管理"})
public R<Void> addGoods(@RequestBody Goods goods) {
+ if(goods.getPurchaseLimit()==null){
+ goods.setPurchaseLimit(-1);
+ }
goodsService.addGoods(goods);
return R.ok();
}
@@ -73,9 +81,39 @@
@PutMapping("/manageGoodsUpdate")
@ApiOperation(value = "商品修改", tags = {"管理后台-商品管理"})
public R<Void> manageGoodsUpdate(@RequestBody Goods goods){
+ if(goods.getPurchaseLimit()==null){
+ goods.setPurchaseLimit(-1);
+ }
goodsService.updateManageGoods(goods);
+ if (goods.getType()==2){
+ goods.setAppointStore(2);
+ goodsService.updateById(goods);
+ }
+ if (goods.getType()==1){
+ LambdaUpdateWrapper<Goods> goodsLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+ goodsLambdaUpdateWrapper.set(Goods::getDistributionMode,null);
+ goodsLambdaUpdateWrapper.eq(Goods::getId, goods.getId());
+ goodsService.update(goodsLambdaUpdateWrapper);
+ }
return R.ok();
}
+
+
+ @PutMapping("/editGoodsSort")
+ @ApiOperation(value = "商品修改排序", tags = {"管理后台-商品管理"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "商品id", name = "id", dataType = "int", required = true),
+ @ApiImplicitParam(value = "排序", name = "sort", dataType = "int", required = true),
+ })
+ public R editGoodsSort(@RequestParam("id") Integer id, @RequestParam("sort") Integer sort){
+ Goods goods = goodsService.getById(id);
+ goods.setSort(sort);
+ goodsService.updateById(goods);
+ return R.ok();
+ }
+
+
+
/**
* 更新上/下架状态
@@ -95,6 +133,10 @@
@DeleteMapping("/manageGoodsDelete/{goodsId}")
@ApiOperation(value = "商品删除", tags = {"管理后台-商品管理"})
public R<Void> manageGoodsDelete(@PathVariable("goodsId") Long goodsId){
+ long count = vipSettingService.count(new LambdaQueryWrapper<VipSetting>().last(" where FIND_IN_SET(" + goodsId + ", good_ids)"));
+ if(0 < count){
+ return R.fail("商品已被会员配置使用,不能删除");
+ }
goodsService.removeById(goodsId);
return R.ok();
}
@@ -115,9 +157,8 @@
*/
@GetMapping("/goodsList")
@ApiOperation(value = "热门商品列表", tags = {"小程序-商城-首页", "小程序-首页"})
- public R<TableDataInfo> goodsList(Goods goods){
- startPage();
- return R.ok(getDataTable(goodsService.goodsList(goods)));
+ public R<PageInfo<GoodsVO>> goodsList(Goods goods){
+ return R.ok(goodsService.goodsList(goods));
}
@@ -126,9 +167,10 @@
*/
@GetMapping("/getGoodsListByShopId")
@ApiOperation(value = "商品购买列表", tags = {"小程序-首页-门店详情"})
- public R<TableDataInfo> getGoodsListByShopId(@ApiParam("门店id") @RequestParam Integer shopId) {
- startPage();
- return R.ok(getDataTable(goodsService.getGoodsListByShopId(shopId)));
+ public R<PageInfo<Goods>> getGoodsListByShopId(@ApiParam("门店id") Integer shopId, Integer pageCurr, Integer pageSize) {
+ PageInfo<Goods> pageInfo = new PageInfo(pageCurr, pageSize);
+ List<Goods> goodsList = goodsService.getGoodsListByShopId(pageInfo, shopId);
+ return R.ok(pageInfo.setRecords(goodsList));
}
@@ -137,11 +179,14 @@
*/
@GetMapping("/goodsDetail/{goodsId}")
@ApiOperation(value = "商品详情", tags = {"小程序-商城-首页"})
- public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId){
- return R.ok(goodsService.goodsDetail(goodsId));
+ public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId,
+ Integer shopId,
+ String longitude,
+ String latitude) {
+ return R.ok(goodsService.goodsDetail(goodsId, shopId, longitude, latitude));
}
-
-
+
+
/**
* 根据类型(1=服务商品,2=单品商品)获取商品数据
* @param type
@@ -153,8 +198,8 @@
List<Goods> list = goodsService.list(new LambdaQueryWrapper<Goods>().eq(Goods::getType, type).eq(Goods::getDelFlag, 0).eq(Goods::getStatus, 2));
return R.ok(list);
}
-
-
+
+
/**
* 根据id获取商品信息
* @param id
@@ -174,5 +219,40 @@
return R.ok(goods);
}
+
+ /**
+ * 编辑商品
+ * @param goods
+ * @return
+ */
+ @PostMapping("/editGoodsList")
+ public R editGoodsList(@RequestBody List<Goods> goods){
+ goodsService.updateBatchById(goods);
+ return R.ok();
+ }
+
+
+ /**
+ * 商品销量增加
+ */
+ @PutMapping("/editGoodsNum")
+ @DistributedLock(lockNamePre = "#goods_lock", lockNamePost = "#goodsId")
+ public R<Void> editGoodsNum(@RequestParam("goodsId") Integer goodsId, @RequestParam("num") Integer num){
+ Goods goods = goodsService.getById(goodsId);
+ goods.setSaleNum(goods.getSaleNum() + num);
+ goodsService.updateById(goods);
+ return R.ok();
+ }
+
+
+ /**
+ * 获取所有商品
+ * @return
+ */
+ @PostMapping("/getAllGoods")
+ public R<List<Goods>> getAllGoods(){
+ List<Goods> list = goodsService.list(new LambdaQueryWrapper<Goods>().eq(Goods::getDelFlag, 0).eq(Goods::getStatus, 2));
+ return R.ok(list);
+ }
}
--
Gitblit v1.7.1