From 9db20efd8863fbd4c54865a81d7d4c3f9b33d2ff Mon Sep 17 00:00:00 2001 From: cb <275647614@qq.com> Date: Sat, 13 Sep 2025 17:30:50 +0800 Subject: [PATCH] no message --- .../web/controller/order/OrderController.java | 10 +- .../order/OrderDetailController.java | 329 +++++++++--------- .../order/OrderMasterController.java | 1 + 3 files changed, 176 insertions(+), 164 deletions(-) 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 03584fd9..ba719a29 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 @@ -1713,6 +1713,7 @@ public class OrderController extends BaseController { && master.getWorkerId() != null; logger.info("是否为监控单{}主单id{}", condition, master); // 编辑返回属性 + orderListResponse.setWorkerRemark(master.getWorkerRemark()); orderListResponse.setGoods(goods); orderListResponse.setIsNeedBill(master.getIsNeedBill()); orderListResponse.setIsMonitoredOrder(master.getIsMonitoredOrder()); @@ -1786,7 +1787,9 @@ public class OrderController extends BaseController { orderListResponse.setProvinceName(array[0]); orderListResponse.setCityName(array[1]); orderListResponse.setCountryName(array[2]); - orderListResponse.setStreetName(array[3]); + if (array.length>3){ + orderListResponse.setStreetName(array[3]); + } orderListResponse.setProvinceId(customerAddress.getProvinceId()); orderListResponse.setCityId(customerAddress.getCityId()); orderListResponse.setCountryId(customerAddress.getCountryId()); @@ -1899,6 +1902,7 @@ public class OrderController extends BaseController { // List afterServiceRecordList =afterServiceRecordService.selectAfterServiceRecordList(afterServiceRecord); // 编辑返回属性 + orderListResponse.setWorkerRemark(detail.getWorkerRemark()); orderListResponse.setGoods(goods); orderListResponse.setGoodsBrand(orderMaster.getGoodsBrand()); orderListResponse.setGoodsSpecification(orderMaster.getGoodsSpecification()); @@ -1960,7 +1964,9 @@ public class OrderController extends BaseController { orderListResponse.setProvinceName(array[0]); orderListResponse.setCityName(array[1]); orderListResponse.setCountryName(array[2]); - orderListResponse.setStreetName(array[3]); + if (array.length>3){ + orderListResponse.setStreetName(array[3]); + } orderListResponse.setProvinceId(customerAddress.getProvinceId()); orderListResponse.setCityId(customerAddress.getCityId()); orderListResponse.setCountryId(customerAddress.getCountryId()); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index aed3b914..afe7cc04 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -125,14 +125,14 @@ public class OrderDetailController extends BaseController { private IInsuranceManagerService insuranceManagerService; @Autowired private InsuranceService insuranceService; - @Autowired + @Autowired private ShopService shopService; @Resource private IOrderAttachmentRecordService orderAttachmentRecordService; @Resource private AdapayService adapayService; - + @Autowired private BaiduMapUtils baiduMapUtils; @@ -151,13 +151,13 @@ public class OrderDetailController extends BaseController { // 直接使用afterServiceStatus字段查询售后纠纷订单 orderDetail.setAfterServiceStatus(1); orderDetail.setOrderStatus(null); // 清除orderStatus条件,避免冲突 - } else if (orderDetail.getSearchAfterList() !=null && orderDetail.getSearchAfterList()) { + } else if (orderDetail.getSearchAfterList() != null && orderDetail.getSearchAfterList()) { // 保持原有的售后查询逻辑 List rows = this.afterServiceList(orderDetail).getRows(); StringBuilder detailIds = new StringBuilder(); - if(CollectionUtils.isNotEmpty(rows)){ - rows.forEach(model->{ - OrderListResponse response = (OrderListResponse)model; + if (CollectionUtils.isNotEmpty(rows)) { + rows.forEach(model -> { + OrderListResponse response = (OrderListResponse) model; detailIds.append(response.getOrderDetailId()).append(","); }); } @@ -167,24 +167,24 @@ public class OrderDetailController extends BaseController { } } - if(StringUtils.isNotEmpty(orderDetail.getWorkerName()) || StringUtils.isNotEmpty(orderDetail.getWorkerPhone())){ + if (StringUtils.isNotEmpty(orderDetail.getWorkerName()) || StringUtils.isNotEmpty(orderDetail.getWorkerPhone())) { Worker param = new Worker(); param.setName(orderDetail.getWorkerName()); param.setPhone(orderDetail.getWorkerPhone()); List workList = workerService.getWorkList(param); List ids = workList.stream().map(Worker::getWorkerId).collect(Collectors.toList()); orderDetail.setWorkerIds(ids); - if(CollectionUtils.isEmpty(ids)){ + if (CollectionUtils.isEmpty(ids)) { return getDataTable(new ArrayList<>()); } } - if(orderDetail.getSysPayStatus() != null){ + if (orderDetail.getSysPayStatus() != null) { FinancialMaster param = new FinancialMaster(); param.setPayStatus(orderDetail.getSysPayStatus()); List financialMasters = financialMasterService.selectFinancialMasterList(param); List masterIds = financialMasters.stream().map(FinancialMaster::getOrderMasterId).collect(Collectors.toList()); orderDetail.setMasterIds(masterIds); - if(CollectionUtils.isEmpty(masterIds)){ + if (CollectionUtils.isEmpty(masterIds)) { return getDataTable(new ArrayList<>()); } } @@ -224,7 +224,7 @@ public class OrderDetailController extends BaseController { .stream().collect(Collectors.toMap(Worker::getWorkerId, x -> x, (x, y) -> y)); for (OrderDetail detail : orderDetails) { - if(StringUtils.isNotEmpty(orderDetail.getOrderStatusName())){ + if (StringUtils.isNotEmpty(orderDetail.getOrderStatusName())) { detail.setOrderStatusName(orderDetail.getOrderStatusName()); } // 确保afterServiceStatus字段不为null @@ -238,8 +238,8 @@ public class OrderDetailController extends BaseController { detail.setCustomerPhone(customer.getPhone()); } OrderMaster orderMaster = orderMasterMap.get(detail.getOrderMasterId()); - if(orderMaster.getExpectTimeStart() != null && orderMaster.getExpectTimeEnd() != null){ - detail.setMixExpectTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm",orderMaster.getExpectTimeStart()) +"-"+ DateUtils.parseDateToStr("HH:mm",orderMaster.getExpectTimeEnd())); + if (orderMaster.getExpectTimeStart() != null && orderMaster.getExpectTimeEnd() != null) { + detail.setMixExpectTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm", orderMaster.getExpectTimeStart()) + "-" + DateUtils.parseDateToStr("HH:mm", orderMaster.getExpectTimeEnd())); } if (orderMaster != null) { detail.setPayStatus(orderMaster.getPayStatus()); @@ -253,27 +253,27 @@ public class OrderDetailController extends BaseController { if (good != null) { detail.setGoods(good); // 填充商品三级类目 - if(good.getDeptGoodsCategoryId() != null){ + if (good.getDeptGoodsCategoryId() != null) { Long categoryId = null; // 前端发单和后台派单 - if(StringUtils.isEmpty(orderMaster.getOrderMode())){ + if (StringUtils.isEmpty(orderMaster.getOrderMode())) { DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(good.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } - }else { + } else { DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(good.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } } - if(categoryId != null){ + if (categoryId != null) { GoodsCategory one = goodsCategoryService.selectById(categoryId); - if(one != null && one.getParentCategoryId() != null){ + if (one != null && one.getParentCategoryId() != null) { GoodsCategory two = goodsCategoryService.selectById(one.getParentCategoryId()); - if(two != null && two.getParentCategoryId() != null){ + if (two != null && two.getParentCategoryId() != null) { GoodsCategory three = goodsCategoryService.selectById(two.getParentCategoryId()); - if(three != null){ + if (three != null) { int totalNum = orderGoodsService.selectByOrderDetailId(detail.getId()).stream().mapToInt(OrderGoods::getGoodsNum).sum(); detail.setConsoleGoodsName("【" + three.getGoodsCategoryName() + "-" + two.getGoodsCategoryName() @@ -289,9 +289,9 @@ public class OrderDetailController extends BaseController { CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); if (customerAddress != null) { SysArea sysArea; - if(customerAddress.getStreetId()!=null){ + if (customerAddress.getStreetId() != null) { sysArea = sysAreaService.selectById(customerAddress.getStreetId()); - }else { + } else { sysArea = sysAreaService.selectById(customerAddress.getCountryId()); } String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress(); @@ -308,9 +308,9 @@ public class OrderDetailController extends BaseController { orderCallRecordParam.setOrderType("01"); orderCallRecordParam.setOrderId(detail.getOrderMasterId()); List orderCallRecords = orderCallRecordService.selectOrderCallRecordList(orderCallRecordParam); - if(CollectionUtils.isNotEmpty(orderCallRecords)){ + if (CollectionUtils.isNotEmpty(orderCallRecords)) { OrderCallRecord newOne = orderCallRecords.stream().sorted(Comparator.comparing(OrderCallRecord::getCallTime).reversed()).collect(Collectors.toList()).get(0); - detail.setLastCallTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",newOne.getCallTime()) + " 拨号次数x" + orderCallRecords.size()); + detail.setLastCallTime(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", newOne.getCallTime()) + " 拨号次数x" + orderCallRecords.size()); } FinancialChangeRecord fc = fcMap.get(detail.getId()); if (fc != null) { @@ -322,7 +322,7 @@ public class OrderDetailController extends BaseController { param.setImgType(ImgType.FINISH_IMG.getId()); List imgsList = goodsImgsService.qryGoodsImgs(param); StringBuilder stringBuilder = new StringBuilder(); - imgsList.forEach(model->{ + imgsList.forEach(model -> { stringBuilder.append("查看图片"); }); detail.setOrderImgs(stringBuilder.toString()); @@ -366,7 +366,7 @@ public class OrderDetailController extends BaseController { if (worker != null) { // 师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); - workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname()+ workerRealInfo.getName(); + workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname() + workerRealInfo.getName(); } workerRealInfo = null; // 大师傅信息 @@ -374,7 +374,7 @@ public class OrderDetailController extends BaseController { if (masterWorker != null) { // 大师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); - masterWorkerName = workerRealInfo == null ? masterWorker.getName() : workerRealInfo.getSurname()+ workerRealInfo.getName(); + masterWorkerName = workerRealInfo == null ? masterWorker.getName() : workerRealInfo.getSurname() + workerRealInfo.getName(); masterCompanyName = workerRealInfo == null ? null : workerRealInfo.getCompanyName(); } @@ -390,27 +390,27 @@ public class OrderDetailController extends BaseController { Goods goods = goodsService.selectById(orderMaster.getGoodsId()); if (goods != null) { // 填充商品三级类目 - if(goods.getDeptGoodsCategoryId() != null){ + if (goods.getDeptGoodsCategoryId() != null) { Long categoryId = null; // 前端发单和后台派单 - if(StringUtils.isEmpty(orderMaster.getOrderMode())){ + if (StringUtils.isEmpty(orderMaster.getOrderMode())) { DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } - }else { + } else { DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goods.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } } - if(categoryId != null){ + if (categoryId != null) { GoodsCategory one = goodsCategoryService.selectById(categoryId); - if(one != null && one.getParentCategoryId() != null){ + if (one != null && one.getParentCategoryId() != null) { GoodsCategory two = goodsCategoryService.selectById(one.getParentCategoryId()); - if(two != null && two.getParentCategoryId() != null){ + if (two != null && two.getParentCategoryId() != null) { GoodsCategory three = goodsCategoryService.selectById(two.getParentCategoryId()); - if(three != null){ + if (three != null) { goods.setGoodsName(three.getGoodsCategoryName() + "-" + two.getGoodsCategoryName() + "-" + one.getGoodsCategoryName()); @@ -436,9 +436,9 @@ public class OrderDetailController extends BaseController { // 地址信息 CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); SysArea sysArea; - if(customerAddress.getStreetId()!=null){ + if (customerAddress.getStreetId() != null) { sysArea = sysAreaService.selectById(customerAddress.getStreetId()); - }else { + } else { sysArea = sysAreaService.selectById(customerAddress.getCountryId()); } String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress(); @@ -491,36 +491,36 @@ public class OrderDetailController extends BaseController { OrderAttachmentRecord param = new OrderAttachmentRecord(); param.setOrderDetailId(detail.getId()); List orderAttachmentRecordList = orderAttachmentRecordService.selectOrderAttachmentRecordList(param); - BigDecimal addMoneyTotal= BigDecimal.ZERO; - String addMoneyRemark=null; + BigDecimal addMoneyTotal = BigDecimal.ZERO; + String addMoneyRemark = null; - for (FinancialChangeRecord financialChangeRecord:financialChangeRecords){ - addMoneyTotal= addMoneyTotal.add(financialChangeRecord.getChangeMoney()); - if (StringUtils.isNotEmpty(financialChangeRecord.getRemark())){ - addMoneyRemark=financialChangeRecord.getRemark(); + for (FinancialChangeRecord financialChangeRecord : financialChangeRecords) { + addMoneyTotal = addMoneyTotal.add(financialChangeRecord.getChangeMoney()); + if (StringUtils.isNotEmpty(financialChangeRecord.getRemark())) { + addMoneyRemark = financialChangeRecord.getRemark(); } OrderAttachmentRecord param1 = new OrderAttachmentRecord(); param1.setFinancialChangeRecordId(financialChangeRecord.getId()); - BigDecimal attachmentMoney= BigDecimal.ZERO; - List orderAttachmentRecords=orderAttachmentRecordService.selectOrderAttachmentRecordList(param1); - logger.info("参数传递{},配件的金额查询为{}",orderAttachmentRecords,param1); - if(orderAttachmentRecords!=null&&orderAttachmentRecords.size()>0){ - attachmentMoney= attachmentMoney.add(orderAttachmentRecords.get(0).getAttachMoney()); + BigDecimal attachmentMoney = BigDecimal.ZERO; + List orderAttachmentRecords = orderAttachmentRecordService.selectOrderAttachmentRecordList(param1); + logger.info("参数传递{},配件的金额查询为{}", orderAttachmentRecords, param1); + if (orderAttachmentRecords != null && orderAttachmentRecords.size() > 0) { + attachmentMoney = attachmentMoney.add(orderAttachmentRecords.get(0).getAttachMoney()); financialChangeRecord.setAttachmentMoney(attachmentMoney); - logger.info("配件的金为{}",attachmentMoney); + logger.info("配件的金为{}", attachmentMoney); } } - for (OrderAttachmentRecord orderAttachmentRecord:orderAttachmentRecordList){ - addMoneyTotal= addMoneyTotal.add(orderAttachmentRecord.getAttachMoney()); + for (OrderAttachmentRecord orderAttachmentRecord : orderAttachmentRecordList) { + addMoneyTotal = addMoneyTotal.add(orderAttachmentRecord.getAttachMoney()); } - logger.info("所有的加价订单{}",financialChangeRecords); + logger.info("所有的加价订单{}", financialChangeRecords); + + Shop shop = shopService.getShop(goods.getShopId()); - Shop shop=shopService.getShop(goods.getShopId()); - // 计算主单地址与店铺的距离 shop = calculateShopDistance(orderMaster, shop); - + orderListResponse.setShop(shop); // 编辑返回属性 orderListResponse.setTrackingNumber(detail.getTrackingNumber()); @@ -548,13 +548,13 @@ public class OrderDetailController extends BaseController { orderListResponse.setMasterWorkerName(masterWorkerName); orderListResponse.setMasterCompanyName(masterCompanyName); orderListResponse.setMasterWorkerPhone(masterWorker == null ? "" : masterWorker.getPhone()); - orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getName())?orderMaster.getName():customerAddress.getName()); - orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone())?orderMaster.getPhone():customerAddress.getPhone()); + orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName()); + orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone()); orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); orderListResponse.setStandardList(standardList); - orderListResponse.setAddress(StringUtils.isNotEmpty(orderMaster.getAddress())?orderMaster.getAddress():completeAddress); + orderListResponse.setAddress(StringUtils.isNotEmpty(orderMaster.getAddress()) ? orderMaster.getAddress() : completeAddress); orderListResponse.setServerTime(detail.getRevTime()); orderListResponse.setExpectTimeStart(detail.getExpectTimeStart()); orderListResponse.setExpectTimeEnd(detail.getExpectTimeEnd()); @@ -585,11 +585,13 @@ public class OrderDetailController extends BaseController { orderListResponse.setName(orderMaster.getName()); String addressSysArea = sysArea.getMergerName(); String[] array = addressSysArea.split(","); - if (org.apache.commons.lang3.StringUtils.isEmpty(orderMaster.getProvinceName())){ + if (org.apache.commons.lang3.StringUtils.isEmpty(orderMaster.getProvinceName())) { orderListResponse.setProvinceName(array[0]); orderListResponse.setCityName(array[1]); orderListResponse.setCountryName(array[2]); - orderListResponse.setStreetName(array[3]); + if (array.length > 3) { + orderListResponse.setStreetName(array[3]); + } orderListResponse.setProvinceId(customerAddress.getProvinceId()); orderListResponse.setCityId(customerAddress.getCityId()); orderListResponse.setCountryId(customerAddress.getCountryId()); @@ -597,14 +599,14 @@ public class OrderDetailController extends BaseController { orderListResponse.setPhone(customerAddress.getPhone()); orderListResponse.setName(customerAddress.getName()); } - if(orderMaster.getInsuranceId() != null){ + if (orderMaster.getInsuranceId() != null) { InsuranceManager manager = insuranceManagerService.selectInsuranceManagerById(orderMaster.getInsuranceId()); - if(manager != null){ + if (manager != null) { orderListResponse.setInsuranceManager(manager); } } - if(!CollectionUtils.isEmpty(financialChangeRecords)){ + if (!CollectionUtils.isEmpty(financialChangeRecords)) { BigDecimal totalAdd = financialChangeRecords.stream() .filter(record -> record.getPayStatus() == 1) // 筛选 paystatus == 1 的记录 .map(FinancialChangeRecord::getChangeMoney) // 提取 changeMoney @@ -654,32 +656,32 @@ public class OrderDetailController extends BaseController { masterFee = totalAdd.multiply(teamRete).setScale(2, RoundingMode.UP); } // 如果是大师傅自己接单,则不需要抽成 - if(detail.getWorkerId().equals(orderMaster.getWorkerId())){ + if (detail.getWorkerId().equals(orderMaster.getWorkerId())) { masterFee = BigDecimal.ZERO; } // 上门师傅应得加价的报酬 BigDecimal workerFee = financialChangeRecords.stream() - .filter(record -> record != null && record.getPayStatus() == 1) - .map(record -> { - BigDecimal money = record.getWorkerMoney(); - return money != null ? money : BigDecimal.ZERO; // 处理 getWorkerMoney() 返回 null 的情况 - }).reduce(BigDecimal.ZERO, BigDecimal::add); - OrderAttachmentRecord orderAttachmentRecord=new OrderAttachmentRecord(); + .filter(record -> record != null && record.getPayStatus() == 1) + .map(record -> { + BigDecimal money = record.getWorkerMoney(); + return money != null ? money : BigDecimal.ZERO; // 处理 getWorkerMoney() 返回 null 的情况 + }).reduce(BigDecimal.ZERO, BigDecimal::add); + OrderAttachmentRecord orderAttachmentRecord = new OrderAttachmentRecord(); orderAttachmentRecord.setOrderDetailId(detail.getId()); - List orderAttachmentRecords=orderAttachmentRecordService.selectOrderAttachmentRecordList(orderAttachmentRecord); + List orderAttachmentRecords = orderAttachmentRecordService.selectOrderAttachmentRecordList(orderAttachmentRecord); //配件费的实际获取金额计算费率 BigDecimal rate = BigDecimal.valueOf(0.99); - List changeRecords= financialChangeRecords.stream() + List changeRecords = financialChangeRecords.stream() .filter(record -> record.getPayStatus() == 1).collect(Collectors.toList()); - BigDecimal attachmentMoney=BigDecimal.ZERO; - if (!changeRecords.isEmpty()){ - attachmentMoney = orderAttachmentRecords.stream() + BigDecimal attachmentMoney = BigDecimal.ZERO; + if (!changeRecords.isEmpty()) { + attachmentMoney = orderAttachmentRecords.stream() .filter(record -> StringUtils.isNotEmpty(record.getPaymentId())) .map(OrderAttachmentRecord::getAttachMoney) - .map(attachMoney ->attachMoney.multiply(rate).setScale(2, RoundingMode.DOWN)) + .map(attachMoney -> attachMoney.multiply(rate).setScale(2, RoundingMode.DOWN)) .reduce(BigDecimal.ZERO, BigDecimal::add); } - logger.info("是否支付{}加价的金额{}配件费{}总服务金额为{}",changeRecords,workerFee,attachmentMoney,orderListResponse.getPayMoney().add(workerFee).add(attachmentMoney)); + logger.info("是否支付{}加价的金额{}配件费{}总服务金额为{}", changeRecords, workerFee, attachmentMoney, orderListResponse.getPayMoney().add(workerFee).add(attachmentMoney)); orderListResponse.setPayAddMoney(orderListResponse.getPayMoney().add(workerFee).add(attachmentMoney)); } @@ -715,7 +717,7 @@ public class OrderDetailController extends BaseController { if (worker != null) { // 师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); - workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname()+ workerRealInfo.getName(); + workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname() + workerRealInfo.getName(); } // 消费者信息 @@ -726,27 +728,27 @@ public class OrderDetailController extends BaseController { Goods goods = goodsService.selectById(orderMaster.getGoodsId()); // 填充商品三级类目 - if(goods.getDeptGoodsCategoryId() != null){ + if (goods.getDeptGoodsCategoryId() != null) { Long categoryId = null; // 前端发单和后台派单 - if(StringUtils.isEmpty(orderMaster.getOrderMode())){ + if (StringUtils.isEmpty(orderMaster.getOrderMode())) { DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.selectOneByGoodsCategoryId(goods.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } - }else { + } else { DeptGoodsCategory deptGoodsCategory = deptGoodsCategoryService.get(goods.getDeptGoodsCategoryId()); - if(deptGoodsCategory != null){ + if (deptGoodsCategory != null) { categoryId = deptGoodsCategory.getGoodsCategoryId(); } } - if(categoryId != null){ + if (categoryId != null) { GoodsCategory one = goodsCategoryService.selectById(categoryId); - if(one != null && one.getParentCategoryId() != null){ + if (one != null && one.getParentCategoryId() != null) { GoodsCategory two = goodsCategoryService.selectById(one.getParentCategoryId()); - if(two != null && two.getParentCategoryId() != null){ + if (two != null && two.getParentCategoryId() != null) { GoodsCategory three = goodsCategoryService.selectById(two.getParentCategoryId()); - if(three != null){ + if (three != null) { goods.setGoodsName(three.getGoodsCategoryName() + "-" + two.getGoodsCategoryName() + "-" + one.getGoodsCategoryName()); @@ -766,9 +768,9 @@ public class OrderDetailController extends BaseController { // 地址信息 CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); SysArea sysArea; - if(customerAddress.getStreetId()!=null){ + if (customerAddress.getStreetId() != null) { sysArea = sysAreaService.selectById(customerAddress.getStreetId()); - }else { + } else { sysArea = sysAreaService.selectById(customerAddress.getCountryId()); } String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress(); @@ -824,13 +826,13 @@ public class OrderDetailController extends BaseController { orderListResponse.setMasterWorkerId(masterWorker.getWorkerId()); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); orderListResponse.setMasterWorkerName(masterWorker.getName()); - orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getName())?orderMaster.getName():customerAddress.getName()); - orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone())?orderMaster.getPhone():customerAddress.getPhone()); + orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName()); + orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone()); orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); orderListResponse.setStandardList(standardList); - orderListResponse.setAddress(StringUtils.isNotEmpty(orderMaster.getAddress())?orderMaster.getAddress():completeAddress); + orderListResponse.setAddress(StringUtils.isNotEmpty(orderMaster.getAddress()) ? orderMaster.getAddress() : completeAddress); orderListResponse.setServerTime(detail.getRevTime()); orderListResponse.setExpectTimeStart(detail.getExpectTimeStart()); orderListResponse.setExpectTimeEnd(detail.getExpectTimeEnd()); @@ -868,11 +870,11 @@ public class OrderDetailController extends BaseController { orderListResponse.setName(orderMaster.getName()); String addressSysArea = sysArea.getMergerName(); String[] array = addressSysArea.split(","); - if (org.apache.commons.lang3.StringUtils.isEmpty(orderMaster.getProvinceName())){ + if (org.apache.commons.lang3.StringUtils.isEmpty(orderMaster.getProvinceName())) { orderListResponse.setProvinceName(array[0]); orderListResponse.setCityName(array[1]); orderListResponse.setCountryName(array[2]); - if (array.length>3){ + if (array.length > 3) { orderListResponse.setStreetName(array[3]); } orderListResponse.setProvinceId(customerAddress.getProvinceId()); @@ -882,9 +884,9 @@ public class OrderDetailController extends BaseController { orderListResponse.setPhone(customerAddress.getPhone()); orderListResponse.setName(customerAddress.getName()); } - if(orderMaster.getInsuranceId() != null){ + if (orderMaster.getInsuranceId() != null) { InsuranceManager manager = insuranceManagerService.selectInsuranceManagerById(orderMaster.getInsuranceId()); - if(manager != null){ + if (manager != null) { orderListResponse.setInsuranceManager(manager); } } @@ -930,7 +932,7 @@ public class OrderDetailController extends BaseController { if (worker != null) { // 师傅实名信息 workerRealInfo = workerCertificationService.selectByWorkerId(orderMaster.getWorkerId()); - workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname()+ workerRealInfo.getName(); + workerName = workerRealInfo == null ? worker.getName() : workerRealInfo.getSurname() + workerRealInfo.getName(); } // 消费者信息 @@ -962,9 +964,9 @@ public class OrderDetailController extends BaseController { // 地址信息 CustomerAddress customerAddress = addressService.selectByCustomerAddressId(orderMaster.getAddressId()); SysArea sysArea; - if(customerAddress.getStreetId()!=null){ + if (customerAddress.getStreetId() != null) { sysArea = sysAreaService.selectById(customerAddress.getStreetId()); - }else { + } else { sysArea = sysAreaService.selectById(customerAddress.getCountryId()); } String completeAddress = sysArea.getMergerName().replaceAll(",", "") + customerAddress.getAddress(); @@ -1015,13 +1017,13 @@ public class OrderDetailController extends BaseController { orderListResponse.setTotalMoney(financialDetail.getTotalMoney()); orderListResponse.setWorkerName(workerName); orderListResponse.setWorkerPhone(worker == null ? "" : worker.getPhone()); - orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getName())?orderMaster.getName():customerAddress.getName()); - orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone())?orderMaster.getPhone():customerAddress.getPhone()); + orderListResponse.setCustomerName(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getName()) ? orderMaster.getName() : customerAddress.getName()); + orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone()); orderListResponse.setOrderStatus(detail.getOrderStatus()); orderListResponse.setPayStatus(orderMaster.getPayStatus()); orderListResponse.setPayType(orderMaster.getPayType()); orderListResponse.setStandardList(standardList); - orderListResponse.setAddress(StringUtils.isNotEmpty(orderMaster.getAddress())?orderMaster.getAddress():completeAddress); + orderListResponse.setAddress(StringUtils.isNotEmpty(orderMaster.getAddress()) ? orderMaster.getAddress() : completeAddress); orderListResponse.setServerTime(detail.getRevTime()); orderListResponse.setExpectTimeStart(detail.getExpectTimeStart()); orderListResponse.setExpectTimeEnd(detail.getExpectTimeEnd()); @@ -1048,11 +1050,13 @@ public class OrderDetailController extends BaseController { orderListResponse.setName(orderMaster.getName()); String addressSysArea = sysArea.getMergerName(); String[] array = addressSysArea.split(","); - if (org.apache.commons.lang3.StringUtils.isEmpty(orderMaster.getProvinceName())){ + if (org.apache.commons.lang3.StringUtils.isEmpty(orderMaster.getProvinceName())) { orderListResponse.setProvinceName(array[0]); orderListResponse.setCityName(array[1]); orderListResponse.setCountryName(array[2]); - orderListResponse.setStreetName(array[3]); + if (array.length > 3) { + orderListResponse.setStreetName(array[3]); + } orderListResponse.setProvinceId(customerAddress.getProvinceId()); orderListResponse.setCityId(customerAddress.getCityId()); orderListResponse.setCountryId(customerAddress.getCountryId()); @@ -1144,7 +1148,7 @@ public class OrderDetailController extends BaseController { // 更新订单状态为上门 try { insuranceService.clockInsurance(model.getId()); - }catch (Exception e){ + } catch (Exception e) { logger.error("订单上门返回异常:{}", e.getMessage()); e.printStackTrace(); } @@ -1279,7 +1283,7 @@ public class OrderDetailController extends BaseController { updateOrderDetail.setWorkFinishTime(workFinishTime); updateOrderDetail.setOrderStatus(OrderStatus.FINISH_CHECK.code()); updateOrderDetail.setRemark(request.getRemark()); - + // 查询订单商品对应的类目倒计时小时数,计算分账倒计时结束时间 try { List orderGoodsList = orderGoodsService.selectByOrderDetailId(request.getOrderDetailId()); @@ -1294,11 +1298,11 @@ public class OrderDetailController extends BaseController { // 计算分账倒计时结束时间:workFinishTime + 倒计时小时数 long countdownMillis = countdownHours * 60 * 60 * 1000L; Date shareAccountCountdownEndTime = new Date(workFinishTime.getTime() + countdownMillis); - + updateOrderDetail.setShareAccountCountdownEndTime(shareAccountCountdownEndTime); updateOrderDetail.setShareAccountCountdownDuration(countdownHours); - - logger.info("订单[{}]设置分账倒计时:完单时间={}, 倒计时小时数={}, 分账倒计时结束时间={}", + + logger.info("订单[{}]设置分账倒计时:完单时间={}, 倒计时小时数={}, 分账倒计时结束时间={}", request.getOrderDetailId(), workFinishTime, countdownHours, shareAccountCountdownEndTime); } else { logger.warn("订单[{}]未找到类目倒计时小时数配置,跳过分账倒计时设置", request.getOrderDetailId()); @@ -1308,7 +1312,7 @@ public class OrderDetailController extends BaseController { } catch (Exception e) { logger.error("设置分账倒计时失败,订单ID:{}", request.getOrderDetailId(), e); } - + int affectedRow = orderDetailService.updateOrderDetail(updateOrderDetail); Assert.isTrue(affectedRow == 1, "子订单修改失败,orderDetail=" + orderDetail); @@ -1351,7 +1355,7 @@ public class OrderDetailController extends BaseController { orderDetail.setTimeout(0); } int i = orderDetailService.updateOrderDetail(orderDetail); - if(i > 0){ + if (i > 0) { OrderCallRecord param = new OrderCallRecord(); param.setOrderId(orderDetail.getId()); param.setCallTime(new Date()); @@ -1397,19 +1401,19 @@ public class OrderDetailController extends BaseController { OrderAttachmentRecord orderAttachmentRecord = new OrderAttachmentRecord(); orderAttachmentRecord.setFinancialChangeRecordId(fcr.getId()); List orderAttachmentRecords = orderAttachmentRecordService.selectOrderAttachmentRecordList(orderAttachmentRecord); - + // 创建一个定时任务,延迟1分钟后执行退款操作 ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(1); scheduledExecutor.schedule(() -> { for (OrderAttachmentRecord orderAttachmentRecord1 : orderAttachmentRecords) { executor.execute(() -> { try { - JSONObject response = adapayService.payReverse(om.getDeptId(), orderAttachmentRecord1.getPaymentId(), - String.valueOf(orderAttachmentRecord1.getAttachMoney()), RefundType.RCG); - logger.info("配件退款成功: paymentId={}, amount={},response{}", orderAttachmentRecord1.getPaymentId(), orderAttachmentRecord1.getAttachMoney(),response); + JSONObject response = adapayService.payReverse(om.getDeptId(), orderAttachmentRecord1.getPaymentId(), + String.valueOf(orderAttachmentRecord1.getAttachMoney()), RefundType.RCG); + logger.info("配件退款成功: paymentId={}, amount={},response{}", orderAttachmentRecord1.getPaymentId(), orderAttachmentRecord1.getAttachMoney(), response); } catch (BaseAdaPayException e) { - logger.error("配件退款失败: paymentId={}, amount={}, error={}", - orderAttachmentRecord1.getPaymentId(), orderAttachmentRecord1.getAttachMoney(), e.getMessage(), e); + logger.error("配件退款失败: paymentId={}, amount={}, error={}", + orderAttachmentRecord1.getPaymentId(), orderAttachmentRecord1.getAttachMoney(), e.getMessage(), e); } }); } @@ -1437,8 +1441,8 @@ public class OrderDetailController extends BaseController { orderMaster2Update.setOrderStatus(OrderStatus.PLAIN.code()); // 查询是否还有派单记录,没有的话需要重置主单是否自己承接的字段为NULL // List existOrderGoods = orderGoodsService.selectByOrderMasterId(od.getOrderMasterId()); - List orderDetailList=orderDetailService.selectByOrderMasterId(od.getOrderMasterId()); - if (CollectionUtils.isEmpty(orderDetailList)) { + List orderDetailList = orderDetailService.selectByOrderMasterId(od.getOrderMasterId()); + if (CollectionUtils.isEmpty(orderDetailList)) { orderMaster2Update.setResetAllSelfAssigned(true); } // 更新主单是否全部派完 @@ -1452,10 +1456,10 @@ public class OrderDetailController extends BaseController { orderBehaviorService.insert(orderBehavior); // 拒单 - - logger.info("师傅资料{}",masterWorker); - WorkerCertification workerRealInfo = workerCertificationService.selectByWorkerId(od.getWorkerId()); - logger.info("认证师傅资料{}",workerRealInfo); + + logger.info("师傅资料{}", masterWorker); + WorkerCertification workerRealInfo = workerCertificationService.selectByWorkerId(od.getWorkerId()); + logger.info("认证师傅资料{}", workerRealInfo); try { // 推送公众号通知数据。 // 消息组装。 @@ -1467,7 +1471,7 @@ public class OrderDetailController extends BaseController { CustomerAddress address = addressService.selectByCustomerAddressId(om.getAddressId()); //拒单人员 - paramsNew.put("thing13",workerRealInfo.getSurname()+ workerRealInfo.getName()); + paramsNew.put("thing13", workerRealInfo.getSurname() + workerRealInfo.getName()); paramsNew.put("thing7", address.getName()); // 预约时间 paramsNew.put("time5", com.ghy.common.utils.DateUtils.parseDateToStr("yyyy年MM月dd日 HH:mm", new Date())); @@ -1484,7 +1488,7 @@ public class OrderDetailController extends BaseController { public AjaxResult changePrice(@Valid @RequestBody OrderChangePriceRequest request) { try { Assert.notNull(request.getChangeMoney(), "报价不能为空"); - return toAjax(orderDetailService.changePrice(request.getOrderDetailId(), request.getChangeMoney(), request.getType(), request.getRemark(),request.getUrls(),request.getFileNames(),request.getReason())); + return toAjax(orderDetailService.changePrice(request.getOrderDetailId(), request.getChangeMoney(), request.getType(), request.getRemark(), request.getUrls(), request.getFileNames(), request.getReason())); } catch (Exception e) { e.printStackTrace(); logger.error(ExceptionUtil.getExceptionMessage(e)); @@ -1551,24 +1555,24 @@ public class OrderDetailController extends BaseController { @GetMapping("/count") @ResponseBody public AjaxResult orderDetailCount(OrderDetail orderDetail) { - if(StringUtils.isNotEmpty(orderDetail.getWorkerName()) || StringUtils.isNotEmpty(orderDetail.getWorkerPhone())){ + if (StringUtils.isNotEmpty(orderDetail.getWorkerName()) || StringUtils.isNotEmpty(orderDetail.getWorkerPhone())) { Worker param = new Worker(); param.setName(orderDetail.getWorkerName()); param.setPhone(orderDetail.getWorkerPhone()); List workList = workerService.getWorkList(param); List ids = workList.stream().map(Worker::getWorkerId).collect(Collectors.toList()); orderDetail.setWorkerIds(ids); - if(CollectionUtils.isEmpty(ids)){ + if (CollectionUtils.isEmpty(ids)) { return AjaxResult.success(0); } } - if(orderDetail.getSysPayStatus() != null){ + if (orderDetail.getSysPayStatus() != null) { FinancialMaster param = new FinancialMaster(); param.setPayStatus(orderDetail.getSysPayStatus()); List financialMasters = financialMasterService.selectFinancialMasterList(param); List masterIds = financialMasters.stream().map(FinancialMaster::getOrderMasterId).collect(Collectors.toList()); orderDetail.setMasterIds(masterIds); - if(CollectionUtils.isEmpty(masterIds)){ + if (CollectionUtils.isEmpty(masterIds)) { return AjaxResult.success(0); } } @@ -1589,15 +1593,15 @@ public class OrderDetailController extends BaseController { public AjaxResult countAfterDisputeList(OrderDetail orderDetail) { try { logger.info("查询子单售后纠纷数量"); - + // 设置查询条件:售后纠纷状态 orderDetail.setAfterServiceStatus(1); - + // 设置部门权限 if (this.getSysUser().getDept().getParentId() != 101) { orderDetail.setDeptId(this.getSysUser().getDept().getParentId()); } - + return AjaxResult.success(orderDetailService.countOrderDetailList(orderDetail)); } catch (Exception e) { logger.error("查询子单售后纠纷数量异常", e); @@ -1610,17 +1614,17 @@ public class OrderDetailController extends BaseController { public AjaxResult getAfterServiceRecordsByDetailId(Long orderDetailId) { try { logger.info("查询子单[{}]的售后纠纷记录", orderDetailId); - + // 直接查询该子单的售后纠纷记录 AfterServiceRecord queryRecord = new AfterServiceRecord(); queryRecord.setOrderDetailId(orderDetailId); queryRecord.setCustomerFinalCheck(0L); // 客户不同意 queryRecord.setExcludeAfterServiceFinished(Boolean.TRUE); // 排除已完成的售后 - + List disputeRecords = afterServiceRecordService.selectAfterServiceRecordList(queryRecord); - + logger.info("子单[{}]找到{}条售后纠纷记录", orderDetailId, disputeRecords.size()); - + // 为每个售后记录添加子单信息 OrderDetail detail = orderDetailService.selectById(orderDetailId); if (detail != null) { @@ -1630,7 +1634,7 @@ public class OrderDetailController extends BaseController { } return AjaxResult.success(disputeRecords); - + } catch (Exception e) { logger.error("查询子单[{}]售后纠纷记录异常", orderDetailId, e); return AjaxResult.error("查询售后纠纷记录失败:" + e.getMessage()); @@ -1700,11 +1704,11 @@ public class OrderDetailController extends BaseController { if (orderDetail.getWorkerRemark() == null || orderDetail.getWorkerRemark().trim().isEmpty()) { return AjaxResult.error("师傅备注不能为空"); } - + if (orderDetail.getId() == null) { return AjaxResult.error("子单ID不能为空"); } - + int result = orderDetailService.saveDetailWorkerRemark(orderDetail.getId(), orderDetail.getWorkerRemark()); if (result > 0) { return AjaxResult.success("子单师傅备注保存成功"); @@ -1719,17 +1723,18 @@ public class OrderDetailController extends BaseController { /** * 计算商家与主单地址之间的距离 + * * @param orderMaster 主单信息 - * @param shop 商家信息 + * @param shop 商家信息 * @return 带有距离信息的商家对象 */ private Shop calculateShopDistance(OrderMaster orderMaster, Shop shop) { try { // 直接使用主单地址获取经纬度 logger.info("使用主单地址获取经纬度"); - + StringBuilder fullAddress = new StringBuilder(); - + // 构建完整地址 if (orderMaster.getProvinceId() != null) { SysArea province = sysAreaService.selectById(orderMaster.getProvinceId()); @@ -1737,55 +1742,55 @@ public class OrderDetailController extends BaseController { fullAddress.append(province.getAreaName()); } } - + if (orderMaster.getCityId() != null) { SysArea city = sysAreaService.selectById(orderMaster.getCityId()); if (city != null) { fullAddress.append(city.getAreaName()); } } - + if (orderMaster.getCountryId() != null) { SysArea area = sysAreaService.selectById(orderMaster.getCountryId()); if (area != null) { fullAddress.append(area.getAreaName()); } } - + if (orderMaster.getStreetId() != null) { SysArea street = sysAreaService.selectById(orderMaster.getStreetId()); if (street != null) { fullAddress.append(street.getAreaName()); } } - + if (StringUtils.isNotEmpty(orderMaster.getAddress())) { fullAddress.append(orderMaster.getAddress()); } - + String addressStr = fullAddress.toString(); logger.info("构建的完整地址:{}", addressStr); - + if (StringUtils.isNotEmpty(addressStr)) { // 调用百度地图API获取经纬度 Map coordinates = baiduMapUtils.getCoordinatesByAddress(shop.getProvinceName(), shop.getCityName(), shop.getCountryName(), shop.getStreetName(), addressStr); - + if (coordinates != null && coordinates.containsKey("longitude") && coordinates.containsKey("latitude")) { BigDecimal lng = new BigDecimal(coordinates.get("longitude").toString()); BigDecimal lat = new BigDecimal(coordinates.get("latitude").toString()); - + logger.info("通过地址获取到经纬度:longitude={}, latitude={}", lng, lat); - + // 计算距离 - if (shop.getLongitude() != null && shop.getLatitude() != null ) { - + if (shop.getLongitude() != null && shop.getLatitude() != null) { + double distance = LocationUtils.getDistanceInMeters( - lat.doubleValue(), - lng.doubleValue(), - shop.getLatitude().doubleValue(), - shop.getLongitude().doubleValue() + lat.doubleValue(), + lng.doubleValue(), + shop.getLatitude().doubleValue(), + shop.getLongitude().doubleValue() ); - + String formattedDistance = LocationUtils.formatDistance(distance); shop.setDistance(formattedDistance); logger.info("通过地址获取经纬度后计算距离成功,商家[{}]与主单地址距离:{}", shop.getShopName(), formattedDistance); @@ -1799,7 +1804,7 @@ public class OrderDetailController extends BaseController { } catch (Exception e) { logger.error("计算商家与主单地址距离时发生异常", e); } - + return shop; } } 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 f7219ab4..c4838dda 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 @@ -1628,6 +1628,7 @@ public class OrderMasterController extends BaseController { OrderMaster orderMaster = orderMasterService.selectById(request.getId()); List orderDetailList = orderDetailService.selectByOrderMasterId(orderMaster.getId()); + Collections.reverse(orderDetailList); List orderStandardDetails = new ArrayList<>(); // 财务信息