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 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 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 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);
/**
* 根据角色ID删除
*
* @param roleId
* @return void
* @author zhy
* @date 2021/5/31 16:21
*/
void deleteByRoleId(@Param("roleId") Long roleId);
/**
* 根据用户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.vaccine.common.base.BaseVimCurdServiceImpl;
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.entity.VaccinationRoleEntity;
import com.elink.esua.epdc.vaccine.vim.entity.VaccinationUserRoleEntity;
import com.elink.esua.epdc.vaccine.vim.service.VaccinationRoleService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Map;
/**
@ -40,6 +43,9 @@ import java.util.Map;
@Service
public class VaccinationRoleServiceImpl extends BaseVimCurdServiceImpl<VaccinationRoleDao, VaccinationRoleEntity, VaccinationRoleDTO> implements VaccinationRoleService {
@Resource
private VaccinationUserRoleDao vaccinationUserRoleDao;
@Override
public QueryWrapper<VaccinationRoleEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
@ -74,6 +80,13 @@ public class VaccinationRoleServiceImpl extends BaseVimCurdServiceImpl<Vaccinati
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.exception.RenException;
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.UserDetail;
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.VaccinationUserRoleDTO;
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 org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -49,6 +53,12 @@ import java.util.stream.Collectors;
@Service
public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<VaccinationUserRoleDao, VaccinationUserRoleEntity, VaccinationUserRoleDTO> implements VaccinationUserRoleService {
@Autowired
private VaccinationAuthRedis vaccinationAuthRedis;
@Autowired
private RedisUtils redisUtils;
@Override
public QueryWrapper<VaccinationUserRoleEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
@ -108,6 +118,11 @@ public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<Vacci
return vaccinationAuthDTO;
}
Object obj = redisUtils.get(RedisKeys.getVaccinationAuthKey(userId.toString()));
if (null != obj) {
return (VaccinationAuthDTO) obj;
}
List<VaccinationRoleDTO> roleList = baseDao.selectRoleByUserId(userId);
if (!roleList.isEmpty()) {
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.setGridKeywords(gridKeywords.stream().distinct().collect(Collectors.toList()).stream().filter(string -> !string.isEmpty()).collect(Collectors.toList()));
}
// 权限缓存
vaccinationAuthRedis.setVaccinationAuth(userId.toString(), vaccinationAuthDTO);
return vaccinationAuthDTO;
}
@ -138,6 +157,11 @@ public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<Vacci
return map;
}
Object obj = redisUtils.get(RedisKeys.getVaccinationAuthParamKey(userId.toString()));
if (null != obj) {
return (Map<String, Object>) obj;
}
VaccinationAuthDTO dto = getVaccinationAuth(userId);
if (!dto.getCountyKeywords().isEmpty()) {
@ -160,6 +184,10 @@ public class VaccinationUserRoleServiceImpl extends BaseVimCurdServiceImpl<Vacci
} else {
map.put("gridKeywords", null);
}
// 权限缓存
vaccinationAuthRedis.setVaccinationAuthParam(userId.toString(), map);
return map;
}

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

@ -34,12 +34,10 @@
</if>
<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_inout_record uir ON uir.ID_CARD = v.IDENTITY_NO
</if>
WHERE
v.DEL_FLAG = '0'
<if test="streetKeywords != null or communityKeywords != null or gridKeywords != null">
AND uir.DEL_FLAG = '0'
AND u.DEL_FLAG = '0'
</if>
<if test="realName != null and realName != ''">
@ -79,19 +77,19 @@
and v.GRID like '%${gridName}%'
</if>
<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=")">
#{street}
</foreach>
</if>
<if test="communityKeywords != null">
AND uir.COMMUNITY IN
AND u.COMMUNITY IN
<foreach collection="communityKeywords" index="index" item="community" open="(" separator="," close=")">
#{community}
</foreach>
</if>
<if test="gridKeywords != null">
AND uir.GRID_NAME IN
AND u.GRID_NAME IN
<foreach collection="gridKeywords" index="index" item="grid" open="(" separator="," close=")">
#{grid}
</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
ur.*, u.real_name AS userName,
ur.*, u.username AS userName,
group_concat(r.ROLE_NAME) AS roleNames
FROM
vaccination_user_role ur
@ -41,6 +41,15 @@
WHERE
user_id = #{userId}
</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 *
FROM

Loading…
Cancel
Save