alias('sio')->where(['sio.store_id' => get_store_id(), 'sio.is_delete' => 0])->leftJoin(['g' => Goods::tableName()],'g.id=sio.goods_id') ->leftJoin(['sig' => SaasIntegralGoods::tableName()],'sig.goods_id=sio.goods_id'); if (!empty($key)) { $query->andWhere([ 'or', ['like', 'g.name', $key], ['like', 'sig.name', $key], ['like', 'sio.name', $key], ['like', 'sio.order_no', $key], ]); } if ($status >= 0) { $query->andWhere(['sio.is_clerk' => $status]); } $query->select('sio.*, g.cover_pic, g.name AS origin_name, sig.attr AS integral_goods_attr, sig.cat_id AS integral_cat_id')->orderBy(['sio.is_clerk' => SORT_ASC, 'sio.created_at' => SORT_DESC]); $list = pagination_make($query); foreach ($list['list'] as &$val) { $user = User::findOne($val['user_id']); $val['user_name'] = $user->nickname; $val['binding'] = $user->binding; $val['cat_name'] = SaasIntegralCat::findOne($val['integral_cat_id'])->name; $val['created_at'] = date('Y-m-d H:i:s', $val['created_at']); $attr = json_decode($val['integral_goods_attr'], true); $count = count($attr); $str = ''; foreach ($attr as $key => &$value) { $attr_group = GoodsForm::getAttrGroupByAttId($value['attr_id']); $t = $value['attr_name']; unset($value['attr_name']); $value['attr_group_name'] = $attr_group ? $attr_group->attr_group_name : null; $value['attr_name'] = $t; $str .= $value['attr_group_name'] . ':' . $t; if ($key < $count - 1) { $str .= ','; } } $val['attr_str'] = $str; } return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'data' => $list['list'], 'pageNo' => $list['pageNo'], 'totalCount' => $list['totalCount'], ], ]; } }