| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | <?php/** * IncomeAdminLogic.php  UTF-8 * 后台获取收益列表 * * @date    : 2018/9/19 14:09 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : chenbingling <cbl@huosdk.com> * @version : HuoMp 1.0 */namespace huomp\logic\finance;use cmf\controller\AdminBaseController;use huo\controller\common\CommonFunc;use huo\model\integral\MemItgLogModel;use huo\model\member\MemberModel;use huolib\constant\CommonConst;use huolib\constant\MemItgConst;use huolib\tool\StrUtils;class IncomeAdminLogic extends AdminBaseController {    /**     * @param array $param     *     * @return array|mixed     */    protected function getWhere($param = []) {        $_map = [];        if (!empty($param['mem_id'])) {            $_map['mem_id'] = $param['mem_id'];        }        $_mem_map = [];        if (!empty($param['nickname'])) {            $_mem_map['nickname'] = $param['nickname'];        }        if (!empty($param['mem_username'])) {            $_mem_map['username'] = $param['mem_username'];        }        if (!empty($param['mem_mobile'])) {            $_mem_map['mobile'] = $param['mem_mobile'];        }        if (!empty($param['mem_real_name'])) {            $_mem_map['real_name'] = $param['mem_real_name'];        }        if (!empty($_mem_map) && empty($_map['mem_id'])) {            $_mem_ids = (new MemberModel())->where($_mem_map)->column('id');            if (!empty($_mem_ids)) {                $_map['mem_id'] = ['in', $_mem_ids];            }        }        if (!empty($param['start_time']) && !empty($param['start_time'])) {            $_map['create_time'] = ['between', [strtotime($param['start_time']),                                                CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])]];        } else if (!empty($param['start_time'])) {            $_map['create_time'] = ['gt', strtotime($param['start_time'])];        } else if (!empty($param['end_time'])) {            $_map['create_time'] = ['lt', CommonConst::CONST_DAY_SECONDS + strtotime($param['end_time'])];        }        return $_map;    }    /**     * 收益列表     *     * @param array  $where     * @param string $page     * @param string $order     *     * @return array     */    public function incomeList($where = [], $page = '1,10', $order = '-create_time') {        $_map = $this->getWhere($where);        $_field = [];        return $this->getList($_field, $_map, $page, $order);    }    /**     * @param        $field     * @param        $where     * @param string $page     * @param string $order     *     * @return array     */    public function getList($field, $where, $page = '1,10', $order = '-create_time') {        $_gold_rmb_rate = CommonFunc::getGoldRmbRate();        $_map = $where;        $_map['itg_type'] = MemItgConst::MEM_ITG_ADD;        $_map['is_delete'] = CommonConst::CONST_NOT_DELETE;        $_model = new MemItgLogModel();        $_count = $_model->where($_map)->count();        if (empty($_count)) {            return [                'count' => 0,                'sum'   => 0,                'list'  => []            ];        }        $_order = $_model->orderFilter($order);        $_datas = $_model->with('member')                         ->with('submem')                         ->where($_map)                         ->order($_order)                         ->page($page)                         ->select();        if (is_object($_datas)) {            $_datas = $_datas->toArray();        }        if (empty($_datas)) {            return [                'count' => $_count,                'sum'   => 0,                'list'  => []            ];        }        $_sum = $_model->where($_map)->sum('integral');        $_data = [];        foreach ($_datas as $_v) {            $_nickname = !empty($_v['member']['nickname']) ? $_v['member']['nickname'] : '';            $_avatar = !empty($_v['member']['avatar']) ? $_v['member']['avatar'] : '';            $_mobile = !empty($_v['member']['mobile']) ? $_v['member']['mobile'] : '';            $_username = !empty($_v['member']['username']) ? $_v['member']['username'] : '';            $_real_name = !empty($_v['member']['real_name']) ? $_v['member']['real_name'] : '';            $_sub_nickname = '';            $_sub_avatar = '';            if ('member' == $_v['link_table']) {                $_sub_nickname = !empty($_v['submem']) ? $_v['submem']['nickname'] : $_nickname;                $_sub_avatar = !empty($_v['submem']) ? $_v['submem']['avatar'] : $_avatar;            }            $_data[] = [                'id'            => $_v['id'],                'mem_id'        => $_v['mem_id'],                'mem_username'  => $_username,                'mem_real_name' => $_real_name,                'mem_mobile'    => $_mobile,                'title'         => $_nickname,                'icon'          => $_avatar,                'sub_title'     => $_sub_nickname,                'sub_icon'      => $_sub_avatar,                'desc'          => $_v['ia_name'],                'amount'        => StrUtils::formatNumber($_v['integral'] / $_gold_rmb_rate),                'create_time'   => $_v['create_time'],            ];        }        return [            'count' => $_count,            'sum'   => StrUtils::formatNumber($_sum / $_gold_rmb_rate),            'list'  => $_data        ];    }}
 |