Selaa lähdekoodia

开发查询免车费规则接口

jinshihui 6 tuntia sitten
vanhempi
commit
5eea37441d

+ 3 - 4
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/TFareSettingController.java

@@ -142,13 +142,12 @@ public class TFareSettingController extends BaseController {
      */
     @GetMapping("fareFreeRule/list")
     @ApiOperation("查询免车费规则列表")
-    public R listFareFreeRules() {
+    public R listFareFreeRules(@RequestParam String techId) {
         try {
-            Long deptIdLong = com.ylx.common.utils.SecurityUtils.getDeptId();
-            String deptId = String.valueOf(deptIdLong);
-            List<FareFreeRuleVo> list = fareFreeRuleService.listFareFreeRules(deptId);
+            List<FareFreeRuleVo> list = fareFreeRuleService.listFareFreeRules(techId);
             return R.ok(list);
         } catch (Exception e) {
+            e.printStackTrace();
             return R.fail(e.getMessage());
         }
     }

+ 3 - 15
nightFragrance-massage/src/main/java/com/ylx/massage/domain/vo/FareFreeRuleVo.java

@@ -32,10 +32,10 @@ public class FareFreeRuleVo implements Serializable {
     private String id;
 
     /**
-     * 服务项目ID列表
+     * 服务项目ID
      */
-    @ApiModelProperty("服务项目ID列表")
-    private List<String> projectIds;
+    @ApiModelProperty("服务项目ID")
+    private String projectId;
 
     /**
      * 服务项目名称列表(用于前端展示)
@@ -60,16 +60,4 @@ public class FareFreeRuleVo implements Serializable {
      */
     @ApiModelProperty("是否启用(0否 1是)")
     private Integer enable;
-
-    /**
-     * 部门ID
-     */
-    @ApiModelProperty("部门ID")
-    private String deptId;
-
-    /**
-     * 部门名称
-     */
-    @ApiModelProperty("部门名称")
-    private String deptName;
 }

+ 3 - 3
nightFragrance-massage/src/main/java/com/ylx/massage/service/TFareFreeRuleService.java

@@ -33,10 +33,10 @@ public interface TFareFreeRuleService extends IService<TFareFreeRule> {
     /**
      * 查询免车费规则列表
      *
-     * @param deptId 部门ID
-     * @return 免车费规则VO列表
+     * @param techId 技师ID
+     * @return List<FareFreeRuleVo> 免车费规则VO列表
      */
-    List<FareFreeRuleVo> listFareFreeRules(String deptId);
+    List<FareFreeRuleVo> listFareFreeRules(String techId);
 
     /**
      * 判断订单是否满足免车费条件

+ 32 - 14
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TFareFreeRuleServiceImpl.java

@@ -111,14 +111,14 @@ public class TFareFreeRuleServiceImpl extends ServiceImpl<TFareFreeRuleMapper, T
     /**
      * 查询免车费规则列表
      *
-     * @param deptId 部门ID
-     * @return 免车费规则VO列表
+     * @param techId 技师ID
+     * @return List<FareFreeRuleVo> 免车费规则VO列表
      */
     @Override
-    public List<FareFreeRuleVo> listFareFreeRules(String deptId) {
+    public List<FareFreeRuleVo> listFareFreeRules(String techId) {
         // 1. 查询规则列表
         LambdaQueryWrapper<TFareFreeRule> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(TFareFreeRule::getTechId, deptId)
+        wrapper.eq(TFareFreeRule::getTechId, techId).eq(TFareFreeRule::getEnable, 1)
                 .orderByDesc(TFareFreeRule::getCreateTime);
         List<TFareFreeRule> ruleList = this.list(wrapper);
 
@@ -129,12 +129,31 @@ public class TFareFreeRuleServiceImpl extends ServiceImpl<TFareFreeRuleMapper, T
 
             // 转换时间段
             if (CollectionUtil.isNotEmpty(rule.getTimeRanges())) {
-                List<TimeRangeVo> timeRangeVos = rule.getTimeRanges().stream().map(timeRange ->
-                        TimeRangeVo.builder()
-                                .startTime(timeRange.getStartTime())
-                                .endTime(timeRange.getEndTime())
-                                .build()
-                ).collect(Collectors.toList());
+                List<TimeRangeVo> timeRangeVos = new java.util.ArrayList<>();
+                for (Object item : rule.getTimeRanges()) {
+                    try {
+                        // 处理 JSONObject 类型(Fastjson 反序列化后的类型)
+                        if (item instanceof com.alibaba.fastjson.JSONObject) {
+                            com.alibaba.fastjson.JSONObject json = (com.alibaba.fastjson.JSONObject) item;
+                            TimeRangeVo timeRangeVo = TimeRangeVo.builder()
+                                    .startTime(json.getString("startTime"))
+                                    .endTime(json.getString("endTime"))
+                                    .build();
+                            timeRangeVos.add(timeRangeVo);
+                        }
+                        // 处理 TimeRange 类型(正常的类型)
+                        else if (item instanceof TFareFreeRule.TimeRange) {
+                            TFareFreeRule.TimeRange timeRange = (TFareFreeRule.TimeRange) item;
+                            TimeRangeVo timeRangeVo = TimeRangeVo.builder()
+                                    .startTime(timeRange.getStartTime())
+                                    .endTime(timeRange.getEndTime())
+                                    .build();
+                            timeRangeVos.add(timeRangeVo);
+                        }
+                    } catch (Exception e) {
+                        log.error("转换时间段失败,item类型:{},内容:{}", item.getClass().getName(), item, e);
+                    }
+                }
                 vo.setTimeRanges(timeRangeVos);
             }
 
@@ -142,12 +161,11 @@ public class TFareFreeRuleServiceImpl extends ServiceImpl<TFareFreeRuleMapper, T
             if (StringUtils.isNotBlank(rule.getProjectId())) {
                 String projectNames = "";
                 TXiangmu xiangmu = xiangmuService.getById(rule.getProjectId());
-                    if (xiangmu != null && StringUtils.isNotBlank(xiangmu.getcTitle())) {
-                        projectNames = xiangmu.getcTitle();
-                    }
+                if (xiangmu != null && StringUtils.isNotBlank(xiangmu.getcTitle())) {
+                    projectNames = xiangmu.getcTitle();
+                }
                 vo.setProjectNames(projectNames.isEmpty() ? null : projectNames);
             }
-
             return vo;
         }).collect(Collectors.toList());
     }