diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java index dd72ddaa..08b5bea5 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/goods/GoodsController.java @@ -468,16 +468,40 @@ public class GoodsController extends BaseController { // 获取服务店铺信息 Shop serviceShop = null; + if (result.getDeptGoodsCategoryId() != null) { try { // 1. 通过商品的类目ID获取类目信息 DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(result.getDeptGoodsCategoryId()); - if (deptGoodsCategory != null && deptGoodsCategory.getServiceCategoryId() != null) { - logger.debug("商品的服务类目ID: {}", deptGoodsCategory.getServiceCategoryId()); - + Long serviceCategoryId = null; + + if (deptGoodsCategory != null) { + // 先检查当前类目是否有服务类目ID + if (deptGoodsCategory.getServiceCategoryId() != null) { + serviceCategoryId = deptGoodsCategory.getServiceCategoryId(); + logger.debug("当前类目[{}]的服务类目ID: {}", deptGoodsCategory.getGoodsCategoryName(), serviceCategoryId); + } else { + // 如果当前类目没有服务类目ID,查找上一级类目 + logger.debug("当前类目[{}]未配置服务类目ID,查找上一级类目", deptGoodsCategory.getGoodsCategoryName()); + + if (deptGoodsCategory.getParentCategoryId() != null) { + DeptGoodsCategory parentCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(deptGoodsCategory.getParentCategoryId()); + if (parentCategory != null && parentCategory.getServiceCategoryId() != null) { + serviceCategoryId = parentCategory.getServiceCategoryId(); + logger.debug("上一级类目[{}]的服务类目ID: {}", parentCategory.getGoodsCategoryName(), serviceCategoryId); + } else { + logger.debug("上一级类目[{}]也未配置服务类目ID", parentCategory != null ? parentCategory.getGoodsCategoryName() : "null"); + } + } else { + logger.debug("当前类目没有父级类目"); + } + } + } + + if (serviceCategoryId != null) { // 2. 通过服务类目ID查询所有使用该服务类目的商品 Goods queryGoods = new Goods(); - queryGoods.setDeptGoodsCategoryId(deptGoodsCategory.getServiceCategoryId()); + queryGoods.setDeptGoodsCategoryId(serviceCategoryId); queryGoods.setStatus(0); // 只查询上架的商品 List goodsList = goodsService.selectGoodsList(queryGoods); @@ -518,9 +542,11 @@ public class GoodsController extends BaseController { } serviceShop = nearestShop; + } else { + logger.debug("服务类目[{}]下没有找到商品", serviceCategoryId); } } else { - logger.debug("商品类目信息中未配置服务类目ID"); + logger.debug("未找到有效的服务类目ID"); } } catch (Exception e) { logger.warn("获取服务店铺信息失败: {}", e.getMessage()); @@ -528,30 +554,62 @@ public class GoodsController extends BaseController { } // 设置商品店铺和服务店铺信息 - result.setShop(goodsShop); - + if(result.getType()==1){ + serviceShop=goodsShop; + result.setServiceShop(serviceShop); + }else { + result.setShop(goodsShop); + } // 计算距离逻辑 - if (LocationUtils.isValidCoordinate(userLatitude, userLongitude) && serviceShop != null) { - try { - if (LocationUtils.isValidCoordinate(serviceShop.getLatitude(), serviceShop.getLongitude())) { - // 计算距离(米) - double distanceInMeters = LocationUtils.getDistanceInMeters( - userLatitude, userLongitude, - serviceShop.getLatitude(), serviceShop.getLongitude() - ); - - // 格式化距离并设置到商品对象 - serviceShop.setDistance(LocationUtils.formatDistance(distanceInMeters)); - - logger.debug("商品[{}]距离用户: {}", result.getGoodsName(), result.getDistance()); - } else { - // 店铺坐标不完整 + if (LocationUtils.isValidCoordinate(userLatitude, userLongitude)) { + // 计算服务店铺距离 + if (serviceShop != null) { + try { + if (LocationUtils.isValidCoordinate(serviceShop.getLatitude(), serviceShop.getLongitude())) { + // 计算距离(米) + double distanceInMeters = LocationUtils.getDistanceInMeters( + userLatitude, userLongitude, + serviceShop.getLatitude(), serviceShop.getLongitude() + ); + + // 格式化距离并设置到服务店铺对象 + serviceShop.setDistance(LocationUtils.formatDistance(distanceInMeters)); + + logger.debug("商品[{}]服务店铺距离用户: {}", result.getGoodsName(), serviceShop.getDistance()); + } else { + // 店铺坐标不完整 + serviceShop.setDistance(null); + } + } catch (Exception e) { + logger.warn("计算商品[{}]服务店铺距离失败: {}", result.getGoodsName(), e.getMessage()); + // 计算异常时设为null serviceShop.setDistance(null); } - } catch (Exception e) { - logger.warn("计算商品[{}]距离失败: {}", result.getGoodsName(), e.getMessage()); - // 计算异常时设为null - serviceShop.setDistance(null); + } + + // 计算商品店铺距离 + if (goodsShop != null) { + try { + if (LocationUtils.isValidCoordinate(goodsShop.getLatitude(), goodsShop.getLongitude())) { + // 计算距离(米) + double distanceInMeters = LocationUtils.getDistanceInMeters( + userLatitude, userLongitude, + goodsShop.getLatitude(), goodsShop.getLongitude() + ); + + // 格式化距离并设置到商品店铺对象 + goodsShop.setDistance(LocationUtils.formatDistance(distanceInMeters)); + + logger.debug("商品[{}]商品店铺距离用户: {}", result.getGoodsName(), goodsShop.getDistance()); + } else { + // 店铺坐标不完整 + goodsShop.setDistance(null); + } + } catch (Exception e) { + logger.warn("计算商品[{}]商品店铺距离失败: {}", result.getGoodsName(), e.getMessage()); + // 计算异常时设为null + goodsShop.setDistance(null); + } } } result.setServiceShop(serviceShop); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java index 9c1d272e..0218d458 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderController.java @@ -275,6 +275,7 @@ public class OrderController extends BaseController { orderMaster.setGoodsSpecification(request.getGoodsSpecification()); orderMaster.setConsultMode(request.getConsultMode()); orderMaster.setRemark(request.getRemark()); + orderMaster.setOrderImages(request.getOrderImages()); orderMaster.setProvinceId(request.getProvinceId()); orderMaster.setCityId(request.getCityId()); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java index f4599829..84aab41f 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderMasterController.java @@ -839,6 +839,7 @@ public class OrderMasterController extends BaseController { orderMaster.setPayMode(request.getPayMode()); orderMaster.setGoodsBrand(request.getGoodsBrand()); orderMaster.setGoodsSpecification(request.getGoodsSpecification()); + orderMaster.setOrderImages(request.getOrderImages()); //在订单表保存地址信息 orderMaster.setProvinceId(request.getProvinceId()); diff --git a/ghy-common/src/main/java/com/ghy/common/utils/QiniuUtils.java b/ghy-common/src/main/java/com/ghy/common/utils/QiniuUtils.java index ad746040..743165e8 100644 --- a/ghy-common/src/main/java/com/ghy/common/utils/QiniuUtils.java +++ b/ghy-common/src/main/java/com/ghy/common/utils/QiniuUtils.java @@ -32,7 +32,7 @@ public class QiniuUtils { //解析上传成功的结果 DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); - return "http://gqz.opsoul.com/" + putRet.key; + return "https://gqz.opsoul.com/" + putRet.key; } } diff --git a/ghy-order/src/main/java/com/ghy/order/request/SysOrderAssignRequest.java b/ghy-order/src/main/java/com/ghy/order/request/SysOrderAssignRequest.java index 39f40f15..c8f2f3ce 100644 --- a/ghy-order/src/main/java/com/ghy/order/request/SysOrderAssignRequest.java +++ b/ghy-order/src/main/java/com/ghy/order/request/SysOrderAssignRequest.java @@ -23,6 +23,9 @@ public class SysOrderAssignRequest { private String videoUrl; // 图片 private String imageUrl; + + // 下单图片 + private String orderImages; // 商品相关信息 private Long goodsDeptCategoryId;