Jelajahi Sumber

feat(applet): 新增充电订单查询功能

- 添加充电订单查询对象 AppChargeOrderInfoQuery
- 实现充电订单分页查询接口 getPage
- 在 ChargeOrderInfoMapper 中新增 getPage 查询方法
- 完善充电订单 Mapper XML 查询条件与字段映射
- 优化小程序用户信息查询字段别名
- 修复账户余额为零时的业务逻辑返回值问题
wzq 4 hari lalu
induk
melakukan
9a98145a33

+ 38 - 0
src/main/java/com/zsElectric/boot/business/controller/applet/AppletChargeController.java

@@ -0,0 +1,38 @@
+package com.zsElectric.boot.business.controller.applet;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zsElectric.boot.business.model.query.applet.AppChargeOrderInfoQuery;
+import com.zsElectric.boot.business.model.vo.ChargeOrderInfoVO;
+import com.zsElectric.boot.business.service.ChargeOrderInfoService;
+import com.zsElectric.boot.core.web.Result;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Tag(name = "充电相关接口")
+@Slf4j
+@RestController
+@RequestMapping("/applet/v1/charge")
+@RequiredArgsConstructor
+public class AppletChargeController {
+
+    private final ChargeOrderInfoService chargeOrderInfoService;
+
+    /**
+     * 充电订单记录
+     *
+     * @param queryParams
+     * @return
+     */
+    @Operation(summary = "充电订单记录")
+    @PostMapping("/getPage")
+    public Result<IPage<ChargeOrderInfoVO>> getPage(@RequestBody AppChargeOrderInfoQuery queryParams) {
+        IPage<ChargeOrderInfoVO> page = chargeOrderInfoService.getPage(queryParams);
+        return Result.success(page);
+    }
+}

+ 13 - 1
src/main/java/com/zsElectric/boot/business/controller/applet/AppletOrderController.java

@@ -44,8 +44,14 @@ public class AppletOrderController {
         return Result.success(list);
     }
 
+    /**
+     * 购券记录(券订单记录)
+     *
+     * @param queryParams
+     * @return
+     */
     @Operation(summary = "购券记录(券订单记录)")
