예제 #1
0
    def delete(self, **write_concern):
        from customer.models import Customer, Machine
        # 删除客户对应模块信息
        Customer.objects(modules__contains=self).update(pull__modules=self)

        # 删除机器对应模块信息
        Machine.objects(modules__contains=self).update(pull__modules=self)

        # 调用父类删除方法
        super(Module, self).delete()
예제 #2
0
    def delete(self, **write_concern):
        from customer.models import Customer, Machine

        # 删除客户对应模块信息
        Customer.objects(modules__contains=self).update(pull__modules=self)

        # 删除机器对应模块信息
        Machine.objects(modules__contains=self).update(pull__modules=self)

        # 调用父类删除方法
        super(Module, self).delete()
예제 #3
0
def del_module(request):
    response = {"success": False, "error": ""}
    try:
        # 校验参数
        module_id = request.POST.get("moduleId", None)

        if module_id is None or str(module_id).strip() == "":
            response["error"] = "必要参数为空!"
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")

        path = request.path
        is_sys = None
        if path == '/customer/system/list/':
            is_sys = True
        elif path == '/customer/list/':
            is_sys = False
        else:
            is_sys = False
        customers = Customer.objects(is_sys=is_sys).order_by('+tag')
        error = request.GET.get("error", None)

        # 执行删除操作
        module = Module.objects(pk=module_id)
        if len(module) == 0:
            response["error"] = "未找到该模块!"
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")

        module = module[0]
        for item in module.files:
            if not isinstance(item, DBRef):
                item.delete()
        for item in module.runInfos:
            if not isinstance(item, DBRef):
                item.delete()
        for customer in customers:
            cus_modules = customer.modules
            for cus_module in cus_modules:
                if module.name == cus_module.name:
                    response["error"] = "此模块被客户[%s]使用,不能删除!" % str(
                        customer.name)
                    return HttpResponse(json.dumps(response),
                                        mimetype="application/json")

        module.delete()
        response["success"] = True
        response["error"] = "执行成功!"
        return HttpResponse(json.dumps(response), mimetype="application/json")
    except Exception, e:
        response["error"] = "系统异常![%s]" % str(e)
        logger.error(response["error"] + getTraceBack())
        return HttpResponse(json.dumps(response), mimetype="application/json")
예제 #4
0
def load(request):
    """
    版本列表
    :param request:
    :return:
    """
    client = pysvn.Client()
    logger.info("load svn")

    for program in ALL_SVN_LIST:
        dir = getLocalDir(program)
        url = client.info(dir).data['url']
        logger.info("program:[%s],url:[%s]" % (program, url))
        # trunk
        info = None
        try:
            info = BranchInfo.objects().get(programName=program,
                                            branchTag="trunk")
        except:
            pass
        if info is None:
            info = BranchInfo()
            info.programName = program
            info.branchTag = "trunk"
            info.createDate = "999999"
            info.save()

        branches = []
        branches.extend(getBranches(client, url, "branches"))
        try:
            branches.extend(getBranches(client, url, "tags"))
        except Exception as e:
            pass
        for x in branches:
            info = None
            try:
                info = BranchInfo.objects().get(programName=program,
                                                branchTag=x)
            except:
                pass
            if info is None:
                info = BranchInfo()
                info.programName = program
                info.branchTag = x
                customerTag = getCustomerTag(x)
                customer = Customer.objects(tag=customerTag)
                if len(customer) > 0:
                    info.customerTag = customerTag
                info.createDate = getCreateDate(x)
                info.save()
    return redirect("/programBranch/list/", locals())
