From f807be9eadbc17b22cddec9740065f4d4b35080d Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Thu, 20 Jun 2024 10:36:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=EF=BC=9A=E9=A4=90=E8=B4=B9?= =?UTF-8?q?=E7=A7=AF=E5=88=86=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MerchantShareholderIntegralDao.php | 12 +++- .../merchant/MerchantShareholderIntegral.php | 10 ++++ .../MerchantShareholderIntegralRepository.php | 55 ++++++++++++++++++ .../system/merchant/ShareholderIntegral.php | 56 +++++++++++++++++++ route/admin/merchant.php | 4 +- 5 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 app/controller/admin/system/merchant/ShareholderIntegral.php diff --git a/app/common/dao/system/merchant/MerchantShareholderIntegralDao.php b/app/common/dao/system/merchant/MerchantShareholderIntegralDao.php index 02a365e..0726a02 100644 --- a/app/common/dao/system/merchant/MerchantShareholderIntegralDao.php +++ b/app/common/dao/system/merchant/MerchantShareholderIntegralDao.php @@ -34,7 +34,17 @@ class MerchantShareholderIntegralDao extends BaseDao{ ->when(isset($params['status']) && $params['status'] !== '',function($query) use ($params){ $query->where('status', (int)$params['status']); }) - ->order('create_time DESC,id DESC'); + ->with([ + 'user' => function($query){ + $query->field('uid,nickname,avatar,phone'); + }, + 'merchant' => function($query){ + $query->field('mer_id,mer_avatar,mer_name'); + }, + 'level' => function($query){ + $query->field('id,title as level_name')->bind(['level_name']); + } + ]); } diff --git a/app/common/model/system/merchant/MerchantShareholderIntegral.php b/app/common/model/system/merchant/MerchantShareholderIntegral.php index 8eb930d..be83b28 100644 --- a/app/common/model/system/merchant/MerchantShareholderIntegral.php +++ b/app/common/model/system/merchant/MerchantShareholderIntegral.php @@ -3,6 +3,7 @@ namespace app\common\model\system\merchant; use app\common\model\BaseModel; +use app\common\model\user\User; class MerchantShareholderIntegral extends BaseModel{ @@ -16,8 +17,17 @@ class MerchantShareholderIntegral extends BaseModel{ + public function user(){ + return $this->hasOne(User::class, 'uid', 'uid'); + } + public function merchant(){ + return $this->hasOne(Merchant::class,'mer_id','mer_id'); + } + public function level(){ + return $this->hasOne(MerchantShareholderLevel::class,'id','level_id'); + } } diff --git a/app/common/repositories/system/merchant/MerchantShareholderIntegralRepository.php b/app/common/repositories/system/merchant/MerchantShareholderIntegralRepository.php index 5294cf6..56de98c 100644 --- a/app/common/repositories/system/merchant/MerchantShareholderIntegralRepository.php +++ b/app/common/repositories/system/merchant/MerchantShareholderIntegralRepository.php @@ -24,6 +24,61 @@ class MerchantShareholderIntegralRepository extends BaseRepository{ } + /** + * Common: 获取分组持有信息(同股东等级、门店、用户为一组) + * Author: wu-hui + * Time: 2024/06/20 9:32 + * @param array $params + * @param int $page + * @param int $limit + * @return array + */ + public function groupList(array $params,int $page,int $limit){ + // 查询模型 + $query = $this->getSearchModel($params) + ->field([ + 'uid', + 'mer_id', + 'level_id', + 'CONCAT(uid,"_",mer_id,"_",level_id) as group_key', + 'SUM(integral_total) as sum_integral_total', + 'SUM(integral_use) as sum_integral_use', + 'SUM(CASE status WHEN 2 THEN (integral_total - integral_use) ELSE 0 END) as sum_used_overdue',// 已过期可用 + 'SUM(CASE status WHEN 0 THEN integral_total ELSE 0 END) as sum_used_freeze',// 冻结中可用 + 'SUM(CASE status WHEN 1 THEN (integral_total - integral_use) ELSE 0 END) as sum_used_surplus',// 当前可用 + ]) + ->group('group_key') + ->order('create_time DESC,id DESC'); + // 信息获取 + $count = $query->count(); + $list = $query->page($page,$limit)->select()->toArray(); + + return compact('count','list'); + } + /** + * Common: 获取信息列表 + * Author: wu-hui + * Time: 2024/06/20 10:21 + * @param array $params + * @param int $page + * @param int $limit + * @return array + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public function getList(array $params,int $page,int $limit){ + // 查询模型 + $query = $this->getSearchModel($params)->order('id asc'); + // 信息获取 + $count = $query->count(); + $list = $query->page($page,$limit)->select()->toArray(); + + return compact('count','list'); + } + + + } diff --git a/app/controller/admin/system/merchant/ShareholderIntegral.php b/app/controller/admin/system/merchant/ShareholderIntegral.php new file mode 100644 index 0000000..1184d84 --- /dev/null +++ b/app/controller/admin/system/merchant/ShareholderIntegral.php @@ -0,0 +1,56 @@ +repository = $repository; + } + + + /** + * Common: 获取分组持有信息 + * Author: wu-hui + * Time: 2024/06/20 9:33 + * @return mixed + */ + public function groupList(){ + [$page, $limit] = $this->getPage(); + $params = $this->request->params(['uid','mer_id','merchant_type']); + $data = $this->repository->groupList((array)$params,(int)$page,(int)$limit); + + return app('json')->success($data); + } + /** + * Common: 获取明细列表 + * Author: wu-hui + * Time: 2024/06/20 10:24 + * @return mixed + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public function getList(){ + [$page, $limit] = $this->getPage(); + $params = $this->request->params(['uid','mer_id','level_id','merchant_type']); + $data = $this->repository->getList((array)$params,(int)$page,(int)$limit); + + return app('json')->success($data); + } + + + + + + +} diff --git a/route/admin/merchant.php b/route/admin/merchant.php index 7b9860b..13cf6ba 100644 --- a/route/admin/merchant.php +++ b/route/admin/merchant.php @@ -170,7 +170,9 @@ Route::group(function () { Route::post('shareholder_level/del_info/:id','.ShareholderLevel/delInfo')->name('systemMerchantShareholderLevelDelInfo'); Route::get('shareholder/list','.Shareholder/getList')->name('systemMerchantShareholderGetList'); Route::post('shareholder/del_info/:id','.Shareholder/delInfo')->name('systemMerchantShareholderDelInfo'); - + // 共创股东 - 餐费积分 + Route::get('shareholder_integral/group_list','.ShareholderIntegral/groupList')->name('systemMerchantShareholderIntegralGroupList'); + Route::get('shareholder_integral/list','.ShareholderIntegral/getList')->name('systemMerchantShareholderIntegralGetList');