改为模糊查询

master
xiaoCJ 8 months ago
parent 3371d3477b
commit 3dd8bdd700

@ -4,11 +4,11 @@ import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.sztzjy.resource_center.annotation.AnonymousAccess; 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.entity.admin.*;
import com.sztzjy.resource_center.mapper.admin.AdminDataLabelMapper; import com.sztzjy.resource_center.mapper.admin.AdminDataLabelMapper;
import com.sztzjy.resource_center.mapper.admin.AdminDataMapper; import com.sztzjy.resource_center.mapper.admin.AdminDataMapper;
import com.sztzjy.resource_center.mapper.admin.AdminFileMapper; 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.ResultEntity;
import com.sztzjy.resource_center.util.file.IFileUtil; import com.sztzjy.resource_center.util.file.IFileUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -23,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Author xcj * @Author xcj
@ -67,7 +68,7 @@ public class AdminDataController {
} }
//新增 //新增
AdminDataWithBLOBs adminDataWithBLOBs =new AdminDataWithBLOBs(); AdminDataWithBLOBs adminDataWithBLOBs = new AdminDataWithBLOBs();
String dataId = IdUtil.randomUUID(); String dataId = IdUtil.randomUUID();
adminDataWithBLOBs.setDataId(dataId); adminDataWithBLOBs.setDataId(dataId);
adminDataWithBLOBs.setName(adminDataDto.getName()); 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) { for (AdminLabel adminLabel : adminLabelList) {
AdminDataLabel label =new AdminDataLabel(); AdminDataLabel label = new AdminDataLabel();
label.setId(IdUtil.randomUUID()); label.setId(IdUtil.randomUUID());
label.setLabelId(adminLabel.getLabelId()); label.setLabelId(adminLabel.getLabelId());
label.setName(adminLabel.getName()); label.setName(adminLabel.getName());
@ -111,20 +112,20 @@ public class AdminDataController {
adminDataLabelMapper.insertBatch(list); adminDataLabelMapper.insertBatch(list);
//新增案例 //新增案例
adminDataMapper.insert(adminDataWithBLOBs); adminDataMapper.insert(adminDataWithBLOBs);
return new ResultEntity<>(HttpStatus.OK,"新增成功!"); return new ResultEntity<>(HttpStatus.OK, "新增成功!");
} }
@PostMapping("updateStatus") @PostMapping("updateStatus")
@ApiOperation("发布或禁用") @ApiOperation("发布或禁用")
private ResultEntity<String> updateStatus(@RequestParam String id, private ResultEntity<String> updateStatus(@RequestParam String id,
@Param("传0禁用传1发布上架") @RequestParam int status) { @Param("传0禁用传1发布上架") @RequestParam int status) {
try { try {
AdminDataWithBLOBs adminDataWithBLOBs = adminDataMapper.selectByPrimaryKey(id); AdminDataWithBLOBs adminDataWithBLOBs = adminDataMapper.selectByPrimaryKey(id);
adminDataWithBLOBs.setStatus(status); adminDataWithBLOBs.setStatus(status);
adminDataMapper.updateByPrimaryKeyWithBLOBs(adminDataWithBLOBs); adminDataMapper.updateByPrimaryKeyWithBLOBs(adminDataWithBLOBs);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR,"发生错误,请联系管理员!"); return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR, "发生错误,请联系管理员!");
} }
if (status == 0) { if (status == 0) {
return new ResultEntity<>(HttpStatus.OK, "成功禁用!"); return new ResultEntity<>(HttpStatus.OK, "成功禁用!");
@ -150,4 +151,102 @@ public class AdminDataController {
return new ResultEntity<>(pageInfo); 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; package com.sztzjy.resource_center.entity.admin;
import com.sztzjy.resource_center.entity.FileData;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author xcj * @Author xcj
@ -18,4 +20,6 @@ public class AdminDataDto extends AdminDataWithBLOBs {
private List<MultipartFile> dataFile; private List<MultipartFile> dataFile;
@ApiModelProperty("图片文件") @ApiModelProperty("图片文件")
private MultipartFile pictureFile; private MultipartFile pictureFile;
@ApiModelProperty("编辑时传")
private List<FileData> fileDataList;
} }

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

@ -223,4 +223,30 @@
</foreach> </foreach>
</insert> </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> </mapper>
Loading…
Cancel
Save