From bcffc7b5e9ece6061192c815af12e3981ff2dbb2 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 28 May 2022 20:09:43 +0800
Subject: [PATCH] add yunfei
---
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 8 ++++
src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java | 3 +
src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java | 4 ++
src/main/resources/mapper/modules/MallOrderItemMapper.xml | 6 +++
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 14 ++++++
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 1
src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java | 4 ++
src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java | 6 +++
src/main/resources/mapper/modules/MallGoodsMapper.xml | 2 +
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java | 5 ++
src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java | 3 +
src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html | 24 ++++++++++++
src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java | 4 ++
src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java | 2 +
src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java | 3 +
15 files changed, 88 insertions(+), 1 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
index 92732ec..1e8dde8 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
@@ -76,4 +76,8 @@
private Integer goodsType;
+ private Integer hasCarriage;
+
+ private BigDecimal carriage;
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
index 4967861..92bc374 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/MallGoodsUpdateDto.java
@@ -80,4 +80,8 @@
private Integer goodsType;
private List<Long> delSkuId;
+
+ private Integer hasCarriage;
+
+ private BigDecimal carriage;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
index b4da1ea..d543d9b 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallGoods.java
@@ -104,4 +104,8 @@
@TableField(exist = false)
private String orderNo;
+ private Integer hasCarriage;
+
+ private BigDecimal carriage;
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
index 777df59..1950daa 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
@@ -78,4 +78,6 @@
* 订单类型 1-普通订单 2-积分订单
*/
private Integer orderType;
+
+ private BigDecimal carriage;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java
index 58d0e92..eb07282 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderItemMapper.java
@@ -2,6 +2,11 @@
import cc.mrbird.febs.mall.entity.MallOrderItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
public interface MallOrderItemMapper extends BaseMapper<MallOrderItem> {
+
+ List<MallOrderItem> selectItemByGoodsIdUnCancel(@Param("goodsId") Long goodsId);
}
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 5ed4b73..ea09b5f 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
@@ -109,6 +109,10 @@
//新增商品
MallGoods mallGoods = MallGoodsConversion.INSTANCE.dtoToEntity(addMallGoodsDto);
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
+
+ if (mallGoods.getHasCarriage() == 2) {
+ mallGoods.setCarriage(BigDecimal.ZERO);
+ }
mallGoodsMapper.insert(mallGoods);
String thumbs = addMallGoodsDto.getThumbs();
@@ -337,6 +341,10 @@
}
BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods);
+ if (mallGoods.getHasCarriage() == 2) {
+ mallGoods.setCarriage(BigDecimal.ZERO);
+ }
+
mallGoodsMapper.updateById(mallGoods);
mallGoodsImagesMapper.deleteByGoodsId(mallGoodsUpdateDto.getId());
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 a21cfb8..f8c4036 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
@@ -90,6 +90,7 @@
this.baseMapper.insert(orderInfo);
BigDecimal total = BigDecimal.ZERO;
+ BigDecimal carriage = BigDecimal.ZERO;
for (AddOrderItemDto item : addOrderDto.getItems()) {
MallOrderItem orderItem = new MallOrderItem();
@@ -127,6 +128,15 @@
}
MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
+
+ // 零撸专区购买
+ if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
+ List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId());
+ if (CollUtil.isNotEmpty(items)) {
+ throw new FebsException("无法重复领取同一个商品");
+ }
+ }
+
if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
throw new FebsException(mallGoods.getGoodsName() + "已下架");
}
@@ -146,6 +156,7 @@
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());
@@ -159,6 +170,7 @@
}
orderInfo.setAmount(total);
+ orderInfo.setCarriage(carriage);
this.baseMapper.updateById(orderInfo);
agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L);
@@ -297,7 +309,7 @@
throw new FebsException("支付密码错误");
}
- memberWalletService.reduce(orderInfo.getAmount(), mallMember.getId(), field);
+ memberWalletService.reduce(orderInfo.getAmount().add(orderInfo.getCarriage()), mallMember.getId(), field);
return orderInfo.getOrderNo();
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java
index 1a00506..2f50b16 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsDetailsVo.java
@@ -51,6 +51,12 @@
@ApiModelProperty(value = "积分")
private BigDecimal score;
+ @ApiModelProperty(value = "是否有运费")
+ private Integer hasCarriage;
+
+ @ApiModelProperty(value = "运费")
+ private BigDecimal carriage;
+
@ApiModelProperty(value = "轮播图")
private List<String> images;
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java
index 002318c..bc3d4d4 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallGoodsListVo.java
@@ -37,4 +37,7 @@
@ApiModelProperty(value = "积分")
private BigDecimal score;
+
+ @ApiModelProperty(value = "是否有运费 1-是 2-包邮")
+ private Integer hasCarriage;
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
index 954534b..85130e9 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
@@ -63,6 +63,9 @@
@ApiModelProperty(value = "剩余时间")
private Long remainTime;
+ @ApiModelProperty(value = "运费")
+ private BigDecimal carriage;
+
public Integer getPayMethodType() {
if (this.payMethod == null) {
return 0;
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
index ddfb13e..3e0531e 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
@@ -36,4 +36,7 @@
@ApiModelProperty(value = "订单类型 1-普通订单 2-积分订单")
private Integer orderType;
+
+ @ApiModelProperty(value = "运费")
+ private BigDecimal carriage;
}
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index 3b68816..e332809 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -18,6 +18,8 @@
<result property="stock" column="stock" />
<result property="score" column="score" />
<result property="goodsType" column="goods_type" />
+ <result property="hasCarriage" column="has_carriage" />
+ <result property="carriage" column="carriage" />
<collection property="styles" ofType="cc.mrbird.febs.mall.entity.MallGoodsStyle">
<id property="id" column="style_id" />
<result property="name" column="style_name" />
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 4a1e626..449790c 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -96,6 +96,7 @@
<result column="longitude" property="longitude" />
<result column="latitude" property="latitude" />
<result column="order_type" property="orderType" />
+ <result column="carriage" property="carriage" />
<result column="remark" property="remark" />
<result column="del_flag" property="delFlag" />
<collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem">
diff --git a/src/main/resources/mapper/modules/MallOrderItemMapper.xml b/src/main/resources/mapper/modules/MallOrderItemMapper.xml
index ca78766..18159ef 100644
--- a/src/main/resources/mapper/modules/MallOrderItemMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderItemMapper.xml
@@ -2,4 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cc.mrbird.febs.mall.mapper.MallOrderItemMapper">
+ <select id="selectItemByGoodsIdUnCancel" resultType="cc.mrbird.febs.mall.entity.MallOrderItem">
+ select a.* from mall_order_item a
+ inner join mall_order_info b on a.order_id=b.ID and b.status in (1,2,3,4)
+ where a.goods_id=#{goodsId}
+ </select>
+
</mapper>
\ No newline at end of file
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 ff0bfa9..7924ed4 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
@@ -163,6 +163,7 @@
<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>
@@ -171,6 +172,21 @@
<label class="layui-form-label febs-form-item-require">成本价:</label>
<div class="layui-input-block">
<input type="text" name="costPrice" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">设置运费:</label>
+ <div class="layui-input-block">
+ <input type="radio" name="hasCarriage" value="1" title="开启" lay-filter="hasCarriage" />
+ <input type="radio" name="hasCarriage" value="2" title="关闭" lay-filter="hasCarriage" checked />
+ </div>
+ </div>
+
+ <div class="layui-form-item carriage-input febs-hide">
+ <label class="layui-form-label">运费:</label>
+ <div class="layui-input-block">
+ <input type="text" name="carriage" placeholder="" autocomplete="off" class="layui-input">
</div>
</div>
@@ -375,6 +391,14 @@
}
});
+ form.on('radio(hasCarriage)', function(data){
+ if (data.value == 2) {
+ $('.carriage-input').hide();
+ } else {
+ $('.carriage-input').show();
+ }
+ });
+
function addTableDate(data) {
var hasData = table.cache['multiSku'];
--
Gitblit v1.9.1