ludc
2023-03-22 e0652e168a1ad4a831d59d54363d3fa5582903d2
修改用户服务相关内容,增加密码策略
已修改12个文件
已删除1个文件
已添加5个文件
301 ■■■■■ 文件已修改
Document/设计文档/密码安全策略开发模块文档.docx 补丁 | 查看 | 原始文档 | blame | 历史
Document/设计文档/菜单管理开发模块文档.docx 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Strategy.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/UserPwdstrategy.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/ValueRange.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserPwdstrategyMapper.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserPwdstrategyMapper.xml 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IStrategyService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserPwdstrategyService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserPwdstrategyServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ubcs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Document/Éè¼ÆÎĵµ/ÃÜÂ밲ȫ²ßÂÔ¿ª·¢Ä£¿éÎĵµ.docx
Binary files differ
Document/Éè¼ÆÎĵµ/²Ëµ¥¹ÜÀí¿ª·¢Ä£¿éÎĵµ.docx
Binary files differ
Source/BladeX/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
@@ -103,17 +103,17 @@
    /**
     * elk dev åœ°å€
     */
    String ELK_DEV_ADDR = "dev.vci-tech.com:37002";
    String ELK_DEV_ADDR = "dev.vci-tech.com:38002";
    /**
     * elk prod åœ°å€
     */
    String ELK_PROD_ADDR = "dev.vci-tech.com:37002";
    String ELK_PROD_ADDR = "dev.vci-tech.com:38002";
    /**
     * elk test åœ°å€
     */
    String ELK_TEST_ADDR = "dev.vci-tech.com:37002";
    String ELK_TEST_ADDR = "dev.vci-tech.com:38002";
    /**
     * seata file模式
Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Strategy.java
@@ -70,13 +70,13 @@
     * è¿‡æœŸæ—¶é—´
     */
    @ApiModelProperty(value = "过期时间")
    private Date expirationTime;
    private Long expirationTime;
    /**
     * æé†’æ—¶é—´
     */
    @ApiModelProperty(value = "提醒时间")
    private Date reminderTime;
    private Long reminderTime;
    /**
     * é”å®šæ¬¡æ•°
@@ -88,7 +88,7 @@
     * é”å®šæ—¶é—´
     */
    @ApiModelProperty(value = "锁定时间")
    private Date lockingTime;
    private Long lockingTime;
    /**
     * æè¿°
Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/UserPwdstrategy.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
package org.springblade.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Objects;
/**
 * (UserPwdStrtategy)实体类
 *
 * @author makejava
 * @since 2023-03-20 14:59:29
 */
@Data
@NoArgsConstructor
@TableName("pl_sys_user_pwdstrategy")
@ApiModel(value = "UserPwdStrtategy", description = "UserPwdStrtategy")
public class UserPwdstrategy implements Serializable {
    private static final long serialVersionUID = -556926788101426521L;
    /**
     * ä¸»é”®
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long Id;
    /**
     * ç”¨æˆ·id
     */
    @ApiModelProperty(value = "用户id")
    private Long userId;
    /**
     * å¯†ç ç­–ç•¥id
     */
    @ApiModelProperty(value = "密码策略id")
    private Long pwdstrategyId;
    public UserPwdstrategy(Long userId, Long pwdStrategyId) {
        this.userId = userId;
        this.pwdstrategyId = pwdStrategyId;
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        UserPwdstrategy that = (UserPwdstrategy) o;
        return Objects.equals(Id, that.Id) && Objects.equals(userId, that.userId) && Objects.equals(pwdstrategyId, that.pwdstrategyId);
    }
    @Override
    public int hashCode() {
        return Objects.hash(Id, userId, pwdstrategyId);
    }
}
Source/BladeX/blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/ValueRange.java
@@ -14,7 +14,7 @@
import java.util.Objects;
/**
 * (PlSysValueRange)实体类
 * (ValueRange)实体类
 *
 * @author makejava
 * @since 2023-03-20 14:59:29
Source/BladeX/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java
@@ -17,7 +17,6 @@
package org.springblade.system.user.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
Source/BladeX/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/vo/UserVO.java
@@ -48,6 +48,11 @@
    private String password;
    /**
     * å¯†ç ç­–ç•¥
     */
    private String pwdStrategy;
    /**
     * ç§Ÿæˆ·å
     */
    private String tenantName;
