def mv_pay_pic(src_file_path, tgt_file_name, tgt_file_path): """ 移动支付截图文件,从存储的地方移动到下载地方 :param src_file_path: 源文件路径 :param tgt_file_name: 目的文件名称 :param tgt_file_path: 目的文件路径 :return: """ if not os.path.exists(tgt_file_path): os.makedirs(tgt_file_path) tgt_path = "%s/%s" % (tgt_file_path, tgt_file_name) if platform.system() == 'Linux': mv_cmd = "sudo mv %s %s" % (src_file_path, tgt_path) # 如果图片存储主机不是本机,则需要ssh远程连接,同时需要能实现ssh无密码登录 if ArgumentParser().args.pic_store_ip != "localhost": mv_cmd = "ssh -p%s %s@%s %s" % ( ArgumentParser().args.pic_store_port, ArgumentParser().args.pic_store_user, ArgumentParser().args.pic_store_ip, mv_cmd) subprocess.Popen(mv_cmd, shell=True) logger.info("mv_pay_pic src_file_path:%s tgt_path:%s, mv_cmd:%s" % (src_file_path, tgt_path, mv_cmd))
def attr_day_seconds(self): """ 一天的秒数 :return: """ return ArgumentParser().args.day_seconds if ArgumentParser( ).args.day_seconds else self.day_seconds
def post(self, account, apply_sorder, pay_msg="", file_path="", file_name="", **kwargs): """ nginx文件上传回调 :param account: 上传账号 :param apply_sorder: 上传的子申请帮助订单id :param pay_msg: 支付消息 :param file_path: 上传的文件路径 :param file_name: 上传的文件名 :param kwargs: 其他参数 :return: """ apply_help_pay_dic = ApplyHelpPayMgr().get_data_by_sorder(apply_sorder) apply_help_dic = ApplyHelpMgr().get_data_by_order( apply_help_pay_dic['apply_order']) if apply_help_dic['apply_uid'] != account.id: logger.info( "apply_help_paid ERROR_LOGIC, apply_uid not valid, apply_uid:%s, id:%s" % (apply_help_dic['apply_uid'], account.id)) self.set_status(error_code.ERROR_LOGIC, 'Parameter Error') return {"result": error_code.ERROR_LOGIC} if apply_help_pay_dic['apply_pstat'] != APYS_PAY_WAIT: logger.warn( "apply_help_paid ERROR_LOGIC, apply stat is not APYS_PAY_WAIT, apply_uid:%s, id:%s" % (apply_help_dic['apply_uid'], account.id)) self.set_status(error_code.ERROR_LOGIC, 'Parameter Error') return {"result": error_code.ERROR_LOGIC} if file_path: suffix = file_name.split(".")[1] new_file_name = "%s_%s.%s" % ( account.id, urllib2.quote( time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime(time.time()))), suffix) # 将nginx临时上传文件移动到存储路径 mv_pay_pic(file_path, new_file_name, ArgumentParser().args.pic_store_path) cur_piture_link_path = ArgumentParser( ).args.pic_download_path + new_file_name else: cur_piture_link_path = "" ApplyHelpPayMgr().do_pay(apply_sorder, cur_piture_link_path, pay_msg) return { "result": error_code.ERROR_SUCCESS, "apply_help": { "apply_sorder": apply_sorder, "apply_pstat": apply_help_pay_dic['apply_pstat'] } }
def is_using_system_accept(): """ 判断是否使用系统接受帮助 :return: """ if ArgumentParser().args.force_mtype == "system": logger.warn("is_using_system_accept force use the system match!!!!") return True elif ArgumentParser().args.force_mtype == "user": logger.warn("is_using_system_accept force use the user match!!!!") return False # 系统默认使用用户匹配方式,系统匹配采用手动匹配方式 return False
def do_finish(self, apply_sorder): """ 申请帮助完成 :param apply_sorder: 申请帮助子订单id :return: """ upd_dic = { "apply_sorder": apply_sorder, "apply_pstat": APYS_PAY_FINISH } self.update_dic(apply_sorder, upd_dic) from mmm_da.lib.help.control import ApplyHelpMgr apply_help_pay_dic = self.get_data_by_sorder(apply_sorder) apply_help = ApplyHelpMgr().get_data_by_order( apply_help_pay_dic['apply_order']) # 删除支付截图 if apply_help_pay_dic['apply_piture']: file_name = apply_help_pay_dic['apply_piture'].split("/")[-1] pic_store_path = "%s/%s" % (ArgumentParser().args.pic_store_path, file_name) logger.info("ApplyHelpMgr::do_finish del pic_store_path:%s " % pic_store_path) rm_pay_pic(pic_store_path) # 订单完成奖励 BonusMgr().on_apply_finish(apply_help['apply_uid'], apply_help_pay_dic['apply_pmoney']) # 内存删除完成订单 self.__del_data_2_mem(apply_help_pay_dic)
def __is_account_valid(account, enable_active=ArgumentParser().args.enable_active, enable_seal=ArgumentParser().args.enable_seal): """ 判断账户是否有效 :param account: 账户 :param enable_active: 是否开启激活检测功能 :param enable_seal: 是否开启封号检测功能 :return: """ if enable_seal and account.attr_stat == SEALED: logger.info("is_account_valid ERROR_LOGIC, account is sealed, id:%s" % account.id) return error_code.ERROR_ACCOUNT_SEALED if enable_active and account.attr_stat == UNACTIVED: logger.info( "is_account_valid ERROR_LOGIC, account is unactived, id:%s" % account.id) return error_code.ERROR_ACCOUNT_UNACTIVED return error_code.ERROR_SUCCESS
def rm_pay_pic(tgt_file_path): """ 删除支付截图文件, :param tgt_file_path: 目的文件路径 :return: """ if not os.path.exists(tgt_file_path): os.makedirs(tgt_file_path) if platform.system() == 'Linux': rm_cmd = "sudo rm %s" % tgt_file_path # 如果图片存储主机不是本机,则需要ssh远程连接,同时需要能实现ssh无密码登录 if ArgumentParser().args.pic_store_ip != "localhost": rm_cmd = "ssh -p%s %s@%s %s" % ( ArgumentParser().args.pic_store_port, ArgumentParser().args.pic_store_user, ArgumentParser().args.pic_store_ip, rm_cmd) subprocess.Popen(rm_cmd, shell=True) logger.info("rm_pay_pic tgt_file_path:%s, rm_cmd:%s" % (tgt_file_path, rm_cmd))
def after_access_process(self, args, kwargs): if http_sign and ArgumentParser().args.use_sign: self.result['sign'] = http_sign if not use_http_render: return if self.result is None: return if need_json_dumps(): self.write(ujson.dumps(self.result)) else: self.write(self.result)
def get_db_params(self): """ 获取db参数 :return: """ logger.info("RpcHandler::get_db_params!!!") args = ArgumentParser().args return { "db_host": args.db_host, "db_port": args.db_port, "db_user": args.db_user, "db_password": args.db_password, "db_name": args.db_name }
def crypto_param_adaptor(self, *args, **kwargs): crypt = XXTEACrypto(ArgumentParser().args.xxtea_key) \ if use_xxtea \ else UrlCrypto() args = [crypt.decrypt(arg) for arg in args] kwargs = dict( (k, crypt.decrypt(kwargs[k])) for k, v in kwargs.items()) body = crypt.decrypt(self.request.body) kwargs.update(dict(pair.split("=") for pair in body.split("&"))) if body else None result = fun(self, *args, **kwargs) ouput_result = crypt.encrypt(result) return ouput_result
#!/usr/bin/python2.7 # coding=utf-8 """ Created on 2015-7-17 @author: Jay """ from utils.crypto.sign import Signer from utils.service_control.finder import get_cur_ip from utils.service_control.parser import ArgumentParser HTTP_SIGN = Signer().gen_sign(get_cur_ip(), ArgumentParser().args.http_port)
#!/usr/bin/python2.7 # coding=utf-8 """ Created on 2016/5/3 @author: Jay """ from utils.data.db.mysql_manual import SchemaTable from utils.service_control.cacher import ParamCacher from utils.service_control.parser import ArgumentParser from setting import DB_NAME DBBeiqiSspInst = SchemaTable.instance(ParamCacher().db_instance, ArgumentParser().args.db_name, DB_NAME)
def __init__(self, table_name): super(DBSchemaTable, self).__init__(ParamCacher().db_instance, ArgumentParser().args.db_name, table_name)
def init_cron_job(): """ 初始化系统cron job :return: """ apply_req = ArgumentParser().args.apply_req match = ArgumentParser().args.match apply_pay = ArgumentParser().args.apply_pay accept_req = ArgumentParser().args.accept_req apply_wait = ArgumentParser().args.apply_wait # init AcceptApplyMatcher().init(AcceptHelpMgr().match_ls, ApplyHelpMgr().match_ls, AcceptHelpMgr().do_accept, ApplyHelpMgr().do_apply, ServerInfoMgr().make_unique_id) Jobs().add_cron_job(ApplyReqFilter().filter, **{apply_req.split('_')[0]: int(apply_req.split('_')[1])}) Jobs().add_cron_job(AcceptApplyMatcher().match, **{match.split('_')[0]: int(match.split('_')[1])}) if ArgumentParser().args.enable_pay_check: Jobs().add_cron_job(ApplyPayFilter().filter, **{apply_pay.split('_')[0]: int(apply_pay.split('_')[1])}) Jobs().add_cron_job(AcceptReqFilter().filter, **{accept_req.split('_')[0]: int(accept_req.split('_')[1])}) Jobs().add_cron_job(ApplyWaitFilter().filter, **{apply_wait.split('_')[0]: int(apply_wait.split('_')[1])}) [logger.warn("cron job:%s" % {"cron": cron_job.cron, "func": cron_job.func}) for cron_job in Jobs().cron_job]
def post(self, account, mafuluo, **kwargs): """ 接受帮助的时候,如果有一单申请帮助未完成,则不能接受帮助 :param account: 账号 :param mafuluo: 提取的马夫罗,整形 :param kwargs: :return: """ mafuluo = int(mafuluo) # 提取的马夫罗总数必须大于0 if mafuluo <= 0 : logger.info("accept_help ERROR_LOGIC, mafuluo:%s<=0!!!, id:%s" % (mafuluo, account.id)) self.set_status(error_code.ERROR_LOGIC, 'Parameter Error') return {"result": error_code.ERROR_LOGIC} # 提取的马夫罗必须小于账号拥有的马夫罗 if mafuluo > account.attr_mafuluo: logger.info("accept_help ERROR_LOGIC, mafuluo:%s>=acount.attr_mafuluo:%s!!!, id:%s" % (mafuluo, account.attr_mafuluo, account.id)) self.set_status(error_code.ERROR_LOGIC, 'Parameter Error') return {"result": error_code.ERROR_LOGIC} # 申请帮助还在请求处理, if ApplyHelpReqMgr().get_unfinish(account.id): logger.info("accept_help ERROR_LOGIC, has ApplyHelpReqMgr!!!, id:%s" % account.id) self.set_status(error_code.ERROR_LOGIC, 'Parameter Error') return {"result": error_code.ERROR_LOGIC} # 申请帮助还在匹配处理 if ApplyHelpMgr().get_unfinish(account.id): logger.info("accept_help ERROR_LOGIC, has ApplyHelpMgr!!!, id:%s" % account.id) self.set_status(error_code.ERROR_LOGIC, 'Parameter Error') return {"result": error_code.ERROR_LOGIC} # 接受帮助还在请求处理, if AcceptHelpReqMgr().get_unfinish(account.id): logger.info("apply_help ERROR_LOGIC, has AcceptHelpReqMgr!!!, id:%s" % account.id) self.set_status(error_code.ERROR_LOGIC, 'Parameter Error') return {"result": error_code.ERROR_LOGIC} # 接受帮助还在匹配处理 if AcceptHelpMgr().get_unfinish(account.id): logger.info("apply_help ERROR_LOGIC, has AcceptHelpMgr!!!, id:%s" % account.id) self.set_status(error_code.ERROR_LOGIC, 'Parameter Error') return {"result": error_code.ERROR_LOGIC} # 资金平衡判断 if ArgumentParser().args.use_system_balance: if ServerInfoMgr().attr_total_accept_money + mafuluo + ServerInfoMgr().attr_system_balance\ > ServerInfoMgr().attr_total_apply_money: logger.info("accept_help ERROR_LOGIC, has reach the system balance!!!, " "total_accept_money:%s, total_apply_money:%s, system_balance:%s, mafuluo:%s" %(ServerInfoMgr().attr_total_accept_money, ServerInfoMgr().attr_total_apply_money, ServerInfoMgr().attr_system_balance, mafuluo)) self.set_status(error_code.EEROR_ACCEPT_BALANCE, 'Parameter Error') return # 扣除mafuluo account.attr_mafuluo -= mafuluo # 请求接受帮助 AcceptHelpReqMgr().add_req(account.id, mafuluo) accept_help_req = AcceptHelpReqMgr().get_unfinish(account.id) return {"result": error_code.ERROR_SUCCESS, "accept_help": accept_help_req_2_accept_help(accept_help_req)}
def sm_ip(self): return ArgumentParser().args.sm_ip