From cbc564a7088503ad8cc7af4e1d2ba417d061e615 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 30 六月 2023 11:35:05 +0800 Subject: [PATCH] 联调bug和统计完善 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 88 insertions(+), 5 deletions(-) diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java index 74ff39c..df39976 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java @@ -1,12 +1,16 @@ package com.ruoyi.member.service.impl.member; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; -import com.ruoyi.member.domain.pojo.member.MemberCoupon; import com.ruoyi.member.mapper.member.MemberCouponMapper; import com.ruoyi.member.service.member.MemberCouponService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.poji.goods.Goods; +import com.ruoyi.system.api.domain.poji.member.MemberCoupon; import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; +import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo; +import com.ruoyi.system.api.service.RemoteGoodsService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -26,6 +30,10 @@ @Resource private MemberCouponMapper memberCouponMapper; + + @Resource + private RemoteGoodsService remoteGoodsService; + /** * @description: TODO @@ -47,9 +55,53 @@ * @return void */ @Override - public void verifyCoupon(String verifyCoupon){ + public MerVerifyCouponGetVo getVerifyCoupon(String verifyCoupon){ MemberCoupon memberCoupon = this.getById(verifyCoupon); - if(memberCoupon==null){ + // 检查是否存在该优惠券 + if (memberCoupon == null) { + throw new ServiceException(AppErrorConstant.COUPON_NO_FIND); + } + // 检查优惠券状态 + int couponStatus = memberCoupon.getCouponStatus(); + if (couponStatus == 0) { + throw new ServiceException(AppErrorConstant.COUPON_EXPIRED); + } else if (couponStatus == 2) { + throw new ServiceException(AppErrorConstant.COUPON_USED); + } else if (couponStatus != 0) { + throw new ServiceException(AppErrorConstant.COUPON_NO_FIND); + } + // 检查优惠券类型 + int couponType = memberCoupon.getCouponType(); + if (couponType != 4) { + throw new ServiceException(AppErrorConstant.COUPON_TYPE_ERROR); + } + MerVerifyCouponGetVo merVerifyCouponGetVo = new MerVerifyCouponGetVo(); + merVerifyCouponGetVo.setUserId(memberCoupon.getUserId()); + String relGoodsIds = memberCoupon.getRelGoodsIds(); + List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData(); + if (goodsList != null) { + merVerifyCouponGetVo.setGoodsList(goodsList); + } + merVerifyCouponGetVo.setMemberCouponId(memberCoupon.getId()); + if (memberCoupon.getShopId()!=null&&memberCoupon.getShopId()>0) { + merVerifyCouponGetVo.setCouponFrom("商户"); + } else { + merVerifyCouponGetVo.setCouponFrom("平台"); + } + return merVerifyCouponGetVo; + } + + /** + * @description 核销优惠券 + * @author jqs + * @date 2023/6/28 11:44 + * @param memberCouponId + * @return MerVerifyCouponGetVo + */ + @Override + public MerVerifyCouponGetVo sureVerifyCoupon(String memberCouponId){ + MemberCoupon memberCoupon = this.getById(memberCouponId); + if(memberCoupon==null||memberCoupon.getDelFlag()==1){ throw new ServiceException(AppErrorConstant.COUPON_NO_FIND); } if(memberCoupon.getCouponStatus()==0){ @@ -62,9 +114,40 @@ if(memberCoupon.getCouponType()!=4){ throw new ServiceException(AppErrorConstant.COUPON_TYPE_ERROR); } - //更新优惠券为已使用 + MerVerifyCouponGetVo merVerifyCouponGetVo = new MerVerifyCouponGetVo(); + merVerifyCouponGetVo.setUserId(memberCoupon.getUserId()); + String relGoodsIds = memberCoupon.getRelGoodsIds(); + List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData(); + if(goodsList!=null){ + merVerifyCouponGetVo.setGoodsList(goodsList); + } + merVerifyCouponGetVo.setMemberCouponId(memberCoupon.getId()); + if (memberCoupon.getShopId()!=null&&memberCoupon.getShopId()>0) { + merVerifyCouponGetVo.setCouponFrom("商户"); + } else { + merVerifyCouponGetVo.setCouponFrom("平台"); + } memberCoupon.setCouponStatus(2); memberCoupon.setUseTime(new Date()); this.saveOrUpdate(memberCoupon); + merVerifyCouponGetVo.setMemberCoupon(memberCoupon); + return merVerifyCouponGetVo; + } + + /** + * @description + * @author jqs + * @date 2023/6/29 11:42 + * @param userId + * @param couponId + * @return Integer + */ + @Override + public Integer totalMemberCouponByUserAndCoupon(Long userId,String couponId){ + LambdaQueryWrapper<MemberCoupon> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MemberCoupon::getUserId,userId); + queryWrapper.eq(MemberCoupon::getCouponId,couponId); + Integer total = this.count(queryWrapper); + return total; } } -- Gitblit v1.7.1