<?php /** * OrderLogic.php UTF-8 * 订单逻辑 * * @date : 2018/1/19 22:43 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author : wuyonghong <wyh@huosdk.com> * @version : HUOSDK 8.0 */ namespace huo\logic\order; use huo\model\common\CommonModel; use huo\model\game\GameModel; use huo\model\member\MemberModel; use huo\model\member\MemGameModel; use huo\model\order\PayAppleModel; use huolib\constant\CommonConst; class AppleOrderLogic extends CommonModel { /** * @param array $param * * @return array */ public function getListWhere($param) { $_map = []; 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'])]; } if (!empty($param['trans_id'])) { $_map['trans_id'] = $param['trans_id']; } if (!empty($param['username'])) { $_id = (new MemberModel())->getIdByUsername($param['username']); $_map['mem_id'] = $_id; } if (!empty($param['mem_id'])) { $_map['mem_id'] = $param['mem_id']; } if (!empty($param['order_id'])) { $_map['order_id'] = $param['order_id']; } if (!empty($param['app_id'])) { $_apple_id = (new GameModel())->getAppleIdById($param['app_id']); $_map['apple_id'] = $_apple_id; } if (!empty($param['status'])) { $_map['status'] = $param['status']; } /*小号昵称搜索*/ if (!empty($param['nickname'])) { $_mg_mem_ids = (new MemGameModel())->getIdsByNickname($param['nickname']); $_map['mg_mem_id'] = ['in', $_mg_mem_ids]; } return $_map; } /** * @param $param * @param string $page * @param string $order * * @return array */ public function getOrderList($param, $page = '1,10', $order = '-create_time') { $_map = $this->getListWhere($param); $_field = [ 'id' => 'id', 'order_id' => 'order_id', 'mem_id' => 'mem_id', 'trans_id' => 'trans_id', 'currency' => 'currency', 'status' => 'status', 'pay_time' => 'pay_time', 'create_time' => 'create_time', 'check_cnt' => 'check_cnt', 'last_check_time' => 'last_check_time', ]; return $this->getList($_field, $_map, $page, $order); } /** * 获取订单列表 * * @param array $field * @param $where * @param string $page * @param string $order * * @return array */ public function getList($field = [], $where, $page = '1,10', $order = '-create_time') { $_map = $where; $_model = new PayAppleModel(); $_count = $_model->where($_map)->count(); if (empty($_count)) { return [ 'count' => 0, 'list' => [] ]; } $_field = $field; if (empty($field)) { $_field = []; } $_order = $_model->orderFilter($order); $_datas = $_model ->with('mem,pay') ->where($_map) ->field($_field) ->order($_order) ->page($page) ->select(); if (is_object($_datas)) { $_datas = $_datas->toArray(); } if (empty($_datas)) { return [ 'count' => $_count, 'list' => [] ]; } $_list = $_datas; $_mem_game_model = new MemGameModel(); $_game_model = new GameModel(); foreach ($_datas as $_k => $_v) { $_list[$_k]['app_id'] = !empty($_v['pay']) ? $_v['pay']['app_id'] : 0; $_list[$_k]['mg_mem_id'] = !empty($_v['pay']) ? $_v['pay']['mg_mem_id'] : 0; $_list[$_k]['username'] = !empty($_v['mem']) ? $_v['mem']['username'] : ''; $_list[$_k]['nickname'] = $_mem_game_model->getNicknameById($_list[$_k]['mg_mem_id']); $_list[$_k]['game_name'] = $_game_model->getNameById($_list[$_k]['app_id']); unset($_v['mem']); unset($_v['pay']); } return [ 'count' => $_count, 'list' => $_list ]; } }