const system = require("../../../system");
const Dao = require("../../dao.base");
class MerchantaccountDao extends Dao {
  constructor() {
    super(Dao.getModelName(MerchantaccountDao));
  }

  // 冻结金额
  // async frozenAmt(id, amt, t) {
  //   var sql = [];
  //   // UPDATE m_merchant_account SET banlance = banlance - :amt, frozen_amt = frozen_amt + :amt WHERE id = 1 AND banlance - :amt >= 0
  //   sql.push("UPDATE");
  //   sql.push("m_merchant_account");
  //   sql.push("SET");
  //   sql.push("banlance = banlance - :amt, frozen_amt = frozen_amt + :amt");
  //   sql.push("WHERE id = :id");
  //   sql.push("AND banlance - :amt >= 0");
  //   return await this.customUpdate(sql.join(" "), {
  //     id: id,
  //     amt: amt,
  //   }, t);
  // }

  // 撤回冻结
  // async unFrozenAmt(id, amt, t) {
  //   var sql = [];
  //   // UPDATE m_merchant_account SET banlance = banlance - :amt, frozen_amt = frozen_amt + :amt WHERE id = 1 AND banlance - :amt >= 0
  //   sql.push("UPDATE");
  //   sql.push("m_merchant_account");
  //   sql.push("SET");
  //   sql.push("banlance = banlance + :amt, frozen_amt = frozen_amt - :amt");
  //   sql.push("WHERE id = :id");
  //   sql.push("AND frozen_amt - :amt >= 0");
  //   return await this.customUpdate(sql.join(" "), {
  //     id: id,
  //     amt: amt,
  //   }, t);
  // }

  // 解冻扣款
  // async cutpayment(id, amt, t) {
  //   var sql = [];
  //   sql.push("UPDATE");
  //   sql.push("m_merchant_account");
  //   sql.push("SET");
  //   sql.push("frozen_amt = frozen_amt - :amt");
  //   sql.push("WHERE id = :id");
  //   sql.push("AND frozen_amt - :amt >= 0");
  //   return await this.customUpdate(sql.join(" "), {
  //     id: id,
  //     amt: amt,
  //   }, t);
  // }

  async inrBanlance(merchantId, amt, t) {
    var sql = [];
    sql.push("UPDATE");
    sql.push("m_merchant_account");
    sql.push("SET");
    sql.push("banlance = banlance + :amt");
    sql.push("WHERE merchant_id = :merchantId AND banlance + :amt > 0");
    return await this.customUpdate(sql.join(" "), {
      merchantId: merchantId,
      amt: amt,
    }, t);
  }

  async getByMerchantId(merchantId, channelId, attrs) {
    if (!merchantId) {
      return null;
    }
    var params = {
      merchantId: merchantId,
      channelId: channelId || 1,
    }

    attrs = attrs || "*";
    var sql = "SELECT " + attrs + " FROM " + this.model.tableName + " where merchant_id = :merchantId AND channel_id = :channelId LIMIT 1";
    var list = await this.customQuery(sql, params);
    return list && list.length > 0 ? list[0] : null;
  }
}
module.exports = MerchantaccountDao;
// var u=new UserDao();
// var roledao=system.getObject("db.roleDao");
// (async ()=>{
//   var users=await u.model.findAll({where:{app_id:1}});
//   var role=await roledao.model.findOne({where:{code:"guest"}});
//   console.log(role);
//   for(var i=0;i<users.length;i++){
//     await users[i].setRoles([role]);
//     console.log(i);
//   }
//
// })();