diff --git a/dating-agency-mall-server/pom.xml b/dating-agency-mall-server/pom.xml index 5a0b602..7f85327 100644 --- a/dating-agency-mall-server/pom.xml +++ b/dating-agency-mall-server/pom.xml @@ -61,6 +61,11 @@ dating-agency-mall-entity 0.0.1-SNAPSHOT + + com.qniao + dating-agency-uec-entity + 0.0.1-SNAPSHOT + diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java new file mode 100644 index 0000000..39e44b3 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java @@ -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 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); + } + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserPageProductByOperatorQueryParam.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserPageProductByOperatorQueryParam.java new file mode 100644 index 0000000..3914059 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserPageProductByOperatorQueryParam.java @@ -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; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserPageProductByOperatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserPageProductByOperatorVo.java new file mode 100644 index 0000000..9663001 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserPageProductByOperatorVo.java @@ -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; + +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java new file mode 100644 index 0000000..81dfbc3 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java @@ -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 pageProductByOperator(Page pageWithoutOrders, + @Param("queryParam") UserPageProductByOperatorQueryParam queryParam); +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java new file mode 100644 index 0000000..95d828e --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java @@ -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 pageProductByOperator(PageUtil pageUtil, UserPageProductByOperatorQueryParam queryParam); +} diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java new file mode 100644 index 0000000..0e7c3b3 --- /dev/null +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java @@ -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 pageProductByOperator(PageUtil pageUtil, + UserPageProductByOperatorQueryParam queryParam) { + return productViewDao.pageProductByOperator(pageUtil.toPageWithoutOrders(), queryParam); + } +} diff --git a/dating-agency-mall-server/src/main/resources/mapper/product/ProductViewMapper.xml b/dating-agency-mall-server/src/main/resources/mapper/product/ProductViewMapper.xml new file mode 100644 index 0000000..9748302 --- /dev/null +++ b/dating-agency-mall-server/src/main/resources/mapper/product/ProductViewMapper.xml @@ -0,0 +1,34 @@ + + + + + + + +