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
    // };
      // return this.channelreceiveSve.pushEditChannelAssistTmData("4u31585290678404","dbsbzc",co);
    }
}
module.exports=ChannelPushApi;