package com.tievd.jyz.controller;
|
|
import cn.hutool.core.io.FileUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.tievd.cube.commons.annotations.AutoLog;
|
import com.tievd.cube.commons.annotations.DictApi;
|
import com.tievd.cube.commons.base.CubeController;
|
import com.tievd.cube.commons.base.Result;
|
import com.tievd.cube.commons.mybatisplus.QueryGenerator;
|
import com.tievd.jyz.entity.SysInfo;
|
import com.tievd.jyz.service.ISysInfoService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.File;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* SysInfo
|
*
|
* @author cube
|
* @version V2.0.0
|
* @since 2023-02-27
|
*/
|
@Slf4j
|
@DictApi
|
@RestController
|
@RequestMapping("/jyz/sysInfo")
|
public class SysInfoController extends CubeController<SysInfo, ISysInfoService> {
|
|
/**
|
* 路径名
|
*/
|
private static final String LOGO_PATH = "/sysLogo/";
|
|
//预改标记
|
private static final String prefix = "_pre";
|
|
private static final Map<Integer, String> pathMap = new HashMap(){{
|
put(1, "logo");
|
put(2, "login");
|
put(3, "big_data");
|
}};
|
|
@Value("${cube.resources.logo-path:/usr/local/uploadFile}")
|
private String uploadFilePath;
|
|
@Autowired
|
private ISysInfoService sysInfoService;
|
|
/**
|
* 分页列表查询
|
*/
|
@GetMapping("/list")
|
public Result<?> queryPageList(SysInfo sysInfo,
|
@RequestParam(defaultValue = "1") Integer pageNo,
|
@RequestParam(defaultValue = "10") Integer pageSize,
|
HttpServletRequest req) {
|
QueryWrapper<SysInfo> queryWrapper = QueryGenerator.initQueryWrapper(sysInfo, req.getParameterMap());
|
Page<SysInfo> page = new Page<>(pageNo, pageSize);
|
IPage<SysInfo> pageList = sysInfoService.page(page, queryWrapper);
|
return Result.ok(pageList);
|
}
|
|
/**
|
* 添加
|
*/
|
@AutoLog("SysInfo-添加")
|
@PostMapping("/add")
|
public Result<?> add(@RequestBody SysInfo sysInfo) {
|
sysInfoService.save(sysInfo);
|
return Result.ok();
|
}
|
|
private String saveLogo(String filePath, int type) {
|
File file = new File(uploadFilePath + filePath);
|
if (!file.getParentFile().exists()) {
|
file.getParentFile().mkdirs();
|
}
|
String name = file.getName();
|
String suffixName = name.substring(name.lastIndexOf("."));
|
String logoName = pathMap.get(type) + suffixName;
|
FileUtil.copy(file, FileUtil.file(uploadFilePath, LOGO_PATH, logoName), true);
|
return LOGO_PATH + logoName;
|
}
|
|
/**
|
* 编辑
|
*/
|
@AutoLog("SysInfo-编辑")
|
@PutMapping("/edit")
|
public Result<?> edit(@RequestBody SysInfo sysInfo) {
|
String logoPath = sysInfo.getLogoPath();
|
String backgroundPath = sysInfo.getBackground();
|
if (StringUtils.isNotBlank(logoPath) && logoPath.contains(prefix)) {
|
sysInfo.setLogoPath(saveLogo(logoPath, 1));
|
}
|
if (StringUtils.isNotBlank(backgroundPath) && backgroundPath.contains(prefix)) {
|
sysInfo.setBackground(saveLogo(backgroundPath, 2));
|
}
|
if (StringUtils.isNotBlank(sysInfo.getBigDataPath()) && sysInfo.getBigDataPath().contains(prefix)) {
|
sysInfo.setBigDataPath(saveLogo(sysInfo.getBigDataPath(), 3));
|
}
|
sysInfoService.updateById(sysInfo);
|
return Result.ok();
|
}
|
|
/**
|
* 通过id删除
|
*/
|
@AutoLog("SysInfo-通过id删除")
|
@DeleteMapping("/delete")
|
public Result<?> delete(@RequestParam String id) {
|
sysInfoService.removeById(id);
|
return Result.ok();
|
}
|
|
/**
|
* 批量删除
|
*/
|
@AutoLog("SysInfo-批量删除")
|
@DeleteMapping("/deleteBatch")
|
public Result<?> deleteBatch(@RequestParam String ids) {
|
this.sysInfoService.removeByIds(Arrays.asList(ids.split(",")));
|
return Result.ok();
|
}
|
|
/**
|
* 通过id查询
|
*/
|
@GetMapping("/queryById")
|
public Result<?> queryById(@RequestParam String id) {
|
SysInfo sysInfo = sysInfoService.getById(id);
|
return Result.ok(sysInfo);
|
}
|
|
/**
|
* 导出excel
|
*/
|
@RequestMapping("/exportXls")
|
public void exportXls(HttpServletRequest request, HttpServletResponse response, SysInfo sysInfo) throws IOException {
|
super.exportXls(request, response, sysInfo, "SysInfo");
|
}
|
|
/**
|
* 通过excel导入数据
|
*/
|
@PostMapping("/importExcel")
|
public Result<?> importExcel(HttpServletRequest request) throws Exception {
|
return super.importExcel(request, SysInfo.class);
|
}
|
|
@GetMapping("/localInfo")
|
public Result<?> getLocalInfo() {
|
SysInfo info = service.getOne(new QueryWrapper<>(), false);
|
return Result.ok(info);
|
}
|
|
@RequestMapping(value = "/uploadLogo", method = RequestMethod.POST)
|
public Result importLogo(MultipartFile file, Integer type) throws IOException {
|
String filename = file.getOriginalFilename();
|
if (StringUtils.isBlank(filename)) {
|
return Result.error("上传失败,请选择文件");
|
}
|
String suffixName = filename.substring(filename.lastIndexOf("."));
|
if (!".png".equals(suffixName) && !".jpg".equals(suffixName) && !".gif".equals(suffixName)) {
|
return Result.error("文件格式错误,请选择PNG,JPG,GIF文件");
|
}
|
if (file.isEmpty()) {
|
return Result.error("上传失败,请选择文件");
|
}
|
return Result.ok("上传成功", getLogoUrl(file, suffixName, type));
|
}
|
|
private String getLogoUrl(MultipartFile file, String suffixName, int type) throws IOException {
|
String logoName = StringUtils.EMPTY;
|
logoName = pathMap.get(type) + prefix + suffixName;
|
if (StringUtils.isBlank(logoName)) {
|
return logoName;
|
}
|
InputStream inputStream;
|
try {
|
inputStream = file.getInputStream();
|
FileUtil.writeFromStream(inputStream, FileUtil.file(uploadFilePath, LOGO_PATH, logoName));
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
return LOGO_PATH + logoName;
|
}
|
}
|