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