user_create.py 3.6 KB
# coding=utf-8
#author:        qianyingz
#createtime:    2021/8/13
#email:         qianyingz@chinadci.com

from .models import *
from app.util.component.ApiTemplate import ApiTemplate
import time
from app.models import SM3, AESHelper


class Api(ApiTemplate):
    api_name = "创建用户"

    def para_check(self):
        if not self.para.get("username"):
            raise Exception("username is null")
        if not self.para.get("pwd"):
            raise Exception("pwd is null")
        if not self.para.get("role"):
            raise Exception("role is null")

    def process(self):

        # 返回结果
        res = {}
        res["result"] = False
        try:
            # 业务逻辑
            username = AESHelper.decode(self.para.get("username", ''))
            password = SM3.encode(AESHelper.decode(self.para.get("pwd", '')))
            role = AESHelper.decode(self.para.get("role", ''))
            company = AESHelper.decode(self.para.get("company", ''))
            position = AESHelper.decode(self.para.get("position", ''))
            email = AESHelper.decode(self.para.get("email", ''))
            phone = AESHelper.decode(self.para.get("phone", ''))
            displayname = username
            # 是否重名
            if(User.query.filter_by(username=username).one_or_none()):
                res["msg"] = "username 已存在"
            else:
                user = User(username=username, displayname=displayname, password=password, role=role,
                            phone=phone, company=company, position=position, email=email,
                            create_time=time.strftime(
                                "%Y-%m-%d %H:%M:%S", time.localtime()),
                            update_time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
                db.session.add(user)
                db.session.commit()
                res["msg"] = "用户创建成功"
                res["data"] = {"id": user.id,
                               "username": user.username, "role": user.role}
                res["result"] = True
        except Exception as e:
            db.session.rollback()
            raise e
        return res

    api_doc = {

        "tags": ["认证接口"],
        "parameters": [
            {"name": "username",
             "in": "formData",
             "type": "string",
             "description": "用户名",
             "required": "true"},
            {"name": "pwd",
             "in": "formData",
             "type": "string",
             "description": "密码",
             "required": "true"},
            {"name": "role",
             "in": "formData",
             "type": "string",
             "description": "角色",
             "required": "true"},
            {"name": "company",
             "in": "formData",
             "type": "string",
             "description": "单位",
             "required": ""},
            {"name": "email",
             "in": "formData",
             "type": "string",
             "description": "邮件",
             "required": ""},
            {"name": "phone",
             "in": "formData",
             "type": "string",
             "description": "电话",
             "required": ""},
            {"name": "position",
             "in": "formData",
             "type": "string",
             "description": "职位",
             "required": ""},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }