| | |
| | | package com.ruoyi.member.service.impl.member; |
| | | |
| | | import com.ruoyi.member.domain.pojo.member.MemberCoupon; |
| | | 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.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; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | @Resource |
| | | private MemberCouponMapper memberCouponMapper; |
| | | |
| | | @Resource |
| | | private RemoteGoodsService remoteGoodsService; |
| | | |
| | | |
| | | /** |
| | | * @description: TODO |
| | | * @author jqs34 |
| | |
| | | List<AppMemberCouponVo> appMemberCouponVoList = memberCouponMapper.listVoMemberCouponByUserId(userId); |
| | | return appMemberCouponVoList; |
| | | } |
| | | |
| | | /** |
| | | * @description 核销优惠券 |
| | | * @author jqs |
| | | * @date 2023/6/26 17:02 |
| | | * @param verifyCoupon |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public MerVerifyCouponGetVo getVerifyCoupon(String verifyCoupon){ |
| | | MemberCoupon memberCoupon = this.getById(verifyCoupon); |
| | | // 检查是否存在该优惠券 |
| | | 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){ |
| | | throw new ServiceException(AppErrorConstant.COUPON_EXPIRED); |
| | | }else if(memberCoupon.getCouponStatus()==2){ |
| | | throw new ServiceException(AppErrorConstant.COUPON_USED); |
| | | }else if(memberCoupon.getCouponStatus()!=0){ |
| | | throw new ServiceException(AppErrorConstant.COUPON_NO_FIND); |
| | | } |
| | | 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; |
| | | } |
| | | } |