setQueryFilter($param); return $model->alias('r') ->field('sum(r.refund_amount) as refund_amount_total,sum(r.refund_num) as refund_num_total,r.goods_id,g.goods_price_min,g.goods_name,g.goods_no') ->leftJoin('goods g', 'g.goods_id=r.goods_id') ->group('r.goods_id') ->order('r.goods_id desc') ->paginate(15); } /** * 检索查询条件 * @param array $param * @return \think\db\BaseQuery */ private function setQueryFilter(array $param) { // 实例化查询对象 $query = $this->getNewQuery(); // 查询参数 $params = $this->setQueryDefaultValue($param, []); // 起止时间 if (!empty($params['betweenTime'])) { $times = between_time($params['betweenTime']); } else { $weekday = date('w')-1; $times['start_time'] = strtotime(date('Y-m-d',strtotime("-{$weekday} day"))) ;//当前星期的星期一 $times['end_time'] = time(); } $filter[] = ["r.start_time", '>=', $times['start_time']]; $filter[] = ["r.end_time", '<=', $times['end_time']]; $query->where($filter); return $query; } /** * 导出记录 */ public function export(array $param) { $data['header'] = ['商品ID', '商品编码', '退款商品名称', '商品单价(元)','退款件数', '退款金额(元)']; $data['filename'] = '退款商品统计导出'; $data['data'] = []; $model = $this->setQueryFilter($param); $list = $model->alias('r') ->field('sum(r.refund_amount) as refund_amount_total,sum(r.refund_num) as refund_num_total,r.goods_id,g.goods_price_min,g.goods_name,g.goods_no') ->leftJoin('goods g', 'g.goods_id=r.goods_id') ->group('r.goods_id') ->order('r.goods_id desc') ->select(); foreach ($list as $arr){ $new_list['goods_id'] = $arr['goods_id']; $new_list['goods_no'] = $arr['goods_no']; $new_list['goods_name'] = $arr['goods_name']; $new_list['goods_price_min'] = $arr['goods_price_min']; $new_list['refund_num_total'] = $arr['refund_num_total']; $new_list['refund_amount_total'] = $arr['refund_amount_total']; $data['data'][] = $new_list; } return $data; } }