|
@@ -0,0 +1,169 @@
|
|
|
|
|
+<?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\asset;
|
|
|
|
|
+
|
|
|
|
|
+use app\adminapi\lists\BaseAdminDataLists;
|
|
|
|
|
+use app\common\enum\asset\AssetEnum;
|
|
|
|
|
+use app\common\lists\ListsSearchInterface;
|
|
|
|
|
+use app\common\model\article\Article;
|
|
|
|
|
+use app\common\model\notice\NoticeSetting;
|
|
|
|
|
+use app\common\model\asset\AssetInfo;
|
|
|
|
|
+use app\common\model\asset\AssetArea;
|
|
|
|
|
+use app\common\service\FileService;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 资产地址管理
|
|
|
|
|
+ * Class AssetLists
|
|
|
|
|
+ * @package app\adminapi\lists\asset
|
|
|
|
|
+ */
|
|
|
|
|
+class AssetAreaLists extends BaseAdminDataLists implements ListsSearchInterface
|
|
|
|
|
+{
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @notes 搜索条件
|
|
|
|
|
+ * @return \string[][]
|
|
|
|
|
+ * @author
|
|
|
|
|
+ * @date 2025/04/12 2:21 下午
|
|
|
|
|
+ */
|
|
|
|
|
+ public function setSearch(): array
|
|
|
|
|
+ {
|
|
|
|
|
+ return [
|
|
|
|
|
+ '=' => [ 'lease_status'],
|
|
|
|
|
+ '%like%'=>['name'],
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @notes 资产信息列表
|
|
|
|
|
+ * @return array
|
|
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
|
|
+ * @throws \think\db\exception\DbException
|
|
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
|
|
+ * @author ljj
|
|
|
|
|
+ * @date 2022/2/16 3:18 下午
|
|
|
|
|
+ */
|
|
|
|
|
+ public function lists(): array
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ $lists = (new AssetArea())->field('id,title,create_time')
|
|
|
|
|
+ ->where($this->searchWhere)
|
|
|
|
|
+ ->limit($this->limitOffset, $this->limitLength)
|
|
|
|
|
+ ->Order('id desc')
|
|
|
|
|
+ ->select()
|
|
|
|
|
+ ->toArray();
|
|
|
|
|
+
|
|
|
|
|
+ return $lists;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @notes 资产信息数量
|
|
|
|
|
+ * @return int
|
|
|
|
|
+ * @author ljj
|
|
|
|
|
+ * @date 2022/2/16 3:18 下午
|
|
|
|
|
+ */
|
|
|
|
|
+ public function count(): int
|
|
|
|
|
+ {
|
|
|
|
|
+ return (new AssetArea())->where($this->searchWhere)->count();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @notes 添加资产
|
|
|
|
|
+ * @param array $params
|
|
|
|
|
+ * @author heshihu
|
|
|
|
|
+ * @date 2022/2/22 9:57
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function add(array $params)
|
|
|
|
|
+ {
|
|
|
|
|
+ AssetArea::create([
|
|
|
|
|
+ 'title' => $params['title']
|
|
|
|
|
+ ]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @notes 编辑资产
|
|
|
|
|
+ * @param array $params
|
|
|
|
|
+ * @return bool
|
|
|
|
|
+ * @author heshihu
|
|
|
|
|
+ * @date 2022/2/22 10:12
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function edit(array $params) : bool
|
|
|
|
|
+ {
|
|
|
|
|
+ try {
|
|
|
|
|
+ AssetArea::update([
|
|
|
|
|
+ 'id' => $params['id'],
|
|
|
|
|
+ 'title' => $params['title'],
|
|
|
|
|
+ ]);
|
|
|
|
|
+ return true;
|
|
|
|
|
+ } catch (\Exception $e) {
|
|
|
|
|
+ self::setError($e->getMessage());
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @notes 删除资产
|
|
|
|
|
+ * @param array $params
|
|
|
|
|
+ * @author heshihu
|
|
|
|
|
+ * @date 2022/2/22 10:17
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function delete(array $params)
|
|
|
|
|
+ {
|
|
|
|
|
+ AssetArea::destroy($params['id']);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @notes 查看资产详情
|
|
|
|
|
+ * @param $params
|
|
|
|
|
+ * @return array
|
|
|
|
|
+ * @author heshihu
|
|
|
|
|
+ * @date 2022/2/22 10:15
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function detail($params) : array
|
|
|
|
|
+ {
|
|
|
|
|
+ return AssetArea::findOrEmpty($params['id'])->toArray();
|
|
|
|
|
+ }
|
|
|
|
|
+ public static function getAssetData():array
|
|
|
|
|
+ {
|
|
|
|
|
+ $where = [] ;
|
|
|
|
|
+
|
|
|
|
|
+ $where[]=['status','=',1];
|
|
|
|
|
+ $assetList = AssetInfo::where($where)->field('lease_status,count(id) total_number')->append(['lease_status_desc'])->group('lease_status')->select()->toArray();
|
|
|
|
|
+ $all_lease_status = AssetEnum::LEASE_STATTUS_SCENE;
|
|
|
|
|
+ $lease_satus = array_column($assetList,'lease_status');
|
|
|
|
|
+ $diff_lease_satus = array_diff($all_lease_status, $lease_satus);
|
|
|
|
|
+ if(!empty($diff_lease_satus)){
|
|
|
|
|
+ foreach($diff_lease_satus as $dv){
|
|
|
|
|
+ $pushData['lease_status_desc'] = AssetEnum::getLeaseStatusDesc($dv);
|
|
|
|
|
+ $pushData['lease_status'] = $dv;
|
|
|
|
|
+ $pushData['total_number'] = 0;
|
|
|
|
|
+
|
|
|
|
|
+ $assetList[]=$pushData;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ $totalNumber = sumValues($assetList,'total_number');
|
|
|
|
|
+ $leave_unused = 0;
|
|
|
|
|
+ foreach($assetList as $av){
|
|
|
|
|
+ if($av['lease_status'] == 1){
|
|
|
|
|
+ $leave_unused = $av['total_number'];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $unused_rate = $totalNumber?round(($leave_unused/$totalNumber*100),2):100;
|
|
|
|
|
+ $return_data['leave_unused_num'] = $leave_unused;
|
|
|
|
|
+ $return_data['unused_rate'] = $unused_rate;
|
|
|
|
|
+ $return_data['asset_list'] = $assetList;
|
|
|
|
|
+
|
|
|
|
|
+ return $return_data;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|