1. 开始迁移通知模块的代码
parent
fc444728c9
commit
42a984c8d0
|
@ -1,92 +0,0 @@
|
||||||
package com.ruoyi.web.controller.system;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
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.SecurityUtils;
|
|
||||||
import com.ruoyi.system.domain.SysNotice;
|
|
||||||
import com.ruoyi.system.service.ISysNoticeService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 公告 信息操作处理
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/system/notice")
|
|
||||||
public class SysNoticeController extends BaseController
|
|
||||||
{
|
|
||||||
@Autowired
|
|
||||||
private ISysNoticeService noticeService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取通知公告列表
|
|
||||||
*/
|
|
||||||
@PreAuthorize("@ss.hasPermi('system:notice:list')")
|
|
||||||
@GetMapping("/list")
|
|
||||||
public TableDataInfo list(SysNotice notice)
|
|
||||||
{
|
|
||||||
startPage();
|
|
||||||
List<SysNotice> list = noticeService.selectNoticeList(notice);
|
|
||||||
return getDataTable(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据通知公告编号获取详细信息
|
|
||||||
*/
|
|
||||||
@PreAuthorize("@ss.hasPermi('system:notice:query')")
|
|
||||||
@GetMapping(value = "/{noticeId}")
|
|
||||||
public AjaxResult getInfo(@PathVariable Long noticeId)
|
|
||||||
{
|
|
||||||
return AjaxResult.success(noticeService.selectNoticeById(noticeId));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增通知公告
|
|
||||||
*/
|
|
||||||
@PreAuthorize("@ss.hasPermi('system:notice:add')")
|
|
||||||
@Log(title = "通知公告", businessType = BusinessType.INSERT)
|
|
||||||
@PostMapping
|
|
||||||
public AjaxResult add(@Validated @RequestBody SysNotice notice)
|
|
||||||
{
|
|
||||||
notice.setCreateBy(SecurityUtils.getUsername());
|
|
||||||
return toAjax(noticeService.insertNotice(notice));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改通知公告
|
|
||||||
*/
|
|
||||||
@PreAuthorize("@ss.hasPermi('system:notice:edit')")
|
|
||||||
@Log(title = "通知公告", businessType = BusinessType.UPDATE)
|
|
||||||
@PutMapping
|
|
||||||
public AjaxResult edit(@Validated @RequestBody SysNotice notice)
|
|
||||||
{
|
|
||||||
notice.setUpdateBy(SecurityUtils.getUsername());
|
|
||||||
return toAjax(noticeService.updateNotice(notice));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除通知公告
|
|
||||||
*/
|
|
||||||
@PreAuthorize("@ss.hasPermi('system:notice:remove')")
|
|
||||||
@Log(title = "通知公告", businessType = BusinessType.DELETE)
|
|
||||||
@DeleteMapping("/{noticeIds}")
|
|
||||||
public AjaxResult remove(@PathVariable Long[] noticeIds)
|
|
||||||
{
|
|
||||||
return toAjax(noticeService.deleteNoticeByIds(noticeIds));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,110 +0,0 @@
|
||||||
package com.ruoyi.framework.config;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import javax.sql.DataSource;
|
|
||||||
|
|
||||||
import org.apache.ibatis.io.VFS;
|
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
|
||||||
import org.mybatis.spring.SqlSessionFactoryBean;
|
|
||||||
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.core.env.Environment;
|
|
||||||
import org.springframework.core.io.DefaultResourceLoader;
|
|
||||||
import org.springframework.core.io.Resource;
|
|
||||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
||||||
import org.springframework.core.io.support.ResourcePatternResolver;
|
|
||||||
import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
|
|
||||||
import org.springframework.core.type.classreading.MetadataReader;
|
|
||||||
import org.springframework.core.type.classreading.MetadataReaderFactory;
|
|
||||||
import org.springframework.util.ClassUtils;
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mybatis支持*匹配扫描包
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class MyBatisConfig {
|
|
||||||
@Autowired
|
|
||||||
private Environment env;
|
|
||||||
|
|
||||||
static final String DEFAULT_RESOURCE_PATTERN = "**/*.class";
|
|
||||||
|
|
||||||
public static String setTypeAliasesPackage(String typeAliasesPackage) {
|
|
||||||
ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver();
|
|
||||||
MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver);
|
|
||||||
List<String> allResult = new ArrayList<String>();
|
|
||||||
try {
|
|
||||||
for (String aliasesPackage : typeAliasesPackage.split(",")) {
|
|
||||||
List<String> result = new ArrayList<String>();
|
|
||||||
aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
|
|
||||||
+ ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN;
|
|
||||||
Resource[] resources = resolver.getResources(aliasesPackage);
|
|
||||||
if (resources != null && resources.length > 0) {
|
|
||||||
MetadataReader metadataReader = null;
|
|
||||||
for (Resource resource : resources) {
|
|
||||||
if (resource.isReadable()) {
|
|
||||||
metadataReader = metadataReaderFactory.getMetadataReader(resource);
|
|
||||||
try {
|
|
||||||
result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName());
|
|
||||||
} catch (ClassNotFoundException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (result.size() > 0) {
|
|
||||||
HashSet<String> hashResult = new HashSet<String>(result);
|
|
||||||
allResult.addAll(hashResult);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (allResult.size() > 0) {
|
|
||||||
typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0]));
|
|
||||||
} else {
|
|
||||||
throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包");
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return typeAliasesPackage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Resource[] resolveMapperLocations(String[] mapperLocations) {
|
|
||||||
ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver();
|
|
||||||
List<Resource> resources = new ArrayList<Resource>();
|
|
||||||
if (mapperLocations != null) {
|
|
||||||
for (String mapperLocation : mapperLocations) {
|
|
||||||
try {
|
|
||||||
Resource[] mappers = resourceResolver.getResources(mapperLocation);
|
|
||||||
resources.addAll(Arrays.asList(mappers));
|
|
||||||
} catch (IOException e) {
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return resources.toArray(new Resource[resources.size()]);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
|
|
||||||
String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
|
|
||||||
String mapperLocations = env.getProperty("mybatis.mapperLocations");
|
|
||||||
String configLocation = env.getProperty("mybatis.configLocation");
|
|
||||||
typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
|
|
||||||
VFS.addImplClass(SpringBootVFS.class);
|
|
||||||
|
|
||||||
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
|
|
||||||
sessionFactory.setDataSource(dataSource);
|
|
||||||
sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
|
|
||||||
sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
|
|
||||||
sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
|
|
||||||
return sessionFactory.getObject();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -8,7 +8,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统访问记录表 sys_logininfor
|
* 系统访问记录表 sys_logininfor
|
||||||
*
|
*
|
||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
public class SysLogininfor extends BaseEntity
|
public class SysLogininfor extends BaseEntity
|
||||||
|
@ -52,93 +52,4 @@ public class SysLogininfor extends BaseEntity
|
||||||
@Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
@Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date loginTime;
|
private Date loginTime;
|
||||||
|
|
||||||
public Long getInfoId()
|
|
||||||
{
|
|
||||||
return infoId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInfoId(Long infoId)
|
|
||||||
{
|
|
||||||
this.infoId = infoId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUserName()
|
|
||||||
{
|
|
||||||
return userName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUserName(String userName)
|
|
||||||
{
|
|
||||||
this.userName = userName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStatus()
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatus(String status)
|
|
||||||
{
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIpaddr()
|
|
||||||
{
|
|
||||||
return ipaddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIpaddr(String ipaddr)
|
|
||||||
{
|
|
||||||
this.ipaddr = ipaddr;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLoginLocation()
|
|
||||||
{
|
|
||||||
return loginLocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLoginLocation(String loginLocation)
|
|
||||||
{
|
|
||||||
this.loginLocation = loginLocation;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBrowser()
|
|
||||||
{
|
|
||||||
return browser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBrowser(String browser)
|
|
||||||
{
|
|
||||||
this.browser = browser;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getOs()
|
|
||||||
{
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOs(String os)
|
|
||||||
{
|
|
||||||
this.os = os;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMsg()
|
|
||||||
{
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMsg(String msg)
|
|
||||||
{
|
|
||||||
this.msg = msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getLoginTime()
|
|
||||||
{
|
|
||||||
return loginTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setLoginTime(Date loginTime)
|
|
||||||
{
|
|
||||||
this.loginTime = loginTime;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,100 +0,0 @@
|
||||||
package com.ruoyi.system.domain;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
import javax.validation.constraints.Size;
|
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通知公告表 sys_notice
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
public class SysNotice extends BaseEntity
|
|
||||||
{
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/** 公告ID */
|
|
||||||
private Long noticeId;
|
|
||||||
|
|
||||||
/** 公告标题 */
|
|
||||||
private String noticeTitle;
|
|
||||||
|
|
||||||
/** 公告类型(1通知 2公告) */
|
|
||||||
private String noticeType;
|
|
||||||
|
|
||||||
/** 公告内容 */
|
|
||||||
private String noticeContent;
|
|
||||||
|
|
||||||
/** 公告状态(0正常 1关闭) */
|
|
||||||
private String status;
|
|
||||||
|
|
||||||
public Long getNoticeId()
|
|
||||||
{
|
|
||||||
return noticeId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNoticeId(Long noticeId)
|
|
||||||
{
|
|
||||||
this.noticeId = noticeId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNoticeTitle(String noticeTitle)
|
|
||||||
{
|
|
||||||
this.noticeTitle = noticeTitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotBlank(message = "公告标题不能为空")
|
|
||||||
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
|
|
||||||
public String getNoticeTitle()
|
|
||||||
{
|
|
||||||
return noticeTitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNoticeType(String noticeType)
|
|
||||||
{
|
|
||||||
this.noticeType = noticeType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNoticeType()
|
|
||||||
{
|
|
||||||
return noticeType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNoticeContent(String noticeContent)
|
|
||||||
{
|
|
||||||
this.noticeContent = noticeContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNoticeContent()
|
|
||||||
{
|
|
||||||
return noticeContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatus(String status)
|
|
||||||
{
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getStatus()
|
|
||||||
{
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
|
||||||
.append("noticeId", getNoticeId())
|
|
||||||
.append("noticeTitle", getNoticeTitle())
|
|
||||||
.append("noticeType", getNoticeType())
|
|
||||||
.append("noticeContent", getNoticeContent())
|
|
||||||
.append("status", getStatus())
|
|
||||||
.append("createBy", getCreateBy())
|
|
||||||
.append("createTime", getCreateTime())
|
|
||||||
.append("updateBy", getUpdateBy())
|
|
||||||
.append("updateTime", getUpdateTime())
|
|
||||||
.append("remark", getRemark())
|
|
||||||
.toString();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,68 +0,0 @@
|
||||||
package com.ruoyi.system.mapper;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.ruoyi.system.domain.SysConfig;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 参数配置 数据层
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
public interface SysConfigMapper {
|
|
||||||
/**
|
|
||||||
* 查询参数配置信息
|
|
||||||
*
|
|
||||||
* @param config 参数配置信息
|
|
||||||
* @return 参数配置信息
|
|
||||||
*/
|
|
||||||
public SysConfig selectConfig(SysConfig config);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询参数配置列表
|
|
||||||
*
|
|
||||||
* @param config 参数配置信息
|
|
||||||
* @return 参数配置集合
|
|
||||||
*/
|
|
||||||
public List<SysConfig> selectConfigList(SysConfig config);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据键名查询参数配置信息
|
|
||||||
*
|
|
||||||
* @param configKey 参数键名
|
|
||||||
* @return 参数配置信息
|
|
||||||
*/
|
|
||||||
public SysConfig checkConfigKeyUnique(String configKey);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增参数配置
|
|
||||||
*
|
|
||||||
* @param config 参数配置信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int insertConfig(SysConfig config);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改参数配置
|
|
||||||
*
|
|
||||||
* @param config 参数配置信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int updateConfig(SysConfig config);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除参数配置
|
|
||||||
*
|
|
||||||
* @param configId 参数ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int deleteConfigById(Long configId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除参数信息
|
|
||||||
*
|
|
||||||
* @param configIds 需要删除的参数ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int deleteConfigByIds(Long[] configIds);
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
package com.ruoyi.system.mapper;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.ruoyi.system.domain.SysLogininfor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 系统访问日志情况信息 数据层
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
public interface SysLogininforMapper {
|
|
||||||
/**
|
|
||||||
* 新增系统登录日志
|
|
||||||
*
|
|
||||||
* @param logininfor 访问日志对象
|
|
||||||
*/
|
|
||||||
public void insertLogininfor(SysLogininfor logininfor);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询系统登录日志集合
|
|
||||||
*
|
|
||||||
* @param logininfor 访问日志对象
|
|
||||||
* @return 登录记录集合
|
|
||||||
*/
|
|
||||||
public List<SysLogininfor> selectLogininforList(SysLogininfor logininfor);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除系统登录日志
|
|
||||||
*
|
|
||||||
* @param infoIds 需要删除的登录日志ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int deleteLogininforByIds(Long[] infoIds);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 清空系统登录日志
|
|
||||||
*
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int cleanLogininfor();
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
package com.ruoyi.system.mapper;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.ruoyi.system.domain.SysNotice;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通知公告表 数据层
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
public interface SysNoticeMapper {
|
|
||||||
/**
|
|
||||||
* 查询公告信息
|
|
||||||
*
|
|
||||||
* @param noticeId 公告ID
|
|
||||||
* @return 公告信息
|
|
||||||
*/
|
|
||||||
public SysNotice selectNoticeById(Long noticeId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询公告列表
|
|
||||||
*
|
|
||||||
* @param notice 公告信息
|
|
||||||
* @return 公告集合
|
|
||||||
*/
|
|
||||||
public List<SysNotice> selectNoticeList(SysNotice notice);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增公告
|
|
||||||
*
|
|
||||||
* @param notice 公告信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int insertNotice(SysNotice notice);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改公告
|
|
||||||
*
|
|
||||||
* @param notice 公告信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int updateNotice(SysNotice notice);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除公告
|
|
||||||
*
|
|
||||||
* @param noticeId 公告ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int deleteNoticeById(Long noticeId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除公告信息
|
|
||||||
*
|
|
||||||
* @param noticeIds 需要删除的公告ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int deleteNoticeByIds(Long[] noticeIds);
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
package com.ruoyi.system.mapper;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.ruoyi.system.domain.SysOperLog;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 操作日志 数据层
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
public interface SysOperLogMapper {
|
|
||||||
/**
|
|
||||||
* 新增操作日志
|
|
||||||
*
|
|
||||||
* @param operLog 操作日志对象
|
|
||||||
*/
|
|
||||||
public void insertOperlog(SysOperLog operLog);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询系统操作日志集合
|
|
||||||
*
|
|
||||||
* @param operLog 操作日志对象
|
|
||||||
* @return 操作日志集合
|
|
||||||
*/
|
|
||||||
public List<SysOperLog> selectOperLogList(SysOperLog operLog);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除系统操作日志
|
|
||||||
*
|
|
||||||
* @param operIds 需要删除的操作日志ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int deleteOperLogByIds(Long[] operIds);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询操作日志详细
|
|
||||||
*
|
|
||||||
* @param operId 操作ID
|
|
||||||
* @return 操作日志对象
|
|
||||||
*/
|
|
||||||
public SysOperLog selectOperLogById(Long operId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 清空操作日志
|
|
||||||
*/
|
|
||||||
public void cleanOperLog();
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
package com.ruoyi.system.service;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import com.ruoyi.system.domain.SysNotice;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 公告 服务层
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
public interface ISysNoticeService
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* 查询公告信息
|
|
||||||
*
|
|
||||||
* @param noticeId 公告ID
|
|
||||||
* @return 公告信息
|
|
||||||
*/
|
|
||||||
public SysNotice selectNoticeById(Long noticeId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询公告列表
|
|
||||||
*
|
|
||||||
* @param notice 公告信息
|
|
||||||
* @return 公告集合
|
|
||||||
*/
|
|
||||||
public List<SysNotice> selectNoticeList(SysNotice notice);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增公告
|
|
||||||
*
|
|
||||||
* @param notice 公告信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int insertNotice(SysNotice notice);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改公告
|
|
||||||
*
|
|
||||||
* @param notice 公告信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int updateNotice(SysNotice notice);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除公告信息
|
|
||||||
*
|
|
||||||
* @param noticeId 公告ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int deleteNoticeById(Long noticeId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除公告信息
|
|
||||||
*
|
|
||||||
* @param noticeIds 需要删除的公告ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
public int deleteNoticeByIds(Long[] noticeIds);
|
|
||||||
}
|
|
|
@ -1,101 +0,0 @@
|
||||||
package com.ruoyi.system.service.impl;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
|
||||||
import com.ruoyi.common.utils.DictUtils;
|
|
||||||
import com.ruoyi.system.mapper.SysDictDataMapper;
|
|
||||||
import com.ruoyi.system.service.ISysDictDataService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典 业务层处理
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class SysDictDataServiceImpl implements ISysDictDataService {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SysDictDataMapper dictDataMapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据条件分页查询字典数据
|
|
||||||
*
|
|
||||||
* @param dictData 字典数据信息
|
|
||||||
* @return 字典数据集合信息
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SysDictData> selectDictDataList(SysDictData dictData) {
|
|
||||||
return dictDataMapper.selectDictDataList(dictData);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据字典类型和字典键值查询字典数据信息
|
|
||||||
*
|
|
||||||
* @param dictType 字典类型
|
|
||||||
* @param dictValue 字典键值
|
|
||||||
* @return 字典标签
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String selectDictLabel(String dictType, String dictValue) {
|
|
||||||
return dictDataMapper.selectDictLabel(dictType, dictValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据字典数据ID查询信息
|
|
||||||
*
|
|
||||||
* @param dictCode 字典数据ID
|
|
||||||
* @return 字典数据
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public SysDictData selectDictDataById(Long dictCode) {
|
|
||||||
return dictDataMapper.selectDictDataById(dictCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除字典数据信息
|
|
||||||
*
|
|
||||||
* @param dictCodes 需要删除的字典数据ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int deleteDictDataByIds(Long[] dictCodes) {
|
|
||||||
int row = dictDataMapper.deleteDictDataByIds(dictCodes);
|
|
||||||
if (row > 0) {
|
|
||||||
DictUtils.clearDictCache();
|
|
||||||
}
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增保存字典数据信息
|
|
||||||
*
|
|
||||||
* @param dictData 字典数据信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int insertDictData(SysDictData dictData) {
|
|
||||||
int row = dictDataMapper.insertDictData(dictData);
|
|
||||||
if (row > 0) {
|
|
||||||
DictUtils.clearDictCache();
|
|
||||||
}
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改保存字典数据信息
|
|
||||||
*
|
|
||||||
* @param dictData 字典数据信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int updateDictData(SysDictData dictData) {
|
|
||||||
int row = dictDataMapper.updateDictData(dictData);
|
|
||||||
if (row > 0) {
|
|
||||||
DictUtils.clearDictCache();
|
|
||||||
}
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,177 +0,0 @@
|
||||||
package com.ruoyi.system.service.impl;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import com.ruoyi.common.constant.UserConstants;
|
|
||||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
|
||||||
import com.ruoyi.common.core.domain.entity.SysDictType;
|
|
||||||
import com.ruoyi.common.exception.CustomException;
|
|
||||||
import com.ruoyi.common.utils.DictUtils;
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
|
||||||
import com.ruoyi.system.mapper.SysDictDataMapper;
|
|
||||||
import com.ruoyi.system.mapper.SysDictTypeMapper;
|
|
||||||
import com.ruoyi.system.service.ISysDictTypeService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 字典 业务层处理
|
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class SysDictTypeServiceImpl implements ISysDictTypeService {
|
|
||||||
@Autowired
|
|
||||||
private SysDictTypeMapper dictTypeMapper;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SysDictDataMapper dictDataMapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 项目启动时,初始化字典到缓存
|
|
||||||
*/
|
|
||||||
@PostConstruct
|
|
||||||
public void init() {
|
|
||||||
List<SysDictType> dictTypeList = dictTypeMapper.selectDictTypeAll();
|
|
||||||
for (SysDictType dictType : dictTypeList) {
|
|
||||||
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dictType.getDictType());
|
|
||||||
DictUtils.setDictCache(dictType.getDictType(), dictDatas);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据条件分页查询字典类型
|
|
||||||
*
|
|
||||||
* @param dictType 字典类型信息
|
|
||||||
* @return 字典类型集合信息
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SysDictType> selectDictTypeList(SysDictType dictType) {
|
|
||||||
return dictTypeMapper.selectDictTypeList(dictType);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据所有字典类型
|
|
||||||
*
|
|
||||||
* @return 字典类型集合信息
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SysDictType> selectDictTypeAll() {
|
|
||||||
return dictTypeMapper.selectDictTypeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据字典类型查询字典数据
|
|
||||||
*
|
|
||||||
* @param dictType 字典类型
|
|
||||||
* @return 字典数据集合信息
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SysDictData> selectDictDataByType(String dictType) {
|
|
||||||
List<SysDictData> dictDatas = DictUtils.getDictCache(dictType);
|
|
||||||
if (StringUtils.isNotEmpty(dictDatas)) {
|
|
||||||
return dictDatas;
|
|
||||||
}
|
|
||||||
dictDatas = dictDataMapper.selectDictDataByType(dictType);
|
|
||||||
if (StringUtils.isNotEmpty(dictDatas)) {
|
|
||||||
DictUtils.setDictCache(dictType, dictDatas);
|
|
||||||
return dictDatas;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据字典类型ID查询信息
|
|
||||||
*
|
|
||||||
* @param dictId 字典类型ID
|
|
||||||
* @return 字典类型
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public SysDictType selectDictTypeById(Long dictId) {
|
|
||||||
return dictTypeMapper.selectDictTypeById(dictId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据字典类型查询信息
|
|
||||||
*
|
|
||||||
* @param dictType 字典类型
|
|
||||||
* @return 字典类型
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public SysDictType selectDictTypeByType(String dictType) {
|
|
||||||
return dictTypeMapper.selectDictTypeByType(dictType);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除字典类型信息
|
|
||||||
*
|
|
||||||
* @param dictIds 需要删除的字典ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int deleteDictTypeByIds(Long[] dictIds) {
|
|
||||||
for (Long dictId : dictIds) {
|
|
||||||
SysDictType dictType = selectDictTypeById(dictId);
|
|
||||||
if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) {
|
|
||||||
throw new CustomException(String.format("%1$s已分配,不能删除", dictType.getDictName()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int count = dictTypeMapper.deleteDictTypeByIds(dictIds);
|
|
||||||
if (count > 0) {
|
|
||||||
DictUtils.clearDictCache();
|
|
||||||
}
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增保存字典类型信息
|
|
||||||
*
|
|
||||||
* @param dictType 字典类型信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int insertDictType(SysDictType dictType) {
|
|
||||||
int row = dictTypeMapper.insertDictType(dictType);
|
|
||||||
if (row > 0) {
|
|
||||||
DictUtils.clearDictCache();
|
|
||||||
}
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改保存字典类型信息
|
|
||||||
*
|
|
||||||
* @param dictType 字典类型信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public int updateDictType(SysDictType dictType) {
|
|
||||||
SysDictType oldDict = dictTypeMapper.selectDictTypeById(dictType.getDictId());
|
|
||||||
dictDataMapper.updateDictDataType(oldDict.getDictType(), dictType.getDictType());
|
|
||||||
int row = dictTypeMapper.updateDictType(dictType);
|
|
||||||
if (row > 0) {
|
|
||||||
DictUtils.clearDictCache();
|
|
||||||
}
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验字典类型称是否唯一
|
|
||||||
*
|
|
||||||
* @param dict 字典类型
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String checkDictTypeUnique(SysDictType dict) {
|
|
||||||
Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId();
|
|
||||||
SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType());
|
|
||||||
if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) {
|
|
||||||
return UserConstants.NOT_UNIQUE;
|
|
||||||
}
|
|
||||||
return UserConstants.UNIQUE;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<!DOCTYPE mapper
|
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="com.ruoyi.system.mapper.SysNoticeMapper">
|
|
||||||
|
|
||||||
<resultMap type="SysNotice" id="SysNoticeResult">
|
|
||||||
<result property="noticeId" column="notice_id" />
|
|
||||||
<result property="noticeTitle" column="notice_title" />
|
|
||||||
<result property="noticeType" column="notice_type" />
|
|
||||||
<result property="noticeContent" column="notice_content" />
|
|
||||||
<result property="status" column="status" />
|
|
||||||
<result property="createBy" column="create_by" />
|
|
||||||
<result property="createTime" column="create_time" />
|
|
||||||
<result property="updateBy" column="update_by" />
|
|
||||||
<result property="updateTime" column="update_time" />
|
|
||||||
<result property="remark" column="remark" />
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<sql id="selectNoticeVo">
|
|
||||||
select notice_id, notice_title, notice_type, cast(notice_content as char) as notice_content, status, create_by, create_time, update_by, update_time, remark
|
|
||||||
from sys_notice
|
|
||||||
</sql>
|
|
||||||
|
|
||||||
<select id="selectNoticeById" parameterType="Long" resultMap="SysNoticeResult">
|
|
||||||
<include refid="selectNoticeVo"/>
|
|
||||||
where notice_id = #{noticeId}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="selectNoticeList" parameterType="SysNotice" resultMap="SysNoticeResult">
|
|
||||||
<include refid="selectNoticeVo"/>
|
|
||||||
<where>
|
|
||||||
<if test="noticeTitle != null and noticeTitle != ''">
|
|
||||||
AND notice_title like concat('%', #{noticeTitle}, '%')
|
|
||||||
</if>
|
|
||||||
<if test="noticeType != null and noticeType != ''">
|
|
||||||
AND notice_type = #{noticeType}
|
|
||||||
</if>
|
|
||||||
<if test="createBy != null and createBy != ''">
|
|
||||||
AND create_by like concat('%', #{createBy}, '%')
|
|
||||||
</if>
|
|
||||||
</where>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<insert id="insertNotice" parameterType="SysNotice">
|
|
||||||
insert into sys_notice (
|
|
||||||
<if test="noticeTitle != null and noticeTitle != '' ">notice_title, </if>
|
|
||||||
<if test="noticeType != null and noticeType != '' ">notice_type, </if>
|
|
||||||
<if test="noticeContent != null and noticeContent != '' ">notice_content, </if>
|
|
||||||
<if test="status != null and status != '' ">status, </if>
|
|
||||||
<if test="remark != null and remark != ''">remark,</if>
|
|
||||||
<if test="createBy != null and createBy != ''">create_by,</if>
|
|
||||||
create_time
|
|
||||||
)values(
|
|
||||||
<if test="noticeTitle != null and noticeTitle != ''">#{noticeTitle}, </if>
|
|
||||||
<if test="noticeType != null and noticeType != ''">#{noticeType}, </if>
|
|
||||||
<if test="noticeContent != null and noticeContent != ''">#{noticeContent}, </if>
|
|
||||||
<if test="status != null and status != ''">#{status}, </if>
|
|
||||||
<if test="remark != null and remark != ''">#{remark},</if>
|
|
||||||
<if test="createBy != null and createBy != ''">#{createBy},</if>
|
|
||||||
sysdate()
|
|
||||||
)
|
|
||||||
</insert>
|
|
||||||
|
|
||||||
<update id="updateNotice" parameterType="SysNotice">
|
|
||||||
update sys_notice
|
|
||||||
<set>
|
|
||||||
<if test="noticeTitle != null and noticeTitle != ''">notice_title = #{noticeTitle}, </if>
|
|
||||||
<if test="noticeType != null and noticeType != ''">notice_type = #{noticeType}, </if>
|
|
||||||
<if test="noticeContent != null">notice_content = #{noticeContent}, </if>
|
|
||||||
<if test="status != null and status != ''">status = #{status}, </if>
|
|
||||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
|
||||||
update_time = sysdate()
|
|
||||||
</set>
|
|
||||||
where notice_id = #{noticeId}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<delete id="deleteNoticeById" parameterType="Long">
|
|
||||||
delete from sys_notice where notice_id = #{noticeId}
|
|
||||||
</delete>
|
|
||||||
|
|
||||||
<delete id="deleteNoticeByIds" parameterType="Long">
|
|
||||||
delete from sys_notice where notice_id in
|
|
||||||
<foreach item="noticeId" collection="array" open="(" separator="," close=")">
|
|
||||||
#{noticeId}
|
|
||||||
</foreach>
|
|
||||||
</delete>
|
|
||||||
|
|
||||||
</mapper>
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
package cn.iocoder.dashboard.modules.system.controller.notice;
|
||||||
|
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@Api(tags = "通知公告 API")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/system/notice")
|
||||||
|
public class SysNoticeController {
|
||||||
|
|
||||||
|
// /**
|
||||||
|
// * 获取通知公告列表
|
||||||
|
// */
|
||||||
|
// @PreAuthorize("@ss.hasPermi('system:notice:list')")
|
||||||
|
// @GetMapping("/list")
|
||||||
|
// public TableDataInfo list(SysNotice notice) {
|
||||||
|
// startPage();
|
||||||
|
// List<SysNotice> list = noticeService.selectNoticeList(notice);
|
||||||
|
// return getDataTable(list);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 根据通知公告编号获取详细信息
|
||||||
|
// */
|
||||||
|
// @PreAuthorize("@ss.hasPermi('system:notice:query')")
|
||||||
|
// @GetMapping(value = "/{noticeId}")
|
||||||
|
// public AjaxResult getInfo(@PathVariable Long noticeId) {
|
||||||
|
// return AjaxResult.success(noticeService.selectNoticeById(noticeId));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 新增通知公告
|
||||||
|
// */
|
||||||
|
// @PreAuthorize("@ss.hasPermi('system:notice:add')")
|
||||||
|
// @Log(title = "通知公告", businessType = BusinessType.INSERT)
|
||||||
|
// @PostMapping
|
||||||
|
// public AjaxResult add(@Validated @RequestBody SysNotice notice) {
|
||||||
|
// notice.setCreateBy(SecurityUtils.getUsername());
|
||||||
|
// return toAjax(noticeService.insertNotice(notice));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 修改通知公告
|
||||||
|
// */
|
||||||
|
// @PreAuthorize("@ss.hasPermi('system:notice:edit')")
|
||||||
|
// @Log(title = "通知公告", businessType = BusinessType.UPDATE)
|
||||||
|
// @PutMapping
|
||||||
|
// public AjaxResult edit(@Validated @RequestBody SysNotice notice) {
|
||||||
|
// notice.setUpdateBy(SecurityUtils.getUsername());
|
||||||
|
// return toAjax(noticeService.updateNotice(notice));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 删除通知公告
|
||||||
|
// */
|
||||||
|
// @PreAuthorize("@ss.hasPermi('system:notice:remove')")
|
||||||
|
// @Log(title = "通知公告", businessType = BusinessType.DELETE)
|
||||||
|
// @DeleteMapping("/{noticeIds}")
|
||||||
|
// public AjaxResult remove(@PathVariable Long[] noticeIds) {
|
||||||
|
// return toAjax(noticeService.deleteNoticeByIds(noticeIds));
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package cn.iocoder.dashboard.modules.system.convert.notice;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface SysNoticeConvert {
|
||||||
|
|
||||||
|
SysNoticeConvert INSTANCE = Mappers.getMapper(SysNoticeConvert.class);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package cn.iocoder.dashboard.modules.system.dal.mysql.dao.notice;
|
||||||
|
|
||||||
|
import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.notice.SysNoticeDO;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface SysNoticeMapper extends BaseMapper<SysNoticeDO> {
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.notice;
|
||||||
|
|
||||||
|
import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
|
||||||
|
import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import cn.iocoder.dashboard.modules.system.enums.notice.SysNoticeTypeEnum;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知公告表
|
||||||
|
*
|
||||||
|
* @author ruoyi
|
||||||
|
*/
|
||||||
|
@TableName("sys_notice")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class SysNoticeDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公告ID
|
||||||
|
*/
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 公告标题
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "公告标题不能为空")
|
||||||
|
@Size(max = 50, message = "公告标题不能超过50个字符")
|
||||||
|
private String title;
|
||||||
|
/**
|
||||||
|
* 公告类型
|
||||||
|
*
|
||||||
|
* 枚举 {@link SysNoticeTypeEnum}
|
||||||
|
*/
|
||||||
|
@TableField("notice_type")
|
||||||
|
private String type;
|
||||||
|
/**
|
||||||
|
* 公告内容
|
||||||
|
*/
|
||||||
|
private String content;
|
||||||
|
/**
|
||||||
|
* 公告状态
|
||||||
|
*
|
||||||
|
* 枚举 {@link CommonStatusEnum}
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package cn.iocoder.dashboard.modules.system.enums.notice;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通知类型
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum SysNoticeTypeEnum {
|
||||||
|
|
||||||
|
NOTICE(1),
|
||||||
|
ANNOUNCEMENT(2);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型
|
||||||
|
*/
|
||||||
|
private final Integer type;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue