tablename = $tablename; } else { $this->tablename = uncamelize(basename(__CLASS__)); } } /** * @override */ public function list($where='') { $res = parent::list($where); // var_dump($res); // exit; return $res; } /** * total_profit */ public function totalProfit($name, $month) { $sql = "select sum(amount*(price-base_price)-agency-shipping-project) as total_profit from commission where seller='$name' and month='$month' and type=0"; $res = $this->query($sql)->fetchArray(SQLITE3_ASSOC); return $res['total_profit']; } /** * 特批 特批1和特批2 汇总 */ public function tepi($name, $month) { $sql_tepi1 = "select sum((amount*price-agency-shipping)*(CASE WHEN (price/base_price)<1.05 THEN 0.01 WHEN (price/base_price)<1.1 THEN 0.015 ELSE 0.02 END)) as tp1 from commission where seller='$name' and month='$month' and type=1"; // echo $sql_tepi1 . '
'; $res_tepi1 = $this->query($sql_tepi1)->fetchArray(SQLITE3_ASSOC); // var_dump($res_tepi1); // slqite3 整数乘 1.0 可强制使用浮点除法 php 调用是 报无 floor 函数 // stackoverflow 找到的解决办法 (CEIL and FLOOR in SQLite) // cast ( x as int ) - ( x < cast ( x as int )) // 针对这个没负数情况简化为 cast ( x as int ) // eg:select sum( (amount*price-agency-shipping) * ((cast( (((price/base_price - 1)/0.1)*0.01+0.01)* 100 as int))*1.0/100) ) as tp2 from commission where seller='刘莹' and type=2; $sql_tepi2 = "select sum( (amount*price-agency-shipping) * ((cast( (((price/base_price - 1)/0.1)*0.01+0.01)* 100 as int))*1.0/100) ) as tp2 from commission where seller='$name' and month='$month' and type=2;"; // echo $sql_tepi2 . "
"; $res_tepi2 = $this->query($sql_tepi2)->fetchArray(SQLITE3_ASSOC); // var_dump($res_tepi2); // // exit; return $res_tepi1['tp1'] + $res_tepi2['tp2']; } }