Quellcode durchsuchen

refactor(third-party): 优化第三方充电站信息查询与数据结构调整

- 修改第三方充电站分页查询接口,增加单位名称(企业或渠道方)填充逻辑
- 优化数据库查询SQL,提高政策费用数据关联的准确性与性能
- 删除无用字段(电费、服务费、更新时间),新增单位名称字段于第三方充电站信息VO
- 调整站点提示语修改接口,改用DTO对象接收参数,提升接口易用性与扩展能力
- 清理AppletHomeController无用导入,并更新接口标签版本号至v2.0
- 移除AppletOrderController中未使用的重复提交注解import声明
SheepHy vor 1 Tag
Ursprung
Commit
1f00105a1a

+ 4 - 8
src/main/java/com/zsElectric/boot/business/controller/PolicyFeeController.java

@@ -2,6 +2,7 @@ package com.zsElectric.boot.business.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.zsElectric.boot.business.model.dto.AddPolicyFeeDTO;
+import com.zsElectric.boot.business.model.dto.UpdateStationTipsDTO;
 import com.zsElectric.boot.business.model.query.ThirdPartyStationInfoQuery;
 import com.zsElectric.boot.business.model.vo.PartyStationInfoVO;
 import com.zsElectric.boot.business.model.vo.ThirdPartyStationInfoVO;
@@ -105,17 +106,12 @@ public class PolicyFeeController {
     /**
      * 修改站点提示语
      *
-     * @param stationId 站点ID
-     * @param stationTips 站点提示语
+     * @param dto 修改站点提示语入参
      * @return 操作结果
      */
     @Operation(summary = "修改站点提示语")
     @PostMapping("/updateStationTips")
-    public Result<Boolean> updateStationTips(
-            @Parameter(description = "站点ID", required = true)
-            @RequestParam Long stationId,
-            @Parameter(description = "站点提示语")
-            @RequestParam(required = false) String stationTips) {
-        return Result.success(chargingService.updateStationTips(stationId, stationTips));
+    public Result<Boolean> updateStationTips(@RequestBody UpdateStationTipsDTO dto) {
+        return Result.success(chargingService.updateStationTips(dto.getStationId(), dto.getStationTips()));
     }
 }

+ 1 - 6
src/main/java/com/zsElectric/boot/business/controller/applet/AppletHomeController.java

@@ -1,24 +1,19 @@
 package com.zsElectric.boot.business.controller.applet;
 
-import com.zsElectric.boot.business.model.vo.UserInfoVO;
-import com.zsElectric.boot.business.service.UserInfoService;
-import com.zsElectric.boot.core.web.Result;
 import io.swagger.v3.oas.annotations.Operation;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.zsElectric.boot.business.model.query.StationInfoQuery;
 import com.zsElectric.boot.business.model.vo.StationInfoVO;
 import com.zsElectric.boot.business.service.AppletHomeService;
 import com.zsElectric.boot.core.web.PageResult;
-import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
 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 = "主页相关接口")
+@Tag(name = "v2.0 主页相关接口")
 @RestController
 @RequestMapping("/applet/v1/home")
 @RequiredArgsConstructor

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

@@ -6,7 +6,6 @@ import com.zsElectric.boot.business.model.form.applet.LevelOrderForm;
 import com.zsElectric.boot.business.model.form.applet.UserPayForm;
 import com.zsElectric.boot.business.service.RechargeLevelService;
 import com.zsElectric.boot.business.service.UserOrderInfoService;
-import com.zsElectric.boot.common.annotation.RepeatSubmit;
 import com.zsElectric.boot.common.constant.SystemConstants;
 import com.zsElectric.boot.core.web.Result;
 import io.swagger.v3.oas.annotations.Operation;

+ 2 - 11
src/main/java/com/zsElectric/boot/business/model/vo/ThirdPartyStationInfoVO.java

@@ -1,11 +1,9 @@
 package com.zsElectric.boot.business.model.vo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.math.BigDecimal;