예제 #5
0
def logPost(request):
    """
    提交日志信息
    :param request:
    :return:
    """
    if request.method == "GET":
        customer = Customer.objects()
        serverMonitorLogType = ServerMonitorLogType.objects()
        serverMonitorModule = ServerMonitorModule.objects()
        return render_to_response("serverMonitor/logPost.html",
                                  locals(),
                                  context_instance=RequestContext(request))
    elif request.method == "POST":
        response = {"success": True, "error": "上传成功!"}
        try:
            #获取参数
            cus_name = request.POST.get('cus_name', None)
            customer = Customer.objects.get(pk=cus_name)
            log_type = request.POST.get('log_type', None)
            log_type = ServerMonitorLogType.objects.get(pk=log_type)
            monitor_type = request.POST.get('monitor_type', None)
            module_type = request.POST.get('module_type', None)
            module = ServerMonitorModule.objects.get(module=module_type)
            detail = request.POST.get('detail', None)
            url = request.POST.get('url', None)
            create_time = datetime.datetime.now()
            create_user = User.objects.get(pk=request.user.id)

            # 保存监控日志信息
            logInfo = ServerMonitorLog()
            logInfo.cus = customer
            logInfo.log_type = log_type
            logInfo.monitor_type = int(monitor_type)
            logInfo.module_type = module
            logInfo.detail = detail
            logInfo.create_time = create_time
            logInfo.cus_uuid = customer.machines[0].code
            logInfo.create_user = create_user

            logInfo.attachment_url = url
            logInfo.save()
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")

        except Exception as e:
            response["success"] = False
            response["error"] = "系统异常![%s]" % str(e)
            logger.error(response["error"] + getTraceBack())
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")
예제 #6
0
파일: views.py 프로젝트: NolanZhao/TTEngine
def load(request):
    """
    版本列表
    :param request:
    :return:
    """
    client = pysvn.Client()
    logger.info("load svn")

    for program in ALL_SVN_LIST:
        dir = getLocalDir(program)
        url = client.info(dir).data['url']
        logger.info("program:[%s],url:[%s]" % (program, url))
        # trunk
        info = None
        try:
            info = BranchInfo.objects().get(programName=program, branchTag="trunk")
        except:
            pass
        if info is None:
            info = BranchInfo()
            info.programName = program
            info.branchTag = "trunk"
            info.createDate = "999999"
            info.save()

        branches = []
        branches.extend(getBranches(client, url, "branches"))
        try:
            branches.extend(getBranches(client, url, "tags"))
        except Exception as e:
            pass
        for x in branches:
            info = None
            try:
                info = BranchInfo.objects().get(programName=program, branchTag=x)
            except:
                pass
            if info is None:
                info = BranchInfo()
                info.programName = program
                info.branchTag = x
                customerTag = getCustomerTag(x)
                customer = Customer.objects(tag=customerTag)
                if len(customer) > 0:
                    info.customerTag = customerTag
                info.createDate = getCreateDate(x)
                info.save()
    return redirect("/programBranch/list/", locals())
예제 #7
0
파일: views.py 프로젝트: NolanZhao/TTEngine
def logPost(request):
    """
    提交日志信息
    :param request:
    :return:
    """
    if request.method == "GET":
        customer = Customer.objects()
        serverMonitorLogType = ServerMonitorLogType.objects()
        serverMonitorModule = ServerMonitorModule.objects()
        return render_to_response("serverMonitor/logPost.html", locals(), context_instance=RequestContext(request))
    elif request.method == "POST":
        response = {"success": True, "error": "上传成功!"}
        try:
            #获取参数
            cus_name = request.POST.get('cus_name', None)
            customer = Customer.objects.get(pk=cus_name)
            log_type = request.POST.get('log_type', None)
            log_type = ServerMonitorLogType.objects.get(pk=log_type)
            monitor_type = request.POST.get('monitor_type', None)
            module_type = request.POST.get('module_type', None)
            module = ServerMonitorModule.objects.get(module=module_type)
            detail = request.POST.get('detail', None)
            url = request.POST.get('url', None)
            create_time = datetime.datetime.now()
            create_user = User.objects.get(pk=request.user.id)

            # 保存监控日志信息
            logInfo = ServerMonitorLog()
            logInfo.cus = customer
            logInfo.log_type = log_type
            logInfo.monitor_type = int(monitor_type)
            logInfo.module_type = module
            logInfo.detail = detail
            logInfo.create_time = create_time
            logInfo.cus_uuid = customer.machines[0].code
            logInfo.create_user = create_user

            logInfo.attachment_url = url
            logInfo.save()
            return HttpResponse(json.dumps(response), mimetype="application/json")

        except Exception as e:
            response["success"] = False
            response["error"] = "系统异常![%s]" % str(e)
            logger.error(response["error"] + getTraceBack())
            return HttpResponse(json.dumps(response), mimetype="application/json")
