| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace biz\stat\classes;
- use biz\base\classes\BaseClass;
- use biz\stat\models\StatCg;
- use common\components\util;
- class StatCgClass extends BaseClass
- {
- public static $baseFile = '\biz\stat\models\StatCg';
- //获取总和 ssh 20210829
- public static function getSum($where)
- {
- $amount = self::sum($where, 'amount');
- return empty($amount) ? 0 : $amount;
- }
- //采购统计 ssh 20210828
- public static function replace($main, $shop, $amount, $num = 0, $add = true)
- {
- $mainId = $shop->mainId ?? 0;
- $sjId = $shop->sjId ?? 0;
- $time = date('Ymd');
- $stat = self::getByCondition(['mainId' => $mainId, 'sjId' => $sjId, 'time' => $time], true);
- if (empty($stat)) {
- $stat = self::add(['mainId' => $mainId, 'sjId' => $sjId, 'time' => $time, 'num' => 0], true);
- }
- $id = $stat->id;
- $unique = self::getLockById($id);
- if (empty($unique)) {
- util::fail('没有记录');
- }
- if ($add) {
- $currentAmount = bcadd($unique->amount, $amount, 2);
- $unique->amount = $currentAmount;
- } else {
- $currentAmount = bcsub($unique->refundAmount, $amount, 2);
- $unique->refundAmount = $currentAmount;
- }
- $unique->totalAmount = $main->totalPurchase;
- $unique->num += $num;
- $unique->save();
- //当月
- StatCgMonthClass::replace($main, $shop, $amount, $num, $add);
- }
- //今日采购
- public static function getTodayCg($shop)
- {
- $start = date('Ymd');
- $end = date("Ymd");
- $shopId = $shop->id;
- $sjId = $shop->sjId;
- return self::getByTime($sjId, $shopId, $start, $end);
- }
- //昨日采购
- public static function getYesterdayCg($shop)
- {
- $start = date('Ymd', strtotime("-1 days"));
- $end = date('Ymd', strtotime("-1 days"));
- $shopId = $shop->id;
- $sjId = $shop->sjId;
- return self::getByTime($sjId, $shopId, $start, $end);
- }
- //7日采购
- public static function getSevenCg($shop)
- {
- $end = date('Ymd');
- $start = date('Ymd', strtotime("-6 days"));
- $shopId = $shop->id;
- $sjId = $shop->sjId;
- return self::getByTime($sjId, $shopId, $start, $end);
- }
- //30日采购
- public static function getThirtyCg($shop)
- {
- $end = date('Ymd');
- $start = date('Ymd', strtotime("-29 days"));
- $shopId = $shop->id;
- $sjId = $shop->sjId;
- return self::getByTime($sjId, $shopId, $start, $end);
- }
- public static function getByTime($sjId, $shopId, $start, $end)
- {
- $where = [];
- $where['sjId'] = $sjId;
- $where['shopId'] = $shopId;
- $where['time'] = ['between', [$start, $end]];
- $res = self::getAllByCondition($where, null, "num,amount");
- $num = 0;
- $amount = 0;
- if ($res) {
- foreach ($res as $v) {
- $num += $v['num'];
- $amount = bcadd($v['amount'], $amount, 2);
- }
- }
- return ['num' => $num, 'amount' => $amount];
- }
- }
|