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 xgg_merchant_account SET available_amt = available_amt - :amt, frozen_amt = frozen_amt + :amt WHERE id = 1 AND available_amt - :amt >= 0
    sql.push("UPDATE");
    sql.push("xgg_merchant_account");
    sql.push("SET");
    sql.push("available_amt = available_amt - :amt, frozen_amt = frozen_amt + :amt");
    sql.push("WHERE id = :id");
    sql.push("AND available_amt - :amt >= 0");
    return await this.customUpdate(sql.join(" "), {
      id: id,
      amt: amt,
    }, t);
  }

  // 撤回冻结
  async unFrozenAmt(id, amt, t) {
    var sql = [];
    // UPDATE xgg_merchant_account SET available_amt = available_amt - :amt, frozen_amt = frozen_amt + :amt WHERE id = 1 AND available_amt - :amt >= 0
    sql.push("UPDATE");
    sql.push("xgg_merchant_account");
    sql.push("SET");
    sql.push("available_amt = available_amt + :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("xgg_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 inrAvailableAmt(merchantId, amt, t) {
    var sql = [];
    sql.push("UPDATE");
    sql.push("xgg_merchant_account");
    sql.push("SET");
    sql.push("available_amt = available_amt + :amt");
    sql.push("WHERE merchant_id = :merchantId");
    return await this.customUpdate(sql.join(" "), {
      merchantId: merchantId,
      amt: amt,
    }, t);
  }
}
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);
    //   }
    //
    // })();
