From dde5cf11c3ca6bddbd6aaeccf4e69d4f96ae8a45 Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期一, 02 九月 2024 13:02:05 +0800
Subject: [PATCH] 1.优惠券返回字段增加

---
 src/main/java/com/mzl/flower/entity/coupon/CouponRecordDO.java                   |    5 +
 src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateBO.java      |    2 
 src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateVipDTO.java  |    8 -
 src/main/java/com/mzl/flower/entity/coupon/CouponTemplateDO.java                 |    2 
 src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVO.java           |   12 ++
 src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java      |   11 ++
 src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateActivyVO.java     |    8 +
 src/main/resources/mapper/coupon/CouponTemplateMapper.xml                        |    2 
 src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java        |   10 ++
 src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java    |  105 ++++++++++----------
 src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java       |    3 
 src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java |   43 ++++++++
 src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml                  |   49 +++++++++
 13 files changed, 194 insertions(+), 66 deletions(-)

diff --git a/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateBO.java b/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateBO.java
index 41ad94b..81fb926 100644
--- a/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateBO.java
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateBO.java
@@ -139,7 +139,7 @@
      */
     @ApiModelProperty(value = "会员等级")
     @NotEmpty(message = "会员等级不能为空")
-    private String vipGrade;
+    private Integer memberId;
 
 
     @ApiModelProperty(value = "指定的用户列表id")
diff --git a/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateVipDTO.java b/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateVipDTO.java
index 160c46d..a87686a 100644
--- a/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateVipDTO.java
+++ b/src/main/java/com/mzl/flower/dto/request/coupon/CreateCouponTemplateVipDTO.java
@@ -1,7 +1,6 @@
 package com.mzl.flower.dto.request.coupon;
 
 
-import com.mzl.flower.base.annotation.DictTrans;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -56,14 +55,13 @@
      *  会员等级
      */
     @ApiModelProperty(value = "会员等级")
-    @NotEmpty(message = "会员等级不能为空")
-    private String vipGrade;
+    @NotNull(message = "会员等级不能为空")
+    private Integer memberId;
 
     /**
      * 领取后有效类型(COUPON_usage_time_type)天、小时、分钟
      */
     @ApiModelProperty(value = "领取后有效类型(COUPON_USAGE_TIME_TYPE)")
-    @DictTrans(target = "usageTimeTypeName",codeType = "COUPON_USAGE_TIME_TYPE")
     private String usageTimeType;
 
     /**
@@ -72,7 +70,5 @@
     @ApiModelProperty(value = "领取后有效时间整数")
     private Integer usageTimeNum;
 
-    @ApiModelProperty(value = "领取后有效类型名称")
-    private String usageTimeTypeName;
 
 }
diff --git a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateActivyVO.java b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateActivyVO.java
index 3f1218c..288837d 100644
--- a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateActivyVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateActivyVO.java
@@ -144,4 +144,12 @@
     @ApiModelProperty(value = "领取后有效时间整数")
     private Integer usageTimeNum;
 
+    @ApiModelProperty(value = "使用时间类型(COUPON_USAGE_TYPE)")
+    @DictTrans(target = "usageTypeName",codeType = "COUPON_USAGE_TYPE")
+    private String usageType;
+
+    @ApiModelProperty(value = "使用时间类型")
+    private String usageTypeName;
+
+
 }
diff --git a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVO.java b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVO.java
index d7f8a5a..4b2bf71 100644
--- a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVO.java
@@ -3,6 +3,7 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.mzl.flower.base.AbstractTransDTO;
 import com.mzl.flower.base.annotation.DictTrans;
+import com.mzl.flower.entity.menber.Member;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -227,9 +228,18 @@
     private String updateByName;
 
     @ApiModelProperty(value = "会员等级")
-    private String vipGrade;
+
+    private Integer memberId;
+
+    @ApiModelProperty(value = "会员等级名称")
+    private String memberName;
+
 
     @ApiModelProperty(value = "商户列表")
     List<CouponTemplateCustomerVO> customerList;
 
+
+    @ApiModelProperty(value = "会员等级对象")
+    private Member member;
+
 }
diff --git a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java
index 0f61df0..c1b88d8 100644
--- a/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java
+++ b/src/main/java/com/mzl/flower/dto/response/coupon/CouponTemplateVipVO.java
@@ -3,6 +3,7 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.mzl.flower.base.AbstractTransDTO;
 import com.mzl.flower.base.annotation.DictTrans;
+import com.mzl.flower.entity.menber.Member;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -111,4 +112,13 @@
     @ApiModelProperty(value = "领取后有效类型名称")
     private String usageTimeTypeName;
 
+    @ApiModelProperty(value = "会员等级")
+    private Integer memberId;
+
+    @ApiModelProperty(value = "会员等级名称")
+    private String memberName;
+
+    @ApiModelProperty(value = "会员等级对象")
+    private Member member;
+
 }
diff --git a/src/main/java/com/mzl/flower/entity/coupon/CouponRecordDO.java b/src/main/java/com/mzl/flower/entity/coupon/CouponRecordDO.java
index 3fdb745..cfc3594 100644
--- a/src/main/java/com/mzl/flower/entity/coupon/CouponRecordDO.java
+++ b/src/main/java/com/mzl/flower/entity/coupon/CouponRecordDO.java
@@ -104,4 +104,9 @@
      */
     private String orderNo;
 
