基于若依框架简单的增删改查业务的后端书写

以信息系统为例(含有附件)的增删改查书写(后端)

首先我们先建两个表(sys_message和sys_message_file),这两个表用来存放信息系统的信息以及附件信息。

前后端需要统一字段:

message表字段注释
id编号
file_name文件名称
file_type文件类型
introduction内容简介
create_by创建人
create_time创建时间
update_by更新人
update_time更新时间
file表字段注释
id文件ID
message_id信息编号
name文件名
path文件路径
del_flag删除标志(0:正常,2:已删除)

根据两个表使用若依代码生成器,生成controller,service,domain,mapper,mapper.xml,以及前端的Vue文件.
这两个表的关联方式为sys_message.id=sys_message_file.message_id;
但是我们可以通过实体类来关联:

private List<SysMessageFile> files;

这就把信息与附件绑定在一起,并且附件是一个数组对象。

public class SysMessage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 文件名称 */
    @Excel(name = "文件名称")
    private String fileName;

    /** 文件类型 */
    @Excel(name = "文件类型")
    private String fileType;

    /** 内容简介 */
    @Excel(name = "内容简介")
    private String introduction;
    private List<SysMessageFile> files;
    private String delFlag;

    public List<SysMessageFile> getFiles() {
        return files;
    }

    public void setFiles(List<SysMessageFile> files) {
        this.files = files;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }


    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setFileName(String fileName)
    {
        this.fileName = fileName;
    }

    public String getFileName()
    {
        return fileName;
    }
    public void setFileType(String fileType)
    {
        this.fileType = fileType;
    }

    public String getFileType()
    {
        return fileType;
    }
    public void setIntroduction(String introduction)
    {
        this.introduction = introduction;
    }

    public String getIntroduction()
    {
        return introduction;
    }

    @Override
    public String toString() {
        return "SysMessage{" +
                "id=" + id +
                ", fileName='" + fileName + '\'' +
                ", fileType='" + fileType + '\'' +
                ", introduction='" + introduction + '\'' +
                ", files=" + files +
                ", delFlag='" + delFlag + '\'' +
                '}';
    }
}

信息发布系统及附件增删改查功能(自动生成的就不写了)
信息发布系统的业务层:

@Service
public class SysMessageServiceImpl implements ISysMessageService
{
    @Autowired
    private SysMessageMapper sysMessageMapper;
    @Autowired
    private ISysMessageFileService sysMessageFileService;
    @Autowired
    private SysMessageFileMapper sysMessageFileMapper;

    /**
     * 查询信息发布系统
     *
     * @param id 信息发布系统ID
     * @return 信息发布系统
     */
    @Override
    public SysMessage selectSysMessageById(Long id)
    {
        SysMessage sysMessage =sysMessageMapper.selectSysMessageById(id);
        SysMessageFile file =new SysMessageFile();
        file.setMessageId(sysMessage.getId());
        sysMessage.setFiles(sysMessageFileService.selectSysMessageFileList(file));
        return sysMessage;
    }

    /**
     * 查询信息发布系统列表
     *
     * @param sysMessage 信息发布系统
     * @return 信息发布系统
     */
    @Override
    public List<SysMessage> selectSysMessageList(SysMessage sysMessage)
    {
        List<SysMessage> list = sysMessageMapper.selectSysMessageList(sysMessage);
        for(SysMessage item :list){
            SysMessageFile file = new SysMessageFile();
            file.setMessageId(item.getId());
            List<SysMessageFile> files =sysMessageFileService.selectSysMessageFileList(file);
            item.setFiles(files);
        }
        return list;
    }

    /**
     * 新增信息发布系统
     *
     * @param sysMessage 信息发布系统
     * @return 结果
     */
    @Override
    public int insertSysMessage(SysMessage sysMessage)
    {
        sysMessage.setCreateBy(SecurityUtils.getUsername());
        sysMessage.setCreateTime(DateUtils.getNowDate());
        int row = sysMessageMapper.insertSysMessage(sysMessage);
        if(!CollectionUtils.isEmpty(sysMessage.getFiles())){
            for(int j = 0;j<sysMessage.getFiles().size();j++){
                SysMessageFile file =sysMessage.getFiles().get(j);
                file.setMessageId(sysMessage.getId());
                sysMessageFileService.insertSysMessageFile(file);
            }
        }
        return row;
    }

