Kaynağa Gözat

产品模块:获取当前app下的产品列表

wangPH 2 yıl önce
ebeveyn
işleme
390b7b7d28
22 değiştirilmiş dosya ile 157 ekleme ve 142 silme
  1. 8 8
      pdf-office-api/pdf-office-api-payment/src/main/java/cn/kdan/cloud/pdf/office/api/payment/dto/CreatOrderDTO.java
  2. 1 0
      pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/dto/ProductListDTO.java
  3. 2 1
      pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/feign/ProductApi.java
  4. 2 1
      pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/feign/hystrix/ProductHystrix.java
  5. 7 6
      pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/vo/ActivityInfoVO.java
  6. 9 0
      pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/vo/ProductVO.java
  7. 4 6
      pdf-office-payment/src/main/java/cn/kdan/cloud/pdf/office/payment/service/impl/OrdersServiceImpl.java
  8. 14 13
      pdf-office-pdf-website/src/main/java/cn/kdan/cloud/pdf/office/website/controller/ProductController.java
  9. 7 0
      pdf-office-pdf-website/src/main/java/cn/kdan/cloud/pdf/office/website/service/ProductInfoService.java
  10. 23 0
      pdf-office-pdf-website/src/main/java/cn/kdan/cloud/pdf/office/website/service/impl/ProductInfoServiceImpl.java
  11. 15 4
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/controller/ProductController.java
  12. 6 5
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/entity/ActivityInformation.java
  13. 0 28
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/entity/ActivityType.java
  14. 5 0
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/entity/Product.java
  15. 0 11
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/mapper/ActivityTypeMapper.java
  16. 2 2
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/ActivityInformationService.java
  17. 0 12
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/ActivityTypeService.java
  18. 2 2
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/impl/ActivityInformationServiceImpl.java
  19. 0 16
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/impl/ActivityTypeServiceImpl.java
  20. 26 15
      pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/impl/ProductServiceImpl.java
  21. 0 12
      pdf-office-product/src/main/resources/mapper/ActivityTypeMapper.xml
  22. 24 0
      pdf-office-product/src/test/java/cn/kdan/cloud/pdf/office/product/ProductTest.java

+ 8 - 8
pdf-office-api/pdf-office-api-payment/src/main/java/cn/kdan/cloud/pdf/office/api/payment/dto/CreatOrderDTO.java

@@ -49,13 +49,13 @@ public class CreatOrderDTO {
      * 优惠卷
      */
     private String couponCode;
-    /**
-     * 折扣
-     */
-    private BigDecimal discount;
-    /**
-     * 最终价格
-     */
-    private BigDecimal finalPrice;
+//    /**
+//     * 折扣
+//     */
+//    private BigDecimal discount;
+//    /**
+//     * 最终价格
+//     */
+//    private BigDecimal finalPrice;
 
 }

+ 1 - 0
pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/dto/ProductListDTO.java

@@ -13,5 +13,6 @@ import lombok.ToString;
 @ToString
 public class ProductListDTO extends BaseEntity {
 
+    private String appId;
 
 }

+ 2 - 1
pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/feign/ProductApi.java

@@ -29,6 +29,7 @@ public interface ProductApi {
 
 
     @GetMapping("/getProductList")
-    ResultMap<IPage<ProductVO>> getProductList(@RequestParam Long size, @RequestParam Long page);
+    ResultMap<IPage<ProductVO>> getProductList(@RequestParam Long size, @RequestParam Long page,
+                                               @RequestParam String appId);
 
 }

+ 2 - 1
pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/feign/hystrix/ProductHystrix.java

@@ -8,6 +8,7 @@ import cn.kdan.cloud.pdf.office.common.constant.CommonConstant;
 import cn.kdan.cloud.pdf.office.common.pojo.ResultMap;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.validation.constraints.NotNull;
 
@@ -26,7 +27,7 @@ public class ProductHystrix implements ProductApi {
     }
 
     @Override
-    public ResultMap<IPage<ProductVO>> getProductList(Long size, Long page) {
+    public ResultMap<IPage<ProductVO>> getProductList(Long size, Long page, String appId) {
         return new ResultMap<>(CommonConstant.ERROR, CommonConstant.RESULT_ERROR_SERVICE_NOT_AVAILABLE);
     }
 }

