def wechat_login(self, jsonInfo): ''' 微信用户登录 第一步:# 获取唯一的open_id 第二步: 判断用户是否是第一次登录,如果是,则创建用户信息,否则,查看是否需要变更用户信息 :param info: :return: {'data': '', 'status': 'SUCCESS'} ''' info = json.loads(jsonInfo) raw_data = info['rawData'].encode('utf-8') signature = info['signature'] code = info['code'] url = GET_OPENID_URL payload = {'appid': APP_ID, 'secret': APP_SECRET, 'js_code': code, 'grant_type': 'authorization_code'} r = requests.get(url=url, params=payload) ret = json.loads(r.text) open_id = ret['openid'] session_key = ret['session_key'].encode('utf-8') new_signature = hashlib.sha1(raw_data + session_key).hexdigest() if signature == new_signature: query = db.session.query(UserInfo).filter(UserInfo.open_id == open_id) result = query.first() user_info = {} raw_data_dict = json.loads(info['rawData']) avatar_url = raw_data_dict['avatarUrl'] user_name = raw_data_dict['nickName'] user_info['imgpath'] = avatar_url user_info['open_id'] = open_id user_info['user_name'] = user_name if result: user_info['user_id'] = result.user_id user_info['foreign_id'] = user_info['user_id'] self._update_user_info(user_info) else: user_info['user_id'] = self.generate_id(open_id) user_info['imgpath_id'] = self.generate_id(avatar_url) user_info['foreign_id'] = user_info['user_id'] user_info['createtime'] = datetime.now() ImgPath.create(info=user_info) UserInfo.create(info=user_info) tokenManager = TokenManager() user_info['validity'] = VALIDITY (status, token_id) = tokenManager.update_token(info=user_info) db.session.commit() return (True, token_id) else: return (False, None)
def _create_user(self, info): ''' 后台,创建用户 第一步: 验证管理员身份 第二步: 创建Token, Imgpath, UserInfo信息 :param info: {'token_id': '', 'user_name': '', 'imgpath': '', 'user_id': '', 'open_id': ''} :return: {'data': '', 'status': 'SUCCESS'} ''' info['imgpath_id'] = self.generate_id(info['imgpath']) info['imgpath'] = info['imgpath'] info['foreign_id'] = info['user_id'] ImgPath.create(info=info) UserInfo.create(info=info) db.session.commit() return (True, info['user_id'])
def create_activity(self, info): ''' 创建活动 第一步: 验证用户身份 第二步: 创建Imgpath, Activity信息 :param info: {'token_id': '', 'user_name': '', 'imgpath': '', 'user_id': '', 'open_id': ''} :return: {'data': '', 'status': 'SUCCESS'} ''' print(info) info['activity_id'] = self.generate_id(info['activity_name']) info['imgpath_id'] = self.generate_id(info['imgpath']) info['foreign_id'] = info['activity_id'] ImgPath.create(info=info) info['createtime'] = datetime.now() Activity.create(info=info) db.session.commit() return (True, info['activity_id'])
def create_club_background(self, info): ''' 后台, 创建俱乐部 第一步: 验证该俱乐部是否已经存在(根据俱乐部名称); 第二步: 创建俱乐部图片; 第三步: 创建俱乐部 :param info: :return: ''' info['club_id'] = self.generate_id(info['club_name']) info['imgpath'] = info['imgpath'] info['imgpath_id'] = self.generate_id(info['imgpath']) info['foreign_id'] = info['club_id'] info['createtime'] = datetime.now() ImgPath.create(info=info) Club.create(info=info) db.session.commit() return (True, info['club_id'])
def create_user_background(self, info): ''' 后台,创建用户 第一步: 验证管理员身份 第二步: 创建Token, Imgpath, UserInfo信息 :param info: {'token_id': '', 'user_name': '', 'imgpath': '', 'user_id': '', 'open_id': ''} :return: {'data': '', 'status': 'SUCCESS'} ''' info['user_id'] = self.generate_id(info['user_name']) info['token_id'] = self.generate_id(info['user_id']) info['createtime'] = datetime.now() info['validity'] = VALIDITY Token.create(info) info['imgpath_id'] = self.generate_id(info['imgpath']) info['imgpath'] = info['imgpath'] info['foreign_id'] = info['user_id'] ImgPath.create(info=info) UserInfo.create(info=info) db.session.commit() return (True, info['user_id'])
def create_activity_background(self, info): ''' 后台,创建活动 第一步: 验证管理员身份 第二步: 创建Imgpath, Activity信息 :param info: {'token_id': '', 'user_name': '', 'imgpath': '', 'user_id': '', 'open_id': ''} :return: {'data': '', 'status': 'SUCCESS'} ''' print(info) info['activity_id'] = self.generate_id(info['activity_name']) info['imgpath_id'] = self.generate_id(info['imgpath']) info['foreign_id'] = info['activity_id'] ImgPath.create(info=info) info['createtime'] = datetime.now() if 'club_id' in info: info['type_id'] = ACTIVITY_CLUB info['area'] = None else: info['club_id'] = None info['type_id'] = ACTIVITY_USER Activity.create(info=info) db.session.commit() return (True, info['activity_id'])
def create_club_background(self, info): ''' 后台, 创建俱乐部 第一步: 验证该俱乐部是否已经存在(根据俱乐部名称); 第二步: 创建俱乐部图片; 第三步: 创建俱乐部 :param info: :return: ''' info['club_id'] = self.generate_id(info['club_name']) info['imgpath'] = info['imgpath'] info['imgpath_id'] = self.generate_id(info['imgpath']) info['foreign_id'] = info['club_id'] info['createtime'] = datetime.now() ImgPath.create(info=info) Club.create(info=info) db.session.commit() return (True, info['club_id']) # # 后台, 获取俱乐部详情 # def getClubDetailBackground(self, jsonInfo): # info = json.loads(jsonInfo) # try: # # 管理员身份校验 # adminManager = AdminManager() # (status, reason) = adminManager.adminAuth(jsonInfo) # if status is not True: # return (False, reason) # return self._generateClubDetail(info=info) # except Exception as e: # print e # db.session.rollback() # errorInfo = ErrorInfo['WOLFS_01'] # errorInfo['detail'] = str(e) # return (False, errorInfo) # # # 获取俱乐部详情 # def getClubDetail(self, jsonInfo): # info = json.loads(jsonInfo) # try: # # 身份校验 # tokenManager = TokenManager() # (status, userID) = tokenManager.isTokenValid(info=info) # if status is not True: # return (False, userID) # return self._generateClubDetail(info=info) # except Exception as e: # print e # db.session.rollback() # errorInfo = ErrorInfo['WOLFS_01'] # errorInfo['detail'] = str(e) # return (False, errorInfo) # # # def _generateClubDetail(self, info): # clubID = info['clubID'] # query = db.session.query(Club, UserInfo, Province, City, County).outerjoin( # UserInfo, Club.userID == UserInfo.userID # ).outerjoin( # Province, Club.provinceID == Province.provinceID # ).outerjoin( # City, Club.cityID == City.cityID # ).outerjoin( # County, Club.countyID == County.countyID # ).filter(Club.clubID == clubID) # result = query.first() # if result is None: # errorInfo = ErrorInfo['WOLFS_08'] # return (False, errorInfo) # callBackData = {} # if result.UserInfo is not None: # (status, userInfo) = UserInfo.generate(result=result.UserInfo) # callBackData.update(userInfo) # (status, provinceInfo) = Province.generate(result=result.Province) # (status, cityInfo) = City.generate(result=result.City) # (status, countyInfo) = County.generate(result=result.County) # (status, clubInfo) = Club.generate(result=result.Club) # callBackData.update(provinceInfo) # callBackData.update(cityInfo) # callBackData.update(countyInfo) # callBackData.update(clubInfo) # imageManager = ImageManager() # info['foreignID'] = clubID # (status, imgInfo) = imageManager.getImage(info=info) # callBackData.update(imgInfo) # return (True, callBackData) # # # # 后台, 删除俱乐部 # def deleteClubBackground(self, jsonInfo): # info = json.loads(jsonInfo) # clubID = info['clubID'] # try: # # 管理员身份校验 # adminManager = AdminManager() # (status, reason) = adminManager.adminAuth(jsonInfo) # if status is not True: # return (False, reason) # imageManager = ImageManager() # # 1.删除关联活动 # activityQuery = db.session.query(Activity).filter( # Activity.clubID == clubID # ) # activityResult = activityQuery.all() # if activityResult is not None: # for i in activityResult: # db.session.query(Participate).filter( # Participate.activityID == i.activityID # ).delete(synchronize_session=False) # info['foreignID'] = i.activityID # imageManager.deleteImage(info=info) # activityQuery.delete(synchronize_session=False) # # 2.删除搜索记录 # searchKeyQuery = db.session.query(SearchKey).filter( # SearchKey.foreignID == clubID # ) # searchKeyQuery.delete(synchronize_session=False) # # 3.删除图像 # imgPathQuery = db.session.query(ImgPath).filter( # ImgPath.foreignID == clubID # ) # imgPathQuery.delete(synchronize_session=False) # info['foreignID'] = clubID # imageManager.deleteImage(info=info) # #4.删除关联俱乐部 # clubQuery = db.session.query(Club).filter( # Club.clubID == clubID # ) # clubQuery.delete(synchronize_session=False) # db.session.commit() # return (True, None) # except Exception as e: # print e # db.session.rollback() # errorInfo = ErrorInfo['WOLFS_01'] # errorInfo['detail'] = str(e) # return (False, errorInfo) # # # 获取个人中心中的俱乐部列表 # @TokenManager.checkUserValidity # def getClubListByUserID(self, jsonInfo, **kwargs): # info = kwargs # try: # userID = info['userID'] # startIndex = info['startIndex'] # pageCount= info['pageCount'] # query = db.session.query(ClubScore, Club).outerjoin( # Club, ClubScore.clubID == Club.clubID # ).filter( # and_(ClubScore.userID == userID, # ClubScore.clubID != '-1') # ) # allResult = query.offset(startIndex).limit(pageCount).all() # imageManager = ImageManager() # def generateClubInfo(result): # res = {} # (status, clubInfo) = Club.generate(result=result.Club) # info['foreignID'] = result.Club.clubID # info['directory'] = 'portrait' # (status, imgInfo) = imageManager.getImage(info=info) # res.update(imgInfo) # res.update(clubInfo) # return res # callBackData = [generateClubInfo(result=result) for result in allResult] # return (True, callBackData) # except Exception as e: # print e # db.session.rollback() # errorInfo = ErrorInfo['WOLFS_01'] # errorInfo['detail'] = str(e) # return (False, errorInfo) # # @TokenManager.checkUserValidity # def getClubList(self, jsonInfo, **kwargs): # info = kwargs # try: # query = db.session.query(Club) # allResult = query.all() # callBackData = [Club.generate(result=result)[1] for result in allResult] # return (True, callBackData) # except Exception as e: # print e # db.session.rollback() # errorInfo = ErrorInfo['WOLFS_01'] # errorInfo['detail'] = str(e) # return (False, errorInfo)