tony.cheng
2026-02-06 823cf3819f2f91adeada3707435d40b3dac8f7b4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/**
 * 法律条文API Service
 * 处理法律法规、法条相关接口
 * 接口前缀: /api/web/lawInfo/*, /api/web/lawProvision/*, /api/web/lawOriginalInfo/*
 */
 
import { request } from './request';
 
class LawAPIService {
  /**
   * 法律列表分页查询
   * GET /api/web/lawInfo/page
   * @param {Object} params - 查询参数
   * @param {number} params.page - 当前页码
   * @param {number} params.size - 每页记录数量
   * @param {string} params.keyword - 查询关键词
   * @param {string} params.lawNatures - 法律性质(多个用逗号拼接)
   * @param {string} params.authorities - 制定机关(多个用逗号拼接)
   * @param {string} params.validities - 时效性(多个用逗号拼接)
   * @param {string} params.publishStart - 公布日期开始(YYYY-MM-DD)
   * @param {string} params.publishEnd - 公布日期结束(YYYY-MM-DD)
   * @param {string} params.sortBy - 排序字段
   * @param {string} params.sortOrder - 排序方式(asc/desc)
   * @returns {Promise} 法律列表分页数据
   */
  static getLawList(params = {}) {
    return request.get('/api/web/lawInfo/page', params);
  }
 
  /**
   * 根据法律信息ID查询法条列表
   * GET /api/web/lawProvision/list
   * @param {string} law_info_id - 法律信息ID
   * @returns {Promise} 法条列表
   */
  static getLawProvisions(law_info_id) {
    return request.get('/api/web/lawProvision/list', { lawInfoId:law_info_id });
  }
 
  /**
   * 法律分类统计
   * GET /api/web/lawInfo/categoryCount
   * @returns {Promise} 分类统计信息
   */
  static getCategoryStatistics() {
    return request.get('/api/web/lawInfo/categoryCount');
  }
 
  /**
   * 法律原文详情
   * GET /api/web/lawOriginalInfo/getById
   * @param {string} law_original_info_id - 法律原文ID
   * @returns {Promise} 法律原文详情
   */
  static getLawOriginalDetail(law_original_info_id) {
    return request.get(`/api/web/lawOriginalInfo/getById?id=${law_original_info_id}`);
  }
 
  /**
   * 获取法律详情(包含基本信息和法条列表)
   * @param {string} id - 法律ID
   * @returns {Promise} 完整法律信息
   */
  static async getLawDetail(id) {
    try {
      // 并行获取法律基本信息和法条列表
      const [basicInfo, provisions] = await Promise.all([
        this.getLawOriginalDetail(id),
        this.getLawProvisions(id)
      ]);
      
      return {
        ...basicInfo.data,
        provisions: provisions.data || []
      };
    } catch (error) {
      return Promise.reject(error);
    }
  }
 
  /**
   * 搜索法律条文
   * @param {Object} params - 搜索参数
   * @param {string} params.keyword - 关键词
   * @param {string} params.lawNatures - 法律性质(多个用逗号拼接)
   * @param {string} params.authorities - 制定机关(多个用逗号拼接)
   * @param {string} params.validities - 时效性(多个用逗号拼接)
   * @param {string} params.publishStart - 公布日期开始(YYYY-MM-DD)
   * @param {string} params.publishEnd - 公布日期结束(YYYY-MM-DD)
   * @param {number} params.page - 页码
   * @param {number} params.size - 每页数量
   * @returns {Promise} 搜索结果
   */
  static searchLaws(params = {}) {
    return this.getLawList(params);
  }
 
  /**
   * 获取热门法律法规(按访问量排序)
   * @param {number} limit - 限制数量
   * @returns {Promise} 热门法律列表
   */
  static getHotLaws(limit = 10) {
    return this.getLawList({
      page: 1,
      size: limit,
      sortBy: 'visit_count',
      sortOrder: 'desc'
    });
  }
 
  /**
   * 获取最新法律法规(按发布时间排序)
   * @param {number} limit - 限制数量
   * @returns {Promise} 最新法律列表
   */
  static getLatestLaws(limit = 10) {
    return this.getLawList({
      page: 1,
      size: limit,
      sortBy: 'publish_time',
      sortOrder: 'desc'
    });
  }
}
 
export default LawAPIService;