예제 #8
0
def handle_del_customer(request, fn, log):
    """
    处理删除客户
    :param request:
    :param fn:
    """
    resp = None
    is_success = False
    try:
        cus_id = request.POST.get("cus_id", None)

        log = log % '删除客户[id=%s]' % str(cus_id)

        old_obj = Customer.objects(pk=cus_id)[0]
        old_version = old_obj.version
        old_json = convert_customer_to_json(old_obj)

        # 执行方法
        resp = fn(request)

        # 解析响应
        resp_json = json.loads(resp.content)
        is_success = resp_json["success"]

        core_log = CoreLogger()
        core_log.collection = 'customer'
        core_log.operate_type = OPERATE_DELETE
        core_log.result_type = RESULT_TYPE_SUCCESS if is_success else RESULT_TYPE_FAILURE
        core_log.old_version = old_version
        core_log.old_data = json.dumps(old_json, ensure_ascii=False).encode(ENCODE)
        core_log.new_version = None
        core_log.new_data = None
        core_log.response = json.dumps(resp_json, ensure_ascii=False).encode(ENCODE)
        core_log.create_time = datetime.datetime.now()
        core_log.create_user = User.objects(username=request.user.username)[0]
        core_log.save()

        log += ' --> 执行成功!'
    except Exception as e:
        log += ' --> 记录过程异常![%s]' % str(e)
    finally:
        logger.info(log) if is_success else logger.error(log)
        return resp
예제 #9
0
def handle_modify_customer(request, fn, log):
    """
    处理创建或删除客户
    :param request:
    :param fn:
    """
    resp = None
    is_success = False
    try:
        # 获取参数
        request_json = json.loads(request.POST.get("json"))
        # 客户ID
        cus_id = request_json["customerId"]
        log = log % ('创建客户[id=%s]' % None) if cus_id is None else ('编辑客户[id=%s]' % str(cus_id))

        # 记录参数
        old_obj = None
        if cus_id is not None:
            old_obj = Customer.objects(pk=cus_id)[0]

        old_json = None
        old_version = None
        if old_obj is not None:
            old_version = old_obj.version
            old_json = convert_customer_to_json(old_obj)

        log += '旧数据版本 : [%s] ; ' % None if old_version is None else old_version.encode(ENCODE)
        log += '旧数据备份 : [%s] ; ' % None if old_json is None else json.dumps(old_json, ensure_ascii=False).encode(ENCODE)

        # 执行方法
        resp = fn(request)
        # 执行方法end
        # 方法响应参数
        resp_json = json.loads(resp.content)

        new_json = None
        new_version = None

        if cus_id is not None:
            new_obj = Customer.objects(pk=cus_id)[0]
            new_version = new_obj.version
            new_json = convert_customer_to_json(new_obj)
        elif resp_json['id'] is not None:
            new_obj = Customer.objects(pk=resp_json['id'])[0]
            new_version = new_obj.version
            new_json = convert_customer_to_json(new_obj)

        log += '新数据版本 : [%s] ; ' % new_version.encode(ENCODE)
        log += '新数据备份 : [%s] ; ' % json.dumps(new_json, ensure_ascii=False).encode(ENCODE)

        is_success = resp_json['success']

        core_log = CoreLogger()
        core_log.collection = 'customer'
        core_log.operate_type = OPERATE_CREATE if cus_id is None else OPERATE_UPDATE
        core_log.result_type = RESULT_TYPE_SUCCESS if is_success else RESULT_TYPE_FAILURE
        core_log.old_version = old_version
        core_log.old_data = None if old_json is None else json.dumps(old_json, ensure_ascii=False).encode(ENCODE)
        core_log.new_version = new_version
        core_log.new_data = json.dumps(new_json, ensure_ascii=False).encode(ENCODE)
        core_log.response = json.dumps(resp_json, ensure_ascii=False).encode(ENCODE)
        core_log.create_time = datetime.datetime.now()
        core_log.create_user = User.objects(username=request.user.username)[0]
        core_log.save()

        log += ' --> 执行成功!'
    except Exception as e:
        log += ' --> 记录过程异常![%s]\n[%s]' % (str(e), getTraceBack())
    finally:
        logger.info(log) if is_success else logger.error(log)
        return resp
