From d53c16a12e612a95dc8f6fb248e3669cbc441eb4 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 17 十二月 2024 16:48:41 +0800
Subject: [PATCH] 新增加商品特价接口

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/AddGoodsBargainPriceVo.java                 |   21 +++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsBargainPriceServiceImpl.java |   81 ++++++++++++++++++++++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/GoodsBargainPriceInfo.java                  |   25 ++++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/GoodsBargainPriceService.java          |   21 +++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java    |   28 +++++++-
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsShopController.java            |    2 
 6 files changed, 171 insertions(+), 7 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java
index 12d044e..952197d 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsBargainPriceController.java
@@ -13,12 +13,12 @@
 import com.ruoyi.other.api.domain.*;
 import com.ruoyi.other.api.vo.GetGoodsBargainPrice;
 import com.ruoyi.other.service.*;
+import com.ruoyi.other.vo.AddGoodsBargainPriceVo;
+import com.ruoyi.other.vo.GoodsBargainPriceInfo;
 import com.ruoyi.other.vo.ShopGoodsList;
 import com.ruoyi.other.vo.ShopGoodsListVo;
 import com.ruoyi.system.api.model.LoginUser;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import io.swagger.models.auth.In;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -197,11 +197,29 @@
 
         return R.ok(page);
     }
-
-
     
     
     
     
+    @ResponseBody
+    @GetMapping("/getGoodsBargainPriceInfo/{id}")
+    @ApiOperation(value = "获取商品特殊售价详情", tags = {"门店后台-商品管理"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "商品id", name = "id", required = true, dataType = "int"),
+    })
+    public R<GoodsBargainPriceInfo> getGoodsBargainPriceInfo(@PathVariable("id") Integer id){
+        GoodsBargainPriceInfo goodsBargainPriceInfo = goodsBargainPriceService.getGoodsBargainPriceInfo(id);
+        return R.ok(goodsBargainPriceInfo);
+    }
+    
+    
+    
+    
+    @ResponseBody
+    @GetMapping("/addGoodsBargainPrice/{id}")
+    @ApiOperation(value = "保存商品特殊售价", tags = {"门店后台-商品管理"})
+    public R addGoodsBargainPrice(@RequestBody AddGoodsBargainPriceVo vo){
+        return goodsBargainPriceService.addGoodsBargainPrice(vo);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsShopController.java
index 00f0857..b435e5c 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsShopController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsShopController.java
@@ -72,7 +72,7 @@
 	}
 	
 	
-	
+
 	
 }
 
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/GoodsBargainPriceService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/GoodsBargainPriceService.java
index b6a4b60..42d2b33 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/GoodsBargainPriceService.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/GoodsBargainPriceService.java
@@ -1,7 +1,12 @@
 package com.ruoyi.other.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.GoodsBargainPrice;
