zhongrj
2023-09-14 85b5b3adc7e18554676412cf9d91d03d44f77706
新增考证附件的上传及查询管理
1 files modified
7 files added
326 ■■■■■ changed files
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/TextualResearchAttach.java 59 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/TextualResearchAttachVO.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/TextualResearchAttachController.java 115 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java 40 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.java 27 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml 14 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/TextualResearchAttachService.java 23 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/TextualResearchAttachServiceImpl.java 35 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/TextualResearchAttach.java
New file
@@ -0,0 +1,59 @@
package cn.gistack.resource.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
 * 考证附件表
 *
 * @author zhongrj
 * @date 2023-09-13
 */
@Data
@TableName(value = "sm_textual_research_attach")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class TextualResearchAttach {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    @TableId(value = "id",type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 名称
     */
    @ApiModelProperty(value = "名称")
    private String name;
    /**
     * 路径
     */
    @ApiModelProperty(value = "路径")
    private String path;
    /**
     * 水库编号
     */
    @ApiModelProperty(value = "水库编号")
    private String resGuid;
    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
}
skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/TextualResearchAttachVO.java
New file
@@ -0,0 +1,13 @@
package cn.gistack.resource.vo;
import cn.gistack.resource.entity.TextualResearchAttach;
import lombok.Data;
@Data
public class TextualResearchAttachVO extends TextualResearchAttach {
    /**
     * 是否分页 传值就不分页
     */
    private Integer isPage;
}
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/TextualResearchAttachController.java
New file
@@ -0,0 +1,115 @@
package cn.gistack.resource.controller;
import cn.gistack.resource.entity.TextualResearchAttach;
import cn.gistack.resource.service.TextualResearchAttachService;
import cn.gistack.resource.vo.TextualResearchAttachVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
/**
 * 考证附件控制层
 * @author zhongrj
 * @date 2023-05-29
 */
@RestController
@AllArgsConstructor
@RequestMapping("/textualResearchAttach/textualResearchAttach")
public class TextualResearchAttachController {
    private final TextualResearchAttachService textualResearchAttachService;
    /**
     * 分页列表查询
     *
     * @param textualResearchAttach
     * @return
     */
    @ApiOperation(value="考证附件-分页列表查询", notes="考证附件-分页列表查询")
    @GetMapping(value = "/list")
    public R queryPageList(TextualResearchAttach textualResearchAttach, Query query) {
        IPage<TextualResearchAttach> pageList = textualResearchAttachService.page(Condition.getPage(query), Condition.getQueryWrapper(textualResearchAttach));
        return R.data(pageList);
    }
    /**
     * 自定义分页列表查询
     * @param query
     * @param textualResearchAttach
     * @return
     */
    @ApiOperation(value="考证附件-自定义分页列表查询", notes="考证附件-自定义分页列表查询")
    @GetMapping(value = "/page")
    public R page(TextualResearchAttachVO textualResearchAttach, Query query) {
        return R.data( textualResearchAttachService.selectTextualResearchAttachPage(Condition.getPage(query),textualResearchAttach));
    }
    /**
     * 添加
     *
     * @param textualResearchAttach
     * @return
     */
    @ApiOperation(value="考证附件-添加", notes="考证附件-添加")
    @PostMapping(value = "/add")
    public R add(@RequestBody TextualResearchAttach textualResearchAttach) {
        return R.data(textualResearchAttachService.save(textualResearchAttach));
    }
    /**
     * 编辑
     *
     * @param textualResearchAttach
     * @return
     */
    @ApiOperation(value="考证附件-编辑", notes="考证附件-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public R edit(@RequestBody TextualResearchAttach textualResearchAttach) {
        return R.data(textualResearchAttachService.updateById(textualResearchAttach));
    }
    /**
     * 通过id删除
     *
     * @param id
     * @return
     */
    @ApiOperation(value="考证附件-通过id删除", notes="考证附件-通过id删除")
    @PostMapping(value = "/delete")
    public R delete(@RequestParam(name="id",required=true) String id) {
        return R.data(textualResearchAttachService.removeById(id));
    }
    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    @ApiOperation(value="考证附件-批量删除", notes="考证附件-批量删除")
    @PostMapping(value = "/deleteBatch")
    public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        return R.data(this.textualResearchAttachService.removeByIds(Arrays.asList(ids.split(","))));
    }
    /**
     * 通过id查询
     *
     * @param id
     * @return
     */
    @ApiOperation(value="考证附件-通过id查询", notes="考证附件-通过id查询")
    @GetMapping(value = "/queryById")
    public R queryById(@RequestParam(name="id",required=true) String id) {
        TextualResearchAttach textualResearchAttach = textualResearchAttachService.getById(id);
        return R.data(textualResearchAttach);
    }
}
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java
@@ -17,7 +17,9 @@
package cn.gistack.resource.endpoint;
import cn.gistack.resource.builder.oss.OssBuilder;
import cn.gistack.resource.entity.TextualResearchAttach;
import cn.gistack.resource.service.IAttachService;
import cn.gistack.resource.service.TextualResearchAttachService;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
@@ -33,10 +35,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * 对象存储端点
@@ -59,6 +58,11 @@
     * 附件表服务
     */
    private final IAttachService attachService;
    /**
     * 附件表服务
     */
    private final TextualResearchAttachService textualResearchAttachService;
    /**
     * 创建存储桶
@@ -186,6 +190,34 @@
    }
    /**
     * 考证附件上传并保存
     * @param file 文件
     * @param resGuid 水库编号
     * @return
     */
    @SneakyThrows
    @PostMapping("/put-file-by-textualResearchAttach")
    public R putFileByPrefixTextualResearchAttach(@RequestParam MultipartFile file,String resGuid) {
        BladeFile bladeFile = ossBuilder.templateByPrefixPath("textualResearchAttach").putFile(file.getOriginalFilename(), file.getInputStream());
        buildTextualResearchAttach(resGuid,bladeFile);
        return R.data(bladeFile);
    }
    /**
     * 保存考证附件上传数据
     * @param bladeFile
     */
    private void buildTextualResearchAttach(String resGuid,BladeFile bladeFile) {
        TextualResearchAttach attach = new TextualResearchAttach();
        attach.setResGuid(resGuid);
        attach.setPath(bladeFile.getName());
        attach.setName(bladeFile.getOriginalName());
        attach.setCreateTime(new Date());
        // 保存
        textualResearchAttachService.save(attach);
    }
    /**
     * 上传文件
     *
     * @param fileName 存储桶对象名称
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.java
New file
@@ -0,0 +1,27 @@
package cn.gistack.resource.mapper;
import cn.gistack.resource.entity.TextualResearchAttach;
import cn.gistack.resource.vo.TextualResearchAttachVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * 考证附件详情mapper映射层
 * @author zhongrj
 * @date 2023-09-13
 */
