Browse Source

完善接种权限

feature/independent
zhangyuan 4 years ago
parent
commit
dc5994b081
  1. 13
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dto/EpidemicUserInfoDTO.java
  2. 12
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/entity/EpidemicUserInfoEntity.java
  3. 1
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/entity/EpidemicUserInoutRecordEntity.java
  4. 10
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationUserRoleDao.java
  5. 65
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/redis/VaccinationAuthRedis.java
  6. 13
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationRoleServiceImpl.java
  7. 28
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationUserRoleServiceImpl.java
  8. 8
      epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml
  9. 11
      epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationUserRoleDao.xml

13
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dto/EpidemicUserInfoDTO.java

@ -66,4 +66,17 @@ public class EpidemicUserInfoDTO implements Serializable {
private String isInoculate; private String isInoculate;
private Integer maxDose; private Integer maxDose;
/**
* 县内居住地名称
*/
private String liveAddressName;
/**
* 社区/村庄
*/
private String community;
/**
* 网格名称
*/
private String gridName;
} }

12
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/entity/EpidemicUserInfoEntity.java

@ -155,4 +155,16 @@ public class EpidemicUserInfoEntity extends BasePingyinEntity {
*/ */
private Integer age; private Integer age;
/**
* 县内居住地名称
*/
private String liveAddressName;
/**
* 社区/村庄
*/
private String community;
/**
* 网格名称
*/
private String gridName;
} }

1
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/entity/EpidemicUserInoutRecordEntity.java

@ -92,7 +92,6 @@ public class EpidemicUserInoutRecordEntity extends BasePingyinEntity {
private String community; private String community;
/** /**
* 网格名称 * 网格名称
*/ */
private String gridName; private String gridName;
/** /**

10
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationUserRoleDao.java

@ -55,6 +55,16 @@ public interface VaccinationUserRoleDao extends BaseDao<VaccinationUserRoleEntit
*/ */
void deleteByUserId(@Param("userId") Long userId); void deleteByUserId(@Param("userId") Long userId);
/**
* 根据角色ID删除
*
* @param roleId
* @return void
* @author zhy
* @date 2021/5/31 16:21
*/
void deleteByRoleId(@Param("roleId") Long roleId);
/** /**
* 根据用户ID查找 * 根据用户ID查找
* *

65
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/redis/VaccinationAuthRedis.java

@ -0,0 +1,65 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.vaccine.vim.redis;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 区划信息表
*
* @author yujintao yujintao@elink-cn.com
* @since v1.0.0 2019-05-08
*/
@Component
public class VaccinationAuthRedis {
@Autowired
private RedisUtils redisUtils;
/**
* 疫苗接种权限
*
* @param userId
* @param auth
* @return void
* @author zhy
* @date 2021/6/3 17:19
*/
public void setVaccinationAuth(String userId, Object auth) {
String key = RedisKeys.getVaccinationAuthKey(userId);
redisUtils.set(key, auth, RedisUtils.MINUTE_THIRTY_EXPIRE);
}
/**
* 疫苗接种权限
*
* @param userId
* @param param
* @return void
* @author zhy
* @date 2021/6/3 17:19
*/
public void setVaccinationAuthParam(String userId, Object param) {
String key = RedisKeys.getVaccinationAuthParamKey(userId);
redisUtils.set(key, param, RedisUtils.MINUTE_THIRTY_EXPIRE);
}
}

13
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationRoleServiceImpl.java

@ -22,13 +22,16 @@ import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.vaccine.common.base.BaseVimCurdServiceImpl; import com.elink.esua.epdc.vaccine.common.base.BaseVimCurdServiceImpl;
import com.elink.esua.epdc.vaccine.vim.dao.VaccinationRoleDao; import com.elink.esua.epdc.vaccine.vim.dao.VaccinationRoleDao;
import com.elink.esua.epdc.vaccine.vim.dao.VaccinationUserRoleDao;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationRoleDTO; import com.elink.esua.epdc.vaccine.vim.dto.VaccinationRoleDTO;
import com.elink.esua.epdc.vaccine.vim.entity.VaccinationRoleEntity; import com.elink.esua.epdc.vaccine.vim.entity.VaccinationRoleEntity;
import com.elink.esua.epdc.vaccine.vim.entity.VaccinationUserRoleEntity;
import com.elink.esua.epdc.vaccine.vim.service.VaccinationRoleService; import com.elink.esua.epdc.vaccine.vim.service.VaccinationRoleService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Map; import java.util.Map;
/** /**
@ -40,6 +43,9 @@ import java.util.Map;
@Service @Service
public class VaccinationRoleServiceImpl extends BaseVimCurdServiceImpl<VaccinationRoleDao, VaccinationRoleEntity, VaccinationRoleDTO> implements VaccinationRoleService { public class VaccinationRoleServiceImpl extends BaseVimCurdServiceImpl<VaccinationRoleDao, VaccinationRoleEntity, VaccinationRoleDTO> implements VaccinationRoleService {
@Resource
private VaccinationUserRoleDao vaccinationUserRoleDao;
@Override @Override
public QueryWrapper<VaccinationRoleEntity> getWrapper(Map<String, Object> params) { public QueryWrapper<VaccinationRoleEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP); String id = (String) params.get(FieldConstant.ID_HUMP);
@ -74,6 +80,13 @@ public class VaccinationRoleServiceImpl extends BaseVimCurdServiceImpl<Vaccinati
updateById(entity); updateById(entity);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long[] ids) {
vaccinationUserRoleDao.deleteByRoleId(ids[0]);
baseDao.deleteById(ids[0]);
}
/** /**
* 所有的标点替换为英文逗号 * 所有的标点替换为英文逗号
* *

28
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationUserRoleServiceImpl.java

@ -23,6 +23,8 @@ import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum; import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum;
import com.elink.esua.epdc.commons.tools.exception.RenException; 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.page.PageData;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; 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.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
@ -32,8 +34,10 @@ import com.elink.esua.epdc.vaccine.vim.dto.VaccinationAuthDTO;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationRoleDTO; import com.elink.esua.epdc.vaccine.vim.dto.VaccinationRoleDTO;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationUserRoleDTO; import com.elink.esua.epdc.vaccine.vim.dto.VaccinationUserRoleDTO;
import com.elink.esua.epdc.vaccine.vim.entity.VaccinationUserRoleEntity; import com.elink.esua.epdc.vaccine.vim.entity.VaccinationUserRoleEntity;
import com.elink.esua.epdc.vaccine.vim.redis.VaccinationAuthRedis;
import com.elink.esua.epdc.vaccine.vim.service.VaccinationUserRoleService; import com.elink.esua.epdc.vaccine.vim.service.VaccinationUserRoleService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -49,6 +53,12 @@ import java.util.stream.Collectors;
@Service @Service
public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<VaccinationUserRoleDao, VaccinationUserRoleEntity, VaccinationUserRoleDTO> implements VaccinationUserRoleService { public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<VaccinationUserRoleDao, VaccinationUserRoleEntity, VaccinationUserRoleDTO> implements VaccinationUserRoleService {
@Autowired
private VaccinationAuthRedis vaccinationAuthRedis;
@Autowired
private RedisUtils redisUtils;
@Override @Override
public QueryWrapper<VaccinationUserRoleEntity> getWrapper(Map<String, Object> params) { public QueryWrapper<VaccinationUserRoleEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP); String id = (String) params.get(FieldConstant.ID_HUMP);
@ -108,6 +118,11 @@ public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<Vacci
return vaccinationAuthDTO; return vaccinationAuthDTO;
} }
Object obj = redisUtils.get(RedisKeys.getVaccinationAuthKey(userId.toString()));
if (null != obj) {
return (VaccinationAuthDTO) obj;
}
List<VaccinationRoleDTO> roleList = baseDao.selectRoleByUserId(userId); List<VaccinationRoleDTO> roleList = baseDao.selectRoleByUserId(userId);
if (!roleList.isEmpty()) { if (!roleList.isEmpty()) {
List<String> countyKeywords = new ArrayList<>(); List<String> countyKeywords = new ArrayList<>();
@ -127,6 +142,10 @@ public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<Vacci
vaccinationAuthDTO.setCommunityKeywords(communityKeywords.stream().distinct().collect(Collectors.toList()).stream().filter(string -> !string.isEmpty()).collect(Collectors.toList())); vaccinationAuthDTO.setCommunityKeywords(communityKeywords.stream().distinct().collect(Collectors.toList()).stream().filter(string -> !string.isEmpty()).collect(Collectors.toList()));
vaccinationAuthDTO.setGridKeywords(gridKeywords.stream().distinct().collect(Collectors.toList()).stream().filter(string -> !string.isEmpty()).collect(Collectors.toList())); vaccinationAuthDTO.setGridKeywords(gridKeywords.stream().distinct().collect(Collectors.toList()).stream().filter(string -> !string.isEmpty()).collect(Collectors.toList()));
} }
// 权限缓存
vaccinationAuthRedis.setVaccinationAuth(userId.toString(), vaccinationAuthDTO);
return vaccinationAuthDTO; return vaccinationAuthDTO;
} }
@ -138,6 +157,11 @@ public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<Vacci
return map; return map;
} }
Object obj = redisUtils.get(RedisKeys.getVaccinationAuthParamKey(userId.toString()));
if (null != obj) {
return (Map<String, Object>) obj;
}
VaccinationAuthDTO dto = getVaccinationAuth(userId); VaccinationAuthDTO dto = getVaccinationAuth(userId);
if (!dto.getCountyKeywords().isEmpty()) { if (!dto.getCountyKeywords().isEmpty()) {
@ -160,6 +184,10 @@ public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<Vacci
} else { } else {
map.put("gridKeywords", null); map.put("gridKeywords", null);
} }
// 权限缓存
vaccinationAuthRedis.setVaccinationAuthParam(userId.toString(), map);
return map; return map;
} }

8
epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml

@ -34,12 +34,10 @@
</if> </if>
<if test="streetKeywords != null or communityKeywords != null or gridKeywords != null"> <if test="streetKeywords != null or communityKeywords != null or gridKeywords != null">
LEFT JOIN epidemic_user_info u ON u.ID_CARD = v.IDENTITY_NO LEFT JOIN epidemic_user_info u ON u.ID_CARD = v.IDENTITY_NO
LEFT JOIN epidemic_user_inout_record uir ON uir.ID_CARD = v.IDENTITY_NO
</if> </if>
WHERE WHERE
v.DEL_FLAG = '0' v.DEL_FLAG = '0'
<if test="streetKeywords != null or communityKeywords != null or gridKeywords != null"> <if test="streetKeywords != null or communityKeywords != null or gridKeywords != null">
AND uir.DEL_FLAG = '0'
AND u.DEL_FLAG = '0' AND u.DEL_FLAG = '0'
</if> </if>
<if test="realName != null and realName != ''"> <if test="realName != null and realName != ''">
@ -79,19 +77,19 @@
and v.GRID like '%${gridName}%' and v.GRID like '%${gridName}%'
</if> </if>
<if test="streetKeywords != null"> <if test="streetKeywords != null">
AND uir.LIVE_ADDRESS_NAME IN AND u.LIVE_ADDRESS_NAME IN
<foreach collection="streetKeywords" index="index" item="street" open="(" separator="," close=")"> <foreach collection="streetKeywords" index="index" item="street" open="(" separator="," close=")">
#{street} #{street}
</foreach> </foreach>
</if> </if>
<if test="communityKeywords != null"> <if test="communityKeywords != null">
AND uir.COMMUNITY IN AND u.COMMUNITY IN
<foreach collection="communityKeywords" index="index" item="community" open="(" separator="," close=")"> <foreach collection="communityKeywords" index="index" item="community" open="(" separator="," close=")">
#{community} #{community}
</foreach> </foreach>
</if> </if>
<if test="gridKeywords != null"> <if test="gridKeywords != null">
AND uir.GRID_NAME IN AND u.GRID_NAME IN
<foreach collection="gridKeywords" index="index" item="grid" open="(" separator="," close=")"> <foreach collection="gridKeywords" index="index" item="grid" open="(" separator="," close=")">
#{grid} #{grid}
</foreach> </foreach>

11
epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationUserRoleDao.xml

@ -17,7 +17,7 @@
<select id="getList" resultType="com.elink.esua.epdc.vaccine.vim.dto.VaccinationUserRoleDTO"> <select id="getList" resultType="com.elink.esua.epdc.vaccine.vim.dto.VaccinationUserRoleDTO">
SELECT SELECT
ur.*, u.real_name AS userName, ur.*, u.username AS userName,
group_concat(r.ROLE_NAME) AS roleNames group_concat(r.ROLE_NAME) AS roleNames
FROM FROM
vaccination_user_role ur vaccination_user_role ur
@ -41,6 +41,15 @@
WHERE WHERE
user_id = #{userId} user_id = #{userId}
</delete> </delete>
<delete id="deleteByRoleId">
DELETE
FROM
vaccination_user_role
WHERE
role_id = #{roleId}
</delete>
<select id="selectByUserId" resultType="com.elink.esua.epdc.vaccine.vim.dto.VaccinationUserRoleDTO"> <select id="selectByUserId" resultType="com.elink.esua.epdc.vaccine.vim.dto.VaccinationUserRoleDTO">
SELECT * SELECT *
FROM FROM

Loading…
Cancel
Save