|
@@ -19,7 +19,7 @@ import traceback
|
|
|
from utils import *
|
|
|
from datetime import datetime, timedelta
|
|
|
from common import YzyApi
|
|
|
-from common.db import db_dict
|
|
|
+from common.db import db_dict, db_msg_center
|
|
|
from urllib.parse import quote
|
|
|
import base64
|
|
|
from config import settings
|
|
@@ -71,6 +71,9 @@ async def create_emergency_plan(
|
|
|
|
|
|
examine_by = examine_user_row.user_id
|
|
|
|
|
|
+
|
|
|
+ system_from = get_req_param_optional(body, 'system_from')
|
|
|
+
|
|
|
new_publish = InfoPublishBase(
|
|
|
title = body['title'],
|
|
|
publish_group = body['publish_group'],
|
|
@@ -91,7 +94,8 @@ async def create_emergency_plan(
|
|
|
user_ok_count = 0,
|
|
|
user_err_count = 0,
|
|
|
user_sending_count = 0,
|
|
|
- info_type = body['info_type']
|
|
|
+ info_type = body['info_type'],
|
|
|
+ system_from = system_from
|
|
|
)
|
|
|
db.add(new_publish)
|
|
|
db.commit()
|
|
@@ -111,7 +115,7 @@ async def create_emergency_plan(
|
|
|
send_user_name = mpfun.dec_data(user_row.user_name)
|
|
|
send_dept_row = db.query(SysDept).filter(SysDept.dept_id == user_row.dept_id).first()
|
|
|
send_dept_name = send_dept_row.dept_name
|
|
|
- send_yzy_account = mpfun.dec_data(user_row.yzy_account)
|
|
|
+ send_yzy_account = (user_row.yzy_account)
|
|
|
|
|
|
if send_yzy_account is None or send_yzy_account == "":
|
|
|
send_yzy_account = user_row.phonenumber
|
|
@@ -226,6 +230,7 @@ async def get_publish_list(
|
|
|
publish_status: str = Query('', description='发布状态的字典键值'),
|
|
|
examine_status: str = Query('', description='审批状态的字典键值'),
|
|
|
dispose_status: str = Query('', description='处理状态的字典键值'),
|
|
|
+ system_from: str = Query('', description='信息来源'),
|
|
|
content: str = Query('', description='信息内容'),
|
|
|
sort_by: str = Query('', description='排序字段'),
|
|
|
sort_order: str = Query("asc", description='排序方式'),
|
|
@@ -245,6 +250,8 @@ async def get_publish_list(
|
|
|
where = and_(where, InfoPublishBase.examine_status == examine_status)
|
|
|
if publish_group != '':
|
|
|
where = and_(where, InfoPublishBase.publish_group.like('%{}%'.format(publish_group)))
|
|
|
+ if system_from != '':
|
|
|
+ where = and_(where, InfoPublishBase.system_from == system_from)
|
|
|
|
|
|
if dispose_status == '1' : # 1 待处理
|
|
|
# 审核类型 20 待审批
|
|
@@ -625,4 +632,75 @@ def get_response_type_text(val: int) -> str:
|
|
|
elif val == 2:
|
|
|
return '签字确认'
|
|
|
else:
|
|
|
- return '未知'
|
|
|
+ return '未知'
|
|
|
+
|
|
|
+
|
|
|
+@router.get('/find_examine_user')
|
|
|
+async def userlist( deptId: int = Query(None ,description='部门id'),
|
|
|
+ userName: str = Query(None, description='用户名'),
|
|
|
+ status: int = Query(None, description='用户状态'),
|
|
|
+ phonenumber : str = Query(None, description='手机号'),
|
|
|
+ page: int = Query(1, gt=0, description='页码'),
|
|
|
+ pageSize: int = Query(10, gt=0, description='每页条目数量'),
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ user_id: int = Depends(valid_access_token)):
|
|
|
+ try:
|
|
|
+ # 构建查询
|
|
|
+ query = db.query(SysUser)
|
|
|
+ query = query.filter(SysUser.del_flag != '2')
|
|
|
+
|
|
|
+ # 应用查询条件
|
|
|
+ if userName:
|
|
|
+ query =query.filter(or_(SysUser.user_name == mpfun.enc_data(userName), SysUser.nick_name.like(f'%{userName}%')))
|
|
|
+
|
|
|
+ if status:
|
|
|
+ query =query.filter(SysUser.status == status)
|
|
|
+
|
|
|
+ if phonenumber:
|
|
|
+ query =query.filter(SysUser.phonenumber == mpfun.enc_data(phonenumber))
|
|
|
+
|
|
|
+ # 计算总条目数
|
|
|
+ total_items = query.count()
|
|
|
+
|
|
|
+ # 排序
|
|
|
+ query = query.order_by(SysUser.create_time.desc())
|
|
|
+ # 执行分页查询
|
|
|
+ users = query.offset((page - 1) * pageSize).limit(pageSize).all()
|
|
|
+
|
|
|
+ # 将查询结果转换为列表形式的字典
|
|
|
+ user_list = []
|
|
|
+ for user in users:
|
|
|
+ user_info = {
|
|
|
+ "userId": user.user_id,
|
|
|
+ "tenantId": user.tenant_id,
|
|
|
+ "deptId": user.dept_id,
|
|
|
+ "userName": mpfun.dec_data(user.user_name),
|
|
|
+ "nickName": user.nick_name,
|
|
|
+ "userType": user.user_type,
|
|
|
+ "email": mpfun.dec_data(user.email),
|
|
|
+ "phonenumber": mpfun.dec_data(user.phonenumber),
|
|
|
+ "sex": user.sex,
|
|
|
+ "avatar": user.avatar,
|
|
|
+ "status": user.status,
|
|
|
+ "loginIp": user.login_ip,
|
|
|
+ "loginDate": user.login_date.strftime('%Y-%m-%d %H:%M:%S') if user.login_date else '',
|
|
|
+ "remark": user.remark,
|
|
|
+ "createTime": user.create_time.strftime('%Y-%m-%d %H:%M:%S') if user.create_time else '',
|
|
|
+ "deptName": user.dept_name,
|
|
|
+ }
|
|
|
+ user_list.append(user_info)
|
|
|
+
|
|
|
+ # 返回结果
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "msg": "成功用户列表",
|
|
|
+ "rows": user_list,
|
|
|
+ "total": total_items,
|
|
|
+ "page": page,
|
|
|
+ "pageSize": pageSize,
|
|
|
+ "totalPages": (total_items + pageSize - 1) // pageSize
|
|
|
+ }
|
|
|
+
|
|
|
+ except Exception as e:
|
|
|
+ traceback.print_exc()
|
|
|
+ raise HTTPException(status_code=500, detail=f"Internal server error: {str(e)}")
|