diff --git a/.idea/wd-rating.iml b/.idea/wd-rating.iml index 8b8c395..5ed0139 100644 --- a/.idea/wd-rating.iml +++ b/.idea/wd-rating.iml @@ -2,7 +2,7 @@ - + diff --git a/config/common.dev.ini b/config/common.dev.ini index 0ab06e3..c344809 100644 --- a/config/common.dev.ini +++ b/config/common.dev.ini @@ -1,4 +1,4 @@ -[mysql] +[mysql] host = 127.0.0.1 post = 3306 user = root @@ -12,7 +12,6 @@ user = postgres password = 12345 db = wd_rating - [redis] host = 127.0.0.1 port = 6379 @@ -31,18 +30,13 @@ institution_user_jwt_key = SAXCASD15QA124WRTWET host = 127.0.0.1 port = 27017 db = 三方数据 -;user = fecr -;password = fecr1988.wcq - -[hw_msg] # 华为短信配置 +[hw_msg] url = https://smsapi.cn-north-4.myhuaweicloud.com:443/sms/batchSendSms/v1 app_key = 3h499M186sTF8046f9J9I28J1L9m app_secret = TMCaZWxoMbuW55l27zdxoDfsiKAH -# 通道号 sender = 8823032033987 template_id = 2e129e3ad70d4ccaa8cbadf528d69c3a -# 签名名称 signature = 远东资信 status_call_back = "" @@ -50,7 +44,6 @@ status_call_back = "" port = 8021 title = 维德评级v3.0 sys_name = wd-rating -;host = https://testapi.fecribd.com [tianyancha] token = 32737167-cb63-4ce9-9397-d66169488f51 @@ -59,6 +52,5 @@ token = 32737167-cb63-4ce9-9397-d66169488f51 token = 92229502BD4C4B3E934607D4C1C5E711 [rate_utils] -;host = http://139.9.249.34:8010 host = http://127.0.0.1:8010 -;host = http://139.9.155.218:8010 + diff --git a/context/common.py b/context/common.py index a485d25..27a33a7 100644 --- a/context/common.py +++ b/context/common.py @@ -21,16 +21,14 @@ from pathlib import Path uvicorn_log = getLogger('uvicorn') # 配置数据 + conf = ConfigParser() start_model = "dev" if 'prod' in sys.argv: start_model = 'prod' +conf_file_path = Path(__file__).parent.parent / 'config' / f'common{"." + start_model if start_model else ""}.ini' print("start_model", start_model) -conf.read(Path(__file__).parent.parent / 'config' / f'common{"." + start_model if start_model else ""}.ini', - encoding='utf-8-sig') - - - +conf.read(conf_file_path, encoding='utf-8-sig') class CompanyUserTokenDataModel(BaseModel): diff --git a/mods/router.py b/mods/router.py index 5d305f5..276a178 100644 --- a/mods/router.py +++ b/mods/router.py @@ -3,8 +3,10 @@ from fastapi import APIRouter from .user.router import router as user_router # from .smebiz_rate.router import router as smebiz_rate_router from .rate.router import router as rate_router +from .system.router import router as system_router router = APIRouter(prefix="") router.include_router(user_router) router.include_router(rate_router) +router.include_router(system_router) # router.include_router(smebiz_rate_router) diff --git a/mods/system/router.py b/mods/system/router.py new file mode 100644 index 0000000..14b424c --- /dev/null +++ b/mods/system/router.py @@ -0,0 +1,34 @@ +from fastapi import APIRouter, Depends + +from context.common import conf_file_path, conf, auth_util +from . import schemas + +router = APIRouter(prefix="/system", dependencies=[Depends(auth_util.token_data_depend)]) + + +@router.post("/setting/get", response_model=schemas.SettingGetRes) +def setting_get(): + return schemas.SettingGetRes(data=conf._sections) + + +@router.post("/setting/update_item") +def setting_update_item(req: schemas.SettingUpdateItemReq): + with open(conf_file_path.parent / (conf_file_path.name + '.bak'), 'w', encoding="utf-8-sig") as configfile: + conf.write(configfile) + with open(conf_file_path, 'w', encoding="utf-8-sig") as configfile: + conf.set(req.section, req.option, req.value) + conf.write(configfile) + return "修改成功" + + +@router.post("/setting/update") +def setting_update(req: schemas.SettingUpdateReq): + with open(conf_file_path.parent / (conf_file_path.name + '.bak'), 'w', encoding="utf-8-sig") as configfile: + conf.write(configfile) + with open(conf_file_path, 'w', encoding="utf-8-sig") as configfile: + data = req.data + for section, item in data.items(): + for option, value in item.items(): + conf.set(section, option, value) + conf.write(configfile) + return "修改成功" diff --git a/mods/system/schemas.py b/mods/system/schemas.py new file mode 100644 index 0000000..406ad10 --- /dev/null +++ b/mods/system/schemas.py @@ -0,0 +1,24 @@ +from pydantic import BaseModel +from typing import Dict + + +class SettingItem(BaseModel): + section: str + option: str + value: str + + +class SettingData(BaseModel): + data: Dict[str, Dict[str, str]] + + +class SettingGetRes(SettingData): + pass + + +class SettingUpdateReq(SettingData): + pass + + +class SettingUpdateItemReq(SettingItem): + pass