132 lines
4.1 KiB
Java

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<SysPlugsEntity> 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<SysPlugsEntity> 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<String> 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();
}
}