| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- #coding=utf-8
- '''
- '''
- import json
- import datetime
- import logging
- import re
- import hashlib
- import xlrd
- from django.core.cache import cache
- from django.db.models import Q
- from django.db.models import Sum
- from django.db import transaction
- from django.contrib import auth
- import common.models as cm
- import common.error_info as ce
- import password_handle as ph
- import common.common_functions as ccf
- def add_user(request):
- """
- """
- 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 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).update(status=0)
- def update_user(request):
- """
- """
- kwargs = request.json
- need_params = ["id"]
- mse = ccf.check_params(*need_params,**kwargs)
- if mse:
- raise ce.TipException(mse)
- id = kwargs.get("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):
- """
- """
- info = request.json
- login_info = info.get('username')
- password = info.get('password')
- captcha_id = info.get('imgcode_id')
- idcode = info.get('imgcode')
- captcha = cache.get(captcha_id, '')
- cache.delete(captcha_id)
- if not login_info or not password:
- raise ce.TipException(u"账户或密码不能为空!")
- if not idcode:
- raise ce.TipException(u"验证码不能为空!")
- if idcode.upper() != captcha.upper():
- raise ce.TipException(u"验证码错误!")
- user = auth.authenticate(request, account=login_info, pwd=password)
- if user:
- auth.login(request, user)
- return user
- else:
- raise ce.TipException(u"账号或密码错误!")
- def reset_password(request):
- """
- @attention: 重置密码
- """
- uid = request.user.id
- qdata = request.json
- need_params = ["password","repassword"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- uid = request.json.get("uid")
- if not uid:
- uid = request.user.id
- phone = qdata.get("phone")
- password = qdata.get("password")
- repassword = qdata.get("repassword")
- if password != repassword:
- raise ce.TipException(u"两次输入的密码不一致!")
- pwd = ph.make_password(password)
- cm.UserInfo.objects.filter(id=uid).update(password=pwd)
- def reset_user_password(request):
- qdata = request.json
- need_params = ["uid","code","password"]
- mse = ccf.check_params(*need_params,**qdata)
- if mse:
- raise ce.TipException(mse)
- upk = qdata.get("uid")
- code = qdata.get("code")
- pkey = request.user.phone
- if cache.get(pkey,"") != code:
- raise ce.TipException(u"验证码不正确!")
- newpwd = qdata.get("password")
- pwd = ph.make_password(newpwd)
- cm.UserInfo.objects.filter(pk=upk).update(password=pwd)
- def regist_user(request):
- """
- """
- kwargs = request.json
- need_parms = ["realname","password","repassword","phone","email"]
- mse = ccf.check_params(*need_parms,**kwargs)
- if mse:
- raise ce.TipException(mse)
- if cm.UserInfo.objects.filter(phone=kwargs.get("phone")).exists():
- raise ce.TipException(u"该手机号已注册!")
- cvals = ccf.get_need_params(*need_parms,**kwargs)
- cvals.pop("repassword")
- cvals["name"] = cvals["phone"]
- if kwargs["password"] != kwargs["repassword"]:
- raise ce.TipException(u"前后输入的密码不一致!")
- if not cvals.get("password"):
- pwd,password = ph.make_default_password(None)
- cvals.update({"password":password})
- else:
- pwd = cvals.get("password")
- 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
- print id,99999
- 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)
|