KKSU
2024-01-02 63b5728cd6348f37cd95e21680e0a066956c641c
修改推荐人
6 files modified
65 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberCouponMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 29 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 12 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMemberCouponMapper.xml 13 ●●●●● patch | view | raw | blame | history
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>