QB 系统配置模板

查询的时候,直接 在下面添加 一个字段就行!   


    public function getDeatil(){
        $post = $this->request->post();
        if(!isset($post['id'])){
            return out('请传递活动的id');
        }
        $builder = new Builder($this->getModel());
        $builder->setFilter(['id' => $post['id']]);
        $list =  $builder->selectQuery(function (BaseQuery $query) {
            //关联查询-开始
            $with = array_merge($with ?? [], ['template', 'user','type']);
            $query->with($with);
            $append = array_merge($append ?? [], ['place', 'place_text']);
            $query->append($append);//关联查询-结束
            $query->append(['donation','currentpower','goalpower','benefit_text'])->withAttr([
                'donation' => function ($v, $r) {
                    $tem = [];
                    $type = (new InfoModel())->where('id',$r['id'])->value('lx');
                    $data = (new RechargeModel())->with('user')->where('list_id',$type)->field('user_id,plan_id,num,pay_time')->select()->toArray();
                    foreach ($data as $k => $item){
                        if(isset($item['user'])){
                            $tem[$k]['user'] = $item['user']['user_name'];
                        }
                        if(isset($item['num'])){
                            $tem[$k]['num'] = $item['num'];
                        }
                        if(isset($item['plan_id'])){
                            $plan_model = new PlanModel();
                            $plan_name = $plan_model->where('id',$item['plan_id'])->column(['plan_name']);
                            $tem[$k]['plan_name'] = $plan_name;
                        }
                        $tem[$k]['pay_time'] = $item['pay_time'];
                    }
                    return $tem;
                },
                'currentpower' => function ($v, $r) {
                    $data = (new RechargeModel())->with(['user'])->where(['list_id' =>$r['id'] ,'status' =>1])->field('SUM(power) as total_num')->select()->toArray();
                    $currentpower = array_reduce($data, function ($carry,$item) {
                        return $item;
                    }, []);
                    if( $currentpower['total_num'] == null){
                        $currentpower['total_num'] = 0;
                    }
                    return $currentpower['total_num'];
                },
                'goalpower' => function ($v, $r) {
                    $type = (new InfoModel())->where('id',$r['id'])->value('power');
                    return $type;
                },
            ]);
        })->page();
        return $list;
    }

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值