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