Commit 66ec46e0 authored by 33's avatar 33

后台角色管理

parent 626761c6
package com.fzm.admin.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import com.fzm.admin.params.AdminRoleParam;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.Admin;
import com.fzm.common.entity.AdminRole;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.AdminRoleService;
import com.fzm.common.service.AdminService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author wt
* @date 2022/3/11
*/
@Authentication
@RestController
@RequestMapping(value = "/admin/role")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@Api(tags = "管理员权限管理")
public class AdminRoleController {
private final AdminService adminService;
private final AdminRoleService adminRoleService;
private final PasswordEncoder passwordEncoder;
@GetMapping("/list")
@ApiOperation(value = "查询所有权限")
public ResponseModel<List<AdminRole>> list() {
return ResponseModel.success(adminRoleService.listAll());
}
@PostMapping("/add")
@ApiOperation("新增权限")
public ResponseModel<Object> add(@RequestBody AdminRoleParam adminRoleParam) {
String nickname = adminRoleParam.getNickname();
Assert.notBlank(nickname, "昵称不能为空");
String username = adminRoleParam.getUsername();
Assert.notBlank(username, "用户名不能为空");
String password = adminRoleParam.getPassword();
Assert.notBlank(password, "密码不能为空");
Integer roleId = adminRoleParam.getRoleId();
Assert.notNull(roleId, "权限ID不能为空");
List<AdminRole> adminRoles = adminRoleService.listAll();
Assert.isTrue(adminRoles.stream().map(AdminRole::getRoleId).anyMatch(id -> id.equals(roleId)), "请选择正确的权限");
Admin admin = BeanUtil.copyProperties(adminRoleParam, Admin.class);
admin.setPassword(passwordEncoder.encode(password));
adminService.save(admin);
return ResponseModel.success();
}
@PostMapping("/update")
@ApiOperation("编辑权限")
public ResponseModel<Object> update(@RequestBody AdminRoleParam adminRoleParam) {
String username = adminRoleParam.getUsername();
Assert.notBlank(username, "用户名不能为空");
String password = adminRoleParam.getPassword();
if (StringUtils.isNotBlank(password)) {
adminRoleParam.setPassword(passwordEncoder.encode(password));
}
Integer roleId = adminRoleParam.getRoleId();
if (roleId != null) {
List<AdminRole> adminRoles = adminRoleService.listAll();
Assert.isTrue(adminRoles.stream().map(AdminRole::getRoleId).anyMatch(id -> id.equals(roleId)), "请选择正确的权限");
}
if (StringUtils.isAnyBlank(adminRoleParam.getNickname(), password) && roleId == null) {
throw GlobalException.newException(ResultCode.VALIDATE_FAILED);
}
Admin admin = BeanUtil.copyProperties(adminRoleParam, Admin.class);
adminService.updateByUserNameIf(admin);
return ResponseModel.success();
}
}
package com.fzm.admin.params;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wt
* @date 2022/3/11
*/
@Data
public class AdminRoleParam {
@ApiModelProperty("昵称")
private String nickname;
@ApiModelProperty("用户名")
private String username;
@ApiModelProperty("密码")
private String password;
@ApiModelProperty("角色编号")
private Integer roleId;
}
package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* @author wt
* @date 2022/3/11
*/
@Data
@Accessors(chain = true)
@TableName("tb_admin_role")
public class AdminRole {
@TableId(type = IdType.AUTO)
private Integer id;
@ApiModelProperty("角色id")
private Integer roleId;
@ApiModelProperty("角色名称")
private String roleName;
}
...@@ -10,4 +10,6 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -10,4 +10,6 @@ import org.apache.ibatis.annotations.Mapper;
*/ */
@Mapper @Mapper
public interface AdminMapper extends BaseMapper<Admin> { public interface AdminMapper extends BaseMapper<Admin> {
void updateByUserNameIf(Admin admin);
} }
package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.AdminRole;
import org.apache.ibatis.annotations.Mapper;
/**
* @author wt
* @date 2022/3/11
*/
@Mapper
public interface AdminRoleMapper extends BaseMapper<AdminRole> {
}
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.AdminRole;
import java.util.List;
/**
* @author wt
* @date 2022/3/11
*/
public interface AdminRoleService extends IService<AdminRole> {
List<AdminRole> listAll();
}
...@@ -10,4 +10,5 @@ import com.fzm.common.entity.Admin; ...@@ -10,4 +10,5 @@ import com.fzm.common.entity.Admin;
public interface AdminService extends IService<Admin> { public interface AdminService extends IService<Admin> {
Admin login(String username, String password); Admin login(String username, String password);
void updateByUserNameIf(Admin admin);
} }
package com.fzm.common.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.AdminRole;
import com.fzm.common.mapper.AdminRoleMapper;
import com.fzm.common.service.AdminRoleService;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author wt
* @date 2022/3/11
*/
@Service
public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole> implements AdminRoleService {
@Override
@Cacheable(value = "adminRole", key = "'list'")
public List<AdminRole> listAll() {
return list();
}
}
...@@ -7,21 +7,21 @@ import com.fzm.common.enums.ResultCode; ...@@ -7,21 +7,21 @@ import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException; import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.AdminMapper; import com.fzm.common.mapper.AdminMapper;
import com.fzm.common.service.AdminService; import com.fzm.common.service.AdminService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/** /**
* @author tangtuo * @author tangtuo
* @date 2021/7/5 15:09 * @date 2021/7/5 15:09
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements AdminService { public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements AdminService {
private final AdminMapper AdminMapper;
@Resource private final PasswordEncoder passwordEncoder;
private PasswordEncoder passwordEncoder;
@Override @Override
public Admin login(String username, String password) { public Admin login(String username, String password) {
...@@ -36,4 +36,9 @@ public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements ...@@ -36,4 +36,9 @@ public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements
} }
return admin; return admin;
} }
@Override
public void updateByUserNameIf(Admin admin) {
AdminMapper.updateByUserNameIf(admin);
}
} }
<?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="com.fzm.common.mapper.AdminMapper">
<update id="updateByUserNameIf" parameterType="com.fzm.common.entity.Admin">
update tb_admin
<set>
<if test="nickname != null and nickname != ''">
nickname = #{nickname},
</if>
<if test="password != null and password != ''">
`password` = #{password},
</if>
<if test="roleId != null">
role_id = #{roleId},
</if>
update_date = now()
</set>
where username = #{username}
</update>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment