var System=require("../../system")
const http=require("http")
const querystring = require('querystring');
const md5=require("MD5");
const uuidv4 = require('uuid/v4');
//const cyjAppKey="ccb00829347e4048833af213e502c8c5";
var settings=require("../../../config/settings");
/**
 * channelpushApi
 * 渠道接入，推送商标数据
 */
class ChannelPushApi{
    constructor(){
      this.orderSve=System.getObject("service.orderSve");
      this.tmflowSve = System.getObject("service.tmflowSve");
      this.channelreceiveSve = System.getObject("service.channelreceiveSve");
      // this.userSve=System.getObject("service.userSve");
      // this.appSve=System.getObject("service.appSve");
      // this.channelSve=System.getObject("service.channelSve");
      // this.channelApiUrl = settings.channelApiUrl();
      // this.appInfo = {
      //   1688: { appkey: "201911051030", secret: "eeb18393aade40149287b024d8ba0850", selfRegistProduct: ["5743091"] }
      // };  
    };
    // async getUidStr(len, radix) {
    //   var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
    //   var uuid = [],
    //     i;
    //   radix = radix || chars.length;
    //   if (len) {
    //     for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
    //   } else {
    //     var r;
    //     uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
    //     uuid[14] = '4';
    //     for (i = 0; i < 36; i++) {
    //       if (!uuid[i]) {
    //         r = 0 | Math.random() * 16;
    //         uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
    //       }
    //     }
    //   }
    //   return uuid.join('');
    // }
    // async getUserInfo(channelUserId,channelCode){
    //   var openid = channelCode+"_" + channelUserId;
    //   var user = await this.userSve.getUserByOpenId(openid, "2e787bbaacda4c6488b9fae58fff30ba");
    //   return user;
    // };
    // //获取请求信息
    // async getReqObj(pobj){
    //   try {
    //     if (!pobj.requrl) {
    //       return system.getResult(null, "requrl不能为空");
    //     }
    //     if (!pobj.actionProcess) {
    //       return system.getResult(null, "actionProcess不能为空");
    //     }
    //     if (!pobj.actionType) {
    //       return system.getResult(null, "actionType不能为空");
    //     }
    //     if (!pobj.actionBody) {
    //       return system.getResult(null, "actionBody不能为空");
    //     }
    //     var reqobj = {
    //       "actionProcess": pobj.actionProcess || "",
    //       "actionType": pobj.actionType || "",
    //       "sign": pobj.sign || "",
    //       "isUser": pobj.isUser || "yes",//是否需要验证用户，no否，yes是
    //       "actionBody": pobj.actionBody || null
    //     };
    //     var tokenInfo = await this.getToken(reqobj.actionProcess);
    //     if (tokenInfo.status != 0) {
    //       return tokenInfo;
    //     }
    //     if (!reqobj.sign) {
    //       var signInfo = await this.createSign(reqobj.actionBody, tokenInfo.data.secret);
    //       if (signInfo.status != 0) {
    //         return signInfo;
    //       }
    //       reqobj.sign = signInfo.data;
    //     }
    //     return {code:1,reqobj:reqobj,tokenInfo:tokenInfo};
    //   } catch (e) {
    //     return {code:-100};
    //   }
    // }

    // async getToken(reqType) {
    //   var self = this;
    //   var token = "";
    //   var reqTokenUrl = this.channelApiUrl + "/auth/accessAuth/getToken";
    //   var reqParam = {};
    //   switch (reqType) {
    //     case "1688":
    //       reqParam = self.appInfo["1688"];
    //       break;
    //     default:
    //       break;
    //   }
    //   if (!reqParam.appkey || !reqParam.secret) {
    //     return {code:-1, msg:"reqType类型有误，请求失败"};
    //   }
    //   var rtn = await this.execClient.execPost(reqParam, reqTokenUrl);
    //   if (!rtn.stdout) {
    //     return {code:-2, msg:"获取token失败"};
    //   }
    //   var tokenResult = JSON.parse(rtn.stdout);
    //   if (tokenResult.status == 0) {
    //     tokenResult.data.secret = reqParam.secret;
    //   }
    //   return tokenResult;
    // }
    // /**
    //  * 验证签名
    //  * @param {*} params 要验证的参数 
    //  * @param {*} app_key 应用的校验key
    //  */
    // async createSign(params, app_key) {
    //   if (!params) {
    //     return system.getResult(null, "请求参数为空");
    //   }
    //   if (!params.sign) {
    //     return system.getResult(null, "请求参数sign为空");
    //   }
    //   if (!params.times_tamp) {
    //     return system.getResult(null, "请求参数times_tamp为空");
    //   }
    //   var signArr = [];
    //   var keys = Object.keys(params).sort();
    //   if (keys.length == 0) {
    //     return system.getResult(null, "请求参数信息为空");
    //   }
    //   for (let k = 0; k < keys.length; k++) {
    //     const tKey = keys[k];
    //     if (tKey != "sign" && params[tKey]) {
    //       signArr.push(tKey + "=" + params[tKey]);
    //     }
    //   }
    //   if (signArr.length == 0) {
    //     return system.getResult(null, "请求参数组装签名参数信息为空");
    //   }
    //   var resultSignStr = signArr.join("&") + "&key=" + app_key;
    //   var resultTmpSign = md5(resultSignStr).toUpperCase();
    //   return system.getResultSuccess(resultTmpSign);
    // }

