src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -235,6 +235,13 @@ return memberService.getCoupon(getCouponDto); } @ApiOperation(value = "扫码推销员领取优惠卷") @PostMapping(value = "/scanCoupon") public FebsResponse scanCoupon(@RequestBody GetCouponDto getCouponDto) { return memberService.scanCoupon(getCouponDto); } @ApiOperation(value = "优惠卷列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = MallMemberCouponVo.class) src/main/java/cc/mrbird/febs/mall/mapper/MallMemberCouponMapper.java
@@ -23,4 +23,6 @@ List<MallMemberCoupon> selectListByMemberIdAndGoodsIdAndCouponIdWithOutInviteId(@Param("memberId")Long memberId, @Param("goodsId")Long goodsId); List<MallMemberCoupon> selectListByMemberIdCouponIdWithOutInviteId(@Param("memberId")Long memberId, @Param("couponId")Long couponId); } src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -86,6 +86,8 @@ FebsResponse getCoupon(GetCouponDto getCouponDto); FebsResponse scanCoupon(GetCouponDto getCouponDto); FebsResponse memberCoupon(MallMemberCouponDto mallMemberCouponDto); FebsResponse couponDetails(Long id); src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -935,6 +935,35 @@ } @Override public FebsResponse scanCoupon(GetCouponDto getCouponDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); String couponUUID = IdUtil.simpleUUID(); //通过邀请人信息,获取能领取的优惠卷信息 MallMember mallMember = this.baseMapper.selectInfoByInviteId(getCouponDto.getInviteId()); if(ObjectUtil.isNotEmpty(mallMember)){ SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(mallMember.getId()); if(ObjectUtil.isNotEmpty(salemanCoupon)){ Long couponId = salemanCoupon.getCouponId(); List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId); if(CollUtil.isEmpty(mallMemberCoupons)){ //商品优惠卷如果绑定了,那么当前登陆者获取一张卷 MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId); MallMemberCoupon mallMemberCoupon = new MallMemberCoupon(); mallMemberCoupon.setCouponId(couponId); mallMemberCoupon.setCouponName(mallGoodsCoupon.getName()); mallMemberCoupon.setMemberId(memberId); mallMemberCoupon.setCouponUuid(couponUUID); mallMemberCoupon.setInviteId(mallMember.getInviteId()); mallMemberCoupon.setState(1); mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay())); mallMemberCouponMapper.insert(mallMemberCoupon); } } } return new FebsResponse().success(); } @Override public FebsResponse memberCoupon(MallMemberCouponDto mallMemberCouponDto) { Long memberId = LoginUserUtil.getLoginUser().getId(); IPage<MallMemberCouponVo> page = new Page<>(mallMemberCouponDto.getPageNum(), mallMemberCouponDto.getPageSize()); src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -85,6 +85,7 @@ private final MallElectronicFenceMapper mallElectronicFenceMapper; private final MallMemberCouponMapper mallMemberCouponMapper; private final MallGoodsCouponMapper mallGoodsCouponMapper; private final CouponGoodsMapper couponGoodsMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -197,10 +198,17 @@ if(1 != state){ throw new FebsException(mallMemberCoupon.getCouponName()+"无法使用"); } Long goodsId = mallMemberCoupon.getGoodsId(); if(goodsId != sku.getGoodsId()){ //卷是否和商品绑定 Long skuGoodsId = sku.getGoodsId(); Long couponId = mallMemberCoupon.getCouponId(); List<CouponGoods> couponGoods = couponGoodsMapper.selectByGoodIdAndCouponId(skuGoodsId, couponId); if(ObjectUtil.isEmpty(couponGoods)){ throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); } // Long goodsId = mallMemberCoupon.getGoodsId(); // if(goodsId != sku.getGoodsId()){ // throw new FebsException(sku.getGoodsName()+"无法使用"+mallMemberCoupon.getCouponName()); // } MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(mallMemberCoupon.getCouponId()); if(ObjectUtil.isEmpty(mallGoodsCoupon)){ throw new FebsException(mallGoodsCoupon.getName()+"无法使用"); src/main/resources/mapper/modules/MallMemberCouponMapper.xml
@@ -9,6 +9,7 @@ b.real_amount realAmount from mall_member_coupon a INNER join mall_goods_coupon b on b.id = a.coupon_id and b.state = 2 INNER join coupon_goods c on c.coupon_id = a.coupon_id <where> a.member_id=#{record.memberId} <if test="record.state == 1"> @@ -22,9 +23,10 @@ and a.state=#{record.state} </if> <if test="record.goodsId != null and record.goodsId != ''"> and a.goods_id=#{record.goodsId} and c.goods_id = #{record.goodsId} </if> </where> group by a.id order by a.CREATED_TIME desc </select> @@ -56,4 +58,13 @@ and a.state = 1 </select> <select id="selectListByMemberIdCouponIdWithOutInviteId" resultType="cc.mrbird.febs.mall.entity.MallMemberCoupon"> select a.* from mall_member_coupon a where a.member_id = #{memberId} and a.coupon_id = #{couponId} and a.state = 1 </select> </mapper>