+import com.ruoyi.other.vo.AddGoodsBargainPriceVo;
+import com.ruoyi.other.vo.GoodsBargainPriceInfo;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -12,5 +17,21 @@
  * @since 2024-11-20
  */
 public interface GoodsBargainPriceService extends IService<GoodsBargainPrice> {
+	
+	
+	/**
+	 * 获取商品特殊售价明细
+	 * @param id
+	 * @return
+	 */
+	GoodsBargainPriceInfo getGoodsBargainPriceInfo(Integer id);
+	
+	
+	/**
+	 * 提交特殊售价申请
+	 * @param vo
+	 * @return
+	 */
+	R addGoodsBargainPrice(AddGoodsBargainPriceVo vo);
 
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsBargainPriceServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsBargainPriceServiceImpl.java
index bf7bf04..362f771 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsBargainPriceServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsBargainPriceServiceImpl.java
@@ -1,10 +1,23 @@
 package com.ruoyi.other.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.other.api.domain.GoodsBargainPriceDetail;
 import com.ruoyi.other.mapper.GoodsBargainPriceMapper;
 import com.ruoyi.other.api.domain.GoodsBargainPrice;
+import com.ruoyi.other.service.GoodsBargainPriceDetailService;
 import com.ruoyi.other.service.GoodsBargainPriceService;
+import com.ruoyi.other.vo.AddGoodsBargainPriceVo;
+import com.ruoyi.other.vo.GoodsBargainPriceInfo;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * <p>
@@ -16,5 +29,71 @@
  */
 @Service
 public class GoodsBargainPriceServiceImpl extends ServiceImpl<GoodsBargainPriceMapper, GoodsBargainPrice> implements GoodsBargainPriceService {
-
+	
+	@Resource
+	private TokenService tokenService;
+	
+	@Resource
+	private SysUserClient sysUserClient;
+	
+	@Resource
+	private GoodsBargainPriceDetailService goodsBargainPriceDetailService;
+	
+	
+	
+	
+	/**
+	 * 获取商品特殊售价明细
+	 * @param id
+	 * @return
+	 */
+	@Override
+	public GoodsBargainPriceInfo getGoodsBargainPriceInfo(Integer id) {
+		Long userid = tokenService.getLoginUser().getUserid();
+		SysUser sysUser = sysUserClient.getSysUser(userid).getData();
+		GoodsBargainPrice bargainPrice = this.getOne(new LambdaQueryWrapper<GoodsBargainPrice>().eq(GoodsBargainPrice::getShopId, sysUser.getObjectId())
+				.eq(GoodsBargainPrice::getGoodsId, id).eq(GoodsBargainPrice::getDelFlag, 0).last(" order by create_time desc limit 0, 1"));
+		if(null == bargainPrice){
+			return null;
+		}
+		List<GoodsBargainPriceDetail> list = goodsBargainPriceDetailService.list(new LambdaQueryWrapper<GoodsBargainPriceDetail>().eq(GoodsBargainPriceDetail::getGoodsBargainPriceId, bargainPrice.getId()));
+		GoodsBargainPriceInfo info = new GoodsBargainPriceInfo();
+		info.setId(bargainPrice.getId().toString());
+		info.setList(list);
+		info.setAuditMsg(bargainPrice.getAuditMsg());
+		info.setAuditStatus(bargainPrice.getAuditStatus());
+		return info;
+	}
+	
+	
+	/**
+	 * 提交特殊售价申请
+	 * @param vo
+	 * @return
+	 */
+	@Override
+	public R addGoodsBargainPrice(AddGoodsBargainPriceVo vo) {
+		Long userid = tokenService.getLoginUser().getUserid();
+		SysUser sysUser = sysUserClient.getSysUser(userid).getData();
+		GoodsBargainPrice bargainPrice = this.getOne(new LambdaQueryWrapper<GoodsBargainPrice>().eq(GoodsBargainPrice::getShopId, sysUser.getObjectId())
+				.eq(GoodsBargainPrice::getGoodsId, vo.getGoodsId()).eq(GoodsBargainPrice::getDelFlag, 0).last(" order by create_time desc limit 0, 1"));
+		if(null != bargainPrice && 1 == bargainPrice.getAuditStatus()){
+			return R.fail("特价申请正在审核中");
+		}
+		bargainPrice = new GoodsBargainPrice();
+		bargainPrice.setShopId(sysUser.getObjectId());
+		bargainPrice.setGoodsId(vo.getGoodsId());
+		bargainPrice.setAuditStatus(1);
+		bargainPrice.setDelFlag(0);
+		bargainPrice.setCreateTime(LocalDateTime.now());
+		bargainPrice.setCreateUserId(userid);
+		this.updateById(bargainPrice);
+		//添加明细
+		List<GoodsBargainPriceDetail> list = vo.getList();
+		for (GoodsBargainPriceDetail goodsBargainPriceDetail : list) {
+			goodsBargainPriceDetail.setGoodsBargainPriceId(bargainPrice.getId());
+		}
+		goodsBargainPriceDetailService.saveBatch(list);
+		return R.ok();
+	}
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/AddGoodsBargainPriceVo.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/AddGoodsBargainPriceVo.java
new file mode 100644
index 0000000..8e79255
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/AddGoodsBargainPriceVo.java
@@ -0,0 +1,21 @@
+package com.ruoyi.other.vo;
+
+import com.ruoyi.other.api.domain.GoodsBargainPriceDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/17 16:28
+ */
+@Data
+@ApiModel
+public class AddGoodsBargainPriceVo {
+	@ApiModelProperty("商品id")
+	private Integer goodsId;
+	@ApiModelProperty("特殊售价")
+	private List<GoodsBargainPriceDetail> list;
+}
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/GoodsBargainPriceInfo.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/GoodsBargainPriceInfo.java
new file mode 100644
index 0000000..6b13165
--- /dev/null
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/GoodsBargainPriceInfo.java
@@ -0,0 +1,25 @@
+package com.ruoyi.other.vo;
+
+import com.ruoyi.other.api.domain.GoodsBargainPriceDetail;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2024/12/17 16:14
+ */
+@Data
+@ApiModel
+public class GoodsBargainPriceInfo {
+	@ApiModelProperty("数据id")
+	private String id;
+	@ApiModelProperty("审核状态(0=待审核,1=审核通过,2=审核失败)")
+	private Integer auditStatus;
+	@ApiModelProperty("审核意见")
+	private String auditMsg;
+	@ApiModelProperty("特殊售价")
+	private List<GoodsBargainPriceDetail> list;
+}

--
Gitblit v1.7.1