ソースを参照

提交630第二阶段菜单配置

chenxiaofei 6 日 前
コミット
cdd0064004

+ 4 - 4
sckw-modules/sckw-operation/src/main/resources/bootstrap-cxf.yml

@@ -3,16 +3,16 @@ spring:
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: @nacos.server@
+        server-addr: 118.116.4.155:8848
         # 命名空间
-        namespace: @nacos.namespace@
+        namespace: sckw-ng-service-platform-xf
         # 共享配置
         group: sckw-ng-service-platform
       config:
         # 配置中心地址
-        server-addr: @nacos.server@
+        server-addr: 118.116.4.155:8848
         # 命名空间
-        namespace: @nacos.namespace@
+        namespace: sckw-ng-service-platform-xf
         # 共享配置
         group: sckw-ng-service-platform
         # 配置文件格式

+ 4 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/GoodsDetailVo.java

@@ -179,6 +179,10 @@ public class GoodsDetailVo {
 
     @Schema(description = "是否签约")
     private boolean signFlag;
+
+    @Schema(description = "是否展示立即下单按钮")
+    private boolean showOrderButtonFlag;
+
     @Schema(description = "供应商信息")
     private GoodsEntInfo goodsEntInfo;
 

+ 23 - 5
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -415,12 +415,15 @@ public class KwpGoodsService {
         detail.setImages(images).setPrice(price).setGoodsEntInfo(goodsEntInfo).setAttributes(attributes).setAddressInfo(addressInfo);
         Long entId = LoginUserHolder.getEntId();
         detail.setSignFlag(false);
+        detail.setShowOrderButtonFlag(false);
         if (Objects.nonNull(entId)) {
-            TradeContractGoodsDto tradeContractResDto = remoteContractService.queryTradeContractNew(entId, id, LocalDateTime.now());
+            LocalDateTime now = LocalDateTime.now();
+            TradeContractGoodsDto tradeContractResDto = remoteContractService.queryTradeContractNew(entId, id, now);
             if (Objects.nonNull(tradeContractResDto)) {
                 detail.setSignPrice(tradeContractResDto.getPrice());
                 detail.setSignFlag(true);
             }
+            detail.setShowOrderButtonFlag(Objects.nonNull(queryOrderButtonTradeContract(entId, id, now, tradeContractResDto)));
         }
         return detail;
     }
@@ -1570,16 +1573,31 @@ public class KwpGoodsService {
                     materials.setSignPrice(tradeContractResDto.getPrice());
                     materials.setSignFlag(true);
                 }
-                TradeContractGoodsDto orderButtonContractDto = Objects.nonNull(tradeContractResDto)
-                        ? tradeContractResDto
-                        : remoteContractService.queryTradeContractNewByEnt(entId, e.getId(), LocalDateTime.now());
-                materials.setShowOrderButtonFlag(Objects.nonNull(orderButtonContractDto));
+                materials.setShowOrderButtonFlag(Objects.nonNull(queryOrderButtonTradeContract(entId, e.getId(), LocalDateTime.now(), tradeContractResDto)));
             }
             result.add(materials);
         });
         return result;
     }
 
+    /**
+     * 查询当前企业是否存在可用于展示立即下单按钮的有效贸易合同商品。
+     *
+     * @param entId             当前登录企业ID
+     * @param goodsId           商品ID
+     * @param time              当前时间
+     * @param buyerContractGoods 当前企业作为买方时已查询到的合同商品
+     * @return 可展示立即下单按钮的贸易合同商品,未签有效合同则返回null
+     */
+    private TradeContractGoodsDto queryOrderButtonTradeContract(Long entId, Long goodsId, LocalDateTime time, TradeContractGoodsDto buyerContractGoods) {
+        if (Objects.isNull(entId) || Objects.isNull(goodsId) || Objects.isNull(time)) {
+            return null;
+        }
+        return Objects.nonNull(buyerContractGoods)
+                ? buyerContractGoods
+                : remoteContractService.queryTradeContractNewByEnt(entId, goodsId, time);
+    }
+
     public List<BuildingMaterialsMarketList> hootGoods() {
         LocalDateTime now = LocalDateTime.now();
         LocalDateTime start = now.minusDays(30);

+ 30 - 0
sckw-modules/sckw-product/src/test/java/com/sckw/product/model/vo/res/GoodsDetailVoTest.java

@@ -0,0 +1,30 @@
+package com.sckw.product.model.vo.res;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.math.BigDecimal;
+
+/**
+ * 商品详情响应单元测试。
+ */
+public class GoodsDetailVoTest {
+
+    /**
+     * 校验立即下单按钮展示标识默认不展示,并支持链式赋值。
+     */
+    @Test
+    public void showOrderButtonFlagShouldDefaultFalseAndSupportSetter() {
+        GoodsDetailVo detailVo = new GoodsDetailVo();
+
+        Assert.assertFalse(detailVo.isShowOrderButtonFlag());
+
+        detailVo.setSignPrice(new BigDecimal("12.34"))
+                .setSignFlag(true)
+                .setShowOrderButtonFlag(true);
+
+        Assert.assertTrue(detailVo.isSignFlag());
+        Assert.assertTrue(detailVo.isShowOrderButtonFlag());
+        Assert.assertEquals(new BigDecimal("12.34"), detailVo.getSignPrice());
+    }
+}