    // //推送数据
    // async pushDataToChannel(obj){
    //   tasync getUidStr(len, radix) {
    //   var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
    //   var uuid = [],
    //     i;
    //   radix = radix || chars.length;
    //   if (len) {
    //     for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
    //   } else {
    //     var r;
    //     uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
    //     uuid[14] = '4';
    //     for (i = 0; i < 36; i++) {
    //       if (!uuid[i]) {
    //         r = 0 | Math.random() * 16;
    //         uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
    //       }
    //     }
    //   }
    //   return uuid.join('');
    // }
    // async getUserInfo(channelUserId,channelCode){
    //   var openid = channelCode+"_" + channelUserId;
    //   var user = await this.userSve.getUserByOpenId(openid, "2e787bbaacda4c6488b9fae58fff30ba");
    //   return user;
    // };
    // //获取请求信息
    // async getReqObj(pobj){
    //   try {
    //     if (!pobj.requrl) {
    //       return system.getResult(null, "requrl不能为空");
    //     }
    //     if (!pobj.actionProcess) {
    //       return system.getResult(null, "actionProcess不能为空");
    //     }
    //     if (!pobj.actionType) {
    //       return system.getResult(null, "actionType不能为空");
    //     }
    //     if (!pobj.actionBody) {
    //       return system.getResult(null, "actionBody不能为空");
    //     }
    //     var reqobj = {
    //       "actionProcess": pobj.actionProcess || "",
    //       "actionType": pobj.actionType || "",
    //       "sign": pobj.sign || "",
    //       "isUser": pobj.isUser || "yes",//是否需要验证用户，no否，yes是
    //       "actionBody": pobj.actionBody || null
    //     };
    //     var tokenInfo = await this.getToken(reqobj.actionProcess);
    //     if (tokenInfo.status != 0) {
    //       return tokenInfo;
    //     }
    //     if (!reqobj.sign) {
    //       var signInfo = await this.createSign(reqobj.actionBody, tokenInfo.data.secret);
    //       if (signInfo.status != 0) {
    //         return signInfo;
    //       }
    //       reqobj.sign = signInfo.data;
    //     }
    //     return {code:1,reqobj:reqobj,tokenInfo:tokenInfo};
    //   } catch (e) {
    //     return {code:-100};
    //   }
    // }

    // async getToken(reqType) {
    //   var self = this;
    //   var token = "";
    //   var reqTokenUrl = this.channelApiUrl + "/auth/accessAuth/getToken";
    //   var reqParam = {};
    //   switch (reqType) {
    //     case "1688":
    //       reqParam = self.appInfo["1688"];
    //       break;
    //     default:
    //       break;
    //   }
    //   if (!reqParam.appkey || !reqParam.secret) {
    //     return {code:-1, msg:"reqType类型有误，请求失败"};
    //   }
    //   var rtn = await this.execClient.execPost(reqParam, reqTokenUrl);
    //   if (!rtn.stdout) {
    //     return {code:-2, msg:"获取token失败"};
    //   }
    //   var tokenResult = JSON.parse(rtn.stdout);
    //   if (tokenResult.status == 0) {
    //     tokenResult.data.secret = reqParam.secret;
    //   }
    //   return tokenResult;
    // }
    // /**
    //  * 验证签名
    //  * @param {*} params 要验证的参数 
    //  * @param {*} app_key 应用的校验key
    //  */
    // async createSign(params, app_key) {
    //   if (!params) {
    //     return system.getResult(null, "请求参数为空");
    //   }
    //   if (!params.sign) {
    //     return system.getResult(null, "请求参数sign为空");
    //   }
    //   if (!params.times_tamp) {
    //     return system.getResult(null, "请求参数times_tamp为空");
    //   }
    //   var signArr = [];
    //   var keys = Object.keys(params).sort();
    //   if (keys.length == 0) {
    //     return system.getResult(null, "请求参数信息为空");
    //   }
    //   for (let k = 0; k < keys.length; k++) {
    //     const tKey = keys[k];
    //     if (tKey != "sign" && params[tKey]) {
    //       signArr.push(tKey + "=" + params[tKey]);
    //     }
    //   }
    //   if (signArr.length == 0) {
    //     return system.getResult(null, "请求参数组装签名参数信息为空");
    //   }
    //   var resultSignStr = signArr.join("&") + "&key=" + app_key;
    //   var resultTmpSign = md5(resultSignStr).toUpperCase();
    //   return system.getResultSuccess(resultTmpSign);
    // }

