Commit c9c8ac28 by zhangxingmin

oss-v1版本

parent 729ff8e6
...@@ -2,15 +2,19 @@ package com.yd.oss.api.service.impl; ...@@ -2,15 +2,19 @@ package com.yd.oss.api.service.impl;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.oss.api.service.ApiMaterialService; import com.yd.oss.api.service.ApiMaterialService;
import com.yd.oss.feign.dto.ApiMaterialDto;
import com.yd.oss.feign.request.ApiMaterialDownloadRequest; import com.yd.oss.feign.request.ApiMaterialDownloadRequest;
import com.yd.oss.feign.request.ApiMaterialListRequest; import com.yd.oss.feign.request.ApiMaterialListRequest;
import com.yd.oss.feign.response.ApiMaterialDownloadResponse; import com.yd.oss.feign.response.ApiMaterialDownloadResponse;
import com.yd.oss.feign.response.ApiMaterialListResponse; import com.yd.oss.feign.response.ApiMaterialListResponse;
import com.yd.oss.service.dto.MaterialDto; import com.yd.oss.service.dto.MaterialDto;
import com.yd.oss.service.model.Material; import com.yd.oss.service.model.Material;
import com.yd.oss.service.model.RelObjectMaterial;
import com.yd.oss.service.service.CompressedFileService; import com.yd.oss.service.service.CompressedFileService;
import com.yd.oss.service.service.IMaterialService; import com.yd.oss.service.service.IMaterialService;
import com.yd.oss.service.service.IRelObjectMaterialService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -28,6 +32,9 @@ public class ApiMaterialServiceImpl implements ApiMaterialService { ...@@ -28,6 +32,9 @@ public class ApiMaterialServiceImpl implements ApiMaterialService {
@Autowired @Autowired
private CompressedFileService compressedFileService; private CompressedFileService compressedFileService;
@Autowired
private IRelObjectMaterialService iRelObjectMaterialService;
/** /**
* 列表查询-材料基础信息 * 列表查询-材料基础信息
* @param request * @param request
...@@ -54,6 +61,17 @@ public class ApiMaterialServiceImpl implements ApiMaterialService { ...@@ -54,6 +61,17 @@ public class ApiMaterialServiceImpl implements ApiMaterialService {
*/ */
@Override @Override
public Result<ApiMaterialDownloadResponse> downloadCompressedFile(ApiMaterialDownloadRequest request) { public Result<ApiMaterialDownloadResponse> downloadCompressedFile(ApiMaterialDownloadRequest request) {
// if (StringUtils.isNotBlank(request.getObjectBizId())) {
// List<ApiMaterialDto> apiMaterialDtoList = new ArrayList<>();
// List<RelObjectMaterial> relObjectMaterialList = iRelObjectMaterialService.queryList(request.getObjectBizId());
// if (!CollectionUtils.isEmpty(relObjectMaterialList)) {
// List<String> materialBizIdList = relObjectMaterialList.stream().map(RelObjectMaterial::getMaterialBizId).collect(Collectors.toList());
//
// for (RelObjectMaterial relObjectMaterial : relObjectMaterialList) {
//
// }
// }
// }
return compressedFileService.downloadCompressedFile(request); return compressedFileService.downloadCompressedFile(request);
} }
......
package com.yd.oss.feign.response; package com.yd.oss.feign.response;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class ApiRelObjectMaterialPageResponse { public class ApiRelObjectMaterialPageResponse {
...@@ -40,4 +41,9 @@ public class ApiRelObjectMaterialPageResponse { ...@@ -40,4 +41,9 @@ public class ApiRelObjectMaterialPageResponse {
*/ */
private String precautions; private String precautions;
/**
* 文件URL列表(完整路径)
*/
private List<String> fileUrlList;
} }
package com.yd.oss.service.handler;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedTypes;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@MappedTypes(List.class)
public class StringToListTypeHandler extends BaseTypeHandler<List<String>> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i, String.join(";", parameter));
}
@Override
public List<String> getNullableResult(ResultSet rs, String columnName) throws SQLException {
String value = rs.getString(columnName);
return convertStringToList(value);
}
@Override
public List<String> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String value = rs.getString(columnIndex);
return convertStringToList(value);
}
@Override
public List<String> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String value = cs.getString(columnIndex);
return convertStringToList(value);
}
private List<String> convertStringToList(String value) {
if (value == null || value.trim().isEmpty()) {
return Collections.emptyList();
}
return Arrays.stream(value.split(";"))
.map(String::trim)
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
}
}
\ No newline at end of file
...@@ -34,7 +34,7 @@ public class OssFile implements Serializable { ...@@ -34,7 +34,7 @@ public class OssFile implements Serializable {
private String objectType; private String objectType;
/** /**
* 对象所属表名(预约表、新单跟进表等) * 对象所属表名(对象材料关系表、预约表、新单跟进表等)
*/ */
@TableField("object_table_name") @TableField("object_table_name")
private String objectTableName; private String objectTableName;
......
...@@ -25,4 +25,6 @@ public interface IRelObjectMaterialService extends IService<RelObjectMaterial> { ...@@ -25,4 +25,6 @@ public interface IRelObjectMaterialService extends IService<RelObjectMaterial> {
RelObjectMaterial queryOne(String relObjectMaterialBizId); RelObjectMaterial queryOne(String relObjectMaterialBizId);
Boolean delByObjectBizId(String objectBizId); Boolean delByObjectBizId(String objectBizId);
List<RelObjectMaterial> queryList(String objectBizId);
} }
...@@ -40,4 +40,9 @@ public class RelObjectMaterialServiceImpl extends ServiceImpl<RelObjectMaterialM ...@@ -40,4 +40,9 @@ public class RelObjectMaterialServiceImpl extends ServiceImpl<RelObjectMaterialM
public Boolean delByObjectBizId(String objectBizId) { public Boolean delByObjectBizId(String objectBizId) {
return this.remove(new LambdaQueryWrapper<RelObjectMaterial>().eq(RelObjectMaterial::getObjectBizId,objectBizId)); return this.remove(new LambdaQueryWrapper<RelObjectMaterial>().eq(RelObjectMaterial::getObjectBizId,objectBizId));
} }
@Override
public List<RelObjectMaterial> queryList(String objectBizId) {
return this.baseMapper.selectList(new LambdaQueryWrapper<RelObjectMaterial>().eq(RelObjectMaterial::getObjectBizId,objectBizId));
}
} }
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.oss.service.dao.RelObjectMaterialMapper"> <mapper namespace="com.yd.oss.service.dao.RelObjectMaterialMapper">
<!-- 结果映射 -->
<resultMap id="RelObjectMaterialResponseMap" type="com.yd.oss.feign.response.ApiRelObjectMaterialPageResponse">
<id property="id" column="id"/>
<result property="relObjectMaterialBizId" column="rel_object_material_biz_id"/>
<result property="materialBizId" column="material_biz_id"/>
<result property="status" column="status"/>
<result property="dataPerson" column="data_person"/>
<result property="dataType" column="data_type"/>
<result property="precautions" column="precautions"/>
<!-- 使用类型处理器将分号分隔的字符串转换为List -->
<result property="fileUrlList" column="file_urls"
typeHandler="com.yd.oss.service.handler.StringToListTypeHandler"/>
</resultMap>
<select id="page" resultType="com.yd.oss.feign.response.ApiRelObjectMaterialPageResponse"> <select id="page" resultMap="RelObjectMaterialResponseMap">
select rom.id,rom.rel_object_material_biz_id,rom.material_biz_id, SELECT
rom.status,m.data_person,m.data_type,m.precautions rom.id,
from rel_object_material rom rom.rel_object_material_biz_id,
left join material m on m.material_biz_id = rom.material_biz_id and m.is_deleted = 0 rom.material_biz_id,
rom.status,
m.data_person,
m.data_type,
m.precautions,
GROUP_CONCAT(
CONCAT('https://', f.bucket_name, '.', p.endpoint, '/', f.file_key)
SEPARATOR ';'
) as file_urls
FROM rel_object_material rom
LEFT JOIN material m ON m.material_biz_id = rom.material_biz_id AND m.is_deleted = 0
LEFT JOIN oss_file f ON f.object_biz_id = rom.rel_object_material_biz_id
AND f.object_table_name = 'rel_object_material'
AND f.is_deleted = 0
LEFT JOIN oss_provider p ON p.provider_biz_id = f.provider_biz_id
AND p.is_active = 1
AND p.is_deleted = 0
<where> <where>
<if test="request.objectBizId != null and request.objectBizId != ''"> <if test="request.objectBizId != null and request.objectBizId != ''">
and rom.object_biz_id = #{request.objectBizId} AND rom.object_biz_id = #{request.objectBizId}
</if> </if>
and rom.is_deleted = 0 AND rom.is_deleted = 0
</where> </where>
GROUP BY rom.id
</select> </select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment