From 25ef12504f10cb066db53541bd7bc7bac4c09ac4 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 11 七月 2023 18:39:10 +0800
Subject: [PATCH] 管理台bug和用户端

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java |   84 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 78 insertions(+), 6 deletions(-)

diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
index af793ed..61a5e66 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -10,15 +10,15 @@
 import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.member.domain.dto.*;
 import com.ruoyi.member.domain.pojo.coupon.*;
-import com.ruoyi.member.service.coupon.*;
-import com.ruoyi.system.api.domain.dto.*;
-import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.member.domain.vo.*;
 import com.ruoyi.member.mapper.coupon.CouponMapper;
+import com.ruoyi.member.service.coupon.*;
 import com.ruoyi.member.service.member.MemberCouponService;
 import com.ruoyi.member.service.member.MemberService;
 import com.ruoyi.system.api.constant.AppErrorConstant;
+import com.ruoyi.system.api.domain.dto.*;
 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.MerGoodsPriceListVo;
 import com.ruoyi.system.api.service.RemoteActivityService;
 import com.ruoyi.system.api.service.RemoteGoodsService;
@@ -893,10 +893,82 @@
      * @return  List<AppUnGetCouponPageVo>
      */
     @Override
-    public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto){
+    public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto, Long shopId){
         //获取当前已领取完优惠券
         List<String> unGetList = couponMapper.listUserUnGetCoupon(appPageDto.getUserId());
-        //List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList( unGetList);
-        return null;
+        List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList(page, shopId, unGetList);
+        //处理商品限制
+        if(!getAbleCouponPageVoList.isEmpty()){
+            String relGoodsIds;
+            List<Goods> goodsList;
+            List<String> goodsLimitList;
+            for(AppGetAbleCouponPageVo appGetAbleCouponPageVo : getAbleCouponPageVoList){
+                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
+                goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
+                if(!goodsList.isEmpty()){
+                    goodsLimitList = goodsList.stream().map(goods -> {
+                        String goodsName = goods.getGoodsName();
+                        goodsName = "限制" + goodsName + "适用";
+                        return goodsName;
+                    }).collect(Collectors.toList());
+                    appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
+                }
+            }
+        }
+        return getAbleCouponPageVoList;
+    }
+
+
+
+
+    /**
+     * @description  用户领取优惠券
+     * @author  jqs
+     * @date    2023/7/11 15:04
+     * @param couponId
+     * @param shopId
+     * @return  void
+     */
+    @Override
+    public void appGetCoupon(String couponId,Long userId,Long shopId){
+        Coupon coupon = this.getById(couponId);
+        if(coupon==null||coupon.getDelFlag()==1||coupon.getCouponStatus()!=1||coupon.getSendType()!=1){
+            throw new ServiceException(AppErrorConstant.COUPON_GET_ERROR);
+        }
+        MemberCouponRecord memberCouponRecord = memberCouponRecordService.getByCouponIdAndUserId(couponId,userId);
+        if(memberCouponRecord!=null&&memberCouponRecord.getLimitFlag()==1){
+            throw new ServiceException(AppErrorConstant.COUPON_GET_ALL);
+        }
+        MemberCoupon memberCoupon = new MemberCoupon();
+        String memberCouponId = IdUtils.simpleUUID();
+        memberCoupon.setId(memberCouponId);
+        memberCoupon.setDelFlag(0);
+        memberCoupon.setCouponId(couponId);
+        memberCoupon.setUserId(userId);
+        memberCoupon.setShopId(shopId);
+        memberCoupon.setCouponType(coupon.getCouponType());
+        memberCoupon.setCouponStatus(coupon.getCouponStatus());
+        memberCoupon.setCouponName(coupon.getCouponName());
+        memberCoupon.setSendType(coupon.getSendType());
+        memberCoupon.setSendTimeType(coupon.getSendTimeType());
+        memberCoupon.setSendTime(coupon.getSendTime());
+        memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
+        memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
+        memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
+        memberCoupon.setUseScope(coupon.getUseScope());
+        memberCoupon.setValidTimeType(coupon.getValidTimeType());
+        memberCoupon.setValidStartTime(coupon.getValidStartTime());
+        memberCoupon.setValidEndTime(coupon.getValidEndTime());
+        memberCoupon.setValidDay(coupon.getValidDay());
+        memberCoupon.setReceiveTime(new Date());
+        //有效期处理1.时间段2.领取之日起
+        if(coupon.getValidTimeType()==1){
+            memberCoupon.setDeadlineTime(coupon.getValidEndTime());
+        }else if(coupon.getValidTimeType()==2){
+            memberCoupon.setDeadlineTime(DateUtils.addDays(new Date(),coupon.getValidDay()));
+        }
+        memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
+        memberCouponService.save(memberCoupon);
+        memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
     }
 }

--
Gitblit v1.7.1