+    /**
+     * 会员等级
+     */
+    private Integer memberId;
+
 }
diff --git a/src/main/java/com/mzl/flower/entity/coupon/CouponTemplateDO.java b/src/main/java/com/mzl/flower/entity/coupon/CouponTemplateDO.java
index 3360098..bd901cd 100644
--- a/src/main/java/com/mzl/flower/entity/coupon/CouponTemplateDO.java
+++ b/src/main/java/com/mzl/flower/entity/coupon/CouponTemplateDO.java
@@ -136,7 +136,7 @@
     private Integer point;
 
     @ApiModelProperty(value = "会员等级")
-    private String vipGrade;
+    private Integer memberId;
 
 
 }
diff --git a/src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java b/src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java
index 5b8cb6c..b3132d2 100644
--- a/src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java
+++ b/src/main/java/com/mzl/flower/mapper/coupon/CouponTemplateMapperCustom.java
@@ -58,4 +58,7 @@
      */
     List<CouponTemplateCustomerVO> getCouponCustomerList(@Param("id") String id);
 
+    List<CouponTemplateVO> getVipList(@Param("param") QueryCouponDTO dto);
+
+    List<CouponTemplateVO> getCouponTemplateVipPage(Page page, @Param("param") QueryCouponDTO dto);
 }
diff --git a/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
index 4878fa1..4a577d0 100644
--- a/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
+++ b/src/main/java/com/mzl/flower/service/impl/coupon/CouponRecordServiceImpl.java
@@ -1,6 +1,5 @@
 package com.mzl.flower.service.impl.coupon;
 
-import cn.hutool.core.util.IdUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -11,7 +10,6 @@
 import com.mzl.flower.entity.coupon.CouponRecordDO;
 import com.mzl.flower.entity.coupon.CouponTemplateDO;
 import com.mzl.flower.entity.customer.Customer;
-import com.mzl.flower.entity.system.User;
 import com.mzl.flower.enums.*;
 import com.mzl.flower.mapper.coupon.CouponRecordMapper;
 import com.mzl.flower.mapper.coupon.CouponRecordMapperCustom;
@@ -125,6 +123,7 @@
         couponRecordDO.setCouponDiscountType(couponTemplateDO.getCouponDiscountType());
         couponRecordDO.setGetUserType(couponTemplateDO.getGetUserType());
         couponRecordDO.setPoint(couponTemplateDO.getPoint());
+        couponRecordDO.setMemberId(couponRecordDO.getMemberId());
 
 
         // 根据优惠券模板来计算优惠券的生效开始时间和结束时间
