8 changed files with 190 additions and 0 deletions
Split View
Diff Options
-
5dating-agency-mall-server/pom.xml
-
32dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java
-
15dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserPageProductByOperatorQueryParam.java
-
55dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserPageProductByOperatorVo.java
-
15dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java
-
10dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java
-
24dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java
-
34dating-agency-mall-server/src/main/resources/mapper/product/ProductViewMapper.xml
@ -0,0 +1,32 @@ |
|||
package com.qniao.dam.api.query.product.user; |
|||
|
|||
import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; |
|||
import com.qniao.dam.api.query.product.user.response.UserPageProductByOperatorVo; |
|||
import com.qniao.dam.query.product.ProductQueryService; |
|||
import com.qniao.dau.infrastructure.constant.RequestHeaderFields; |
|||
import com.qniao.domain.QnPage; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@RestController |
|||
@RequestMapping("user") |
|||
@Api(tags = "商品") |
|||
public class ProductUserQueryController { |
|||
|
|||
@Resource |
|||
private ProductQueryService productQueryService; |
|||
|
|||
@GetMapping("page/product/by/operator") |
|||
@ApiOperation("运营获取商品分页列表") |
|||
public QnPage<UserPageProductByOperatorVo> userPageProductByOperator(PageUtil pageUtil, |
|||
UserPageProductByOperatorQueryParam queryParam, |
|||
@RequestParam("userId") Long userId, |
|||
@RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID) Long orgId) { |
|||
return PageUtil.convert(productQueryService.pageProductByOperator(pageUtil, queryParam), UserPageProductByOperatorVo.class); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
package com.qniao.dam.api.query.product.user.request; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class UserPageProductByOperatorQueryParam { |
|||
|
|||
@ApiModelProperty("产品主分类") |
|||
private Integer mainCategory; |
|||
|
|||
@ApiModelProperty("产品次分类") |
|||
private Integer subCategory; |
|||
|
|||
} |
|||
@ -0,0 +1,55 @@ |
|||
package com.qniao.dam.api.query.product.user.response; |
|||
|
|||
import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
|||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; |
|||
import com.qniao.dam.domian.aggregate.product.constant.ProductMainCategoryEnum; |
|||
import com.qniao.dam.domian.aggregate.product.constant.ProductStatusEnum; |
|||
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum; |
|||
import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermUnitEnum; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
@Data |
|||
public class UserPageProductByOperatorVo { |
|||
|
|||
@ApiModelProperty("商品标识") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long productId; |
|||
|
|||
@ApiModelProperty("商品规格标识") |
|||
@JsonSerialize(using = ToStringSerializer.class) |
|||
private Long productSpecId; |
|||
|
|||
@ApiModelProperty("产品主分类") |
|||
private ProductMainCategoryEnum mainCategory; |
|||
|
|||
@ApiModelProperty("产品次分类") |
|||
private ProductSubCategoryEnum subCategory; |
|||
|
|||
@ApiModelProperty("产品标题") |
|||
private String productTitle; |
|||
|
|||
@ApiModelProperty("产品描述") |
|||
private String productDesc; |
|||
|
|||
@ApiModelProperty("详情描述") |
|||
private String detailDesc; |
|||
|
|||
@ApiModelProperty("状态(已上架、已下架)") |
|||
private ProductStatusEnum status; |
|||
|
|||
@ApiModelProperty("原价") |
|||
private BigDecimal unitOriginalPrice; |
|||
|
|||
@ApiModelProperty("售价") |
|||
private BigDecimal unitSellingPrice; |
|||
|
|||
@ApiModelProperty("产品规格(周期、次数)") |
|||
private ProductSpecTermUnitEnum productSpecUnit; |
|||
|
|||
@ApiModelProperty("有效期") |
|||
private String validityPeriodValue; |
|||
|
|||
} |
|||
@ -0,0 +1,15 @@ |
|||
package com.qniao.dam.infrastructure.persistent.dao.view; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; |
|||
import com.qniao.dam.api.query.product.user.response.UserPageProductByOperatorVo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
@Mapper |
|||
public interface ProductViewDao { |
|||
|
|||
IPage<UserPageProductByOperatorVo> pageProductByOperator(Page<Object> pageWithoutOrders, |
|||
@Param("queryParam") UserPageProductByOperatorQueryParam queryParam); |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
package com.qniao.dam.query.product; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; |
|||
import com.qniao.dam.api.query.product.user.response.UserPageProductByOperatorVo; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
|
|||
public interface ProductQueryService { |
|||
IPage<UserPageProductByOperatorVo> pageProductByOperator(PageUtil pageUtil, UserPageProductByOperatorQueryParam queryParam); |
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
package com.qniao.dam.query.product.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.qniao.dam.api.query.product.user.request.UserPageProductByOperatorQueryParam; |
|||
import com.qniao.dam.api.query.product.user.response.UserPageProductByOperatorVo; |
|||
import com.qniao.dam.infrastructure.persistent.dao.view.ProductViewDao; |
|||
import com.qniao.dam.query.product.ProductQueryService; |
|||
import com.qniao.framework.utils.PageUtil; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Service |
|||
public class ProductQueryServiceImpl implements ProductQueryService { |
|||
|
|||
@Resource |
|||
private ProductViewDao productViewDao; |
|||
|
|||
@Override |
|||
public IPage<UserPageProductByOperatorVo> pageProductByOperator(PageUtil pageUtil, |
|||
UserPageProductByOperatorQueryParam queryParam) { |
|||
return productViewDao.pageProductByOperator(pageUtil.toPageWithoutOrders(), queryParam); |
|||
} |
|||
} |
|||
@ -0,0 +1,34 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.qniao.dam.infrastructure.persistent.dao.view.ProductViewDao"> |
|||
|
|||
|
|||
<select id="pageProductByOperator" |
|||
resultType="com.qniao.dam.api.query.product.user.response.UserPageProductByOperatorVo"> |
|||
select |
|||
dp.id as productId, |
|||
dps.id as productSpecId, |
|||
dp.main_category, |
|||
dp.sub_category, |
|||
dp.product_title, |
|||
dp.product_desc, |
|||
dp.detail_desc, |
|||
dp.`status`, |
|||
dps.unit_original_price, |
|||
dps.unit_selling_price, |
|||
dpst1.unit as productSpecUnit, |
|||
dpst2.`value` as validityPeriodValue |
|||
from da_product as dp |
|||
LEFT JOIN da_product_spec as dps on dps.is_delete=0 and dps.product_id=dp.id |
|||
LEFT JOIN da_product_spec_term as dpst1 on dpst1.is_delete=0 and dpst1.product_spec_id =dps.id and dpst1.`name`=1 |
|||
LEFT JOIN da_product_spec_term as dpst2 on dpst2.is_delete=0 and dpst2.product_spec_id =dps.id and dpst2.`name`=3 |
|||
where dp.is_delete=0 |
|||
<if test="queryParam.mainCategory != null"> |
|||
AND dp.main_category = #{queryParam.mainCategory} |
|||
</if> |
|||
<if test="queryParam.subCategory != null"> |
|||
AND dp.sub_category = #{queryParam.subCategory} |
|||
</if> |
|||
</select> |
|||
</mapper> |
|||
|
|||
Write
Preview
Loading…
Cancel
Save