ludc
2023-03-21 4203c28f06c08155b3f4163c23f7b115f38fc8a5
修改密码策略部分接口
已修改8个文件
已添加1个文件
87 ■■■■ 文件已修改
Document/设计文档/密码安全策略开发模块文档.docx 补丁 | 查看 | 原始文档 | blame | 历史
Document/设计文档/租户管理开发模块文档.docx 补丁 | 查看 | 原始文档 | blame | 历史
Document/设计文档/菜单管理开发模块文档.docx 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/StrategyController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IStrategyService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Document/Éè¼ÆÎĵµ/ÃÜÂ밲ȫ²ßÂÔ¿ª·¢Ä£¿éÎĵµ.docx
Binary files differ
Document/Éè¼ÆÎĵµ/×â»§¹ÜÀí¿ª·¢Ä£¿éÎĵµ.docx
Binary files differ
Document/Éè¼ÆÎĵµ/²Ëµ¥¹ÜÀí¿ª·¢Ä£¿éÎĵµ.docx
Binary files differ
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/RoleController.java
@@ -152,7 +152,6 @@
    /**
     * ä¸‹æ‹‰æ•°æ®æº
     */
    //@PreAuth(AuthConstant.PERMIT_ALL)
    @GetMapping("/select")
    @ApiOperationSupport(order = 8)
    @ApiOperation(value = "下拉数据源", notes = "传入id集合")
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/controller/StrategyController.java
@@ -1,17 +1,16 @@
package org.springblade.system.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.system.entity.Strategy;
import org.springblade.system.service.IStrategyService;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
@@ -43,16 +42,15 @@
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param strategy ç­›é€‰æ¡ä»¶
     * @param query      åˆ†é¡µå¯¹è±¡
     * @param query åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "分页查询", notes = "传入combination,分页参数query")
    public R<IPage<Strategy>> queryByPage(Strategy strategy, Query query) {
        IPage<Strategy> pages = strategyService.page(Condition.getPage(query), Condition.getQueryWrapper(strategy));
        return R.data(pages);
    public R<Page<Strategy>> queryByPage(Query query) {
        Page<Strategy> strategyPage = strategyService.queryAllByPage(query);
        return R.data(strategyPage);
    }
    /**
@@ -90,7 +88,7 @@
    @PostMapping("/remove")
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "删除", notes = "传入ids")
    public ResponseEntity<Boolean> deleteById(List<String> ids) {
    public ResponseEntity<Boolean> deleteById(@ApiParam(value = "主键集合", required = true) @RequestParam List<String> ids) {
        return ResponseEntity.ok(this.strategyService.deleteByIds(ids));
    }
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.java
@@ -1,10 +1,9 @@
package org.springblade.system.mapper;
import org.springblade.system.entity.Strategy;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.system.entity.Strategy;
import java.util.List;
@@ -17,21 +16,12 @@
public interface StrategyMapper extends BaseMapper<Strategy> {
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param id ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    Strategy queryById(String id);
    /**
     * æŸ¥è¯¢æŒ‡å®šè¡Œæ•°æ®
     *
     * @param strategy æŸ¥è¯¢æ¡ä»¶
     * @param pageable      åˆ†é¡µå¯¹è±¡
     * @param page åˆ†é¡µå¯¹è±¡
     * @return å¯¹è±¡åˆ—表
     */
    List<Strategy> queryAllByPage(Strategy strategy, @Param("pageable") Pageable pageable);
    List<Strategy> queryAllByPage(IPage page);
    /**
     * ç»Ÿè®¡æ€»è¡Œæ•°
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/StrategyMapper.xml
@@ -22,14 +22,6 @@
        <result property="combinationNames" column="COMBINATIONNAMES"/>
    </resultMap>
    <!--查询单个-->
    <select id="queryById" resultMap="StrategyMap">
        select
          ID, STRATEGY_NAME, MIN_PWD_LEN, MAX_PWD_LEN, COMBINATION , REQUIRED_TYPE, EXPIRATION_TIME, REMINDER_TIME, LOCKING_NUM, LOCKING_TIME, DESC, IS_DEFAULT, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER
        from PL_SYS_STRATEGY
        where ID = #{id}
    </select>
    <!--查询指定行数据-->
    <select id="queryAllByPage" resultMap="StrategyMap">
        select pss.*,
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IStrategyService.java
@@ -1,9 +1,9 @@
package org.springblade.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.mp.support.Query;
import org.springblade.system.entity.Strategy;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.PageImpl;
import java.util.List;
@@ -26,11 +26,10 @@
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param strategy ç­›é€‰æ¡ä»¶
     * @param pageRequest   åˆ†é¡µå¯¹è±¡
     * @param query åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    Page<Strategy> queryAllByPage(Strategy strategy, PageRequest pageRequest);
    PageImpl<Strategy> queryAllByPage(Query query);
    /**
     * æ–°å¢žæ•°æ®æˆ–修改数据
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java
@@ -1,16 +1,17 @@
package org.springblade.system.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.entity.Strategy;
import org.springblade.system.mapper.StrategyMapper;
import org.springblade.system.service.IStrategyService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -39,20 +40,19 @@
     */
    @Override
    public Strategy queryById(String id) {
        return this.strategyMapper.queryById(id);
        return this.getById(id);
    }
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param strategy ç­›é€‰æ¡ä»¶
     * @param pageRequest   åˆ†é¡µå¯¹è±¡
     * @param query åˆ†é¡µå¯¹è±¡
     * @return æŸ¥è¯¢ç»“æžœ
     */
    @Override
    public Page<Strategy> queryAllByPage(Strategy strategy, PageRequest pageRequest) {
        long total = this.strategyMapper.count(strategy);
        return new PageImpl<>(this.strategyMapper.queryAllByPage(strategy, pageRequest), pageRequest, total);
    public PageImpl<Strategy> queryAllByPage(Query query) {
        Page<Strategy> strategyPage = new Page<>(query.getCurrent(), query.getSize());
        return new PageImpl<>(this.strategyMapper.queryAllByPage(strategyPage));
    }
    /**
@@ -65,12 +65,18 @@
    public boolean submit(Strategy strategy) {
        //判断是否携带id
        if(Func.isEmpty(strategy.getId())){
            //新增
            //执行新增
            Strategy dbstrategy = this.getOne(Wrappers.<Strategy>query().lambda()
                .eq(Strategy::getStrategyName, strategy.getStrategyName()));
            //如果数据库中存在这条组合名称的记录直接返回
            if(!Func.isEmpty(dbstrategy)){
                throw new ServiceException("该密码策略已存在!");
            }
            //如果当前新增设置为默认密码策略,需要将已存在默认密码策略修改为非默认
            if(strategy.getIsDefault().equals("1") || strategy.getIsDefault() == 1){
                this.update(Wrappers.<Strategy>update().lambda()
                    .set(Strategy::getIsDefault, CommonConstant.NOT_SEALED_ID)
                    .eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY));
            }
            if(Func.isEmpty(strategy.getCreateTime())){
                strategy.setCreateTime(new Date());
@@ -81,6 +87,12 @@
            boolean temp = super.saveOrUpdate(strategy);
            return temp;
        }else {
            //如果当前修改设置为默认密码策略,需要将已存在默认密码策略修改为非默认
            if(strategy.getIsDefault().equals("1") || strategy.getIsDefault() == 1){
                this.update(Wrappers.<Strategy>update().lambda()
                    .set(Strategy::getIsDefault,CommonConstant.NOT_SEALED_ID)
                    .eq(Strategy::getIsDefault,CommonConstant.DATA_SCOPE_CATEGORY));
            }
            if(Func.isEmpty(strategy.getUpdateTime())){
                strategy.setUpdateTime(new Date());
            }
@@ -97,6 +109,13 @@
     */
    @Override
    public boolean deleteByIds(List<String> ids) {
        Strategy strategy = this.getOne(Wrappers.<Strategy>query().lambda()
            .in(Strategy::getId,ids)
            .eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY));
        //如果存在默认策略的id,就不能直接删除给出提示
        if(!Func.isEmpty(strategy)){
            throw new ServiceException("不能删除默认密码策略!");
        }
        boolean tenantTemp = this.removeBatchByIds(ids);
        return tenantTemp;
    }