예제 #10
0
파일: views.py 프로젝트: NolanZhao/TTEngine
def quickSearch(request):
    if request.method == "GET":
        search_customer = request.GET.get("customer", None)
        search_manager = request.GET.get("manager", None)
        search_status = request.GET.get("status", None)
        search_module = request.GET.get("module", None)
        search_permission = request.GET.get("permission", None)
        search_perm_num = request.GET.get("num", None)
        search_perm_bool = request.GET.get("bool", None)
        search_config = request.GET.get("config", None)
        is_actual = request.GET.get("isActual", None)
        search_position = request.GET.get("position", None)
        if search_customer:
            if is_actual == "是":
                customers = Customer.objects(is_sys=False).order_by("+tag")
            elif is_actual == "否":
                customers = Customer.objects(is_sys=True).order_by("+tag")
            elif is_actual == "任意":
                customers = Customer.objects().order_by("+tag")

            cus_states = CustomerDeployStatus.objects()
            error = request.GET.get("error", None)
            cus_aftersales = []
            for customer in customers:
                if customer.aftersale in cus_aftersales:
                    continue
                cus_aftersales.append(customer.aftersale)

            results = []
            if search_customer:
                for customer in customers:
                    if search_customer == customer.name:
                        results.append(customer)
            if search_manager and search_manager != "任意":
                for customer in customers:
                    if search_manager == customer.aftersale:
                        if is_actual == "是":
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)
            if search_status and search_status != "任意":
                for customer in customers:
                    if search_status == customer.customerstatus:
                        if is_actual == "是":
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)
            if search_module and search_module != "任意":
                for customer in customers:
                    cus_modules = customer.modules
                    for module in cus_modules:
                        if search_module == module.name:
                            if is_actual == "是":
                                if "实盘" in customer.name:
                                    results.append(customer)
                            else:
                                results.append(customer)
            if search_permission and search_permission != "任意":
                for customer in customers:
                    cus_permission = customer.permissions
                    perm_settings = CustomerPermissionSettings.objects()
                    for perm_setting in perm_settings:
                        if perm_setting.name == search_permission[1:]:
                            perm_id = str(perm_setting.id)
                            if str(search_perm_num) == str(cus_permission[perm_id]) or str(search_perm_bool) == str(
                                cus_permission[perm_id]
                            ):
                                if is_actual == "是":
                                    if "实盘" in customer.name:
                                        results.append(customer)
                                else:
                                    results.append(customer)
            if search_config:
                for customer in customers:
                    setting = customer.settings
                    pattern = re.compile(search_config, re.X)
                    match = pattern.search(setting)
                    if match is not None:
                        if is_actual == "是":
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)

            if is_actual == "是":
                for customer in customers:
                    if "实盘" in customer.name:
                        results.append(customer)
            elif is_actual == "否":
                for customer in customers:
                    results.append(customer)

            if search_position and search_position != "任意":
                for customer in customers:
                    if customer.position == search_position:
                        results.append(customer)

        else:
            customers = Customer.objects().order_by("+tag")
            cus_states = CustomerDeployStatus.objects()
            error = request.GET.get("error", None)
            cus_aftersales = []
            results = []
            for customer in customers:
                if customer.aftersale in cus_aftersales:
                    continue
                    cus_aftersales.append(customer.aftersale)
                    results.append(customer)
        return render_to_response("demo/search_view.html", locals(), context_instance=RequestContext(request))

    elif request.method == "POST":
        response = {"success": False, "error": "", "id": None}
        try:
            response["success"] = True
            response["error"] = "执行成功!"
            return HttpResponse(json.dumps(response), mimetype="application/json")
        except Exception, e:
            response["error"] = "系统异常![%s]" % str(e)
            logger.error(response["error"] + getTraceBack())
            return HttpResponse(json.dumps(response), mimetype="application/json")
