周总批发商场
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.
dianshang/crmeb/app/services/pc/UserServices.php

93 lines
3.6 KiB

<?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\pc;
use app\services\BaseServices;
use app\services\product\product\StoreProductRelationServices;
use app\services\user\UserBillServices;
class UserServices extends BaseServices
{
/**
* PC端用户记录明细
* @param int $uid
* @param int $type
* @return array
*/
public function getBalanceRecord(int $uid, int $type)
{
/** @var UserBillServices $userBill */
$userBill = app()->make(UserBillServices::class);
$where = [];
$where['uid'] = $uid;
$where['category'] = 'now_money';
switch ((int)$type) {
case 0:
$where['type'] = ['recharge', 'pay_money', 'system_add', 'pay_product_refund', 'system_sub'];
break;
case 1:
$where['type'] = ['pay_money'];
break;
case 2:
$where['type'] = ['recharge', 'system_add'];
break;
case 3:
$where['type'] = ['brokerage', 'brokerage_user'];
break;
case 4:
$where['type'] = ['extract'];
break;
}
[$page, $limit] = $this->getPageValue();
$list = $userBill->getBalanceRecord($where, $page, $limit);
foreach ($list as &$item) {
$item['time'] = date('Y-m', strtotime($item['add_time']));
}
$count = $userBill->count($where);
return ['list' => $list, 'count' => $count];
}
/**
* 获取收藏商品
* @param int $uid
* @return array
*/
public function getCollectList(int $uid)
{
/** @var StoreProductRelationServices $relation */
$relation = app()->make(StoreProductRelationServices::class);
$where['uid'] = $uid;
$where['type'] = 'collect';
[$page, $limit] = $this->getPageValue();
$count = $relation->count($where);
$list = $relation->getList($where, 'product_id,category', $page, $limit);
foreach ($list as $k => $product) {
if ($product['product'] && isset($product['product']['id'])) {
$list[$k]['pid'] = $product['product']['id'] ?? 0;
$list[$k]['store_name'] = $product['product']['store_name'] ?? 0;
$list[$k]['price'] = $product['product']['price'] ?? 0;
$list[$k]['ot_price'] = $product['product']['ot_price'] ?? 0;
$list[$k]['sales'] = $product['product']['sales'] ?? 0;
$list[$k]['image'] = get_thumb_water($product['product']['image'] ?? 0, 'mid');
$list[$k]['is_del'] = $product['product']['is_del'] ?? 0;
$list[$k]['is_show'] = $product['product']['is_show'] ?? 0;
$list[$k]['is_fail'] = $product['product']['is_del'] && $product['product']['is_show'];
} else {
unset($list[$k]);
}
}
return compact('list', 'count');
}
}