From b3ed26028083bbf66bb47601d11f42cad802b903 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期一, 03 七月 2023 19:21:37 +0800
Subject: [PATCH] 商户端会员统计

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java |  151 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 118 insertions(+), 33 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 5f9e205..d11c200 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
@@ -13,6 +13,7 @@
 import com.ruoyi.member.domain.pojo.coupon.CouponRelGoods;
 import com.ruoyi.member.domain.pojo.coupon.CouponRelUser;
 import com.ruoyi.member.domain.pojo.coupon.CouponTotal;
+import com.ruoyi.system.api.domain.dto.MerBaseGetDto;
 import com.ruoyi.system.api.domain.dto.MerPageDto;
 import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.member.domain.vo.*;
@@ -26,6 +27,7 @@
 import com.ruoyi.system.api.constant.AppErrorConstant;
 import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
+import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo;
 import com.ruoyi.system.api.service.RemoteActivityService;
 import com.ruoyi.system.api.service.RemoteGoodsService;
 import org.springframework.scheduling.annotation.Async;
@@ -208,37 +210,9 @@
             String relGoodsIds = coupon.getRelGoodsIds();
             if(StringUtils.isNotBlank(relGoodsIds)){
                 //获取指定商品列表
-                List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
+                List<MerGoodsPriceListVo> goodsList = remoteGoodsService.listGoodsPriceByGoodsId(relGoodsIds).getData();
                 if(!goodsList.isEmpty()){
-                    //转换为返回对象
-                    List<MgtCouponGoodsListVo> relGoodsList = new ArrayList<>();
-                    MgtCouponGoodsListVo mgtCouponGoodsListVo;
-                    for(Goods goods : goodsList){
-                        mgtCouponGoodsListVo = new MgtCouponGoodsListVo();
-                        mgtCouponGoodsListVo.setGoodsId(goods.getGoodsId());
-                        mgtCouponGoodsListVo.setGoodsName(goods.getGoodsName());
-                        mgtCouponGoodsListVo.setGoodsNo(goods.getGoodsNo());
-                        //商品类型1周期2服务3体验4单品
-                        switch (goods.getGoodsType()){
-                            case 1:
-                                mgtCouponGoodsListVo.setGoodsType("周期");
-                                break;
-                            case 2:
-                                mgtCouponGoodsListVo.setGoodsType("服务");
-                                break;
-                            case 3:
-                                mgtCouponGoodsListVo.setGoodsType("体验");
-                                break;
-                            case 4:
-                                mgtCouponGoodsListVo.setGoodsType("单品");
-                                break;
-                            default:
-                                break;
-                        }
-                        mgtCouponGoodsListVo.setSalesPrice(goods.getSalesPrice());
-                        relGoodsList.add(mgtCouponGoodsListVo);
-                    }
-                    merCouponGetVo.setRelGoodsList(relGoodsList);
+                    merCouponGetVo.setRelGoodsList(goodsList);
                 }
             }
         }
@@ -359,8 +333,12 @@
         Date nowTime = new Date();
         Integer sendType = coupon.getSendType();
         List<Long> userIdList = new ArrayList<>();
