Bläddra i källkod

refactor(marketing): 修改商品列表价格查询接口返回类型

-将 MercCouponFactory 接口中的 goodsListPrice 方法返回类型从 List<JMap<String, Object>> 修改为 JMap<String, Object>
- 更新 MercCouponFactoryBase 和 MercCouponFactoryV2 实现类中的 goodsListPrice 方法
- 修改方法内部逻辑,将处理后的商品列表放回参数对象中并返回
hechunping 3 månader sedan
förälder
incheckning
e3f2c06524

+ 45 - 0
src/main/java/com/xynet/marketing/controller/member/EnquiryController.java

@@ -0,0 +1,45 @@
+package com.xynet.marketing.controller.member;
+
+import com.xynet.marketing.service.EnquiryService;
+import com.xynet.marketing.service.MercService;
+import com.xynet.marketing.utils.MemberAuthUtils;
+import com.xynet.marketing.utils.R;
+import com.xynet.marketing.utils.collections.map.JHashMap;
+import com.xynet.marketing.utils.collections.map.JMap;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * 会员询价接口
+ *
+ * @author hechunping
+ * @date 2025/2/25
+ */
+@RestController
+@RequestMapping("member/enquiry")
+@AllArgsConstructor
+@Slf4j
+@CrossOrigin(origins = "*")
+public class EnquiryController {
+
+    private EnquiryService enquiryService;
+
+    private MercService mercService;
+
+    @PostMapping("goodsListPrice")
+    public R goodsListPrice(@RequestBody JHashMap<String, Object> param, @RequestHeader Map<String, String> headers) {
+        String thirdMemberId = MemberAuthUtils.getThirdMemberId(headers);
+        param.put("thirdMemberId", thirdMemberId);
+        param.put("mercId",
+                mercService.thirdMercIdToMercId(
+                        headers.get("provider_id"),
+                        param.getString("thirdMercId"))
+        );
+        JMap<String, Object> result = enquiryService.goodsListPrice(param);
+        return R.ok(result);
+    }
+
+}

+ 13 - 0
src/main/java/com/xynet/marketing/service/EnquiryService.java

@@ -0,0 +1,13 @@
+package com.xynet.marketing.service;
+
+import com.xynet.marketing.utils.collections.map.JMap;
+
+/**
+ * 询价服务
+ *
+ * @author hechunping
+ * @date 2025/2/20
+ */
+public interface EnquiryService {
+    JMap<String, Object> goodsListPrice(JMap<String, Object> param);
+}

+ 68 - 0
src/main/java/com/xynet/marketing/service/impl/EnquiryServiceImpl.java

@@ -0,0 +1,68 @@
+package com.xynet.marketing.service.impl;
+
+import com.xynet.marketing.service.EnquiryService;
+import com.xynet.marketing.service.factory.coupon.merc.MercCouponFactory;
+import com.xynet.marketing.service.factory.promotion.PromotionFactory;
+import com.xynet.marketing.utils.Emptys;
+import com.xynet.marketing.utils.FactoryUtils;
+import com.xynet.marketing.utils.collections.map.JHashMap;
+import com.xynet.marketing.utils.collections.map.JMap;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 询价服务
+ *
+ * @author hechunping
+ * @date 2025/2/20
+ */
+@Service
+@Slf4j
+@AllArgsConstructor
+public class EnquiryServiceImpl implements EnquiryService {
+
+    public JMap<String, Object> goodsListPrice(JMap<String, Object> param) {
+        //查询当前促销活动
+        PromotionFactory promotionFactory = FactoryUtils.getService(PromotionFactory.class, "promotion_base");
+        param = promotionFactory.goodsListPrice(param);
+
+        //是否使用优惠券
+        if (Emptys.check(param.get("couponId"))) {
+            //查询优惠券
+            MercCouponFactory mercCouponFactory = FactoryUtils.getService(MercCouponFactory.class, "merc_coupon_base");
+            mercCouponFactory.goodsListPrice(param);
+        }
+        List<JMap<String, Object>> goodsList = param.getListMap("goodsList");
+        JMap<String, Object> result = new JHashMap<>();
+        List<JMap<String, Object>> resultGoodsList = new ArrayList<>();
+        Integer orderOldAmount = 0;
+        Integer orderAmount = 0;
+        for (int g = 0; g < goodsList.size(); g++) {
+            JMap<String, Object> goods = goodsList.get(g);
+            JMap<String, Object> resultGoods = new JHashMap<>();
+            resultGoods.set("goodsId", goods.get("goodsId"))
+                    .set("price", goods.get("price"))
+                    .set("priceOnsale", goods.get("priceOnsale"))
+                    .set("num", goods.get("num"))
+                    .set("msg", goods.get("msg"))
+                    .set("amount", goods.getInt("priceOnsale") * goods.getInt("num"))
+            ;
+            resultGoodsList.add(resultGoods);
+            orderOldAmount += goods.getInt("price") * goods.getInt("num");
+            orderAmount += goods.getInt("priceOnsale") * goods.getInt("num");
+        }
+        //订单原价
+        result.put("orderOldAmount", orderOldAmount);
+        //订单总价
+        result.put("orderAmount", orderAmount);
+        result.put("couponId", param.getString("couponId"));
+        result.put("resultGoodsList", resultGoodsList);
+        return result;
+    }
+
+
+}