def split_case_info(case): strip_word_list = ['\n', ' '] title = common_tools.decode_base64(case['title']) content = common_tools.decode_base64(case['content']) title_list = list(jieba.cut_for_search(title)) content_list = list(jieba.cut_for_search(content)) case_list = title_list + content_list case_word_list = list(set(case_list)) # print(case_list) for word in case_word_list: if word not in strip_word_list: word_md5 = common_tools.get_md5(word) res = Data.find('case_search_index', [('case_id', '=', case['id']), ('keyword_md5', '=', word_md5)]) if res != None: # print('已经存在') continue params = { 'case_id': case['id'], 'keyword': common_tools.get_base64(word.encode('utf-8')), 'keyword_md5': word_md5 } Data.insert('case_search_index', params) continue else: continue
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 upload_case(data,user_base,uploader_type=case_constant.uploader_type_admin): content = common.get_base64(data['content'].encode('utf-8')) content_md5 = common.get_md5(content) user_id = user_base['id'] ctime = int(time.time()) event_time = common.str_to_time(data['event_time'] + ' 00:00:00') title = common.get_base64(data['title'].encode('utf-8')) if Data.find('case_info', [('title', '=', title)]) != None: return params = { 'user_id': user_id, 'c_time': ctime, # 'content': content, 'content_md5': content_md5, 'event_time': event_time, 'title': title, 'uploader_type':uploader_type } Data.insert('case_info', params) # 插入主体内容 cond = [ ('user_id', '=', user_id), ('c_time', '=', ctime), ('content_md5', '=', content_md5) ] res = Data.find('case_info', cond) params = { 'case_id': res['id'], 'content': content } Data.insert('case_content',params) # 取得id,插入内容到表中 res['content'] = content http_tools.split_case_info(res) return res
def admin(): Data.query('drop table admin') colums = [ ('id', 'int', 'AUTO_INCREMENT', 'primary key'), ('username', 'varchar(128)', 'default ""'), # 用户名 ('pwhash', 'varchar(512)', 'default ""'), # 密码哈希 ('token', 'varchar(128)', 'default ""'), # token ('auth_id', 'int', 'default 1'), # 权限 ('ctime', 'int', 'default "0"'), # 创建时间 ('utime', 'int', 'default "0"'), # 更新时间 ('comment', 'varchar(1024)', 'default ""'), # 备注 ('status', 'int', 'default "0"'), # 状态 ] Data.create('admin', colums) params = { 'username': '******', 'pwhash': generate_password_hash('123456') } Data.insert('admin', params)
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() name = data['member_name'] group = data['group_id'] comment = data['comment'] phone = data['phone'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) group_info = Data.find('player_group', [('id', '=', group)]) if group_info == None: return self.send_faild(error.ERROR_DATA_NOT_FOUND) params = { 'name': name, 'comment': comment, 'add_time': int(time.time()), 'status': 1, 'phone': phone, 'group_id': group } Data.insert('player_member', params) reply = {'add_success': 1} self.send_ok(reply) 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() name = data['group_name'] comment = data['group_desc'] except Exception as e: print(e) return self.send_faild(error.ERROR_PARAM) params = { 'name': name, 'comment': comment, 'add_time': int(time.time()), 'user_id': player_base['id'], 'status': 1 } Data.insert('player_group', params) reply = {'commit': 1} self.send_ok(reply) return
def split_case_info(case): title = case['title'] content = json.loads(case['content']) title_list = list(jieba.cut_for_search(title)) content_list = list(jieba.cut_for_search(content)) case_list = title_list + content_list case_word_list = list(set(case_list)) # print(case_list) for word in case_word_list: if word not in strip_word_list: word_md5 = common.get_md5(word) res = Data.find('case_search_index', [('case_id', '=', case['id']), ('keyword_md5', '=', word_md5)]) if res != None: print('已经存在') continue params = { 'case_id': case['id'], 'keyword': json.dumps(word), 'keyword_md5': word_md5 } Data.insert('case_search_index', params) continue else: continue
def write_arrival_share(service_pac_rec, shop_share_raw, arrival_share): params = { 'ctime': int(time.time()), 'max_use_time': service_pac_rec['can_use_quantity'], 'money': arrival_share, 'service_rec_id': service_pac_rec['id'], } Data.insert('arrival_share', params)
def insert(self, table, content): Data.insert(table, content) if table in self.data_all: self.append_lines(table) else: self.refresh_one_table(table) 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 add_init_inviters_info(invite_dict): all_player = Data.select(Relay.player, [], fields=('id', 'username')) for user in all_player: if user['id'] not in invite_dict: invite_code = Relay.create_invite_code() params = { 'user_id': user['id'], 'invite_code': invite_code, 'inviter_id': 0 } Data.insert(Relay.player, params)
def refresh_db(self): time_now = time_to_str(int(time.time())).split()[1] if time_now == refresh_time: for table in self.data_all: Data.delete(table, []) Data.insert(table, self.data_all[table]) # time.sleep(60) # else: # pass return
def insert_return_pg_rec(shop_id, pg_once, service_id): params = { 'user_id': shop_id, 'share': pg_once, 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.pg_return, 'buy_time': int(time.time()), 'withdraw_id': service_id, } Data.insert('withdraw_record', params)
def write_event_post_item(data, res): for item in data['post_items']: item_url = http_tools.get_post_item(item) params = { 'case_id': res['id'], 'post_item': item_url, 'c_time': int(time.time()), 'raw_url': item, 'is_download': 1, } Data.insert('case_post_item', params)
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 create_device(self): params = { 'imei': self.get_imei(), 'sn': self.get_imei(), 'valid_time': common.time_to_str(int(time.time())), 'lastshakingtime': common.time_to_str(int(time.time())), 'lastlowbatterytime': common.time_to_str(0), 'lastlosingexternalpowertime': common.time_to_str(0), 'lastcrossingbordertime': common.time_to_str(0), 'lastoverspeedtime': common.time_to_str(0), } Data.insert('CWS_APP.devices', params) print('创建设备imei', self.get_imei())
def machine_run(test_type,imei,user_info): event = Relay.ACK_START data = { 'type':test_type, # 使用类型 'user_info':user_info, # 使用者id 'test_number':common.get_md5(str(time.time())+common.create_rand_string(12)), } params = { 'test_number':data['test_number'], 'test_type':test_type } Data.insert('user_test_result',params) Relay.send_message_by_imei(imei,event,data) return data['test_number']
def post(self): print('add_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() username = data['username'] pw = data['pswd'] 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_user = Data.find('admin', [('username', '=', username)]) if if_user is not None: return self.send_faild(error.ERROR_INSERT_USER) admin_params = { 'username': username, 'password_hash': generate_password_hash(pw), 'status': status, 'comment': comment, 'ctime': common.time_to_str(int(time.time())), 'auth_id': auth_temp, } Data.insert('admin', admin_params) new_admin_info = Data.find('admin', [('username', '=', username)]) if new_admin_info is None: return self.send_faild(error.ERROR_DATA_NOT_FOUND) admin_id = new_admin_info['id'] admin_auth_info = { 'auth_id': auth_temp, 'god_id': admin_id } Data.insert('admin_auth', admin_auth_info) 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): data = self.get_post_data() user_name = data['username'] pw_1 = data['pw_1'] pw_2 = data['pw_2'] if pw_1 != pw_2: return self.send_faild(error.ERROR_PW_DIFF) if self.check_if_username_exist(user_name) is True: return self.send_faild(error.ERROR_USERNAME_EXIST) params = {'username': user_name, 'pwhash': admin_tool.create_pw(pw_1)} Data.insert(Relay.admin, params) return self.send_ok({})
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 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 insert_distr_share_info(distr_id, service_pac_rec, share_line): # for distr_id in distr_line: res = find_distr_line(distr_id) if res is not None: # 超级业务员 params = { 'user_id': res['user_id'], 'share': int((share_line['super_distr_share'] * service_pac_rec['cost']) / 10000), 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.spec_distr_share, # 分润类型,业务员还是店铺 'buy_time': service_pac_rec['buy_time'], # 分润时间 'withdraw_id': service_pac_rec['id'], # 对应的那条用户消费的id } Data.insert('withdraw_record', params) print('超级业务员的分润', params['share'], res['user_id']) # else: # 上一级业务员 params = { 'user_id': distr_id, 'share': int( (share_line['distr_share'] * service_pac_rec['cost']) / 10000), 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.distr_share, # 分润类型,业务员还是店铺 'buy_time': service_pac_rec['buy_time'], # 分润时间 'withdraw_id': service_pac_rec['id'], # 对应的那条用户消费的id } Data.insert('withdraw_record', params) print('业务员的分润', params['share'], distr_id) 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 auth(): Data.query('drop table admin_temp') colums = [ ('id', 'int', 'AUTO_INCREMENT', 'primary key'), ('name', 'varchar(64)', 'default ""'), # 模板名称 ('auth', 'varchar(1024)', 'default ""'), # 权限模板 ('comment', 'varchar(1024)', 'default ""'), # 备注 ('ctime', 'int', 'default "0"'), # 创建时间 ('utime', 'int', 'default "0"'), # 更新时间 ('status', 'int', 'default "0"'), # 状态 ] Data.create('admin_temp', colums) params = { 'name': '超级管理员', 'comment': '超级管理员权限模板', 'ctime': 0, 'auth': '1111,1111,1111,111,1111,1111,11,11,111,111,111,111,1111,1111,1111' } Data.insert('admin_temp', params) # 权限模板 Data.query('drop table admin_auth') colums = [ ('id', 'int', 'AUTO_INCREMENT', 'primary key'), ('auth_id', 'int', 'default "0"'), ('god_id', 'int', 'default "0"'), ] Data.create('admin_auth', colums) params = { 'god_id': 1, 'auth_id': '1', } Data.insert('admin_auth', params)
def post(self): print('create_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() 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['ctime'] = int(time.time()) Data.insert('admin_temp', params) # 记录本条权限模板的id temp_info = Data.find_last('admin_temp', [('id', '!=', 0)], info='id', limit=1) result = {'commit': 1} self.send_ok(result) write_admin_record(operate_id=admin_base['id'], operate_desc='创建权限模板', temp_id=temp_info['id']) return
def post(self): print('add_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_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) ctime = int(time.time()) adv_info = {} adv_info['adv_name'] = adv_name adv_info['postion'] = postion adv_info['ctime'] = ctime adv_info['comment'] = comment adv_info['status'] = status Data.insert('adv', adv_info) adv = Data.find_last('adv', [('id', '!=', 0)], info='id', limit=1) result = {'commit': 1} self.send_ok(result) write_admin_record(operate_id=admin_base['id'], operate_desc='新增广告', adv_id=adv['id']) return
def write_admin_record(operate_id, operate_desc, shop_id=0, shop_phone='', player_phone='', activity_id=0, player_id=0, coupon_id=0, temp_id=0, admin_id=0, pac_id=0, adv_id=0, device_id=0): params = { 'operate_id': operate_id, 'admin_id': admin_id, 'temp_id': temp_id, 'operate_desc': operate_desc, 'player_id': player_id, 'player_phone': player_phone, 'adv_id': adv_id, 'operate_time': int(time.time()) } Data.insert('admin_operate_record', params)
def set_distr_agent_rec(distr_dict, share_line, service_pac_rec): if distr_dict['province'] is not None: distr_agent_line = Data.find( 'distr_relation', [('user_id', '=', distr_dict['province'])]) distr_agent_id = distr_agent_line['upper_id'] print('省推荐人', distr_agent_id) if distr_agent_id != 0: distr_agent_params = { 'user_id': distr_agent_id, 'share': int((share_line['province_agent_share'] * service_pac_rec['cost']) / 10000), 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.zone_agent_reward, # 分润类型,业务员还是店铺 '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'], distr_agent_id) # 省代理推荐人分润记录 if distr_dict['city'] is not None: for city_distr_id in distr_dict['city']: distr_agent_line = Data.find('distr_relation', [('user_id', '=', city_distr_id)]) distr_agent_id = distr_agent_line['upper_id'] print('市推荐人', distr_agent_id) if distr_agent_id != 0: distr_agent_params = { 'user_id': distr_agent_id, 'share': int((share_line['city_agent_share'] * service_pac_rec['cost']) / 10000), 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.zone_agent_reward, # 分润类型,业务员还是店铺 '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'], distr_agent_id) # 市代理推荐人分润记录 if distr_dict['zone'] is not None: for zone_distr_id in distr_dict['zone']: distr_agent_line = Data.find('distr_relation', [('user_id', '=', zone_distr_id)]) distr_agent_id = distr_agent_line['upper_id'] print('区域推荐人', distr_agent_id) if distr_agent_id != 0: distr_agent_params = { 'user_id': distr_agent_id, 'share': int((share_line['zone_agent_share'] * service_pac_rec['cost']) / 10000), 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.zone_agent_reward, # 分润类型,业务员还是店铺 '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'], distr_agent_id)
from common.common import common_tools from data.server import Data from dbmodel import model model.init_tables() params = {'username': '', 'pwhash': common_tools.get_md5('')} Data.insert('admin', params)
def set_distr_dict_rec(distr_dict, share_line, service_pac_rec): if distr_dict['province'] is not None: params_province = { 'user_id': distr_dict['province'], 'share': int((share_line['privince_share'] * service_pac_rec['cost']) / 10000), 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.zone_reward, # 分润类型,业务员还是店铺 'buy_time': service_pac_rec['buy_time'], # 分润时间 'withdraw_id': service_pac_rec['id'], # 对应的那条用户消费的id } Data.insert('withdraw_record', params_province) print('省代的分润', params_province['share'], distr_dict['province']) if distr_dict['city'] is not None: for city in distr_dict['city']: params_city = { 'user_id': city, 'share': int((share_line['city_share'] * service_pac_rec['cost']) / 10000), 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.zone_reward, # 分润类型,业务员还是店铺 'buy_time': service_pac_rec['buy_time'], # 分润时间 'withdraw_id': service_pac_rec['id'], # 对应的那条用户消费的id } Data.insert('withdraw_record', params_city) print('市代的分润', params_city['share'], city) if distr_dict['zone'] is not None: for zone in distr_dict['zone']: params_zone = { 'user_id': zone, 'share': int((share_line['zone_share'] * service_pac_rec['cost']) / 10000), 'withdraw_status': config.withdraw_status_no, 'withdraw_type': config.zone_reward, # 分润类型,业务员还是店铺 'buy_time': service_pac_rec['buy_time'], # 分润时间 'withdraw_id': service_pac_rec['id'], # 对应的那条用户消费的id } Data.insert('withdraw_record', params_zone) print('区代的分润', params_zone['share'], zone)