From da9b7a52dbc6fcd2173efef90528d8fccc322554 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期五, 17 七月 2026 16:22:40 +0800
Subject: [PATCH] P1问题fix

---
 ruoyi-service/ruoyi-chargingPile/src/test/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImplTest.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/ruoyi-service/ruoyi-chargingPile/src/test/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImplTest.java b/ruoyi-service/ruoyi-chargingPile/src/test/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImplTest.java
index ae17d17..6380e03 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/test/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImplTest.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/test/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImplTest.java
@@ -1,11 +1,22 @@
 package com.ruoyi.chargingPile.service.impl;
 
 import com.ruoyi.chargingPile.api.model.Partner;
+import com.ruoyi.chargingPile.mapper.PartnerMapper;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import org.junit.jupiter.api.Test;
+import org.springframework.test.util.ReflectionTestUtils;
+import org.mockito.ArgumentCaptor;
 
 import java.math.BigDecimal;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.mockito.ArgumentMatchers.isNull;
 
 class PartnerServiceImplTest {
 
@@ -22,4 +33,48 @@
 
         assertTrue(new PartnerServiceImpl().addPartnerParameterCheck(partner).isSuccess());
     }
+
+    @Test
+    void venuePartnerFallsBackToPartnerRoleWhenDedicatedRoleIsMissing() {
+        PartnerServiceImpl service = new PartnerServiceImpl();
+        PartnerMapper mapper = mock(PartnerMapper.class);
+        ReflectionTestUtils.setField(service, "baseMapper", mapper);
+        when(mapper.getDefaultPartnerRoleId("场地方")).thenReturn(null);
+        when(mapper.getDefaultPartnerRoleId("合作商")).thenReturn(7);
+
+        assertEquals(7, service.resolveDefaultRoleId(2));
+        verify(mapper).getDefaultPartnerRoleId("场地方");
+        verify(mapper).getDefaultPartnerRoleId("合作商");
+    }
+
+    @Test
+    void serviceProviderUsesDedicatedRoleWhenItExists() {
+        PartnerServiceImpl service = new PartnerServiceImpl();
+        PartnerMapper mapper = mock(PartnerMapper.class);
+        ReflectionTestUtils.setField(service, "baseMapper", mapper);
+        when(mapper.getDefaultPartnerRoleId("服务商")).thenReturn(9);
+
+        assertEquals(9, service.resolveDefaultRoleId(3));
+        verify(mapper).getDefaultPartnerRoleId("服务商");
+        verify(mapper, never()).getDefaultPartnerRoleId("合作商");
+    }
+
+    @Test
+    void clearingShareRatiosStillProducesExplicitDatabaseUpdate() {
+        PartnerServiceImpl service = new PartnerServiceImpl();
+        PartnerMapper mapper = mock(PartnerMapper.class);
+        ReflectionTestUtils.setField(service, "baseMapper", mapper);
+        Partner partner = new Partner();
+        partner.setId(8);
+        partner.setElectricityShareRatio(null);
+        partner.setServiceShareRatio(null);
+
+        service.updateShareRatios(partner);
+
+        ArgumentCaptor<Wrapper<Partner>> wrapperCaptor = ArgumentCaptor.forClass(Wrapper.class);
+        verify(mapper).update(isNull(), wrapperCaptor.capture());
+        UpdateWrapper<Partner> wrapper = (UpdateWrapper<Partner>) wrapperCaptor.getValue();
+        assertTrue(wrapper.getSqlSet().contains("electricity_share_ratio"));
+        assertTrue(wrapper.getSqlSet().contains("service_share_ratio"));
+    }
 }

--
Gitblit v1.7.1