statistic.js 1.68 KB
'use strict';

const Service = require('egg').Service;

class StatisticService extends Service {
  async count() {
    const result = await this.app.mysql.query(`
      select sum(sale_contract_count) sale_contract_count, sum(purchase_contract_count) purchase_contract_count, sum(customer_count) customer_count, sum(supplier_count) supplier_count from (
        select count(*) as sale_contract_count, 0 as purchase_contract_count, 0 as customer_count, 0 as supplier_count from contract where type = 0
        union all
        select 0 as sale_contract_count, count(*) as purchase_contract_count, 0 as customer_count, 0 as supplier_count from contract where type = 1
        union all
        select 0 as sale_contract_count, 0 as purchase_contract_count, count(*) as customer_count, 0 as supplier_count from customer where type = 0
        union all
        select 0 as sale_contract_count, 0 as purchase_contract_count, 0 as customer_count, count(*) as supplier_count from customer where type = 1
      ) t;
    `);
    return result && result.length > 0 ? result[0] : {};
  }
  async projectAnalysis() {
    const result = await this.app.mysql.query(`
      select
        project.number,
        project.name,
        s_contract.value as s_value,
        s_contract.other_expenses as s_other_expenses,
        s_contract.invoice as s_invoice,
        p_contract.value as p_value,
        p_contract.other_expenses as p_other_expenses,
        p_contract.invoice as p_invoice
      from project, contract as s_contract, contract as p_contract
      where project.sale_contract_id = s_contract.id and project.purchase_contract_id = p_contract.id
    `);
    return result;
  }
}

module.exports = StatisticService;