예제 #11
0
파일: views.py 프로젝트: NolanZhao/TTEngine
def platform_operate(request):
    """
    平台保存,删除,更新
    :param request:
    :return:
    """
    if request.method == "GET":
        error = "非法请求方式!"
        logger.error(error)
        return render_to_response("item/temp.html", locals(), context_instance=RequestContext(request))
    elif request.method == "POST":
        # cmd in [update, save, delete]
        # cmd in [更新, 保存, 删除]
        response = {"success": False, "error": ""}
        try:
            # 获取参数
            cmd = request.POST.get("cmd", None)
            id = request.POST.get("id", None)

            m_nId = request.POST.get("m_nId", None)
            m_nId = int(m_nId) if m_nId else None

            m_nType = request.POST.get("m_nType", None)
            m_nType = int(m_nType) if m_nType else None

            m_strName = request.POST.get("m_strName", None)
            m_strAbbrName = request.POST.get("m_strAbbrName", None)
            m_strSoName = request.POST.get("m_strSoName", None)
            m_strConfig = request.POST.get("m_strConfig", None)
            m_strLogo = request.POST.get("m_strLogo", None)
            m_strQuoterTag = request.POST.get("m_strQuoterTag", None)
            m_strBrokerTag = request.POST.get("m_strBrokerTag", None)
            m_strfastTag = request.POST.get("m_strfastTag", None)

            if cmd is None:
                response["error"] = "CMD参数不能为空!"
                return HttpResponse(json.dumps(response), mimetype="application/json")

            param_is_none = False
            if not m_nId or not m_nType:
                param_is_none = True

            if (
                (cmd == "delete" and id is None)
                or (cmd == "save" and param_is_none)
                or (cmd == "update" and (param_is_none or id is None))
            ):
                response["error"] = "必要参数为空!"
                return HttpResponse(json.dumps(response), mimetype="application/json")

            # 创建
            if cmd == "save":
                # 判断是否已有
                param_exist = Platform.objects(m_strName=m_strName, m_nType=m_nType)

                if len(param_exist) > 0:
                    response["error"] = "已存在相同平台!请在原基础修改!"
                    return HttpResponse(json.dumps(response), mimetype="application/json")

                platform = Platform()
                platform.m_nId = m_nId
                platform.m_nType = m_nType
                platform.m_strName = m_strName
                platform.m_strAbbrName = m_strAbbrName
                platform.m_strSoName = m_strSoName
                platform.m_strConfig = m_strConfig
                platform.m_strLogo = m_strLogo
                platform.m_strQuoterTag = m_strQuoterTag
                platform.m_strBrokerTag = m_strBrokerTag
                platform.m_strfastTag = m_strfastTag
                platform.save()
                response["id"] = str(platform.id)

            # 更新
            elif cmd == "update":
                # 查找对象
                platform = Platform.objects(pk=id)
                if len(platform) == 0:
                    response["error"] = "未找到可更新对象!"
                    return HttpResponse(json.dumps(response), mimetype="application/json")
                platform = platform[0]
                platform.m_nId = m_nId
                platform.m_nType = m_nType
                platform.m_strName = m_strName
                platform.m_strAbbrName = m_strAbbrName
                platform.m_strSoName = m_strSoName
                platform.m_strConfig = m_strConfig
                platform.m_strLogo = m_strLogo
                platform.m_strQuoterTag = m_strQuoterTag
                platform.m_strBrokerTag = m_strBrokerTag
                platform.m_strfastTag = m_strfastTag
                platform.save()

            # 删除
            elif cmd == "delete":
                # 查找对象
                platform = Platform.objects(pk=id)
                if len(platform) == 0:
                    response["error"] = "未找到可删除对象!"
                    return HttpResponse(json.dumps(response), mimetype="application/json")

                platform = platform[0]
                path = request.path
                is_sys = None
                if path == "/customer/system/list/":
                    is_sys = True
                elif path == "/customer/list/":
                    is_sys = False
                else:
                    is_sys = False

                customers = Customer.objects(is_sys=is_sys).order_by("+tag")
                for customer in customers:
                    cus_modules = customer.modules
                    for module in cus_modules:
                        if module.group == "Broker实盘" or module.group == "Broker模拟":
                            name_list = module.name.split("_")
                            if len(name_list) >= 3:
                                if str(platform.m_nId) == name_list[2]:
                                    response["error"] = "该平台被客户[%s]使用,不能删除!" % str(customer.name)
                                    return HttpResponse(json.dumps(response), mimetype="application/json")

                platform.delete()

            else:
                response["error"] = "CMD指令异常!"
                return HttpResponse(json.dumps(response), mimetype="application/json")

            response["success"] = True
            response["error"] = "执行成功!"
            return HttpResponse(json.dumps(response), mimetype="application/json")
        except Exception as e:
            response["error"] = "系统异常![%s]" % str(e)
            logger.error(response["error"] + getTraceBack())
            return HttpResponse(json.dumps(response), mimetype="application/json")
