政策相关

This commit is contained in:
2026-01-11 16:48:40 +08:00
parent 110bc88462
commit b4fdcfd804
14 changed files with 1154 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
package com.ruoyi.cms.controller.app;
import com.ruoyi.cms.domain.policy.PolicyInfo;
import com.ruoyi.cms.domain.policy.PolicyInfoQuery;
import com.ruoyi.cms.service.policy.IPolicyInfoService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 政策信息移动端Controller
* @author kiro
* @date 2026-01-11
*/
@Slf4j
@RestController
@RequestMapping("/app/policyInfo")
@Api(tags = "移动端接口:政策信息")
public class AppPolicyInfoController extends BaseController {
@Autowired
private IPolicyInfoService policyInfoService;
/**
* 获取政策列表
*/
@ApiOperation("获取政策列表")
@GetMapping("/portalList")
public TableDataInfo portalList(PolicyInfoQuery query) {
return policyInfoService.getPortalList(query);
}
/**
* 获取政策详情
*/
@ApiOperation("获取政策详情")
@GetMapping("/detail/{id}")
public AjaxResult detail(@ApiParam("政策ID") @PathVariable Long id) {
PolicyInfo policyInfo = policyInfoService.getDetail(id);
return success(policyInfo);
}
/**
* 浏览数加1
*/
@ApiOperation("浏览数加1")
@PostMapping("/addViewNum/{id}")
public AjaxResult addViewNum(@ApiParam("政策ID") @PathVariable Long id) {
return toAjax(policyInfoService.addViewNum(id));
}
}

View File

@@ -0,0 +1,150 @@
package com.ruoyi.cms.controller.cms;
import com.ruoyi.cms.domain.policy.PolicyInfo;
import com.ruoyi.cms.domain.policy.PolicyInfoQuery;
import com.ruoyi.cms.service.policy.IPolicyInfoService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.uuid.IdUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.Map;
/**
* 政策信息CMS管理Controller
* @author kiro
* @date 2026-01-11
*/
@RestController
@RequestMapping("/cms/policyInfo")
@Api(tags = "CMS政策信息管理")
public class CmsPolicyInfoController extends BaseController {
@Autowired
private IPolicyInfoService policyInfoService;
@Value("${policy.upload.path:/data/policy/files}")
private String uploadPath;
@Value("${policy.upload.domain:}")
private String uploadDomain;
/**
* 查询政策列表
*/
@PreAuthorize("@ss.hasPermi('cms:policyInfo:list')")
@ApiOperation("查询政策列表")
@GetMapping("/list")
public TableDataInfo list(PolicyInfoQuery query) {
startPage();
return getDataTable(policyInfoService.selectList(query));
}
/**
* 获取政策详情
*/
@PreAuthorize("@ss.hasPermi('cms:policyInfo:query')")
@ApiOperation("获取政策详情")
@GetMapping("/{id}")
public AjaxResult getInfo(@PathVariable Long id) {
return success(policyInfoService.selectById(id));
}
/**
* 新增政策
*/
@PreAuthorize("@ss.hasPermi('cms:policyInfo:add')")
@Log(title = "政策信息", businessType = BusinessType.INSERT)
@ApiOperation("新增政策")
@PostMapping
public AjaxResult add(@RequestBody PolicyInfo policyInfo) {
return toAjax(policyInfoService.insert(policyInfo));
}
/**
* 修改政策
*/
@PreAuthorize("@ss.hasPermi('cms:policyInfo:edit')")
@Log(title = "政策信息", businessType = BusinessType.UPDATE)
@ApiOperation("修改政策")
@PutMapping
public AjaxResult edit(@RequestBody PolicyInfo policyInfo) {
return toAjax(policyInfoService.update(policyInfo));
}
/**
* 删除政策
*/
@PreAuthorize("@ss.hasPermi('cms:policyInfo:remove')")
@Log(title = "政策信息", businessType = BusinessType.DELETE)
@ApiOperation("删除政策")
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(policyInfoService.deleteByIds(ids));
}
/**
* 上传政策文件
*/
@PreAuthorize("@ss.hasPermi('cms:policyInfo:add')")
@Log(title = "政策文件上传", businessType = BusinessType.OTHER)
@ApiOperation("上传政策文件")
@PostMapping("/upload")
public AjaxResult uploadFile(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return error("上传文件不能为空");
}
try {
// 获取原始文件名
String originalFilename = file.getOriginalFilename();
// 获取文件后缀
String suffix = "";
if (originalFilename != null && originalFilename.contains(".")) {
suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
}
// 生成新文件名:日期目录 + UUID + 后缀
String dateDir = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd"));
String newFileName = IdUtils.fastSimpleUUID() + suffix;
// 创建目录
File destDir = new File(uploadPath + File.separator + dateDir);
if (!destDir.exists()) {
destDir.mkdirs();
}
// 保存文件
String filePath = dateDir + "/" + newFileName;
File destFile = new File(uploadPath + File.separator + dateDir + File.separator + newFileName);
file.transferTo(destFile);
// 构建返回URL
String fileUrl = uploadDomain + "/file/" + filePath;
Map<String, String> result = new HashMap<>();
result.put("fileUrl", fileUrl);
result.put("fileName", originalFilename);
result.put("filePath", filePath);
return success(result);
} catch (IOException e) {
logger.error("文件上传失败", e);
return error("文件上传失败:" + e.getMessage());
}
}
}