记得上下班打卡 | git大法好,push需谨慎

Commit 1303022b authored by 张国柄's avatar 张国柄

~筛选券列表逻辑优化(支持标题、描述、适用范围描述检索);

parent 3630179d
...@@ -56,13 +56,23 @@ public class BaseController ...@@ -56,13 +56,23 @@ public class BaseController
PageDomain pageDomain = TableSupport.buildPageRequest(); PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum(); Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize(); Integer pageSize = pageDomain.getPageSize();
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); // if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) // {
{
// String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); // String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
PageHelper.startPage(pageNum, pageSize, orderBy); // PageHelper.startPage(pageNum, pageSize, orderBy);
// }
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
} else { } else {
PageHelper.startPage(1, 10, orderBy); pageNum = 1;
pageSize = 10;
}
if (StringUtils.isEmpty(orderBy)) {
PageHelper.startPage(pageNum, pageSize);
} else {
PageHelper.startPage(pageNum, pageSize, orderBy);
} }
} }
......
...@@ -3,12 +3,16 @@ package com.liquidnet.client.admin.web.controller.zhengzai.candy; ...@@ -3,12 +3,16 @@ package com.liquidnet.client.admin.web.controller.zhengzai.candy;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.liquidnet.client.admin.common.core.controller.BaseController; import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.PageDomain;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.core.page.TableSupport;
import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.common.utils.sql.SqlUtil;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponRuleAdminService;
import com.liquidnet.service.candy.dto.admin.CandyCouponFilterDto;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam; import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.dto.admin.CandyCouponTemplateDto; import com.liquidnet.service.candy.dto.admin.CandyCouponTemplateDto;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
...@@ -17,7 +21,6 @@ import io.swagger.annotations.Api; ...@@ -17,7 +21,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
...@@ -25,8 +28,6 @@ import org.springframework.web.bind.annotation.PostMapping; ...@@ -25,8 +28,6 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -45,46 +46,31 @@ public class CandyCouponAdminController extends BaseController { ...@@ -45,46 +46,31 @@ public class CandyCouponAdminController extends BaseController {
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "busiType", value = "业务类别[0-全场|1-演出|2-商品|3-优先购]"), @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "busiType", value = "业务类别[0-全场|1-演出|2-商品|3-优先购]"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "couType", value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]"), @ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "couType", value = "券类型[1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "bindType", value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分商品|3-发放需领取|4-会员专属],多种方式则以,分隔入参"), @ApiImplicitParam(type = "form", required = false, dataType = "String", name = "bindType", value = "领取方式[0-用户输入兑换|1-发放至用户|2-积分商品|3-发放需领取|4-会员专属],多种方式则以,分隔入参"),
@ApiImplicitParam(type = "form", required = false, dataType = "String", name = "keyword", value = "搜索关键字"), @ApiImplicitParam(type = "form", required = false, dataType = "String", name = "keyword", value = "搜索关键字[支持检索标题title、描述notice、适用描述busiName]"),
}) })
@PostMapping("list") @PostMapping("list")
@ResponseBody @ResponseBody
public TableDataInfo list(CandyCouponListParam listParam) { public TableDataInfo list(CandyCouponListParam listParam) {
LambdaQueryWrapper<CandyCoupon> queryWrapper = Wrappers.lambdaQuery(CandyCoupon.class); String bindType = listParam.getBindType();
queryWrapper.eq(CandyCoupon::getState, 1); if (StringUtils.isNotEmpty(bindType) && !Pattern.matches("^[\\d,]*$", bindType)) {
queryWrapper.select(CandyCoupon::getCouponId, CandyCoupon::getTitle); listParam.setBindType(null);
queryWrapper.orderByDesc(CandyCoupon::getCreatedAt);
if (null != listParam) {
if (StringUtils.isNotBlank(listParam.getKeyword())) {
queryWrapper.like(CandyCoupon::getTitle, listParam.getKeyword());
}
if (null != listParam.getBusiType()) {
queryWrapper.eq(CandyCoupon::getBusiType, listParam.getBusiType());
}
if (null != listParam.getCouType()) {
queryWrapper.eq(CandyCoupon::getCouType, listParam.getCouType());
}
// if (null != listParam.getBindType()) {
// queryWrapper.eq(CandyCoupon::getBindType, listParam.getBindType());
// }
if (null != listParam.getBindType() && Pattern.matches("^[\\d,]*$", listParam.getBindType())) {
String[] bindTypeArr = listParam.getBindType().split(",");
if (bindTypeArr.length > 0) {
queryWrapper.in(CandyCoupon::getBindType, Arrays.stream(bindTypeArr).toArray());
}
}
} }
startPage(); PageDomain pageDomain = TableSupport.buildPageRequest();
List<CandyCoupon> list = candyCouponAdminService.list(queryWrapper); Integer pageNum = pageDomain.getPageNum();
TableDataInfo dataTable = getDataTable(list); Integer pageSize = pageDomain.getPageSize();
List<CandyCouponFilterDto> dtoList = new ArrayList<>(); String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
list.forEach(r -> { if (com.liquidnet.client.admin.common.utils.StringUtils.isNotNull(pageNum) && com.liquidnet.client.admin.common.utils.StringUtils.isNotNull(pageSize)) {
dtoList.add(CandyCouponFilterDto.getNew().copy(r)); } else {
}); pageNum = 1;
dataTable.setRows(dtoList); pageSize = 10;
return dataTable; }
if (StringUtils.isEmpty(orderBy)) {
PageHelper.startPage(pageNum, pageSize, "cc.created_at desc");
} else {
PageHelper.startPage(pageNum, pageSize, orderBy);
}
return getDataTable(candyCouponAdminService.listForCouponFilterDto(listParam));
} }
@ApiOperation(value = "券详情") @ApiOperation(value = "券详情")
......
package com.liquidnet.client.admin.zhengzai.candy.service; package com.liquidnet.client.admin.zhengzai.candy.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.candy.dto.admin.CandyCouponFilterDto;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
import java.util.List;
public interface ICandyCouponAdminService extends IService<CandyCoupon> { public interface ICandyCouponAdminService extends IService<CandyCoupon> {
List<CandyCouponFilterDto> listForCouponFilterDto(CandyCouponListParam listParam);
} }
...@@ -2,11 +2,22 @@ package com.liquidnet.client.admin.zhengzai.candy.service.impl; ...@@ -2,11 +2,22 @@ package com.liquidnet.client.admin.zhengzai.candy.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService; import com.liquidnet.client.admin.zhengzai.candy.service.ICandyCouponAdminService;
import com.liquidnet.service.candy.dto.admin.CandyCouponFilterDto;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
import com.liquidnet.service.candy.mapper.CandyCouponMapper; import com.liquidnet.service.candy.mapper.CandyCouponMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
@Service @Service
public class CandyCouponAdminServiceImpl extends ServiceImpl<CandyCouponMapper, CandyCoupon> implements ICandyCouponAdminService { public class CandyCouponAdminServiceImpl extends ServiceImpl<CandyCouponMapper, CandyCoupon> implements ICandyCouponAdminService {
@Autowired
private CandyCouponMapper candyCouponMapper;
@Override
public List<CandyCouponFilterDto> listForCouponFilterDto(CandyCouponListParam listParam) {
return candyCouponMapper.selectMultiForCouponFilterDto(listParam);
}
} }
package com.liquidnet.service.candy.dto.admin; package com.liquidnet.service.candy.dto.admin;
import com.liquidnet.service.candy.entity.CandyCoupon;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
@Data @Data
public class CandyCouponFilterDto implements Serializable, Cloneable { public class CandyCouponFilterDto implements Serializable, Cloneable {
private static final long serialVersionUID = -3287018184399499549L; private static final long serialVersionUID = -3287018184399499549L;
private String couponId; private String couponId;
private String title; private String title;
private String notice;
private Integer busiType;
private Integer couType;
private Integer bindType;
private BigDecimal discount;
private BigDecimal valFace;
private BigDecimal valOver;
private BigDecimal valMinus;
private String busiName;
private static final CandyCouponFilterDto obj = new CandyCouponFilterDto(); private static final CandyCouponFilterDto obj = new CandyCouponFilterDto();
...@@ -20,11 +30,4 @@ public class CandyCouponFilterDto implements Serializable, Cloneable { ...@@ -20,11 +30,4 @@ public class CandyCouponFilterDto implements Serializable, Cloneable {
return new CandyCouponFilterDto(); return new CandyCouponFilterDto();
} }
} }
public CandyCouponFilterDto copy(CandyCoupon source) {
if (null == source) return this;
this.setCouponId(source.getCouponId());
this.setTitle(source.getTitle());
return this;
}
} }
package com.liquidnet.service.candy.mapper; package com.liquidnet.service.candy.mapper;
import com.liquidnet.service.candy.dto.admin.CandyCouponFilterDto;
import com.liquidnet.service.candy.dto.admin.CandyCouponListParam;
import com.liquidnet.service.candy.entity.CandyCoupon; import com.liquidnet.service.candy.entity.CandyCoupon;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/** /**
* <p> * <p>
* 券基础信息 Mapper 接口 * 券基础信息 Mapper 接口
...@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface CandyCouponMapper extends BaseMapper<CandyCoupon> { public interface CandyCouponMapper extends BaseMapper<CandyCoupon> {
List<CandyCouponFilterDto> selectMultiForCouponFilterDto(CandyCouponListParam listParam);
} }
...@@ -2,4 +2,37 @@ ...@@ -2,4 +2,37 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liquidnet.service.candy.mapper.CandyCouponMapper"> <mapper namespace="com.liquidnet.service.candy.mapper.CandyCouponMapper">
<select id="selectMultiForCouponFilterDto" parameterType="com.liquidnet.service.candy.dto.admin.CandyCouponListParam"
resultType="com.liquidnet.service.candy.dto.admin.CandyCouponFilterDto">
SELECT DISTINCT cc.coupon_id couponId,
cc.title,
cc.notice,
cc.cou_type couType,
cc.busi_type busiType,
cc.bind_type bindType,
cc.val_face valFace,
cc.val_over valOver,
cc.val_minus valMinus,
cc.discount,
ccr.busi_name busiName
FROM candy_coupon cc
LEFT JOIN candy_coupon_rule ccr ON cc.coupon_id = ccr.coupon_id
<where>
cc.state = 1 AND ccr.state = 1
<if test="couType != null">
AND cc.cou_type=#{couType,jdbcType=SMALLINT}
</if>
<if test="bindType != null">
AND cc.bind_type in (${bindType})
</if>
<if test="busiType != null">
AND cc.busi_type = #{busiType,jdbcType=SMALLINT}
</if>
<if test="keyword != null and keyword != ''">
AND INSTR(CONCAT(cc.title, cc.notice, ccr.busi_name), #{keyword,jdbcType=VARCHAR})
</if>
</where>
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment