Răsfoiți Sursa

bug均已修复

Huanyi 1 săptămână în urmă
părinte
comite
c6e9e16e83

+ 26 - 29
ruoyi-modules/yingpaipay-fulfiller/src/main/java/org/dromara/fulfiller/service/impl/FlfLevelConfigServiceImpl.java

@@ -53,9 +53,8 @@ public class FlfLevelConfigServiceImpl implements IFlfLevelConfigService {
     public boolean insertByBo(FlfLevelConfigBo bo) {
 
         FlfLevelConfig config = MapstructUtils.convert(bo, FlfLevelConfig.class);
-        boolean configFlag = baseMapper.insert(config) == 0;
-        if (configFlag) {
-            throw new RuntimeException("新增配置信息");
+        if (baseMapper.insert(config) == 0) {
+            throw new RuntimeException("新增配置信息失败");
         }
 
         List<FlfLevelConfigRights> relations = new ArrayList<>();
@@ -65,9 +64,11 @@ public class FlfLevelConfigServiceImpl implements IFlfLevelConfigService {
             right.setRightsId(e);
             relations.add(right);
         });
-        boolean relationFlag = levelConfigRightsMapper.insertBatch(relations);
-        if (!relationFlag) {
-            throw new RuntimeException("新增关系失败");
+        if (!relations.isEmpty()) {
+            boolean relationFlag = levelConfigRightsMapper.insertBatch(relations);
+            if (!relationFlag) {
+                throw new RuntimeException("新增关系失败");
+            }
         }
 
         return true;
@@ -78,26 +79,25 @@ public class FlfLevelConfigServiceImpl implements IFlfLevelConfigService {
     @Override
     public boolean updateByBo(FlfLevelConfigBo bo) {
         FlfLevelConfig config = MapstructUtils.convert(bo, FlfLevelConfig.class);
-        boolean configFlag = baseMapper.updateById(config) == 0;
-        if (configFlag) {
-            throw new RuntimeException("修改配置信息");
+        if (baseMapper.updateById(config) == 0) {
+            throw new RuntimeException("修改配置信息失败");
         }
 
-        boolean deleteFlag = levelConfigRightsMapper.delete(Wrappers.lambdaQuery(FlfLevelConfigRights.class).eq(FlfLevelConfigRights::getConfigId, bo.getId())) == 0;
-        if (deleteFlag) {
-            throw new RuntimeException("删除关系失败");
-        }
+        // 先删除原有关系,即使原本没有关系返回0也是正常的
+        levelConfigRightsMapper.delete(Wrappers.lambdaQuery(FlfLevelConfigRights.class).eq(FlfLevelConfigRights::getConfigId, bo.getId()));
 
         List<FlfLevelConfigRights> relations = new ArrayList<>();
-        bo.getRights().forEach(e -> {
-            FlfLevelConfigRights right = new FlfLevelConfigRights();
-            right.setConfigId(config.getId());
-            right.setRightsId(e);
-            relations.add(right);
-        });
-        boolean relationFlag = levelConfigRightsMapper.insertBatch(relations);
-        if (!relationFlag) {
-            throw new RuntimeException("新增关系失败");
+        if (bo.getRights() != null && !bo.getRights().isEmpty()) {
+            bo.getRights().forEach(e -> {
+                FlfLevelConfigRights right = new FlfLevelConfigRights();
+                right.setConfigId(config.getId());
+                right.setRightsId(e);
+                relations.add(right);
+            });
+            boolean relationFlag = levelConfigRightsMapper.insertBatch(relations);
+            if (!relationFlag) {
+                throw new RuntimeException("新增关系失败");
+            }
         }
 
         return true;
@@ -108,15 +108,12 @@ public class FlfLevelConfigServiceImpl implements IFlfLevelConfigService {
     @Override
     public boolean deleteById(Long id) {
 
-        boolean configFlag = baseMapper.deleteById(id) == 0;
-        if (configFlag) {
-            throw new RuntimeException("删除配置信息");
+        if (baseMapper.deleteById(id) == 0) {
+            throw new RuntimeException("删除配置信息失败");
         }
 
-        boolean deleteFlag = levelConfigRightsMapper.delete(Wrappers.lambdaQuery(FlfLevelConfigRights.class).eq(FlfLevelConfigRights::getConfigId, id)) == 0;
-        if (deleteFlag) {
-            throw new RuntimeException("删除关系失败");
-        }
+        // 即使没有关系返回0也是正常的
+        levelConfigRightsMapper.delete(Wrappers.lambdaQuery(FlfLevelConfigRights.class).eq(FlfLevelConfigRights::getConfigId, id));
 
         return true;
     }

+ 6 - 4
ruoyi-modules/yingpaipay-order/src/main/java/org/dromara/order/controller/SysSubOrderController.java

@@ -183,15 +183,16 @@ public class SysSubOrderController extends BaseController {
                 excel.setCode(e.getCode());
                 excel.setService(e.getService());
                 RemoteSysServiceVo service = serviceMap.get(e.getService());
-                excel.setServiceName(service.getName());
+                excel.setServiceName(service != null ? service.getName() : "未知服务");
                 excel.setServiceTime(Optional.ofNullable(e.getServiceTime()).map(DateUtils::formatDateTime).orElse("-"));
                 excel.setToAddress(e.getToAddress());
-                excel.setMode(service.getMode().equals(ServiceModeEnum.PICK_UP.getValue()) ? (e.getMode() == 1 ? "往返" : "单程") : "-");
+                excel.setMode(service != null && service.getMode().equals(ServiceModeEnum.PICK_UP.getValue()) ? (e.getMode() == 1 ? "往返" : "单程") : "-");
                 excel.setType(OrderTypeEnum.getLabel(e.getType()));
                 excel.setPetName(e.getPetName());
                 excel.setPetBreed(e.getPetBreed());
                 excel.setCustomerName(e.getCustomerName());
-                excel.setSiteName(areaStationMap.get(e.getSite()).getName());
+                RemoteAreaStationVo site = areaStationMap.get(e.getSite());
+                excel.setSiteName(site != null ? site.getName() : "未知站点");
                 excel.setStoreName(e.getStoreName());
                 excel.setPlacerUsername(e.getPlacerUsername());
                 excel.setCreateTime(Optional.ofNullable(e.getCreateTime()).map(DateUtils::formatDateTime).orElse("-"));
@@ -201,7 +202,8 @@ public class SysSubOrderController extends BaseController {
                         .map(price -> new BigDecimal(price).multiply(new BigDecimal("0.01")))
                         .orElse(null));
                 excel.setCustomerPhone(e.getCustomerPhone());
-                excel.setPetWeight(petMap.get(e.getPet()).getWeight());
+                RemotePetVo pet = petMap.get(e.getPet());
+                excel.setPetWeight(pet != null ? pet.getWeight() : null);
                 excel.setCustomerPetCount(customerPetMap.getOrDefault(e.getCustomer(), new ArrayList<>()).size());
                 excel.setRemark(e.getRemark());
                 return excel;