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