前台商品、品牌接口完善
This commit is contained in:
parent
6ff6d4c92f
commit
5f4a378347
@ -0,0 +1,60 @@
|
|||||||
|
package com.macro.mall.portal.controller;
|
||||||
|
|
||||||
|
import com.macro.mall.common.api.CommonPage;
|
||||||
|
import com.macro.mall.common.api.CommonResult;
|
||||||
|
import com.macro.mall.model.PmsProduct;
|
||||||
|
import com.macro.mall.portal.domain.PmsPortalProductDetail;
|
||||||
|
import com.macro.mall.portal.domain.PmsProductCategoryNode;
|
||||||
|
import com.macro.mall.portal.service.PmsPortalProductService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前台商品管理Controller
|
||||||
|
* Created by macro on 2020/4/6.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@Api(tags = "PmsPortalProductController", description = "前台商品管理")
|
||||||
|
@RequestMapping("/product")
|
||||||
|
public class PmsPortalProductController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PmsPortalProductService portalProductService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "综合搜索、筛选、排序")
|
||||||
|
@ApiImplicitParam(name = "sort", value = "排序字段:0->按相关度;1->按新品;2->按销量;3->价格从低到高;4->价格从高到低",
|
||||||
|
defaultValue = "0", allowableValues = "0,1,2,3,4", paramType = "query", dataType = "integer")
|
||||||
|
@RequestMapping(value = "/search", method = RequestMethod.GET)
|
||||||
|
@ResponseBody
|
||||||
|
public CommonResult<CommonPage<PmsProduct>> search(@RequestParam(required = false) String keyword,
|
||||||
|
@RequestParam(required = false) Long brandId,
|
||||||
|
@RequestParam(required = false) Long productCategoryId,
|
||||||
|
@RequestParam(required = false, defaultValue = "0") Integer pageNum,
|
||||||
|
@RequestParam(required = false, defaultValue = "5") Integer pageSize,
|
||||||
|
@RequestParam(required = false, defaultValue = "0") Integer sort) {
|
||||||
|
List<PmsProduct> productList = portalProductService.search(keyword, brandId, productCategoryId, pageNum, pageSize, sort);
|
||||||
|
return CommonResult.success(CommonPage.restPage(productList));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("以树形结构获取所有商品分类")
|
||||||
|
@RequestMapping(value = "/categoryTreeList", method = RequestMethod.GET)
|
||||||
|
@ResponseBody
|
||||||
|
public CommonResult<List<PmsProductCategoryNode>> categoryTreeList() {
|
||||||
|
List<PmsProductCategoryNode> list = portalProductService.categoryTreeList();
|
||||||
|
return CommonResult.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("获取前台商品详情")
|
||||||
|
@RequestMapping(value = "/detail/{id}", method = RequestMethod.GET)
|
||||||
|
@ResponseBody
|
||||||
|
public CommonResult<PmsPortalProductDetail> detail(@PathVariable Long id) {
|
||||||
|
PmsPortalProductDetail productDetail = portalProductService.detail(id);
|
||||||
|
return CommonResult.success(productDetail);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package com.macro.mall.portal.controller;
|
||||||
|
|
||||||
|
import com.macro.mall.common.api.CommonPage;
|
||||||
|
import com.macro.mall.common.api.CommonResult;
|
||||||
|
import com.macro.mall.model.PmsBrand;
|
||||||
|
import com.macro.mall.model.PmsProduct;
|
||||||
|
import com.macro.mall.portal.service.PortalBrandService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首页品牌推荐管理Controller
|
||||||
|
* Created by macro on 2020/5/15.
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@Api(tags = "PortalBrandController", description = "前台品牌管理")
|
||||||
|
@RequestMapping("/brand")
|
||||||
|
public class PortalBrandController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PortalBrandService homeBrandService;
|
||||||
|
|
||||||
|
@ApiOperation("分页获取推荐品牌")
|
||||||
|
@RequestMapping(value = "/recommendList", method = RequestMethod.GET)
|
||||||
|
@ResponseBody
|
||||||
|
public CommonResult<List<PmsBrand>> recommendList(@RequestParam(value = "pageSize", defaultValue = "6") Integer pageSize,
|
||||||
|
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
|
||||||
|
List<PmsBrand> brandList = homeBrandService.recommendList(pageNum, pageSize);
|
||||||
|
return CommonResult.success(brandList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("获取品牌详情")
|
||||||
|
@RequestMapping(value = "/detail/{brandId}", method = RequestMethod.GET)
|
||||||
|
@ResponseBody
|
||||||
|
public CommonResult<PmsBrand> detail(@PathVariable Long brandId) {
|
||||||
|
PmsBrand brand = homeBrandService.detail(brandId);
|
||||||
|
return CommonResult.success(brand);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("分页获取品牌相关商品")
|
||||||
|
@RequestMapping(value = "/productList", method = RequestMethod.GET)
|
||||||
|
@ResponseBody
|
||||||
|
public CommonResult<CommonPage<PmsProduct>> productList(@RequestParam Long brandId,
|
||||||
|
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
|
||||||
|
@RequestParam(value = "pageSize", defaultValue = "6") Integer pageSize) {
|
||||||
|
CommonPage<PmsProduct> result = homeBrandService.productList(brandId,pageNum, pageSize);
|
||||||
|
return CommonResult.success(result);
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package com.macro.mall.portal.dao;
|
package com.macro.mall.portal.dao;
|
||||||
|
|
||||||
|
import com.macro.mall.model.SmsCoupon;
|
||||||
import com.macro.mall.portal.domain.CartProduct;
|
import com.macro.mall.portal.domain.CartProduct;
|
||||||
import com.macro.mall.portal.domain.PromotionProduct;
|
import com.macro.mall.portal.domain.PromotionProduct;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@ -13,4 +14,5 @@ import java.util.List;
|
|||||||
public interface PortalProductDao {
|
public interface PortalProductDao {
|
||||||
CartProduct getCartProduct(@Param("id") Long id);
|
CartProduct getCartProduct(@Param("id") Long id);
|
||||||
List<PromotionProduct> getPromotionProductList(@Param("ids") List<Long> ids);
|
List<PromotionProduct> getPromotionProductList(@Param("ids") List<Long> ids);
|
||||||
|
List<SmsCoupon> getAvailableCouponList(@Param("productId") Long productId,@Param("productCategoryId")Long productCategoryId);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
package com.macro.mall.portal.domain;
|
||||||
|
|
||||||
|
import com.macro.mall.model.*;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前台商品详情
|
||||||
|
* Created by macro on 2020/4/6.
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class PmsPortalProductDetail{
|
||||||
|
@ApiModelProperty("商品信息")
|
||||||
|
private PmsProduct product;
|
||||||
|
@ApiModelProperty("商品品牌")
|
||||||
|
private PmsBrand brand;
|
||||||
|
@ApiModelProperty("商品属性与参数")
|
||||||
|
private List<PmsProductAttribute> productAttributeList;
|
||||||
|
@ApiModelProperty("手动录入的商品属性与参数值")
|
||||||
|
private List<PmsProductAttributeValue> productAttributeValueList;
|
||||||
|
@ApiModelProperty("商品的sku库存信息")
|
||||||
|
private List<PmsSkuStock> skuStockList;
|
||||||
|
@ApiModelProperty("商品阶梯价格设置")
|
||||||
|
private List<PmsProductLadder> productLadderList;
|
||||||
|
@ApiModelProperty("商品满减价格设置")
|
||||||
|
private List<PmsProductFullReduction> productFullReductionList;
|
||||||
|
@ApiModelProperty("商品可用优惠券")
|
||||||
|
private List<SmsCoupon> couponList;
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.macro.mall.portal.domain;
|
||||||
|
|
||||||
|
import com.macro.mall.model.PmsProductCategory;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品分类,包含子分类
|
||||||
|
* Created by macro on 2020/4/6.
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class PmsProductCategoryNode extends PmsProductCategory {
|
||||||
|
private List<PmsProductCategoryNode> children;
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.macro.mall.portal.service;
|
||||||
|
|
||||||
|
import com.macro.mall.model.PmsProduct;
|
||||||
|
import com.macro.mall.portal.domain.PmsPortalProductDetail;
|
||||||
|
import com.macro.mall.portal.domain.PmsProductCategoryNode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前台商品管理Service
|
||||||
|
* Created by macro on 2020/4/6.
|
||||||
|
*/
|
||||||
|
public interface PmsPortalProductService {
|
||||||
|
/**
|
||||||
|
* 综合搜索商品
|
||||||
|
*/
|
||||||
|
List<PmsProduct> search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize, Integer sort);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 以树形结构获取所有商品分类
|
||||||
|
*/
|
||||||
|
List<PmsProductCategoryNode> categoryTreeList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取前台商品详情
|
||||||
|
*/
|
||||||
|
PmsPortalProductDetail detail(Long id);
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.macro.mall.portal.service;
|
||||||
|
|
||||||
|
import com.macro.mall.common.api.CommonPage;
|
||||||
|
import com.macro.mall.model.PmsBrand;
|
||||||
|
import com.macro.mall.model.PmsProduct;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前台品牌管理Service
|
||||||
|
* Created by macro on 2020/5/15.
|
||||||
|
*/
|
||||||
|
public interface PortalBrandService {
|
||||||
|
/**
|
||||||
|
* 分页获取推荐品牌
|
||||||
|
*/
|
||||||
|
List<PmsBrand> recommendList(Integer pageNum, Integer pageSize);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取品牌详情
|
||||||
|
*/
|
||||||
|
PmsBrand detail(Long brandId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页获取品牌关联商品
|
||||||
|
*/
|
||||||
|
CommonPage<PmsProduct> productList(Long brandId, Integer pageNum, Integer pageSize);
|
||||||
|
}
|
@ -0,0 +1,142 @@
|
|||||||
|
package com.macro.mall.portal.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import com.macro.mall.mapper.*;
|
||||||
|
import com.macro.mall.model.*;
|
||||||
|
import com.macro.mall.portal.dao.PortalProductDao;
|
||||||
|
import com.macro.mall.portal.domain.PmsPortalProductDetail;
|
||||||
|
import com.macro.mall.portal.domain.PmsProductCategoryNode;
|
||||||
|
import com.macro.mall.portal.service.PmsPortalProductService;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前台订单管理Service实现类
|
||||||
|
* Created by macro on 2020/4/6.
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class PmsPortalProductServiceImpl implements PmsPortalProductService {
|
||||||
|
@Autowired
|
||||||
|
private PmsProductMapper productMapper;
|
||||||
|
@Autowired
|
||||||
|
private PmsProductCategoryMapper productCategoryMapper;
|
||||||
|
@Autowired
|
||||||
|
private PmsBrandMapper brandMapper;
|
||||||
|
@Autowired
|
||||||
|
private PmsProductAttributeMapper productAttributeMapper;
|
||||||
|
@Autowired
|
||||||
|
private PmsProductAttributeValueMapper productAttributeValueMapper;
|
||||||
|
@Autowired
|
||||||
|
private PmsSkuStockMapper skuStockMapper;
|
||||||
|
@Autowired
|
||||||
|
private PmsProductLadderMapper productLadderMapper;
|
||||||
|
@Autowired
|
||||||
|
private PmsProductFullReductionMapper productFullReductionMapper;
|
||||||
|
@Autowired
|
||||||
|
private PortalProductDao portalProductDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PmsProduct> search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize, Integer sort) {
|
||||||
|
PageHelper.startPage(pageNum, pageSize);
|
||||||
|
PmsProductExample example = new PmsProductExample();
|
||||||
|
PmsProductExample.Criteria criteria = example.createCriteria();
|
||||||
|
criteria.andDeleteStatusEqualTo(0);
|
||||||
|
if (StrUtil.isNotEmpty(keyword)) {
|
||||||
|
criteria.andNameLike("%" + keyword + "%");
|
||||||
|
}
|
||||||
|
if (brandId != null) {
|
||||||
|
criteria.andBrandIdEqualTo(brandId);
|
||||||
|
}
|
||||||
|
if (productCategoryId != null) {
|
||||||
|
criteria.andProductCategoryIdEqualTo(productCategoryId);
|
||||||
|
}
|
||||||
|
//1->按新品;2->按销量;3->价格从低到高;4->价格从高到低
|
||||||
|
if (sort == 1) {
|
||||||
|
example.setOrderByClause("id desc");
|
||||||
|
} else if (sort == 2) {
|
||||||
|
example.setOrderByClause("sale desc");
|
||||||
|
} else if (sort == 3) {
|
||||||
|
example.setOrderByClause("price asc");
|
||||||
|
} else if (sort == 4) {
|
||||||
|
example.setOrderByClause("price desc");
|
||||||
|
}
|
||||||
|
return productMapper.selectByExample(example);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PmsProductCategoryNode> categoryTreeList() {
|
||||||
|
PmsProductCategoryExample example = new PmsProductCategoryExample();
|
||||||
|
List<PmsProductCategory> allList = productCategoryMapper.selectByExample(example);
|
||||||
|
List<PmsProductCategoryNode> result = allList.stream()
|
||||||
|
.filter(item -> item.getParentId().equals(0L))
|
||||||
|
.map(item -> covert(item, allList)).collect(Collectors.toList());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PmsPortalProductDetail detail(Long id) {
|
||||||
|
PmsPortalProductDetail result = new PmsPortalProductDetail();
|
||||||
|
//获取商品信息
|
||||||
|
PmsProduct product = productMapper.selectByPrimaryKey(id);
|
||||||
|
result.setProduct(product);
|
||||||
|
//获取品牌信息
|
||||||
|
PmsBrand brand = brandMapper.selectByPrimaryKey(product.getBrandId());
|
||||||
|
result.setBrand(brand);
|
||||||
|
//获取商品属性信息
|
||||||
|
PmsProductAttributeExample attributeExample = new PmsProductAttributeExample();
|
||||||
|
attributeExample.createCriteria().andProductAttributeCategoryIdEqualTo(product.getProductAttributeCategoryId());
|
||||||
|
List<PmsProductAttribute> productAttributeList = productAttributeMapper.selectByExample(attributeExample);
|
||||||
|
result.setProductAttributeList(productAttributeList);
|
||||||
|
//获取商品属性值信息
|
||||||
|
if(CollUtil.isNotEmpty(productAttributeList)){
|
||||||
|
List<Long> attributeIds = productAttributeList.stream().map(PmsProductAttribute::getId).collect(Collectors.toList());
|
||||||
|
PmsProductAttributeValueExample attributeValueExample = new PmsProductAttributeValueExample();
|
||||||
|
attributeValueExample.createCriteria().andProductIdEqualTo(product.getId())
|
||||||
|
.andProductAttributeIdIn(attributeIds);
|
||||||
|
List<PmsProductAttributeValue> productAttributeValueList = productAttributeValueMapper.selectByExample(attributeValueExample);
|
||||||
|
result.setProductAttributeValueList(productAttributeValueList);
|
||||||
|
}
|
||||||
|
//获取商品SKU库存信息
|
||||||
|
PmsSkuStockExample skuExample = new PmsSkuStockExample();
|
||||||
|
skuExample.createCriteria().andProductIdEqualTo(product.getId());
|
||||||
|
List<PmsSkuStock> skuStockList = skuStockMapper.selectByExample(skuExample);
|
||||||
|
result.setSkuStockList(skuStockList);
|
||||||
|
//商品阶梯价格设置
|
||||||
|
if(product.getPromotionType()==3){
|
||||||
|
PmsProductLadderExample ladderExample = new PmsProductLadderExample();
|
||||||
|
ladderExample.createCriteria().andProductIdEqualTo(product.getId());
|
||||||
|
List<PmsProductLadder> productLadderList = productLadderMapper.selectByExample(ladderExample);
|
||||||
|
result.setProductLadderList(productLadderList);
|
||||||
|
}
|
||||||
|
//商品满减价格设置
|
||||||
|
if(product.getPromotionType()==4){
|
||||||
|
PmsProductFullReductionExample fullReductionExample = new PmsProductFullReductionExample();
|
||||||
|
fullReductionExample.createCriteria().andProductIdEqualTo(product.getId());
|
||||||
|
List<PmsProductFullReduction> productFullReductionList = productFullReductionMapper.selectByExample(fullReductionExample);
|
||||||
|
result.setProductFullReductionList(productFullReductionList);
|
||||||
|
}
|
||||||
|
//商品可用优惠券
|
||||||
|
result.setCouponList(portalProductDao.getAvailableCouponList(product.getId(),product.getProductCategoryId()));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始对象转化为节点对象
|
||||||
|
*/
|
||||||
|
private PmsProductCategoryNode covert(PmsProductCategory item, List<PmsProductCategory> allList) {
|
||||||
|
PmsProductCategoryNode node = new PmsProductCategoryNode();
|
||||||
|
BeanUtils.copyProperties(item, node);
|
||||||
|
List<PmsProductCategoryNode> children = allList.stream()
|
||||||
|
.filter(subItem -> subItem.getParentId().equals(item.getId()))
|
||||||
|
.map(subItem -> covert(subItem, allList)).collect(Collectors.toList());
|
||||||
|
node.setChildren(children);
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
package com.macro.mall.portal.service.impl;
|
||||||
|
|
||||||
|
import com.github.pagehelper.PageHelper;
|
||||||
|
import com.macro.mall.common.api.CommonPage;
|
||||||
|
import com.macro.mall.mapper.PmsBrandMapper;
|
||||||
|
import com.macro.mall.mapper.PmsProductMapper;
|
||||||
|
import com.macro.mall.model.PmsBrand;
|
||||||
|
import com.macro.mall.model.PmsProduct;
|
||||||
|
import com.macro.mall.model.PmsProductExample;
|
||||||
|
import com.macro.mall.portal.dao.HomeDao;
|
||||||
|
import com.macro.mall.portal.service.PortalBrandService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前台品牌管理Service实现类
|
||||||
|
* Created by macro on 2020/5/15.
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class PortalBrandServiceImpl implements PortalBrandService {
|
||||||
|
@Autowired
|
||||||
|
private HomeDao homeDao;
|
||||||
|
@Autowired
|
||||||
|
private PmsBrandMapper brandMapper;
|
||||||
|
@Autowired
|
||||||
|
private PmsProductMapper productMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PmsBrand> recommendList(Integer pageNum, Integer pageSize) {
|
||||||
|
int offset = (pageNum - 1) * pageSize;
|
||||||
|
return homeDao.getRecommendBrandList(offset, pageSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PmsBrand detail(Long brandId) {
|
||||||
|
return brandMapper.selectByPrimaryKey(brandId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonPage<PmsProduct> productList(Long brandId, Integer pageNum, Integer pageSize) {
|
||||||
|
PageHelper.startPage(pageNum,pageSize);
|
||||||
|
PmsProductExample example = new PmsProductExample();
|
||||||
|
example.createCriteria().andDeleteStatusEqualTo(0)
|
||||||
|
.andBrandIdEqualTo(brandId);
|
||||||
|
List<PmsProduct> productList = productMapper.selectByExample(example);
|
||||||
|
return CommonPage.restPage(productList);
|
||||||
|
}
|
||||||
|
}
|
@ -29,6 +29,8 @@ secure:
|
|||||||
- /actuator/**
|
- /actuator/**
|
||||||
- /sso/**
|
- /sso/**
|
||||||
- /home/**
|
- /home/**
|
||||||
|
- /product/**
|
||||||
|
- /brand/**
|
||||||
|
|
||||||
# 自定义redis key
|
# 自定义redis key
|
||||||
redis:
|
redis:
|
||||||
|
@ -72,4 +72,31 @@
|
|||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getAvailableCouponList" resultMap="com.macro.mall.mapper.SmsCouponMapper.BaseResultMap">
|
||||||
|
SELECT *
|
||||||
|
FROM sms_coupon
|
||||||
|
WHERE use_type = 0
|
||||||
|
AND start_time < NOW()
|
||||||
|
AND end_time > NOW()
|
||||||
|
UNION
|
||||||
|
(
|
||||||
|
SELECT c.*
|
||||||
|
FROM sms_coupon_product_category_relation cpc
|
||||||
|
LEFT JOIN sms_coupon c ON cpc.coupon_id = c.id
|
||||||
|
WHERE c.use_type = 1
|
||||||
|
AND c.start_time < NOW()
|
||||||
|
AND c.end_time > NOW()
|
||||||
|
AND cpc.product_category_id = #{productCategoryId}
|
||||||
|
)
|
||||||
|
UNION
|
||||||
|
(
|
||||||
|
SELECT c.*
|
||||||
|
FROM sms_coupon_product_relation cp
|
||||||
|
LEFT JOIN sms_coupon c ON cp.coupon_id = c.id
|
||||||
|
WHERE c.use_type = 2
|
||||||
|
AND c.start_time < NOW()
|
||||||
|
AND c.end_time > NOW()
|
||||||
|
AND cp.product_id = #{productId}
|
||||||
|
)
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
Loading…
x
Reference in New Issue
Block a user