예제 #1
0
    public override OpRes doDyop(object param, GMUser user)
    {
        ParamApiApprove p = (ParamApiApprove)param;

        ResultAPIItem item = getItem(p, user);

        if (item == null)
        {
            return(OpRes.op_res_failed);
        }

        if (p.m_isPass)
        {
            OpRes res = OpRes.op_res_failed;
            try
            {
                HttpContext.Current.Application.Lock();
                res = createAPI(user, item, p); //agree(item, user);
                if (res == OpRes.opres_success)
                {
                    refuse(item, user);
                }
            }
            catch (System.Exception ex)
            {
            }
            finally
            {
                HttpContext.Current.Application.UnLock();
            }
            return(res);
        }
        return(refuse(item, user));
    }
예제 #2
0
    ResultAPIItem getItem(ParamApiApprove p, GMUser user)
    {
        OpRes res = user.doQuery(p.m_apiAcc, QueryType.queryTypeQueryApiApprove);

        if (res != OpRes.opres_success)
        {
            return(null);
        }

        List <ResultAPIItem> qresult =
            (List <ResultAPIItem>)user.getQueryResult(QueryType.queryTypeQueryApiApprove);

        return(qresult[0]);
    }
        public void ProcessRequest(HttpContext context)
        {
            RightMgr.getInstance().opCheck(RIGHT.APPROVE_API, context.Session, context.Response);

            string op  = context.Request.Form["op"];
            string acc = context.Request.Form["acc"];

            Dictionary <string, object> ret = new Dictionary <string, object>();

            GMUser          user  = (GMUser)context.Session["user"];
            ParamApiApprove param = new ParamApiApprove();

            param.m_apiAcc = acc;
            param.m_isPass = (op == "pass");
            OpRes res = user.doDyop(param, DyOpType.opTypeDyOpApiApprove);

            ret.Add("result", (int)res);
            ret.Add("op", op);
            ret.Add("acc", acc);

            if (res == OpRes.opres_success && param.m_isPass)
            {
                string str = "审批成功," +
                             OpResMgr.getInstance().getResultString(OpRes.op_res_account_info, param.m_resultAcc, param.m_validatedCode);

                ret.Add("resultMsg", str);
            }
            else
            {
                ret.Add("resultMsg", OpResMgr.getInstance().getResultString(res));
            }

            string retStr = BaseJsonSerializer.genJsonStr(ret);

            context.Response.ContentType = "text/plain";
            context.Response.Write(retStr);
        }
예제 #4
0
    private OpRes createAPI(GMUser user, ResultAPIItem item, ParamApiApprove resultParam)
    {
        bool res = user.sqlDb.keyStrExists(TableName.GM_ACCOUNT, "acc", item.m_apiAcc,
                                           user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);

        if (res)
        {
            return(OpRes.op_res_account_has_exists); // 账号重复
        }
        CreateInfo info = new CreateInfo();

        res = getCreatorInfo(user, item.m_apiCreator, info);
        if (!res)
        {
            return(OpRes.op_res_failed);
        }

        SqlInsertGenerator gen = new SqlInsertGenerator();

        gen.addField("acc", item.m_apiAcc, FieldType.TypeString);
        gen.addField("pwd", item.m_apiPwd, FieldType.TypeString);
        gen.addField("accType", AccType.ACC_API, FieldType.TypeNumber);
        gen.addField("createTime", DateTime.Now.ToString(ConstDef.DATE_TIME24), FieldType.TypeString);
        gen.addField("owner", item.m_apiCreator, FieldType.TypeString);

        gen.addField("generalAgency", info.m_generalAgency, FieldType.TypeString);

        gen.addField("postfix", item.m_apiPrefix, FieldType.TypeString);
        gen.addField("money", 0, FieldType.TypeNumber);
        gen.addField("moneyType", 0, FieldType.TypeNumber);

        string key = Guid.NewGuid().ToString().Replace("-", "");

        gen.addField("devSecretKey", key, FieldType.TypeString);

        gen.addField("gmRight", "", FieldType.TypeString);

        gen.addField("depth", info.m_depth + 1, FieldType.TypeNumber);

        string ccode = ItemHelp.genCreateCode(info.m_childCount, info.m_createCode);

        gen.addField("createCode", ccode, FieldType.TypeString);
        gen.addField("aliasName", item.m_apiAliasName, FieldType.TypeString);

        ValidatedCodeGenerator vg = new ValidatedCodeGenerator();

        vg.CodeSerial = DefCC.CODE_SERIAL;
        string validatedCode = vg.CreateVerifyCode(4);

        gen.addField("validatedCode", validatedCode, FieldType.TypeString);

        gen.addField("agentRatio", item.m_apiAgentRatio, FieldType.TypeNumber);
        gen.addField("washRatio", item.m_apiWashRatio, FieldType.TypeNumber);

        res = updateChildNodeNumber(user, info);
        if (res)
        {
            string sqlCmd = gen.getResultSql(TableName.GM_ACCOUNT);
            int    count  = user.sqlDb.executeOp(sqlCmd, user.getMySqlServerID(), MySqlDbName.DB_XIANXIA);
            if (count > 0)
            {
                resultParam.m_resultAcc     = item.m_apiAcc;
                resultParam.m_validatedCode = validatedCode;

                OpLogMgr.getInstance().addLog(LogType.LOG_TYPE_API_APPROVE,
                                              new LogApiApprove(item.m_apiAcc, item.m_apiAliasName), user);

                return(OpRes.opres_success);
            }
        }

        return(OpRes.op_res_db_failed);
    }