@@ -81,4 +86,5 @@
     * æ‹“展信息
     */
    private String userExt;
}
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserPwdstrategyMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package org.springblade.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.system.entity.UserPwdstrategy;
/**
 * ç”¨æˆ·å¯†ç ç­–略管理表(UserPwdstrategy)表数据库访问层
 *
 * @author makejava
 * @since 2023-03-22 15:24:46
 */
public interface UserPwdstrategyMapper  extends BaseMapper<UserPwdstrategy> {
    /**
     * é€šè¿‡ID查询单条数据
     *
     * @param id ä¸»é”®
     * @return å®žä¾‹å¯¹è±¡
     */
    UserPwdstrategy queryById(Long id);
    /**
     * ç»Ÿè®¡æ€»è¡Œæ•°
     *
     * @param UserPwdstrategy æŸ¥è¯¢æ¡ä»¶
     * @return æ€»è¡Œæ•°
     */
    long count(UserPwdstrategy UserPwdstrategy);
    /**
     * ä¿®æ”¹æ•°æ®
     *
     * @param UserPwdstrategy å®žä¾‹å¯¹è±¡
     * @return å½±å“è¡Œæ•°
     */
    int update(UserPwdstrategy UserPwdstrategy);
    /**
     * é€šè¿‡ä¸»é”®åˆ é™¤æ•°æ®
     *
     * @param id ä¸»é”®
     * @return å½±å“è¡Œæ•°
     */
    int deleteById(Long id);
}
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserPwdstrategyMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.system.mapper.UserPwdstrategyMapper">
    <resultMap type="org.springblade.system.entity.UserPwdstrategy" id="UserPwdstrategyMap">
        <result property="id" column="ID" jdbcType="INTEGER"/>
        <result property="userId" column="USER_ID" jdbcType="INTEGER"/>
        <result property="pwdstrategyId" column="PWDSTRATEGY_ID" jdbcType="INTEGER"/>
    </resultMap>
    <!--查询单个-->
    <select id="queryById" resultMap="UserPwdstrategyMap">
        select ID,
               USER_ID,
               PWDSTRATEGY_ID
        from PL_SYS_USER_PWDSTRATEGY
        where ID = #{id}
    </select>
    <!--统计总行数-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from PL_SYS_USER_PWDSTRATEGY
        <where>
            <if test="id != null">
                and ID = #{id}
            </if>
            <if test="userId != null">
                and USER_ID = #{userId}
            </if>
            <if test="pwdstrategyId != null">
                and PWDSTRATEGY_ID = #{pwdstrategyId}
            </if>
        </where>
    </select>
    <!--通过主键修改数据-->
    <update id="update">
        update PL_SYS_USER_PWDSTRATEGY
        <set>
            <if test="userId != null">
                USER_ID = #{userId},
            </if>
            <if test="pwdstrategyId != null">
                PWDSTRATEGY_ID = #{pwdstrategyId},
            </if>
        </set>
        where ID = #{id}
    </update>
    <!--通过主键删除-->
    <delete id="deleteById">
        delete
        from PL_SYS_USER_PWDSTRATEGY
        where ID = #{id}
    </delete>
</mapper>
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IStrategyService.java
@@ -47,4 +47,10 @@
     */
    boolean deleteByIds(List<String> ids);
    /**
     * æŸ¥è¯¢é»˜è®¤å¯†ç ç­–ç•¥
     * @return
     */
    Long queryByIsDefault();
}
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/ITenantService.java
@@ -21,7 +21,6 @@
import org.springblade.system.entity.Tenant;
import org.springblade.system.vo.TenantVO;
import java.util.Date;
import java.util.List;
import java.util.Map;
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/IUserPwdstrategyService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package org.springblade.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.system.entity.UserPwdstrategy;
/**
 * ç”¨æˆ·å¯†ç ç­–略管理表(UserPwdstrategy)表服务接口
 *
 * @author makejava
 * @since 2023-03-22 15:24:54
 */
