From 28923b3d67c58b032bc4ff128aa1d5e62d73dba1 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Fri, 02 Feb 2024 10:07:58 +0800 Subject: [PATCH] fix:提交实时在线率接口 --- screen-api/src/main/java/com/moral/api/service/impl/SupervisionServiceImpl.java | 181 ++++++++++++++++++++++++++++++++------------ 1 files changed, 130 insertions(+), 51 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SupervisionServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SupervisionServiceImpl.java index 97036b6..947456e 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/SupervisionServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/SupervisionServiceImpl.java @@ -2,8 +2,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.moral.api.entity.Organization; import com.moral.api.entity.Supervision; import com.moral.api.mapper.SupervisionMapper; +import com.moral.api.service.OrganizationService; import com.moral.api.service.SupervisionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -11,12 +13,15 @@ import com.moral.constant.ResponseCodeEnum; import com.moral.util.FileUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.system.ApplicationHome; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; @@ -35,40 +40,56 @@ * @since 2022-01-12 */ @Service +@Slf4j public class SupervisionServiceImpl extends ServiceImpl<SupervisionMapper, Supervision> implements SupervisionService { @Autowired private SupervisionMapper supervisionMapper; + @Autowired + private OrganizationService organizationService; + @Override - public Map<String, Object> add(MultipartFile[] files, Supervision supervision) { + @Transactional + public Map<String, Object> add(List<MultipartFile> files, Supervision supervision) { //������jar��������������� - ApplicationHome h = new ApplicationHome(getClass()); + ApplicationHome applicationHome = new ApplicationHome(getClass()); //���jar������������������������������upload������������������������������������ - String path = h.getSource().getParentFile().toString() + "/static/img/"; + String path = applicationHome.getSource().getParentFile().toString() + "/static/img"; Map<String, Object> result = new HashMap<>(); + //��������������������� + QueryWrapper<Supervision> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("number", supervision.getNumber()).eq("is_delete", Constants.NOT_DELETE); + if (supervisionMapper.selectOne(queryWrapper) != null) { + result.put("code", ResponseCodeEnum.SUPERVISION_NUMBER_EXIT.getCode()); + result.put("msg", ResponseCodeEnum.SUPERVISION_NUMBER_EXIT.getMsg()); + return result; + } + List<String> images = new ArrayList<>(); - for (MultipartFile file : files) { - //������������������������ - String fileType = file.getContentType(); - if ("image/jpg".equals(fileType) || "image/png".equals(fileType) || "image/jpeg".equals(fileType)) { - //��������������� - String fileName = file.getOriginalFilename(); - //��������������������� - String suffixName = fileName.substring(fileName.lastIndexOf(".")); - //��������������������� - fileName = UUID.randomUUID() + suffixName; - //������������ - if (FileUtils.upload(file, path, fileName)) { - images.add(fileName); + if (files.size() > 0) { + for (MultipartFile file : files) { + //������������������������ + String fileType = file.getContentType(); + if ("image/jpg".equals(fileType) || "image/png".equals(fileType) || "image/jpeg".equals(fileType)) { + //��������������� + String fileName = file.getOriginalFilename(); + //��������������������� + String suffixName = fileName.substring(fileName.lastIndexOf(".")); + //��������������������� + fileName = UUID.randomUUID() + suffixName; + //������������ + if (FileUtils.upload(file, path, fileName)) { + images.add(fileName); + } + } else { + result.put("code", ResponseCodeEnum.IMG_UPLOAD_FAIl.getCode()); + result.put("msg", ResponseCodeEnum.IMG_UPLOAD_FAIl.getMsg()); + return result; } - } else { - result.put("code", ResponseCodeEnum.IMG_UPLOAD_FAIl.getCode()); - result.put("msg", ResponseCodeEnum.IMG_UPLOAD_FAIl.getMsg()); - return result; } } @@ -85,30 +106,44 @@ @Override public Map<String, Object> selectSupervisions(Map<String, Object> params) { //������������������ - int cityCode = Integer.parseInt(params.get("cityCode").toString()); int page = Integer.parseInt(params.get("page").toString()); int size = Integer.parseInt(params.get("size").toString()); Object start = params.get("start"); Object end = params.get("end"); + Integer orgId = Integer.parseInt(params.get("organizationId").toString()); - QueryWrapper<Supervision> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("city_code", cityCode) - .eq("is_delete", Constants.NOT_DELETE); + //������������������������������ + List<Organization> organizations = organizationService.getChildrenOrganizationsById(orgId); + List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList()); + orgIds.add(orgId); + + QueryWrapper<Supervision> supervisionQueryWrapper = new QueryWrapper<>(); + supervisionQueryWrapper.eq("is_delete", Constants.NOT_DELETE).in("organization_id", orgIds); + //��������������������������������������������������������������������������������������������������������������������������� + if (params.get("cityCode") != null) { + String cityCode = params.get("cityCode").toString(); + //��������������������������������������������������������������������������������������� + if (cityCode.endsWith("00")) { + supervisionQueryWrapper.eq("CONCAT(LEFT(city_code,4),'00')", cityCode); + } else { + supervisionQueryWrapper.eq("city_code", cityCode); + } + } + if (start != null) { - queryWrapper.ge("time", start); + supervisionQueryWrapper.ge("time", start); } if (start != null) { - queryWrapper.le("time", end); + supervisionQueryWrapper.le("time", end); } //���time������ - queryWrapper.orderByDesc("time"); + supervisionQueryWrapper.orderByDesc("time"); //������ Page<Supervision> supervisionPage = new Page<>(page, size); - supervisionMapper.selectPage(supervisionPage, queryWrapper); + supervisionMapper.selectPage(supervisionPage, supervisionQueryWrapper); List<Supervision> supervisions = supervisionPage.getRecords(); - Map<String, Object> result = new LinkedHashMap<>(); result.put("total", supervisionPage.getTotal()); @@ -121,37 +156,55 @@ } @Override - public Map<String, Object> updateSupervision(MultipartFile[] files, Supervision supervision) { - - String path = this.getClass().getClassLoader() - .getResource("").getFile() + "static/img/"; + @Transactional + public Map<String, Object> updateSupervision(List<MultipartFile> files, Supervision supervision) { + //������jar��������������� + ApplicationHome applicationHome = new ApplicationHome(getClass()); + //���jar������������������������������upload������������������������������������ + String path = applicationHome.getSource().getParentFile().toString() + "/static/img"; Map<String, Object> result = new HashMap<>(); List<String> images = new ArrayList<>(); - - for (MultipartFile file : files) { - //������������������������ - String fileType = file.getContentType(); - if ("image/jpg".equals(fileType) || "image/png".equals(fileType) || "image/jpeg".equals(fileType)) { - //��������������� - String fileName = file.getOriginalFilename(); - //��������������������� - String suffixName = fileName.substring(fileName.lastIndexOf(".")); - //��������������������� - fileName = UUID.randomUUID() + suffixName; - //������������ - if (FileUtils.upload(file, path, fileName)) { - images.add(fileName); + //������������������������������������������������������������������������ + if (files.size() > 0) { + //��������������������������������������������� + String[] oldImages = supervisionMapper.selectById(supervision.getId()).getImages().split(","); + for (String image : oldImages) { + String realPath = path + File.separator + image; + File file = new File(realPath); + if (file.exists() && file.isFile()) { + file.delete(); } - } else { - result.put("code", ResponseCodeEnum.IMG_UPLOAD_FAIl.getCode()); - result.put("msg", ResponseCodeEnum.IMG_UPLOAD_FAIl.getMsg()); - return result; + } + + + for (MultipartFile file : files) { + //������������������������ + String fileType = file.getContentType(); + if ("image/jpg".equals(fileType) || "image/png".equals(fileType) || "image/jpeg".equals(fileType)) { + //��������������� + String fileName = file.getOriginalFilename(); + //��������������������� + String suffixName = fileName.substring(fileName.lastIndexOf(".")); + //��������������������� + fileName = UUID.randomUUID() + suffixName; + //������������ + if (FileUtils.upload(file, path, fileName)) { + images.add(fileName); + } + } else { + result.put("code", ResponseCodeEnum.IMG_UPLOAD_FAIl.getCode()); + result.put("msg", ResponseCodeEnum.IMG_UPLOAD_FAIl.getMsg()); + return result; + } } } + + if (!ObjectUtils.isEmpty(images)) { + String image = images.stream() .map(String::valueOf) .collect(Collectors.joining(",")); @@ -160,4 +213,30 @@ supervisionMapper.updateById(supervision); return result; } + + @Override + @Transactional + public void deleteSupervision(Integer supervisionId) { + QueryWrapper<Supervision> queryWrapper = new QueryWrapper<>(); + queryWrapper.select("id", "images").eq("id", supervisionId); + Supervision supervision = supervisionMapper.selectOne(queryWrapper); + String[] images = supervision.getImages().split(","); + + //������������ + supervision.setIsDelete(Constants.DELETE); + supervision.setImages(null); + supervisionMapper.updateById(supervision); + + + //��������������������������������������� + ApplicationHome applicationHome = new ApplicationHome(getClass()); + String path = applicationHome.getSource().getParentFile().toString() + "/static/img"; + for (String image : images) { + String realPath = path + File.separator + image; + File file = new File(realPath); + if (file.exists() && file.isFile()) { + file.delete(); + } + } + } } -- Gitblit v1.8.0