改为模糊查询

master
xiaoCJ
parent 3371d3477b
commit 3dd8bdd700

@ -4,11 +4,11 @@ import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sztzjy.resource_center.annotation.AnonymousAccess;
import com.sztzjy.resource_center.entity.FileData;
import com.sztzjy.resource_center.entity.admin.*;
import com.sztzjy.resource_center.mapper.admin.AdminDataLabelMapper;
import com.sztzjy.resource_center.mapper.admin.AdminDataMapper;
import com.sztzjy.resource_center.mapper.admin.AdminFileMapper;
import com.sztzjy.resource_center.mapper.admin.AdminLabelMapper;
import com.sztzjy.resource_center.util.ResultEntity;
import com.sztzjy.resource_center.util.file.IFileUtil;
import io.swagger.annotations.Api;
@ -23,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author xcj
@ -67,7 +68,7 @@ public class AdminDataController {
}
//新增
AdminDataWithBLOBs adminDataWithBLOBs =new AdminDataWithBLOBs();
AdminDataWithBLOBs adminDataWithBLOBs = new AdminDataWithBLOBs();
String dataId = IdUtil.randomUUID();
adminDataWithBLOBs.setDataId(dataId);
adminDataWithBLOBs.setName(adminDataDto.getName());
@ -99,9 +100,9 @@ public class AdminDataController {
}
//批量新增标签
List<AdminDataLabel>list =new ArrayList<>();
List<AdminDataLabel> list = new ArrayList<>();
for (AdminLabel adminLabel : adminLabelList) {
AdminDataLabel label =new AdminDataLabel();
AdminDataLabel label = new AdminDataLabel();
label.setId(IdUtil.randomUUID());
label.setLabelId(adminLabel.getLabelId());
label.setName(adminLabel.getName());
@ -111,20 +112,20 @@ public class AdminDataController {
adminDataLabelMapper.insertBatch(list);
//新增案例
adminDataMapper.insert(adminDataWithBLOBs);
return new ResultEntity<>(HttpStatus.OK,"新增成功!");
return new ResultEntity<>(HttpStatus.OK, "新增成功!");
}
@PostMapping("updateStatus")
@ApiOperation("发布或禁用")
private ResultEntity<String> updateStatus(@RequestParam String id,
@Param("传0禁用传1发布上架") @RequestParam int status) {
@Param("传0禁用传1发布上架") @RequestParam int status) {
try {
AdminDataWithBLOBs adminDataWithBLOBs = adminDataMapper.selectByPrimaryKey(id);
AdminDataWithBLOBs adminDataWithBLOBs = adminDataMapper.selectByPrimaryKey(id);
adminDataWithBLOBs.setStatus(status);
adminDataMapper.updateByPrimaryKeyWithBLOBs(adminDataWithBLOBs);
} catch (Exception e) {
e.printStackTrace();
return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR,"发生错误,请联系管理员!");
return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR, "发生错误,请联系管理员!");
}
if (status == 0) {
return new ResultEntity<>(HttpStatus.OK, "成功禁用!");
@ -150,4 +151,102 @@ public class AdminDataController {
return new ResultEntity<>(pageInfo);
}
// @PostMapping("updateAdminData")
// @ApiOperation("编辑")
// @AnonymousAccess
// @Transactional
// ResultEntity<String> updateAdminData(@ModelAttribute AdminDataDto adminDataDto) {
// //新增
// try {
// AdminDataWithBLOBs adminDataWithBLOBs = adminDataMapper.selectByPrimaryKey(adminDataDto.getDataId());
// if (adminDataDto.getPictureUrl() != null) {
// String pictureUrl = fileUtil.upload(adminDataDto.getPictureFile());
// adminDataWithBLOBs.setPictureUrl(pictureUrl);
// }
//
// //更新标签
// if (adminDataDto.getAdminLabelList() != null && !adminDataDto.getAdminLabelList().isEmpty()) {
// List<AdminLabel> adminLabelList = adminDataDto.getAdminLabelList();
// List<String> ids = adminLabelList.stream().map(AdminLabel::getLabelId).collect(Collectors.toList());
// AdminDataLabelExample example = new AdminDataLabelExample();
// example.createCriteria().andLabelIdIn(ids);
// List<AdminDataLabel> list = adminDataLabelMapper.selectByExample(example);
// for (AdminDataLabel adminDataLabel : list) {
// adminDataLabelMapper.updateByPrimaryKey(adminDataLabel);
// }
// }
// if (adminDataDto.getFileDataList() != null && !adminDataDto.getFileDataList().isEmpty()) {
// List<FileData> fileDataList = adminDataDto.getFileDataList();
// for (FileData fileData : fileDataList) {
// if (fileData.getFile() != null && fileData.getFileId() != null) {
// AdminFile adminFile = adminFileMapper.selectByPrimaryKey(fileData.getFileId());
// String url = fileUtil.upload(fileData.getFile());
// adminFile.setFileUrl(url);
// adminFileMapper.updateByPrimaryKey(adminFile);
// }
// }
// }
// //更新对象
// adminDataMapper.updateByPrimaryKeyWithBLOBs(adminDataWithBLOBs);
// } catch (Exception e) {
// e.printStackTrace();
// return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR,"编辑失败请联系管理员!");
// }
// return new ResultEntity<>(HttpStatus.OK,"编辑成功!");
// }
@PostMapping("updateAdminData")
@ApiOperation("编辑")
@AnonymousAccess
@Transactional
ResultEntity<String> updateAdminData(@ModelAttribute AdminDataDto adminDataDto) {
//新增
try {
AdminDataWithBLOBs adminDataWithBLOBs = adminDataMapper.selectByPrimaryKey(adminDataDto.getDataId());
// 文件上传并行处理
if (adminDataDto.getPictureUrl() != null) {
String pictureUrl = fileUtil.upload(adminDataDto.getPictureFile());
adminDataWithBLOBs.setPictureUrl(pictureUrl);
}
// 更新标签,批量更新操作
if (adminDataDto.getAdminLabelList() != null && !adminDataDto.getAdminLabelList().isEmpty()) {
List<AdminLabel> adminLabelList = adminDataDto.getAdminLabelList();
List<String> ids = adminLabelList.stream().map(AdminLabel::getLabelId).collect(Collectors.toList());
AdminDataLabelExample example = new AdminDataLabelExample();
example.createCriteria().andLabelIdIn(ids);
List<AdminDataLabel> list = adminDataLabelMapper.selectByExample(example);
// 使用批量更新操作
if (!list.isEmpty()) {
adminDataLabelMapper.updateBatch(list);
}
}
// 文件数据并行处理
if (adminDataDto.getFileDataList() != null && !adminDataDto.getFileDataList().isEmpty()) {
List<FileData> fileDataList = adminDataDto.getFileDataList();
// 并行上传文件
fileDataList.parallelStream().forEach(fileData -> {
if (fileData.getFile() != null && fileData.getFileId() != null) {
AdminFile adminFile = adminFileMapper.selectByPrimaryKey(fileData.getFileId());
String url = fileUtil.upload(fileData.getFile());
adminFile.setFileUrl(url);
adminFileMapper.updateByPrimaryKey(adminFile); //todo 速度慢就改成批量更新
}
});
}
// 更新对象
adminDataMapper.updateByPrimaryKeyWithBLOBs(adminDataWithBLOBs);
} catch (Exception e) {
e.printStackTrace();
return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR, "编辑失败请联系管理员!");
}
return new ResultEntity<>(HttpStatus.OK, "编辑成功!");
}
}