public interface IUserPwdstrategyService extends IService<UserPwdstrategy> {
    /**
     * æ–°å¢žæˆ–修改数据
     *
     * @param UserPwdstrategy å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    boolean submit(UserPwdstrategy UserPwdstrategy);
}
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java
@@ -92,6 +92,10 @@
                this.update(Wrappers.<Strategy>update().lambda()
                    .set(Strategy::getIsDefault,CommonConstant.NOT_SEALED_ID)
                    .eq(Strategy::getIsDefault,CommonConstant.DATA_SCOPE_CATEGORY));
            }else {
                if(Func.isEmpty(queryByIsDefault())){
                    throw new ServiceException("默认密码策略必须有且仅有一条!");
                }
            }
            if(Func.isEmpty(strategy.getUpdateTime())){
                strategy.setUpdateTime(new Date());
@@ -120,4 +124,14 @@
        return tenantTemp;
    }
    /**
     * æŸ¥è¯¢é»˜è®¤å¯†ç ç­–ç•¥
     * @return
     */
    @Override
    public Long queryByIsDefault() {
        return this.getOne(Wrappers.<Strategy>query().lambda()
            .eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY)).getId();
    }
}
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/TenantServiceImpl.java
@@ -64,6 +64,9 @@
    private final IRoleMenuService roleMenuService;
    private final IDictBizService dictBizService;
    private final IUserClient userClient;
    private final IStrategyService strategyService;
    private final IUserPwdstrategyService userPwdstrategyService;
    /**
     * èŽ·å–æ˜¯å¦å…è®¸è‡ªè¡ŒæŽ§åˆ¶ä¸‰å‘˜æ˜¯å¦å¼€å¯
     */
@@ -120,12 +123,13 @@
                LinkedList<DictBiz> dictBizs = new LinkedList<>();
                List<DictBiz> dictBizList = getDictBizs(tenantId, dictBizs);
                dictBizService.saveBatch(dictBizList);
                // æ–°å»ºç§Ÿæˆ·å¯¹åº”的默认管理用户
                User userInfo = generateUser(tenantId, role, dept, postInfo);
                // æ–°å»ºç§Ÿæˆ·å¯¹åº”的默认管理用
                User user = generateUser(tenantId, role, dept, postInfo);
                // å…ˆä¿å­˜ç§Ÿæˆ·
                boolean temp = super.saveOrUpdate(tenant);
                // åˆ›å»ºç”¨æˆ·
                R<Boolean> result = userClient.saveUser(userInfo);
                R<Boolean> result = userClient.saveUser(user);
                //生成用户密码策略管理记录
                if (!result.isSuccess()) {
                    throw new ServiceException(result.getMsg());
                }
Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/UserPwdstrategyServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package org.springblade.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.entity.UserPwdstrategy;
import org.springblade.system.mapper.UserPwdstrategyMapper;
import org.springblade.system.service.IUserPwdstrategyService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
/**
 * ç”¨æˆ·å¯†ç ç­–略管理表(UserPwdstrategy)表服务实现类
 *
 * @author makejava
 * @since 2023-03-22 15:24:55
 */
@Service
public class UserPwdstrategyServiceImpl extends ServiceImpl<UserPwdstrategyMapper,UserPwdstrategy> implements IUserPwdstrategyService {
    @Resource
    private UserPwdstrategyMapper userPwdstrategyMapper;
    /**
     * æ–°å¢žæ•°æ®
     *
     * @param userPwdstrategy å®žä¾‹å¯¹è±¡
     * @return å®žä¾‹å¯¹è±¡
     */
    @Override
    public boolean submit(UserPwdstrategy userPwdstrategy) {
        if(Func.isEmpty(userPwdstrategy.getId())){
            return this.saveOrUpdate(userPwdstrategy);
        }else {
            CacheUtil.clear(SYS_CACHE,Boolean.FALSE);
            return this.saveOrUpdate(userPwdstrategy);
        }
    }
}
Source/BladeX/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
@@ -23,7 +23,6 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.common.constant.TenantConstant;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
@@ -32,13 +31,11 @@
import org.springblade.core.tenant.BladeTenantProperties;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.jackson.JsonUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.*;
import org.springblade.system.cache.DictCache;
import org.springblade.system.cache.ParamCache;
import org.springblade.system.cache.SysCache;
import org.springblade.system.entity.RoleMenu;
import org.springblade.system.entity.Tenant;
import org.springblade.system.enums.DictEnum;
import org.springblade.system.feign.ISysClient;
@@ -84,7 +81,7 @@
            user.setTenantId(BladeConstant.ADMIN_TENANT_ID);
        }
        String tenantId = user.getTenantId();
        Tenant tenant = SysCache.getTenant(tenantId);
        //Tenant tenant = SysCache.getTenant(tenantId);
        if (Func.isNotEmpty(user.getPassword())) {
            user.setPassword(DigestUtil.encrypt(user.getPassword()));
        }
ubcs
ÎļþÒÑɾ³ý