@@ -217,56 +216,58 @@
     @Override
     public boolean grantVipCouponRecordList() {
 
-        try{
-            LocalDateTime now = LocalDateTime.now();
-            LocalDateTime firstDayStart = now.with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0).withNano(0);
-            LocalDateTime lastDayEnd = now.with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59).withNano(0);
-
-            // 获取所有会员模版列表
-            List<CouponTemplateDO> vipTemplateList= couponTemplateService.getVipCouponTemplate();
-
-            // 遍历所有相同等级用户信息,并根据优惠券设置的规则构造优惠券
-            final List<CouponTemplateDO> updateCouponTemplateList = vipTemplateList.stream().map(couponTemplateDO -> {
-                final List<User> vipGradeUserList = userService.getVipGradeUserList(couponTemplateDO.getVipGrade());
-                final List<CouponRecordDO> gradeCouponRecordList = vipGradeUserList.stream().map(user -> {
-                    CouponRecordDO couponRecordDO = new CouponRecordDO();
-                    BeanUtils.copyProperties(couponTemplateDO, couponRecordDO);
-                    couponRecordDO.setId(IdUtil.simpleUUID());
-                    couponRecordDO.setCouponId(couponTemplateDO.getId());
-                    couponRecordDO.setUserId(user.getId());
-                    couponRecordDO.setStatus(CouponUsedStatusEnum.UNUSED.getType());
-                    couponRecordDO.setEffectiveStart(firstDayStart);
-                    couponRecordDO.setEffectiveEnd(lastDayEnd);
-
-                    // 创建信息
-                    couponRecordDO.create();
-                    return couponRecordDO;
-                }).collect(Collectors.toList());
-
-                // 批量保存等级下的优惠券信息
-                saveBatch(gradeCouponRecordList);
-
-                couponTemplateDO.setUsageStartDate(firstDayStart);
-                couponTemplateDO.setUsageEndDate(lastDayEnd);
-                couponTemplateDO.setGetStartDate(firstDayStart);
-                couponTemplateDO.setGetEndDate(lastDayEnd);
-
-                // 设置默认类型固定
-                couponTemplateDO.setUsageType(CouponUsageTypeEnum.FIXED.getType());
-
-                return couponTemplateDO;
-
-            }).collect(Collectors.toList());
-
-            // 批量更新原模版时间
-            couponTemplateService.updateBatchById(updateCouponTemplateList);
-
-            return true;
-        }catch (Exception e){
-            // 报错日志信息报错
-            log.error(e.getMessage());
-            return false;
-        }
+        // TODO 会员等级修改
+//        try{
+//            LocalDateTime now = LocalDateTime.now();
+//            LocalDateTime firstDayStart = now.with(TemporalAdjusters.firstDayOfMonth()).withHour(0).withMinute(0).withSecond(0).withNano(0);
+//            LocalDateTime lastDayEnd = now.with(TemporalAdjusters.lastDayOfMonth()).withHour(23).withMinute(59).withSecond(59).withNano(0);
+//
+//            // 获取所有会员模版列表
+//            List<CouponTemplateDO> vipTemplateList= couponTemplateService.getVipCouponTemplate();
+//
+//            // 遍历所有相同等级用户信息,并根据优惠券设置的规则构造优惠券
+//            final List<CouponTemplateDO> updateCouponTemplateList = vipTemplateList.stream().map(couponTemplateDO -> {
+//                final List<User> vipGradeUserList = userService.getVipGradeUserList(couponTemplateDO.getVipGrade());
+//                final List<CouponRecordDO> gradeCouponRecordList = vipGradeUserList.stream().map(user -> {
+//                    CouponRecordDO couponRecordDO = new CouponRecordDO();
+//                    BeanUtils.copyProperties(couponTemplateDO, couponRecordDO);
+//                    couponRecordDO.setId(IdUtil.simpleUUID());
+//                    couponRecordDO.setCouponId(couponTemplateDO.getId());
+//                    couponRecordDO.setUserId(user.getId());
+//                    couponRecordDO.setStatus(CouponUsedStatusEnum.UNUSED.getType());
+//                    couponRecordDO.setEffectiveStart(firstDayStart);
+//                    couponRecordDO.setEffectiveEnd(lastDayEnd);
+//
+//                    // 创建信息
+//                    couponRecordDO.create();
+//                    return couponRecordDO;
+//                }).collect(Collectors.toList());
+//
+//                // 批量保存等级下的优惠券信息
+//                saveBatch(gradeCouponRecordList);
+//
+//                couponTemplateDO.setUsageStartDate(firstDayStart);
+//                couponTemplateDO.setUsageEndDate(lastDayEnd);
+//                couponTemplateDO.setGetStartDate(firstDayStart);
+//                couponTemplateDO.setGetEndDate(lastDayEnd);
+//
+//                // 设置默认类型固定
+//                couponTemplateDO.setUsageType(CouponUsageTypeEnum.FIXED.getType());
+//
+//                return couponTemplateDO;
+//
+//            }).collect(Collectors.toList());
+//
+//            // 批量更新原模版时间
+//            couponTemplateService.updateBatchById(updateCouponTemplateList);
+//
+//            return true;
+//        }catch (Exception e){
+//            // 报错日志信息报错
+//            log.error(e.getMessage());
+//            return false;
+//        }
+        return false;
     }
 
     @Override
diff --git a/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java b/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java
index 69eccb0..a1c8bef 100644
--- a/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java
+++ b/src/main/java/com/mzl/flower/service/impl/coupon/CouponTemplateServiceImpl2.java
@@ -16,6 +16,7 @@
 import com.mzl.flower.entity.coupon.CouponTemplateCustomerDO;
 import com.mzl.flower.entity.coupon.CouponTemplateDO;
 import com.mzl.flower.entity.customer.Customer;
