Browse Source

Merge remote-tracking branch 'origin/dev_voice' into dev_voice

# Conflicts:
#	epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java
#	epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
#	epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
dev_shibei_match
wangchao 5 years ago
parent
commit
7e21ce7310
  1. 15
      epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/feign/MybatisGovAccessFeignClient.java
  2. 10
      epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/feign/fallback/MybatisGovAccessFeignClientFallback.java
  3. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/EpmetRoleKeyConstant.java
  4. 25
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java
  5. 63
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/AccessController.java
  6. 16
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/AccessService.java
  7. 48
      epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java
  8. 38
      epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/feign/GovAccessFeignClient.java
  9. 33
      epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallback.java
  10. 6
      epmet-module/gov-org/gov-org-client/pom.xml
  11. 11
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/feign/GovOrgSelfFeignClient.java
  12. 6
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/feign/fallback/GovOrgSelfFeignClientFallBack.java
  13. 12
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ArticleGridResultDTO.java
  14. 23
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  15. 16
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/callback/GovOrgOpenFeignClientFallback.java
  16. 19
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
  17. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
  18. 16
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
  19. 4
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
  20. 15
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/ArticlePublishRangeDTO.java
  21. 15
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/DraftPublishRangeDTO.java
  22. 0
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/.gitkeep
  23. 2
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/OffLineArticleFormDTO.java
  24. 25
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/PublishGridListFormDTO.java
  25. 30
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/TagRankResultDTO.java
  26. 4
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/ArticleConstant.java
  27. 11
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/DraftConstant.java
  28. 14
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java
  29. 15
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/ArticlePublishRangeEntity.java
  30. 15
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/DraftPublishRangeEntity.java
  31. 107
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java
  32. 8
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
  33. 35
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  34. 5
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticlePublishRangeDao.xml
  35. 19
      epmet-module/gov-voice/gov-voice-server/src/main/resources/migration/epmet_gov_voice.sql
  36. 34
      epmet-user/epmet-user-client/src/main/java/com/epmet/constant/RoleKeyConstants.java

15
epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/feign/MybatisGovAccessFeignClient.java

@ -20,21 +20,6 @@ import java.util.Set;
@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = MybatisGovAccessFeignClientFallback.class)
public interface MybatisGovAccessFeignClient {
/**
* 查询角色的操作key对应操作范围列表
* @param operationScopeFormDTO
* @return
*/
@PostMapping("/gov/access/access/operationscopes")
Result<Set<OperationScopeDTO>> getOperationScopesByRoleId(OperationScopeFormDTO operationScopeFormDTO);
/**
* 查询角色所有operation及其范围(缓存)
* @return
*/
@PostMapping("/gov/access/access/roleallopesandscopes/{roleId}")
Result<List<RoleOpeScopeResultDTO>> listRoleAllOperationScopesByRoleId(@PathVariable("roleId") String roleId);
/**
* 查询sql过滤片段
* @param form

10
epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/feign/fallback/MybatisGovAccessFeignClientFallback.java

@ -21,16 +21,6 @@ import java.util.Set;
@Component
public class MybatisGovAccessFeignClientFallback implements MybatisGovAccessFeignClient {
@Override
public Result<Set<OperationScopeDTO>> getOperationScopesByRoleId(OperationScopeFormDTO operationScopeFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getOperationScopesByRoleId", operationScopeFormDTO);
}
@Override
public Result<List<RoleOpeScopeResultDTO>> listRoleAllOperationScopesByRoleId(@PathVariable("roleId") String roleId){
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "listRoleAllOperationScopesByRoleId", roleId);
}
@Override
public Result<String> getSqlFilterSegment(GetSQLFilterFormDTO form) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getSqlFilterSegment", form);

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/EpmetRoleKeyConstant.java

@ -1,7 +1,7 @@
package com.epmet.commons.tools.constant;
/**
* @Description
* @Description 居民端角色key
* @Author yinzuomei
* @Date 2020/3/30 16:38
*/

25
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisUtils.java

@ -15,10 +15,12 @@ import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactor
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.data.redis.support.atomic.RedisAtomicLong;
import org.springframework.stereotype.Component;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@ -276,16 +278,33 @@ public class RedisUtils {
}
/**
* @Description 获取key集合与多个集合的
* @Description 获取key集合与多个集合的
* @param key
* @param otherKeys
* @author zxc
*/
public Set<Object> sUnion(String key, Collection<String> otherKeys) {
return redisTemplate.opsForSet().union(key, otherKeys);
public Set<Object> intersect(String key, Collection<String> otherKeys) {
return redisTemplate.opsForSet().intersect(key, otherKeys);
}
/**
* @Description 获取集合set
* @param key
* @author zxc
*/
public Set<Object> sMembers(String key){
return redisTemplate.opsForSet().members(key);
}
/**
* @Description 获取 zset 中带score的集合
* @param key
* @param start
* @param end
* @author zxc
*/
public Set<ZSetOperations.TypedTuple<Object>> zReverseRangeWithScores(String key, long start, long end) {
Set<ZSetOperations.TypedTuple<Object>> typedTuples = redisTemplate.opsForZSet().reverseRangeWithScores(key, start, end);
return typedTuples;
}
}

63
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/controller/AccessController.java

@ -3,12 +3,10 @@ package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
import com.epmet.dto.result.RoleOpeScopeResultDTO;
import com.epmet.service.AccessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Set;
/**
@ -24,67 +22,6 @@ public class AccessController {
@Autowired
private AccessService accessService;
/**
* 更新工作人员权限缓存(前端查询权限时候gov-mine会调用此处)
* @param staffPermCacheFormDTO
* @return
*/
@PostMapping("updatepermissioncache")
public Result updatePermissionCache(@RequestBody StaffPermCacheFormDTO staffPermCacheFormDTO) {
ValidatorUtils.validateEntity(staffPermCacheFormDTO, StaffPermCacheFormDTO.UpdatePermissionCache.class);
String staffId = staffPermCacheFormDTO.getStaffId();
String app = staffPermCacheFormDTO.getApp();
String client = staffPermCacheFormDTO.getClient();
Set<String> permissions = staffPermCacheFormDTO.getPermissions();
Set<String> roleIdList = staffPermCacheFormDTO.getRoleIdList();
String orgId = staffPermCacheFormDTO.getOrgIdPath();
String gridId = staffPermCacheFormDTO.getGridId();
accessService.updatePermissionCache(staffId, app, client, permissions, roleIdList, orgId, gridId);
return new Result();
}
///**
// * 从缓存中查询用户信息(DataFilterAspect中用到)
// * @return
// */
//@PostMapping("loginuserinfo")
//public Result<LoginUserInfoResultDTO> getLoginUserInfo(@RequestBody StaffPermCacheFormDTO dto) {
// ValidatorUtils.validateEntity(dto, StaffPermCacheFormDTO.GetStaffCurrPermissions.class);
// GovTokenDto govTokenDto = accessService.getUserDetails(dto.getApp(), dto.getClient(), dto.getStaffId());
// LoginUserInfoResultDTO resultDTO = null;
// if (govTokenDto != null) {
// resultDTO = new LoginUserInfoResultDTO();
// resultDTO.setRoleIdList(govTokenDto.getRoleIdList());
// //resultDTO.setGridId(govTokenDto.getGridId());
// resultDTO.setOrgIdPath(govTokenDto.getOrgIdPath());
// resultDTO.setGridIdList(govTokenDto.getGridIdList());
// resultDTO.setDeptIdList(govTokenDto.getDeptIdList());
// resultDTO.setUserId(govTokenDto.getUserId());
// }
// return new Result<LoginUserInfoResultDTO>().ok(resultDTO);
//}
/**
* 查询角色的操作key对应操作范围列表(缓存)
* @return
*/
@PostMapping("operationscopes")
public Result<Set<RoleOpeScopeResultDTO>> getOperationScopesByRoleId(@RequestBody OperationScopeFormDTO operationScopeFormDTO) {
ValidatorUtils.validateEntity(operationScopeFormDTO, OperationScopeFormDTO.ListOperationScopeGroup.class);
Set<RoleOpeScopeResultDTO> scopes = accessService.listOperationScopesByRoleId(operationScopeFormDTO.getRoleId(), operationScopeFormDTO.getOperationKey());
return new Result<Set<RoleOpeScopeResultDTO>>().ok(scopes);
}
/**
* 查询角色所有operation及其范围(缓存)
* @return
*/
@PostMapping("roleallopesandscopes/{roleId}")
public Result<List<RoleOpeScopeResultDTO>> listRoleAllOperationScopesByRoleId(@PathVariable("roleId") String roleId) {
List<RoleOpeScopeResultDTO> scopes = accessService.listAllRoleOperationScopesByRoleId(roleId);
return new Result<List<RoleOpeScopeResultDTO>>().ok(scopes);
}
/**
* 用户是否具有指定功能权限
* @return

16
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/AccessService.java

@ -1,21 +1,13 @@
package com.epmet.service;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import com.epmet.dto.form.GetSQLFilterFormDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.dto.result.RoleOpeScopeResultDTO;
import java.util.List;
import java.util.Map;
import java.util.Set;
public interface AccessService {
/**
* 更新权限缓存
* @param staffId
* @param permissions
*/
void updatePermissionCache(String staffId, String app, String client, Set<String> permissions, Set<String> roleIdList, String orgIdPath, String gridId);
/**
* 查询登陆用户登陆信息
@ -23,14 +15,6 @@ public interface AccessService {
*/
LoginUserDetailsResultDTO getLoginUserDetails(String app, String client, String staffId);
/**
* 查询角色的操作key对应操作范围列表
* @param roleId
* @param operationKey
* @return
*/
Set<RoleOpeScopeResultDTO> listOperationScopesByRoleId(String roleId, String operationKey);
/**
* 查询角色所有operation及其范围(缓存)
* @param roleId

48
epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessServiceImpl.java

@ -4,9 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import com.epmet.bean.OpeScopeFilterResultBean;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.commons.tools.utils.Result;
@ -65,57 +63,11 @@ public class AccessServiceImpl implements AccessService {
public static final String ORG_RELATION_SUP = "sup";
public static final String ORG_PATH_SEPARATOR = ":";
/**
* 更新权限缓存
* @param staffId
* @param permissions
*/
@Override
public void updatePermissionCache(String staffId, String app, String client, Set<String> permissions, Set<String> roleIdList,
String orgIdPath, String gridId) {
GovTokenDto govTokenDto = cpUserDetailRedis.get(app, client, staffId, GovTokenDto.class);
if (govTokenDto == null) {
logger.warn("更新[{}]用户缓存:Redis中不存在该用户TokenDto缓存信息", staffId);
return ;
}
// 将权限,角色列表,和当前组织ID存入TokenDto
govTokenDto.setPermissions(permissions);
govTokenDto.setRoleIdList(roleIdList);
govTokenDto.setOrgIdPath(orgIdPath);
govTokenDto.setGridId(gridId);
// 将新的TokenDto更新到redis中
long expire = cpUserDetailRedis.getExpire(app, client, staffId);
cpUserDetailRedis.set(govTokenDto, expire);
logger.warn("更新[{}]用户缓存成功。", staffId);
}
@Override
public LoginUserDetailsResultDTO getLoginUserDetails(String app, String client, String staffId) {
return cpUserDetailRedis.get(app, client, staffId, LoginUserDetailsResultDTO.class);
}
/**
* 查询角色的操作key对应操作范围列表
* @param roleId
* @param operationKey
* @return
*/
public Set<RoleOpeScopeResultDTO> listOperationScopesByRoleId(String roleId, String operationKey) {
Set<RoleOpeScopeResultDTO> roleOpeScopes = roleOpeScopeRedis.getRoleOpeScopes(roleId, operationKey);
if (roleOpeScopes != null) {
return roleOpeScopes;
}
Set<RoleOpeScopeResultDTO> scopes = operationScopeDao.listOperationScopesByRoleId(roleId, operationKey);
try {
roleOpeScopeRedis.setRoleOpeScopes(roleId, operationKey, scopes);
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error("GovAccess:查询角色的操作范围:缓存范围出错:{}", errorStackTrace);
}
return scopes;
}
@Override
public List<RoleOpeScopeResultDTO> listAllRoleOperationScopesByRoleId(String roleId) {
List<RoleOpeScopeResultDTO> roleAllOpeScopes = roleOpeScopeRedis.getRoleAllOpeScopes(roleId);

38
epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/feign/GovAccessFeignClient.java

@ -2,19 +2,12 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.OperationScopeDTO;
import com.epmet.dto.form.ListOpePermsFormDTO;
import com.epmet.dto.form.OperationScopeFormDTO;
import com.epmet.dto.form.StaffPermCacheFormDTO;
import com.epmet.dto.result.RoleOpeScopeResultDTO;
import com.epmet.dto.result.RoleOperationResultDTO;
import com.epmet.feign.fallback.GovAccessFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Set;
/**
@ -25,37 +18,6 @@ import java.util.Set;
@FeignClient(name = ServiceConstant.GOV_ACCESS_SERVER, fallback = GovAccessFeignClientFallback.class)
public interface GovAccessFeignClient {
/**
* 根据角色ID查询角色权限列表
* @param roleId
* @return
*/
@PostMapping("/gov/access/role/operations/{roleId}")
Result<List<RoleOperationResultDTO>> listOperationsByRoleId(@PathVariable("roleId") String roleId);
/**
* 刷新用户权限缓存
* @param staffPermCacheFormDTO
* @return
*/
@PostMapping("/gov/access/access/updatepermissioncache")
Result updatePermissionCache(@RequestBody StaffPermCacheFormDTO staffPermCacheFormDTO);
/**
* 查询角色的操作key对应操作范围列表
* @param operationScopeFormDTO
* @return
*/
@PostMapping("/gov/access/access/operationscopes")
Result<Set<OperationScopeDTO>> getOperationScopesByRoleId(OperationScopeFormDTO operationScopeFormDTO);
/**
* 查询角色所有operation及其范围(缓存)
* @return
*/
@PostMapping("/gov/access/access/roleallopesandscopes/{roleId}")
Result<List<RoleOpeScopeResultDTO>> listRoleAllOperationScopesByRoleId(@PathVariable("roleId") String roleId);
/**
* 列出觉得的功能权限列表
* @return

33
epmet-module/gov-mine/gov-mine-server/src/main/java/com/epmet/feign/fallback/GovAccessFeignClientFallback.java

@ -3,17 +3,9 @@ package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.OperationScopeDTO;
import com.epmet.dto.form.ListOpePermsFormDTO;
import com.epmet.dto.form.OperationScopeFormDTO;
import com.epmet.dto.form.StaffPermCacheFormDTO;
import com.epmet.dto.result.RoleOpeScopeResultDTO;
import com.epmet.dto.result.RoleOperationResultDTO;
import com.epmet.feign.GovAccessFeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Set;
/**
@ -23,31 +15,6 @@ import java.util.Set;
@Component
public class GovAccessFeignClientFallback implements GovAccessFeignClient {
@Override
public Result<List<RoleOperationResultDTO>> listOperationsByRoleId(String roleId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "listOperationsByRoleId");
}
/**
* 刷新用户权限缓存
* @param staffPermCacheFormDTO
* @return
*/
@Override
public Result updatePermissionCache(@RequestBody StaffPermCacheFormDTO staffPermCacheFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "updatePermissionCache");
}
@Override
public Result<Set<OperationScopeDTO>> getOperationScopesByRoleId(OperationScopeFormDTO operationScopeFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "getOperationScopesByRoleId", operationScopeFormDTO);
}
@Override
public Result<List<RoleOpeScopeResultDTO>> listRoleAllOperationScopesByRoleId(String roleId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "listRoleAllOperationScopesByRoleId", roleId);
}
@Override
public Result<Set<String>> listOperationPermissions(ListOpePermsFormDTO listOpePermsFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ACCESS_SERVER, "listOperationPermissions", listOpePermsFormDTO);

