diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PovertyCondoleDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PovertyCondoleDTO.java index 3828be0957..ebcc18eb52 100755 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PovertyCondoleDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/PovertyCondoleDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto; +import com.epmet.dto.form.povertyManage.PovertyCondoleAttrDTO; import lombok.Data; import java.io.Serializable; @@ -61,7 +62,7 @@ public class PovertyCondoleDTO implements Serializable { /** * 图片 */ - private List imgs; + private List imgs; /** * 电话 diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/povertyManage/PovertyCondoleAttrDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/povertyManage/PovertyCondoleAttrDTO.java index 417cee916e..f1294892cb 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/povertyManage/PovertyCondoleAttrDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/povertyManage/PovertyCondoleAttrDTO.java @@ -14,6 +14,8 @@ public class PovertyCondoleAttrDTO implements Serializable { private static final long serialVersionUID = -5490762499712805180L; + private String id; + private String pcId; private String url; diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/povertyManage/PovertyCondoleFormDto.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/povertyManage/PovertyCondoleFormDto.java index 55ac71a2d7..7307348f25 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/povertyManage/PovertyCondoleFormDto.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/povertyManage/PovertyCondoleFormDto.java @@ -37,7 +37,7 @@ public class PovertyCondoleFormDto extends PageFormDTO implements Serializable { private String povertyType; - private List imgs; + private List imgs; private String condoleTime; diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PovertyCondoleController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PovertyCondoleController.java index 9e6d3502b0..231c85206a 100755 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PovertyCondoleController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PovertyCondoleController.java @@ -1,11 +1,11 @@ package com.epmet.controller; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.epmet.commons.tools.annotation.MaskResponse; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.enums.DictTypeEnum; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; @@ -21,12 +21,11 @@ import com.epmet.service.PovertyCondoleAttrService; import com.epmet.service.PovertyCondoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.text.ParseException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; /** @@ -63,11 +62,7 @@ public class PovertyCondoleController { PovertyCondoleDTO data = povertyCondoleService.get(id); List imgs = attrService.selectByPcId(id); if (!CollectionUtils.isEmpty(imgs)) { - List imageList = new ArrayList<>(); - imgs.forEach(file -> { - imageList.add(file.getUrl()); - }); - data.setImgs(imageList); + data.setImgs(imgs); } return new Result().ok(data); } @@ -77,27 +72,41 @@ public class PovertyCondoleController { public Result save(@RequestBody PovertyCondoleFormDto dto) throws ParseException { //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - dto.setId(IdWorker.getIdStr()); - if (!CollectionUtils.isEmpty(dto.getImgs())) { - List imageList = new ArrayList<>(); - buildImgs(imageList, dto.getImgs(), dto.getId()); - attrService.insertBatch(imageList); - } povertyCondoleService.save(dto); return new Result(); } @NoRepeatSubmit @PostMapping("update") - public Result update(@RequestBody PovertyCondoleFormDto dto) throws ParseException { + public Result update(@RequestBody PovertyCondoleFormDto formDto) throws ParseException { //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - if (!CollectionUtils.isEmpty(dto.getImgs())) { - List imageList = new ArrayList<>(); - buildImgs(imageList, dto.getImgs(), dto.getId()); - attrService.insertBatch(imageList); + ValidatorUtils.validateEntity(formDto, UpdateGroup.class, DefaultGroup.class); + List imageList = new ArrayList<>(); + Set delList = new HashSet<>(); + if (!CollectionUtils.isEmpty(formDto.getImgs())) { + List imgs = attrService.selectByPcId(formDto.getId()); + if (!CollectionUtils.isEmpty(imgs)) { + for (PovertyCondoleAttrDTO img : formDto.getImgs()) { + for (PovertyCondoleAttrDTO attr : imgs) { + if (StringUtils.isEmpty(img.getId())) { //新增 + buildImgs(imageList, Arrays.asList(img), formDto.getId()); + }else if (!img.getId().equals(attr.getId())) {//删除 + delList.add(attr.getId()); + } + } + } + } else {//没有图片全部新增 + buildImgs(imageList, formDto.getImgs(), formDto.getId()); + attrService.saveOrUpdateBatch(imageList); + } + } + povertyCondoleService.update(formDto); + if (imageList.size() > 0) { + attrService.saveOrUpdateBatch(imageList); + } + if (delList.size() > 0) { + attrService.deleteBatchIds(delList); } - povertyCondoleService.update(dto); return new Result(); } @@ -131,14 +140,16 @@ public class PovertyCondoleController { } } - private void buildImgs(List imgList, List dtoImgs, String dtoId) { - for (String url : dtoImgs) { - PovertyCondoleAttrEntity attr = new PovertyCondoleAttrEntity(); - attr.setPovertyCondoleId(dtoId); - attr.setAttachmentUrl(url); - attr.setAttachmentFormat(url.substring(url.lastIndexOf(".") + NumConstant.ONE).toLowerCase()); - attr.setAttachmentType("image"); - imgList.add(attr); + private void buildImgs(List imgList, List formImgs, String dtoId) { + for (PovertyCondoleAttrDTO attr : formImgs) { + if (!imgList.contains(attr)) {//去重 + PovertyCondoleAttrEntity entity = ConvertUtils.sourceToTarget(attr, PovertyCondoleAttrEntity.class); + entity.setPovertyCondoleId(dtoId); + entity.setAttachmentUrl(attr.getUrl()); + entity.setAttachmentFormat(attr.getUrl().substring(attr.getUrl().lastIndexOf(".") + NumConstant.ONE).toLowerCase()); + entity.setAttachmentType("image"); + imgList.add(entity); + } } } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PovertyCondoleServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PovertyCondoleServiceImpl.java index 2d74d0ac26..5a4275f3e8 100755 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PovertyCondoleServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PovertyCondoleServiceImpl.java @@ -4,11 +4,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.dao.PovertyCondoleAttrDao; import com.epmet.dao.PovertyCondoleDao; import com.epmet.dto.PovertyCondoleDTO; +import com.epmet.dto.form.povertyManage.PovertyCondoleAttrDTO; import com.epmet.dto.form.povertyManage.PovertyCondoleFormDto; +import com.epmet.entity.PovertyCondoleAttrEntity; import com.epmet.entity.PovertyCondoleEntity; import com.epmet.service.PovertyCondoleService; import com.github.pagehelper.PageHelper; @@ -16,7 +20,9 @@ import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import javax.annotation.Resource; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -34,6 +40,9 @@ import java.util.Map; public class PovertyCondoleServiceImpl extends BaseServiceImpl implements PovertyCondoleService { + @Resource + private PovertyCondoleAttrDao attrDao; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -59,7 +68,6 @@ public class PovertyCondoleServiceImpl extends BaseServiceImpl(pageInfo.getList() == null ? new ArrayList<>() : pageInfo.getList(), pageInfo.getTotal()); } + private void buildImgs(List formImgs, String dtoId) { + for (PovertyCondoleAttrDTO attr : formImgs) { + PovertyCondoleAttrEntity entity = ConvertUtils.sourceToTarget(attr, PovertyCondoleAttrEntity.class); + entity.setPovertyCondoleId(dtoId); + entity.setAttachmentUrl(attr.getUrl()); + entity.setAttachmentFormat(attr.getUrl().substring(attr.getUrl().lastIndexOf(".") + NumConstant.ONE).toLowerCase()); + entity.setAttachmentType("image"); + attrDao.insert(entity); + } + } + }