<?php
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
namespace app\services\order;
use app\dao\order\StoreOrderDao;
use app\services\activity\StorePinkServices;
use app\services\activity\StoreSeckillServices;
use app\services\BaseServices;
use app\services\message\sms\SmsSendServices;
use app\services\pay\PayServices;
use app\services\product\product\StoreProductLogServices;
use app\services\system\store\SystemStoreServices;
use app\services\user\UserInvoiceServices;
use app\services\user\UserServices;
use app\services\product\product\StoreProductReplyServices;
use app\services\user\UserAddressServices;
use app\services\user\UserBillServices;
use app\services\user\UserLevelServices;
use app\services\wechat\WechatUserServices;
use crmeb\services\CacheService;
use crmeb\services\FormBuilder as Form;
use crmeb\services\printer\Printer;
use crmeb\services\SystemConfigService;
use crmeb\traits\ServicesTrait;
use crmeb\utils\Arr;
use think\exception\ValidateException;
use think\facade\Log;
/**
* Class StoreOrderServices
* @package app\services\order
* @method getOrderIdsCount(array $ids) 获取订单id下没有删除的订单数量
* @method StoreOrderDao getUserOrderDetail(string $key, int $uid) 获取订单详情
* @method chartTimePrice($start, $stop) 获取当前时间到指定时间的支付金额 管理员
* @method chartTimeNumber($start, $stop) 获取当前时间到指定时间的支付订单数 管理员
* @method together(array $where, string $field, string $together = 'sum') 聚合查询
* @method getBuyCount($uid, $type, $typeId) 获取用户已购买此活动商品的个数
* @method getDistinctCount(array $where, $field, ?bool $search = true)
* @method getTrendData($time, $type, $timeType, $str) 用户趋势
* @method getRegion($time, $channelType) 地域统计
* @method getProductTrend($time, $timeType, $field, $str) 商品趋势
*/
class StoreOrderServices extends BaseServices
{
use ServicesTrait;
/**
* 发货类型
* @var string[]
*/
public $deliveryType = ['send' => '商家配送', 'express' => '快递配送', 'fictitious' => '虚拟发货'];
/**
* StoreOrderProductServices constructor.
* @param StoreOrderDao $dao
*/
public function __construct(StoreOrderDao $dao)
{
$this->dao = $dao;
}
/**
* 获取列表
* @param array $where
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getOrderList(array $where, array $field = ['*'], array $with = [])
{
[$page, $limit] = $this->getPageValue();
$data = $this->dao->getOrderList($where, $field, $page, $limit, $with);
$count = $this->dao->count($where);
$data = $this->tidyOrderList($data);
$stat = $this->getBadge($where);
return compact('data', 'count', 'stat');
}
/**
* 前端订单列表
* @param array $where
* @param array|string[] $field
* @param array $with
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getOrderApiList(array $where, array $field = ['*'], array $with = [])
{
[$page, $limit] = $this->getPageValue();
$data = $this->dao->getOrderList($where, $field, $page, $limit, $with);
foreach ($data as &$item) {
$item = $this->tidyOrder($item, true);
if ($item['_status']['_type'] == 3) {
foreach ($item['cartInfo'] ?: [] as $key => $product) {
$item['cartInfo'][$key]['add_time'] = isset($product['add_time']) ? date('Y-m-d H:i', (int)$product['add_time']) : '时间错误';
}
}
}
return $data;
}
/**
* 获取订单数量
* @param int $uid
* @return mixed
*/
public function getOrderData(int $uid = 0)
{
$where = ['uid' => $uid, 'paid' => 1, 'refund_status' => 0, 'is_del' => 0, 'is_system_del' => 0];
$data['order_count'] = (string)$this->dao->count($where);
$data['sum_price'] = (string)$this->dao->sum($where, 'pay_price');
$countWhere = ['is_del' => 0, 'is_system_del' => 0];
if ($uid) {
$countWhere['uid'] = $uid;
}
$data['unpaid_count'] = (string)$this->dao->count(['status' => 0] + $countWhere);
$data['unshipped_count'] = (string)$this->dao->count(['status' => 1] + $countWhere);
$data['received_count'] = (string)$this->dao->count(['status' => 2] + $countWhere);
$data['evaluated_count'] = (string)$this->dao->count(['status' => 3] + $countWhere);
$data['complete_count'] = (string)$this->dao->count(['status' => 4] + $countWhere);
$data['refunding_count'] = (string)$this->dao->count(['status' => -1] + $countWhere);
$data['refunded_count'] = (string)$this->dao->count(['status' => -2] + $countWhere);
$data['refund_count'] = (string)bcadd($data['refunding_count'], $data['refunded_count'], 0);
$data['yue_pay_status'] = (int)sys_config('balance_func_status') && (int)sys_config('yue_pay_status') == 1 ? (int)1 : (int)2;//余额支付 1 开启 2 关闭
$data['pay_weixin_open'] = (int)sys_config('pay_weixin_open') ?? 0;//微信支付 1 开启 0 关闭
$data['ali_pay_status'] = sys_config('ali_pay_status') ? true : false;//支付包支付 1 开启 0 关闭
return $data;
}
/**
* 订单详情数据格式化
* @param $order
* @param bool $detail 是否需要订单商品详情
* @param bool $isPic 是否需要订单状态图片
* @return mixed
*/
public function tidyOrder($order, bool $detail = false, $isPic = false)
{
if ($detail == true && isset($order['id'])) {
/** @var StoreOrderCartInfoServices $cartServices */
$cartServices = app()->make(StoreOrderCartInfoServices::class);
$cartInfo = $cartServices->getCartColunm(['oid' => $order['id']], 'cart_info', 'unique');
$info = [];
/** @var StoreProductReplyServices $replyServices */
$replyServices = app()->make(StoreProductReplyServices::class);
foreach ($cartInfo as $k => $cart) {
$cart = json_decode($cart, true);
$cart['unique'] = $k;
//新增是否评价字段
$cart['is_reply'] = $replyServices->count(['unique' => $k]);
if (isset($cart['productInfo']['attrInfo'])) {
$cart['productInfo']['attrInfo'] = get_thumb_water($cart['productInfo']['attrInfo']);
}
$cart['productInfo'] = get_thumb_water($cart['productInfo']);
//一种商品买多件 计算总优惠
$cart['vip_sum_truePrice'] = bcmul($cart['vip_truePrice'], $cart['cart_num'] ? $cart['cart_num'] : 1, 2);
array_push($info, $cart);
unset($cart);
}
$order['cartInfo'] = $info;
}
/** @var StoreO
没有合适的资源?快使用搜索试试~ 我知道了~
CRMEB_BZDT_v4.0.32).zip
共976个文件
js:293个
png:212个
php:145个
1星 需积分: 5 12 下载量 167 浏览量
2021-03-07
11:31:59
上传
评论 1
收藏 24.22MB ZIP 举报
温馨提示
完整小程序商城源码PHP
资源推荐
资源详情
资源评论
收起资源包目录
CRMEB_BZDT_v4.0.32).zip (976个子文件)
chunk-02fdb7fd.7e8c779e.css 1.32MB
chunk-59df07e2.07c153da.css 1.3MB
app.3bfd1acc.css 528KB
chunk-vendors.97f772fd.css 437KB
index.1e555237.css 83KB
iconfont.css 80KB
guildford.css 71KB
ueditor.css 45KB
ueditor.min.css 34KB
chunk-e356db48.61d62009.css 26KB
video-js.css 22KB
chunk-55485028.d42c302d.css 21KB
image.css 19KB
video.css 15KB
attachment.css 15KB
chunk-0b63c84b.5f53796f.css 14KB
video-js.min.css 11KB
base.css 10KB
chunk-5ae32c8e.a8f98d36.css 10KB
chunk-39b0e7c5.d0c8749d.css 8KB
shCoreDefault.css 7KB
chunk-d557c2cc.d022cf4d.css 6KB
chunk-28a44484.d8b33a09.css 5KB
chunk-2f071ce8.980e3a45.css 5KB
chunk-93cccd06.a072c5ae.css 4KB
chunk-35dcd6f1.4fd5a812.css 4KB
chunk-7d125508.c712c26e.css 4KB
scrawl.css 4KB
chunk-5add681d.b2e8b380.css 4KB
chunk-140c7f6a.ef3b5dec.css 3KB
chunk-449257bd.0fc729c1.css 3KB
chunk-b4f01722.10b74367.css 3KB
chunk-04bed168.1085fa33.css 3KB
codemirror.css 3KB
chunk-4e271fca.88c707c6.css 3KB
chunk-2fc76bab.789049ba.css 3KB
chunk-4fdc8d16.111fc8a2.css 3KB
charts.css 3KB
chunk-384c1cec.3e268206.css 3KB
chunk-3ec706b8.ae3f8307.css 3KB
chunk-4cdae675.e49c8dfb.css 3KB
chunk-3087f8b5.8837d91b.css 2KB
background.css 2KB
chunk-36156889.ceb8a334.css 2KB
chunk-33c3f4db.31dfcd2b.css 2KB
chunk-5843c24a.9329ad83.css 2KB
chunk-32a226f2.6ed9fb31.css 2KB
emotion.css 2KB
dialogbase.css 2KB
chunk-4c7c0e64.8e25c72a.css 2KB
music.css 2KB
chunk-76e787e6.b7b9313e.css 2KB
chunk-2f4b70ac.3fa95284.css 2KB
chunk-4d458b5e.e631d8ec.css 1KB
chunk-5222549c.f1e83480.css 1KB
chunk-43884c2a.af335207.css 1KB
chunk-010b8aca.c7f5e8b6.css 1KB
chunk-a0e7cbd4.661e1a63.css 1KB
chunk-e8378a3a.374bc6d0.css 1KB
chunk-2828bc72.7731b43e.css 1KB
chunk-6a2da30e.fbb049fa.css 1KB
edittable.css 1KB
chunk-2a253734.ed665389.css 1KB
chunk-57376e0c.b274716e.css 1KB
chunk-0975dd30.4cda0742.css 1KB
chunk-24b0df96.d86b5895.css 1KB
chunk-2cedb392.a00d8749.css 1KB
template.css 1KB
chunk-0079fca3.b6376829.css 1KB
chunk-717a1924.e34cf7db.css 1008B
chunk-c5e06940.2df1a2d7.css 985B
chunk-5c069e64.ce7c675b.css 976B
chunk-74885d1c.c63db033.css 974B
chunk-27dae952.d4f4c304.css 951B
chunk-033f2af8.7e7c0d51.css 917B
chunk-094e4406.cd287f62.css 911B
chunk-055398fc.8bc43fe7.css 911B
chunk-0c711f48.d17d92a4.css 887B
chunk-4112456e.351ab148.css 839B
chunk-1580430b.d4c717c6.css 796B
chunk-7968fd38.cb4175f0.css 780B
chunk-005c20b1.f55662f1.css 703B
chunk-35e03305.b2e0df7c.css 660B
chunk-8702edbe.d44e183c.css 635B
chunk-54d008cc.0ae2b769.css 580B
chunk-74a89386.b85515b4.css 544B
webuploader.css 543B
chunk-224b1e05.1b05c70e.css 494B
chunk-207a96ca.4a3de16d.css 473B
chunk-99639428.0acdb4f4.css 468B
chunk-2c82e903.f81ec7f4.css 468B
chunk-064f014f.155195b4.css 448B
chunk-1b6e6dbd.77ab82e2.css 400B
help.css 395B
chunk-cd01920c.aaa19c1e.css 392B
chunk-0bf9b662.aaa19c1e.css 392B
chunk-cdaf44c8.aaa19c1e.css 392B
chunk-f787e3e8.dcb76ada.css 339B
chunk-8edb55b8.ad5b92c9.css 339B
chunk-52b73c08.cc83209b.css 304B
共 976 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
- oKennedy2021-03-31是一套不完整的系统
weixin_50839203
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功