def post(self): player_base = self.get_player_base() if player_base is None: return self.send_faild(error.ERROR_NO_USER) try: data = self.get_post_data() imei = data['imei'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) devinfo = dev_v3.get_dev_info(imei) if devinfo == None: return self.send_faild(error.ERROR_DEV_NOY_CONNECT_YET) dev = Data.find('devices', [('imei', '=', imei)]) if dev == None: return self.send_faild(error.ERROR_DEVICE_EXISTS) params = { 'imei': imei, 'ctime': int(time.time()), 'user_id': '', 'times': 0, 'status': 0 } Data.update('devices', [('imei', '=', imei)], params) dev_v3.send_bind_status(imei) reply = {'commit': 1} self.send_ok(reply) return
def add_agent_reward(shop_id, service_id): distr_info = Data.find('distr_relation', [('user_id', '=', shop_id)]) if distr_info is not None: distr_id = distr_info['upper_id'] if distr_id != 0: shop_machines = Data.select('shop_machines', [('shop_id', '=', shop_id), ('distr_reward', '=', 0), ('status', '=', 0)], order=('add_time', '')) print(shop_machines) print(shop_machines[0]) if shop_machines[0]: if shop_machines[0]['paid_pg'] != 0: params = { 'user_id': distr_id, 'share': 50000, 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.distr_reward, 'buy_time': int(time.time()), 'withdraw_id': service_id, } Data.insert('withdraw_record', params) Data.update('shop_machines', [('id', '=', shop_machines[0]['id'])], { 'status': 1, 'distr_reward': 1 })
def post(self): player_base = self.get_player_base() if player_base is None: return self.send_faild(error.ERROR_NO_USER) try: data = self.get_post_data() group_id = data['group_id'] name = data['group_name'] comment = data['group_desc'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) group = Data.select('player_group', [('id', '=', group_id)]) if group == None: return self.send_faild(error.ERROR_DATA_NOT_FOUND) Data.update('player_group', [('id', '=', group_id)], { 'name': name, 'comment': comment }) reply = {'commit': 1} self.send_ok(reply) return
def post(self): print('update_auth_template') admin_base = self.get_admin_base() if admin_base is None: return self.send_faild(error.ERROR_NO_LOGIN) if self.is_god() is False: return self.send_faild(error.ERROR_AUTH_PERMISSION) try: data = self.get_post_data() temp_id = data['temp_id'] name = data['name'] auth = data['auth'] comment = data['comment'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) params = {} params['name'] = name params['auth'] = auth params['comment'] = comment params['utime'] = int(time.time()) Data.update('admin_temp', [('id', '=', temp_id)], params) result = {'commit': 1} self.send_ok(result) write_admin_record(operate_id=admin_base['id'], operate_desc='修改权限模板', temp_id=data['temp_id']) return
def post(self): print('delete_auth_template') admin_base = self.get_admin_base() if admin_base is None: return self.send_faild(error.ERROR_NO_LOGIN) if self.is_god() is False: return self.send_faild(error.ERROR_AUTH_PERMISSION) try: data = self.get_post_data() temp_id = data['temp_id'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) res = Data.find('admin_temp', [('id', '=', temp_id)]) if res is None: return self.send_faild(error.ERROR_DATA_NOT_FOUND) Data.update('admin_temp', [('id', '=', temp_id)], {'status': 1}) result = {'commit': 1} self.send_ok(result) write_admin_record(operate_id=admin_base['id'], operate_desc='删除权限模板', temp_id=data['temp_id']) return
def post(self): player_base = self.get_player_base() if player_base is None: return self.send_faild(error.ERROR_NO_USER) try: data = self.get_post_data() imei = data['imei'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) devinfo = dev_v3.get_dev_info(imei) if devinfo == None: return self.send_faild(error.ERROR_DEV_NOY_CONNECT_YET) device = Data.find('devices', [('imei', '=', imei)]) if device: if device['user_id'] == '': Data.update('devices', [('imei', '=', imei)], {'user_id': player_base['id']}) else: return self.send_faild(error.ERROR_DEVICE_EXISTS) dev_v3.send_bind_status(imei) reply = {'commit': 1} self.send_ok(reply) return
def post(self): print('del_adv') admin_base = self.get_admin_base() if admin_base is None: return self.send_faild(error.ERROR_NO_LOGIN) if not self.is_god(): return self.send_faild(error.ERROR_AUTH_PERMISSION) try: data = self.get_post_data() adv_id = data['adv_id'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) info = Data.find('adv', [('id', '=', adv_id)]) if info is None: return self.send_faild(error.ERROR_DATA_NOT_FOUND) if info['status'] == 0: status = 1 else: status = 0 Data.update('adv', [('id', '=', adv_id)], {'status': status}) result = {'commit': 1} self.send_ok(result) write_admin_record(operate_id=admin_base['id'], operate_desc='启用/禁用广告', adv_id=adv_id) return
def check_user(self,player_base): player_info = Data.find(Relay.player,[('open_id','=',player_base['open_id'])]) if player_info != None: Data.update(Relay.player,[('id','=',player_info['id'])],player_base) else: Data.insert(Relay.player,player_base) player_info = Data.find(Relay.player,[('open_id','=',player_base['open_id'])]) return player_info['id']
def get(self): admin_base = self.get_admin_base() if admin_base == None: self.send_faild(error.ERROR_NO_LOGIN) return admin_id = admin_base['id'] if admin_id in Relay.admin_token_dict: Relay.admin_token_dict[admin_id] = '' Data.update('admin', [('id', '=', admin_id)], {'token', '=', ''}) return
def post(self): data = self.get_post_data() user_base = self.get_user_base(Relay.admin) if user_base == None: self.send_faild(error.ERROR_ADMIN_NO_LOGIN) return Data.update('case_info', [('id', '=', data['case_id'])], {'is_show': status_can_show}) self.send_ok({}) return
def remove_time_out_token(user_dict, connect_table): now_time = int(time.time()) pop_list = [] for token in user_dict: if now_time - user_dict[token] > config.token_time_out: pop_list.append(token) for token in pop_list: user_dict.pop(token) Data.update(connect_table, [('token', '=', token)], {'token': ''}) return
def post(self): print('update_admin_detail') admin_base = self.get_admin_base() if admin_base is None: return self.send_faild(error.ERROR_NO_LOGIN) if self.is_god() is False: return self.send_faild(error.ERROR_AUTH_PERMISSION) try: data = self.get_post_data() admin_id = data['admin_id'] status = data['status'] auth_temp = data['admin_temp_id'] comment = data['comment'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) if admin_id == 1: print('初始账号不能改信息') return self.send_faild(error.ERROR_AUTH_PERMISSION) admin_info = Data.find('admin_auth', [('admin_id', '=', admin_id)]) if admin_info is None: return self.send_faild(error.ERROR_NO_USER) god_info = Data.find('admin', [('id', '=', admin_id)]) if god_info is None: return self.send_faild(error.ERROR_NO_USER) # 更新模板 Data.update('admin_auth', [('id', '=', admin_id)], {'auth_id': auth_temp}) god_info = { 'utime': common.time_to_str(int(time.time())), 'status': status, 'comment': comment } try: Data.update('admin', [('id', '=', admin_id)], god_info) except Exception as e: print(e) return self.send_faild(error.ERROR_TIMEOUT) result = { 'commit': 1 } self.send_ok(result) write_admin_record(operate_id=admin_base['id'], operate_desc='更新管理员详情', admin_id=admin_id) return
def post(self): print('send_advphoto') admin_base = self.get_admin_base() if admin_base is None: self.send_faild(error.ERROR_NO_LOGIN) if not self.is_god(): return self.send_faild(error.ERROR_AUTH_PERMISSION) try: data = self.get_post_data() adv_id = data['adv_id'] pic_body = data['title'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) adv_info = Data.find('adv', [('id', '=', adv_id)]) if adv_info is None: return self.send_faild(error.ERROR_NO_USER) adv_id = adv_info['id'] img_data = pic_body.split(',')[1] img_data = base64.b64decode(img_data) path = 'pics/' + common.get_file_md5(img_data) + '_title' + '.jpg' open(path, 'wb').write(img_data) title_line = Data.find('adv_photo', [('adv_id', '=', adv_id), ('is_title', '=', 1)]) if title_line is None: params = { 'adv_id': adv_id, 'photo_url': config.logical_url + '/' + path.split('/')[-1], } Data.insert('adv_photo', params) else: params = { 'photo_url': config.logical_url + '/' + path.split('/')[-1], } Data.update('adv_photo', [('adv_id', '=', adv_id)], params) # 记录进数据库 reply = {'pic_done': 0} self.send_ok(reply) write_admin_record(operate_id=admin_base['id'], operate_desc='上传广告图片', adv_id=adv_id) return
def update_pg_status(pg_once, machine_info): if machine_info['init_paid_pg'] != 0: params = { 'init_paid_pg': machine_info['init_paid_pg'] - pg_once, 'init_return_pg': machine_info['init_return_pg'] + pg_once, } else: params = { 'addition_paid_pg': machine_info['addition_paid_pg'] - pg_once, 'addition_return_pg': machine_info['addition_return_pg'] + pg_once, } # 更新返还质保金的记录 Data.update('shop_machines', [('id', '=', machine_info['id'])], params)
def kill_md(): all_info = Data.select('case_info', [('id', '!=', 0)]) for line in all_info: res = common.decode_base64(line['title']) # print(res) case_title_list = res.split('.') if len(case_title_list) >= 2: if case_title_list[1] == 'md': print(case_title_list[0]) new_title = common.get_base64( case_title_list[0].encode('utf-8')) Data.update('case_info', [('id', '=', line['id'])], {'title': new_title})
def post(self): player_base = self.get_player_base() if player_base is None: return self.send_faild(error.ERROR_NO_USER) player_id = player_base['id'] Data.update('player', [('id', '=', player_id)], {'token': ''}) if player_id in Relay.player_token_dict: Relay.player_token_dict[player_id] = '' reply = { 'logout': 'done!', } self.send_ok(reply) return
def write_my_share(service_pac_rec, share_line): shop_info = Data.find('openluat_user', [('id', '=', service_pac_rec['buy_shop_id'])]) shop_share_info = Data.find( 'shop_distr', [('user_id', '=', service_pac_rec['buy_shop_id'])]) if service_pac_rec['can_upgrade'] == 1: params = {'upgrade_times': shop_share_info['upgrade_times'] + 1} Data.update('shop_distr', [('user_id', '=', service_pac_rec['buy_shop_id'])], params) # shop_share_info = Data.find('shop_distr', [('user_id', '=', service_pac_rec['buy_shop_id'])]) if shop_share_info['upgrade_times'] >= shop_share_info['max_upgrade_times']: shop_share = shop_share_info['shop_share_max'] - share_line[ 'arrival_share'] else: shop_share = shop_share_info['shop_share_min'] - share_line[ 'arrival_share'] # # arrival_share = (10000 - share_line['arrival_share']) / 10000 arrival_share = (share_line['arrival_share'] * service_pac_rec['cost']) / 10000 # 保存到店消费 print('arrival_share', arrival_share) shop_share_raw = (shop_share * service_pac_rec['cost']) / 10000 print('shop_share_raw', shop_share_raw) distr_agent_params = { 'user_id': service_pac_rec['buy_shop_id'], 'share': int(shop_share_raw), # 到店分润要处理 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.shop_share, # 分润类型,业务员还是店铺 'buy_time': service_pac_rec['buy_time'], # 分润时间 'withdraw_id': service_pac_rec['id'], # 对应的那条用户消费的id } Data.insert('withdraw_record', distr_agent_params) print('门店自己的分润', distr_agent_params['share']) write_arrival_share(service_pac_rec, shop_share_raw, arrival_share)
def create_token(self, user_id, table_name): ''' 创建token :param user_id: :param table_name: :return: ''' nonce_string = common.create_rand_string(12) + str(time.time()) token = get_md5(nonce_string) params = {'token': token} Data.update(table_name, [('id', '=', user_id)], params) if table_name == 'admin': Relay.admin_login(user_id, token) if table_name == 'player': Relay.player_login(user_id, token) return token
def update_device_info(self, imei): dev_info = Data.find('dev_main', [('imei', '=', imei)]) if dev_info == None: params = { 'imei': imei, 'last_connect_time': int(time.time()), 'ctime': int(time.time()) } Data.insert('dev_main', params) else: params = { 'last_connect_time': int(time.time()), } Data.update('dev_main', [('imei', '=', imei)], params) # self.update_heartbeat() self.last_connect_time = int(time.time()) # 更新设备信息 return
def return_pg(shop_id, service_info): total_pg = 0 if_return = Data.select('shop_machines', [('shop_id', '=', shop_id), ('paid_pg', '!=', 0), ('had_return_pg', '=', 0)]) if if_return: for info in if_return: total_pg += info['paid_pg'] machine_setting = Data.find('shop_machine_setting', [('shop_id', '=', shop_id)]) if total_pg != 0: params = {'bought_rt_times': machine_setting['bought_rt_times'] + 1} Data.update('shop_machine_setting', [('shop_id', '=', shop_id)], params) machine_setting['bought_rt_times'] += 1 # 保证金不等于的情况下才能统计次数 # 获取当前可退质保金店铺的次数 can_upgrade = Data.find('shop_distr', [('user_id', '=', shop_id)])['return_pg_times'] return_pg_rec = Data.select('withdraw_record', [('user_id', '=', shop_id), ('withdraw_type', '=', config.pg_return)]) if return_pg_rec is None: length = 0 else: length = len(return_pg_rec) # 记录返还过几次保证金 # can_return_times = int(machine_setting['bought_rt_times'] / int(can_upgrade)) if can_return_times > length: # can_return_pg = Data.select('shop_machines', # [('shop_id', '=', shop_id), ('paid_pg', '!=', 0), ('had_return_pg', '=', 0)]) # if can_return_pg: Data.update('shop_machines', [('id', '=', int(if_return[0]['id']))], {'had_return_pg': 1}) insert_return_pg_rec(shop_id, if_return[0]['paid_pg'], service_info['id'])
def update(self, table, conditions, params): if table in self.data_all: table_content = self.data_all[table] table_id_list = [] tmp = [] if conditions == []: for line in table_content: table_id_list.append(line['id']) tmp.append(line) else: for line in table_content: if judge(line, conditions) == True: table_id_list.append(line['id']) tmp.append(line) Data.update(table, conditions, params) for line in tmp: self.data_all[table].remove(line) for i in table_id_list: res = Data.find(table, [('id', '=', i)]) for line in table_content: if line['id'] > res['id']: line_index = table_content.index(line) if line_index == 0: tail = [res] + table_content else: tail = table_content[:line_index] + [ res ] + table_content[line_index:] break table_content = tail self.data_all[table] = table_content else: Data.update(table, conditions, params) self.data_all[table] = Data.select(table, []) return
def post(self): data = self.get_post_data() user_base = self.get_user_base(Relay.admin) if user_base == None: self.send_faild(error.ERROR_ADMIN_NO_LOGIN) return res = admin_tool.upload_case(data, user_base) data_id_old = data['case_id'] # 上传信息,并且block旧的信息 Data.update('case_info', [('id', '=', data_id_old)], {'is_show': status_canot_show}) if res != None: self.send_ok({}) http_tools.write_event_post_item(data, res) print('download_done!') return else: self.send_faild(error.ERROR_FAIL) return
def update_devices_info(self): res = Data.find('CWS_APP.devices', [('imei', '=', self.imei)]) if res == None: self.create_device() # 创建全新的设备信息 report = { 'imei': self.get_imei(), 'lng': self.get_pos()[0], 'lat': self.get_pos()[1], 'time': common.time_to_str(int(time.time())), 'status': 'heart', } resp = Data.find('CWS_APP.latestreport', [('imei', '=', self.imei)]) if resp == None: Data.insert('CWS_APP.latestreport', report) else: Data.update('CWS_APP.latestreport', [('imei', '=', self.imei)], report) print(self.get_imei(), '写入通讯表') return
def post(self): data = self.get_post_data() # character = data['character'] character = 'admin' user_base = self.get_user_base(character) if user_base == None: self.send_faild(error.ERROR_ADMIN_NO_LOGIN) return if data['pw_1'] != data['pw_2']: self.send_faild(error.ERROR_PW_DIFF) return if common.get_md5(data['pw_old']) != user_base['pwhash']: self.send_faild(error.ERROR_PW_ERROR) return params = {'pwhash': common.get_md5(data['pw_1'])} Data.update(character, [('id', '=', user_base['id'])], params) self.send_ok({}) return
def post(self): print('delete_admin') admin_base = self.get_admin_base() if admin_base is None: return self.send_faild(error.ERROR_NO_LOGIN) if self.is_god() is False: return self.send_faild(error.ERROR_AUTH_PERMISSION) try: data = self.get_post_data() admin_id = data['admin_id'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) admin_info = Data.find('admin_auth', [('id', '=', admin_id)]) if admin_info is None: return self.send_faild(error.ERROR_NO_USER) god_info = Data.find('admin', [('id', '=', admin_info['god_id'])]) if god_info['status'] == 0: params = { 'utime': common.time_to_str(int(time.time())), 'status': 1, } Data.update('admin', [('id', '=', admin_info['god_id'])], params) else: params = { 'utime': common.time_to_str(int(time.time())), 'status': 0, } Data.update('admin', [('id', '=', admin_info['god_id'])], params) result = { 'commit': 1 } self.send_ok(result) write_admin_record(operate_id=admin_base['id'], operate_desc='禁用/启用管理员', admin_id=admin_id) return
def post(self): player_base = self.get_player_base() if player_base is None: return self.send_faild(error.ERROR_NO_USER) try: data = self.get_post_data() phone = data['phone'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) player = Data.find('player',[('id','=',player_base['id'])]) if player is None: return self.send_faild(error.ERROR_NO_USER) Data.update('player',[('id', '=', player_base['id'])],{'phone':phone}) reply = { 'commit':1 } self.send_ok(reply) return
def post(self): data = self.get_post_data() # character = data['character'] character='admin' user_base = self.get_user_base(character) if user_base == None: self.send_faild(error.ERROR_ADMIN_NO_LOGIN) return if data['pw_1'] != data['pw_2']: self.send_faild(error.ERROR_PW_DIFF) return if admin_tool.check_pw(user_base,data['pw_old']) is False: self.send_faild(error.ERROR_PW_ERROR) return params = { 'pwhash':admin_tool.create_pw(data['pw_1']) } Data.update(character,[('id','=',user_base['id'])],params) self.send_ok({}) return
def post(self): admin_info = self.get_user_base(character=Relay.admin) if admin_info == None: self.send_faild(error.ERROR_ADMIN_NO_LOGIN) return data = self.get_post_data() case_id = data['case_id'] # case_status = data['case_status'] res = Data.find('case_info',[('id','=',case_id),('is_verified','=',status_unverify)]) if res == None: self.send_faild(error.ERROR_NO_RESULT) return params = { 'is_verified':status_verified, 'verifyer':admin_info['id'] } Data.update('case_info',[('id','=',case_id),('is_verified','=',status_unverify)],params) if Data.find('case_info',[('id','=',case_id),('is_verified','=',status_verified)]) == None: self.send_faild(error.ERROR_FAIL) return self.send_ok({}) return
def post(self): print('update_adv') admin_base = self.get_admin_base() if admin_base is None: return self.send_faild(error.ERROR_NO_LOGIN) if not self.is_god(): return self.send_faild(error.ERROR_AUTH_PERMISSION) try: data = self.get_post_data() adv_id = data['adv_id'] adv_name = data['adv_name'] postion = data['postion'] url = data['url'] comment = data['comment'] status = data['status'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) adv_info = {} adv_info['adv_name'] = adv_name adv_info['postion'] = postion adv_info['utime'] = int(time.time()) adv_info['comment'] = comment adv_info['status'] = status Data.update('adv', [('id', '=', adv_id)], adv_info) result = {'commit': 1} self.send_ok(result) write_admin_record(operate_id=admin_base['id'], operate_desc='修改广告', adv_id=adv_id) return
def logout(user_id, character): user_dict = Relay.token_dict_collection[character] Relay.remove_token(user_dict, user_id) Data.update(character, [('id', '=', user_id)], {'token': ''}) return