    // //推送数据
    // async pushDataToChannel(obj){
    //   try {
    //     var user = obj.user;
    //     if(!user){
    //       return {code:-102,msg:"未知用户"};
    //     }
    //     var reqObjRes = await this.getReqObj(obj);
    //     if(!reqObjRes || reqObjRes.code!=1){
    //       return {code:-103,msg:"获取请求参数失败"};
    //     }
    //     var reqObj = reqObjRes.reqObj;
    //     var tokenInfo = reqObjRes.tokenInfo;
    //     var reqUrl = this.channelApiUrl + obj.requrl;
    //     await this.execClient.execPostTK(reqobj, reqUrl, tokenInfo.data.token);
    //   } catch (e) {
    //     console.log(e);
    //   }
    // }ry {
    //     var user = obj.user;
    //     if(!user){
    //       return {code:-102,msg:"未知用户"};
    //     }
    //     var reqObjRes = await this.getReqObj(obj);
    //     if(!reqObjRes || reqObjRes.code!=1){
    //       return {code:-103,msg:"获取请求参数失败"};
    //     }
    //     var reqObj = reqObjRes.reqObj;
    //     var tokenInfo = reqObjRes.tokenInfo;
    //     var reqUrl = this.channelApiUrl + obj.requrl;
    //     await this.execClient.execPostTK(reqobj, reqUrl, tokenInfo.data.token);
    //   } catch (e) {
    //     console.log(e);
    //   }
    // }
    async test(obj){
      // return this.orderSve.pushChannelAssistTmData("2qk1573455039177","1688");
      // return this.orderSve.pushEditChannelAssistTmData("2qk1573455039177","1688");
      // var pushObj={
      //   channelCode:"1688",
      //   tbCode:"TB201911111450y3qrpT",
      //   deliveryOrderNo:"JF201911111450TMD1yC",
      //   officialType:"1",
      //   tmRegistNum:"111111",
      //   officialFileName:"商标注册申请书",
      //   officialFileUrl:"http://www.baidu.com", pushChannelAssistTmData
      // };pushEditChannelAssistTmData
      var co = {
        "org_name":"汉唐信通",
        "operator_name":"庄冰",
        "order_pay_state":"待付款",
        "order_state":"办理中",
        "order_company_name":"北京联大共享科技有限公司",
        "customer_phone":"13075556693",
        "customer_name":"测试李四",
        "customer_email":"2577638904@qq.com",
        "order_price":0.01,
        "payOneClassCount":1,
        "needId":"OT18202003312235gT1S",
        "order_no_class_count":[
            {
                "class_count":10,
                "order_no":"100173202"
            }
        ],
        "threeClassCount":10,
        "order_nos":[
            "100173202"
        ],
        "oneClassCount":1,
        "payThreeClassCount":10
    };
    var ooo={
      "serviceNo":"60201912170812472800",
      "isConfirm":"0",
      "channelCode":"gsbh5",
      "notes":"方案不通过了呀",
      "appInfo":{
          "id":17,
          "app_hosts":"gsbweb.qifu.gongsibao.com",
          "app_code":"gsbweb",
          "app_name":"公司宝官网web应用",
          "uapp_id":"22",
          "uapp_key":"201912141625",
          "uapp_secret":"8cbb846776874167b5c7e01cd0116c66",
          "contact_name":"宋毅",
          "contact_mobile":"15010929366",
          "contact_email":null,
          "is_enabled":1,
          "is_sign":0,
          "pay_type":"10",
          "delivery_type":"10",
          "created_at":"2020-03-11T22:13:48.000Z",
          "version":0,
          "token":"129806a0090746aba981eb8d9da5edec"
      },
      "product_id":46
    };
      // return this.channelreceiveSve.channelTmConfirm("4u31585290678404","gsbh5",co);
      // return this.channelreceiveSve.channelTmConfirm(ooo);
    }
}
module.exports=ChannelPushApi;