-    @GetMapping("/getTicketRecords")
+    @PostMapping("/getTicketRecords")
     public Result<IPage<UserOrderInfoVO>> getTicketRecords(@RequestBody AppUserOrderInfoQuery queryParams) {
         IPage<UserOrderInfoVO> page = userOrderInfoService.getTicketRecords(queryParams);
         return Result.success(page);
@@ -123,6 +129,12 @@ public class AppletOrderController {
         return Result.success(userOrderInfoService.refundOrder());
     }
 
+    /**
+     * 订单退款回调
+     * @param request
+     * @param response
+     * @return
+     */
     @Operation(summary = "订单退款回调")
     @PostMapping("/callback/refundOrderNotify")
     public Map<String, Object> refundOrderNotify(HttpServletRequest request, HttpServletResponse response) {

+ 3 - 0
src/main/java/com/zsElectric/boot/business/mapper/ChargeOrderInfoMapper.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zsElectric.boot.business.model.entity.ChargeOrderInfo;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zsElectric.boot.business.model.query.ChargeOrderInfoQuery;
+import com.zsElectric.boot.business.model.query.applet.AppChargeOrderInfoQuery;
 import com.zsElectric.boot.business.model.vo.ChargeOrderInfoVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 充电订单信息Mapper接口
@@ -25,4 +27,5 @@ public interface ChargeOrderInfoMapper extends BaseMapper<ChargeOrderInfo> {
      */
     Page<ChargeOrderInfoVO> getChargeOrderInfoPage(Page<ChargeOrderInfoVO> page, ChargeOrderInfoQuery queryParams);
 
+    Page<ChargeOrderInfoVO> getPage(Page<Object> objectPage,@Param("queryParams") AppChargeOrderInfoQuery queryParams);
 }

+ 25 - 0
src/main/java/com/zsElectric/boot/business/model/query/ChargeOrderInfoQuery.java

@@ -5,6 +5,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.time.LocalDateTime;
+
 /**
  * 充电订单信息分页查询对象
  *
@@ -16,4 +18,27 @@ import lombok.Setter;
 @Setter
 public class ChargeOrderInfoQuery extends BasePageQuery {
 
+    @Schema(description = "充电桩编号")
+    private Integer equipmentId;
+
+    @Schema(description = "状态0待启动 1 充电中 2 结算中 3 已完成, 5未成功充电")
+    private Integer status;
+
+    @Schema(description = "订单类型 0-平台订单 2-企业订单")
+    private Integer orderType;
+
+    @Schema(description = "补缴状态  0.无需补缴  1.待补缴  2.已补缴 3.部分补缴")
+    private Integer maspStatus;
+
+    @Schema(description = "状态0待启动 1 充电中 2 结算中 3 已完成, 5未成功充电")
+    private String phoneNum;
+
+    @Schema(description = "1 主动停止 2 充满停止 3 余额不足停止, 4电桩按钮停止")
+    private Integer stopType;
+
+    @Schema(description = "开始时间")
+    private LocalDateTime startTime;
+
+    @Schema(description = "结束时间")
+    private LocalDateTime endTime;
 }

+ 26 - 0
src/main/java/com/zsElectric/boot/business/model/query/applet/AppChargeOrderInfoQuery.java

@@ -0,0 +1,26 @@
+package com.zsElectric.boot.business.model.query.applet;
+
+import com.zsElectric.boot.common.base.BasePageQuery;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+
+@Schema(description ="充电订单查询对象")
+@Getter
+@Setter
+public class AppChargeOrderInfoQuery extends BasePageQuery {
+
+    @Schema(description = "用户ID", hidden = true)
+    private Long userId;
+
+    @Schema(description = "状态0待启动 1 充电中 2 结算中 3 已完成, 5未成功充电")
+    private Integer status;
+
+    @Schema(description = "开始时间")
+    private LocalDateTime startTime;
+
+    @Schema(description = "结束时间")
+    private LocalDateTime endTime;
+}

+ 2 - 0
src/main/java/com/zsElectric/boot/business/service/ChargeOrderInfoService.java

@@ -3,6 +3,7 @@ package com.zsElectric.boot.business.service;
 import com.zsElectric.boot.business.model.entity.ChargeOrderInfo;
 import com.zsElectric.boot.business.model.form.ChargeOrderInfoForm;
 import com.zsElectric.boot.business.model.query.ChargeOrderInfoQuery;
+import com.zsElectric.boot.business.model.query.applet.AppChargeOrderInfoQuery;
 import com.zsElectric.boot.business.model.vo.ChargeOrderInfoVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -55,4 +56,5 @@ public interface ChargeOrderInfoService extends IService<ChargeOrderInfo> {
      */
     boolean deleteChargeOrderInfos(String ids);
 
+    IPage<ChargeOrderInfoVO> getPage(AppChargeOrderInfoQuery queryParams);
 }

+ 15 - 0
src/main/java/com/zsElectric/boot/business/service/impl/ChargeOrderInfoServiceImpl.java

@@ -1,5 +1,9 @@
 package com.zsElectric.boot.business.service.impl;
 
+import com.zsElectric.boot.business.model.query.UserOrderInfoQuery;
+import com.zsElectric.boot.business.model.query.applet.AppChargeOrderInfoQuery;
+import com.zsElectric.boot.business.model.vo.UserOrderInfoVO;
+import com.zsElectric.boot.security.util.SecurityUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -99,4 +103,15 @@ public class ChargeOrderInfoServiceImpl extends ServiceImpl<ChargeOrderInfoMappe
         return this.removeByIds(idList);
     }
 
+    @Override
+    public IPage<ChargeOrderInfoVO> getPage(AppChargeOrderInfoQuery queryParams) {
+        queryParams.setUserId(SecurityUtils.getUserId());
+
+        Page<ChargeOrderInfoVO> pageVO = this.baseMapper.getPage(
+                new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),
+                queryParams
+        );
+        return pageVO;
+    }
+
 }

+ 1 - 1
src/main/java/com/zsElectric/boot/business/service/impl/UserOrderInfoServiceImpl.java

@@ -432,7 +432,7 @@ public class UserOrderInfoServiceImpl extends ServiceImpl<UserOrderInfoMapper, U
         //查询账户余额
         UserAccount userAccount = userAccountMapper.selectOne(Wrappers.<UserAccount>lambdaQuery().eq(UserAccount::getUserId, SecurityUtils.getUserId()).last("limit 1"));
         if (userAccount.getBalance().compareTo(BigDecimal.ZERO) == 0) {
-            throw new BusinessException("账户余额为 0");
+            return  "账户余额为 0";
         }
         BigDecimal refundMoney = userAccount.getBalance();
 

+ 89 - 0
src/main/resources/mapper/business/ChargeOrderInfoMapper.xml

@@ -53,7 +53,96 @@
         FROM
             c_charge_order_info
         <where>
+        is_deleted = 0
+         <if test="queryParams.maspStatus != null">
+                AND masp_status = #{queryParams.maspStatus}
+            </if>
+         <if test="queryParams.status != null">
+                AND status = #{queryParams.status}
+            </if>
+        <if test="queryParams.startTime != null">
+                AND create_time <![CDATA[  >=  ]]> #{queryParams.startTime,jdbcType=DATE}
+            </if>
+        <if test="queryParams.endTime != null">
+                AND create_time <![CDATA[  <=  ]]> #{queryParams.endTime,jdbcType=DATE}
+            </if>
+        <if test="queryParams.phoneNum != null">
+                AND phone_num = #{queryParams.phoneNum}
+            </if>
+        <if test="queryParams.stopType != null">
+                AND stop_type = #{queryParams.stopType}
+            </if>
+        <if test="queryParams.orderType != null">
+                AND order_type = #{queryParams.orderType}
+            </if>
         </where>
     </select>
+    <select id="getPage" resultType="com.zsElectric.boot.business.model.vo.ChargeOrderInfoVO">
+        SELECT
+        id,
+        user_id,
+        order_type,
+        ec_id,
+        equipment_id,
+        charge_order_no,
+        start_time,
+        end_time,
+        charge_time,
+        status,
+        third_party_total_cost,
+        third_party_serverfee,
+        third_party_elecfee,
+        total_charge,
+        real_cost,
+        real_service_cost,
+        stop_type,
+        phone_num,
+        plate_num,
+        stop_reason,
+        charge_details,
+        third_party_station_id,
+        pre_amt,
+        real_predict_service_cost,
+        masp_amount,
+        masp_real_amount,
+        total_masp_money,
+        masp_status,
+        masp_time,
+        masp_desc,
+        discount_money,
+        discount_desc,
+        discount_info_id,
+        real_third_cost,
+        firm_id,
+        firm_price,
+        coupon_price,
+        coupon_id,
+        remark,
+        create_by,
+        create_time,
+        update_by,
+        update_time,
+        version,
+        is_deleted
+        FROM
+        c_charge_order_info
+        <where>
+            is_deleted = 0
+            <if test="queryParams.userId != null">
+                AND user_id = #{queryParams.userId}
+            </if>
+            <if test="queryParams.status != null">
+                AND status = #{queryParams.status}
+            </if>
+            <if test="queryParams.startTime != null">
+                AND create_time <![CDATA[  >=  ]]> #{queryParams.startTime,jdbcType=DATE}
+            </if>
+            <if test="queryParams.endTime != null">
+                AND create_time <![CDATA[  <=  ]]> #{queryParams.endTime,jdbcType=DATE}
+            </if>
+        </where>
+        ORDER BY
+        create_time DESC
+    </select>
 
 </mapper>

+ 1 - 1
src/main/resources/mapper/business/UserInfoMapper.xml

@@ -28,7 +28,7 @@
     </select>
     <select id="getAppletUserInfo" resultType="com.zsElectric.boot.business.model.vo.applet.AppletUserInfoVO">
         SELECT
-                ui.id,
+                ui.id AS appletUserId,
                 ui.ec_id,
                 ui.nick_name,
                 ui.phone,