package vip.fuck.sm.controller; import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import cn.dev33.satoken.annotation.SaCheckPermission; import org.noear.solon.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import java.util.List; import org.noear.solon.core.handle.ModelAndView; import org.noear.solon.core.handle.UploadedFile; import org.smartboot.http.server.HttpRequest; import vip.fuck.sm.common.aop.annotation.LogAnnotation; import vip.fuck.sm.common.exception.BusinessException; import vip.fuck.sm.common.utils.DataResult; import vip.fuck.sm.entity.SysFilesEntity; import vip.fuck.sm.entity.SysPlugsEntity; import vip.fuck.sm.service.SysFilesService; import vip.fuck.sm.service.SysPlugsService; /** * 系统插件 * * @author Rish * @email xian.zi.ming@qq.com * @date 2025-03-22 20:59:06 */ @Controller @Mapping("/") public class SysPlugsController { @Inject private SysPlugsService sysPlugsService; /** * 跳转到页面 */ @Get @Mapping ("/index/sysPlugs") public ModelAndView sysPlugs() { return new ModelAndView("sysplugs/list.html"); } @ApiOperation(value = "上传插件") @Post @Mapping("sysPlugs/upload") @LogAnnotation(action = "上传插件") // @SaCheckPermission(value = {"sysFiles:add", "sysContent:update", "sysContent:add"}, mode = SaMode.OR) public SysPlugsEntity upload(@Param("file") UploadedFile file) throws Exception { return sysPlugsService.uploadJar(file); } @ApiOperation(value = "启动插件") @Get @Mapping("sysPlugs/startPlugin/{qn}") @LogAnnotation(action = "启动插件") // @SaCheckPermission(value = {"sysFiles:add", "sysContent:update", "sysContent:add"}, mode = SaMode.OR) public DataResult startPlugin(@Path("qn") String qn) throws Exception { sysPlugsService.startPlugin(qn); return DataResult.success(); } @ApiOperation(value = "查询分页数据") @Post @Mapping ("sysPlugs/listByPage") @SaCheckPermission("sysPlugs:list") public DataResult findListByPage(SysPlugsEntity sysPlugs ,String key){ LambdaQueryWrapper q = Wrappers.lambdaQuery(); if(ObjectUtil.isNotEmpty(key)){ q.or(qq->{ qq.like(SysPlugsEntity::getQualifiedVersion,key); }); q.or(qq->{ qq.like(SysPlugsEntity::getAuthor,key); }); q.or(qq->{ qq.like(SysPlugsEntity::getVersion,key); }); q.or(qq->{ qq.like(SysPlugsEntity::getDescription,key); }); }else{ //查询条件示例 q.eq(sysPlugs.getQualifiedVersion() != null, SysPlugsEntity::getQualifiedVersion, sysPlugs.getQualifiedVersion()); } q.orderByDesc(SysPlugsEntity::getQualifiedVersion); IPage iPage = sysPlugsService.page(sysPlugs.getQueryPage(), q); return DataResult.success(iPage); } @ApiOperation(value = "新增") @Post @Mapping ("sysPlugs/add") @SaCheckPermission("sysPlugs:add") public DataResult add( SysPlugsEntity sysPlugs){ sysPlugsService.save(sysPlugs); return DataResult.success(); } @ApiOperation(value = "删除") @Delete @Mapping ("sysPlugs/delete") @SaCheckPermission("sysPlugs:delete") public DataResult delete( @ApiParam(value = "id集合") List ids){ sysPlugsService.removeByIds(ids); return DataResult.success(); } @ApiOperation(value = "更新") @Put @Mapping ("sysPlugs/update") @SaCheckPermission("sysPlugs:update") public DataResult update( SysPlugsEntity sysPlugs){ sysPlugsService.updateById(sysPlugs); return DataResult.success(); } }