From 91ec2fe7b1087b18f40bba6ffda07ad601d562ed Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 22 Dec 2022 10:48:15 +0800
Subject: [PATCH] 20221222
---
src/main/resources/mapper/modules/MallGoodsMapper.xml | 12 +++
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 35 ++++++--
src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html | 7 -
src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java | 7 -
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 108 +++-----------------------
src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html | 4
src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java | 3
src/main/java/cc/mrbird/febs/common/enumerates/StarRatingEnum.java | 28 +++++++
8 files changed, 88 insertions(+), 116 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/StarRatingEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/StarRatingEnum.java
index b0cbafa..ee66ed0 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/StarRatingEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/StarRatingEnum.java
@@ -63,6 +63,34 @@
return code;
}
+ /**
+ * 获取商品可以设置的最小价格
+ * @return
+ */
+ public Integer getMinValue(){
+ Integer totalMinvalue = 0;
+ for(StarRatingEnum starRatingEnum : StarRatingEnum.values()){
+ if(starRatingEnum.minValue < totalMinvalue){
+ totalMinvalue = starRatingEnum.minValue;
+ }
+ }
+ return totalMinvalue;
+ }
+
+ /**
+ * 获取商品可以设置的最大价格
+ * @return
+ */
+ public Integer getMaxValue(){
+ Integer totalMaxValue = 0;
+ for(StarRatingEnum starRatingEnum : StarRatingEnum.values()){
+ if(starRatingEnum.maxValue > totalMaxValue){
+ totalMaxValue = starRatingEnum.maxValue;
+ }
+ }
+ return totalMaxValue;
+ }
+
public static void main(String[] args) {
String s = StarRatingEnum.NORMAL.belongStarRating(String.valueOf(100));
System.out.println(s);
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
index bc70f3a..5258765 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
@@ -19,10 +19,6 @@
@ApiModelProperty(value = "商品ID", example = "1")
private Long goodsId;
- @NotNull(message = "参数不能为空")
- @ApiModelProperty(value = "地址ID", example = "1")
- private Long addressId;
-
@ApiModelProperty(value = "门店ID", example = "1")
private Long shopId;
@@ -37,8 +33,5 @@
@ApiModelProperty(value = "配送方式 1:快递寄送2:到店自提")
private Integer deliverType;
-
- @ApiModelProperty(value = "商品明细")
- private List<AddOrderItemDto> items;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java
index 93b29a8..9be0b2b 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsQueryDto.java
@@ -40,4 +40,7 @@
@ApiModelProperty(value = "1-付费商品 2-积分商品")
private Integer goodsType;
+
+ @ApiModelProperty(value = " 1 :普通 | 2:一星 3:二星| 4:三星")
+ private Integer starRating;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index 824441e..fde6ad8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -112,15 +112,22 @@
//新增商品
MallGoods mallGoods = MallGoodsConversion.INSTANCE.dtoToEntity(addMallGoodsDto);
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
- //根据商品原价获取商品星级
- String originalPrice = mallGoods.getOriginalPrice();
- String starRating = StarRatingEnum.NORMAL.belongStarRating(originalPrice);
+ //根据商品现价获取商品星级
+ String presentPrice = mallGoods.getPresentPrice();
+
+ Integer minValue = StarRatingEnum.NORMAL.getMinValue();
+ Integer maxValue = StarRatingEnum.NORMAL.getMaxValue();
+ if(new BigDecimal(presentPrice).compareTo(new BigDecimal(minValue)) < 0
+ || new BigDecimal(presentPrice).compareTo(new BigDecimal(maxValue)) > 0){
+ return new FebsResponse().fail().message("商品现价不能小于"+ minValue + "不能大于" + maxValue);
+ }
+ String starRating = StarRatingEnum.NORMAL.belongStarRating(presentPrice);
mallGoods.setStarRating(starRating);
- //根据商品原价获取商品补贴金额
+ //根据商品现价获取商品补贴金额
DataDictionaryCustom subsidyPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SUBSIDY_PERCENT.getType()
, DataDictionaryEnum.SUBSIDY_PERCENT.getCode());
BigDecimal subsidyPercent = new BigDecimal(subsidyPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
- BigDecimal subsidyAmount = subsidyPercent.multiply(new BigDecimal(originalPrice)).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal subsidyAmount = subsidyPercent.multiply(new BigDecimal(presentPrice)).setScale(2, BigDecimal.ROUND_DOWN);
mallGoods.setSubsidyAmount(subsidyAmount);
// if (mallGoods.getHasCarriage() == 2) {
// mallGoods.setCarriage(BigDecimal.ZERO);
@@ -356,15 +363,23 @@
// if (mallGoods.getHasCarriage() == 2) {
// mallGoods.setCarriage(BigDecimal.ZERO);
// }
- //根据商品原价获取商品星级
- String originalPrice = mallGoods.getOriginalPrice();
- String starRating = StarRatingEnum.NORMAL.belongStarRating(originalPrice);
+
+ //根据商品现价获取商品星级
+ String presentPrice = mallGoods.getPresentPrice();
+
+ Integer minValue = StarRatingEnum.NORMAL.getMinValue();
+ Integer maxValue = StarRatingEnum.NORMAL.getMaxValue();
+ if(new BigDecimal(presentPrice).compareTo(new BigDecimal(minValue)) < 0
+ || new BigDecimal(presentPrice).compareTo(new BigDecimal(maxValue)) > 0){
+ return new FebsResponse().fail().message("商品现价不能小于"+ minValue + "不能大于" + maxValue);
+ }
+ String starRating = StarRatingEnum.NORMAL.belongStarRating(presentPrice);
mallGoods.setStarRating(starRating);
- //根据商品原价获取商品补贴金额
+ //根据商品现价获取商品补贴金额
DataDictionaryCustom subsidyPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SUBSIDY_PERCENT.getType()
, DataDictionaryEnum.SUBSIDY_PERCENT.getCode());
BigDecimal subsidyPercent = new BigDecimal(subsidyPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
- BigDecimal subsidyAmount = subsidyPercent.multiply(new BigDecimal(originalPrice)).setScale(2, BigDecimal.ROUND_DOWN);
+ BigDecimal subsidyAmount = subsidyPercent.multiply(new BigDecimal(presentPrice)).setScale(2, BigDecimal.ROUND_DOWN);
mallGoods.setSubsidyAmount(subsidyAmount);
mallGoodsMapper.updateById(mallGoods);
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 040638a..7574237 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -99,6 +99,9 @@
if(memberLevelCode < goodsStarCode){
throw new FebsException("会员等级不够");
}
+ if (MallGoods.ISSALE_STATUS_DISABLED.equals(goods.getIsSale())) {
+ throw new FebsException(goods.getGoodsName() + "已下架");
+ }
/**
* 会员一天最多下单次数
*/
@@ -114,102 +117,32 @@
throw new FebsException("会员今日已无法购买");
}
-// MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
-// if (address == null) {
-// throw new FebsException("地址不存在");
-// }
-
String orderNo = MallUtils.getOrderNum();
MallOrderInfo orderInfo = new MallOrderInfo();
orderInfo.setOrderNo(orderNo);
orderInfo.setOrderTime(new Date());
orderInfo.setMemberId(member.getId());
orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue());
-// orderInfo.setName(address.getName());
-// orderInfo.setAddress(address.getArea() + address.getAddress());
-// orderInfo.setPhone(address.getPhone());
-// orderInfo.setLatitude(address.getLatitude());
-// orderInfo.setLongitude(address.getLongitude());
orderInfo.setRemark(addOrderDto.getRemark());
orderInfo.setOrderType(addOrderDto.getOrderType());
//补贴金额
orderInfo.setSubsidyAmount(goods.getSubsidyAmount());
- if (CollUtil.isEmpty(addOrderDto.getItems())) {
- throw new FebsException("参数错误");
- }
-
-// int deliverType = ObjectUtil.isEmpty(addOrderDto.getDeliverType()) ? 1 : addOrderDto.getDeliverType();
-// if(2 == deliverType){
-// if(ObjectUtil.isEmpty(addOrderDto.getShopId())){
-// throw new FebsException("请选择门店");
-// }
-// Long shopId = addOrderDto.getShopId();
-// MallShopApply mallShopApply = mallShopApplyMapper.selectById(shopId);
-// if(ObjectUtil.isEmpty(mallShopApply)){
-// throw new FebsException("请选择门店");
-// }
-// if(MallShopApply.APPLY_AGREE != mallShopApply.getStatus()){
-// throw new FebsException("请选择门店");
-// }
-// orderInfo.setShopId(shopId);
-// }
this.baseMapper.insert(orderInfo);
- BigDecimal total = BigDecimal.ZERO;
- BigDecimal carriage = BigDecimal.ZERO;
- for (AddOrderItemDto item : addOrderDto.getItems()) {
- MallOrderItem orderItem = new MallOrderItem();
-
- // 积分商品提交订单
- if (addOrderDto.getOrderType() == 2) {
- MallGoods mallGoods = mallGoodsMapper.selectById(item.getSkuId());
- if (mallGoods.getStock() < item.getCnt()) {
- throw new FebsException(mallGoods.getGoodsName() + "库存不足");
- }
-
- if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
- throw new FebsException(mallGoods.getGoodsName() + "已下架");
- }
-
- BigDecimal amount = mallGoods.getScore().multiply(BigDecimal.valueOf(item.getCnt()));
- orderItem.setAmount(amount);
- orderItem.setCnt(item.getCnt());
- orderItem.setOrderId(orderInfo.getId());
- orderItem.setPrice(mallGoods.getScore());
- orderItem.setGoodsId(mallGoods.getId());
- orderItem.setGoodsName(mallGoods.getGoodsName());
- orderItem.setStyleName(mallGoods.getGoodsName());
- orderItem.setSkuName(mallGoods.getGoodsName());
- orderItem.setSkuImage(mallGoods.getThumb());
-
- total = total.add(amount);
- } else {
- MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId());
+ List<MallGoodsSku> mallGoodsSkus = mallGoodsSkuMapper.selectSkuByGoodsId(goods.getId());
+ for (MallGoodsSku sku : mallGoodsSkus) {
+ MallOrderItem orderItem = new MallOrderItem();
if (sku == null) {
throw new FebsException("购买商品或sku不存在");
}
- if (sku.getStock() < item.getCnt()) {
+ if (sku.getStock() < 1) {
throw new FebsException(sku.getSkuName() + "库存不足");
}
- MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
-
- // 零撸专区购买
- if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
- List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
- if (CollUtil.isNotEmpty(items)) {
- throw new FebsException("无法重复领取同一个商品");
- }
- }
-
- if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
- throw new FebsException(mallGoods.getGoodsName() + "已下架");
- }
-
- BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt()));
+ BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(1));
orderItem.setAmount(amount);
- orderItem.setCnt(item.getCnt());
+ orderItem.setCnt(1);
orderItem.setOrderId(orderInfo.getId());
orderItem.setPrice(sku.getPresentPrice());
orderItem.setGoodsId(sku.getGoodsId());
@@ -218,31 +151,20 @@
orderItem.setStyleName(sku.getStyleName());
orderItem.setSkuName(sku.getSkuName());
orderItem.setSkuImage(sku.getSkuImage());
- orderItem.setIsNormal(mallGoods.getIsNormal());
+ orderItem.setIsNormal(goods.getIsNormal());
orderItem.setCostPrice(sku.getCostPrice());
- total = total.add(amount);
- carriage = carriage.add(mallGoods.getCarriage());
-
- sku.setStock(sku.getStock() - item.getCnt());
- sku.setSkuVolume(sku.getSkuVolume() + item.getCnt());
+ sku.setStock(sku.getStock() - 1);
+ sku.setSkuVolume(sku.getSkuVolume() + 1);
mallGoodsSkuMapper.updateById(sku);
if (addOrderDto.getType() == 1) {
mallShoppingCartMapper.delBySkuId(sku.getId(), member.getId());
}
- }
- mallOrderItemMapper.insert(orderItem);
+ mallOrderItemMapper.insert(orderItem);
}
-
- orderInfo.setAmount(total);
-// if(2 == deliverType){
-// orderInfo.setDeliverType(2);
-// orderInfo.setCarriage(BigDecimal.ZERO);
-// }else{
-// orderInfo.setDeliverType(1);
-// orderInfo.setCarriage(carriage);
-// }
+ BigDecimal presentPrice = new BigDecimal(goods.getPresentPrice()).setScale(2,BigDecimal.ROUND_DOWN);
+ orderInfo.setAmount(presentPrice);
this.baseMapper.updateById(orderInfo);
agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L);
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index c3357cf..1acc218 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -96,6 +96,18 @@
<if test="record.goodsType == 3">
and a.present_price = 0
</if>
+ <if test="record.starRating == 1">
+ and a.star_rating = '普通'
+ </if>
+ <if test="record.starRating == 2">
+ and a.star_rating = '一星'
+ </if>
+ <if test="record.starRating == 3">
+ and a.star_rating = '二星'
+ </if>
+ <if test="record.starRating == 4">
+ and a.star_rating = '三星'
+ </if>
<if test="record.categoryId != null and record.categoryId != ''">
and (c.id = #{record.categoryId} or c.parent_id=#{record.categoryId})
</if>
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
index e171377..d9d36f6 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
@@ -14,8 +14,8 @@
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<blockquote class="layui-elem-quote blue-border">基本信息设置</blockquote>
- <div class="layui-form-mid layui-word-aux">商品新增后,会自动计算补贴金额,按商品原价的5%计算</div>
- <div class="layui-form-mid layui-word-aux">商品新增后,会自动计算星级等级,按商品原价设置</div>
+ <div class="layui-form-mid layui-word-aux">商品新增后,会自动计算补贴金额,按商品现价计算</div>
+ <div class="layui-form-mid layui-word-aux">商品新增后,会自动计算星级等级,按商品现价设置</div>
<div class="layui-row layui-col-space10 layui-form-item">
<div class="layui-col-lg6">
<label class="layui-form-label febs-form-item-require">商品名称:</label>
@@ -181,7 +181,6 @@
<label class="layui-form-label febs-form-item-require">现价:</label>
<div class="layui-input-block">
<input type="text" name="presentPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
- <div class="layui-form-mid layui-word-aux">现价设置为0进入零撸专区</div>
</div>
</div>
</div>
@@ -212,7 +211,7 @@
<div class="layui-col-lg6">
<label class="layui-form-label">开启多规格:</label>
<div class="layui-input-block">
- <input type="radio" name="isSku" value="1" title="是" lay-filter="isSku" />
+<!-- <input type="radio" name="isSku" value="1" title="是" lay-filter="isSku" />-->
<input type="radio" name="isSku" value="2" title="否" lay-filter="isSku" checked />
</div>
</div>
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
index 3dc6801..72a594c 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
@@ -235,8 +235,8 @@
<div class="layui-col-lg6">
<label class="layui-form-label">开启多规格:</label>
<div class="layui-input-block">
- <input type="radio" name="isSku" value="1" title="是"
- lay-filter="isSku"/>
+<!-- <input type="radio" name="isSku" value="1" title="是"-->
+<!-- lay-filter="isSku"/>-->
<input type="radio" name="isSku" value="2" title="否" lay-filter="isSku"
checked/>
</div>
--
Gitblit v1.9.1