123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- <?php
- /**
- * AccountOrderLogic.php UTF-8
- *
- *
- * @date : 2018/6/13 17:43
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : luowei <lw@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huoAccountDeal\logic;
- use huo\controller\member\Member;
- use huo\model\common\CommonModel;
- use huoAccountDeal\model\AccountGoodsModel;
- use huoAccountDeal\model\AccountOrderModel;
- use huolib\constant\AccountConst;
- use huolib\constant\OrderConst;
- class AccountOrderLogic extends CommonModel {
- /**
- * @param $param
- *
- * @return array|mixed
- */
- public function getWhere($param = []) {
- $_map = [];
- if (!empty($param['status'])) {
- $_map['status'] = $param['status'];
- }
- if (!empty($param['buy_mem_id'])) {
- $_map['buy_mem_id'] = $param['buy_mem_id'];
- }
- if (!empty($param['order_id'])) {
- $_map['order_id'] = $param['order_id'];
- }
- if (!empty($param['title'])) {
- $_ags_ids = (new AccountGoodsModel())->getIdsByTitle($param['title']);
- $_map['ags_id'] = ['in', $_ags_ids];
- }
- if (!empty($param['sell_mem'])) {
- $_member_id = (new Member())->getIdByName($param['sell_mem']);
- $_map['sell_mem_id'] = $_member_id;
- }
- if (!empty($param['buy_mem'])) {
- $_member_id = (new Member())->getIdByName($param['buy_mem']);
- $_map['buy_mem_id'] = $_member_id;
- }
- return $_map;
- }
- public function getOrderList($where = [], $page = '1,10', $order = '-create_time') {
- $_map = $this->getWhere($where);
- $_field = [
- 'order_id' => 'order_id',
- 'ags_id' => 'ags_id',
- 'app_id' => 'app_id',
- 'price' => 'price',
- 'real_price' => 'real_price',
- 'payway' => 'payway',
- 'status' => 'status',
- 'pay_time' => 'pay_time',
- ];
- $_model = new AccountOrderModel();
- $_count = $_model->where($where)->count();
- if (empty($_count)) {
- return [
- 'count' => $_count,
- 'list' => [],
- ];
- }
- $_order = $this->orderFilter($order);
- $_datas = $_model->with('mg,game,goods')->field($_field)->where($_map)->order($_order)->page($page)->select();
- if (is_object($_datas)) {
- $_datas = $_datas->toArray();
- }
- foreach ($_datas as $key => $data) {
- $data['account_id'] = isset($data['ags_id']) ? $data['ags_id'] : '';
- $data['nickname'] = isset($data['mg']) ? $data['mg']['nickname'] : '';
- $data['gamename'] = isset($data['game']) ? $data['game']['name'] : '';
- $data['game_icon'] = isset($data['game']) ? $data['game']['icon'] : '';
- $data['server_id'] = isset($data['goods']) ? $data['goods']['server_id'] : '';
- $data['server_name'] = isset($data['goods']) ? $data['goods']['server_name'] : '';
- $data['role_id'] = isset($data['goods']) ? $data['goods']['role_id'] : '';
- $data['role_name'] = isset($data['goods']) ? $data['goods']['role_name'] : '';
- //移除关联数组
- unset($data['mg'], $data['game'], $data['account']);
- $_datas[$key] = $data;
- }
- return [
- 'count' => $_count,
- 'list' => $_datas
- ];
- }
- /**
- * 取消购买
- *
- * @param $order_id
- * @param $ags_id
- *
- * @return bool
- */
- public function cancel($order_id, $ags_id) {
- //订单变为失败状态
- AccountOrderModel::update(['status' => OrderConst::CP_STATUS_FAIL], ['order_id' => $order_id]);
- //重新上架小号商品
- AccountGoodsModel::update(
- ['status' => AccountConst::STATUS_PULL_ON_SHELVES, 'lock_time' => 0], ['id' => $ags_id]
- );
- return true;
- }
- public function adminOrderList($map, $page = '1,10', $order = '-create_time') {
- $_map = $this->getWhere($map);
- $_field = [];
- $_model = new AccountOrderModel();
- $_count = $_model->where($_map)->count();
- if (empty($_count)) {
- return [
- 'count' => $_count,
- 'list' => [],
- ];
- }
- $_order = $this->orderFilter($order);
- $_datas = $_model->with('mg,game,goods,seller,buyer')->field($_field)->where($_map)->order($_order)->page($page)
- ->select();
- if (is_object($_datas)) {
- $_datas = $_datas->toArray();
- }
- return [
- 'count' => $_count,
- 'list' => $_datas
- ];
- }
- /**
- * 根据玩家名获取玩家游戏账号ID
- *
- * @param $username
- *
- * @return mixed
- */
- public function getMgMemIdByUsername($username) {
- return (new AccountOrderModel())->where(['check_mem_id' => $username])->value('mg_mem_id');
- }
- }
|