6
epmet-module/gov-org/gov-org-client/pom.xml

@ -32,6 +32,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>gov-voice-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

11
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/feign/GovOrgSelfFeignClient.java

@ -2,14 +2,15 @@ package com.epmet.dto.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.feign.fallback.GovOrgSelfFeignClientFallBack;
import com.epmet.dto.form.PublishGridListFormDTO;
import com.epmet.dto.result.ArticleGridResultDTO;
import com.epmet.dto.result.PublishAgencyListResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @Description gov-org服务
@ -36,12 +37,4 @@ public interface GovOrgSelfFeignClient {
@PostMapping(value = "gov/org/customeragency/getpublishagencylist/{staffId}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result<PublishAgencyListResultDTO> getPublishAgencyList(@PathVariable("staffId") String staffId);
/**
* @param staffId
* @return
* @Author sun
* @Description 根据工作人员Id查询对应的组织信息
**/
@PostMapping(value = "gov/org/customeragency/getagencybystaffId/{staffId}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result<CustomerAgencyDTO> getAgencyByStaffId(@PathVariable("staffId") String staffId);
}

6
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/feign/fallback/GovOrgSelfFeignClientFallBack.java

@ -3,8 +3,8 @@ package com.epmet.dto.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.feign.GovOrgSelfFeignClient;
import com.epmet.dto.form.PublishGridListFormDTO;
import com.epmet.dto.result.ArticleGridResultDTO;
import com.epmet.dto.result.PublishAgencyListResultDTO;
import org.springframework.stereotype.Component;
@ -26,8 +26,4 @@ public class GovOrgSelfFeignClientFallBack implements GovOrgSelfFeignClient {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getPublishAgencyList", staffId);
}
@Override
public Result<CustomerAgencyDTO> getAgencyByStaffId(String staffId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getAgencyByStaffId", staffId);
}
}

12
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/ArticleGridResultDTO.java

@ -24,7 +24,7 @@ import java.util.List;
/**
* 党建声音-可选发布范围-接口返参
* 党建声音-可选发布范围可下线网格列表-接口返参
*
* @author sun
*/
@ -50,8 +50,16 @@ public class ArticleGridResultDTO implements Serializable {
*/
private List<ArticleGridResultDTO> subAgencyGridList;
/**
* 所有上级机关Ids
* 上级组织机构ID
*/
private String pid = "";
/**
* 所有上级组织机构ID(以英文:隔开)
*/
private String pids = "";
/**
* 所有上级名称,-连接
*/
private String allParentName = "";
}

23
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java

@ -0,0 +1,23 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.feign.callback.GovOrgOpenFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
//@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgOpenFeignClientFallback.class, url = "localhost:8092")
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgOpenFeignClientFallback.class)
public interface GovOrgOpenFeignClient {
/**
* 根据Id查询agency
* @param agencyId
* @return
*/
@PostMapping("/gov/org/agency/agencybyid/{agencyId}")
Result<CustomerAgencyDTO> getAgencyById(@PathVariable("agencyId") String agencyId);
}

16
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/callback/GovOrgOpenFeignClientFallback.java

@ -0,0 +1,16 @@
package com.epmet.feign.callback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.feign.GovOrgOpenFeignClient;
import org.springframework.stereotype.Component;
@Component
public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient {
@Override
public Result<CustomerAgencyDTO> getAgencyById(String agencyId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getAgencyById", agencyId);
}
}

19
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java

@ -26,10 +26,7 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.form.AgencyDeptGridFormDTO;
import com.epmet.dto.form.CanTickStaffListFormDTO;
import com.epmet.dto.form.StaffOrgFormDTO;
import com.epmet.dto.form.TransferOptionalStaffListFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.excel.CustomerAgencyExcel;
import com.epmet.service.CustomerAgencyService;
@ -178,22 +175,10 @@ public class CustomerAgencyController {
* @param staffId
* @return
* @Author sun
* @Description 党建声音-政府端-可选发布范围接口调用-根据人员角色查询对应的不同发布范围
* @Description 党建声音-政府端-可选发布单位接口调用-根据人员角色查询对应的不同发布单位
**/
@PostMapping("getpublishagencylist/{staffId}")
public Result<PublishAgencyListResultDTO> getPublishAgencyList(@PathVariable("staffId") String staffId) {
return new Result<PublishAgencyListResultDTO>().ok(customerAgencyService.getPublishAgencyList(staffId));
}
/**
* @param staffId
* @return
* @Author sun
* @Description 根据工作人员Id查询对应的组织信息
**/
@PostMapping("getagencybystaffId/{staffId}")
public Result<CustomerAgencyDTO> getAgencyByStaffId(@PathVariable("staffId") String staffId) {
return new Result<CustomerAgencyDTO>().ok(customerAgencyService.getAgencyByStaffId(staffId));
}
}

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java

@ -21,10 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.form.AgencyDeptGridFormDTO;
import com.epmet.dto.form.CanTickStaffListFormDTO;
import com.epmet.dto.form.StaffOrgFormDTO;
import com.epmet.dto.form.TransferOptionalStaffListFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerAgencyEntity;
@ -172,12 +169,4 @@ public interface CustomerAgencyService extends BaseService<CustomerAgencyEntity>
* @Description 党建声音-政府端-可选发布单位接口调用-根据人员角色查询对应的不同发布单位
**/
PublishAgencyListResultDTO getPublishAgencyList(String staffId);
/**
* @param staffId
* @return
* @Author sun
* @Description 根据工作人员Id查询对应的组织信息
**/
CustomerAgencyDTO getAgencyByStaffId(String staffId);
}

16
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java

@ -806,21 +806,5 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl<CustomerAgencyDao
return returnDTO;
}
/**
* @param staffId
* @return
* @Author sun
* @Description 根据工作人员Id查询对应的组织信息
**/
@Override
public CustomerAgencyDTO getAgencyByStaffId(String staffId) {
//调用现有方法查询工作人员对应组织信息
CustomerStaffAgencyDTO staffAgencyDTO = new CustomerStaffAgencyDTO();
staffAgencyDTO.setUserId(staffId);
staffAgencyDTO = customerStaffAgencyDao.selectByStaffId(staffAgencyDTO);
CustomerAgencyEntity entity = baseDao.selectById(staffAgencyDTO.getAgencyId());
CustomerAgencyDTO dto = ConvertUtils.sourceToTarget(entity, CustomerAgencyDTO.class);
return dto;
}
}

4
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml

@ -160,7 +160,9 @@
SELECT
id AS "agencyId",
organization_name AS "agencyName",
pids AS "pids"
pid AS "pid",
pids AS "pids",
all_parent_name AS "allParentName"
FROM customer_agency
WHERE del_flag = '0'
AND pids = #{subAgencyPids}

15
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/ArticlePublishRangeDTO.java

@ -59,6 +59,21 @@ public class ArticlePublishRangeDTO implements Serializable {
*/
private String agencyGridName;
/**
* 组织ID
*/
private String agencyId;
/**
* 所有上级组织机构ID 以英文:隔开
*/
private String pids;
/**
* 所有上级名称 以横杠隔开
*/
private String allParentName;
/**
* 下线时间
*/

15
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/DraftPublishRangeDTO.java

@ -59,6 +59,21 @@ public class DraftPublishRangeDTO implements Serializable {
*/
private String agencyGridName;
/**
* 组织ID
*/
private String agencyId;
/**
* 所有上级组织机构ID 以英文:隔开
*/
private String pids;
/**
* 所有上级名称 以横杠隔开
*/
private String allParentName;
/**
* 下线时间
*/

0
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/.gitkeep

2
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/OffLineArticleFormDTO.java

@ -28,8 +28,6 @@ public class OffLineArticleFormDTO implements Serializable {
@Size(min = 1, message = "项目人员关联Id不能为空", groups = {AddUserInternalGroup.class})
private List<String> gridIdList;
private String customerId;
private String staffId;
}

25
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/PublishGridListFormDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* 党建声音-可下线网格列表-接口入参
*
* @author sun
*/
@Data
public class PublishGridListFormDTO implements Serializable {
private static final long serialVersionUID = -6659391832410565077L;
public interface AddUserInternalGroup {}
/**
* 文章Id
*/
@NotBlank(message = "文章id不能为空", groups = {PublishGridListFormDTO.AddUserInternalGroup.class})
private String articleId;
}

30
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/TagRankResultDTO.java

@ -0,0 +1,30 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/3 19:38
*/
@Data
public class TagRankResultDTO implements Serializable {
private static final long serialVersionUID = 4107657623174653243L;
/**
* zSet排序
*/
private Double score;
/**
* 标签Id
*/
private String tagId;
/**
* 标签名字
*/
private String tagName;
}

4
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/ArticleConstant.java

@ -36,7 +36,7 @@ public interface ArticleConstant {
*/
String SELECT_AGRNCY_EXCEPTION = "获取用户组织信息失败";
/**
* 下线文章(用于拼接操作表字段值)
* 下线文章操作记录表文案
*/
String OFF_LINE_ARTICLE = "下线文章";
String OFF_LINE_ARTICLE_MSG = "%s-%s下线文章【%s】";
}

11
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/DraftConstant.java

@ -30,4 +30,15 @@ public interface DraftConstant {
* 审核中auditing
*/
String AUDITING = "auditing";
//是否置顶
/**
* 置顶1
*/
Integer TOP = 1;
/**
* 不置顶0
*/
Integer UN_TOP = 0;
}

14
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java

@ -210,7 +210,6 @@ public class ArticleController {
**/
@PostMapping("offlinearticle")
public Result offLineArticle(@LoginUser TokenDto tokenDTO, @RequestBody OffLineArticleFormDTO formDTO) {
formDTO.setCustomerId(tokenDTO.getCustomerId());
formDTO.setStaffId(tokenDTO.getUserId());
ValidatorUtils.validateEntity(formDTO, OffLineArticleFormDTO.AddUserInternalGroup.class);
articleService.offLineArticle(formDTO);
@ -328,6 +327,19 @@ public class ArticleController {
return new Result<List<ArticleListResultDTO>>().ok(articleService.getArticleList(articlePageFormDTO));
}
/**
* @param tokenDTO formDTO
* @return
* @Author sun
* @Description 党建声音-政府端-可下线网格列表
**/
@PostMapping("publishgridlist")
public Result<ArticleGridResultDTO> publishGridList(@LoginUser TokenDto tokenDTO, @RequestBody PublishGridListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, PublishGridListFormDTO.AddUserInternalGroup.class);
return new Result<ArticleGridResultDTO>().ok(articleService.publishGridList(formDTO));
}
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param articleDetailFormDTO

15
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/ArticlePublishRangeEntity.java

@ -58,6 +58,21 @@ public class ArticlePublishRangeEntity extends BaseEpmetEntity {
*/
private String agencyGridName;
/**
* 组织ID
*/
private String agencyId;
/**
* 所有上级组织机构ID 以英文:隔开
*/
private String pids;
/**
* 所有上级名称 以横杠隔开
*/
private String allParentName;
/**
* 下线时间
*/

15
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/DraftPublishRangeEntity.java

@ -58,6 +58,21 @@ public class DraftPublishRangeEntity extends BaseEpmetEntity {
*/
private String agencyGridName;
/**
* 组织ID
*/
private String agencyId;
/**
* 所有上级组织机构ID 以英文:隔开
*/
private String pids;
/**
* 所有上级名称 以横杠隔开
*/
private String allParentName;
/**
* 下线时间
*/

107
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java

@ -24,14 +24,17 @@ import com.epmet.dto.form.CorrelationTagListFormDTO;
import com.epmet.dto.form.TagCascadeListFormDTO;
import com.epmet.dto.result.CorrelationTagListResultDTO;
import com.epmet.dto.result.TagInfoResultDTO;
import com.epmet.dto.result.TagRankResultDTO;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Component
public class TagRedis {
@ -56,6 +59,7 @@ public class TagRedis {
List<String> tagIdList = formDto.getTagIdList();
Set<Object> objects ;
Collection<String> keys = new ArrayList<>();
//当查询关联标签数量大于1条时
if (tagIdList.size() > 1){
for (int i = NumConstant.ONE; i < tagIdList.size(); i++) {
String tagId = tagIdList.get(i);
@ -63,8 +67,9 @@ public class TagRedis {
keys.add(tagId);
}
String key = TagConstant.GOV_RETAG_KEY+customerId+TagConstant.COLON+tagIdList.get(0);
objects = redisUtils.sUnion(key, keys);
objects = redisUtils.intersect(key, keys);
}else {
// 查询关联标签数量 等于1条时
String key = TagConstant.GOV_RETAG_KEY+customerId+TagConstant.COLON+tagIdList.get(0);
objects = redisUtils.sMembers(key);
}
@ -72,12 +77,37 @@ public class TagRedis {
if (objects.size()==NumConstant.ZERO){
return resultList;
}
ObjectMapper objectMapper = new ObjectMapper();
//转换DTO
for (Object object : objects) {
CorrelationTagListResultDTO correlationTag = objectMapper.convertValue(object, CorrelationTagListResultDTO.class);
resultList.add(correlationTag);
resultList.add(objectToDTO(object,CorrelationTagListResultDTO.class));
}
//级联标签排序
//1.取出 zset 中的有序标签,根据级联标签,筛选有序标签
List<TagRankResultDTO> resultEquals = new ArrayList<>();
if (resultList.size() > NumConstant.ZERO) {
long start = 0;
long end = -1;
String customerKey = TagConstant.GOV_TAG_KEY + customerId;
Set<ZSetOperations.TypedTuple<Object>> typedTuples = redisUtils.zReverseRangeWithScores(customerKey, start, end);
for (CorrelationTagListResultDTO correlationTagList : resultList) {
for (ZSetOperations.TypedTuple<Object> typedTuple : typedTuples) {
TagRankResultDTO tagRank = objectToDTO(typedTuple.getValue(), TagRankResultDTO.class);
tagRank.setScore(typedTuple.getScore());
if (correlationTagList.getTagId().equals(tagRank.getTagId())){
resultEquals.add(tagRank);
}
}
}
return resultList;
}
// 根据标签使用顺序倒叙
List<TagRankResultDTO> collect = resultEquals.stream().sorted(Comparator.comparing(TagRankResultDTO::getScore).reversed()).collect(Collectors.toList());
List<CorrelationTagListResultDTO> realResult = new ArrayList<>();
for (TagRankResultDTO tagRankResultDTO : collect) {
CorrelationTagListResultDTO correlation = new CorrelationTagListResultDTO();
BeanUtils.copyProperties(tagRankResultDTO,correlation);
realResult.add(correlation);
}
return realResult;
}
@ -95,10 +125,8 @@ public class TagRedis {
return new ArrayList<>();
}
List<TagInfoResultDTO> result = new ArrayList<TagInfoResultDTO>();
ObjectMapper objectMapper = new ObjectMapper();
for (Object object : objects) {
TagInfoResultDTO tagInfoResultDto = objectMapper.convertValue(object, TagInfoResultDTO.class);
result.add(tagInfoResultDto);
result.add(objectToDTO(object,TagInfoResultDTO.class));
}
return result;
}
@ -117,16 +145,14 @@ public class TagRedis {
return new ArrayList<>();
}
List<TagInfoResultDTO> result = new ArrayList<TagInfoResultDTO>();
ObjectMapper objectMapper = new ObjectMapper();
for (Object object : objects) {
TagInfoResultDTO tagInfoResultDto = objectMapper.convertValue(object, TagInfoResultDTO.class);
result.add(tagInfoResultDto);
result.add(objectToDTO(object,TagInfoResultDTO.class));
}
return result;
}
/**
* @Description
* @Description 获取居民端级联标签按照使用次数倒序
* @param formDto
* @author zxc
*/
@ -135,6 +161,7 @@ public class TagRedis {
String gridId = formDto.getGridId();
Set<Object> objects ;
Collection<String> keys = new ArrayList<>();
//当 级联标签大于1条的时候
if (tagIdList.size() > 1){
for (int i = NumConstant.ONE; i < tagIdList.size(); i++) {
String tagId = tagIdList.get(i);
@ -142,8 +169,9 @@ public class TagRedis {
keys.add(tagId);
}
String key = TagConstant.GRID_RETAG_KEY+gridId+TagConstant.COLON+tagIdList.get(0);
objects = redisUtils.sUnion(key, keys);
objects = redisUtils.intersect(key, keys);
}else {
//当级联标签为一条时
String key = TagConstant.GRID_RETAG_KEY+gridId+TagConstant.COLON+tagIdList.get(0);
objects = redisUtils.sMembers(key);
}
@ -151,12 +179,49 @@ public class TagRedis {
if (objects.size()==NumConstant.ZERO){
return resultList;
}
ObjectMapper objectMapper = new ObjectMapper();
//转换DTO
for (Object object : objects) {
TagInfoResultDTO tagInfo = objectMapper.convertValue(object, TagInfoResultDTO.class);
resultList.add(tagInfo);
resultList.add(objectToDTO(object, TagInfoResultDTO.class));
}
return resultList;
//级联标签排序
//1.取出 zset 中的有序标签,根据级联标签,筛选有序标签
List<TagRankResultDTO> resultEquals = new ArrayList<>();
if (resultList.size() > NumConstant.ZERO) {
long start = 0;
long end = -1;
String customerKey = TagConstant.GRID_TAG_KEY+formDto.getGridId();
Set<ZSetOperations.TypedTuple<Object>> typedTuples = redisUtils.zReverseRangeWithScores(customerKey, start, end);
for (TagInfoResultDTO tagInfo : resultList) {
for (ZSetOperations.TypedTuple<Object> typedTuple : typedTuples) {
TagRankResultDTO tagRank = objectToDTO(typedTuple.getValue(), TagRankResultDTO.class);
tagRank.setScore(typedTuple.getScore());
if (tagInfo.getTagId().equals(tagRank.getTagId())){
resultEquals.add(tagRank);
}
}
}
}
// 根据标签使用顺序倒叙
List<TagRankResultDTO> collect = resultEquals.stream().sorted(Comparator.comparing(TagRankResultDTO::getScore).reversed()).collect(Collectors.toList());
List<TagInfoResultDTO> tagInfoResultList = new ArrayList<>();
for (TagRankResultDTO tagRankResultDTO : collect) {
TagInfoResultDTO tagInfoResult = new TagInfoResultDTO();
BeanUtils.copyProperties(tagRankResultDTO,tagInfoResult);
tagInfoResultList.add(tagInfoResult);
}
return tagInfoResultList;
}
/**
* @Description Object 转换 DTO
* @param o
* @param tClass
* @author zxc
*/
public <T> T objectToDTO(Object o,Class<T> tClass){
ObjectMapper objectMapper = new ObjectMapper();
T t = objectMapper.convertValue(o, tClass);
return t;
}
}

8
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java

@ -214,6 +214,14 @@ public interface ArticleService extends BaseService<ArticleEntity> {
**/
List<ArticleListResultDTO> getArticleList(ArticlePageFormDTO articlePageFormDTO);
/**
* @param formDTO
* @return
* @Author sun
* @Description 党建声音-政府端-可下线网格列表
**/
ArticleGridResultDTO publishGridList(PublishGridListFormDTO formDTO);
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param articleDetailFormDTO

35
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

@ -538,18 +538,14 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
throw new RenException(ArticleConstant.SELECT_STAFF_EXCEPTION);
}
CustomerStaffDTO staffDTO = resultStaff.getData();
//4.2:调用gov-org服务,查询当前人员所属组织机构信息
Result<CustomerAgencyDTO> resultAgency = govOrgSelfFeignClient.getAgencyByStaffId(formDTO.getStaffId());
if (null == resultAgency.getData()) {
throw new RenException(ArticleConstant.SELECT_AGRNCY_EXCEPTION);
}
CustomerAgencyDTO agencyDTO = resultAgency.getData();
//4.2:查询文章表数据
ArticleEntity articleEntity = baseDao.selectById(formDTO.getArticleId());
//4.3:新增操作表数据
ArticleOperateRecordEntity recordEntity = new ArticleOperateRecordEntity();
recordEntity.setCustomerId(formDTO.getCustomerId());
recordEntity.setCustomerId(articleEntity.getCustomerId());
recordEntity.setArticleId(formDTO.getArticleId());
recordEntity.setOpUser(agencyDTO.getOrganizationName() + "-" + staffDTO.getRealName());
recordEntity.setContent(recordEntity.getOpUser() + ArticleConstant.OFF_LINE_ARTICLE);
recordEntity.setOpUser(articleEntity.getPublisherName() + "-" + staffDTO.getRealName());
recordEntity.setContent(String.format(ArticleConstant.OFF_LINE_ARTICLE_MSG, articleEntity.getPublisherName(), staffDTO.getRealName(), articleEntity.getTitle()));
recordEntity.setOpType(ArticleConstant.OFFLINE);
recordEntity.setOpTime(date);
articleOperateRecordService.insert(recordEntity);
@ -643,6 +639,27 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
return baseDao.selectArticleList(articlePageFormDTO.getGridId(),articlePageFormDTO.getTagIdList());
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 党建声音-政府端-可下线网格列表
**/
@Override
public ArticleGridResultDTO publishGridList(PublishGridListFormDTO formDTO) {
/*//1:查询当前文章发布范围内还未下线网格列表
ArticlePublishRangeEntity rangeEntity = new ArticlePublishRangeEntity();
rangeEntity.setArticleId(formDTO.getArticleId());
rangeEntity.setPublishStatus(ArticleConstant.PUBLISHED);
List<ArticlePublishRangeEntity> rangeEntityList = articlePublishRangeDao.selectByArticleId(rangeEntity);
if(null==rangeEntityList||rangeEntityList.size()<NumConstant.ONE){
return new ArticleGridResultDTO();
}
List<String> gridIdList = rangeEntityList.stream().map(ArticlePublishRangeEntity::getGridId).collect(Collectors.toList());
formDTO.setGridIdList(gridIdList);*/
return null;
}
/**
* @Description 根绝文章Id查询出文章的内容封面等相关信息如果居民端传入的网格Id不在该文章的发布范围内则返回NULL
* @param articleDetailFormDTO

5
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticlePublishRangeDao.xml

@ -10,7 +10,12 @@
article_publish_range
WHERE
del_flag = '0'
<if test="articleId != null and articleId.trim() != ''">
AND article_id = #{articleId}
</if>
<if test="publishStatus != null and publishStatus.trim() != ''">
AND publish_status = #{publishStatus}
</if>
ORDER BY created_time ASC
</select>
</mapper>

19
epmet-module/gov-voice/gov-voice-server/src/main/resources/migration/epmet_gov_voice.sql

@ -75,13 +75,13 @@ CREATE TABLE draft(
TITLE VARCHAR(128) NOT NULL COMMENT '文章标题' ,
PREVIEW_CONTENT VARCHAR(512) NOT NULL COMMENT '文章内容 精简内容' ,
IS_TOP INT NOT NULL COMMENT '是否置顶 1是;0否;' ,
PUBLISH_RANGE_DESC VARCHAR(512) NOT NULL COMMENT '发布范围描述 所有发布范围集合,顿号隔开' ,
PUBLISHER_ID VARCHAR(64) NOT NULL COMMENT '发布单位ID' ,
PUBLISHER_NAME VARCHAR(128) NOT NULL COMMENT '发布单位名称' ,
PUBLISHER_TYPE VARCHAR(32) NOT NULL COMMENT '发布单位类型 机关:agency;部门:department;网格:grid' ,
PUBLISH_DATE DATE NOT NULL COMMENT '发布时间' ,
PUBLISH_RANGE_DESC VARCHAR(512) COMMENT '发布范围描述 所有发布范围集合,顿号隔开' ,
PUBLISHER_ID VARCHAR(64) COMMENT '发布单位ID' ,
PUBLISHER_NAME VARCHAR(128) COMMENT '发布单位名称' ,
PUBLISHER_TYPE VARCHAR(32) COMMENT '发布单位类型 机关:agency;部门:department;网格:grid' ,
PUBLISH_DATE DATE COMMENT '发布时间' ,
STATUS_FLAG VARCHAR(32) NOT NULL COMMENT '发布状态 未发布:unpublish ;已发布:published,审核中:auditing;审核失败:auditfail' ,
TAGS VARCHAR(512) NOT NULL COMMENT '文章标签串 竖杠分割的标签名称' ,
TAGS VARCHAR(512) COMMENT '文章标签串 竖杠分割的标签名称' ,
ORG_ID VARCHAR(64) COMMENT '组织ID' ,
ORG_ID_PATH VARCHAR(512) COMMENT '组织ID路径 eg:字段为def:abc' ,
GRID_ID VARCHAR(64) COMMENT '网格ID 数据权限使用' ,
@ -121,6 +121,9 @@ CREATE TABLE draft_publish_range(
DRAFT_ID VARCHAR(64) NOT NULL COMMENT 'ID草稿' ,
GRID_ID VARCHAR(64) NOT NULL COMMENT '网格ID' ,
AGENCY_GRID_NAME VARCHAR(64) NOT NULL COMMENT '组织-网格名称' ,
AGENCY_ID VARCHAR(64) NOT NULL COMMENT '组织ID' ,
PIDS VARCHAR(1024) NOT NULL COMMENT '所有上级组织机构ID 以英文:隔开' ,
ALL_PARENT_NAME VARCHAR(1024) NOT NULL COMMENT '所有上级名称 以横杠隔开' ,
OFF_LINE_TIME DATETIME COMMENT '下线时间' ,
PUBLISH_STATUS VARCHAR(32) NOT NULL COMMENT '发布状态 未发布:unpublish ;已发布:published' ,
DEL_FLAG INT NOT NULL DEFAULT 0 COMMENT '删除标识 0.未删除 1.已删除' ,
@ -221,6 +224,9 @@ CREATE TABLE article_publish_range(
ARTICLE_ID VARCHAR(64) NOT NULL COMMENT '文章ID' ,
GRID_ID VARCHAR(64) NOT NULL COMMENT '网格ID' ,
AGENCY_GRID_NAME VARCHAR(64) NOT NULL COMMENT '组织-网格名称' ,
AGENCY_ID VARCHAR(64) NOT NULL COMMENT '组织ID' ,
PIDS VARCHAR(1024) NOT NULL COMMENT '所有上级组织机构ID 以英文:隔开' ,
ALL_PARENT_NAME VARCHAR(1024) NOT NULL COMMENT '所有上级名称 以横杠隔开' ,
OFF_LINE_TIME DATETIME COMMENT '下线时间' ,
PUBLISH_STATUS VARCHAR(32) NOT NULL COMMENT '发布状态 已发布:published;已下线:offline' ,
DEL_FLAG INT NOT NULL DEFAULT 0 COMMENT '删除标识 0.未删除 1.已删除' ,
@ -269,3 +275,4 @@ CREATE TABLE article_visit_record(
ALTER TABLE article_visit_record ADD UNIQUE UNX_INDEX(ARTICLE_ID,GRID_ID,USER_ID);
ALTER TABLE article_visit_record COMMENT '文章访问记录表';

34
epmet-user/epmet-user-client/src/main/java/com/epmet/constant/RoleKeyConstants.java

@ -1,17 +1,47 @@
package com.epmet.constant;
/**
* 角色key常量
* 政府端工作人员角色key常量
*/
public class RoleKeyConstants {
/**
* 管理员
*/
public static final String ROLE_KEY_MANAGER = "manager";
/**
* 党建负责人
*/
public static final String ROLE_KEY_PARTY_PRINCIPALS = "party_principals";
/**
* 网格长
*/
public static final String ROLE_KEY_GRID_MANAGER = "grid_manager";
/**
* 单位领导
*/
public static final String ROLE_KEY_AGENCY_LEADER = "agency_leader";
/**
* 网格党建指导员
*/
public static final String ROLE_KEY_GRID_PARTY_DIRECTOR = "grid_party_director";
/**
* 部门领导
*/
public static final String ROLE_KEY_DEPT_LEADER = "dept_leader";
/**
* 工作人员
*/
public static final String ROLE_KEY_STAFF = "staff";
/**
* 网格员
*/
public static final String ROLE_KEY_GRID_MEMBER = "grid_member";
}

Loading…
Cancel
Save