|
|
@@ -0,0 +1,96 @@
|
|
|
+<?php
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+// | likeadmin快速开发前后端分离管理后台(PHP版)
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
|
|
+// | 开源版本可自由商用,可去除界面版权logo
|
|
|
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
|
|
+// | github下载:https://github.com/likeshop-github/likeadmin
|
|
|
+// | 访问官网:https://www.likeadmin.cn
|
|
|
+// | likeadmin团队 版权所有 拥有最终解释权
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+// | author: likeadminTeam
|
|
|
+// +----------------------------------------------------------------------
|
|
|
+
|
|
|
+namespace app\adminapi\lists\property;
|
|
|
+
|
|
|
+
|
|
|
+use app\adminapi\lists\BaseAdminDataLists;
|
|
|
+use app\common\model\property\PropertyHead;
|
|
|
+use app\common\model\property\PropertyOrder;
|
|
|
+use app\common\lists\ListsSearchInterface;
|
|
|
+use app\common\model\property\PropertyUser;
|
|
|
+use app\common\model\works\ServiceWork;
|
|
|
+use think\facade\Db;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * PropertyOrderAnalysis列表
|
|
|
+ * Class PropertyOrderAnalysis
|
|
|
+ * @package app\adminapi\lists
|
|
|
+ */
|
|
|
+class PropertyOrderAnalysis extends BaseAdminDataLists implements ListsSearchInterface
|
|
|
+{
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @notes 设置搜索条件
|
|
|
+ * @return \string[][]
|
|
|
+ * @author likeadmin
|
|
|
+ * @date 2024/09/19 14:48
|
|
|
+ */
|
|
|
+ public function setSearch(): array
|
|
|
+ {
|
|
|
+ return [
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ public function queryWhere()
|
|
|
+ {
|
|
|
+ $where = [];
|
|
|
+ return $where;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @notes 获取列表
|
|
|
+ * @return array
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\DbException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @author likeadmin
|
|
|
+ * @date 2024/09/19 14:48
|
|
|
+ */
|
|
|
+ public function lists(): array
|
|
|
+ {
|
|
|
+ $workIds = PropertyOrder::where('order_status',3)->column('work_id');
|
|
|
+ if(empty($workIds)){
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+ $startDateTime = strtotime(date('Y-m-01'));
|
|
|
+ if(isset($this->params['start_month']) && $this->params['start_month']){
|
|
|
+ $startDateTime = strtotime($this->params['start_month']);
|
|
|
+ }
|
|
|
+ $endDateTime = strtotime('+1 month', strtotime($startDateTime))-1;
|
|
|
+ // with(['propertyHead'])->
|
|
|
+ $serviceWork = ServiceWork::with(['propertyHead'])->where([['id','in',$workIds],['work_pay_status','=',2],['approval','=',1]])
|
|
|
+ //->where('finished_time','BETWEEN',[$startDateTime,$endDateTime])
|
|
|
+ ->where('finished_time','>',0)
|
|
|
+ ->where('user_id','>',0)
|
|
|
+ ->field(Db::raw('user_id,DATE_FORMAT(FROM_UNIXTIME(finished_time), "%Y-%m") AS month_format,COUNT(id) as month_num, SUM(work_amount) as month_amount'))
|
|
|
+ ->group('user_id,month_format')
|
|
|
+ ->select()->toArray();
|
|
|
+ return $serviceWork;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @notes 获取数量
|
|
|
+ * @return int
|
|
|
+ * @author likeadmin
|
|
|
+ * @date 2024/09/19 14:48
|
|
|
+ */
|
|
|
+ public function count(): int
|
|
|
+ {
|
|
|
+ return ServiceWork::where($this->searchWhere)->where($this->queryWhere())->count();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|