control_auth.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #coding=utf-8
  2. '''
  3. '''
  4. import json,time,random
  5. from django.db import transaction
  6. import common.models as cm
  7. import common.error_info as ce
  8. import common.common_functions as ccf
  9. import common.common_control as ccc
  10. from utils.aestool import aescbc
  11. def add_wxauth_info(request):
  12. """
  13. """
  14. qdata = request.json
  15. need_params = ["nickname","avatar","openid"]
  16. print qdata
  17. print need_params
  18. mse = ccf.check_params(*need_params,**qdata)
  19. if mse:
  20. raise ce.TipException(mse)
  21. vals = ccf.get_need_params(*need_params,**qdata)
  22. obj,flag = cm.UserInfo.objects.get_or_create(openid=vals.get("openid"))
  23. obj.nickname = vals.get("username")
  24. obj.avatar = vals.get("avatar")
  25. obj.save()
  26. return obj
  27. def get_wxauth_info(request):
  28. """
  29. """
  30. #
  31. uid = request.user.id
  32. player = request.player
  33. user = cm.UserInfo.objects.filter(id=uid).values().first()
  34. user["nickname"] = user["username"]
  35. player = request.player
  36. if player and not player.fund:
  37. user["need_fill"] = 1
  38. else:
  39. user["need_fill"] = 0
  40. return user
  41. def update_wxauth_info(request):
  42. """
  43. """
  44. uid = request.user.id
  45. qdata = request.json
  46. cm.UserInfo.objects.filter(id=uid).update(userinfo=json.dumps(qdata))
  47. return user
  48. def login_user(request):
  49. """
  50. """
  51. info = request.json
  52. usercode = info.get('usercode')
  53. openid = info.get('openid')
  54. avatar = info.get('avatarUrl')
  55. nickname = info.get('nickName')
  56. if not usercode:
  57. raise ce.TipException(u"缺少参数!")
  58. user = cm.UserInfo.objects.filter(usercode=usercode).first()
  59. if not user:
  60. raise ce.TipException(u"用户代号不存在!")
  61. if user.is_bind:
  62. if not openid == user.openid:
  63. raise ce.TipException(u"微信号与用户代码不配!")
  64. if not cm.Player.objects.filter(user_id=user.id).first():
  65. raise ce.TipException(u"该账号未参加任何比赛,不能登录!")
  66. user.openid = openid
  67. user.avatar = avatar
  68. user.nickname = nickname
  69. user.is_bind = 1
  70. user.save()
  71. tstr = "{}_{}{}".format(user.id,time.time(),random.randint(100000,999999))
  72. token = aescbc.encrypt(tstr)
  73. return {"id":user.id,"token":token}