|
@@ -18,156 +18,55 @@ import common.error_info as ce
|
|
|
import password_handle as ph
|
|
|
import common.common_functions as ccf
|
|
|
|
|
|
-
|
|
|
-def get_user_info(ids,needs=None,relations=None):
|
|
|
- """
|
|
|
- needs:表单独字段筛选
|
|
|
- relations:关联表信息筛选
|
|
|
- """
|
|
|
- qset = cm.UserInfo.objects.filter(id__in=ids)
|
|
|
- if needs:
|
|
|
- users = qset.values(*needs)
|
|
|
- else:
|
|
|
- users = qset.values("id","name","realname","unitname","phone","email",
|
|
|
- "platform","parent_id","is_active","organization_id",
|
|
|
- "role_id","cperson","remark","ctime","unitname","expiry_date")
|
|
|
- if relations and "contactsinfo" in relations:
|
|
|
- for user in users:
|
|
|
- user.update({"contactsinfo":list(cm.Contacts.objects.filter(user_id=user["id"]).values())})
|
|
|
- if relations and "authinfo" in relations:
|
|
|
- for user in users:
|
|
|
- user.update({"authinfo":list(cm.UserAuthInfo.objects.filter(user_id=user["id"]).values())[0]})
|
|
|
- if relations and "roleinfo" in relations:
|
|
|
- for user in users:
|
|
|
- user.update({"roleinfo":list(cm.Role.objects.filter(id=user["role_id"]).values())[0]})
|
|
|
-
|
|
|
- for user in users:
|
|
|
- organization_id = user["organization_id"]
|
|
|
- if user.get("platform") == "portal":
|
|
|
- organization_name = cm.Organization.objects.filter(id=organization_id).first().name
|
|
|
- else:
|
|
|
- organization_name = user.get("unitname")
|
|
|
- role = cm.Role.objects.filter(id=user["role_id"]).first()
|
|
|
- user.update({"role_name":role.name})
|
|
|
- user.update({"organization_name":organization_name})
|
|
|
-
|
|
|
- if relations and "pcode" in relations:
|
|
|
- for user in users:
|
|
|
- organization_id = user["organization_id"]
|
|
|
- if user.get("platform") == "portal":
|
|
|
- organization_name = cm.Organization.objects.filter(id=organization_id).first().name
|
|
|
- else:
|
|
|
- organization_name = user.get("unitname")
|
|
|
- role = cm.Role.objects.filter(id=user["role_id"]).first()
|
|
|
- pcode = list(role.permission.all().values_list("codename",flat=True))
|
|
|
- user.update({"pcode":pcode})
|
|
|
- user.update({"role_name":role.name})
|
|
|
- user.update({"organization_name":organization_name})
|
|
|
- return list(users)
|
|
|
-
|
|
|
-def add_user(**kwargs):
|
|
|
+def add_user(request):
|
|
|
"""
|
|
|
"""
|
|
|
- need_parms = ["name","role_id","expiry_date","authinfo","realname","phone","email"]
|
|
|
- mse = ccf.check_params(*need_parms,**kwargs)
|
|
|
+ kwargs = request.json
|
|
|
+ need_params = ["realname","phone","department_id","utype","is_active"]
|
|
|
+ mse = ccf.check_params(*need_params,**kwargs)
|
|
|
if mse:
|
|
|
raise ce.TipException(mse)
|
|
|
- if not kwargs.get("organization_id") and not kwargs.get("unitname"):
|
|
|
- raise ce.TipException(u"组织机构organization_id和unitname必传一个!")
|
|
|
- if cm.UserInfo.objects.filter(name=kwargs.get("name")).exists():
|
|
|
- raise ce.TipException(u"用户名重复!")
|
|
|
- platform = cm.Role.objects.filter(id=kwargs.get("role_id")).first().platform
|
|
|
- fvals = {
|
|
|
- "name":kwargs.get("name"),
|
|
|
- "realname":kwargs.get("realname"),
|
|
|
- "phone":kwargs.get("phone"),
|
|
|
- "email":kwargs.get("email"),
|
|
|
- "organization_id":kwargs.get("organization_id"),
|
|
|
- "password":kwargs.get("password"),
|
|
|
- "role_id":kwargs.get("role_id"),
|
|
|
- "platform":platform,
|
|
|
- "expiry_date":kwargs.get("expiry_date"),
|
|
|
- "parent_id":kwargs.get("pid"),
|
|
|
- }
|
|
|
- if not fvals.get("password"):
|
|
|
- #password = "GCD365wsm123!@#"
|
|
|
- pwd,password = ph.make_default_password(None)
|
|
|
- fvals.update({"password":password})
|
|
|
- else:
|
|
|
- pwd = fvals.get("password")
|
|
|
- fvals.update({"password":ph.make_password(fvals.get("password"))})
|
|
|
- with transaction.atomic():
|
|
|
- uobj = cm.UserInfo.objects.create(**fvals)
|
|
|
- #保存联系人
|
|
|
- contactinfo = kwargs.get("contactinfo",[])
|
|
|
- for ct in contactinfo:
|
|
|
- ct.update({"user":uobj})
|
|
|
- cm.Contacts.objects.create(**ct)
|
|
|
- #保存用户授权信息
|
|
|
- authinfo = kwargs.get("authinfo")
|
|
|
- if authinfo:
|
|
|
- authinfo.update({"user":uobj})
|
|
|
- cm.UserAuthInfo.objects.create(**authinfo)
|
|
|
- return {"name":kwargs.get("name"),"password":pwd}
|
|
|
- return None
|
|
|
-
|
|
|
-def delete_user(**kwargs):
|
|
|
+ if cm.UserInfo.objects.filter(phone=kwargs.get("phone")).exists():
|
|
|
+ raise ce.TipException(u"该用户已存在!")
|
|
|
+ need_params.extend(["email","remark"])
|
|
|
+ cvals = ccf.get_need_params(*need_params,**kwargs)
|
|
|
+ cvals.update({"name":cvals.get("phone")})
|
|
|
+ cvals.update({"password":ph.make_password(cvals.get("phone")[-6:],True)})
|
|
|
+ cvals["cid"] = request.user.id
|
|
|
+ cvals["cperson"] = request.user.realname
|
|
|
+ obj = cm.UserInfo.objects.create(**cvals)
|
|
|
+ return obj
|
|
|
+
|
|
|
+
|
|
|
+def delete_user(request):
|
|
|
+ kwargs = request.json
|
|
|
need_params = ["id"]
|
|
|
mse = ccf.check_params(*need_params,**kwargs)
|
|
|
if mse:
|
|
|
raise ce.TipException(mse)
|
|
|
ids = str(kwargs.get("id")).split(",")
|
|
|
- cm.UserInfo.objects.filter(id__in=ids).delete()
|
|
|
+ cm.UserInfo.objects.filter(id__in=ids).update(status=0)
|
|
|
|
|
|
|
|
|
-def update_user(**kwargs):
|
|
|
+def update_user(request):
|
|
|
"""
|
|
|
"""
|
|
|
+ kwargs = request.json
|
|
|
need_params = ["id"]
|
|
|
mse = ccf.check_params(*need_params,**kwargs)
|
|
|
if mse:
|
|
|
raise ce.TipException(mse)
|
|
|
- if not kwargs.get("organization_id") and not kwargs.get("unitname"):
|
|
|
- raise ce.TipException(u"组织机构organization_id和unitname必传一个!")
|
|
|
- uvals = {}
|
|
|
- if "name" in kwargs:
|
|
|
- if cm.UserInfo.objects.filter(name=kwargs.get("name"))\
|
|
|
- .exclude(id=kwargs.get("id")).exists():
|
|
|
- raise ce.TipException(u"用户名重复!")
|
|
|
- uvals.update({"name":kwargs.get("name")})
|
|
|
id = kwargs.get("id")
|
|
|
- if "role_id" in kwargs:
|
|
|
- uvals.update({"role_id":kwargs.get("role_id")})
|
|
|
- if "organization_id" in kwargs:
|
|
|
- uvals.update({"organization_id":kwargs.get("organization_id")})
|
|
|
- if "unitname" in kwargs:
|
|
|
- uvals.update({"unitname":kwargs.get("unitname")})
|
|
|
- if "realname" in kwargs:
|
|
|
- uvals.update({"realname":kwargs.get("realname")})
|
|
|
- if "phone" in kwargs:
|
|
|
- uvals.update({"phone":kwargs.get("phone")})
|
|
|
- if "email" in kwargs:
|
|
|
- uvals.update({"email":kwargs.get("email")})
|
|
|
- if "expiry_date" in kwargs:
|
|
|
- uvals.update({"expiry_date":kwargs.get("expiry_date")})
|
|
|
- with transaction.atomic():
|
|
|
- cm.UserInfo.objects.filter(id=id).update(**uvals)
|
|
|
- uobj = cm.UserInfo.objects.filter(id=id).first()
|
|
|
- #保存联系人
|
|
|
- uobj.contacts.all().delete()
|
|
|
- contactinfo = kwargs.get("contactinfo",[])
|
|
|
- for ct in contactinfo:
|
|
|
- ct.update({"user":uobj})
|
|
|
- cm.Contacts.objects.create(**ct)
|
|
|
- #保存用户授权信息
|
|
|
- uobj.user_auth.delete()
|
|
|
- authinfo = kwargs.get("authinfo")
|
|
|
- if authinfo:
|
|
|
- authinfo.update({"user":uobj})
|
|
|
- cm.UserAuthInfo.objects.create(**authinfo)
|
|
|
- return uobj.id
|
|
|
-
|
|
|
-
|
|
|
+ if cm.UserInfo.objects.exclude(id=id).filter(phone=kwargs.get("phone")).exists():
|
|
|
+ raise ce.TipException(u"该用户已存在!")
|
|
|
+ need_params.extend(["realname","phone","department_id","utype","is_active","email","remark"])
|
|
|
+ cvals = ccf.get_need_params(*need_params,**kwargs)
|
|
|
+ cvals.update({"name":cvals.get("phone")})
|
|
|
+ cvals.update({"password":ph.make_password(cvals.get("phone")[-6:],True)})
|
|
|
+ cvals["cid"] = request.user.id
|
|
|
+ cvals["cperson"] = request.user.realname
|
|
|
+ obj = cm.UserInfo.objects.filter(id=id).update(**cvals)
|
|
|
+ return obj
|
|
|
|
|
|
def login_user(request):
|
|
|
"""
|
|
@@ -223,7 +122,6 @@ def reset_user_password(request):
|
|
|
raise ce.TipException(mse)
|
|
|
upk = qdata.get("uid")
|
|
|
code = qdata.get("code")
|
|
|
- pkey = get_user_info([upk])[0].get("phone")
|
|
|
pkey = request.user.phone
|
|
|
if cache.get(pkey,"") != code:
|
|
|
raise ce.TipException(u"验证码不正确!")
|
|
@@ -255,3 +153,81 @@ def regist_user(request):
|
|
|
cvals.update({"password":ph.make_password(cvals.get("password"))})
|
|
|
uobj = cm.UserInfo.objects.create(**cvals)
|
|
|
return None
|
|
|
+
|
|
|
+
|
|
|
+def format_user(*ids):
|
|
|
+ """
|
|
|
+ """
|
|
|
+ eset = cm.UserInfo.objects.filter(id__in=ids,status=1)
|
|
|
+ if not eset.exists():
|
|
|
+ raise ce.TipException(u"客户不存在!")
|
|
|
+ data = list(eset.values())
|
|
|
+ return data
|
|
|
+
|
|
|
+def get_user_info(request):
|
|
|
+ """
|
|
|
+ """
|
|
|
+ kwargs = request.json
|
|
|
+ need_params = ["id"]
|
|
|
+ mse = ccf.check_params(*need_params,**kwargs)
|
|
|
+ if mse:
|
|
|
+ raise ce.TipException(mse)
|
|
|
+ ids = str(kwargs.get("id")).split(",")
|
|
|
+ info = format_user(*ids)
|
|
|
+ info = info[0] if info else {}
|
|
|
+ return info
|
|
|
+
|
|
|
+def get_user_personal_info(request):
|
|
|
+ """
|
|
|
+ """
|
|
|
+ id = request.user.id
|
|
|
+ info = format_user(*[id])
|
|
|
+ info = info[0] if info else {}
|
|
|
+ return info
|
|
|
+
|
|
|
+def get_account_info(request):
|
|
|
+ """
|
|
|
+ """
|
|
|
+ id = request.user.id
|
|
|
+ info = format_user(*[id])
|
|
|
+ info = info[0] if info else {}
|
|
|
+ info["p"] = ["Product.*.*"]
|
|
|
+ return info
|
|
|
+
|
|
|
+def get_user_list(request):
|
|
|
+ """
|
|
|
+ """
|
|
|
+ kwargs = request.json
|
|
|
+ eset = cm.UserInfo.objects.filter(status=1)
|
|
|
+ if "name" in kwargs and kwargs.get("name"):
|
|
|
+ eset = eset.filter(name__icontains=kwargs.get("name"))
|
|
|
+ if "department_id" in kwargs and kwargs.get("department_id"):
|
|
|
+ eset = eset.filter(department_id=kwargs.get("department_id"))
|
|
|
+ if "utype" in kwargs and kwargs.get("utype"):
|
|
|
+ eset = eset.filter(utype=kwargs.get("utype"))
|
|
|
+ if "is_active" in kwargs and kwargs.get("is_active"):
|
|
|
+ eset = eset.filter(is_active=kwargs.get("is_active"))
|
|
|
+ total = eset.count()
|
|
|
+ edata = list(eset.values())
|
|
|
+ page = int(kwargs.get("page",1))
|
|
|
+ page_size = int(kwargs.get("page_size",20))
|
|
|
+ total,data = ccf.get_page_list(edata,page,page_size)
|
|
|
+ return (total,data)
|
|
|
+
|
|
|
+
|
|
|
+def get_unaudit_user_list(request):
|
|
|
+ """
|
|
|
+ """
|
|
|
+ kwargs = request.json
|
|
|
+ eset = cm.UserInfo.objects.filter(status=1,is_active=0)
|
|
|
+ if "name" in kwargs and kwargs.get("name"):
|
|
|
+ eset = eset.filter(name__icontains=kwargs.get("name"))
|
|
|
+ if "utype" in kwargs and kwargs.get("utype"):
|
|
|
+ eset = eset.filter(utype=kwargs.get("utype"))
|
|
|
+ total = eset.count()
|
|
|
+ edata = list(eset.values())
|
|
|
+ page = int(kwargs.get("page",1))
|
|
|
+ page_size = int(kwargs.get("page_size",20))
|
|
|
+ total,data = ccf.get_page_list(edata,page,page_size)
|
|
|
+ return (total,data)
|
|
|
+
|