-import java.time.LocalDateTime;
 
 /**
  * 第三方充电站信息VO
@@ -71,13 +69,6 @@ public class ThirdPartyStationInfoVO {
     @Schema(description = "渠道方ID(销售类型为2时有值)")
     private Long thirdPartyId;
 
-    @Schema(description = "电费")
-    private BigDecimal electricityFee;
-
-    @Schema(description = "服务费")
-    private BigDecimal serviceFee;
-
-    @Schema(description = "更新时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime updateTime;
+    @Schema(description = "单位名称(企业名称或渠道方名称)")
+    private String unitName;
 }

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

@@ -7,11 +7,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.zsElectric.boot.charging.entity.*;
+import com.zsElectric.boot.business.mapper.FirmInfoMapper;
 import com.zsElectric.boot.business.mapper.ThirdPartyEquipmentInfoMapper;
+import com.zsElectric.boot.business.mapper.ThirdPartyInfoMapper;
 import com.zsElectric.boot.business.mapper.ThirdPartyStationInfoMapper;
 import com.zsElectric.boot.charging.mapper.ThirdPartyConnectorInfoMapper;
 import com.zsElectric.boot.charging.mapper.ThirdPartyEquipmentPricePolicyMapper;
 import com.zsElectric.boot.charging.mapper.ThirdPartyPolicyInfoMapper;
+import com.zsElectric.boot.business.model.entity.FirmInfo;
+import com.zsElectric.boot.business.model.entity.ThirdPartyInfo;
 import com.zsElectric.boot.business.model.query.ThirdPartyEquipmentInfoQuery;
 import com.zsElectric.boot.business.model.query.ThirdPartyStationInfoQuery;
 import com.zsElectric.boot.business.model.vo.PartyStationInfoVO;
@@ -50,6 +54,8 @@ public class ThirdPartyChargingServiceImpl implements ThirdPartyChargingService
     private final ThirdPartyConnectorInfoMapper connectorInfoMapper;
     private final ThirdPartyEquipmentPricePolicyMapper pricePolicyMapper;
     private final ThirdPartyPolicyInfoMapper policyInfoMapper;
+    private final FirmInfoMapper firmInfoMapper;
+    private final ThirdPartyInfoMapper thirdPartyInfoMapper;
     private final ObjectMapper objectMapper;
 
     // ==================== 充电站信息查询 ====================
@@ -474,7 +480,28 @@ public class ThirdPartyChargingServiceImpl implements ThirdPartyChargingService
         // 构建分页
         Page<ThirdPartyStationInfoVO> page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize());
         // 调用Mapper联表查询(固定设备所属方MA6DP6BE7)
-        return stationInfoMapper.selectStationInfoPageByEquipment(page, queryParams);
+        IPage<ThirdPartyStationInfoVO> resultPage = stationInfoMapper.selectStationInfoPageByEquipment(page, queryParams);
+        
+        // 填充单位名称
+        for (ThirdPartyStationInfoVO vo : resultPage.getRecords()) {
+            if (vo.getSalesType() != null) {
+                if (vo.getSalesType() == 1 && vo.getFirmId() != null) {
+                    // 企业类型,查询企业名称
+                    FirmInfo firmInfo = firmInfoMapper.selectById(vo.getFirmId());
+                    if (firmInfo != null) {
+                        vo.setUnitName(firmInfo.getName());
+                    }
+                } else if (vo.getSalesType() == 2 && vo.getThirdPartyId() != null) {
+                    // 渠道方类型,查询渠道方名称
+                    ThirdPartyInfo thirdPartyInfo = thirdPartyInfoMapper.selectById(vo.getThirdPartyId());
+                    if (thirdPartyInfo != null) {
+                        vo.setUnitName(thirdPartyInfo.getEcName());
+                    }
+                }
+            }
+        }
+        
+        return resultPage;
     }
 
     /**

+ 13 - 7
src/main/resources/mapper/business/ThirdPartyStationInfoMapper.xml

@@ -94,13 +94,19 @@
         FROM third_party_station_info tpsi
         LEFT JOIN third_party_equipment_info tpei ON tpsi.station_id = tpei.station_id AND tpei.is_deleted = 0
         LEFT JOIN (
-            SELECT station_info_id, firm_id, third_party_id,
-                ROW_NUMBER() OVER (PARTITION BY station_info_id, 
-                    CASE WHEN firm_id IS NOT NULL THEN 1 WHEN third_party_id IS NOT NULL THEN 2 ELSE 0 END 
-                    ORDER BY id) AS rn
-            FROM c_policy_fee
-            WHERE is_deleted = 0
-        ) pf ON pf.station_info_id = tpsi.id AND pf.rn = 1
+            SELECT p1.station_info_id, p1.firm_id, p1.third_party_id
+            FROM c_policy_fee p1
+            INNER JOIN (
+                SELECT station_info_id, 
+                    IFNULL(firm_id, 0) AS grp_firm_id,
+                    IFNULL(third_party_id, 0) AS grp_third_party_id,
+                    MIN(id) AS min_id
+                FROM c_policy_fee
+                WHERE is_deleted = 0
+                GROUP BY station_info_id, IFNULL(firm_id, 0), IFNULL(third_party_id, 0)
+            ) p2 ON p1.id = p2.min_id
+            WHERE p1.is_deleted = 0
+        ) pf ON pf.station_info_id = tpsi.id
         WHERE tpsi.is_deleted = 0
         AND tpsi.equipment_owner_id = 'MA6DP6BE7'
         AND tpsi.policy_configured = 1