+ 7 - 6
pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/vo/ActivityInfoVO.java

@@ -29,7 +29,7 @@ public class ActivityInfoVO {
     /**
      * 活动类型id  1-新用户专用,2正常
      */
-    private Integer activityTypeId;
+    private Integer activityType;
     /**
      * 活动信息类容
      */
@@ -42,19 +42,20 @@ public class ActivityInfoVO {
      * 最终价格
      */
     private BigDecimal finalPrice;
+
+    /**
+     * 最终中国价格
+     */
+    private BigDecimal finalCnyPrice;
+
     /**
      * 主键id
      */
-    @TableId(type = IdType.ASSIGN_UUID)
     private String id;
     /**
      * 是否启用,1启用,0禁用
      */
     private Integer isEnable;
-    /**
-     * 产品id
-     */
-    private String productId;
 
 
 

+ 9 - 0
pdf-office-api/pdf-office-api-product/src/main/java/cn/kdan/cloud/pdf/office/api/product/vo/ProductVO.java

@@ -69,4 +69,13 @@ public class ProductVO {
      */
     private BigDecimal cnyDisplayPrice;
 
+    /**
+     * 关联活动id
+     */
+    private String activityId;
+    /**
+     * 活动信息
+     */
+    private ActivityInfoVO activityInfo;
+
 }

+ 4 - 6
pdf-office-payment/src/main/java/cn/kdan/cloud/pdf/office/payment/service/impl/OrdersServiceImpl.java

@@ -51,8 +51,6 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Order> implemen
 
     private final ProductApi productApi;
 
-    private final StringRedisTemplate redisTemplate;
-
     private final PaddleClient paddleClient;
 
     private final RabbitTemplate rabbitTemplate;
@@ -75,7 +73,7 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Order> implemen
         orders.setTradeNo(UUID.randomUUID().toString());
         orders.setStatus(OrderConstant.CREATED);
         orders.setInvoiceNo(MyDateUtils.getTimeStamp() + (int) ((Math.random() * 9 + 1) * 1000));
-        orders.setDiscount(creatOrderDTO.getDiscount());
+//        orders.setDiscount(creatOrderDTO.getDiscount());
         String readeNo = MyDateUtils.getTimeStamp() + "-" + creatOrderDTO.getProductId() + "-" + (int) ((Math.random() * 9 + 1) * 1000);
         orders.setTradeNo(readeNo);
         // 查询当前产品多少钱
@@ -199,9 +197,9 @@ public class OrdersServiceImpl extends ServiceImpl<OrdersMapper, Order> implemen
      * @return 新价格
      */
     private BigDecimal priceHandle(CreatOrderDTO creatOrderDTO, BigDecimal price, Order orders) {
-        if (!ObjectUtils.isEmpty(creatOrderDTO.getFinalPrice())) {
-            price = creatOrderDTO.getFinalPrice();
-        }
+//        if (!ObjectUtils.isEmpty(creatOrderDTO.getFinalPrice())) {
+//            price = creatOrderDTO.getFinalPrice();
+//        }
         if (!ObjectUtils.isEmpty(creatOrderDTO.getCouponCode())) {
             String couponCode = creatOrderDTO.getCouponCode();
             // TODO 优惠价查询价格

+ 14 - 13
pdf-office-pdf-website/src/main/java/cn/kdan/cloud/pdf/office/website/controller/ProductController.java

@@ -18,20 +18,21 @@ import org.springframework.web.bind.annotation.RestController;
 @RequiredArgsConstructor
 public class ProductController {
 
-    private final ProductApi productApi;
 
-    /**
-     * 获取产品列表
-     *
-     * @param size size
-     * @param page page
-     * @return ProductVOs
-     */
-    @GetMapping("list")
-    public ResultMap<IPage<ProductVO>> getProductList(@RequestParam Long size,
-                                                      @RequestParam Long page){
-        return productApi.getProductList(size,page);
-    }
+//
+//    /**
+//     * 获取产品列表
+//     *
+//     * @param size size
+//     * @param page page
+//     * @return ProductVOs
+//     */
+//    @GetMapping("list")
+//    public ResultMap<IPage<ProductVO>> getProductList(@RequestParam Long size,
+//                                                      @RequestParam Long page,
+//                                                      @RequestParam String appId){
+//        return productApi.getProductList(size,page,appId);
+//    }
 
 
 }

+ 7 - 0
pdf-office-pdf-website/src/main/java/cn/kdan/cloud/pdf/office/website/service/ProductInfoService.java

@@ -0,0 +1,7 @@
+package cn.kdan.cloud.pdf.office.website.service;
+
+/**
+ * @author ComPDFKit-WPH 2023/2/6
+ */
+public interface ProductInfoService {
+}

+ 23 - 0
pdf-office-pdf-website/src/main/java/cn/kdan/cloud/pdf/office/website/service/impl/ProductInfoServiceImpl.java

@@ -0,0 +1,23 @@
+package cn.kdan.cloud.pdf.office.website.service.impl;
+
+import cn.kdan.cloud.pdf.office.api.product.feign.ProductApi;
+import cn.kdan.cloud.pdf.office.api.product.vo.ProductVO;
+import cn.kdan.cloud.pdf.office.common.pojo.ResultMap;
+import cn.kdan.cloud.pdf.office.website.service.ProductInfoService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @author ComPDFKit-WPH 2023/2/6
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class ProductInfoServiceImpl implements ProductInfoService {
+
+    private final ProductApi productApi;
+
+}

+ 15 - 4
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/controller/ProductController.java

@@ -27,21 +27,32 @@ public class ProductController {
 
     @GetMapping("/getProductPrice")
     public ResultMap<ProductPriceVo> getProductPrice(@Validated @NotNull(message = "产品id不能为空") @RequestParam("productId") String productId,
-                                                     @NotNull(message = "userId不能为空") @RequestParam("userId") String userId){
-        return ResultMap.success(productService.getProductPrice(productId,userId));
+                                                     @NotNull(message = "userId不能为空") @RequestParam("userId") String userId) {
+        return ResultMap.success(productService.getProductPrice(productId, userId));
     }
 
 
     @GetMapping("/getProduct")
-    public ResultMap<ProductVO> getProduct(@Validated @NotNull(message = "产品id不能为空") @RequestParam("productId") String productId){
+    public ResultMap<ProductVO> getProduct(@Validated @NotNull(message = "产品id不能为空") @RequestParam("productId") String productId) {
         return ResultMap.success(productService.getProduct(productId));
     }
 
+
+    /**
+     * 获取产品列表
+     *
+     * @param size  size
+     * @param page  page
+     * @param appId appId
+     * @return ProductVO
+     */
     @GetMapping("/getProductList")
-    public ResultMap<IPage<ProductVO>> getProductList(@RequestParam Long size,@RequestParam Long page){
+    public ResultMap<IPage<ProductVO>> getProductList(@RequestParam Long size, @RequestParam Long page,
+                                                      @RequestParam String appId) {
         ProductListDTO productListDTO = new ProductListDTO();
         productListDTO.setSize(size);
         productListDTO.setPage(page);
+        productListDTO.setAppId(appId);
         return ResultMap.success(productService.page(productListDTO));
     }
 }

+ 6 - 5
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/entity/ActivityInformation.java

@@ -23,7 +23,7 @@ public class ActivityInformation extends BaseEntity{
     /**
      * 活动类型id  1-新用户专用,2正常
      */
-    private String activityTypeId;
+    private Integer activityType;
     /**
      * 活动信息类容
      */
@@ -36,6 +36,11 @@ public class ActivityInformation extends BaseEntity{
      * 最终价格
      */
     private BigDecimal finalPrice;
+    /**
+     * 最终中国价格
+     */
+    private BigDecimal finalCnyPrice;
+
     /**
      * 主键id
      */
@@ -45,9 +50,5 @@ public class ActivityInformation extends BaseEntity{
      * 是否启用,1启用,0禁用
      */
     private Integer isEnable;
-    /**
-     * 产品id
-     */
-    private String productId;
 
 }

+ 0 - 28
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/entity/ActivityType.java

@@ -1,28 +0,0 @@
-package cn.kdan.cloud.pdf.office.product.entity;
-
-import cn.kdan.cloud.pdf.office.common.base.BaseEntity;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * @author ComPDFKit-WPH 2023-01-10
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("activity_type")
-public class ActivityType extends BaseEntity {
-
-    /**
-     * 主键id
-     */
-    @TableId(type = IdType.ASSIGN_UUID)
-    private String id;
-    /**
-     * 活动类型
-     */
-    private String activityType;
-
-}

+ 5 - 0
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/entity/Product.java

@@ -79,4 +79,9 @@ public class Product extends BaseEntity{
      */
     private String paddleProductId;
 
+    /**
+     * 关联活动id
+     */
+    private String activityId;
+
 }

+ 0 - 11
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/mapper/ActivityTypeMapper.java

@@ -1,11 +0,0 @@
-package cn.kdan.cloud.pdf.office.product.mapper;
-
-import cn.kdan.cloud.pdf.office.product.entity.ActivityType;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @author ComPDFKit-WPH 2023-01-10
- */
-public interface ActivityTypeMapper extends BaseMapper<ActivityType> {
-
-}

+ 2 - 2
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/ActivityInformationService.java

@@ -19,8 +19,8 @@ public interface ActivityInformationService extends IService<ActivityInformation
     /**
      * 获取活动信息
      *
-     * @param productId productId
+     * @param ActivityId ActivityId
      * @return ActivityInfoVO
      */
-    ActivityInfoVO getActivityInfoByProductId(String productId);
+    ActivityInfoVO getActivityInfoByActivityId(String ActivityId);
 }

+ 0 - 12
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/ActivityTypeService.java

@@ -1,12 +0,0 @@
-package cn.kdan.cloud.pdf.office.product.service;
-
-import cn.kdan.cloud.pdf.office.product.entity.ActivityType;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * @author ComPDFKit-WPH 2023-01-10
- */
-public interface ActivityTypeService extends IService<ActivityType> {
-
-
-}

+ 2 - 2
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/impl/ActivityInformationServiceImpl.java

@@ -29,9 +29,9 @@ public class ActivityInformationServiceImpl extends ServiceImpl<ActivityInformat
     }
 
     @Override
-    public ActivityInfoVO getActivityInfoByProductId(String productId){
+    public ActivityInfoVO getActivityInfoByActivityId(String activityId){
         ActivityInformation activityInformation = this.baseMapper.selectOne(new LambdaQueryWrapper<ActivityInformation>()
-                .eq(ActivityInformation::getProductId, productId)
+                .eq(ActivityInformation::getId, activityId)
                 .eq(ActivityInformation::getIsEnable, 1));
         ActivityInfoVO activityInfoVO = new ActivityInfoVO();
         activityInfoVO.setActivityInfo(activityInformation.getContentInformation());

+ 0 - 16
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/impl/ActivityTypeServiceImpl.java

@@ -1,16 +0,0 @@
-package cn.kdan.cloud.pdf.office.product.service.impl;
-
-import cn.kdan.cloud.pdf.office.product.entity.ActivityType;
-import cn.kdan.cloud.pdf.office.product.mapper.ActivityTypeMapper;
-import cn.kdan.cloud.pdf.office.product.service.ActivityTypeService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * @author ComPDFKit-WPH 2023-01-10
- */
-@Service
-public class ActivityTypeServiceImpl extends ServiceImpl<ActivityTypeMapper, ActivityType> implements ActivityTypeService {
-
-
-}

+ 26 - 15
pdf-office-product/src/main/java/cn/kdan/cloud/pdf/office/product/service/impl/ProductServiceImpl.java

@@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -33,8 +34,14 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
 
     @Override
     public IPage<ProductVO> page(ProductListDTO query) {
-        Page<Product> productPage = this.page(new Page<>(query.getPage(), query.getSize()), new LambdaQueryWrapper<>());
+        Page<Product> productPage = this.page(new Page<>(query.getPage(), query.getSize()), new LambdaQueryWrapper<Product>()
+                .eq(Product::getAppId,query.getAppId()));
         List<ProductVO> productVOS = JsonUtils.jsonStringToList(JsonUtils.getJsonString(productPage.getRecords()), ProductVO.class);
+        productVOS.forEach(productVO -> {
+            if (!ObjectUtils.isEmpty(productVO.getActivityId())) {
+                productVO.setActivityInfo(activityService.getActivityInfoByActivityId(productVO.getActivityId()));
+            }
+        });
         Page<ProductVO> page = new Page<>(query.getPage(), query.getSize());
         page.setRecords(productVOS);
         return page;
@@ -42,21 +49,25 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
 
     @Override
     public ProductPriceVo getProductPrice(String productId, String userId) {
-        ProductPriceVo productPriceVo = new ProductPriceVo();
-        BeanUtils.copyProperties(this.baseMapper.selectOne(new LambdaQueryWrapper<Product>()
-                .select(Product::getPrice, Product::getCnyPrice, Product::getPaddleProductId)
-                .eq(Product::getId, productId)), productPriceVo);
+        Product product = this.baseMapper.selectOne(new LambdaQueryWrapper<Product>()
+                .select(Product::getPrice, Product::getCnyPrice, Product::getPaddleProductId,Product::getActivityId)
+                .eq(Product::getId, productId));
 
-//        // 判断当前产品是否有活动 获取活动的最终价格
-//        ActivityInfoVO activityInfo = activityService.getActivityInfoByProductId(productId);
-//        if (!ObjectUtils.isEmpty(activityInfo)) {
-//            // 判断是否是新用户专用
-//            if (activityInfo.getActivityTypeId() == 1) {
-//                // 判断当前用户是否是新用户
-//            }else {
-//                productPriceVo.setPrice(activityInfo.getFinalPrice());
-//            }
-//        }
+        ProductPriceVo productPriceVo = new ProductPriceVo();
+        productPriceVo.setPaddleProductId(product.getPaddleProductId());
+        // 判断当前产品是否有活动 获取活动的最终价格
+        if (!ObjectUtils.isEmpty(product.getActivityId())){
+            ActivityInfoVO activityInfo = activityService.getActivityInfoByActivityId(product.getActivityId());
+            // 判断是否是新用户专用
+            if (activityInfo.getActivityType() == 1){
+                // TODO 判断当前用户是否是新用户
+                productPriceVo.setPrice(BigDecimal.ONE);
+                productPriceVo.setCnyPrice(BigDecimal.ONE);
+            }else {
+                productPriceVo.setPrice(activityInfo.getFinalPrice());
+                productPriceVo.setCnyPrice(activityInfo.getFinalCnyPrice());
+            }
+        }
         return productPriceVo;
     }
 

+ 0 - 12
pdf-office-product/src/main/resources/mapper/ActivityTypeMapper.xml

@@ -1,12 +0,0 @@
-<?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="cn.kdan.cloud.pdf.office.product.mapper.ActivityTypeMapper">
-
-    <!-- 可根据自己的需求,是否要使用 -->
-    <resultMap id="ActivityTypeResultMap" type="cn.kdan.cloud.pdf.office.product.entity.ActivityType">
-        <result property="id" column="id" />
-        <result property="activityType" column="activity_type" />
-    </resultMap>
-
-</mapper>

+ 24 - 0
pdf-office-product/src/test/java/cn/kdan/cloud/pdf/office/product/ProductTest.java

@@ -0,0 +1,24 @@
+package cn.kdan.cloud.pdf.office.product;
+
+import cn.kdan.cloud.pdf.office.api.product.dto.ProductListDTO;
+import cn.kdan.cloud.pdf.office.product.service.ProductService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+/**
+ * @author ComPDFKit-WPH 2023/2/6
+ */
+@SpringBootTest
+public class ProductTest {
+    @Autowired
+    private ProductService productService;
+    @Test
+    public void testPage(){
+        ProductListDTO productListDTO = new ProductListDTO();
+        productListDTO.setPage(1L);
+        productListDTO.setSize(10L);
+        productListDTO.setAppId("1");
+        System.out.println(productService.page(productListDTO));
+    }
+}