ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-pojo/src/main/java/com/ycl/platform/domain/form/NotifyForm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-pojo/src/main/java/com/ycl/platform/domain/query/NotifyQuery.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/NotifyVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/java/com/ycl/platform/mapper/NotifyMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/java/com/ycl/platform/service/NotifyService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/java/com/ycl/platform/service/impl/NotifyServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/resources/mapper/zgyw/NotifyMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Notify.java
New file @@ -0,0 +1,50 @@ package com.ycl.platform.domain.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ycl.platform.base.AbsEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; /** * 通知 * * @author xp * @since 2024-04-07 */ @Data @Accessors(chain = true) @TableName("t_notify") @ApiModel(value = "Notify对象", description = "通知") public class Notify extends AbsEntity { private static final long serialVersionUID = 1L; @ApiModelProperty("通知类型") @TableField("notify_type") private String notifyType; @ApiModelProperty("通知内容") @TableField("content") private String content; @ApiModelProperty("通知谁") @TableField("notify_who") private Integer notifyWho; @ApiModelProperty("已读") @TableField("readed") private String readed; @ApiModelProperty("紧急") @TableField("urgent") private String urgent; @ApiModelProperty("工单ID") @TableField("work_order_id") private Integer workOrderId; } ycl-pojo/src/main/java/com/ycl/platform/domain/form/NotifyForm.java
New file @@ -0,0 +1,60 @@ package com.ycl.platform.domain.form; import com.ycl.system.domain.group.Update; import com.ycl.system.domain.group.Add; import com.ycl.platform.base.AbsForm; import com.ycl.platform.domain.entity.Notify; import java.time.LocalDateTime; import org.springframework.beans.BeanUtils; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import org.springframework.lang.NonNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; /** * 通知表单 * * @author xp * @since 2024-04-07 */ @Data @Accessors(chain = true) @ApiModel(value = "Notify表单", description = "通知表单") public class NotifyForm extends AbsForm { @NotBlank(message = "通知类型不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("通知类型") private String notifyType; @NotBlank(message = "通知内容不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("通知内容") private String content; @NotNull(message = "通知谁不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("通知谁") private Integer notifyWho; @NotBlank(message = "已读不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("已读") private String readed; @NotBlank(message = "紧急不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("紧急") private String urgent; @NotNull(message = "工单ID不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("工单ID") private Integer workOrderId; public static Notify getEntityByForm(@NonNull NotifyForm form, Notify entity) { if(entity == null) { entity = new Notify(); } BeanUtils.copyProperties(form, entity); return entity; } } ycl-pojo/src/main/java/com/ycl/platform/domain/query/NotifyQuery.java
New file @@ -0,0 +1,23 @@ package com.ycl.platform.domain.query; import com.ycl.platform.base.AbsQuery; import java.util.List; import org.springframework.lang.NonNull; import jakarta.validation.constraints.NotBlank; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; /** * 通知查询 * * @author xp * @since 2024-04-07 */ @Data @Accessors(chain = true) @ApiModel(value = "Notify查询", description = "通知查询") public class NotifyQuery extends AbsQuery { } ycl-pojo/src/main/java/com/ycl/platform/domain/vo/NotifyVO.java
New file @@ -0,0 +1,50 @@ package com.ycl.platform.domain.vo; import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.Notify; import java.util.List; import java.time.LocalDateTime; import org.springframework.lang.NonNull; import org.springframework.beans.BeanUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; /** * 通知展示 * * @author xp * @since 2024-04-07 */ @Data @Accessors(chain = true) public class NotifyVO extends AbsVo { /** 通知类型 */ private String notifyType; /** 通知内容 */ private String content; /** 通知谁 */ private Integer notifyWho; /** 已读 */ private String readed; /** 紧急 */ private String urgent; /** 工单ID */ private Integer workOrderId; public static NotifyVO getVoByEntity(@NonNull Notify entity, NotifyVO vo) { if(vo == null) { vo = new NotifyVO(); } BeanUtils.copyProperties(entity, vo); return vo; } } ycl-server/src/main/java/com/ycl/platform/mapper/NotifyMapper.java
New file @@ -0,0 +1,19 @@ package com.ycl.platform.mapper; import com.ycl.platform.domain.entity.Notify; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.vo.NotifyVO; import com.ycl.platform.domain.form.NotifyForm; import java.util.List; import org.apache.ibatis.annotations.Mapper; /** * 通知 Mapper 接口 * * @author xp * @since 2024-04-07 */ @Mapper public interface NotifyMapper extends BaseMapper<Notify> { } ycl-server/src/main/java/com/ycl/platform/service/NotifyService.java
New file @@ -0,0 +1,65 @@ package com.ycl.platform.service; import com.ycl.platform.domain.entity.Notify; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.system.Result; import com.ycl.platform.domain.form.NotifyForm; import com.ycl.platform.domain.query.NotifyQuery; import java.util.List; /** * 通知 服务类 * * @author xp * @since 2024-04-07 */ public interface NotifyService extends IService<Notify> { /** * 添加 * @param form * @return */ Result add(NotifyForm form); /** * 修改 * @param form * @return */ Result update(NotifyForm form); /** * 批量删除 * @param ids * @return */ Result remove(List<String> ids); /** * id删除 * @param id * @return */ Result removeById(String id); /** * 分页查询 * @param query * @return */ Result page(NotifyQuery query); /** * 根据id查找 * @param id * @return */ Result detail(String id); /** * 列表 * @return */ Result all(); } ycl-server/src/main/java/com/ycl/platform/service/impl/NotifyServiceImpl.java
New file @@ -0,0 +1,145 @@ package com.ycl.platform.service.impl; import com.ycl.platform.domain.entity.Notify; import com.ycl.platform.mapper.NotifyMapper; import com.ycl.platform.service.NotifyService; import com.ycl.system.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.form.NotifyForm; import com.ycl.platform.domain.vo.NotifyVO; import com.ycl.platform.domain.query.NotifyQuery; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.system.page.PageUtil; import org.springframework.stereotype.Service; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.ArrayList; import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.RequiredArgsConstructor; /** * 通知 服务实现类 * * @author xp * @since 2024-04-07 */ @Service @RequiredArgsConstructor public class NotifyServiceImpl extends ServiceImpl<NotifyMapper, Notify> implements NotifyService { private final NotifyMapper notifyMapper; /** * 添加 * @param form * @return */ @Override public Result add(NotifyForm form) { Notify entity = NotifyForm.getEntityByForm(form, null); if(baseMapper.insert(entity) > 0) { return Result.ok("添加成功"); } return Result.error("添加失败"); } /** * 修改 * @param form * @return */ @Override public Result update(NotifyForm form) { Notify entity = baseMapper.selectById(form.getId()); // 为空抛IllegalArgumentException,做全局异常处理 Assert.notNull(entity, "记录不存在"); BeanUtils.copyProperties(form, entity); if (baseMapper.updateById(entity) > 0) { return Result.ok("修改成功"); } return Result.error("修改失败"); } /** * 批量删除 * @param ids * @return */ @Override public Result remove(List<String> ids) { if(baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("删除成功"); } return Result.error("删除失败"); } /** * id删除 * @param id * @return */ @Override public Result removeById(String id) { if(baseMapper.deleteById(id) > 0) { return Result.ok("删除成功"); } return Result.error("删除失败"); } /** * 分页查询 * @param query * @return */ @Override public Result page(NotifyQuery query) { IPage<Notify> page = new LambdaQueryChainWrapper<>(baseMapper) .orderByDesc(Notify::getCreateTime) .page(PageUtil.getPage(query, Notify.class)); List<NotifyVO> vos = page.getRecords().stream() .map( entity -> NotifyVO.getVoByEntity(entity, null) ) .collect(Collectors.toList()); return Result.ok().data(vos).total(page.getTotal()); } /** * 根据id查找 * @param id * @return */ @Override public Result detail(String id) { Notify entity = baseMapper.selectById(id); Assert.notNull(entity, "记录不存在"); NotifyVO vo = NotifyVO.getVoByEntity(entity, null); return Result.ok().data(vo); } /** * 列表 * @return */ @Override public Result all() { List<Notify> entities = baseMapper.selectList(null); List<NotifyVO> vos = entities.stream() .map( entity -> NotifyVO.getVoByEntity(entity, null) ) .collect(Collectors.toList()); return Result.ok().data(vos); } } ycl-server/src/main/resources/mapper/zgyw/NotifyMapper.xml
New file @@ -0,0 +1,18 @@ <?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.ycl.platform.mapper.NotifyMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.NotifyVO"> <result column="id" property="id" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="notify_type" property="notifyType" /> <result column="content" property="content" /> <result column="notify_who" property="notifyWho" /> <result column="readed" property="readed" /> <result column="urgent" property="urgent" /> <result column="work_order_id" property="workOrderId" /> </resultMap> </mapper>