You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
shipin/app/services/user/UserBillStoreOrderServices.php

117 lines
3.7 KiB

10 months ago
<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\services\user;
use app\services\BaseServices;
use app\dao\user\UserBillStoreOrderDao;
/**
*
* Class UserBillStoreOrderServices
* @package app\services\user
*/
class UserBillStoreOrderServices extends BaseServices
{
/**
* UserBillStoreOrderServices constructor.
* @param UserBillStoreOrderDao $dao
*/
public function __construct(UserBillStoreOrderDao $dao)
{
$this->dao = $dao;
}
/**
* TODO 获取用户记录 按月查找
* @param $uid $uid 用户编号
* @param int $page $page 分页起始值
* @param int $limit $limit 查询条数
* @param string $category $category 记录类型
* @param string $type $type 记录分类
* @return mixed
*/
public function getRecordList($uid, $uids, $category = 'now_money', $type = 'brokerage')
{
$where = $whereOr1 = $whereOr2 = [];
$where['b.category'] = $category;
$where['o.refund_status'] = 0;
$where['b.take'] = 0;
$field = "FROM_UNIXTIME(b.add_time, '%Y-%m') as time";
$whereOr1 = [
['b.uid', '=', $uid],
['b.type', '=', $type]
];
$whereOr2 = [
['b.uid', 'IN', $uids],
['b.type', '=', 'pay_money']
];
[$page, $limit] = $this->getPageValue();
return $this->dao->getListByGroup($where, [$whereOr1, $whereOr2], $field, 'time', $page, $limit);
}
/**
* 获取订单返佣记录总数
* @param $uid
* @param $uids
* @param string $category
* @param string $type
* @return mixed
*/
public function getRecordOrderCount($uid, $uids, $category = 'now_money', $type = 'brokerage')
{
$where = $whereOr1 = $whereOr2 = [];
$where['b.category'] = $category;
$where['o.refund_status'] = 0;
$where['b.take'] = 0;
$whereOr1 = [
['b.uid', '=', $uid],
['b.type', '=', $type]
];
$whereOr2 = [
['b.uid', 'IN', $uids],
['b.type', '=', 'pay_money']
];
return $this->dao->getListCount($where, [$whereOr1, $whereOr2]);
}
/**
* TODO 获取订单返佣记录
* @param $uid
* @param int $addTime
* @param string $category
* @param string $type
* @return mixed
*/
public function getRecordOrderListDraw($uid, $uids, $addTime = [], $category = 'now_money', $type = 'brokerage')
{
if(!$addTime) return [];
$where = $whereOr1 = $whereOr2 = [];
$where['b.category'] = $category;
$where['o.refund_status'] = 0;
$where['b.take'] = 0;
$whereOr1 = [
['b.uid', '=', $uid],
['b.type', '=', $type]
];
$whereOr2 = [
['b.uid', 'IN', $uids],
['b.type', '=', 'pay_money']
];
$field = "o.id,o.uid,o.order_id,FROM_UNIXTIME(b.add_time, '%Y-%m-%d %H:%i') as time,b.number,b.type,FROM_UNIXTIME(b.add_time, '%Y-%m') as time_key";
return $this->dao->getList($where, [$whereOr1, $whereOr2],$addTime, $field, 0, 0);
}
}