diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/BannerDTO.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/BannerDTO.java index ca243be91..24d25e609 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/BannerDTO.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/BannerDTO.java @@ -76,7 +76,7 @@ public class BannerDTO implements Serializable { /** * 部门ID */ - private String gridId; + private Long gridId; /** * 创建人 diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/BannerController.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/BannerController.java index 091e1e03b..c8b77f8bb 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/BannerController.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/BannerController.java @@ -61,12 +61,18 @@ public class BannerController { BannerDTO data = bannerService.get(id); return new Result().ok(data); } - + /*** + * 新增banner + * @param dto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author qushutong + * @date 2019/9/10 19:54 + */ @PostMapping public Result save(@RequestBody BannerDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - bannerService.save(dto); + bannerService.saveOrUpdate(dto); return new Result(); } @@ -74,7 +80,7 @@ public class BannerController { public Result update(@RequestBody BannerDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - bannerService.update(dto); + bannerService.saveOrUpdate(dto); return new Result(); } diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/BannerDepartmentDao.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/BannerDepartmentDao.java index 5785a364e..2d7eb5d46 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/BannerDepartmentDao.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/BannerDepartmentDao.java @@ -29,5 +29,12 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface BannerDepartmentDao extends BaseDao { - + /*** + * 修改banner的时候得先删除关系表相关 + * @param bannerId + * @return void + * @author qushutong + * @date 2019/9/10 20:04 + */ + void deleteByBannerId(String bannerId); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/BannerEntity.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/BannerEntity.java index 6c944a595..cbe0b7e72 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/BannerEntity.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/BannerEntity.java @@ -71,7 +71,7 @@ public class BannerEntity extends BaseEpdcEntity { /** * 部门ID */ - private String gridId; + private Long gridId; /** * 发布人的部门 diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerDepartmentService.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerDepartmentService.java index ab84fdaae..7d6b6e3b9 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerDepartmentService.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerDepartmentService.java @@ -92,4 +92,23 @@ public interface BannerDepartmentService extends BaseService noticeGridList); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerService.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerService.java index b97db44b1..f58afff3a 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerService.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/BannerService.java @@ -63,15 +63,14 @@ public interface BannerService extends BaseService { */ BannerDTO get(String id); - /** - * 默认保存 - * - * @param dto - * @return void - * @author generator - * @date 2019-09-10 - */ - void save(BannerDTO dto); + /*** + * 新增 或者更新 + * @param dto + * @return void + * @author qushutong + * @date 2019/9/10 20:13 + */ + void saveOrUpdate(BannerDTO dto); /** * 默认更新 diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerDepartmentServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerDepartmentServiceImpl.java index a33d545cb..1dbbadadb 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerDepartmentServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerDepartmentServiceImpl.java @@ -17,17 +17,22 @@ package com.elink.esua.epdc.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; +import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.dao.BannerDepartmentDao; import com.elink.esua.epdc.dto.BannerDepartmentDTO; import com.elink.esua.epdc.entity.BannerDepartmentEntity; +import com.elink.esua.epdc.entity.NoticeDepartmentEntity; import com.elink.esua.epdc.redis.BannerDepartmentRedis; import com.elink.esua.epdc.service.BannerDepartmentService; +import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -101,4 +106,25 @@ public class BannerDepartmentServiceImpl extends BaseServiceImpl noticeGridList) { + if (StringUtils.isBlank(id) || CollUtil.isEmpty(noticeGridList)) { + throw new RenException("保存通知网格信息失败"); + } + List list = Lists.newArrayList(); + BannerDepartmentEntity entity; + for (Long gridId : noticeGridList) { + entity = new BannerDepartmentEntity(); + entity.setBannerId(id); + entity.setGridId(gridId); + list.add(entity); + } + this.insertBatch(list, NumConstant.TWENTY); + } + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerServiceImpl.java index d3d92bd78..d5d595249 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/BannerServiceImpl.java @@ -17,17 +17,27 @@ package com.elink.esua.epdc.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; +import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; +import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; +import com.elink.esua.epdc.commons.tools.security.user.UserDetail; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; +import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dao.BannerDao; import com.elink.esua.epdc.dto.BannerDTO; import com.elink.esua.epdc.entity.BannerEntity; +import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.redis.BannerRedis; +import com.elink.esua.epdc.service.BannerDepartmentService; import com.elink.esua.epdc.service.BannerService; +import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -47,7 +57,9 @@ import java.util.Map; public class BannerServiceImpl extends BaseServiceImpl implements BannerService { @Autowired - private BannerRedis bannerRedis; + private BannerDepartmentService bannerDepartmentService; + @Autowired + private AdminFeignClient adminFeignClient; @Override public PageData page(Map params) { @@ -65,8 +77,8 @@ public class BannerServiceImpl extends BaseServiceImpl return ConvertUtils.sourceToTarget(entityList, BannerDTO.class); } - private QueryWrapper getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); @@ -82,9 +94,52 @@ public class BannerServiceImpl extends BaseServiceImpl @Override @Transactional(rollbackFor = Exception.class) - public void save(BannerDTO dto) { + public void saveOrUpdate(BannerDTO dto) { + UserDetail user = SecurityUser.getUser(); + dto.setCreatorName(user.getRealName()); + dto.setDeptId(user.getDeptId()); + dto.setDeptName(user.getDeptName()); BannerEntity entity = ConvertUtils.sourceToTarget(dto, BannerEntity.class); - insert(entity); + entity.setState(YesOrNoEnum.NO.value()); + + + // 通知所属部门id + Long noticeDeptId = entity.getStreetId(); + // 能接收通知的所有网格的ID + List noticeGridList = Lists.newArrayList(); + if (null != entity.getCommunityId()) { + noticeDeptId = entity.getCommunityId(); + } + if (null != entity.getGridId()) { + noticeDeptId = entity.getGridId(); + noticeGridList.add(noticeDeptId); + } + + if (!user.getDeptIdList().contains(noticeDeptId)) { + throw new RenException("您没有操作此部门的数据权限"); + } + + if (CollUtil.isEmpty(noticeGridList)) { + Result> adminResult = adminFeignClient.listGridIdByDeptPid(noticeDeptId); + if (!adminResult.success() || CollUtil.isEmpty(adminResult.getData())) { + throw new RenException("获取部门信息失败"); + } + noticeGridList = adminResult.getData(); + } + + boolean isSave = true; + if (StringUtils.isNotBlank(dto.getId())) { + isSave = false; + } + + if (isSave) { + insert(entity); + } else { + updateById(entity); + bannerDepartmentService.deleteByBannerId(entity.getId()); + } + + this.bannerDepartmentService.save(entity.getId(), noticeGridList); } @Override diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/BannerDepartmentDao.xml b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/BannerDepartmentDao.xml index c4f2084b3..0d06119a2 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/BannerDepartmentDao.xml +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/BannerDepartmentDao.xml @@ -14,6 +14,8 @@ - + + DELETE FROM epdc_banner_department WHERE BANNER_ID = #{bannerId} + \ No newline at end of file