+import com.mzl.flower.entity.menber.Member;
 import com.mzl.flower.entity.point.CustomerPoint;
 import com.mzl.flower.entity.point.CustomerPointDetail;
 import com.mzl.flower.enums.*;
@@ -27,6 +28,7 @@
 import com.mzl.flower.service.coupon.CouponRecordService;
 import com.mzl.flower.service.coupon.CouponTemplateCustomerService;
 import com.mzl.flower.service.coupon.CouponTemplateService2;
+import com.mzl.flower.service.menber.MemberService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -36,6 +38,7 @@
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -70,6 +73,9 @@
 
     @Autowired
     private CustomerPointDetailMapper customerPointDetailMapper;
+
+    @Autowired
+    private MemberService memberService;
 
 
 
@@ -146,13 +152,29 @@
     @Override
     public List<CouponTemplateVO> getList(QueryCouponDTO dto) {
 
-        List<CouponTemplateVO> list = couponTemplateMapperCustom.getList(dto);
+        List<CouponTemplateVO> list =new ArrayList<>();
+        if(StringUtils.isNotBlank(dto.getCategory())
+                && dto.getCategory().equals(CouponCategoryEnum.MEMBER.getStatus())
+        ){
+            // 会员优惠券
+            list = couponTemplateMapperCustom.getVipList(dto);
+        }else{
+            list = couponTemplateMapperCustom.getList(dto);
+        }
         return list;
     }
 
     @Override
     public Page<CouponTemplateVO> getPage(Page page, QueryCouponDTO dto) {
-        List<CouponTemplateVO> result = couponTemplateMapperCustom.getCouponTemplatePage(page, dto);
+        List<CouponTemplateVO> result =new ArrayList<>();
+        if(StringUtils.isNotBlank(dto.getCategory())
+                && dto.getCategory().equals(CouponCategoryEnum.MEMBER.getStatus())
+        ){
+            // 会员优惠券
+            result = couponTemplateMapperCustom.getCouponTemplateVipPage(page, dto);
+        }else{
+            result = couponTemplateMapperCustom.getCouponTemplatePage(page, dto);
+        }
         return page.setRecords(result);
     }
 