예제 #12
0
파일: views.py 프로젝트: nobodybut/TTEngine
def quickSearch(request):
    if request.method == "GET":
        search_customer = request.GET.get("customer", None)
        search_manager = request.GET.get('manager', None)
        search_status = request.GET.get('status', None)
        search_module = request.GET.get('module', None)
        search_permission = request.GET.get('permission', None)
        search_perm_num = request.GET.get('num', None)
        search_perm_bool = request.GET.get('bool', None)
        search_config = request.GET.get('config', None)
        is_actual = request.GET.get('isActual', None)
        search_position = request.GET.get('position', None)
        if search_customer:
            if is_actual == "是":
                customers = Customer.objects(is_sys=False).order_by('+tag')
            elif is_actual == "否":
                customers = Customer.objects(is_sys=True).order_by('+tag')
            elif is_actual == "任意":
                customers = Customer.objects().order_by('+tag')

            cus_states = CustomerDeployStatus.objects()
            error = request.GET.get("error", None)
            cus_aftersales = []
            for customer in customers:
                if customer.aftersale in cus_aftersales:
                    continue
                cus_aftersales.append(customer.aftersale)

            results = []
            if search_customer:
                for customer in customers:
                    if search_customer == customer.name:
                        results.append(customer)
            if search_manager and search_manager != '任意':
                for customer in customers:
                    if search_manager == customer.aftersale:
                        if is_actual == '是':
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)
            if search_status and search_status != '任意':
                for customer in customers:
                    if search_status == customer.customerstatus:
                        if is_actual == '是':
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)
            if search_module and search_module != '任意':
                for customer in customers:
                    cus_modules = customer.modules
                    for module in cus_modules:
                        if search_module == module.name:
                            if is_actual == '是':
                                if "实盘" in customer.name:
                                    results.append(customer)
                            else:
                                results.append(customer)
            if search_permission and search_permission != '任意':
                for customer in customers:
                    cus_permission = customer.permissions
                    perm_settings = CustomerPermissionSettings.objects()
                    for perm_setting in perm_settings:
                        if perm_setting.name == search_permission[1:]:
                            perm_id = str(perm_setting.id)
                            if str(search_perm_num) == str(
                                    cus_permission[perm_id]) or str(
                                        search_perm_bool) == str(
                                            cus_permission[perm_id]):
                                if is_actual == '是':
                                    if "实盘" in customer.name:
                                        results.append(customer)
                                else:
                                    results.append(customer)
            if search_config:
                for customer in customers:
                    setting = customer.settings
                    pattern = re.compile(search_config, re.X)
                    match = pattern.search(setting)
                    if match is not None:
                        if is_actual == '是':
                            if "实盘" in customer.name:
                                results.append(customer)
                        else:
                            results.append(customer)

            if is_actual == '是':
                for customer in customers:
                    if '实盘' in customer.name:
                        results.append(customer)
            elif is_actual == '否':
                for customer in customers:
                    results.append(customer)

            if search_position and search_position != '任意':
                for customer in customers:
                    if customer.position == search_position:
                        results.append(customer)

        else:
            customers = Customer.objects().order_by('+tag')
            cus_states = CustomerDeployStatus.objects()
            error = request.GET.get("error", None)
            cus_aftersales = []
            results = []
            for customer in customers:
                if customer.aftersale in cus_aftersales:
                    continue
                    cus_aftersales.append(customer.aftersale)
                    results.append(customer)
        return render_to_response("demo/search_view.html",
                                  locals(),
                                  context_instance=RequestContext(request))

    elif request.method == 'POST':
        response = {"success": False, "error": "", "id": None}
        try:
            response["success"] = True
            response["error"] = "执行成功!"
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")
        except Exception, e:
            response["error"] = "系统异常![%s]" % str(e)
            logger.error(response["error"] + getTraceBack())
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")
예제 #13
0
파일: views.py 프로젝트: nobodybut/TTEngine
def platform_operate(request):
    """
    平台保存,删除,更新
    :param request:
    :return:
    """
    if request.method == 'GET':
        error = "非法请求方式!"
        logger.error(error)
        return render_to_response('item/temp.html',
                                  locals(),
                                  context_instance=RequestContext(request))
    elif request.method == 'POST':
        # cmd in [update, save, delete]
        # cmd in [更新, 保存, 删除]
        response = {'success': False, 'error': ''}
        try:
            # 获取参数
            cmd = request.POST.get('cmd', None)
            id = request.POST.get('id', None)

            m_nId = request.POST.get('m_nId', None)
            m_nId = int(m_nId) if m_nId else None

            m_nType = request.POST.get('m_nType', None)
            m_nType = int(m_nType) if m_nType else None

            m_strName = request.POST.get('m_strName', None)
            m_strAbbrName = request.POST.get('m_strAbbrName', None)
            m_strSoName = request.POST.get('m_strSoName', None)
            m_strConfig = request.POST.get('m_strConfig', None)
            m_strLogo = request.POST.get('m_strLogo', None)
            m_strQuoterTag = request.POST.get('m_strQuoterTag', None)
            m_strBrokerTag = request.POST.get('m_strBrokerTag', None)
            m_strfastTag = request.POST.get('m_strfastTag', None)

            if cmd is None:
                response["error"] = "CMD参数不能为空!"
                return HttpResponse(json.dumps(response),
                                    mimetype="application/json")

            param_is_none = False
            if not m_nId or not m_nType:
                param_is_none = True

            if (cmd == 'delete' and id is None) or \
                    (cmd == 'save' and param_is_none) or \
                    (cmd == 'update' and (param_is_none or id is None)):
                response["error"] = "必要参数为空!"
                return HttpResponse(json.dumps(response),
                                    mimetype="application/json")

            # 创建
            if cmd == 'save':
                # 判断是否已有
                param_exist = Platform.objects(m_strName=m_strName,
                                               m_nType=m_nType)

                if len(param_exist) > 0:
                    response["error"] = "已存在相同平台!请在原基础修改!"
                    return HttpResponse(json.dumps(response),
                                        mimetype="application/json")

                platform = Platform()
                platform.m_nId = m_nId
                platform.m_nType = m_nType
                platform.m_strName = m_strName
                platform.m_strAbbrName = m_strAbbrName
                platform.m_strSoName = m_strSoName
                platform.m_strConfig = m_strConfig
                platform.m_strLogo = m_strLogo
                platform.m_strQuoterTag = m_strQuoterTag
                platform.m_strBrokerTag = m_strBrokerTag
                platform.m_strfastTag = m_strfastTag
                platform.save()
                response["id"] = str(platform.id)

            # 更新
            elif cmd == 'update':
                # 查找对象
                platform = Platform.objects(pk=id)
                if len(platform) == 0:
                    response["error"] = "未找到可更新对象!"
                    return HttpResponse(json.dumps(response),
                                        mimetype="application/json")
                platform = platform[0]
                platform.m_nId = m_nId
                platform.m_nType = m_nType
                platform.m_strName = m_strName
                platform.m_strAbbrName = m_strAbbrName
                platform.m_strSoName = m_strSoName
                platform.m_strConfig = m_strConfig
                platform.m_strLogo = m_strLogo
                platform.m_strQuoterTag = m_strQuoterTag
                platform.m_strBrokerTag = m_strBrokerTag
                platform.m_strfastTag = m_strfastTag
                platform.save()

            # 删除
            elif cmd == 'delete':
                # 查找对象
                platform = Platform.objects(pk=id)
                if len(platform) == 0:
                    response["error"] = "未找到可删除对象!"
                    return HttpResponse(json.dumps(response),
                                        mimetype="application/json")

                platform = platform[0]
                path = request.path
                is_sys = None
                if path == '/customer/system/list/':
                    is_sys = True
                elif path == '/customer/list/':
                    is_sys = False
                else:
                    is_sys = False

                customers = Customer.objects(is_sys=is_sys).order_by('+tag')
                for customer in customers:
                    cus_modules = customer.modules
                    for module in cus_modules:
                        if module.group == "Broker实盘" or module.group == "Broker模拟":
                            name_list = module.name.split('_')
                            if len(name_list) >= 3:
                                if str(platform.m_nId) == name_list[2]:
                                    response[
                                        "error"] = "该平台被客户[%s]使用,不能删除!" % str(
                                            customer.name)
                                    return HttpResponse(
                                        json.dumps(response),
                                        mimetype="application/json")

                platform.delete()

            else:
                response["error"] = "CMD指令异常!"
                return HttpResponse(json.dumps(response),
                                    mimetype="application/json")

            response["success"] = True
            response["error"] = "执行成功!"
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")
        except Exception as e:
            response["error"] = "系统异常![%s]" % str(e)
            logger.error(response["error"] + getTraceBack())
            return HttpResponse(json.dumps(response),
                                mimetype="application/json")