Procházet zdrojové kódy

解决空指针、数组下标越界等异常,只加了一个判空判断

xiari před 1 rokem
rodič
revize
c2701306b3

+ 2 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtCardtypeServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.backstage.basics.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -177,7 +178,7 @@ public class PtCardtypeServiceImpl implements IPtCardtypeService {
         PtCardtypeBo bo = new PtCardtypeBo();
         bo.setCode(code);
         List<PtCardtypeVo> list = baseMapper.selectVoList(buildQueryWrapper(bo));
-        return list == null ? null : list.get(0);
+        return CollectionUtil.isEmpty(list) ? null : list.get(0);
     }
 
 

+ 3 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/cardCenter/service/impl/PtCardServiceImpl.java

@@ -98,7 +98,9 @@ public class PtCardServiceImpl implements IPtCardService {
         if (ObjUtil.isNotNull(list) && !list.isEmpty()) {
             list.parallelStream().forEach(p -> {
                 PtCardtypeVo cardTypeVo = cardTypeService.queryByCode(p.getCardType());
-                p.setCardTypeName(cardTypeVo.getTypeName());
+                if(cardTypeVo != null){
+                    p.setCardTypeName(cardTypeVo.getTypeName());
+                }
             });
         }
         return list;

+ 5 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/service/impl/PtUserAccountServiceImpl.java

@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.backstage.basics.domain.vo.PtCardtypeVo;
 import org.dromara.backstage.basics.service.IPtCardtypeService;
 import org.dromara.backstage.cardCenter.domain.bo.PtCardBo;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
@@ -543,8 +544,10 @@ public class PtUserAccountServiceImpl implements IPtUserAccountService {
                 String deptName = remoteDeptService.selectDeptNameByIds(vo.getDeptId().toString());
                 vo.setDeptName(deptName);
 
-                String cardTypeName = cardTypeService.queryByCode(vo.getCardType()).getTypeName();
-                vo.setCardTypeName(cardTypeName);
+                PtCardtypeVo cardTypeVo  = cardTypeService.queryByCode(vo.getCardType());
+                if  (cardTypeVo != null) {
+                    vo.setCardTypeName(cardTypeVo.getTypeName());
+                }
 
                 RedisUtils.addCacheList(CacheNames.PT_USER_ACCOUNT, vo);
                 return vo;