Browse Source

小程序用户订单列表

skyline 2 năm trước cách đây
mục cha
commit
3b386dd749

+ 92 - 0
entity/src/main/java/com/kym/entity/miniapp/vo/ChargeOrderVo.java

@@ -0,0 +1,92 @@
+package com.kym.entity.miniapp.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author skyline
+ * @description 充电订单视图对象
+ * @date 2023-10-20 14:50
+ */
+@Data
+public class ChargeOrderVo {
+
+    private Long userId;
+
+    private String stationId;
+
+    /**
+     * 充电订单号(EN+)
+     */
+    private String startChargeSeq;
+
+    /**
+     * 充电设备接口编码(EN+)
+     */
+    private String connectorId;
+
+    /**
+     * 充电开始时间
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    /**
+     * 充电结束时间
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+    /**
+     * 累积充电量(度)
+     */
+    private Double totalPower;
+
+    /**
+     * 累积总金额(元)
+     */
+    private Integer totalMoney;
+
+    /**
+     * 累积电费(元)
+     */
+    private Integer elecMoney;
+
+    /**
+     * 累积服务费(元)
+     */
+    private Integer serviceMoney;
+
+    /**
+     * 实付金额(分)
+     */
+    private Integer payAmount;
+
+    /**
+     * 优惠金额(分)
+     */
+    private Integer discountAmount;
+
+    /**
+     * 服务费优惠抵扣金额(分)
+     */
+    private Integer serviceMoneyDiscount;
+
+    /**
+     * 充电状态:1:启动中 2:充电中 3:停止中 4:已结束 5:未知
+     */
+    private Integer chargeStatus;
+
+    /**
+     * 发票状态:0:未开票 1:已开票
+     */
+    private Integer invoiceStatus;
+
+    /**
+     * 发票id
+     */
+    private Integer invoiceId;
+
+}

+ 35 - 0
miniapp/src/main/java/com/kym/miniapp/controller/ChargeOrderController.java

@@ -0,0 +1,35 @@
+package com.kym.miniapp.controller;
+
+import com.kym.common.R;
+import com.kym.entity.admin.queryParams.PageParams;
+import com.kym.service.miniapp.ChargeOrderService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author skyline
+ * @description 充电订单
+ * @date 2023-10-20 14:39
+ */
+@RestController
+@RequestMapping("/chargeOrder")
+public class ChargeOrderController {
+
+    private final ChargeOrderService chargeOrderService;
+
+    public ChargeOrderController(ChargeOrderService chargeOrderService) {
+        this.chargeOrderService = chargeOrderService;
+    }
+
+    /**
+     * 用户订单列表
+     *
+     * @return
+     */
+    @GetMapping
+    R<?> listUserChargeOrders(@ModelAttribute PageParams params) {
+        return R.success(chargeOrderService.listUserChargeOrders(params));
+    }
+}

+ 5 - 3
service/src/main/java/com/kym/service/miniapp/ChargeOrderService.java

@@ -2,11 +2,13 @@ package com.kym.service.miniapp;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kym.entity.admin.queryParams.CustomChargeOrdersQueryParam;
+import com.kym.entity.admin.queryParams.PageParams;
 import com.kym.entity.admin.queryParams.StatQueryParam;
 import com.kym.entity.admin.vo.CustomOrderVo;
 import com.kym.entity.admin.vo.StationStatVo;
 import com.kym.entity.common.PageBean;
 import com.kym.entity.miniapp.ChargeOrder;
+import com.kym.entity.miniapp.vo.ChargeOrderVo;
 import jakarta.servlet.http.HttpServletResponse;
 
 import java.util.List;
@@ -28,15 +30,15 @@ public interface ChargeOrderService extends IService<ChargeOrder> {
 
     PageBean<CustomOrderVo> customChargeOrders(CustomChargeOrdersQueryParam params);
 
-    Object orderDetail(String startChargeSeq);
-
     ChargeOrder orderDetailForApp(String startChargeSeq);
 
     PageBean<StationStatVo> stationStat(StatQueryParam params);
 
-    Map<String, Object> stationTodayStat(String  stationId);
+    Map<String, Object> stationTodayStat(String stationId);
 
     List<ChargeOrder> getChargeOrdersBySeqs(String[] startChargeSeqs);
 
     void exportCustomChargeOrders(CustomChargeOrdersQueryParam params, HttpServletResponse response);
+
+    PageBean<ChargeOrderVo> listUserChargeOrders(PageParams params);
 }

+ 13 - 8
service/src/main/java/com/kym/service/miniapp/impl/ChargeOrderServiceImpl.java

@@ -8,17 +8,20 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.kym.common.utils.CommUtil;
 import com.kym.entity.admin.queryParams.CustomChargeOrdersQueryParam;
+import com.kym.entity.admin.queryParams.PageParams;
 import com.kym.entity.admin.queryParams.StatQueryParam;
 import com.kym.entity.admin.vo.CustomOrderVo;
 import com.kym.entity.admin.vo.StationStatVo;
 import com.kym.entity.common.PageBean;
 import com.kym.entity.miniapp.ChargeOrder;
+import com.kym.entity.miniapp.vo.ChargeOrderVo;
 import com.kym.mapper.miniapp.ChargeOrderMapper;
 import com.kym.service.admin.ExportService;
 import com.kym.service.miniapp.ChargeOrderService;
 import com.kym.service.utils.KymCache;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.SneakyThrows;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -138,17 +141,19 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
         exportService.exportExcel("订单列表", writer, rows, response);
     }
 
-
     @Override
-    public Object orderDetail(String startChargeSeq) {
-        // TODO: 2023-08-22 订单详情(基本信息、收费信息) 上面接口貌似已经实现了
-        /*
-         * 基本信息:订单编号,订单状态,所属用户,所属电站,充电桩序列号,建单时间,结算时间,桩启动充电时间,桩停止充电时间
-         * 收费详情:充电电量,充电电费,服务费,总费用,支付状态
-         */
-        return null;
+    public PageBean<ChargeOrderVo> listUserChargeOrders(PageParams params) {
+        PageHelper.startPage(params.getPageNum(), params.getPageSize());
+        var list = lambdaQuery().eq(ChargeOrder::getUserId, StpUtil.getLoginIdAsLong()).list();
+        var voList = list.stream().map(chargeOrder -> {
+            var vo = new ChargeOrderVo();
+            BeanUtils.copyProperties(chargeOrder, vo);
+            return vo;
+        }).toList();
+        return new PageBean<>(voList);
     }
 
+
     @Override
     public ChargeOrder orderDetailForApp(String startChargeSeq) {
         // TODO: 2023-08-24 后面跟上面接口合并