From 93de43267e1663031fe5dc2f5ae40d128a182a76 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 18 六月 2026 17:24:51 +0800
Subject: [PATCH] 新增智能电表、空调管理

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerH5BizServiceImpl.java |   33 +++++++++++++++++++++++----------
 1 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerH5BizServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerH5BizServiceImpl.java
index 5e55186..d9494ab 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerH5BizServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerH5BizServiceImpl.java
@@ -29,6 +29,8 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.MultifileMapper;
 import com.doumee.dao.system.model.Multifile;
+import com.doumee.service.business.YwCustomerDeviceAutoBindService;
+import com.doumee.service.business.YwCustomerH5AuthService;
 import com.doumee.service.business.YwCustomerH5BizService;
 import com.doumee.service.business.YwCustomerRechargeBizService;
 import com.doumee.service.business.YwElectricalBizService;
@@ -57,6 +59,8 @@
     @Autowired
     private YwCustomerRechargeBizService ywCustomerRechargeBizService;
     @Autowired
+    private YwCustomerDeviceAutoBindService ywCustomerDeviceAutoBindService;
+    @Autowired
     private YwCustomerElectricalMapper ywCustomerElectricalMapper;
     @Autowired
     private YwElectricalMapper ywElectricalMapper;
@@ -78,6 +82,8 @@
     private MultifileMapper multifileMapper;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private YwCustomerH5AuthService ywCustomerH5AuthService;
 
     @Override
     public List<YwH5Banner> listBanners() {
@@ -85,11 +91,14 @@
     }
 
     @Override
-    public Map<String, Object> home(Integer customerId) {
+    public Map<String, Object> home(Integer customerId, Integer memberId) {
         YwCustomer customer = requireCustomer(customerId);
+        LoginUserInfo loginUser = ywCustomerH5AuthService.buildLoginUserInfo(customerId, memberId);
         YwCustomerRechargeDetailVO detail = ywCustomerRechargeBizService.getDetail(customerId);
         Map<String, Object> map = new LinkedHashMap<>();
-        map.put("customerName", customer.getName());
+        map.put("customerName", loginUser.getCustomerName() != null ? loginUser.getCustomerName() : customer.getName());
+        map.put("memberName", loginUser.getMemberName());
+        map.put("displayName", loginUser.getDisplayName());
         map.put("electricalCount", detail.getElectricalList() != null ? detail.getElectricalList().size() : 0);
         map.put("conditionerCount", detail.getConditionerList() != null ? detail.getConditionerList().size() : 0);
         map.put("gsConfig", detail.getGsConfig());
@@ -100,6 +109,7 @@
     @Override
     public PageData<CustomerDeviceH5VO> devicePage(PageWrap<CustomerDeviceQueryDTO> pageWrap, Integer customerId) {
         requireCustomer(customerId);
+        ywCustomerDeviceAutoBindService.refreshCustomerDevices(customerId, systemUser());
         CustomerDeviceQueryDTO q = pageWrap.getModel() != null ? pageWrap.getModel() : new CustomerDeviceQueryDTO();
         List<CustomerDeviceH5VO> all = new ArrayList<>();
         if (q.getDeviceType() == null || q.getDeviceType() == 0) {
@@ -254,10 +264,8 @@
         if (Objects.equals(customer.getFirstRechargeDone(), Constants.ONE)) {
             return;
         }
-        List<Integer> electricalIds = ywCustomerElectricalMapper.selectList(new QueryWrapper<YwCustomerElectrical>().lambda()
-                        .eq(YwCustomerElectrical::getCustomerId, customerId)
-                        .eq(YwCustomerElectrical::getIsdeleted, Constants.ZERO))
-                .stream().map(YwCustomerElectrical::getElectricalId).collect(Collectors.toList());
+        ywCustomerDeviceAutoBindService.refreshCustomerDevices(customerId, user != null ? user : systemUser());
+        List<Integer> electricalIds = ywCustomerDeviceAutoBindService.listElectricalIdsByActiveContracts(customerId);
         for (Integer eid : electricalIds) {
             YwCustomerRechargeElectricalDTO dto = new YwCustomerRechargeElectricalDTO();
             dto.setCustomerId(customerId);
@@ -280,10 +288,7 @@
     }
 
     private List<CustomerDeviceH5VO> buildElectricalDevices(Integer customerId) {
-        List<Integer> ids = ywCustomerElectricalMapper.selectList(new QueryWrapper<YwCustomerElectrical>().lambda()
-                        .eq(YwCustomerElectrical::getCustomerId, customerId)
-                        .eq(YwCustomerElectrical::getIsdeleted, Constants.ZERO))
-                .stream().map(YwCustomerElectrical::getElectricalId).collect(Collectors.toList());
+        List<Integer> ids = ywCustomerDeviceAutoBindService.listElectricalIdsByActiveContracts(customerId);
         if (ids.isEmpty()) {
             return Collections.emptyList();
         }
@@ -297,6 +302,7 @@
             vo.setDeviceId(e.getId());
             vo.setDeviceName(e.getName());
             vo.setMeterAccountNo(e.getParamId());
+            vo.setMeterAddress(e.getAddress());
             vo.setRoomInfo(e.getRoomNames());
             vo.setBalance(e.getBalance());
             vo.setBalanceLow(e.getBalance() != null && e.getBalance().compareTo(new BigDecimal("50")) < 0);
@@ -345,6 +351,13 @@
         return true;
     }
 
+    private LoginUserInfo systemUser() {
+        LoginUserInfo user = new LoginUserInfo();
+        user.setId(1);
+        user.setRealname("system");
+        return user;
+    }
+
     private YwCustomer requireCustomer(Integer customerId) {
         YwCustomer c = ywCustomerMapper.selectById(customerId);
         if (c == null || Objects.equals(c.getIsdeleted(), Constants.ONE)) {

--
Gitblit v1.9.3