    /**
     * 修改信息发布系统
     *
     * @param sysMessage 信息发布系统
     * @return 结果
     */
    @Override
    public int updateSysMessage(SysMessage sysMessage)
    {
        sysMessage.setUpdateBy(SecurityUtils.getUsername());
        sysMessage.setUpdateTime(DateUtils.getNowDate());
        List<SysMessageFile> fileList = sysMessage.getFiles();
        if(!CollectionUtils.isEmpty(fileList)){
            for (SysMessageFile file:fileList) {
                if(file!=null){
                    file.setMessageId(sysMessage.getId());
                    sysMessageFileService.insertSysMessageFile(file);
                }
            }
//            sysRepository.setFile(sysRepository.getFiles().get(0).getName());
        }
        return sysMessageMapper.updateSysMessage(sysMessage);
    }

    /**
     * 批量删除信息发布系统
     *
     * @param ids 需要删除的信息发布系统ID
     * @return 结果
     */
    @Override
    public int deleteSysMessageByIds(Long[] ids)
    {
        List<SysMessage> list = sysMessageMapper.selectSysMessageByIds(ids);
        list.forEach(item->{
            SysMessageFile file = new SysMessageFile();
            file.setMessageId(item.getId());
            sysMessageFileService.updateSysMessageFileByDelFlag(file);

        });
        return sysMessageMapper.deleteSysMessageByIds(ids);
    }

    /**
     * 删除信息发布系统信息
     *
     * @param id 信息发布系统ID
     * @return 结果
     */
    @Override
    public int deleteSysMessageById(Long id)
    {
        SysMessageFile file = new SysMessageFile();
        file.setMessageId(id);
        sysMessageFileService.updateSysMessageFileByDelFlag(file);
        return sysMessageMapper.deleteSysMessageById(id);
    }
}

Mapper及Mapper.xml

    /**
     *通过多个Id批量查询
     */
public interface SysMessageMapper
{
	 public List<SysMessage> selectSysMessageByIds(Long[] ids);
}
<?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.SysMessageMapper">

    <resultMap type="SysMessage" id="SysMessageResult">
        <result property="id"    column="id"    />
        <result property="fileName"    column="file_name"    />
        <result property="fileType"    column="file_type"    />
        <result property="introduction"    column="introduction"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
    </resultMap>

    <sql id="selectSysMessageVo">
        select id, file_name, file_type, introduction, create_by, create_time, update_by, update_time from sys_message
    </sql>

    <select id="selectSysMessageByIds" parameterType="Long" resultMap="SysMessageResult">
        <include refid="selectSysMessageVo"/>
        where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </select>
</mapper>

File功能:
ISysMessageFileService

public interface ISysMessageFileService
{
    public int updateSysMessageFileByDelFlag(SysMessageFile sysMessageFile);
}

SysMessageFileServiceImpl:

@Service
public class SysMessageFileServiceImpl implements ISysMessageFileService
{
    @Autowired
    private SysMessageFileMapper sysMessageFileMapper;
    /**
     * 新增
     *
     * @param sysMessageFile 
     * @return 结果
     */
    @Override
    public int insertSysMessageFile(SysMessageFile sysMessageFile)
    {
        if(StringUtils.isEmpty(sysMessageFile.getName()))throw new UtilException("请填写文件名称");
        if(StringUtils.isEmpty(sysMessageFile.getPath()))throw new UtilException("请填写文件路径");
        return sysMessageFileMapper.insertSysMessageFile(sysMessageFile);
    }
    @Override
    public int updateSysMessageFileByDelFlag(SysMessageFile sysMessageFile){
        return sysMessageFileMapper.updateSysMessageFileByDelFlag(sysMessageFile);
    }
}

FileMapper:

public interface SysMessageFileMapper
{
    /**
     * 新增
     *
     * @param sysMessageFile 
     * @return 结果
     */
    public int insertSysMessageFile(SysMessageFile sysMessageFile);

    public int updateSysMessageFileByDelFlag(SysMessageFile sysMessageFile);

Mapper.xml:

<?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.SysMessageFileMapper">

    <resultMap type="SysMessageFile" id="SysMessageFileResult">
        <result property="id"    column="id"    />
        <result property="messageId"    column="message_id"    />
        <result property="name"    column="name"    />
        <result property="path"    column="path"    />
        <result property="delFlag"    column="del_flag"    />
    </resultMap>

    <sql id="selectSysMessageFileVo">
        select id, message_id, name, path, del_flag from sys_message_file
    </sql>
    <update id="updateSysMessageFileByDelFlag" parameterType="SysMessageFile">
        update sys_message_file set del_flag = '2' where message_id = #{messageId}
    </update>
</mapper>

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值