public interface TextualResearchAttachMapper extends BaseMapper<TextualResearchAttach> {
    /**
     * 自定义分页列表查询
     * @param page
     * @param textualResearchAttach
     * @return
     */
    List<TextualResearchAttachVO> selectTextualResearchAttachPage(IPage<TextualResearchAttachVO> page,
                                                                  @Param("textualResearchAttach") TextualResearchAttachVO textualResearchAttach);
}
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/TextualResearchAttachMapper.xml
New file
@@ -0,0 +1,14 @@
<?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="cn.gistack.resource.mapper.TextualResearchAttachMapper">
    <!--自定义分页列表查询-->
    <select id="selectTextualResearchAttachPage" resultType="cn.gistack.resource.vo.TextualResearchAttachVO">
        select * from sm_textual_research_attach
        where 1=1
        <if test="textualResearchAttach.resGuid!=null and textualResearchAttach.resGuid!=''">
            and res_guid = #{textualResearchAttach.resGuid}
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/TextualResearchAttachService.java
New file
@@ -0,0 +1,23 @@
package cn.gistack.resource.service;
import cn.gistack.resource.entity.TextualResearchAttach;
import cn.gistack.resource.vo.TextualResearchAttachVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * 考证附件服务层
 * @author zhongrj
 * @date 2023-09-12
 */
public interface TextualResearchAttachService extends IService<TextualResearchAttach> {
    /**
     * 自定义分页列表查询
     * @param page
     * @param textualResearchAttach
     * @return
     */
    Object selectTextualResearchAttachPage(IPage<TextualResearchAttachVO> page, TextualResearchAttachVO textualResearchAttach);
}
skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/TextualResearchAttachServiceImpl.java
New file
@@ -0,0 +1,35 @@
package cn.gistack.resource.service.impl;
import cn.gistack.resource.entity.TextualResearchAttach;
import cn.gistack.resource.mapper.TextualResearchAttachMapper;
import cn.gistack.resource.service.TextualResearchAttachService;
import cn.gistack.resource.vo.TextualResearchAttachVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * 考证附件服务实现层
 * @author zhongrj
 * @date 2023-09-13
 */
@Service
public class TextualResearchAttachServiceImpl extends ServiceImpl<TextualResearchAttachMapper, TextualResearchAttach> implements TextualResearchAttachService {
    /**
     * 自定义分页列表查询
     * @param page
     * @param textualResearchAttach
     * @return
     */
    @Override
    public Object selectTextualResearchAttachPage(IPage<TextualResearchAttachVO> page, TextualResearchAttachVO textualResearchAttach) {
        if (null!=textualResearchAttach.getIsPage()){
            // 不分页
            return baseMapper.selectTextualResearchAttachPage(page,textualResearchAttach);
        }
        return page.setRecords(baseMapper.selectTextualResearchAttachPage(page,textualResearchAttach));
    }
}