feat(phase4): 全部业务模块迁移到 modules/(结构迁移)
- 21 个模块目录(auth/system/dictionary/configuration/cms/member/region/link/notice/job/log/upload/index) - 每个模块 router.py(合并模块导出多个 router)/schemas.py/service.py/repository.py/models.py - routers/v1.py 与 routers/__init__.py 改为直接引用 modules,前缀与权限串原样保留 - core/middleware.py 懒加载指向 modules.system.menu / modules.log;core/redis_client.py 指向 modules.job.scheduler - apps/views|services|forms 全部改为 re-export 垫片 - 迁移后 grep 守门通过:modules/core 无 apps/extensions 残留引用 - 实测登录、27+ 模块接口、写操作 commit、操作日志落库均正常 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+2
-95
@@ -1,95 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.ad import AdForm, AdStatusForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import ad
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询广告分页数据')
|
||||
@permission_required("sys:ad:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = ad.get_ad_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询广告详情
|
||||
@router.get('/detail/{id}', summary='查询广告详情')
|
||||
@permission_required("sys:ad:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询广告详情服务方法
|
||||
data = ad.get_ad_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加广告
|
||||
@router.post('/add', summary='添加广告')
|
||||
@permission_required("sys:ad:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: AdForm):
|
||||
# 调用添加广告服务
|
||||
result = ad.add_ad(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新广告
|
||||
@router.put('/update', summary='更新广告')
|
||||
@permission_required("sys:ad:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: AdForm):
|
||||
# 调用更新广告服务方法
|
||||
result = ad.update_ad(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除广告
|
||||
@router.delete('/delete/{id}', summary='删除广告')
|
||||
@permission_required("sys:ad:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除广告服务方法
|
||||
result = ad.delete_ad(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 设置广告状态
|
||||
@router.put('/status', summary='设置广告状态')
|
||||
@permission_required("sys:ad:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: AdStatusForm):
|
||||
# 调用设置广告状态服务方法
|
||||
result = ad.update_ad_status(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除广告
|
||||
@router.delete('/batchDelete', summary='批量删除广告')
|
||||
@permission_required("sys:ad:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除广告
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 广告ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(ad.delete_ad, id_str)
|
||||
# 兼容垫片:由 modules.cms.ad.router 迁移
|
||||
from modules.cms.ad.router import router
|
||||
|
||||
+2
-93
@@ -1,93 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.ad_sort import AdSortForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import ad_sort
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询广告位分页数据')
|
||||
@permission_required("sys:adsort:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = ad_sort.get_ad_sort_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询广告位详情
|
||||
@router.get('/detail/{id}', summary='查询广告位详情')
|
||||
@permission_required("sys:adsort:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询广告位详情服务方法
|
||||
data = ad_sort.get_ad_sort_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加广告位
|
||||
@router.post('/add', summary='添加广告位')
|
||||
@permission_required("sys:adsort:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: AdSortForm):
|
||||
# 调用添加广告位服务
|
||||
result = ad_sort.add_ad_sort(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新广告位
|
||||
@router.put('/update', summary='更新广告位')
|
||||
@permission_required("sys:adsort:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: AdSortForm):
|
||||
# 调用更新广告位服务方法
|
||||
result = ad_sort.update_ad_sort(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除广告位
|
||||
@router.delete('/delete/{id}', summary='删除广告位')
|
||||
@permission_required("sys:adsort:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除广告位服务方法
|
||||
result = ad_sort.delete_ad_sort(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 获取广告位列表
|
||||
@router.get('/getAdSortList', summary='获取广告位列表')
|
||||
def get_ad_sort_list():
|
||||
# 调用广告位服务方法
|
||||
result = ad_sort.get_ad_sort_list()
|
||||
# 返回结果
|
||||
return R.ok(result)
|
||||
|
||||
|
||||
# 批量删除广告位
|
||||
@router.delete('/batchDelete', summary='批量删除广告位')
|
||||
@permission_required("sys:adsort:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除广告位
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 广告位ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(ad_sort.delete_ad_sort, id_str)
|
||||
# 兼容垫片:由 modules.cms.ad_sort.router 迁移
|
||||
from modules.cms.ad_sort.router import router
|
||||
|
||||
+2
-134
@@ -1,134 +1,2 @@
|
||||
# +======================================================================
|
||||
# | DjangoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
|
||||
# +----------------------------------------------------------------------
|
||||
# | Copyright (c) 2021-2026 一米阳光团队 版权所有
|
||||
# +----------------------------------------------------------------------
|
||||
# | 开源协议: Apache-2.0
|
||||
# | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
|
||||
# +----------------------------------------------------------------------
|
||||
# | 官方网站: https://www.djangoadmin.cn
|
||||
# +----------------------------------------------------------------------
|
||||
# | 研发团队: 一米阳光团队 荣誉出品
|
||||
# +======================================================================
|
||||
# | 版权和免责声明:
|
||||
# | 一、知识产权声明
|
||||
# | 本团队对该软件框架产品(以下简称"本产品")拥有完整知识产权,包括但不限于商标权、专利权、
|
||||
# | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
|
||||
# | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
|
||||
# | 二、使用限制与禁止条款
|
||||
# | 您理解并同意,禁止将本产品用于以下任何行为:
|
||||
# | 1. 任何违反中华人民共和国法律法规的用途;
|
||||
# | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
|
||||
# | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
|
||||
# | 三、责任豁免
|
||||
# | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
|
||||
# | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
|
||||
# | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
|
||||
# | 四、违约与法律责任
|
||||
# | 如发现任何违反本声明的行为,本团队有权:
|
||||
# | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
|
||||
# | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
|
||||
# | 3. 保留进一步采取刑事控告等法律措施的权利。
|
||||
# | 五、许可范围说明
|
||||
# | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
|
||||
# | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
|
||||
# | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
|
||||
# | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
|
||||
# | 成的一切经济损失及商誉损害。
|
||||
# | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
|
||||
# | 许可协议》附件为准。
|
||||
# +======================================================================
|
||||
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.city import CityForm
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import city
|
||||
from apps.middleware.check_demo import check_demo
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:city:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = city.get_city_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询城市详情
|
||||
@router.get('/detail/{id}', summary='查询城市详情')
|
||||
@permission_required("sys:city:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询城市详情服务方法
|
||||
data = city.get_city_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加城市
|
||||
@router.post('/add', summary='添加城市')
|
||||
@permission_required("sys:city:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: CityForm):
|
||||
# 调用添加城市服务
|
||||
result = city.add_city(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新城市
|
||||
@router.put('/update', summary='更新城市')
|
||||
@permission_required("sys:city:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: CityForm):
|
||||
# 调用更新城市服务方法
|
||||
result = city.update_city(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除城市
|
||||
@router.delete('/delete/{id}', summary='删除城市')
|
||||
@permission_required("sys:city:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除城市服务方法
|
||||
result = city.delete_city(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 根据城市编码查询子级城市
|
||||
@router.get('/getChildList/{city_code}', summary='根据城市编码查询子级城市')
|
||||
def get_child_list(city_code):
|
||||
# 调用查询城市详情方法
|
||||
data = city.get_child_list(city_code)
|
||||
# 返回结果
|
||||
return R.ok(data)
|
||||
|
||||
|
||||
# 批量删除城市
|
||||
@router.delete('/batchDelete', summary='批量删除城市')
|
||||
@permission_required("sys:city:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除城市
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 城市ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(city.delete_city, id_str)
|
||||
# 兼容垫片:由 modules.region.router 迁移
|
||||
from modules.region.router import router
|
||||
|
||||
+2
-103
@@ -1,103 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.config import ConfigForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import config
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:config:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = config.get_config_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询配置详情
|
||||
@router.get('/detail/{id}', summary='查询配置详情')
|
||||
@permission_required("sys:config:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询配置详情服务方法
|
||||
data = config.get_config_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加配置
|
||||
@router.post('/add', summary='添加配置')
|
||||
@permission_required("sys:config:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: ConfigForm):
|
||||
# 调用添加配置服务
|
||||
result = config.add_config(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新配置
|
||||
@router.put('/update', summary='更新配置')
|
||||
@permission_required("sys:config:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: ConfigForm):
|
||||
# 调用更新配置服务方法
|
||||
result = config.update_config(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除配置
|
||||
@router.delete('/delete/{id}', summary='删除配置')
|
||||
@permission_required("sys:config:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除配置服务方法
|
||||
result = config.delete_config(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除配置
|
||||
@router.delete('/batchDelete', summary='批量删除配置')
|
||||
@permission_required("sys:config:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除配置
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 配置ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(config.delete_config, id_str)
|
||||
|
||||
|
||||
# 获取网站配置数据
|
||||
@router.get('/web', summary='获取网站配置数据')
|
||||
@permission_required("sys:config:page")
|
||||
def web(request: Request):
|
||||
# 调用获取网站配置信息方法
|
||||
data = config.get_config_info(request)
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 保存网站配置数据
|
||||
@router.put('/webSave', summary='保存网站配置数据')
|
||||
@permission_required("sys:config:update")
|
||||
@check_demo
|
||||
async def web_save(request: Request):
|
||||
# 调用保存网站配置信息方法
|
||||
result = await config.save_config_info(request)
|
||||
return result
|
||||
# 兼容垫片:由 modules.configuration.router 迁移
|
||||
from modules.configuration.router import config_router as router
|
||||
|
||||
@@ -1,95 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.config_item import ConfigItemForm, ConfigItemStatusForm
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import config_item
|
||||
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:configitem:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = config_item.get_config_item_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询配置项详情
|
||||
@router.get('/detail/{id}', summary='查询配置项详情')
|
||||
@permission_required("sys:configitem:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询配置项详情服务方法
|
||||
data = config_item.get_config_item_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加配置项
|
||||
@router.post('/add', summary='添加配置项')
|
||||
@permission_required("sys:configitem:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: ConfigItemForm):
|
||||
# 调用添加配置项服务
|
||||
result = config_item.add_config_item(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新配置项
|
||||
@router.put('/update', summary='更新配置项')
|
||||
@permission_required("sys:configitem:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: ConfigItemForm):
|
||||
# 调用更新配置项服务方法
|
||||
result = config_item.update_config_item(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除配置项
|
||||
@router.delete('/delete/{id}', summary='删除配置项')
|
||||
@permission_required("sys:configitem:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除配置项服务方法
|
||||
result = config_item.delete_config_item(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 设置配置项状态
|
||||
@router.put('/status', summary='设置配置项状态')
|
||||
@permission_required("sys:configitem:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: ConfigItemStatusForm):
|
||||
# 调用设置配置项状态服务方法
|
||||
result = config_item.update_config_item_status(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除配置项
|
||||
@router.delete('/batchDelete', summary='批量删除配置项')
|
||||
@permission_required("sys:configitem:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除配置项
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 配置项ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(config_item.delete_config_item, id_str)
|
||||
# 兼容垫片:由 modules.configuration.router 迁移
|
||||
from modules.configuration.router import config_item_router as router
|
||||
|
||||
+2
-73
@@ -1,73 +1,2 @@
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.dept import DeptForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import dept
|
||||
|
||||
from utils import R
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/list', summary='查询分页数据')
|
||||
@permission_required("sys:dept:list")
|
||||
def list(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = dept.get_dept_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询部门详情
|
||||
@router.get('/detail/{id}', summary='查询部门详情')
|
||||
@permission_required("sys:dept:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询部门详情服务方法
|
||||
data = dept.get_dept_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加部门
|
||||
@router.post('/add', summary='添加部门')
|
||||
@permission_required("sys:dept:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: DeptForm):
|
||||
# 调用添加部门服务
|
||||
result = dept.add_dept(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新部门
|
||||
@router.put('/update', summary='更新部门')
|
||||
@permission_required("sys:dept:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: DeptForm):
|
||||
# 调用更新部门服务方法
|
||||
result = dept.update_dept(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除部门
|
||||
@router.delete('/delete/{id}', summary='删除部门')
|
||||
@permission_required("sys:dept:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除部门服务方法
|
||||
result = dept.delete_dept(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 获取部门列表
|
||||
@router.get('/getDeptList', summary='获取部门列表')
|
||||
def get_dept_list():
|
||||
# 调用查询部门数据方法
|
||||
result = dept.get_dept_list()
|
||||
# 返回结果
|
||||
return R.ok(data=result)
|
||||
# 兼容垫片:由 modules.system.dept.router 迁移
|
||||
from modules.system.dept.router import router
|
||||
|
||||
+2
-74
@@ -1,74 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.dict import DictForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import dict as dict_service
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:dict:page")
|
||||
def page(request: Request):
|
||||
result = dict_service.get_dict_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 查询字典详情
|
||||
@router.get('/detail/{id}', summary='查询字典详情')
|
||||
@permission_required("sys:dict:detail")
|
||||
def detail(request: Request, id):
|
||||
data = dict_service.get_dict_detail(id)
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加字典
|
||||
@router.post('/add', summary='添加字典')
|
||||
@permission_required("sys:dict:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: DictForm):
|
||||
result = dict_service.add_dict(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 更新字典
|
||||
@router.put('/update', summary='更新字典')
|
||||
@permission_required("sys:dict:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: DictForm):
|
||||
result = dict_service.update_dict(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 删除字典
|
||||
@router.delete('/delete/{id}', summary='删除字典')
|
||||
@permission_required("sys:dict:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
result = dict_service.delete_dict(id)
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除字典
|
||||
@router.delete('/batchDelete', summary='批量删除字典')
|
||||
@permission_required("sys:dict:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除字典
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 字典ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(dict_service.delete_dict, id_str)
|
||||
# 兼容垫片:由 modules.dictionary.router 迁移
|
||||
from modules.dictionary.router import dict_router as router
|
||||
|
||||
+2
-83
@@ -1,83 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.dict_item import DictItemForm, DictItemStatusForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import dict_item
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:dictitem:page")
|
||||
def page(request: Request):
|
||||
result = dict_item.get_dict_item_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 查询字典项详情
|
||||
@router.get('/detail/{id}', summary='查询字典项详情')
|
||||
@permission_required("sys:dictitem:detail")
|
||||
def detail(request: Request, id):
|
||||
data = dict_item.get_dict_item_detail(id)
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加字典项
|
||||
@router.post('/add', summary='添加字典项')
|
||||
@permission_required("sys:dictitem:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: DictItemForm):
|
||||
result = dict_item.add_dict_item(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 更新字典项
|
||||
@router.put('/update', summary='更新字典项')
|
||||
@permission_required("sys:dictitem:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: DictItemForm):
|
||||
result = dict_item.update_dict_item(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 删除字典项
|
||||
@router.delete('/delete/{id}', summary='删除字典项')
|
||||
@permission_required("sys:dictitem:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
result = dict_item.delete_dict_item(id)
|
||||
return result
|
||||
|
||||
|
||||
# 设置字典项状态
|
||||
@router.put('/status', summary='设置字典项状态')
|
||||
@permission_required("sys:dictitem:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: DictItemStatusForm):
|
||||
result = dict_item.update_dict_item_status(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除字典项
|
||||
@router.delete('/batchDelete', summary='批量删除字典项')
|
||||
@permission_required("sys:dictitem:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除字典项
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 字典项ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(dict_item.delete_dict_item, id_str)
|
||||
# 兼容垫片:由 modules.dictionary.router 迁移
|
||||
from modules.dictionary.router import dict_item_router as router
|
||||
|
||||
+2
-128
@@ -1,128 +1,2 @@
|
||||
# +======================================================================
|
||||
# | DjangoAdmin 企业数字化开发平台 [ 赋能开发者,助力企业发展 ]
|
||||
# +----------------------------------------------------------------------
|
||||
# | Copyright (c) 2021-2026 一米阳光团队 版权所有
|
||||
# +----------------------------------------------------------------------
|
||||
# | 开源协议: Apache-2.0
|
||||
# | 重要声明: 未经书面许可,不得移除或修改本框架相关版权标识。
|
||||
# +----------------------------------------------------------------------
|
||||
# | 官方网站: https://www.djangoadmin.cn
|
||||
# +----------------------------------------------------------------------
|
||||
# | 研发团队: 一米阳光团队 荣誉出品
|
||||
# +======================================================================
|
||||
# | 版权和免责声明:
|
||||
# | 一、知识产权声明
|
||||
# | 本团队对该软件框架产品(以下简称"本产品")拥有完整知识产权,包括但不限于商标权、专利权、
|
||||
# | 著作权、商业秘密等。前述权利均受中华人民共和国及相关国际法律法规保护。未经本团队书面授权,
|
||||
# | 任何个人或单位不得基于本产品本身申请任何形式的知识产权。
|
||||
# | 二、使用限制与禁止条款
|
||||
# | 您理解并同意,禁止将本产品用于以下任何行为:
|
||||
# | 1. 任何违反中华人民共和国法律法规的用途;
|
||||
# | 2. 任何侵害他人合法权益(包括但不限于人身权、财产权、知识产权等)的行为;
|
||||
# | 3. 任何危害国家安全、公共利益及社会道德风尚的行为。
|
||||
# | 三、责任豁免
|
||||
# | 因使用本产品而产生的任何损失或法律纠纷(包括但不限于直接损失、间接损失、附带损失、衍生损失
|
||||
# | 以及因违约、侵权等引发的责任),本团队均不承担任何法律责任。若因违规使用本产品导致任何第三
|
||||
# | 方提起索赔或行政机关进行调查,您应独立承担全部责任。
|
||||
# | 四、违约与法律责任
|
||||
# | 如发现任何违反本声明的行为,本团队有权:
|
||||
# | 1. 无条件配合公安机关及其他有权机关的调查取证工作;
|
||||
# | 2. 依法追究相关方的民事责任,并要求赔偿全部损失;
|
||||
# | 3. 保留进一步采取刑事控告等法律措施的权利。
|
||||
# | 五、许可范围说明
|
||||
# | 1、被授权方应视本产品源代码为核心机密信息,负有最高标准的保密与保管义务。禁止以任何形式(包
|
||||
# | 括但不限于直接或间接的分享、复制、传播、分发、转售、出租、开源、反向工程、反编译、反汇编或通
|
||||
# | 过网络服务提供给任何第三方)泄露、披露或处置源代码的全部或部分内容。任何未经授权的复制、使用、
|
||||
# | 传播行为均构成对本团队知识产权的严重侵权,本团队有权依法追究其全部法律责任,并要求赔偿因此造
|
||||
# | 成的一切经济损失及商誉损害。
|
||||
# | 2、本产品仅限于公司或个人在法律允许范围内,用于内部且合规的软件产品研发。具体权利义务以《软件
|
||||
# | 许可协议》附件为准。
|
||||
# +======================================================================
|
||||
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter
|
||||
from sqlalchemy import and_
|
||||
from starlette.requests import Request
|
||||
|
||||
from apps.forms.user import UserInfoForm, UpdatePwdForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.models.user import User
|
||||
from apps.services import menu, user, login_log
|
||||
from extensions import get_db_session
|
||||
from utils import R
|
||||
from utils.rich_text import get_file_url
|
||||
from utils.security import get_user_id, get_username
|
||||
from utils.jwt import add_token_to_blacklist, get_access_token
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 获取菜单列表
|
||||
@router.get('/menu', summary='获取菜单列表')
|
||||
async def get_menu_list(request: Request):
|
||||
# 获取菜单列表
|
||||
menuList = await menu.get_permission_menu_list(get_user_id(request))
|
||||
# 返回结果
|
||||
return R.ok(data=menuList)
|
||||
|
||||
|
||||
# 获取用户信息
|
||||
@router.get('/user', summary='获取用户信息')
|
||||
async def get_user_info(request: Request):
|
||||
# 用户ID
|
||||
userId = get_user_id(request)
|
||||
|
||||
# 查询用户信息(同步DB查询放入线程池)
|
||||
def _query_user():
|
||||
db = get_db_session()
|
||||
return db.query(User).filter(and_(User.id == userId, User.is_delete == 0)).first()
|
||||
|
||||
user = await asyncio.to_thread(_query_user)
|
||||
if not user:
|
||||
return R.failed("用户不存在")
|
||||
# 获取权限节点列表
|
||||
permissionList = await menu.get_permissions_list(userId)
|
||||
# 返回用户信息
|
||||
info = {
|
||||
'realname': user.realname,
|
||||
'nickname': user.nickname,
|
||||
'avatar': get_file_url(user.avatar) if user.avatar else None,
|
||||
'gender': user.gender,
|
||||
'mobile': user.mobile,
|
||||
'email': user.email,
|
||||
'intro': user.intro,
|
||||
'address': user.address,
|
||||
'roles': [],
|
||||
'permissionList': permissionList,
|
||||
}
|
||||
# 返回结果
|
||||
return R.ok(data=info)
|
||||
|
||||
|
||||
# 个人中心
|
||||
@router.put('/userInfo', summary='个人中心')
|
||||
@check_demo
|
||||
def user_info(request: Request, data: UserInfoForm):
|
||||
result = user.update_user_info(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 修改密码
|
||||
@router.put('/updatePwd', summary='修改密码')
|
||||
@check_demo
|
||||
def update_pwd(request: Request, data: UpdatePwdForm):
|
||||
result = user.update_pwd(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 退出登录
|
||||
@router.post('/logout', summary='退出登录')
|
||||
async def logout(request: Request):
|
||||
success, access_token, _ = get_access_token(request)
|
||||
if success and access_token:
|
||||
await add_token_to_blacklist(access_token)
|
||||
username = get_username(request)
|
||||
await asyncio.to_thread(login_log.record_login_log, request, username, 2, 0, 0, result="退出成功")
|
||||
return R.ok(msg="注销成功")
|
||||
# 兼容垫片:由 modules.index.router 迁移
|
||||
from modules.index.router import router
|
||||
|
||||
+2
-93
@@ -1,93 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.item import ItemForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import item
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:item:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = item.get_item_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询站点详情
|
||||
@router.get('/detail/{id}', summary='查询站点详情')
|
||||
@permission_required("sys:item:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询站点详情服务方法
|
||||
data = item.get_item_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加站点
|
||||
@router.post('/add', summary='添加站点')
|
||||
@permission_required("sys:item:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: ItemForm):
|
||||
# 调用添加站点服务
|
||||
result = item.add_item(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新站点
|
||||
@router.put('/update', summary='更新站点')
|
||||
@permission_required("sys:item:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: ItemForm):
|
||||
# 调用更新站点服务方法
|
||||
result = item.update_item(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除站点
|
||||
@router.delete('/delete/{id}', summary='删除站点')
|
||||
@permission_required("sys:item:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除站点服务方法
|
||||
result = item.delete_item(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 获取站点列表
|
||||
@router.get('/getItemList', summary='获取站点列表')
|
||||
def get_item_list():
|
||||
# 调用查询站点数据列表服务方法
|
||||
data = item.get_item_list()
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 批量删除站点
|
||||
@router.delete('/batchDelete', summary='批量删除站点')
|
||||
@permission_required("sys:item:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除站点
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 站点ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(item.delete_item, id_str)
|
||||
# 兼容垫片:由 modules.cms.item.router 迁移
|
||||
from modules.cms.item.router import router
|
||||
|
||||
+2
-92
@@ -1,92 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.item_cate import ItemCateForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import item_cate
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:itemcate:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = item_cate.get_item_cate_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询栏目详情
|
||||
@router.get('/detail/{id}', summary='查询栏目详情')
|
||||
@permission_required("sys:itemcate:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询栏目详情服务方法
|
||||
data = item_cate.get_item_cate_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加栏目
|
||||
@router.post('/add', summary='添加栏目')
|
||||
@permission_required("sys:itemcate:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: ItemCateForm):
|
||||
# 调用添加栏目服务
|
||||
result = item_cate.add_item_cate(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新栏目
|
||||
@router.put('/update', summary='更新栏目')
|
||||
@permission_required("sys:itemcate:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: ItemCateForm):
|
||||
# 调用更新栏目服务方法
|
||||
result = item_cate.update_item_cate(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除栏目
|
||||
@router.delete('/delete/{id}', summary='删除栏目')
|
||||
@permission_required("sys:itemcate:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除栏目服务方法
|
||||
result = item_cate.delete_item_cate(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 获取栏目列表
|
||||
@router.get('/getCateList', summary='获取栏目列表')
|
||||
def get_cate_list():
|
||||
# 调用删除栏目服务方法
|
||||
result = item_cate.get_cate_list()
|
||||
# 返回结果
|
||||
return R.ok(result)
|
||||
|
||||
|
||||
# 批量删除栏目
|
||||
@router.delete('/batchDelete', summary='批量删除栏目')
|
||||
@permission_required("sys:itemcate:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除栏目
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 栏目ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(item_cate.delete_item_cate, id_str)
|
||||
# 兼容垫片:由 modules.cms.item_cate.router 迁移
|
||||
from modules.cms.item_cate.router import router
|
||||
|
||||
+2
-99
@@ -1,99 +1,2 @@
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.job import JobForm, JobStatusForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import job
|
||||
|
||||
from utils import R
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:job:page")
|
||||
def page(request: Request):
|
||||
result = job.get_job_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 查询任务详情
|
||||
@router.get('/detail/{id}', summary='查询任务详情')
|
||||
@permission_required("sys:job:detail")
|
||||
def detail(request: Request, id):
|
||||
data = job.get_job_detail(id)
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加定时任务
|
||||
@router.post('/add', summary='添加定时任务')
|
||||
@permission_required("sys:job:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: JobForm):
|
||||
result = job.add_job(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 更新定时任务
|
||||
@router.put('/update', summary='更新定时任务')
|
||||
@permission_required("sys:job:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: JobForm):
|
||||
result = job.update_job(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 删除定时任务
|
||||
@router.delete('/delete/{id}', summary='删除定时任务')
|
||||
@permission_required("sys:job:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
result = job.delete_job(id)
|
||||
return result
|
||||
|
||||
|
||||
# 设置任务状态
|
||||
@router.put('/status', summary='设置任务状态')
|
||||
@permission_required("sys:job:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: JobStatusForm):
|
||||
result = job.update_job_status(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 暂停任务
|
||||
@router.put('/pause/{id}', summary='暂停任务')
|
||||
@permission_required("sys:job:pause")
|
||||
@check_demo
|
||||
def pause(request: Request, id):
|
||||
result = job.pause_job_by_id(id)
|
||||
return result
|
||||
|
||||
|
||||
# 恢复任务
|
||||
@router.put('/resume/{id}', summary='恢复任务')
|
||||
@permission_required("sys:job:resume")
|
||||
@check_demo
|
||||
def resume(request: Request, id):
|
||||
result = job.resume_job_by_id(id)
|
||||
return result
|
||||
|
||||
|
||||
# 立即执行一次
|
||||
@router.post('/runOnce/{id}', summary='立即执行一次')
|
||||
@permission_required("sys:job:run_once")
|
||||
@check_demo
|
||||
def run_once(request: Request, id):
|
||||
result = job.run_job_once_api(id)
|
||||
return result
|
||||
|
||||
|
||||
# 重新加载调度器
|
||||
@router.post('/reload', summary='重新加载调度器')
|
||||
@permission_required("sys:job:reload")
|
||||
@check_demo
|
||||
def reload(request: Request):
|
||||
result = job.reload_all_jobs()
|
||||
return result
|
||||
# 兼容垫片:由 modules.job.router 迁移
|
||||
from modules.job.router import job_router as router
|
||||
|
||||
+2
-55
@@ -1,55 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import job_log
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:job_log:page")
|
||||
def page(request: Request):
|
||||
result = job_log.get_job_log_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 查询日志详情
|
||||
@router.get('/detail/{id}', summary='查询日志详情')
|
||||
@permission_required("sys:job_log:detail")
|
||||
def detail(request: Request, id):
|
||||
data = job_log.get_job_log_detail(id)
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 删除任务日志
|
||||
@router.delete('/delete/{id}', summary='删除任务日志')
|
||||
@permission_required("sys:job_log:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
result = job_log.delete_job_log(id)
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除任务日志
|
||||
@router.delete('/batchDelete', summary='批量删除任务日志')
|
||||
@permission_required("sys:job_log:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除任务日志
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 日志ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(job_log.delete_job_log, id_str)
|
||||
# 兼容垫片:由 modules.job.router 迁移
|
||||
from modules.job.router import job_log_router as router
|
||||
|
||||
+2
-108
@@ -1,108 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request, UploadFile, File
|
||||
|
||||
from apps.forms.level import LevelForm, LevelStatusForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import level
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:level:page")
|
||||
def page(request: Request):
|
||||
result = level.get_level_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 查询职级详情
|
||||
@router.get('/detail/{id}', summary='查询职级详情')
|
||||
@permission_required("sys:level:detail")
|
||||
def detail(request: Request, id):
|
||||
data = level.get_level_detail(id)
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加职级
|
||||
@router.post('/add', summary='添加职级')
|
||||
@permission_required("sys:level:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: LevelForm):
|
||||
result = level.add_level(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 更新职级
|
||||
@router.put('/update', summary='更新职级')
|
||||
@permission_required("sys:level:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: LevelForm):
|
||||
result = level.update_level(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 删除职级
|
||||
@router.delete('/delete/{id}', summary='删除职级')
|
||||
@permission_required("sys:level:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
result = level.delete_level(id)
|
||||
return result
|
||||
|
||||
|
||||
# 设置职级状态
|
||||
@router.put('/status', summary='设置职级状态')
|
||||
@permission_required("sys:level:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: LevelStatusForm):
|
||||
result = level.update_level_status(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 导入Excel
|
||||
@router.post('/import', summary='导入Excel')
|
||||
@permission_required("sys:level:import")
|
||||
@check_demo
|
||||
async def imports(request: Request, file: UploadFile = File(...)):
|
||||
result = await level.import_level(request, file)
|
||||
return result
|
||||
|
||||
|
||||
# 导出Excel
|
||||
@router.post('/export', summary='导出Excel')
|
||||
@permission_required("sys:level:export")
|
||||
@check_demo
|
||||
def export(request: Request):
|
||||
result = level.export_level(request)
|
||||
return result
|
||||
|
||||
|
||||
# 获取职级列表
|
||||
@router.get('/getLevelList', summary='获取职级列表')
|
||||
def get_level_list(request: Request):
|
||||
result = level.get_level_list()
|
||||
return R.ok(data=result)
|
||||
|
||||
|
||||
# 批量删除职级
|
||||
@router.delete('/batchDelete', summary='批量删除职级')
|
||||
@permission_required("sys:level:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除职级
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 职级ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(level.delete_level, id_str)
|
||||
# 兼容垫片:由 modules.system.level.router 迁移
|
||||
from modules.system.level.router import router
|
||||
|
||||
+2
-95
@@ -1,95 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.link import LinkForm, LinkStatusForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import link
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:link:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = link.get_link_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询友链详情
|
||||
@router.get('/detail/{id}', summary='查询友链详情')
|
||||
@permission_required("sys:link:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询友链详情服务方法
|
||||
data = link.get_link_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加友链
|
||||
@router.post('/add', summary='添加友链')
|
||||
@permission_required("sys:link:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: LinkForm):
|
||||
# 调用添加友链服务
|
||||
result = link.add_link(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新友链
|
||||
@router.put('/update', summary='更新友链')
|
||||
@permission_required("sys:link:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: LinkForm):
|
||||
# 调用更新友链服务方法
|
||||
result = link.update_link(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除友链
|
||||
@router.delete('/delete/{id}', summary='删除友链')
|
||||
@permission_required("sys:link:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除友链服务方法
|
||||
result = link.delete_link(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 设置友链状态
|
||||
@router.put('/status', summary='设置友链状态')
|
||||
@permission_required("sys:link:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: LinkStatusForm):
|
||||
# 调用设置友链状态服务方法
|
||||
result = link.update_link_status(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除友链
|
||||
@router.delete('/batchDelete', summary='批量删除友链')
|
||||
@permission_required("sys:link:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除友链
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 友链ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(link.delete_link, id_str)
|
||||
# 兼容垫片:由 modules.link.router 迁移
|
||||
from modules.link.router import router
|
||||
|
||||
+2
-31
@@ -1,31 +1,2 @@
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.login import LoginForm
|
||||
from apps.services import login
|
||||
from utils import R
|
||||
from utils.captcha import generate_captcha
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 系统登录
|
||||
@router.post('/login', summary='系统登录')
|
||||
async def do_login(request: Request, data: LoginForm):
|
||||
result = await login.login(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 获取验证码
|
||||
@router.get('/captcha', summary='获取验证码')
|
||||
async def captcha(request: Request):
|
||||
# 生成验证码
|
||||
result = await generate_captcha(request)
|
||||
# idKey值
|
||||
idKey = result['idKey']
|
||||
# 验证码base64字符串
|
||||
data = result['data']
|
||||
# 将图片转换为base64
|
||||
imgStr = "data:image/png;base64," + data
|
||||
# 返回结果
|
||||
return R.ok(idkey=idKey, data=imgStr)
|
||||
# 兼容垫片:由 modules.auth.router 迁移
|
||||
from modules.auth.router import router
|
||||
|
||||
+2
-47
@@ -1,47 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import login_log
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:login_log:page")
|
||||
def page(request: Request):
|
||||
result = login_log.get_login_log_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 删除登录日志
|
||||
@router.delete('/delete/{id}', summary='删除登录日志')
|
||||
@permission_required("sys:login_log:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
result = login_log.delete_login_log(id)
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除登录日志
|
||||
@router.delete('/batchDelete', summary='批量删除登录日志')
|
||||
@permission_required("sys:login_log:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除登录日志
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 日志ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(login_log.delete_login_log, id_str)
|
||||
# 兼容垫片:由 modules.log.router 迁移
|
||||
from modules.log.router import login_log_router as router
|
||||
|
||||
+2
-96
@@ -1,96 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.member import MemberForm, MemberStatusForm
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.middleware.check_demo import check_demo
|
||||
|
||||
from apps.services import member
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:member:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = member.get_member_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询会员详情
|
||||
@router.get('/detail/{id}', summary='查询会员详情')
|
||||
@permission_required("sys:member:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询会员详情服务方法
|
||||
data = member.get_member_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加会员
|
||||
@router.post('/add', summary='添加会员')
|
||||
@permission_required("sys:member:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: MemberForm):
|
||||
# 调用添加会员服务
|
||||
result = member.add_member(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新会员
|
||||
@router.put('/update', summary='更新会员')
|
||||
@permission_required("sys:member:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: MemberForm):
|
||||
# 调用更新会员服务方法
|
||||
result = member.update_member(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除会员
|
||||
@router.delete('/delete/{id}', summary='删除会员')
|
||||
@permission_required("sys:member:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除会员服务方法
|
||||
result = member.delete_member(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 设置会员状态
|
||||
@router.put('/status', summary='设置会员状态')
|
||||
@permission_required("sys:member:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: MemberStatusForm):
|
||||
# 调用设置会员状态服务方法
|
||||
result = member.update_member_status(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除会员
|
||||
@router.delete('/batchDelete', summary='批量删除会员')
|
||||
@permission_required("sys:member:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除会员
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 会员ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(member.delete_member, id_str)
|
||||
# 兼容垫片:由 modules.member.router 迁移
|
||||
from modules.member.router import member_router as router
|
||||
|
||||
@@ -1,93 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.member_level import MemberLevelForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import member_level
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:memberlevel:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = member_level.get_member_level_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询会员等级详情
|
||||
@router.get('/detail/{id}', summary='查询会员等级详情')
|
||||
@permission_required("sys:memberlevel:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询会员等级详情服务方法
|
||||
data = member_level.get_member_level_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加会员等级
|
||||
@router.post('/add', summary='添加会员等级')
|
||||
@permission_required("sys:memberlevel:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: MemberLevelForm):
|
||||
# 调用添加会员等级服务
|
||||
result = member_level.add_member_level(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新会员等级
|
||||
@router.put('/update', summary='更新会员等级')
|
||||
@permission_required("sys:memberlevel:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: MemberLevelForm):
|
||||
# 调用更新会员等级服务方法
|
||||
result = member_level.update_member_level(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除会员等级
|
||||
@router.delete('/delete/{id}', summary='删除会员等级')
|
||||
@permission_required("sys:memberlevel:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除会员等级服务方法
|
||||
result = member_level.delete_member_level(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 获取会员等级列表
|
||||
@router.get('/getMemberLevelList', summary='获取会员等级列表')
|
||||
def get_member_level_list():
|
||||
# 调用查询会员等级列表服务方法
|
||||
data = member_level.get_member_level_list()
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 批量删除会员等级
|
||||
@router.delete('/batchDelete', summary='批量删除会员等级')
|
||||
@permission_required("sys:memberlevel:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除会员等级
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 会员等级ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(member_level.delete_member_level, id_str)
|
||||
# 兼容垫片:由 modules.member.router 迁移
|
||||
from modules.member.router import member_level_router as router
|
||||
|
||||
+2
-53
@@ -1,53 +1,2 @@
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.menu import MenuForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import menu
|
||||
from utils import R
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/list', summary='查询分页数据')
|
||||
@permission_required("sys:menu:list")
|
||||
def list(request: Request):
|
||||
result = menu.get_menu_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 查询菜单详情
|
||||
@router.get('/detail/{id}', summary='查询菜单详情')
|
||||
@permission_required("sys:menu:detail")
|
||||
def detail(request: Request, id):
|
||||
data = menu.get_menu_detail(id)
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加菜单
|
||||
@router.post('/add', summary='添加菜单')
|
||||
@permission_required("sys:menu:add")
|
||||
@check_demo
|
||||
async def add(request: Request, data: MenuForm):
|
||||
result = await menu.add_menu(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 更新菜单
|
||||
@router.put('/update', summary='更新菜单')
|
||||
@permission_required("sys:menu:update")
|
||||
@check_demo
|
||||
async def update(request: Request, data: MenuForm):
|
||||
result = await menu.update_menu(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 删除菜单
|
||||
@router.delete('/delete/{id}', summary='删除菜单')
|
||||
@permission_required("sys:menu:delete")
|
||||
@check_demo
|
||||
async def delete(request: Request, id):
|
||||
result = await menu.delete_menu(id)
|
||||
return result
|
||||
# 兼容垫片:由 modules.system.menu.router 迁移
|
||||
from modules.system.menu.router import router
|
||||
|
||||
+2
-84
@@ -1,84 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.notice import NoticeForm
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.services import notice
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:notice:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = notice.get_notice_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询通知详情
|
||||
@router.get('/detail/{id}', summary='查询通知详情')
|
||||
@permission_required("sys:notice:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询通知详情服务方法
|
||||
data = notice.get_notice_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加通知
|
||||
@router.post('/add', summary='添加通知')
|
||||
@permission_required("sys:notice:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: NoticeForm):
|
||||
# 调用添加通知服务
|
||||
result = notice.add_notice(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新通知
|
||||
@router.put('/update', summary='更新通知')
|
||||
@permission_required("sys:notice:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: NoticeForm):
|
||||
# 调用更新通知服务方法
|
||||
result = notice.update_notice(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除通知
|
||||
@router.delete('/delete/{id}', summary='删除通知')
|
||||
@permission_required("sys:notice:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除通知服务方法
|
||||
result = notice.delete_notice(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除通知
|
||||
@router.delete('/batchDelete', summary='批量删除通知')
|
||||
@permission_required("sys:notice:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除通知
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 通知ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(notice.delete_notice, id_str)
|
||||
# 兼容垫片:由 modules.notice.router 迁移
|
||||
from modules.notice.router import router
|
||||
|
||||
@@ -1,47 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import operation_log
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:operation_log:page")
|
||||
def page(request: Request):
|
||||
result = operation_log.get_operation_log_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 删除操作日志
|
||||
@router.delete('/delete/{id}', summary='删除操作日志')
|
||||
@permission_required("sys:operation_log:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
result = operation_log.delete_operation_log(id)
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除操作日志
|
||||
@router.delete('/batchDelete', summary='批量删除操作日志')
|
||||
@permission_required("sys:operation_log:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除操作日志
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 日志ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(operation_log.delete_operation_log, id_str)
|
||||
# 兼容垫片:由 modules.log.router 迁移
|
||||
from modules.log.router import operation_log_router as router
|
||||
|
||||
+2
-90
@@ -1,90 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.position import PositionForm, PositionStatusForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import position
|
||||
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:position:page")
|
||||
def page(request: Request):
|
||||
result = position.get_position_page(request)
|
||||
return result
|
||||
|
||||
|
||||
# 查询岗位详情
|
||||
@router.get('/detail/{id}', summary='查询岗位详情')
|
||||
@permission_required("sys:position:detail")
|
||||
def detail(request: Request, id):
|
||||
data = position.get_position_detail(id)
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加岗位
|
||||
@router.post('/add', summary='添加岗位')
|
||||
@permission_required("sys:position:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: PositionForm):
|
||||
result = position.add_position(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 更新岗位
|
||||
@router.put('/update', summary='更新职级')
|
||||
@permission_required("sys:position:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: PositionForm):
|
||||
result = position.update_position(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 删除岗位
|
||||
@router.delete('/delete/{id}', summary='删除岗位')
|
||||
@permission_required("sys:position:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
result = position.delete_position(id)
|
||||
return result
|
||||
|
||||
|
||||
# 设置岗位状态
|
||||
@router.put('/status', summary='设置岗位状态')
|
||||
@permission_required("sys:position:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: PositionStatusForm):
|
||||
result = position.update_position_status(request, data)
|
||||
return result
|
||||
|
||||
|
||||
# 获取岗位列表
|
||||
@router.get('/getPositionList', summary='获取岗位列表')
|
||||
def get_position_list():
|
||||
result = position.get_position_list()
|
||||
return R.ok(data=result)
|
||||
|
||||
|
||||
# 批量删除岗位
|
||||
@router.delete('/batchDelete', summary='批量删除岗位')
|
||||
@permission_required("sys:position:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除岗位
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 岗位ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(position.delete_position, id_str)
|
||||
# 兼容垫片:由 modules.system.position.router 迁移
|
||||
from modules.system.position.router import router
|
||||
|
||||
+2
-101
@@ -1,101 +1,2 @@
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.role import RoleForm, RoleStatusForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import role
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:role:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = role.get_role_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询角色详情
|
||||
@router.get('/detail/{id}', summary='查询角色详情')
|
||||
@permission_required("sys:role:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询角色详情服务方法
|
||||
data = role.get_role_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加角色
|
||||
@router.post('/add', summary='添加角色')
|
||||
@permission_required("sys:role:add")
|
||||
@check_demo
|
||||
def add(request: Request, data: RoleForm):
|
||||
# 调用添加角色服务
|
||||
result = role.add_role(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新角色
|
||||
@router.put('/update', summary='更新角色')
|
||||
@permission_required("sys:role:update")
|
||||
@check_demo
|
||||
def update(request: Request, data: RoleForm):
|
||||
# 调用更新角色服务方法
|
||||
result = role.update_role(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除角色
|
||||
@router.delete('/delete/{id}', summary='删除角色')
|
||||
@permission_required("sys:role:delete")
|
||||
@check_demo
|
||||
async def delete(request: Request, id):
|
||||
# 调用删除角色服务方法
|
||||
result = await role.delete_role(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 设置角色状态
|
||||
@router.put('/status', summary='设置角色状态')
|
||||
@permission_required("sys:role:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: RoleStatusForm):
|
||||
# 调用设置角色状态服务方法
|
||||
result = role.update_role_status(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 获取角色列表
|
||||
@router.get('/getRoleList', summary='获取角色列表')
|
||||
def get_role_list(request: Request):
|
||||
# 调用获取角色列表方法
|
||||
result = role.get_role_list()
|
||||
# 返回结果
|
||||
return R.ok(data=result)
|
||||
|
||||
|
||||
# 批量删除角色
|
||||
@router.delete('/batchDelete', summary='批量删除角色')
|
||||
@permission_required("sys:role:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除角色
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 角色ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await role.delete_role(id_str)
|
||||
# 兼容垫片:由 modules.system.role.router 迁移
|
||||
from modules.system.role.router import role_router as router
|
||||
|
||||
+2
-27
@@ -1,27 +1,2 @@
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from apps.forms.role_menu import RoleMenuForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import role_menu
|
||||
from utils import R
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询角色菜单列表
|
||||
@router.get('/index/{role_id}', summary='查询角色菜单列表')
|
||||
@permission_required("sys:rolemenu:index")
|
||||
def index(request: Request, role_id):
|
||||
menu_list = role_menu.get_role_menu_list(role_id)
|
||||
return R.ok(data=menu_list)
|
||||
|
||||
|
||||
# 保存角色菜单数据
|
||||
@router.post('/save', summary='保存角色菜单数据')
|
||||
@permission_required("sys:rolemenu:save")
|
||||
@check_demo
|
||||
async def save(request: Request, data: RoleMenuForm):
|
||||
result = await role_menu.save_role_menu(request, data)
|
||||
return result
|
||||
# 兼容垫片:由 modules.system.role.router 迁移
|
||||
from modules.system.role.router import role_menu_router as router
|
||||
|
||||
+2
-41
@@ -1,41 +1,2 @@
|
||||
from fastapi import APIRouter, UploadFile, File
|
||||
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import upload
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 上传图片
|
||||
@router.post('/uploadImage', summary='上传图片')
|
||||
@permission_required("sys:upload:image")
|
||||
@check_demo
|
||||
async def upload_image(file: UploadFile = File(...)):
|
||||
return await upload.upload_image(file)
|
||||
|
||||
|
||||
# 上传文件
|
||||
@router.post('/uploadFile', summary='上传文件')
|
||||
@permission_required("sys:upload:file")
|
||||
@check_demo
|
||||
async def upload_file(file: UploadFile = File(...)):
|
||||
return await upload.upload_file(file)
|
||||
|
||||
|
||||
# 富文本图片上传
|
||||
@router.post('/uploadEditImage', summary='富文本图片上传')
|
||||
@permission_required("sys:upload:image")
|
||||
@check_demo
|
||||
async def upload_edit_image(file: UploadFile = File(...)):
|
||||
result = await upload.upload_image(file)
|
||||
# 兼容富文本编辑器返回格式
|
||||
if result.status_code == 200:
|
||||
import json
|
||||
body = json.loads(result.body)
|
||||
if body.get('code') == 0 and body.get('data'):
|
||||
file_url = body['data'].get('fileUrl', '')
|
||||
from utils import R
|
||||
return R.ok(error=0, url=file_url)
|
||||
return result
|
||||
# 兼容垫片:由 modules.upload.router 迁移
|
||||
from modules.upload.router import router
|
||||
|
||||
+2
-107
@@ -1,107 +1,2 @@
|
||||
import asyncio
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from starlette.requests import Request
|
||||
|
||||
from apps.forms.user import UserForm, UserStatusForm, ResetPwdForm
|
||||
from apps.middleware.check_demo import check_demo
|
||||
from apps.middleware.permission_required import permission_required
|
||||
from apps.services import user
|
||||
from utils import R
|
||||
from utils.request import parse_batch_ids
|
||||
|
||||
# 创建路由
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# 查询分页数据
|
||||
@router.get('/page', summary='查询分页数据')
|
||||
@permission_required("sys:user:page")
|
||||
def page(request: Request):
|
||||
# 调用查询分页数据服务方法
|
||||
result = user.get_user_page(request)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 查询用户详情
|
||||
@router.get('/detail/{id}', summary='查询用户详情')
|
||||
@permission_required("sys:user:detail")
|
||||
def detail(request: Request, id):
|
||||
# 调用查询用户详情服务方法
|
||||
data = user.get_user_detail(id)
|
||||
# 返回结果
|
||||
return R.ok(data=data)
|
||||
|
||||
|
||||
# 添加用户
|
||||
@router.post('/add', summary='添加用户')
|
||||
@permission_required("sys:user:add")
|
||||
@check_demo
|
||||
async def add(request: Request, data: UserForm):
|
||||
# 调用添加用户服务
|
||||
result = await user.add_user(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 更新用户
|
||||
@router.put('/update', summary='更新用户')
|
||||
@permission_required("sys:user:update")
|
||||
@check_demo
|
||||
async def update(request: Request, data: UserForm):
|
||||
# 调用更新用户服务方法
|
||||
result = await user.update_user(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 删除用户
|
||||
@router.delete('/delete/{id}', summary='删除用户')
|
||||
@permission_required("sys:user:delete")
|
||||
@check_demo
|
||||
def delete(request: Request, id):
|
||||
# 调用删除用户服务方法
|
||||
result = user.delete_user(id)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 设置用户状态
|
||||
@router.put('/status', summary='设置用户状态')
|
||||
@permission_required("sys:user:status")
|
||||
@check_demo
|
||||
def status(request: Request, data: UserStatusForm):
|
||||
# 调用设置用户状态服务方法
|
||||
result = user.update_user_status(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 重置密码
|
||||
@router.post('/resetPwd', summary='重置密码')
|
||||
@permission_required("sys:user:resetPwd")
|
||||
@check_demo
|
||||
def reset_pwd(request: Request, data: ResetPwdForm):
|
||||
# 调用重置密码服务方法
|
||||
result = user.reset_user_pwd(request, data)
|
||||
# 返回结果
|
||||
return result
|
||||
|
||||
|
||||
# 批量删除用户
|
||||
@router.delete('/batchDelete', summary='批量删除用户')
|
||||
@permission_required("sys:user:batch_delete")
|
||||
@check_demo
|
||||
async def batch_delete(request: Request):
|
||||
"""
|
||||
批量删除用户
|
||||
|
||||
Request Body:
|
||||
[1, 2, 3] # 用户ID数组
|
||||
"""
|
||||
id_str, err = await parse_batch_ids(request)
|
||||
if err:
|
||||
return err
|
||||
return await asyncio.to_thread(user.delete_user, id_str)
|
||||
# 兼容垫片:由 modules.system.user.router 迁移
|
||||
from modules.system.user.router import router
|
||||
|
||||
Reference in New Issue
Block a user