From f2ce482ae916df85d132845da8bbf2f3f42ac9ec Mon Sep 17 00:00:00 2001 From: zhangyuan Date: Wed, 24 Jun 2020 10:35:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B4=E8=B6=A3=E7=BE=A4=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/controller/GroupController.java | 18 +++++- .../esua/epdc/modules/group/dao/GroupDao.java | 25 +++++--- .../modules/group/service/GroupService.java | 21 +++++++ .../group/service/impl/GroupServiceImpl.java | 57 +++++++++++++++++++ .../main/resources/mapper/group/GroupDao.xml | 42 +++++++++++++- 5 files changed, 152 insertions(+), 11 deletions(-) diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/controller/GroupController.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/controller/GroupController.java index a26d6c0..b083934 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/controller/GroupController.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/controller/GroupController.java @@ -25,8 +25,8 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.validator.AssertUtils; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; -import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; +import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; import com.elink.esua.epdc.dto.group.*; import com.elink.esua.epdc.modules.group.excel.GroupExcel; import com.elink.esua.epdc.modules.group.service.GroupService; @@ -109,6 +109,14 @@ public class GroupController { return new Result(); } + @PostMapping("interest") + public Result saveInterest(@RequestBody GroupDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + groupService.saveInterest(dto); + return new Result(); + } + @PutMapping public Result update(@RequestBody GroupDTO dto) { //效验数据 @@ -117,6 +125,14 @@ public class GroupController { return new Result(); } + @PutMapping("interest") + public Result updateInterest(@RequestBody GroupDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + groupService.updateInterest(dto); + return new Result(); + } + @DeleteMapping public Result delete(@RequestBody String[] ids) { //效验数据 diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/dao/GroupDao.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/dao/GroupDao.java index f940f05..fbff22c 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/dao/GroupDao.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/dao/GroupDao.java @@ -56,7 +56,7 @@ public interface GroupDao extends BaseDao { * * @return java.util.List * @params [params] - * @author liuchuang + * @author zhy * @since 2019/10/11 14:54 */ List selectPoliceListOfGroups(Map params); @@ -66,11 +66,21 @@ public interface GroupDao extends BaseDao { * * @return java.util.List * @params [params] - * @author liuchuang + * @author zhy * @since 2019/10/11 14:54 */ List selectInterestListOfGroups(Map params); + /** + * 兴趣群列表 + * + * @return java.util.List + * @params [deptId categoryCode] + * @author zhy + * @since 2019/10/11 14:54 + */ + List selectInterestGroupByDept(@Param("deptId") Long deptId, @Param("categoryCode") String categoryCode); + /** * 查询社群名称重复数量 * @@ -181,11 +191,12 @@ public interface GroupDao extends BaseDao { List listPartyMemberGridId(); /** - * @Description: 根据社群id,查询群主手机号 - * @Param: [groupId] - * @return: java.lang.String - * @Author: zy - * @Date: 2020-01-08 + * 根据社群id,查询群主手机号 + * + * @return java.lang.String + * @params [groupId] + * @author zy + * @since 2020-01-08 */ String queryGroupUserMOBILE(String groupId); diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/GroupService.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/GroupService.java index bac4cc4..d7c6aab 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/GroupService.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/GroupService.java @@ -98,6 +98,17 @@ public interface GroupService extends BaseService { */ void save(GroupDTO dto); + + /** + * 兴趣群保存 + * + * @param dto + * @return void + * @author zhy + * @date 2019-10-10 + */ + void saveInterest(GroupDTO dto); + /** * 默认更新 * @@ -108,6 +119,16 @@ public interface GroupService extends BaseService { */ void update(GroupDTO dto); + /** + * 兴趣群更新 + * + * @param dto + * @return void + * @author zhy + * @date 2019-10-10 + */ + void updateInterest(GroupDTO dto); + /** * 批量删除 * diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/impl/GroupServiceImpl.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/impl/GroupServiceImpl.java index 9ae14b6..b6be5ac 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/impl/GroupServiceImpl.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/impl/GroupServiceImpl.java @@ -21,14 +21,17 @@ 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.mybatis.utils.DeptEntityUtils; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.constant.OrganizationTypeConstant; +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.utils.Result; import com.elink.esua.epdc.constant.SysSmsTemplateConstant; import com.elink.esua.epdc.dto.CompleteDeptDTO; +import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.constant.GroupConstant; import com.elink.esua.epdc.dto.constant.GroupNoticeConstant; @@ -44,6 +47,7 @@ import com.elink.esua.epdc.dto.group.result.*; import com.elink.esua.epdc.enums.ItemHandleCategoryEnum; import com.elink.esua.epdc.modules.async.IssueOverseeResultsTask; import com.elink.esua.epdc.modules.async.NewsTask; +import com.elink.esua.epdc.modules.feign.AdminFeignClient; import com.elink.esua.epdc.modules.feign.EventFeignClient; import com.elink.esua.epdc.modules.feign.UserFeignClient; import com.elink.esua.epdc.modules.group.dao.GroupDao; @@ -80,6 +84,9 @@ public class GroupServiceImpl extends BaseServiceImpl imp @Autowired private NewsTask newsTask; + @Autowired + private AdminFeignClient adminFeignClient; + @Autowired private GroupTopicUserReadService groupTopicUserReadService; @@ -145,6 +152,30 @@ public class GroupServiceImpl extends BaseServiceImpl imp insert(entity); } + @Override + @Transactional(rollbackFor = Exception.class) + public void saveInterest(GroupDTO dto) { + GroupEntity entity = ConvertUtils.sourceToTarget(dto, GroupEntity.class); + + // 查询重复 + List dtos = baseDao.selectInterestGroupByDept(dto.getDeptId(), dto.getCategoryCode()); + if (dtos.size() > 0) { + throw new RenException("该机构已经存在兴趣群"); + } + + ParentAndAllDeptDTO parentAndAllDeptDTO = getParentAndAllDeptDTO(dto.getDeptId() + ""); + // 保存机构,及其他冗余字段。 + DeptEntityUtils.loadDeptInfo( + ConvertUtils.sourceToTarget(parentAndAllDeptDTO, DeptEntityUtils.DeptDto.class), + entity + ); + entity.setDeptName(parentAndAllDeptDTO.getGrid()); + entity.setSectionCode(GroupConstant.INTEREST_GROUP_CATEGORY_CODE); + entity.setState(GroupStateEnum.GROUP_STATE_EXAMINATION_PASSED.getValue()); +// entity.setTypeKey(parentAndAllDeptDTO); + insert(entity); + } + @Override @Transactional(rollbackFor = Exception.class) public void update(GroupDTO dto) { @@ -152,6 +183,13 @@ public class GroupServiceImpl extends BaseServiceImpl imp updateById(entity); } + @Override + @Transactional(rollbackFor = Exception.class) + public void updateInterest(GroupDTO dto) { + GroupEntity entity = ConvertUtils.sourceToTarget(dto, GroupEntity.class); + updateById(entity); + } + @Override @Transactional(rollbackFor = Exception.class) public void delete(String[] ids) { @@ -621,4 +659,23 @@ public class GroupServiceImpl extends BaseServiceImpl imp return groupEntities; } + + /** + * 根据网格ID获取冗余的组织机构信息 + * + * @param + * @return com.elink.esua.epdc.dto.ParentAndAllDeptDTO + * @author rongchao + * @since 2019-12-19 + */ + private ParentAndAllDeptDTO getParentAndAllDeptDTO(String gridId) { + // 获取组织结构冗余信息 + Result parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(gridId); + ParentAndAllDeptDTO parentAndAllDeptDTO = parentAndAllDeptDTOResult.getData(); + + if (!parentAndAllDeptDTOResult.success()) { + throw new RenException(parentAndAllDeptDTOResult.getMsg()); + } + return parentAndAllDeptDTO; + } } diff --git a/epdc-cloud-property/src/main/resources/mapper/group/GroupDao.xml b/epdc-cloud-property/src/main/resources/mapper/group/GroupDao.xml index a92d559..bb4917d 100644 --- a/epdc-cloud-property/src/main/resources/mapper/group/GroupDao.xml +++ b/epdc-cloud-property/src/main/resources/mapper/group/GroupDao.xml @@ -9,6 +9,8 @@ gp.GROUP_NAME, gp.GROUP_CATEGORY, gp.CREATED_TIME, + gp.SECTION_CODE, + gp.CATEGORY_CODE, ugp.NICKNAME, gp.STATE FROM @@ -46,6 +48,8 @@ gp.GROUP_NAME, gp.GROUP_CATEGORY, gp.CREATED_TIME, + gp.SECTION_CODE, + gp.CATEGORY_CODE, ugp.NICKNAME, gp.STATE FROM @@ -61,6 +65,10 @@ AND gp.STATE = #{state} + + AND (gp.DEPT_ID = #{deptId} + OR find_in_set(#{deptId},gp.ALL_DEPT_IDS)) + AND (gp.DEPT_ID = #{gridId} OR find_in_set(#{gridId},gp.ALL_DEPT_IDS)) @@ -83,6 +91,9 @@ gp.GROUP_NAME, gp.GROUP_CATEGORY, gp.CREATED_TIME, + gp.SECTION_CODE, + gp.CATEGORY_CODE, + gp.ALL_DEPT_NAMES, ugp.NICKNAME, gp.STATE FROM @@ -92,12 +103,17 @@ AND ugp.LORD_FLAG = '1' WHERE gp.DEL_FLAG = '0' - AND gp.SECTION_CODE = 'theme_group' - AND gp.CATEGORY_CODE = 'interest_group' - AND gp.TYPE_KEY = 'grid_party' + AND gp.SECTION_CODE = 'interest_group' + + AND gp.CATEGORY_CODE = 'interest_group' + AND gp.STATE = #{state} + + AND (gp.DEPT_ID = #{deptId} + OR find_in_set(#{deptId},gp.ALL_DEPT_IDS)) + AND (gp.DEPT_ID = #{gridId} OR find_in_set(#{gridId},gp.ALL_DEPT_IDS)) @@ -114,6 +130,26 @@ gp.GROUP_CATEGORY, gp.CREATED_TIME DESC + +