doum
2026-06-18 93de43267e1663031fe5dc2f5ae40d128a182a76
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)) {