ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-common/src/main/java/com/ycl/entity/user/UmsAdmin.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-common/src/main/java/com/ycl/mapper/user/UmsAdminMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-common/src/main/java/com/ycl/mapper/user/UmsDepartManageMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-common/src/main/resources/mapper/user/UmsAdminMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-common/src/main/resources/mapper/user/UmsDepartManageMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-platform/src/main/resources/application-dev.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java
@@ -13,6 +13,8 @@ @Getter @Setter public class UmsAdminParam { @ApiModelProperty(value = "用户名", required = false) private Long id; @NotBlank(message = "用户名不能为空") @ApiModelProperty(value = "用户名", required = true) private String username; @@ -36,11 +38,11 @@ @ApiModelProperty(value = "备注") private String note; @ApiModelProperty(value = "是否党员,0:否,1:是",example = "0") @ApiModelProperty(value = "是否党员,0:否,1:是", example = "0") @NotNull(message = "党员未选择") private byte isDy; @ApiModelProperty(value = "性别,0:女,1:男",example = "0") @ApiModelProperty(value = "性别,0:女,1:男", example = "0") @NotNull(message = "性别未选择") private byte sex; @@ -76,4 +78,7 @@ @ApiModelProperty(value = "ip地址") private String ipAddress; @ApiModelProperty(value = "有效天数") private Integer days; } ycl-common/src/main/java/com/ycl/entity/user/UmsAdmin.java
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import com.ycl.entity.depart.UmsDepart; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -58,6 +60,10 @@ @ApiModelProperty(value = "最后登录时间") private Date loginTime; @ApiModelProperty(value = "账号有效期") @JsonFormat(pattern = "yyyy-MM-dd") private Date expirationDate; @ApiModelProperty(value = "帐号启用状态:0->禁用;1->启用") private Integer status; @@ -79,7 +85,6 @@ @ApiModelProperty(value = "部门名称") @TableField(exist = false) private String departName; @ApiModelProperty(value = "用户类型") ycl-common/src/main/java/com/ycl/mapper/user/UmsAdminMapper.java
@@ -22,7 +22,11 @@ */ List<Long> getAdminIdList(@Param("resourceId") Long resourceId); Page<UmsAdmin> selectCondPage(Page<UmsAdmin> page,UmsAdmin umsAdmin); Page<UmsAdmin> selectCondPage(Page<UmsAdmin> page, UmsAdmin umsAdmin); Long selectCondTotal(@Param("umsAdmin") UmsAdmin umsAdmin); List<UmsAdmin> selectCondList(@Param("umsAdmin") UmsAdmin umsAdmin, @Param("offset") Integer offset, @Param("size") Integer size); List<UmsAdmin> selectToExp(); ycl-common/src/main/java/com/ycl/mapper/user/UmsDepartManageMapper.java
@@ -18,6 +18,7 @@ public interface UmsDepartManageMapper extends BaseMapper<UmsDepartManage> { void deletedByDepartId(@Param("departId") long departId); void deletedByUserId(@Param("userId") long userId); List<UmsDepartManage> selectPageByUserId(@Param("userId") long userId, @Param("current") int current, @Param("pageSize") int pageSize); } ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
@@ -1,9 +1,13 @@ package com.ycl.service.user.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.PageUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.druid.sql.PagerUtils; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.bo.AdminUserDetails; @@ -45,9 +49,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.*; import java.util.function.Consumer; import java.util.stream.Collectors; @@ -85,8 +87,9 @@ @Override public UmsAdmin getAdminByUsername(String username) { UmsAdmin admin = getCacheService().getAdmin(username); if (admin != null) return admin; // UmsAdmin admin = getCacheService().getAdmin(username); // if (admin != null) return admin; UmsAdmin admin = null; QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(UmsAdmin::getUsername, username); List<UmsAdmin> adminList = list(wrapper); @@ -109,6 +112,9 @@ //查询是否有相同用户名的用户 QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(UmsAdmin::getUsername, umsAdmin.getUsername()); if (umsAdmin.getId() != null) { wrapper.lambda().ne(UmsAdmin::getId, umsAdmin.getId()); } List<UmsAdmin> umsAdminList = list(wrapper); if (umsAdminList.size() > 0) { return null; @@ -116,15 +122,35 @@ //将密码进行加密操作 String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); if ( !umsAdmin.getPassword().matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$")) { if (umsAdmin.getId() == null && !umsAdmin.getPassword().matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$")) { Asserts.fail("密码长度8到16位且密码中的字符必须包含字母(大写或者小写)和必须包含数字,不能包含空格"); } if(umsAdmin.getUsername().equals(umsAdmin.getPassword())){ Asserts.fail("密码不能和登录名完全一致"); if (umsAdmin.getUsername().equals(umsAdmin.getPassword())) { Asserts.fail("密码不能和登录名完全一致"); } umsAdmin.setPassword(encodePassword); baseMapper.insert(umsAdmin); if (umsAdminParam.getDays() != null) { Date date = new Date(); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); // 把日期往后增加一天,整数 往后推,负数往前移动 calendar.add(Calendar.DATE, umsAdminParam.getDays()); // 这个时间就是日期往后推一天的结果 date = calendar.getTime(); umsAdmin.setExpirationDate(date); } else { umsAdmin.setExpirationDate(new Date("2200-01-01")); } if (umsAdmin.getId() != null) { baseMapper.updateById(umsAdmin); } else { baseMapper.insert(umsAdmin); } LambdaQueryWrapper<UmsAdminRoleRelation> deleteWrapper = new QueryWrapper<UmsAdminRoleRelation>().lambda() .eq(UmsAdminRoleRelation::getAdminId, umsAdmin.getId()); umsAdminRoleRelationService.remove(deleteWrapper); //添加角色授权 List<Long> ids = umsAdminParam.getRoleIds(); if (!ids.isEmpty()) { @@ -138,6 +164,8 @@ umsAdminRoleRelationService.saveBatch(roleIds); } umsDepartManageMapper.deletedByDepartId(umsAdmin.getId()); //添加部门 UmsDepartManage departManage = new UmsDepartManage(); departManage.setUserId(umsAdmin.getId()); @@ -146,7 +174,7 @@ departManage.setUpdateTime(new Date()); umsDepartManageMapper.insert(departManage); baseMapper.updateById(umsAdmin); // baseMapper.updateById(umsAdmin); return umsAdmin; } @@ -167,10 +195,10 @@ //将密码进行加密操作 String encodePassword = passwordEncoder.encode(umsAdmin.getPassword()); if ( !umsAdmin.getPassword().matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$")) { if (!umsAdmin.getPassword().matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$")) { Asserts.fail("密码长度8到16位且密码中的字符必须包含字母(大写或者小写)和必须包含数字,不能包含空格"); } if(umsAdmin.getUsername().equals(umsAdmin.getPassword())){ if (umsAdmin.getUsername().equals(umsAdmin.getPassword())) { Asserts.fail("密码不能和登录名完全一致"); } umsAdmin.setPassword(encodePassword); @@ -236,6 +264,7 @@ if (!userDetails.isEnabled()) { Asserts.fail("帐号已被禁用"); } UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); //根据用户id,用户姓名 @@ -369,7 +398,7 @@ && !param.getNewPassword().matches("^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$")) { return -1; } if(param.getUsername().equals(param.getNewPassword())){ if (param.getUsername().equals(param.getNewPassword())) { return -4; } QueryWrapper<UmsAdmin> wrapper = new QueryWrapper<>(); @@ -393,6 +422,11 @@ //获取用户信息 UmsAdmin admin = getAdminByUsername(username); if (admin != null) { if (admin.getExpirationDate() != null) { if (!admin.getExpirationDate().after(new Date())) { Asserts.fail("账号已过期请联系管理员"); } } List<UmsMenu> resourceList = getResourceList(admin.getId()); return new AdminUserDetails(admin, resourceList); } @@ -432,9 +466,13 @@ if (pageUserVO.getJobTitle() != null && !("".equals(pageUserVO.getJobTitle()))) { umsAdmin.setJobTitle(pageUserVO.getJobTitle()); } Page<UmsAdmin> page1 = baseMapper.selectCondPage(page, umsAdmin); return page1; PageUtil.setFirstPageNo(1); int offset = PageUtil.getStart(current, pageSize); List<UmsAdmin> list = baseMapper.selectCondList(umsAdmin, offset, pageSize); Long total = baseMapper.selectCondTotal(umsAdmin); page.setRecords(list); page.setTotal(total); return page; } @Override @@ -456,7 +494,7 @@ roleStrBuffer.append(","); } }); roleStrBuffer.deleteCharAt(roleStrBuffer.length()-1); roleStrBuffer.deleteCharAt(roleStrBuffer.length() - 1); res1.setRoles(roleStrBuffer.toString()); StringBuffer departStrBuffer = new StringBuffer(); List<UmsDepart> departs = item.getDepart(); @@ -467,19 +505,19 @@ departStrBuffer.append(","); } }); departStrBuffer.deleteCharAt(departStrBuffer.length()-1); departStrBuffer.deleteCharAt(departStrBuffer.length() - 1); res1.setDepart(departStrBuffer.toString()); res1.setJobTitle(item.getJobTitle()); Date createTime = item.getCreateTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if (createTime != null){ if (createTime != null) { res1.setCreateTime(sdf.format(createTime)); } Integer status = item.getStatus(); if (status.equals(1)){ if (status.equals(1)) { res1.setStatus("启用"); }else { } else { res1.setStatus("禁用"); } return res1; ycl-common/src/main/resources/mapper/user/UmsAdminMapper.xml
@@ -22,6 +22,7 @@ <result column="user_type" property="userType"/> <result column="zj" property="zj"/> <result column="mobile" property="mobile"/> <result column="expiration_date" property="expirationDate"/> </resultMap> <resultMap type="com.ycl.entity.user.UmsAdmin" id="CondMapResultMap" extends="BaseResultMap"> <collection property="depart" javaType="ArrayList" ofType="com.ycl.entity.depart.UmsDepart"> @@ -35,15 +36,14 @@ <result column="depart_update_time" property="updateTime"/> <result column="is_deleted" property="isDeleted"/> </collection> <collection property="roles" javaType="ArrayList" ofType="com.ycl.entity.user.UmsRole" column="id" select="selectAdminRoles"> <id column="role_id" property="id"/> <result column="name" property="name"/> <result column="description" property="description"/> <result column="admin_count" property="adminCount"/> <collection property="roles" javaType="ArrayList" ofType="com.ycl.entity.user.UmsRole"> <result column="role_id" property="id"/> <result column="role_name" property="name"/> <result column="role_description" property="description"/> <result column="role_admin_count" property="adminCount"/> <result column="role_create_time" property="createTime"/> <result column="role_status" property="status"/> <result column="sort" property="sort"/> <result column="role_sort" property="sort"/> </collection> </resultMap> @@ -65,11 +65,15 @@ ud.create_time depat_create_time, ud.update_time depat_update_time, ud.STATUS depart_status, ud.is_deleted ud.is_deleted, r.id role_id, r.`name` role_name FROM ums_admin ua LEFT JOIN ums_depart_manager udm ON ua.id = udm.user_id LEFT JOIN ums_depart ud ON udm.depart_id = ud.id LEFT JOIN ums_admin_role_relation ar on ar.admin_id = ua.id LEFT JOIN ums_role r on ar.role_id = r.id <where> <if test="umsAdmin.keyword !=null and umsAdmin.keyword !=''"> AND (ua.username LIKE concat('%',#{umsAdmin.keyword,jdbcType=VARCHAR},'%') @@ -100,6 +104,40 @@ where ua.id = #{id} </select> <select id="selectToExp" resultType="com.ycl.entity.user.UmsAdmin" resultMap="CondMapResultMap"> SELECT ua.*, ud.id depart_id, ud.depart_name, ud.depart_des, ud.depart_type, ud.parent_id, ud.create_time depat_create_time, ud.update_time depat_update_time, ud.STATUS depart_status, ud.is_deleted FROM ums_admin ua LEFT JOIN ums_depart_manager udm ON ua.id = udm.user_id LEFT JOIN ums_depart ud ON udm.depart_id = ud.id ORDER BY ua.id DESC </select> <select id="selectCondTotal" parameterType="com.ycl.entity.user.UmsAdmin" resultType="java.lang.Long"> SELECT count(1) total FROM ums_admin ua <where> <if test="umsAdmin.keyword !=null and umsAdmin.keyword !=''"> AND (ua.username LIKE concat('%',#{umsAdmin.keyword,jdbcType=VARCHAR},'%') or ua.nick_name LIKE concat('%',#{umsAdmin.keyword,jdbcType=VARCHAR},'%') or ua.mobile LIKE concat('%',#{umsAdmin.keyword,jdbcType=VARCHAR},'%')) </if> <if test="umsAdmin.userType !=null and umsAdmin.userType >=0 "> AND ua.user_type = #{umsAdmin.userType} </if> <if test="umsAdmin.jobTitle !=null and umsAdmin.keyword !=''"> AND ua.job_title = #{umsAdmin.jobTitle} </if> </where> </select> <select id="selectCondList" parameterType="com.ycl.entity.user.UmsAdmin" resultMap="CondMapResultMap"> SELECT ua.*, ud.id depart_id, @@ -110,12 +148,32 @@ ud.create_time depat_create_time, ud.update_time depat_update_time, ud.STATUS depart_status, ud.is_deleted ud.is_deleted, r.id role_id, r.`name` role_name FROM ums_admin ua LEFT JOIN ums_depart_manager udm ON ua.id = udm.user_id LEFT JOIN ums_depart ud ON udm.depart_id = ud.id (select * from ums_admin ua <where> <if test="umsAdmin.keyword !=null and umsAdmin.keyword !=''"> AND (ua.username LIKE concat('%',#{umsAdmin.keyword,jdbcType=VARCHAR},'%') or ua.nick_name LIKE concat('%',#{umsAdmin.keyword,jdbcType=VARCHAR},'%') or ua.mobile LIKE concat('%',#{umsAdmin.keyword,jdbcType=VARCHAR},'%')) </if> <if test="umsAdmin.userType !=null and umsAdmin.userType >=0 "> AND ua.user_type = #{umsAdmin.userType} </if> <if test="umsAdmin.jobTitle !=null and umsAdmin.keyword !=''"> AND ua.job_title = #{umsAdmin.jobTitle} </if> </where> ORDER BY ua.id DESC LIMIT #{offset}, #{size} ) as ua LEFT JOIN ums_depart_manager udm ON ua.id = udm.user_id LEFT JOIN ums_depart ud ON udm.depart_id = ud.id LEFT JOIN ums_admin_role_relation ar on ar.admin_id = ua.id LEFT JOIN ums_role r on ar.role_id = r.id </select> </mapper> ycl-common/src/main/resources/mapper/user/UmsDepartManageMapper.xml
@@ -21,6 +21,11 @@ from ums_depart_manager where depart_id = #{departId} </delete> <delete id="deletedByUserId"> delete from ums_depart_manager where user_id = #{userId} </delete> <select id="selectPageByUserId" resultMap="BaseResultMap"> select ycl-platform/src/main/resources/application-dev.yml
@@ -35,7 +35,7 @@ timeout: 0 datasource: url: jdbc:mysql://42.193.1.25:3306/sccg0318?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false url: jdbc:mysql://42.193.1.25:3306/sccg?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false username: root password: 321$YcYl@1970! type: com.alibaba.druid.pool.DruidDataSource