diff --git a/admin-pc/dist.zip b/admin-pc/dist.zip index 719dcca..578743d 100644 Binary files a/admin-pc/dist.zip and b/admin-pc/dist.zip differ diff --git a/admin-pc/src/views/city/CommonCityList.vue b/admin-pc/src/views/city/CommonCityList.vue index c6662fc..05ef2d9 100644 --- a/admin-pc/src/views/city/CommonCityList.vue +++ b/admin-pc/src/views/city/CommonCityList.vue @@ -12,18 +12,17 @@
新增 - 导出 - - 导入 - - - - - - 删除 - - 批量操作 - + + + + + + + + + + +
diff --git a/admin-pc/src/views/commonVip/CommonVipList.vue b/admin-pc/src/views/commonVip/CommonVipList.vue index e74d3f6..9f0df9e 100644 --- a/admin-pc/src/views/commonVip/CommonVipList.vue +++ b/admin-pc/src/views/commonVip/CommonVipList.vue @@ -12,18 +12,17 @@
新增 - 导出 - - 导入 - - - - - - 删除 - - 批量操作 - + + + + + + + + + + +
diff --git a/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java b/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java index 962c2a3..f632895 100644 --- a/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java @@ -291,13 +291,32 @@ public class AppletOrderServiceImpl implements AppletOrderService { titles.add(commonShop.getName()); + // 计算最低价格 if (commonShop.getPrice() != null){ minEstimatedPrice = commonShop.getPrice().multiply(new BigDecimal(sku.getNum())); - minEstimatedPriceSum = minEstimatedPriceSum.add(commonShop.getPrice().multiply(new BigDecimal(sku.getNum()))); + minEstimatedPriceSum = minEstimatedPriceSum.add(minEstimatedPrice); } + + // 计算最高价格 if (commonShop.getMaxPrice() != null){ maxEstimatedPrice = commonShop.getMaxPrice().multiply(new BigDecimal(sku.getNum())); - maxEstimatedPriceSum = maxEstimatedPriceSum.add(commonShop.getMaxPrice().multiply(new BigDecimal(sku.getNum()))); + maxEstimatedPriceSum = maxEstimatedPriceSum.add(maxEstimatedPrice); + } else { + // 如果没有最高价格,使用最低价格作为最高价格 + maxEstimatedPrice = minEstimatedPrice; + maxEstimatedPriceSum = maxEstimatedPriceSum.add(maxEstimatedPrice); + } + + // 验证价格逻辑:确保最低价格不大于最高价格 + if (minEstimatedPrice.compareTo(maxEstimatedPrice) > 0) { + log.warn("商品 {} 的最低价格({}) 高于最高价格({}),已自动修正", + commonShop.getName(), minEstimatedPrice, maxEstimatedPrice); + // 如果最低价格高于最高价格,将最高价格设置为最低价格 + maxEstimatedPrice = minEstimatedPrice; + // 重新计算总价 + maxEstimatedPriceSum = maxEstimatedPriceSum.subtract(commonShop.getMaxPrice() != null ? + commonShop.getMaxPrice().multiply(new BigDecimal(sku.getNum())) : BigDecimal.ZERO) + .add(maxEstimatedPrice); } @@ -373,7 +392,6 @@ public class AppletOrderServiceImpl implements AppletOrderService { if (isFreeShipping){ commonOrderService.save(cityOrder); - // TODO 包邮直接进行快递上门 进行物流下单 cityOrder.setStatus(1); cityOrder.setState(0); @@ -397,11 +415,28 @@ public class AppletOrderServiceImpl implements AppletOrderService { //计算价格显示 private String calculatePriceDisplay(BigDecimal price, BigDecimal maxPrice){ - // 如果maxPrice为空或者相等,则返回price - if(maxPrice == null || maxPrice.compareTo(BigDecimal.ZERO) == 0){ + // 参数验证 + if (price == null || price.compareTo(BigDecimal.ZERO) < 0) { + return "0"; + } + + // 如果maxPrice为空或者为0,则只返回最低价格 + if(maxPrice == null || maxPrice.compareTo(BigDecimal.ZERO) <= 0){ return price.stripTrailingZeros().toPlainString(); } - // 如果price为空,则返回price-maxPrice + + // 验证价格逻辑:确保最低价格不大于最高价格 + if (price.compareTo(maxPrice) > 0) { + log.warn("最低价格({}) 高于最高价格({}),已自动修正为单价格显示", price, maxPrice); + return price.stripTrailingZeros().toPlainString(); + } + + // 如果最低价格等于最高价格,只显示一个价格 + if (price.compareTo(maxPrice) == 0) { + return price.stripTrailingZeros().toPlainString(); + } + + // 正常情况:显示价格范围 return price.stripTrailingZeros().toPlainString() + " - " + maxPrice.stripTrailingZeros().toPlainString(); } diff --git a/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderTeamServiceImpl.java b/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderTeamServiceImpl.java index 321cc08..0009489 100644 --- a/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderTeamServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderTeamServiceImpl.java @@ -29,6 +29,7 @@ import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -486,26 +487,32 @@ public class AppletOrderTeamServiceImpl implements AppletOrderTeamService { } @Override + @Transactional public Result submitQualityInfo2(String token, String id, String listJson) { if (StringUtils.isBlank(token)){ - Result.error("token不能为空"); + return Result.error("token不能为空"); } HanHaiMember member = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); + if (member == null) { + return Result.error("用户token无效"); + } if (StringUtils.isBlank(listJson)){ - Result.error("list不能为空"); + return Result.error("list不能为空"); } CommonOrder order = commonOrderService.getById(id); if (order == null){ - Result.error("订单无效"); + return Result.error("订单无效"); } List list = JSON.parseArray(listJson, CommonOrder.class); - + if (list == null || list.isEmpty()) { + return Result.error("订单列表为空"); + } BigDecimal priceSum = new BigDecimal(0);//总价格 Integer qualifiedNumSum = 0;//合格数量 @@ -513,11 +520,23 @@ public class AppletOrderTeamServiceImpl implements AppletOrderTeamService { Integer unrecyclableSum = 0;//不可回收数量 for (CommonOrder orderReq : list) { + if (orderReq == null) { + continue; // 跳过null的订单项 + } - priceSum = priceSum.add(orderReq.getPrice()); - qualifiedNumSum += orderReq.getQualifiedNum(); - noQualifiedNumSum += orderReq.getNoQualifiedNum(); - unrecyclableSum += orderReq.getUnrecyclable(); + // 安全地处理可能为null的数值 + if (orderReq.getPrice() != null) { + priceSum = priceSum.add(orderReq.getPrice()); + } + if (orderReq.getQualifiedNum() != null) { + qualifiedNumSum += orderReq.getQualifiedNum(); + } + if (orderReq.getNoQualifiedNum() != null) { + noQualifiedNumSum += orderReq.getNoQualifiedNum(); + } + if (orderReq.getUnrecyclable() != null) { + unrecyclableSum += orderReq.getUnrecyclable(); + } //设置用户 orderReq.setUserId(member.getId()); @@ -525,16 +544,24 @@ public class AppletOrderTeamServiceImpl implements AppletOrderTeamService { orderReq.setHasChild("1"); orderReq.setType(1); + + //设置商品 if (StringUtils.isNotBlank(orderReq.getShopId())){ CommonShop shop = commonShopService.getById(orderReq.getShopId()); - orderReq.setUnit(shop.getUnit()); - orderReq.setImage(shop.getImage()); - orderReq.setTitle(shop.getName()); - orderReq.setDetails(shop.getService()); - orderReq.setShopClass(shop.getShopClass()); - orderReq.setCreateTime(new Date()); - }else if (orderReq.getTestingStatus() == 1){ + if (shop != null) { + orderReq.setUnit(shop.getUnit()); + orderReq.setImage(shop.getImage()); + orderReq.setTitle(shop.getName()); + orderReq.setDetails(shop.getService()); + orderReq.setShopClass(shop.getShopClass()); + orderReq.setCreateTime(new Date()); + } else { + // 商品不存在时的处理 + orderReq.setTitle("商品不存在"); + orderReq.setCreateTime(new Date()); + } + }else if (orderReq.getTestingStatus() != null && orderReq.getTestingStatus() == 1){ //质量问题 orderReq.setTitle("质量问题"); }else {