src/main/java/cc/mrbird/febs/mall/dto/AddMallGoodsDto.java
@@ -76,4 +76,8 @@ private Integer goodsType; private Integer hasCarriage; private BigDecimal carriage; } 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; } 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; } src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java
@@ -78,4 +78,6 @@ * 订单类型 1-普通订单 2-积分订单 */ private Integer orderType; private BigDecimal carriage; } 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); } 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()); 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(); } 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; 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; } 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; 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; } 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" /> 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"> 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> 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'];