Просмотр исходного кода

优化getConsultationOrderDetail

zhangchen 1 месяц назад
Родитель
Сommit
f0428e5f28

+ 66 - 36
alien-store/src/main/java/shop/alien/store/service/impl/LawyerConsultationOrderServiceImpl.java

@@ -330,47 +330,77 @@ public class LawyerConsultationOrderServiceImpl extends ServiceImpl<LawyerConsul
         return lawyerLegalProblemScenarioLawyer;
     }
 
+    /**
+     * 获取咨询订单详情
+     *
+     * @param lawyerOrderId 订单ID
+     * @return 咨询订单详情VO
+     */
     @Override
     public LawyerConsultationOrderVO getConsultationOrderDetail(String lawyerOrderId) {
-        LawyerConsultationOrderVO lawyerConsultationOrderVO = new LawyerConsultationOrderVO();
-        if(!StringUtils.isEmpty(lawyerOrderId)){
-            LawyerConsultationOrder lawyerConsultationOrder = consultationOrderMapper.selectById(lawyerOrderId);
-            if(lawyerConsultationOrder == null){
-                return lawyerConsultationOrderVO;
-            }
-            String lawyerId = String.valueOf(lawyerConsultationOrder.getLawyerUserId());
-            BeanUtils.copyProperties(lawyerConsultationOrder, lawyerConsultationOrderVO);
-            List<Integer> lawyerIds = new ArrayList<>();
-            lawyerIds.add(lawyerConsultationOrder.getLawyerUserId());
-            LawyerUser lawyerUser = lawyerUserMapper.selectById(lawyerConsultationOrder.getLawyerUserId());
-            //查询律师信息
-            if(lawyerUser!=null){
-                lawyerConsultationOrderVO.setLawyerName(lawyerUser.getName());
-                lawyerConsultationOrderVO.setLawyerPhone(lawyerUser.getPhone());
-                lawyerConsultationOrderVO.setLawyerEmail(lawyerUser.getEmail());
-                lawyerConsultationOrderVO.setLawyerCertificateNo(lawyerUser.getLawyerCertificateNo());
-                lawyerConsultationOrderVO.setLawFirm(lawyerUser.getLawFirm());
-                lawyerConsultationOrderVO.setPracticeYears(lawyerUser.getPracticeYears());
-                lawyerConsultationOrderVO.setSpecialtyFields(lawyerUser.getSpecialtyFields());
-                lawyerConsultationOrderVO.setCertificationStatus(lawyerUser.getCertificationStatus());
-                lawyerConsultationOrderVO.setServiceCount(lawyerUser.getServiceCount());
-                lawyerConsultationOrderVO.setServiceScore(lawyerUser.getServiceScore());
-                lawyerConsultationOrderVO.setLawyerConsultationFee(lawyerUser.getConsultationFee());
-                lawyerConsultationOrderVO.setProvince(lawyerUser.getProvince());
-                lawyerConsultationOrderVO.setCity(lawyerUser.getCity());
-                lawyerConsultationOrderVO.setDistrict(lawyerUser.getDistrict());
-                lawyerConsultationOrderVO.setAddress(lawyerUser.getAddress());
-                lawyerConsultationOrderVO.setHeadImg(lawyerUser.getHeadImg());
-                lawyerConsultationOrderVO.setNickName(lawyerUser.getNickName());
-                lawyerConsultationOrderVO.setPersonalIntroduction(lawyerUser.getPersonalIntroduction());
+        log.info("LawyerConsultationOrderServiceImpl.getConsultationOrderDetail?lawyerOrderId={}", lawyerOrderId);
+        
+        LawyerConsultationOrderVO orderVO = new LawyerConsultationOrderVO();
+        
+        // 参数校验
+        if (!StringUtils.hasText(lawyerOrderId)) {
+            return orderVO;
+        }
+        
+        // 查询订单信息
+        LawyerConsultationOrder order = consultationOrderMapper.selectById(lawyerOrderId);
+        if (order == null) {
+            return orderVO;
+        }
+        
+        // 复制订单基本信息
+        BeanUtils.copyProperties(order, orderVO);
+        
+        // 查询并填充律师信息
+        Integer lawyerUserId = order.getLawyerUserId();
+        if (lawyerUserId != null) {
+            LawyerUser lawyerUser = lawyerUserMapper.selectById(lawyerUserId);
+            if (lawyerUser != null) {
+                fillLawyerInfo(orderVO, lawyerUser);
             }
-
-            Map<String, List<String>> lawyerLegalProblemScenarioLawyer = getLawyerServiceArea(lawyerIds);
-            if(!lawyerLegalProblemScenarioLawyer.isEmpty() && lawyerLegalProblemScenarioLawyer.containsKey(lawyerId)){
-                lawyerConsultationOrderVO.setLawyerLegalProblemScenarioList(lawyerLegalProblemScenarioLawyer.get(lawyerId));
+            
+            // 查询律师服务领域
+            List<Integer> lawyerIdList = Collections.singletonList(lawyerUserId);
+            Map<String, List<String>> serviceAreaMap = getLawyerServiceArea(lawyerIdList);
+            String lawyerUserIdStr = String.valueOf(lawyerUserId);
+            if (!serviceAreaMap.isEmpty() && serviceAreaMap.containsKey(lawyerUserIdStr)) {
+                orderVO.setLawyerLegalProblemScenarioList(serviceAreaMap.get(lawyerUserIdStr));
             }
         }
-        return lawyerConsultationOrderVO;
+        
+        return orderVO;
+    }
+
+    /**
+     * 填充律师信息到订单VO
+     *
+     * @param orderVO 订单VO对象
+     * @param lawyerUser 律师用户对象
+     */
+    private void fillLawyerInfo(LawyerConsultationOrderVO orderVO, LawyerUser lawyerUser) {
+        orderVO.setLawyerName(lawyerUser.getName());
+        orderVO.setLawyerPhone(lawyerUser.getPhone());
+        orderVO.setLawyerEmail(lawyerUser.getEmail());
+        orderVO.setLawyerCertificateNo(lawyerUser.getLawyerCertificateNo());
+        orderVO.setLawFirm(lawyerUser.getLawFirm());
+        orderVO.setPracticeYears(lawyerUser.getPracticeYears());
+        orderVO.setSpecialtyFields(lawyerUser.getSpecialtyFields());
+        orderVO.setCertificationStatus(lawyerUser.getCertificationStatus());
+        orderVO.setServiceCount(lawyerUser.getServiceCount());
+        orderVO.setServiceScore(lawyerUser.getServiceScore());
+        orderVO.setLawyerConsultationFee(lawyerUser.getConsultationFee());
+        orderVO.setProvince(lawyerUser.getProvince());
+        orderVO.setCity(lawyerUser.getCity());
+        orderVO.setDistrict(lawyerUser.getDistrict());
+        orderVO.setAddress(lawyerUser.getAddress());
+        orderVO.setHeadImg(lawyerUser.getHeadImg());
+        orderVO.setNickName(lawyerUser.getNickName());
+        orderVO.setPersonalIntroduction(lawyerUser.getPersonalIntroduction());
     }
 }