Parcourir la source

fix(chargeorder): 修正订单关联的用户与企业信息查询逻辑

- 替换 UserFirmMapper 为 UserMapper 获取用户信息
- 使用用户部门ID查询对应的企业信息
- 订单中设置企业ID改为从 FirmInfo 获取
- 优化数据查询逻辑,保证订单数据正确关联用户与企业
wzq il y a 2 semaines
Parent
commit
04164508d7

+ 6 - 3
src/main/java/com/zsElectric/boot/business/service/impl/ChargeOrderInfoServiceImpl.java

@@ -32,6 +32,8 @@ import com.zsElectric.boot.common.constant.ConnectivityConstants;
 import com.zsElectric.boot.common.constant.SystemConstants;
 import com.zsElectric.boot.core.exception.BusinessException;
 import com.zsElectric.boot.security.util.SecurityUtils;
+import com.zsElectric.boot.system.mapper.UserMapper;
+import com.zsElectric.boot.system.model.entity.User;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -70,7 +72,7 @@ public class ChargeOrderInfoServiceImpl extends ServiceImpl<ChargeOrderInfoMappe
 
     private final AppletHomeService appletHomeService;
 
-    private final UserFirmMapper userFirmMapper;
+    private final UserMapper userMapper;
 
     //充电订单号前缀
     private final String ORDER_NO_PREFIX = "CD";
@@ -279,12 +281,13 @@ public class ChargeOrderInfoServiceImpl extends ServiceImpl<ChargeOrderInfoMappe
         }
 
         Long userId = SecurityUtils.getUserId();
-        UserFirm userFirm = userFirmMapper.selectOne(Wrappers.lambdaQuery(UserFirm.class).eq(UserFirm::getUserId, userId).last("limit 1"));
+        User user = userMapper.selectById(userId);
+        FirmInfo firmInfo = firmInfoMapper.selectOne(Wrappers.lambdaQuery(FirmInfo.class).eq(FirmInfo::getDeptId, user.getDeptId()).last("limit 1"));
 
         //创建订单
         ChargeOrderInfo chargeOrderInfo = new ChargeOrderInfo();
         chargeOrderInfo.setUserId(userId);
-        chargeOrderInfo.setFirmId(userFirm.getFirmId());
+        chargeOrderInfo.setFirmId(firmInfo.getId());
         chargeOrderInfo.setOrderType(SystemConstants.CHARGE_ORDER_TYPE_CHANNEL);
         chargeOrderInfo.setConnectorId(formData.getConnectorId());
         chargeOrderInfo.setEquipmentId(formData.getEquipmentId());