@ -0,0 +1,17 @@
package com.sztzjy.resource_center.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
/**
* @Author xcj
* @Date 2024/7/16
*/
@Data
public class FileData {
@ApiModelProperty("文件")
private MultipartFile file;
@ApiModelProperty("文件ID")
private String fileId;
}

@ -1,10 +1,12 @@
package com.sztzjy.resource_center.entity.admin;
import com.sztzjy.resource_center.entity.FileData;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
* @Author xcj
@ -18,4 +20,6 @@ public class AdminDataDto extends AdminDataWithBLOBs {
private List<MultipartFile> dataFile;
@ApiModelProperty("图片文件")
private MultipartFile pictureFile;
@ApiModelProperty("编辑时传")
private List<FileData> fileDataList;
}

@ -31,4 +31,6 @@ public interface AdminDataLabelMapper {
int updateByPrimaryKey(AdminDataLabel record);
void insertBatch(@Param("list") List<AdminDataLabel> adminLabelList);
void updateBatch(@Param("list") List<AdminDataLabel> list);
}

@ -223,4 +223,30 @@
</foreach>
</insert>
<update id="updateByPrimaryKey" parameterType="com.sztzjy.resource_center.entity.admin.AdminDataLabel">
update admin_data_label
set data_case_id = #{dataCaseId,jdbcType=VARCHAR},
label_id = #{labelId,jdbcType=VARCHAR},
name = #{name,jdbcType=VARCHAR},
type = #{type,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
<update id="updateBatch" parameterType="java.util.List">
update admin_data_label
<trim prefix="set" suffixOverrides=",">
<foreach collection="list" item="item" index="index" separator=",">
id = #{item.id,jdbcType=VARCHAR},
data_case_id = #{item.dataCaseId,jdbcType=VARCHAR},
label_id = #{item.labelId,jdbcType=VARCHAR},
name = #{item.name,jdbcType=VARCHAR},
type = #{item.type,jdbcType=VARCHAR}
</foreach>
</trim>
where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item.id,jdbcType=VARCHAR}
</foreach>
</update>
</mapper>
Loading…
Cancel
Save