@@ -163,10 +185,23 @@
         final List<CouponTemplateVO> list = getList(dto);
         if (CollectionUtils.isNotEmpty(list)) {
             CouponTemplateVO vo =list.get(0);
-            if(vo.getCategory().equals(CouponCategoryEnum.USER.getStatus())){
+            // 用户获取
+            if(StringUtils.isNotBlank(vo.getCategory())
+                  &&  vo.getCategory().equals(CouponCategoryEnum.USER.getStatus())){
                 List<CouponTemplateCustomerVO> customerList= couponTemplateMapperCustom.getCouponCustomerList(id);
                 vo.setCustomerList(customerList);
             }
+            // 会员等级
+            if(StringUtils.isNotBlank(vo.getCategory()) && null!=vo.getMemberId()
+                    &&  vo.getCategory().equals(CouponCategoryEnum.MEMBER.getStatus())){
+                final Member member = memberService.getById(vo.getMemberId());
+                if(null!=member){
+                    vo.setMember(member);
+                    vo.setMemberName(member.getName());
+                }
+
+            }
+
             return vo;
         }
         return null;
@@ -222,6 +257,7 @@
                 List<CouponRecordDO> couponUsageDOList = couponTemplateCustomerDOList.stream().map(pointCustomRe -> {
 
                     CouponRecordDO couponRecordDO = new CouponRecordDO();
+                    couponRecordDO.setId(IdUtil.simpleUUID());
                     couponRecordDO.setCouponId(pointCustomRe.getCouponId());
                     couponRecordDO.setCustomerId(pointCustomRe.getCustomId());
                     final Customer customer = customerMapper.selectById(pointCustomRe.getCustomId());
@@ -247,6 +283,7 @@
                     couponRecordDO.setCouponDiscountType(couponTemplateDO.getCouponDiscountType());
                     couponRecordDO.setGetUserType(couponTemplateDO.getGetUserType());
                     couponRecordDO.setPoint(couponTemplateDO.getPoint());
+                    couponRecordDO.setMemberId(couponRecordDO.getMemberId());
 
                     // 创建相关信息
                     couponRecordDO.create(SecurityUtils.getUserId());
diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java
index 0a203aa..158a82b 100644
--- a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateVipController.java
@@ -10,9 +10,11 @@
 import com.mzl.flower.dto.response.coupon.CouponTemplateVO;
 import com.mzl.flower.dto.response.coupon.CouponTemplateVipVO;
 import com.mzl.flower.entity.coupon.CouponTemplateDO;
+import com.mzl.flower.entity.menber.Member;
 import com.mzl.flower.enums.CouponCategoryEnum;
 import com.mzl.flower.enums.CouponTypeEnum;
 import com.mzl.flower.service.coupon.CouponTemplateService2;
+import com.mzl.flower.service.menber.MemberService;
 import com.mzl.flower.utils.ConverterUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -37,6 +39,9 @@
 
     @Autowired
     CouponTemplateService2 couponTemplateService;
+
+    @Autowired
+    MemberService memberService;
 
     @PostMapping("")
     @ApiOperation(value = "新增", notes = "新增")
@@ -121,6 +126,12 @@
 
     private void valid(CreateCouponTemplateVipDTO dto){
 
+        final Member member = memberService.getById(dto.getMemberId());
+
+        if(null==member){
+            throw new ValidationException("会员等级不存在");
+        }
+
         if (StringUtils.isNotBlank(dto.getCouponDiscountType())
                 && dto.getCouponDiscountType().equals(CouponTypeEnum.DISCOUNT.getType())
                 && dto.getMinOrderAmount().compareTo(dto.getCouponDiscountValue()) < 0) {
diff --git a/src/main/resources/mapper/coupon/CouponTemplateMapper.xml b/src/main/resources/mapper/coupon/CouponTemplateMapper.xml
index 78ee51d..6f0d492 100644
--- a/src/main/resources/mapper/coupon/CouponTemplateMapper.xml
+++ b/src/main/resources/mapper/coupon/CouponTemplateMapper.xml
@@ -32,7 +32,7 @@
         <result column="usage_time_num" property="usageTimeNum" />
         <result column="status" property="status" />
 
-        <result column="vip_grade" property="vipGrade" />
+        <result column="member_id" property="memberId" />
 
 
     </resultMap>
diff --git a/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml b/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
index 33fe113..1972404 100644
--- a/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
+++ b/src/main/resources/mapper/coupon/CouponTemplateMapperCustom.xml
@@ -33,7 +33,7 @@
         <result column="usage_time_num" property="usageTimeNum" />
         <result column="status" property="status" />
         <result column="point" property="point" />
-        <result column="vip_grade" property="vipGrade" />
+        <result column="member_id" property="memberId" />
 
     </resultMap>
     <update id="activeBatchCouponTemplate">
@@ -103,6 +103,12 @@
         and c.id=#{id}
 
     </select>
+    <select id="getVipList" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
+        <include refid="QuerySqlVip" />
+    </select>
+    <select id="getCouponTemplateVipPage" resultType="com.mzl.flower.dto.response.coupon.CouponTemplateVO">
+        <include refid="QuerySqlVip" />
+    </select>
 
     <sql id="QueryPointSql">
         select *
@@ -164,4 +170,45 @@
         order by t.create_time desc
     </sql>
 
+    <sql id="QuerySqlVip">
+        select *
+        from (
+            select t.*,
+            create_by_user.nick_name as createByName,
+            IFNULL(get_num.cnt, 0) as getNum,
+            IFNULL(t.coupon_amount, 0) - IFNULL(get_num.cnt, 0) as unGetNum,
+            m.`name` as member_name
+            from t_coupon_template t
+            left join t_user create_by_user
+            on t.create_by =create_by_user.id
+            left join (select coupon_id,count(1) as cnt  from t_coupon_record where deleted=0 group by coupon_id) get_num
+            on t.id=get_num.coupon_id
+            left join t_member m
+            on t.member_id=m.id
+        ) t
+        where t.deleted=0
+        <if test="param.name != null and param.name != ''">
+            AND t.coupon_name like concat('%', #{param.name},'%')
+        </if>
+        <if test="param.couponDiscountType != null and param.couponDiscountType != ''">
+            AND t.coupon_discount_type =  #{param.couponDiscountType}
+        </if>
+        <if test="param.getType != null and param.getType != ''">
+            AND t.get_type =  #{param.getType}
+        </if>
+        <if test="param.getUserType != null and param.getUserType != ''">
+            AND t.get_user_type =  #{param.getUserType}
+        </if>
+        <if test="param.id != null and param.id != ''">
+            AND t.id =  #{param.id}
+        </if>
+        <if test="param.category != null and param.category != ''">
+            AND t.category =  #{param.category}
+        </if>
+        <if test="param.status != null and param.status != ''">
+            AND t.status =  #{param.status}
+        </if>
+        order by t.create_time desc
+    </sql>
+
 </mapper>

--
Gitblit v1.9.3