kaiyu
2021-05-21 66ab6b7d3ac3e7a50a8a0c1506ea5448ea8d8eee
screen-manage
对后台用户进行修改和删除时,销毁其token
7 files modified
106 ■■■■■ changed files
screen-common/src/main/java/com/moral/util/TokenUtils.java 48 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/VersionController.java 6 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/VersionSensorUnit.java 10 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/version/VersionSensorUnitForm.java 4 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java 13 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java 21 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/TokenUtils.java
@@ -10,8 +10,11 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.concurrent.TimeUnit;
/**
@@ -78,7 +81,7 @@
    /**
     * @Description: 校验token
     * @Param: [type, token] type: 后台取值:manage  前台取值:api
     * @return: java.util.Map<java.lang.String                               ,                               java.lang.Object>
     * @return: java.util.Map<java.lang.String                                                                                                                               ,                                                                                                                               java.lang.Object>
     * @Author: 陈凯裕
     * @Date: 2021/3/10
     */
@@ -105,7 +108,7 @@
    /**
     * @Description: 通过token获取用户信息
     * @Param: [token]
     * @return: java.util.Map<java.lang.String                               ,                               java.lang.Object>
     * @return: java.util.Map<java.lang.String                                                                                                                               ,                                                                                                                               java.lang.Object>
     * @Author: 陈凯裕
     * @Date: 2021/3/11
     */
@@ -129,6 +132,7 @@
        redisTemplate.opsForHash().delete("user_token", uid);
    }
    /**
     * @Description: 销毁token
     * @Param: [token]
@@ -141,6 +145,34 @@
    }
    /**
     * @Description: 销毁当前连接的token
     * @Param: []
     * @return: void
     * @Author: 陈凯裕
     * @Date: 2021/5/21
     */
    public static void destoryToken() {
        destoryToken(getCurrentToken());
    }
    public static void destoryToken(Integer id) {
        String token = getTokenById(id);
        destoryToken(token,String.valueOf(id));
    }
    /**
     * @Description: 根据id获取token
     * @Param: []
     * @return: java.lang.String
     * @Author: 陈凯裕
     * @Date: 2021/5/21
     */
    public static String getTokenById(Integer id) {
         return (String)redisTemplate.opsForHash().get("user_token", String.valueOf(id));
    }
    /**
     * @Description: 根据TOKEN获取Id
     * @Param: [token]
     * @return: void
@@ -152,6 +184,18 @@
        return string[0];
    }
    /**
     * @Description: 获取当前请求的token
     * @Param: []
     * @return: java.lang.String
     * @Author: 陈凯裕
     * @Date: 2021/5/21
     */
    public static String getCurrentToken() {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        return request.getHeader("token");
    }
    /**
     * @Description: token延长
screen-manage/src/main/java/com/moral/api/controller/VersionController.java
@@ -12,6 +12,7 @@
import com.moral.api.service.VersionService;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.util.TokenUtils;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -104,5 +105,10 @@
        return new ResultMessage(dto.getCode(), dto.getMsg(), null);
    }
    @GetMapping("test")
    public ResultMessage test(){
        System.out.println(TokenUtils.getCurrentToken());
        return null;
    }
}
screen-manage/src/main/java/com/moral/api/entity/VersionSensorUnit.java
@@ -45,6 +45,16 @@
     */
    private String unitKey;
    /*
    * 上限值
    * */
    private Integer maxValue;
    /*
    * 下限值
    * */
    private Integer minValue;
    /**
     * 创建时间
     */
screen-manage/src/main/java/com/moral/api/pojo/form/version/VersionSensorUnitForm.java
@@ -16,10 +16,12 @@
@Data
public class VersionSensorUnitForm {
    private Integer versionId;
    private List<VersionSensorUnit> sensorUnits;
    public boolean valid(){
        if(sensorUnits==null)
        if(sensorUnits==null||ObjectUtils.isEmpty(versionId))
            return false;
        return true;
    }
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
@@ -326,6 +326,8 @@
        UpdateWrapper<ManageAccountRole> deleteManageAccountRoleWrapper = new UpdateWrapper<>();
        deleteManageAccountRoleWrapper.set("is_delete", Constants.DELETE).eq("account_id", manageAccount.getId());
        manageAccountRoleMapper.update(null, deleteManageAccountRoleWrapper);
        //销毁token
        TokenUtils.destoryToken(accountId);
        //封装返回结果
        accountDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -395,6 +397,8 @@
                manageAccountRoleMapper.insert(manageAccountRole);
            }
        }
        //销毁token
        TokenUtils.destoryToken(manageAccount.getId());
        //封装返回结果
        accountDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
@@ -5,6 +5,7 @@
import com.moral.api.config.mybatis.wrapper.NullFilterWrapper;
import com.moral.api.entity.Group;
import com.moral.api.entity.Menu;
import com.moral.api.mapper.GroupMenuMapper;
import com.moral.api.mapper.MenuMapper;
import com.moral.api.pojo.dto.menu.MenuDTO;
import com.moral.api.pojo.dto.menu.MenuQueryDTO;
@@ -44,6 +45,8 @@
    MenuMapper menuMapper;
    @Autowired
    GroupService groupService;
    @Autowired
    GroupMenuMapper groupMenuMapper;
    @Override
    public MenuQueryDTO queryAllMenus() {
@@ -131,6 +134,7 @@
    }
    @Override
    @Transactional
    public MenuDTO deleteMenu(MenuDeleteForm form) {
        //创建返回对象
        MenuDTO dto = new MenuDTO();
@@ -154,7 +158,14 @@
        //删除菜单
        existMenu.setIsDelete(Constants.DELETE);
        menuMapper.updateById(existMenu);
        //删除角色菜单关系表中对应的菜单
        UpdateWrapper deleteGroupMenuWrapper = new UpdateWrapper();
        List<Integer> allMenuIds = new ArrayList<>();
        allMenuIds.add(id);
        allMenuIds.addAll(childrenIds);
        deleteGroupMenuWrapper.in("menu_id",allMenuIds);
        deleteGroupMenuWrapper.set("is_delete",Constants.DELETE);
        groupMenuMapper.update(null,deleteGroupMenuWrapper);
        //封装返回对象
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
screen-manage/src/main/java/com/moral/api/service/impl/VersionServiceImpl.java
@@ -180,7 +180,26 @@
    }
    @Override
    @Transactional
    public VersionDTO updateSensorUnits(VersionSensorUnitForm form) {
        return null;
        //创建返回对象
        VersionDTO dto = new VersionDTO();
        //取参
        List<VersionSensorUnit> sensorUnits = form.getSensorUnits();
        Integer versionId = form.getVersionId();
        //删除之前分配的单位和因子
        UpdateWrapper deleteWrapper = new UpdateWrapper();
        deleteWrapper.eq("version_id",versionId);
        deleteWrapper.set("is_delete",Constants.DELETE);
        versionSensorUnitMapper.update(null,deleteWrapper);
        //添加新分配的单位和因子
        for (VersionSensorUnit sensorUnit : sensorUnits) {
            sensorUnit.setVersionId(versionId);
            versionSensorUnitMapper.insert(sensorUnit);
        }
        //封装返回结果
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
}