ModelsManager->createBuilder() ->from(\Fund\Model\fundLog::class) ->andWhere('amount > 0')->columns([ 'SUM(amount) AS sumamount', 'COUNT(*) as count' ]); $Builder = $this->deal_where($Builder, $where); $info = $Builder->getQuery()->execute(); $add = $info->toArray(); $Builder = $this->ModelsManager->createBuilder() ->from(\Fund\Model\fundLog::class) ->andWhere('amount < 0')->columns([ 'SUM(amount) AS sumamount', 'COUNT(*) as count' ]); $Builder = $this->deal_where($Builder, $where); $info = $Builder->getQuery()->execute(); $reduce = $info->toArray(); return [ 'add' => $add[0], 'reduce' => $reduce[0] ]; } /** * 列表 * * @param $where * @param $page * @param $rows * @return \Dcore\ModelCore[]|FundLog[]|\Illuminate\Pagination\LengthAwarePaginator|\LaravelIdea\Helper\Dcore\_IH_ModelCore_C|\LaravelIdea\Helper\Fund\ModelLaravel\_IH_FundLog_C */ public function lists($where = [], $page = 1, $rows = 10) { $q = FundLog::query()->orderBy('id', 'desc'); $wAr = new Arr($where, $q); $wAr->queryNumber('user_id') ->queryExist('fund_id') ->queryExist('operate_type'); if ($where['type']) { if ($where['type'] == 3) { $q = $q->whereIn('remark', [ '游戏消耗', '游戏奖励' ]); } else { if ($where['type'] == '1') { $q = $q->where('amount', '<', 0); } else { $q = $q->where('amount', '>', 0); } } } return $q->paginate($rows, [ '*' ], '', $page); } /** * @param \Phalcon\Mvc\Model\Query\Builder $Builder * @param $where * @return \Phalcon\Mvc\Model\Query\Builder */ private function deal_where(\Phalcon\Mvc\Model\Query\Builder $Builder, $where): \Phalcon\Mvc\Model\Query\Builder { if (isset($where['user_id'])) { $Builder->andwhere('user_id =:user_id:', [ 'user_id' => $where['user_id'] ]); } if (isset($where['fund_id'])) { $Builder->andwhere('fund_id =:fund_id:', [ 'fund_id' => $where['fund_id'] ]); } if (isset($where['type'])) { $Builder->andwhere('operate_type =:operate_type:', [ 'operate_type' => $where['type'] ]); } return $Builder; } /** * 用户资金日志的回调 用户处理订单日志 * * @param $data */ private function call_log(\Fund\Model\fundLog &$value) { $ob_list = [ 'recharge' => Recharge::class, 'admin' => Admin::class, 'transfer' => Transfer::class, 'order' => Order::class, 'measure' => \logic\measure\Order::class, 'circulatio' => Circulation::class ]; $name_list = [ 'recharge' => '资金转账', 'admin' => '管理员操作', 'transfer' => 'transfer', 'order' => 'Order系统', 'measure' => '需求相关', 'circulatio' => '账户资金流转' ]; $fund_name_list = [ '1' => '余额账户', '2' => '需求资金托管', '3' => '待结算佣金', '4' => '系统佣金抽成', '5' => '提现冻结资金', '6' => '未设置' ]; $cName = $ob_list[$value->operate_type]; $value->fund_id_name = $fund_name_list[$value->fund_id]; $value->operate_info = $cName::logInfo($value->operate_id); $value->operate_type_name = $name_list[$value->operate_type]; return $value; } /** * 记录日志 */ /** * 创建日志 * @param int $user_id * @param $fund_id * @param int $amount * @param string $remark * @param $later_balance * @param $before_balance * @param $operate_id * @param $operate_type * @param FundLogModel $pre_log * @return bool */ public static function create_log(int $user_id, $fund_id, int $amount, string $remark, $later_balance, $before_balance, $operate_id, $operate_type, $pre_log): bool { $log = new FundLogModel(); $log->user_id = $user_id; $log->fund_id = $fund_id; $log->amount = $amount; $log->operate_id = $operate_id; $log->operate_type = $operate_type; $log->remark = $remark; $log->create_time = time(); $log->create_ip = request()->ip(); $log->later_balance = $later_balance; $log->before_balance = $before_balance; $log->date_key = date('Ym'); $log->hash = $log->generateHash(); if($pre_log){ $log->prev_hash = $pre_log->hash; }else{ $log->prev_hash = '-'; } return $log->save(); } }