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
- ];
- }
- }
|