var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const AppletBase = require("../applet.base");
const fs = require("fs");
const moment = require("moment");

class MerchantApplet extends AppletBase {
    constructor() {
        super();
        this.uploadCtl=system.getObject("web.common.uploadCtl");
        this.idcardClient = system.getObject("util.idcardClient");
        this.merchantappletuserSve = system.getObject("service.uc.merchantappletuserSve");
        this.merchantId = 1;
    }

    async test(o, obj, req) {
        return {code: 0, data: 1};
    }

    async uploadConfig(gobj, pobj, req, loginUser){
        try {
            // if(!loginUser){
            //     return {code: 0};
            // }
            // var openid = loginUser.openId;
            var data = await this.uploadCtl.getOssConfig();
            return this.returnSuccess(data);
        } catch (error) {
            console.log(error);
            return {code: 500};
        }
    }


    // 登录接口 post
    async login(o, obj, req) {
        try {
            let merchant_id = req.merchant_id;
            let nickName = obj.nickName;
            let avatarUrl = obj.avatarUrl;

            let merchant = await this.getMerchant(merchant_id);

            let user;
            let wxSession = await this.code2Session(obj, req);
            if (!wxSession.openid) {
                return this.returnFail("登录信息解析错误，请重试");
            }
            let params = {
                saas_merchant_id: merchant_id,
                saas_id: merchant.saas_id,
                openid: wxSession.openid,
                nickName: nickName,
                avatarUrl: avatarUrl,
            };
            let res = await this.merchantappletuserSve.login(params);
            if(res.status === 0) {
                return this.returnSuccess(res.data);
            } else {
                return this.returnFail(res.msg, res.data);
            }
        } catch (e) {
            console.log(e.stack);
        }
    }

    async loginUser(gobj, pobj, req, loginUser) {
        let user = await this.getLoginUser(pobj.merchant_id, pobj.openid);
        return this.returnSuccess(user);
    }
    //
    // async commonInfo(gobj, pobj, req, loginUser) {
    //     var user = await this.bmuserSve.findById(loginUser.id);
    //     return {
    //         code : 1,
    //         data: {
    //             telphone: "15235755003",
    //             telphones: ["15235755003","15210210265"],
    //         }
    //     };
    // }
    //
    //
    // // 保存订单信息
    // async saveOrder(gobj, pobj, req, loginUser) {
    //     try {
    //         var rs = await this.buildOrder(pobj, loginUser);
    //         if(rs.code === 0) {
    //             return rs;
    //         }
    //
    //         var info = await this.bmorderSve.saveOrderBiz(rs.data);
    //         var result = {code : 1};
    //         return result;
    //     } catch (e) {
    //         console.log(e.stack);
    //         //日志记录
    //         logCtl.error({
    //             optitle: "查询商户信息错误, params [id = " + pobj.id + " ]",
    //             op: "wxapplet/impl/xggApplet/merchantInfo",
    //             content: e.stack,
    //             clientIp: req.clientIp
    //         });
    //         if(e.name == 'SequelizeUniqueConstraintError') {
    //             return {code: 2, msg:"您的信息已经提交成功，请到我的订单中查看"};
    //         }
    //         return {
    //             code: -200,
    //             msg: "error",
    //             data: {},
    //             stack : e.stack
    //         };
    //     }
    // }
    //
    // async buildOrder(obj, loginUser) {
    //     var rs = {code: 0};
    //     if(!loginUser) {
    //         rs.msg = "登录超时，请重新登录";
    //         return rs;
    //     }
    //
    //     if(!obj.idcard_front) {
    //         rs.msg = "请上传身份证正面图";
    //         return rs;
    //     }
    //     if(!obj.idcard_back) {
    //         rs.msg = "请上传身份证反面图";
    //         return rs;
    //     }
    //     if(!obj.idcard) {
    //         rs.msg = "请填写身份证号码";
    //         return rs;
    //     }
    //     if(!await this.idcardClient.checkIDCard(obj.idcard)) {
    //
    //     }
    //     if(!obj.legal_name) {
    //         rs.msg = "请填写法人姓名";
    //         return rs;
    //     }
    //     if(!obj.legal_mobile) {
    //         rs.msg = "请填写手机号码";
    //         return rs;
    //     }
    //
    //     if(!obj.companyNames) {
    //         rs.msg = "请填写公司名称";
    //         return rs;
    //     }
    //
    //     if(!obj.bank_front) {
    //         rs.msg = "请上传银行卡正面图";
    //         return rs;
    //     }
    //     if(!obj.bank_back) {
    //         rs.msg = "请上传银行卡反面图";
    //         return rs;
    //     }
    //
    //     if(!obj.bankMobile) {
    //         rs.msg = "请填写银行预留手机号";
    //         return rs;
    //     }
    //
    //     var orderNo = loginUser.id + "" + moment().format("YYYYMMDDHHmmss");
    //     var order = {
    //         merchantId : obj.merchantId || this.merchantId,
    //         companyId : obj.companyId,
    //         orderNo : orderNo,
    //         userId : loginUser.id,
    //         ownerId: 0,
    //         status: 0,
    //         auditStatus:0
    //     };
    //
    //     var userbiz = {
    //         merchantId : obj.merchantId || this.merchantId,
    //         companyId : obj.companyId,
    //         orderNo: orderNo,
    //         user_id: loginUser.id,
    //         idcard_front: obj.idcard_front,
    //         idcard_back: obj.idcard_back,
    //         idcard: obj.idcard,
    //         legal_name: obj.legal_name,
    //         legal_mobile: obj.legal_mobile,
    //         person_img: obj.person_img || "",
    //         companyNames: obj.companyNames,
    //         bank_front: obj.bank_front,
    //         bank_back: obj.bank_back,
    //         bank: obj.bank,
    //         bankno: obj.bankno,
    //         bankMobile: obj.bankMobile || "",
    //     };
    //
    //     rs.code = 1;
    //     rs.data = {
    //         order : order,
    //         userbiz: userbiz,
    //     };
    //     return rs;
    // }
    //
    //
    // async myOrders(gobj, pobj, req, loginUser) {
    //     if(!loginUser) {
    //         return {code: 1, data:{count:0, rows:[]}};
    //     }
    //     try {
    //         var params = {
    //             pageSize: pobj.pageSize || 10,
    //             currentPage: pobj.currentPage || 1,
    //             userId: loginUser.id,
    //         }
    //
    //         var page = await this.bmorderSve.pageByCondition(params);
    //         var result = {code : 1, data: page};
    //         return result;
    //     } catch (e) {
    //         console.log(e.stack);
    //         //日志记录
    //         logCtl.error({
    //             optitle: "绑定手机, params [" + JSON.stringify(params) + " ]",
    //             op: "wxapplet/impl/xggApplet/myReqList",
    //             content: e.stack,
    //             clientIp: req.clientIp
    //         });
    //         return {
    //             code: -200,
    //             msg: "error",
    //             data: {},
    //             stack : e.stack
    //         };
    //     }
    //
    //     console.log(decryptData);
    // }
    //
    //
    // /**
    //  * 查询订单明细
    //  * @param {*} gobj
    //  * @param {*} pobj
    //  * @param {*} req
    //  * @param {*} loginUser
    //  */
    // async queryOrderInfo(gobj, pobj, req, loginUser){
    //     if(!loginUser){
    //         return system.getResult(null, `请先登陆`);
    //     }
    //     try {
    //         return await this.bmorderSve.queryOrderInfo(pobj);
    //     } catch (error) {
    //         console.log(error);
    //         return system.getResult(null,error);
    //     }
    // }
    //
    // async idcardValid(gobj, pobj, req, loginUser){
    //     try {
    //         var idcard = (pobj.idcard || "").trim();
    //         if(!idcard) {
    //             return {code: 0, msg: "请填写身份证号码"};
    //         }
    //
    //         var isIdcard = await this.idcardClient.checkIDCard(idcard);
    //         if(isIdcard) {
    //             return {code: 1};
    //         }
    //         return {code: 0, msg: "身份证号码错误"};
    //     } catch (error) {
    //         console.log(error);
    //         return {code: 500, msg: "服务忙，请稍后重试"};
    //     }
    // }
    //
}
module.exports = MerchantApplet;