var system = require("../../../system")
var settings = require("../../../../config/settings");
const CtlBase = require("../../ctlms.base");
const uuidv4 = require('uuid/v4');
var moment = require("moment");
var svgCaptcha = require('svg-captcha');

class DeliverCtl extends CtlBase {
  constructor() {
    super();
    this.deliverSve = system.getObject("service.common.deliverSve");
  }

  async all(pobj, pobj2, req) {
    try {
      return await this.deliverSve.all(pobj);
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }

  async channelDics(pobj, pobj2, req) {
    try {
      return await this.deliverSve.channelDics(pobj);
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }

  async page(pobj, pobj2, req) {
    try {
      let rs = await this.deliverSve.page(pobj);
      if (rs.data.rows) {
        for (let row of rs.data.rows) {
          row.edit = false;
          if (row.owner_channel_id && row.owner_channel_id == req.loginUser.channel_id) {
            row.edit = true;
          }
          if (!row.edit) {
            let user = row.user || {};
            row.ucname = "********";
            row.real_name = "********";
            row.user = {
              id: user.id,
              ucname: "********",
              name: "********"
            }
          }
        }
      }
      return rs;
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }

  async info(pobj, pobj2, req) {
    try {
      return await this.deliverSve.info(pobj);
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }

  async enabled(pobj, pobj2, req) {
    pobj.isEnabled = Number(pobj.isEnabled || 0);
    try {
      return await this.deliverSve.enabled(pobj);
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }

  async resetPassword(pobj, pobj2, req) {

    let params = {
      admin_id: this.trim(pobj.admin_id),
      password: this.trim(pobj.password),
    }
    if(!params.password) {
      return system.getResult(null, "请输入密码");
    }

    try {
      return await this.deliverSve.resetPassword(pobj);
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }

  async save(pobj, pobj2, req) {
    try {
      let id = this.trim(pobj.id);
      let name = this.trim(pobj.name);
      let real_name = this.trim(pobj.real_name);
      let ucname = this.trim(pobj.ucname);
      let password = this.trim(pobj.password);
      let isEnabled = pobj.isEnabled || 0;

      if (!name) {
        return system.getResult(null, "请输入交付商名称");
      }
      if (!real_name) {
        return system.getResult(null, "请输入管理员名称");
      }
      if(!ucname) {
        return system.getResult(null, "请填写用户名");
      }

      if(!(/^1\d{10}$/.test(ucname))) {
        return system.getResult(null, "帐号名必须为手机号");
      }

      if (!id) {
        if (!password) {
          return system.getResult(null, "请输入密码");
        }
      }
      let params = {
        id: id,
        name: name,
        real_name: real_name,
        ucname: ucname,
        password: password,
        isEnabled: isEnabled,
        saas_id: pobj.saas_id,
        owner_channel_id: pobj.channel_id,
      }
      return await this.deliverSve.save(params);
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }

  async del(pobj, pobj2, req) {
    try {
      return await this.deliverSve.del(pobj);
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }

  async provinceList(pobj, pobj2, req) {
    try {
      return system.getResultSuccess([
        {"id": 1100, "name":"北京市"},
        {"id": 1200, "name":"天津市"},
        {"id": 1300, "name":"河北省"},
        {"id": 1400, "name":"山西省"},
        {"id": 1500, "name":"内蒙古自治区"},
        {"id": 2100, "name":"辽宁省"},
        {"id": 2200, "name":"吉林省"},
        {"id": 2300, "name":"黑龙江省"},
        {"id": 3100, "name":"上海市"},
        {"id": 3200, "name":"江苏省"},
        {"id": 3300, "name":"浙江省"},
        {"id": 3400, "name":"安徽省"},
        {"id": 3500, "name":"福建省"},
        {"id": 3600, "name":"江西省"},
        {"id": 3700, "name":"山东省"},
        {"id": 4100, "name":"河南省"},
        {"id": 4200, "name":"湖北省"},
        {"id": 4300, "name":"湖南省"},
        {"id": 4400, "name":"广东省"},
        {"id": 4500, "name":"广西壮族自治区"},
        {"id": 5000, "name":"重庆市"},
        {"id": 5100, "name":"四川省"},
        {"id": 5200, "name":"贵州省"},
        {"id": 5300, "name":"云南省"},
        {"id": 5400, "name":"西藏自治区"},
        {"id": 6100, "name":"陕西省"},
        {"id": 6200, "name":"甘肃省"},
        {"id": 6300, "name":"青海省"},
        {"id": 6400, "name":"宁夏回族自治区"},
        {"id": 6500, "name":"新疆维吾尔自治区"},
        {"id": 7100, "name":"台湾省"},
        {"id": 8100, "name":"香港特别行政区"},
        {"id": 8200, "name":"澳门特别行政区"},
      ]);
    } catch (e) {
      console.log(e);
      return system.getResultFail(500, "接口错误");
    }
  }
}

module.exports = DeliverCtl;