From 05df26e87cd7537db8fbdf67f8129862105a49fe Mon Sep 17 00:00:00 2001
From: Cool <747682928@qq.com>
Date: Sun, 1 Sep 2024 02:40:55 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=95=86=E5=93=81=E5=B1=9E?=
=?UTF-8?q?=E6=80=A7=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=BE=AE=E4=BF=A1=E5=B0=8F?=
=?UTF-8?q?=E7=A8=8B=E5=BA=8F=E4=BE=9D=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 7 +++
.../wxappserver/config/WxPayConfig.java | 50 ++++++++++++++++
.../com/bigdata/wxappserver/dto/OrderDto.java | 58 +++++++++++++++++++
.../wxappserver/service/OrderService.java | 36 +++++++++---
4 files changed, 143 insertions(+), 8 deletions(-)
create mode 100644 src/main/java/com/bigdata/wxappserver/config/WxPayConfig.java
create mode 100644 src/main/java/com/bigdata/wxappserver/dto/OrderDto.java
diff --git a/pom.xml b/pom.xml
index 5c76e3c..7dfdf99 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,6 +56,13 @@
fastjson
1.2.83
+
+
+ com.github.wxpay
+ wxpay-sdk
+ 0.0.3
+
+
diff --git a/src/main/java/com/bigdata/wxappserver/config/WxPayConfig.java b/src/main/java/com/bigdata/wxappserver/config/WxPayConfig.java
new file mode 100644
index 0000000..61662d6
--- /dev/null
+++ b/src/main/java/com/bigdata/wxappserver/config/WxPayConfig.java
@@ -0,0 +1,50 @@
+package com.bigdata.wxappserver.config;
+
+import com.github.wxpay.sdk.WXPayConfig;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @Author: Cool
+ * @Date: 2024/08/31/20:53
+ * @Description:
+ */
+public class WxPayConfig implements WXPayConfig {
+
+ private byte[] certData;
+
+ public void MyConfig() throws Exception {
+ //此处暂时用不到,这里是读取证书的地方
+ }
+
+ public String getAppID() {
+ return "这里是你的appid";
+ }
+
+ public String getMchID() {
+ //申请普通商户时分配给你的商户号
+ return "这里是你的商户号";
+ }
+
+ public String getKey() {
+ //这里的key 就是你在支付平台设置的API密钥
+ return "这是就是你的Key了";
+ }
+
+ public InputStream getCertStream() {
+ ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
+ return certBis;
+ }
+
+ public int getHttpConnectTimeoutMs() {
+ return 8000;
+ }
+
+ public int getHttpReadTimeoutMs() {
+ return 10000;
+ }
+}
+
diff --git a/src/main/java/com/bigdata/wxappserver/dto/OrderDto.java b/src/main/java/com/bigdata/wxappserver/dto/OrderDto.java
new file mode 100644
index 0000000..13817cd
--- /dev/null
+++ b/src/main/java/com/bigdata/wxappserver/dto/OrderDto.java
@@ -0,0 +1,58 @@
+package com.bigdata.wxappserver.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.bigdata.wxappserver.entity.Base;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * Created with IntelliJ IDEA.
+ *
+ * @Author: Cool
+ * @Date: 2024/09/01/2:23
+ * @Description:
+ */
+@Data
+public class OrderDto extends Base {
+ private Integer id;
+
+ private Integer userId;
+ private Integer goodsId;
+ private String address;
+ private LocalDateTime deliveryTime;
+
+ /**
+ * 订单状态 @see
+ */
+ private Integer status;
+ private String statusDescription;
+ /**
+ * 购买数量
+ */
+ private Integer num;
+ /**
+ * 商品规格
+ */
+ private String specs;
+ /**
+ * 商品名称
+ */
+ private String goodName;
+ /**
+ * 商品价格
+ */
+ private BigDecimal goodPrice;
+ /**
+ * 商品图片路径
+ */
+ private String goodImage;
+ /**
+ * 商品描述
+ */
+ private String goodDetail;
+
+}
diff --git a/src/main/java/com/bigdata/wxappserver/service/OrderService.java b/src/main/java/com/bigdata/wxappserver/service/OrderService.java
index 5fb854f..939e8db 100644
--- a/src/main/java/com/bigdata/wxappserver/service/OrderService.java
+++ b/src/main/java/com/bigdata/wxappserver/service/OrderService.java
@@ -3,17 +3,21 @@ package com.bigdata.wxappserver.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.bigdata.wxappserver.dto.OrderDto;
+import com.bigdata.wxappserver.entity.Goods;
import com.bigdata.wxappserver.entity.Order;
import com.bigdata.wxappserver.entity.User;
import com.bigdata.wxappserver.enums.OrderStatusEnum;
import com.bigdata.wxappserver.mapper.OrderMapper;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
-import java.util.Collections;
-import java.util.List;
+
+import java.util.*;
+import java.util.stream.Collectors;
/**
* Created with IntelliJ IDEA.
@@ -28,6 +32,8 @@ public class OrderService extends ServiceImpl {
@Autowired
UserService userService;
+ @Autowired
+ GoodsService goodsService;
@Transactional(rollbackFor = Exception.class)
public JSONObject addOrUpdate(JSONObject jsonObject) {
Order order = jsonObject.toJavaObject(Order.class);
@@ -52,19 +58,33 @@ public class OrderService extends ServiceImpl {
wrapper.eq(userId != null, Order::getUserId, userId);
// IPage orderIPage = page(page, wrapper);
List list = list(wrapper);
- dealList(list);
+ List orderDtoList = dealList(list);
JSONObject returnData = new JSONObject();
- returnData.fluentPut("data", list);
+ returnData.fluentPut("data", orderDtoList);
return returnData;
}
- private void dealList(List records) {
+ private List dealList(List records) {
if (CollectionUtils.isEmpty(records)) {
- return;
+ return new ArrayList<>();
}
+ List goodsList = goodsService.listByIds(records.stream().map(Order::getGoodsId).collect(Collectors.toSet()));
+ Set goodsSet =new HashSet<>(goodsList);
+ List list =new ArrayList<>();
for (Order record : records) {
+ OrderDto orderDto=new OrderDto();
record.setStatusDescription(OrderStatusEnum.describe(record.getStatus()));
+ BeanUtils.copyProperties(record,orderDto);
+ Goods goods = goodsSet.stream().filter(item -> Objects.equals(item.getId(), record.getGoodsId()))
+ .findFirst().orElse(null);
+ if(goods!=null){
+ orderDto.setGoodDetail(goods.getGoodDetail());
+ orderDto.setGoodPrice(goods.getGoodPrice());
+ orderDto.setGoodImage(goods.getGoodImage());
+ orderDto.setGoodName(goods.getGoodName());
+ }
}
+ return list;
}
@@ -73,8 +93,8 @@ public class OrderService extends ServiceImpl {
return new JSONObject().fluentPut("success", false).fluentPut("message", "缺少ID");
}
Order order = getById(id);
- dealList(Collections.singletonList(order));
- return new JSONObject().fluentPut("data", order);
+ List orderDtoList = dealList(Collections.singletonList(order));
+ return new JSONObject().fluentPut("data", orderDtoList.get(0));
}