Browse Source

基础配置

master
张彭杰 2 years ago
parent
commit
367aa8eb84
8 changed files with 190 additions and 0 deletions
  1. 5
      dating-agency-mall-server/pom.xml
  2. 32
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/ProductUserQueryController.java
  3. 15
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/request/UserPageProductByOperatorQueryParam.java
  4. 55
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/product/user/response/UserPageProductByOperatorVo.java
  5. 15
      dating-agency-mall-server/src/main/java/com/qniao/dam/infrastructure/persistent/dao/view/ProductViewDao.java
  6. 10
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/ProductQueryService.java
  7. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/product/impl/ProductQueryServiceImpl.java
  8. 34
      dating-agency-mall-server/src/main/resources/mapper/product/ProductViewMapper.xml

5
dating-agency-mall-server/pom.xml

@ -61,6 +61,11 @@
<artifactId>dating-agency-mall-entity</artifactId> <artifactId>dating-agency-mall-entity</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.qniao</groupId>
<artifactId>dating-agency-uec-entity</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

32
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<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);
}
}

15
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;
}

55
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;
}

15
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<UserPageProductByOperatorVo> pageProductByOperator(Page<Object> pageWithoutOrders,
@Param("queryParam") UserPageProductByOperatorQueryParam queryParam);
}

10
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<UserPageProductByOperatorVo> pageProductByOperator(PageUtil pageUtil, UserPageProductByOperatorQueryParam queryParam);
}

24
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<UserPageProductByOperatorVo> pageProductByOperator(PageUtil pageUtil,
UserPageProductByOperatorQueryParam queryParam) {
return productViewDao.pageProductByOperator(pageUtil.toPageWithoutOrders(), queryParam);
}
}

34
dating-agency-mall-server/src/main/resources/mapper/product/ProductViewMapper.xml

@ -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>
Loading…
Cancel
Save