# coding=utf-8 from __future__ import unicode_literals import requests import random,datetime import json import uuid from django.contrib import auth from django.core.cache import cache from django.conf import settings import common.error_info as ce from common import core_views as cv import common.common_control as ccc import common.common_functions as ccf import weixin.control_auth as ca import weixin.controls as ctl import weixin.wzhifuSDK as wzf class OpenidView(cv.BaseView): def get(self,request): """ #获取openid(小程序) @code:1212 """ code = request.json.get("code") open_id = cache.get(code) if open_id: return cv.to_suc({"openid":open_id}) else: get_token_url = 'https://api.weixin.qq.com/sns/jscode2session?appid={}&secret={}&js_code={}&grant_type=authorization_code' .format(wzf.WxPayConf_pub.APPID,wzf.WxPayConf_pub.APPSECRET,code) res = requests.get(get_token_url).json() if res.has_key('openid'): open_id = res['openid'] cache.set(code,open_id,24*3600) else: open_id = '' if open_id: return cv.to_suc({"openid":open_id}) else: return cv.to_fail(u"获取用户信息出错!") class UploadFileView(cv.BaseView): def post(self, request): """ #文件上传(小程序) @file:"",文件对象 """ import time upload_file = request.FILES['file'] dest = settings.STATIC_ROOT + "/upload/"+str(int(time.time())) + upload_file.name with open(dest,"wb+") as f: for chunk in upload_file.chunks(): f.write(chunk) f.close() url = dest.replace(settings.STATIC_ROOT,settings.HOST) print url return cv.to_suc({"url":url}) class TopicUploadFileView(cv.BaseView): def post(self, request): """ #文件上传(WEB端) @file:"",文件对象 """ import time upload_file = request.FILES['file'] dest = settings.STATIC_ROOT + "/upload/"+str(int(time.time())) + upload_file.name with open(dest,"wb+") as f: for chunk in upload_file.chunks(): f.write(chunk) f.close() url = dest.replace(settings.STATIC_ROOT,settings.HOST) return cv.to_suc({"url":url}) class AuthView(cv.BaseView): def post(self, request): """#保存微信授权信息(小程序) @nickname:"新",昵称 @avatar:"",头像 @openid:"",openid """ try: rst = ca.add_wxauth_info(request) return cv.to_suc({"uid":rst.id}) except Exception as e: cv.tracefail() return cv.to_fail(e) class AuthinfoView(cv.AuthView): def get(self,request): """#获取用户信息(小程序) """ try: rst = ca.get_wxauth_info(request) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def put(self, request): """#修改个人信息(小程序) """ try: rst = ca.update_wxauth_info(request) return cv.to_suc() except Exception as e: cv.tracefail() return cv.to_fail(e) class LoginView(cv.BaseView): def post(self, request): """#小程序登录(小程序) @usercode:"用户代号" @nickanme:"微信昵称" @avatar:"微信头像" @openid:"openid" """ try: rst = ca.login_user(request) return cv.to_suc(rst) except Exception as e: return cv.to_fail(e) class IndexView(cv.AuthView): def get(self, request): """#首页数据(小程序) """ try: rst = ctl.get_index_data(request) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) class PlayerRecordView(cv.AuthView): def get(self, request): """#每日数据详情(小程序) @id:1 """ qdata = request.json need_params = ["id"] mse = ccf.check_params(*need_params,**qdata) if mse: raise ce.TipException(mse) try: vals = ccf.get_need_params(*need_params,**qdata) rcid = vals.get("id") #rst = ctl.get_detail_info(self,**vals) rst = ctl.get_record_info(rcid) return cv.to_suc(rst) except Exception as e: cv.tracefail() return cv.to_fail(e) def post(self, request): """#新增每日数据(小程序) @stock_date:"2021-07-30" @today_fund:100 @today_stock:[{name:"江苏国泰",code:121221}] @today_stock_img:["http://test.png"] """ #return cv.to_fail(u"系统升级维护请稍后再试....") qdata = request.json player = request.player now = datetime.datetime.now() #if not now.isoweekday() in [1,2,3,4,5] or not "09:30"