+        Long shopId = null;
+        if(coupon.getCouponFrom()==2 && sendType==3){
+            shopId = coupon.getShopId();
+        }
         if(sendType >= 2 && sendType <= 4){
-            userIdList = memberService.listIdBySendType(sendType);
+            userIdList = memberService.listIdBySendType(sendType,shopId);
         }else if(sendType == 5){
             //关联类型1.用户管理筛选2.活动管理筛选
             if(coupon.getRelationType()==2){
@@ -691,7 +669,7 @@
     }
 
     /**
-     * @description  平台获取优惠券列表
+     * @description  获取商户优惠券列表
      * @author  jqs
      * @date    2023/6/30 16:53
      * @param page
@@ -699,7 +677,7 @@
      * @return  List<MerCouponPageVo>
      */
     @Override
-    public List<MerCouponPageVo> pageShopMerCoupon(Page page, MerPageDto merPageDto){
+    public List<MerCouponPageVo> pageShopMerCoupon(Page page, MerCouponPageDto merPageDto){
         List<MerCouponPageVo> couponPageVoList = couponMapper.pageShopMerCoupon(page, merPageDto);
         //处理使用限制和有效期
         if(couponPageVoList!=null&&!couponPageVoList.isEmpty()){
@@ -747,4 +725,111 @@
         }
         return couponPageVoList;
     }
+
+
+    /**
+     * @description  商户编辑优惠券
+     * @author  jqs
+     * @date    2023/7/3 9:21
+     * @param merCouponEditDto
+     * @return  void
+     */
+    @Override
+    public void editMerCoupon(MerCouponEditDto merCouponEditDto){
+        //编辑优惠券
+        Coupon coupon;
+        CouponTotal couponTotal;
+        if(StringUtils.isNotBlank(merCouponEditDto.getCouponId())){
+            coupon = this.getById(merCouponEditDto.getCouponId());
+            if(coupon.getAuditStatus()!=3){
+                throw new ServiceException(AppErrorConstant.COUPON_AUDIT_EDIT);
+            }
+            couponRelUserService.deleteCouponRelByCouponId(coupon.getCouponId());
+            couponRelGoodsService.deleteCouponRelByCouponId(coupon.getCouponId());
+            coupon.setCouponStatus(1);
+        }else{
+            coupon = new Coupon();
+            String couponId = IdUtils.simpleUUID();
+            coupon.setCouponId(couponId);
+            coupon.setDelFlag(0);
+            coupon.setShopId(merCouponEditDto.getShopId());
+            coupon.setCouponStatus(1);
+            coupon.setCreateTime(new Date());
+            coupon.setCreateUserId(merCouponEditDto.getUserId());
+            coupon.setCouponFrom(2);
+            //创建优惠券统计
+            couponTotal = new CouponTotal();
+            couponTotal.setCouponId(couponId);
+            couponTotal.setSendCount(0);
+            couponTotal.setSendUserCount(0);
+            couponTotalService.save(couponTotal);
+        }
+        //优惠券赋值
+        coupon.setAuditStatus(1);
+        coupon.setCouponType(merCouponEditDto.getCouponType());
+        coupon.setCouponName(merCouponEditDto.getCouponName());
+        coupon.setSendType(merCouponEditDto.getSendType());
+        coupon.setSendTimeType(merCouponEditDto.getSendTimeType());
+        coupon.setSendTime(merCouponEditDto.getSendTime());
+        coupon.setMoneyThreshold(merCouponEditDto.getMoneyThreshold());
+        coupon.setDiscountMoney(merCouponEditDto.getDiscountMoney());
+        coupon.setDiscountPercent(merCouponEditDto.getDiscountPercent());
+        coupon.setUseScope(merCouponEditDto.getUseScope());
+        coupon.setValidTimeType(merCouponEditDto.getValidTimeType());
+        coupon.setValidStartTime(merCouponEditDto.getValidStartTime());
+        coupon.setValidEndTime(merCouponEditDto.getValidEndTime());
+        coupon.setValidDay(merCouponEditDto.getValidDay());
+        coupon.setUpdateTime(new Date());
+        coupon.setUpdateUserId(merCouponEditDto.getUserId());
+        coupon.setRelationType(1);
+        //判断是否指定商品
+        if(coupon.getUseScope()==2&&!merCouponEditDto.getRelGoodsIdList().isEmpty()){
+            List<String> relGoodsIdList = merCouponEditDto.getRelGoodsIdList();
+            List<CouponRelGoods> couponRelGoodsList = relGoodsIdList.stream()
+                    .map(str -> {
+                        CouponRelGoods couponRelGoods = new CouponRelGoods();
+                        couponRelGoods.setDelFlag(0);
+                        couponRelGoods.setCouponId(coupon.getCouponId());
+                        couponRelGoods.setGoodsId(str);
+                        return couponRelGoods;
+                    })
+                    .collect(Collectors.toList());
+            couponRelGoodsService.saveBatch(couponRelGoodsList);
+            String relGoodsIds = relGoodsIdList.stream().collect(Collectors.joining(","));
+            coupon.setRelGoodsIds(relGoodsIds);
+        }
+        //判断是否指定用户
+        List<Long> relUserIdList = null;
+        if(coupon.getSendType()==5&&coupon.getRelationType()==1&&!merCouponEditDto.getRelUserIdList().isEmpty()){
+            relUserIdList = merCouponEditDto.getRelUserIdList();
+            List<CouponRelUser> couponRelUserList = relUserIdList.stream()
+                    .map(str -> {
+                        CouponRelUser couponRelUser = new CouponRelUser();
+                        couponRelUser.setDelFlag(0);
+                        couponRelUser.setCouponId(coupon.getCouponId());
+                        couponRelUser.setUserId(str);
+                        return couponRelUser;
+                    })
+                    .collect(Collectors.toList());
+            couponRelUserService.saveBatch(couponRelUserList);
+        }
+        this.saveOrUpdate(coupon);
+    }
+
+    /**
+     * @description  商户删除优惠券
+     * @author  jqs
+     * @date    2023/7/3 15:04
+     * @param merBaseGetDto
+     * @return  void
+     */
+    @Override
+    public void deleteMerCoupon(MerBaseGetDto merBaseGetDto){
+        Coupon coupon = this.getById(merBaseGetDto.getId());
+        coupon.setCouponStatus(-1);
+        coupon.setDelFlag(1);
+        coupon.setUpdateUserId(merBaseGetDto.getUserId());
+        coupon.setUpdateTime(new Date());
+        this.saveOrUpdate(coupon);
+    }
 }

--
Gitblit v1.7.1