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