skyline 2 лет назад
Родитель
Сommit
df8d8912f3

+ 1 - 1
admin/src/main/java/com/kym/admin/config/SaTokenConfigure.java

@@ -25,7 +25,7 @@ public class SaTokenConfigure implements WebMvcConfigurer {
                         "/finance/export/*",
                         "/**/login",
                         "/**/error",
-                        "/**/pullEnStations",
+                        "/**/pullEnStations/*",
                         "/**/*.html",
                         "/**/*.js",
                         "/**/*.css",

+ 3 - 3
admin/src/main/java/com/kym/admin/controller/StationController.java

@@ -69,9 +69,9 @@ public class StationController {
      *
      * @return
      */
-    @GetMapping("/pullEnStations")
-    R<?> pullEnStationInfos() {
-        stationService.pullEnStationInfos();
+    @GetMapping("/pullEnStations/{stationId}")
+    R<?> pullEnStationInfos(@PathVariable String stationId) {
+        stationService.pullEnStationInfos(stationId);
         return R.success();
     }
 

+ 1 - 1
miniapp/src/main/java/com/kym/miniapp/config/SaTokenConfigure.java

@@ -23,7 +23,7 @@ public class SaTokenConfigure implements WebMvcConfigurer {
                         "/error",
                         "/user/wxLogin",
                         "/user/refresh",
-                        "/charge/pullEnStations",
+                        "/charge/pullEnStations/*",
                         "/charge/notification_stationStatus",
                         "/charge/notification_start_charge_result",
                         "/charge/notification_start_charge_status",

+ 3 - 3
miniapp/src/main/java/com/kym/miniapp/controller/ChargerController.java

@@ -258,9 +258,9 @@ public class ChargerController {
      *
      * @return
      */
-    @GetMapping("/pullEnStations")
-    R<?> pullEnStationInfos() {
-        stationService.pullEnStationInfos();
+    @GetMapping("/pullEnStations/{stationId}")
+    R<?> pullEnStationInfos(@PathVariable String stationId) {
+        stationService.pullEnStationInfos(stationId);
         return R.success();
     }
 

+ 2 - 1
miniapp/src/main/java/com/kym/miniapp/utils/MybatisPlusGeneratorForMiniApp.java

@@ -16,7 +16,7 @@ public class MybatisPlusGeneratorForMiniApp {
 
     public static void main(String[] args) {
         // 指定数据源
-        FastAutoGenerator.create("jdbc:mysql://121.40.98.15:3307/charge_app", "kym", "kx7#zFvS$$%uVDkZPk")
+        FastAutoGenerator.create("jdbc:mysql://121.40.98.15:3307/charge_app", "root", "KuaiyuMan/*-")
                 .globalConfig(builder -> {
                     builder.author("skyline")
                             // 指定输出目录
@@ -55,6 +55,7 @@ public class MybatisPlusGeneratorForMiniApp {
 //                                    "t_cars",
 //                                    "t_collect",
 //                            "t_pay_log"
+//                            "t_user_coupon"
                             )
                             // 设置过滤表前缀
                             .addTablePrefix("t_");

+ 2 - 3
service/src/main/java/com/kym/service/admin/ConnectorInfoService.java

@@ -1,11 +1,10 @@
 package com.kym.service.admin;
 
-import com.alibaba.fastjson2.JSONObject;
-import com.github.yulichang.base.MPJBaseService;
 import com.kym.entity.admin.ConnectorInfo;
 import com.kym.entity.admin.queryParams.EquipmentQueryParam;
 import com.kym.entity.admin.vo.ConnectorInfoVo;
 import com.kym.entity.common.PageBean;
+import com.kym.service.MyBaseService;
 
 import java.util.Map;
 
@@ -17,7 +16,7 @@ import java.util.Map;
  * @author skyline
  * @since 2023-08-05
  */
-public interface ConnectorInfoService extends MPJBaseService<ConnectorInfo> {
+public interface ConnectorInfoService extends MyBaseService<ConnectorInfo> {
     PageBean<ConnectorInfoVo> listConnectors(EquipmentQueryParam params);
 
     Map<Integer, Long> statConnectorStatus(String stationId);

+ 2 - 4
service/src/main/java/com/kym/service/admin/EquipmentInfoService.java

@@ -1,9 +1,7 @@
 package com.kym.service.admin;
 
-import com.github.yulichang.base.MPJBaseService;
 import com.kym.entity.admin.EquipmentInfo;
-
-import java.util.Map;
+import com.kym.service.MyBaseService;
 
 /**
  * <p>
@@ -13,6 +11,6 @@ import java.util.Map;
  * @author skyline
  * @since 2023-09-01
  */
-public interface EquipmentInfoService extends MPJBaseService<EquipmentInfo> {
+public interface EquipmentInfoService extends MyBaseService<EquipmentInfo> {
 
 }

+ 3 - 1
service/src/main/java/com/kym/service/admin/StationService.java

@@ -10,6 +10,7 @@ import com.kym.entity.enplus.EnStationStatsInfo;
 import com.kym.entity.enplus.EnStationStatusInfo;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collection;
 import java.util.List;
 
 /**
@@ -28,8 +29,9 @@ public interface StationService extends MPJBaseService<Station> {
 
     public EnStationStatsInfo stationStats(String stationId, String startTime, String endTime);
 
+    public void pullEnStationInfos(String stationId);
+
     @Transactional(rollbackFor = Exception.class)
-    public void pullEnStationInfos();
 
     void modifyStation(Station station);
 

+ 2 - 5
service/src/main/java/com/kym/service/admin/impl/ConnectorInfoServiceImpl.java

@@ -1,21 +1,18 @@
 package com.kym.service.admin.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.github.pagehelper.PageHelper;
-import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.kym.common.utils.CommUtil;
 import com.kym.entity.admin.ConnectorInfo;
 import com.kym.entity.admin.EquipmentInfo;
-import com.kym.entity.admin.EquipmentRelation;
 import com.kym.entity.admin.queryParams.EquipmentQueryParam;
 import com.kym.entity.admin.vo.ConnectorInfoVo;
 import com.kym.entity.common.PageBean;
 import com.kym.entity.miniapp.ChargeOrder;
 import com.kym.mapper.admin.ConnectorInfoMapper;
+import com.kym.service.MyBaseServiceImpl;
 import com.kym.service.admin.ConnectorInfoService;
 import com.kym.service.admin.EquipmentRelationService;
 import com.kym.service.cache.KymCache;
@@ -40,7 +37,7 @@ import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
  */
 @Service
 @DS("db-admin")
-public class ConnectorInfoServiceImpl extends MPJBaseServiceImpl<ConnectorInfoMapper, ConnectorInfo> implements ConnectorInfoService {
+public class ConnectorInfoServiceImpl extends MyBaseServiceImpl<ConnectorInfoMapper, ConnectorInfo> implements ConnectorInfoService {
 
     private final ChargeOrderService chargeOrderService;
 

+ 2 - 2
service/src/main/java/com/kym/service/admin/impl/EquipmentInfoServiceImpl.java

@@ -2,9 +2,9 @@ package com.kym.service.admin.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
-import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.kym.entity.admin.EquipmentInfo;
 import com.kym.mapper.admin.EquipmentInfoMapper;
+import com.kym.service.MyBaseServiceImpl;
 import com.kym.service.admin.EquipmentInfoService;
 import com.kym.service.cache.KymCache;
 import jakarta.annotation.PostConstruct;
@@ -22,7 +22,7 @@ import java.util.stream.Collectors;
  */
 @Service
 @DS("db-admin")
-public class EquipmentInfoServiceImpl extends MPJBaseServiceImpl<EquipmentInfoMapper, EquipmentInfo> implements EquipmentInfoService {
+public class EquipmentInfoServiceImpl extends MyBaseServiceImpl<EquipmentInfoMapper, EquipmentInfo> implements EquipmentInfoService {
 
     @PostConstruct
     private void init() {

+ 45 - 45
service/src/main/java/com/kym/service/admin/impl/StationServiceImpl.java

@@ -4,7 +4,7 @@ import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
-import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.kym.common.annotation.DynamicCache;
 import com.kym.common.enums.EnPlusApi;
 import com.kym.common.exception.BusinessException;
@@ -20,6 +20,7 @@ import com.kym.entity.enplus.EnEquipmentInfo;
 import com.kym.entity.enplus.EnStationStatsInfo;
 import com.kym.entity.enplus.EnStationStatusInfo;
 import com.kym.mapper.admin.StationMapper;
+import com.kym.service.MyBaseServiceImpl;
 import com.kym.service.admin.ConnectorInfoService;
 import com.kym.service.admin.EquipmentInfoService;
 import com.kym.service.admin.EquipmentRelationService;
@@ -49,7 +50,7 @@ import java.util.stream.Collectors;
 @Service
 @DS("db-admin")
 @Slf4j
-public class StationServiceImpl extends MPJBaseServiceImpl<StationMapper, Station> implements StationService {
+public class StationServiceImpl extends MyBaseServiceImpl<StationMapper, Station> implements StationService {
 
     private final EnPlusService enPlusService;
     private final EquipmentInfoService equipmentInfoService;
@@ -146,60 +147,59 @@ public class StationServiceImpl extends MPJBaseServiceImpl<StationMapper, Statio
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void pullEnStationInfos() {
-        var stationVoList = queryStationInfo(1, 1000);
-        var stationList = new ArrayList<Station>();
+    public void pullEnStationInfos(String stationId) {
+        // 指定的站点信息
+        var stationVo = queryStationInfo(1, 1000).stream().filter(vo -> stationId.equals(vo.getStationId())).findFirst().orElse(null);
+
+        var station = new Station();
         var equipmentList = new ArrayList<EquipmentInfo>();
         var connectorList = new ArrayList<ConnectorInfo>();
-        stationVoList.forEach(vo -> {
-            if (!vo.getEquipmentInfos().isEmpty()) {
-                vo.getEquipmentInfos().forEach(item -> {
-                    // 桩体
-                    var equipment = new EquipmentInfo()
-                            .setStationId(vo.getStationId())
-                            .setShortId(item.getShortId())
-                            .setPower(item.getConnectorInfos().get(0).getPower());
-                    BeanUtils.copyProperties(item, equipment);
-                    equipmentList.add(equipment);
-                    // 枪
-                    var connectorInfos = item.getConnectorInfos();
-                    if (!CommUtil.isEmptyOrNull(connectorInfos)) {
-                        connectorInfos.forEach(connector -> {
-                            var connectorInfo = new ConnectorInfo();
-                            BeanUtils.copyProperties(connector, connectorInfo);
-                            connectorList.add(connectorInfo);
-                        });
-                    }
-                });
-                equipmentList.sort(Comparator.comparing(EquipmentInfo::getShortId));
-            }
-            var station = new Station();
-            BeanUtils.copyProperties(vo, station);
-            stationList.add(station);
-        });
-        // 查询已存在的站点,只更新新增的站点和设备
-        var stations = list().stream().map(Station::getStationId).toList();
-        var equipments = equipmentInfoService.list().stream().map(EquipmentInfo::getEquipmentId).toList();
-        var connectors = connectorInfoService.list().stream().map(ConnectorInfo::getConnectorId).toList();
 
-        // 新增的数据
-        var newStations = stationList.stream().filter(station -> !stations.contains(station.getStationId())).toList();
-        var newEquipmentInfos = equipmentList.stream().filter(equipmentInfo -> !equipments.contains(equipmentInfo.getEquipmentId())).toList();
-        var newConnectors = connectorList.stream().filter(connector -> !connectors.contains(connector.getConnectorId())).toList();
+        // 组装数据
+        assert stationVo != null;
+        if (!stationVo.getEquipmentInfos().isEmpty()) {
+            stationVo.getEquipmentInfos().forEach(item -> {
+                // 桩体
+                var equipment = new EquipmentInfo()
+                        .setStationId(stationVo.getStationId())
+                        .setShortId(item.getShortId())
+                        .setPower(item.getConnectorInfos().get(0).getPower());
+                BeanUtils.copyProperties(item, equipment);
+                equipmentList.add(equipment);
+                // 枪
+                var connectorInfos = item.getConnectorInfos();
+                if (!CommUtil.isEmptyOrNull(connectorInfos)) {
+                    connectorInfos.forEach(connector -> {
+                        var connectorInfo = new ConnectorInfo();
+                        BeanUtils.copyProperties(connector, connectorInfo);
+                        connectorList.add(connectorInfo);
+                    });
+                }
+            });
+            equipmentList.sort(Comparator.comparing(EquipmentInfo::getShortId));
+        }
+        BeanUtils.copyProperties(stationVo, station);
+
+        // 更新站点信息
+        updateByQueryWrapper(station, s -> new QueryWrapper<Station>().eq("station_id", station.getStationId()));
+
+        // 更新设备信息
+        equipmentInfoService.updateBatchByQueryWrapper(equipmentList, equipmentInfo ->
+                new QueryWrapper<EquipmentInfo>().eq("equipment_id", equipmentInfo.getEquipmentId()));
+
+        // 更新枪信息
+        connectorInfoService.updateBatchByQueryWrapper(connectorList, connectorInfo ->
+                new QueryWrapper<ConnectorInfo>().eq("connector_id", connectorInfo.getConnectorId()));
 
         // 将充电站相关数据写入KymCache
         // 手动切换数据源
         DynamicDataSourceContextHolder.push("db-admin");
-        KymCache.INSTANCE.putStationId2Name(newStations.stream().collect(Collectors.toMap(Station::getStationId, Station::getStationName)));
-//        KymCache.INSTANCE.putConnectorId2ParkingNo(newEquipmentInfos.stream().collect(Collectors.toMap(equipmentInfo -> equipmentInfo.getEquipmentId().concat("1"), EquipmentInfo::getParkingNo?)));
+        KymCache.INSTANCE.putStationId2Name(Map.of(stationVo.getStationId(), stationVo.getStationName()));
         DynamicDataSourceContextHolder.poll();
 
-        // 新数据写入数据库
-        saveBatch(newStations);
-        equipmentInfoService.saveBatch(newEquipmentInfos);
-        connectorInfoService.saveBatch(newConnectors);
     }
 
+
     @Override
     @Transactional
     public void modifyStation(Station station) {