123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- /**
- *
- * @file:BannerService.php
- * @Date: 2023/6/7
- * @Time: 14:29
- */
- namespace Modules\Operation\Service;
- use Illuminate\Support\Facades\DB;
- use Modules\Common\Services\BaseService;
- use Modules\Operation\Models\DuanJuBanner;
- class BannerService extends BaseService
- {
- /**
- * 轮播图列表
- * name: getBannerLists
- * @param array $param
- * date 2023/06/07 14:40
- */
- public static function getBannerLists(array $param)
- {
- $isAll = getProp($param,'is_all',false);
- $list = self::getQuerySql($param)->orderBy('sort','desc')->orderBy('status','desc')->orderBy('id','desc');
- if ($isAll){
- $list = $list->get();
- }else{
- $list = $list->paginate(getProp($param,'limit',15));
- }
- if (!$list->isEmpty()){
- $types = self::getMiniProgramType();
- $types = array_column($types,null,'value');
- foreach ($list as $value){
- $value->miniprogram_type_text = $types[$value->miniprogram_type]['name'] ?? "-";
- }
- }
- return $list;
- }
- public static function getMiniProgramType(){
- return [
- ['value' => 1,'name' =>"微信小程序"],
- ['value' => 2,'name' =>"抖音小程序"],
- ];
- }
- /**
- * 查询构建
- * name: getQuery
- * @param array $param
- * date 2023/06/07 14:41
- */
- private static function getQuerySql(array $param)
- {
- $sql = DuanJuBanner::query();
- if (getProp($param,'title')){
- $sql->where("title","like","%{$param['title']}%");
- }
- return $sql;
- }
- /**
- * 添加轮播图
- * name: addBanner
- * @param array $param
- * date 2023/06/07 15:53
- */
- public static function addBanner(array $param)
- {
- $res = DuanJuBanner::create($param);
- if ($res){
- return "操作成功";
- }
- self::throwErrMsg("添加失败");
- }
- /**
- * 更新banner
- * name: updateBanner
- * @param $id
- * @param $param
- * date 2023/06/08 09:55
- */
- public static function updateBanner($id, $param)
- {
- // 禁用检测
- if( $param['status'] != 1){
- $type = getProp($param,'miniprogram_type');
- if (empty($type)){
- $type = DuanJuBanner::where('id',$id)->value('miniprogram_type');
- }
- $other = DuanJuBanner::where('id','<>',$id)->where('miniprogram_type',$type)->where('status',1)->value('id');
- if (empty($other)){
- self::throwErrMsg("此类型小程序应最少保障一张可用轮播图");
- }
- }
- $res = DuanJuBanner::where('id',$id)->update($param);
- if ($res){
- return "操作成功";
- }
- self::throwErrMsg("操作失败");
- }
- /*
- * 删除
- */
- public static function delBannerById($id)
- {
- $info = DuanJuBanner::where('id',$id)->first();
- if (is_empty($info)){
- return "操作成功";
- }
-
- $other = DuanJuBanner::where('id','<>',$id)->where('miniprogram_type',$info->miniprogram_type)->where('status',1)->value('id');
- if (empty($other)){
- self::throwErrMsg("此类型小程序应最少保障一张可用轮播图");
- }
- DuanJuBanner::where('id',$id)->delete();
- return "操作成功";
- }
- }
|