From ad2c2d53d756c8c9caa6e043c1868cfdf9736b9d Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 26 May 2022 17:52:09 +0800 Subject: [PATCH] 20220526 --- src/main/java/com/xcong/farmer/cms/modules/system/service/IMenuService.java | 21 src/main/resources/mapper/RoleMenuMapper.xml | 13 src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java | 20 src/main/java/com/xcong/farmer/cms/modules/system/mapper/RoleMapper.java | 14 src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java | 187 +++++++ src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminMenuVo.java | 40 + src/main/java/com/xcong/farmer/cms/common/response/Result.java | 9 src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java | 14 src/main/java/com/xcong/farmer/cms/modules/system/mapper/UserMapper.java | 14 src/main/resources/mapper/UserMapper.xml | 20 src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java | 28 + src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java | 38 + src/main/java/com/xcong/farmer/cms/modules/system/entity/MenuEntity.java | 35 + src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUserDto.java | 20 src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java | 27 + src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java | 169 ++++++ src/main/java/com/xcong/farmer/cms/modules/system/service/IRoleService.java | 21 src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java | 2 src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeMenuInfoVo.java | 28 + src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminRoleDto.java | 19 src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java | 32 + src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java | 32 + src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminRoleController.java | 60 ++ src/main/resources/mapper/RoleMapper.xml | 20 src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateMenuDto.java | 29 + src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateRoleDto.java | 23 src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java | 82 +++ src/main/java/com/xcong/farmer/cms/modules/system/entity/RoleMenuEntity.java | 16 src/main/java/com/xcong/farmer/cms/modules/system/entity/UserRoleEntity.java | 16 src/main/resources/mapper/UserRoleMapper.xml | 5 src/main/java/com/xcong/farmer/cms/FarmerCmsApplication.java | 1 src/main/java/com/xcong/farmer/cms/modules/system/mapper/UserRoleMapper.java | 7 src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddMenuDto.java | 26 + src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/MenuServiceImpl.java | 171 ++++++ src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeRoleInfoVo.java | 25 + src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminMenuController.java | 60 ++ src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminMenuInfoVo.java | 17 src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminRoleVo.java | 26 + src/main/resources/mapper/MenuMapper.xml | 20 src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java | 43 + src/main/java/com/xcong/farmer/cms/modules/system/entity/RoleEntity.java | 17 src/main/resources/application.yml | 2 src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminMenuDto.java | 17 src/main/java/com/xcong/farmer/cms/modules/system/mapper/RoleMenuMapper.java | 14 44 files changed, 1,498 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/xcong/farmer/cms/FarmerCmsApplication.java b/src/main/java/com/xcong/farmer/cms/FarmerCmsApplication.java index 2f6a03e..1ee1f2f 100644 --- a/src/main/java/com/xcong/farmer/cms/FarmerCmsApplication.java +++ b/src/main/java/com/xcong/farmer/cms/FarmerCmsApplication.java @@ -13,6 +13,7 @@ */ @EnableSwagger2 @SpringBootApplication +@MapperScan("com.xcong.farmer.cms.modules.*.mapper") @MapperScan("com.xcong.farmer.cms.modules.*.dao") public class FarmerCmsApplication implements CommandLineRunner { diff --git a/src/main/java/com/xcong/farmer/cms/common/response/Result.java b/src/main/java/com/xcong/farmer/cms/common/response/Result.java index bdb5333..6da0933 100644 --- a/src/main/java/com/xcong/farmer/cms/common/response/Result.java +++ b/src/main/java/com/xcong/farmer/cms/common/response/Result.java @@ -16,7 +16,7 @@ private static final long serialVersionUID = 1L; - private static final int SUCCESS = 0; + private static final int SUCCESS = 200; private static final int FAIL = -1; @@ -38,6 +38,13 @@ return result; } + public static Result ok(Object data) { + Result result = new Result(); + result.code = SUCCESS; + result.data = data; + return result; + } + public static Result ok(String msg, Object data) { Result result = new Result(); result.code = SUCCESS; diff --git a/src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java b/src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java index 970c4d5..ce55de5 100644 --- a/src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java +++ b/src/main/java/com/xcong/farmer/cms/common/system/base/BaseEntity.java @@ -30,4 +30,6 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; + + private Integer version; } diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminMenuController.java b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminMenuController.java new file mode 100644 index 0000000..5deebfa --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminMenuController.java @@ -0,0 +1,60 @@ +package com.xcong.farmer.cms.modules.system.Controller; + +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.*; +import com.xcong.farmer.cms.modules.system.service.IMenuService; +import com.xcong.farmer.cms.modules.system.service.IRoleService; +import com.xcong.farmer.cms.modules.system.vo.AdminMenuVo; +import com.xcong.farmer.cms.modules.system.vo.AdminRoleVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +@RestController +@RequestMapping(value = "/menu") +@Slf4j +@Api(value = "系统菜单", tags = "系统菜单") +public class AdminMenuController { + + @Resource + private IMenuService iMenuService; + + @ApiOperation(value = "系统菜单分页列表", notes = "系统菜单分页列表") + @ApiResponses({@ApiResponse(code = 200, message = "ok", response = AdminMenuVo.class)}) + @PostMapping(value = "/menuInPage") + public Result getMenuInPage(@RequestBody @Valid AdminMenuDto adminMenuDto) { + log.info("--->{}", SecurityContextHolder.getContext().getAuthentication()); + return iMenuService.getMenuInPage(adminMenuDto); + } + + @ApiOperation(value = "添加系统菜单", notes = "添加系统菜单") + @PostMapping(value = "/addMenu") + public Result addMenu(@RequestBody @Valid AdminAddMenuDto adminAddMenuDto) { + return iMenuService.addMenu(adminAddMenuDto); + } + + @ApiOperation(value = "删除系统菜单", notes = "删除系统菜单") + @GetMapping(value = "/deleteMenu/{id}") + public Result deleteMenu(@PathVariable(value = "id") Long id) { + return iMenuService.deleteMenu(id); + } + + @ApiOperation(value = "查看系统菜单详情", notes = "查看系统菜单详情") + @GetMapping(value = "/seeMenuInfo/{id}") + public Result seeMenuInfo(@PathVariable(value = "id") Long id) { + return iMenuService.seeMenuInfo(id); + } + + @ApiOperation(value = "更新系统菜单", notes = "更新系统菜单") + @PostMapping(value = "/updateMenu") + public Result updateMenu(@RequestBody @Valid AdminUpdateMenuDto adminUpdateMenuDto) { + return iMenuService.updateMenu(adminUpdateMenuDto); + } +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminRoleController.java b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminRoleController.java new file mode 100644 index 0000000..44a5fae --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminRoleController.java @@ -0,0 +1,60 @@ +package com.xcong.farmer.cms.modules.system.Controller; + +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.*; +import com.xcong.farmer.cms.modules.system.service.IRoleService; +import com.xcong.farmer.cms.modules.system.service.IUserService; +import com.xcong.farmer.cms.modules.system.vo.AdminRoleVo; +import com.xcong.farmer.cms.modules.system.vo.AdminUserVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +@RestController +@RequestMapping(value = "/role") +@Slf4j +@Api(value = "系统角色", tags = "系统角色") +public class AdminRoleController { + + @Resource + private IRoleService iRoleService; + + @ApiOperation(value = "系统角色分页列表", notes = "系统角色分页列表") + @ApiResponses({@ApiResponse(code = 200, message = "ok", response = AdminRoleVo.class)}) + @PostMapping(value = "/userInPage") + public Result getUserInPage(@RequestBody @Valid AdminRoleDto adminRoleDto) { + log.info("--->{}", SecurityContextHolder.getContext().getAuthentication()); + return iRoleService.getRoleInPage(adminRoleDto); + } + + @ApiOperation(value = "添加系统角色", notes = "添加系统角色") + @PostMapping(value = "/addRole") + public Result addRole(@RequestBody @Valid AdminAddRoleDto adminAddRoleDto) { + return iRoleService.addRole(adminAddRoleDto); + } + + @ApiOperation(value = "删除系统角色", notes = "删除系统角色") + @GetMapping(value = "/deleteRole/{id}") + public Result deleteRole(@PathVariable(value = "id") Long id) { + return iRoleService.deleteRole(id); + } + + @ApiOperation(value = "查看系统角色详情", notes = "查看系统角色详情") + @GetMapping(value = "/seeRoleInfo/{id}") + public Result seeRoleInfo(@PathVariable(value = "id") Long id) { + return iRoleService.seeRoleInfo(id); + } + + @ApiOperation(value = "更新系统角色", notes = "更新系统角色") + @PostMapping(value = "/updateRole") + public Result updateRole(@RequestBody @Valid AdminUpdateRoleDto adminUpdateRoleDto) { + return iRoleService.updateRole(adminUpdateRoleDto); + } +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java new file mode 100644 index 0000000..2b04b81 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/Controller/AdminUserController.java @@ -0,0 +1,82 @@ +package com.xcong.farmer.cms.modules.system.Controller; + +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.AdminAddUserDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUpdateUserDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUserDto; +import com.xcong.farmer.cms.modules.system.service.IUserService; +import com.xcong.farmer.cms.modules.system.vo.AdminUserVo; +import com.xcong.farmer.cms.modules.test.dto.TestUserDto; +import com.xcong.farmer.cms.modules.test.entity.TestUserEntity; +import com.xcong.farmer.cms.modules.test.mapper.TestUserEntityMapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +@RestController +@RequestMapping(value = "/user") +@Slf4j +@Api(value = "系统用户", tags = "系统用户") +public class AdminUserController { + + @Resource + private IUserService iUserService; + + @ApiOperation(value = "系统用户分页列表", notes = "系统用户分页列表") + @ApiResponses({@ApiResponse(code = 200, message = "ok", response = AdminUserVo.class)}) + @PostMapping(value = "/userInPage") + public Result getUserInPage(@RequestBody @Valid AdminUserDto adminUserDto) { + log.info("--->{}", SecurityContextHolder.getContext().getAuthentication()); + return iUserService.getUserInPage(adminUserDto); + } + + @ApiOperation(value = "添加系统用户", notes = "添加系统用户") + @PostMapping(value = "/addUser") + public Result addUser(@RequestBody @Valid AdminAddUserDto adminAddUserDto) { + return iUserService.addUser(adminAddUserDto); + } + + @ApiOperation(value = "激活用户", notes = "激活用户") + @GetMapping(value = "/activeUser/{id}") + public Result activeUser(@PathVariable(value = "id") Long id) { + return iUserService.activeUser(id); + } + + @ApiOperation(value = "禁用用户", notes = "禁用用户") + @GetMapping(value = "/forbiddenUser/{id}") + public Result forbiddenUser(@PathVariable(value = "id") Long id) { + return iUserService.forbiddenUser(id); + } + + @ApiOperation(value = "删除用户", notes = "删除用户") + @GetMapping(value = "/deleteUser/{id}") + public Result deleteUser(@PathVariable(value = "id") Long id) { + return iUserService.deleteUser(id); + } + + @ApiOperation(value = "查看用户详情", notes = "查看用户详情") + @GetMapping(value = "/seeUserInfo/{id}") + public Result seeUserInfo(@PathVariable(value = "id") Long id) { + return iUserService.seeUserInfo(id); + } + + @ApiOperation(value = "更新系统用户", notes = "更新系统用户") + @PostMapping(value = "/updateUser") + public Result updateUser(@RequestBody @Valid AdminUpdateUserDto adminUpdateUserDto) { + return iUserService.updateUser(adminUpdateUserDto); + } + + @ApiOperation(value = "重置密码", notes = "重置密码") + @GetMapping(value = "/resetPassword/{id}") + public Result resetPassword(@PathVariable(value = "id") Long id) { + return iUserService.resetPassword(id); + } + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddMenuDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddMenuDto.java new file mode 100644 index 0000000..6a742ec --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddMenuDto.java @@ -0,0 +1,26 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminAddMenuDto", description = "参数接收类") +public class AdminAddMenuDto { + + @ApiModelProperty(value = "菜单按钮标题") + private String menuName; + + @ApiModelProperty(value = "菜单类型 1:菜单 2:按钮") + private Integer menuType; + + @ApiModelProperty(value = "路由地址") + private String routeUrl; + + @ApiModelProperty(value = "排序") + private Integer orderNum; + + @ApiModelProperty(value = "父级ID") + private Long parentId; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java new file mode 100644 index 0000000..55538d1 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddRoleDto.java @@ -0,0 +1,20 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminAddRoleDto", description = "参数接收类") +public class AdminAddRoleDto { + + @ApiModelProperty(value = "角色名称") + private String roleName; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "菜单按钮ID") + private String menuIds; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java new file mode 100644 index 0000000..532989b --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminAddUserDto.java @@ -0,0 +1,28 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "AdminAddUserDto", description = "参数接收类") +public class AdminAddUserDto { + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "角色ID") + private Long roleId; + + @ApiModelProperty(value = "联系电话") + private String phone; + + @ApiModelProperty(value = "邮箱") + private String email; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminMenuDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminMenuDto.java new file mode 100644 index 0000000..5c43e47 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminMenuDto.java @@ -0,0 +1,17 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminMenuDto", description = "参数接收类") +public class AdminMenuDto { + + @ApiModelProperty(value = "每页条数", example = "10") + private Integer pageSize; + + @ApiModelProperty(value = "第几页", example = "1") + private Integer pageNum; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminRoleDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminRoleDto.java new file mode 100644 index 0000000..0b1ef0c --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminRoleDto.java @@ -0,0 +1,19 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminRoleDto", description = "参数接收类") +public class AdminRoleDto { + + @ApiModelProperty(value = "角色名称", example = "管理员") + private String roleName; + + @ApiModelProperty(value = "每页条数", example = "10") + private Integer pageSize; + + @ApiModelProperty(value = "第几页", example = "1") + private Integer pageNum; +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateMenuDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateMenuDto.java new file mode 100644 index 0000000..c624a07 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateMenuDto.java @@ -0,0 +1,29 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminUpdateMenuDto", description = "参数接收类") +public class AdminUpdateMenuDto { + + @ApiModelProperty(value = "菜单ID") + private Long id; + + @ApiModelProperty(value = "菜单按钮标题") + private String menuName; + + @ApiModelProperty(value = "菜单类型 1:菜单 2:按钮") + private Integer menuType; + + @ApiModelProperty(value = "路由地址") + private String routeUrl; + + @ApiModelProperty(value = "排序") + private Integer orderNum; + + @ApiModelProperty(value = "父级ID") + private Long parentId; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateRoleDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateRoleDto.java new file mode 100644 index 0000000..2a8506c --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateRoleDto.java @@ -0,0 +1,23 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminUpdateRoleDto", description = "参数接收类") +public class AdminUpdateRoleDto { + + @ApiModelProperty(value = "角色ID") + private Long id; + + @ApiModelProperty(value = "角色名称") + private String roleName; + + @ApiModelProperty(value = "拓展备注") + private String remark; + + @ApiModelProperty(value = "菜单按钮ID") + private String menuIds; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java new file mode 100644 index 0000000..4aaa771 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUpdateUserDto.java @@ -0,0 +1,32 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminUpdateUserDto", description = "参数接收类") +public class AdminUpdateUserDto { + + @ApiModelProperty(value = "用户ID") + private Long id; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "联系电话") + private String phone; + + @ApiModelProperty(value = "邮箱") + private String email; + + @ApiModelProperty(value = "角色ID") + private Long roleId; + + @ApiModelProperty(value = "角色名称") + private String roleName; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUserDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUserDto.java new file mode 100644 index 0000000..1eea18a --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/AdminUserDto.java @@ -0,0 +1,20 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminUserDto", description = "参数接收类") +public class AdminUserDto { + + @ApiModelProperty(value = "用户名", example = "张三") + private String username; + + @ApiModelProperty(value = "每页条数", example = "10") + private Integer pageSize; + + @ApiModelProperty(value = "第几页", example = "1") + private Integer pageNum; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/MenuEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/MenuEntity.java new file mode 100644 index 0000000..239a893 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/MenuEntity.java @@ -0,0 +1,35 @@ +package com.xcong.farmer.cms.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.xcong.farmer.cms.common.system.base.BaseEntity; +import lombok.Data; + +/** + * 菜单按钮表 + */ +@Data +@TableName("t_menu") +public class MenuEntity extends BaseEntity { + /** + * 菜单类型 - 菜单 + */ + public static final Long PARENTID_DEFAULT = 0L; + /** + * 菜单类型 - 菜单 + */ + public static final Integer MENU_TYPE_MENU = 1; + /** + * 菜单类型 - 按钮 + */ + public static final Integer MENU_TYPE_BUTTON = 2; + //菜单按钮标题 + private String menuName; + //菜单类型 1:菜单 2:按钮 + private Integer menuType; + //路由地址 + private String routeUrl; + //排序 + private Integer orderNum; + //父级ID + private Long parentId; +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/RoleEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/RoleEntity.java new file mode 100644 index 0000000..153ce47 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/RoleEntity.java @@ -0,0 +1,17 @@ +package com.xcong.farmer.cms.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.xcong.farmer.cms.common.system.base.BaseEntity; +import lombok.Data; + +/** + * 角色表 + */ +@Data +@TableName("t_role") +public class RoleEntity extends BaseEntity { + //角色名称 + private String roleName; + //拓展备注 + private String remark; +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/RoleMenuEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/RoleMenuEntity.java new file mode 100644 index 0000000..6086e25 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/RoleMenuEntity.java @@ -0,0 +1,16 @@ +package com.xcong.farmer.cms.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 角色菜单关联表 + */ +@Data +@TableName("t_role_menu") +public class RoleMenuEntity { + //角色ID + private Long roleId; + //菜单/按钮ID + private Long menuId; +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java new file mode 100644 index 0000000..638af70 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserEntity.java @@ -0,0 +1,43 @@ +package com.xcong.farmer.cms.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.xcong.farmer.cms.common.system.base.BaseEntity; +import lombok.Data; + +/** + * 用户表 + */ +@Data +@TableName("t_user") +public class UserEntity extends BaseEntity { + /** + * 默认密码 + */ + public static final String PASSWORD_DEFAULT = "123456"; + /** + * 账号状态 - 禁用 + */ + public static final Integer STATUS_DISABLED = 0; + /** + * 账号状态 - 激活 + */ + public static final Integer STATUS_ENABLE = 1; + //用户名 + private String username; + //昵称 + private String nickname; + //登录密码 + private String password; + //角色ID + private Long roleId; + //角色名称 + private String roleName; + //联系电话 + private String phone; + //邮箱 + private String email; + //账号状态 0:禁用 1:激活 + private Integer status; + //拓展备注 + private String remark; +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserRoleEntity.java b/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserRoleEntity.java new file mode 100644 index 0000000..f1f703a --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/entity/UserRoleEntity.java @@ -0,0 +1,16 @@ +package com.xcong.farmer.cms.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 用户角色关联表 + */ +@Data +@TableName("t_user_role") +public class UserRoleEntity { + //用户ID + private Long userId; + //角色ID + private Long roleId; +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java new file mode 100644 index 0000000..5f775e6 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/MenuMapper.java @@ -0,0 +1,14 @@ +package com.xcong.farmer.cms.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xcong.farmer.cms.modules.system.entity.MenuEntity; +import com.xcong.farmer.cms.modules.system.vo.AdminMenuVo; +import org.apache.ibatis.annotations.Param; + +public interface MenuMapper extends BaseMapper<MenuEntity> { + + IPage<AdminMenuVo> selectAdminMenuVoInPage(Page<AdminMenuVo> page, @Param("record")MenuEntity menuEntity); + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/RoleMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/RoleMapper.java new file mode 100644 index 0000000..97c3d46 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/RoleMapper.java @@ -0,0 +1,14 @@ +package com.xcong.farmer.cms.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xcong.farmer.cms.modules.system.entity.RoleEntity; +import com.xcong.farmer.cms.modules.system.vo.AdminRoleVo; +import org.apache.ibatis.annotations.Param; + +public interface RoleMapper extends BaseMapper<RoleEntity> { + + IPage<AdminRoleVo> selectAdminRoleVoInPage(Page<AdminRoleVo> page, @Param("record") RoleEntity roleEntity); + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/RoleMenuMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/RoleMenuMapper.java new file mode 100644 index 0000000..7fd6821 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/RoleMenuMapper.java @@ -0,0 +1,14 @@ +package com.xcong.farmer.cms.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xcong.farmer.cms.modules.system.entity.RoleMenuEntity; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface RoleMenuMapper extends BaseMapper<RoleMenuEntity> { + + List<RoleMenuEntity> selectListByRoleId(@Param("roleId") Long id); + + void deleteByMenuId(@Param("menuId")Long id); +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/UserMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/UserMapper.java new file mode 100644 index 0000000..bf49c1d --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/UserMapper.java @@ -0,0 +1,14 @@ +package com.xcong.farmer.cms.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xcong.farmer.cms.modules.system.entity.UserEntity; +import com.xcong.farmer.cms.modules.system.vo.AdminUserVo; +import org.apache.ibatis.annotations.Param; + +public interface UserMapper extends BaseMapper<UserEntity> { + + IPage<AdminUserVo> selectAdminUserVoInPage(Page<AdminUserVo> page, @Param("record") UserEntity userEntity); + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/UserRoleMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/UserRoleMapper.java new file mode 100644 index 0000000..27db250 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/UserRoleMapper.java @@ -0,0 +1,7 @@ +package com.xcong.farmer.cms.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.xcong.farmer.cms.modules.system.entity.UserRoleEntity; + +public interface UserRoleMapper extends BaseMapper<UserRoleEntity> { +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/IMenuService.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/IMenuService.java new file mode 100644 index 0000000..d1ba9fd --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/IMenuService.java @@ -0,0 +1,21 @@ +package com.xcong.farmer.cms.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.AdminAddMenuDto; +import com.xcong.farmer.cms.modules.system.dto.AdminMenuDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUpdateMenuDto; +import com.xcong.farmer.cms.modules.system.entity.MenuEntity; + +public interface IMenuService extends IService<MenuEntity> { + + Result getMenuInPage(AdminMenuDto adminMenuDto); + + Result addMenu(AdminAddMenuDto adminAddMenuDto); + + Result deleteMenu(Long id); + + Result seeMenuInfo(Long id); + + Result updateMenu(AdminUpdateMenuDto adminUpdateMenuDto); +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/IRoleService.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/IRoleService.java new file mode 100644 index 0000000..f6e2a9f --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/IRoleService.java @@ -0,0 +1,21 @@ +package com.xcong.farmer.cms.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.AdminAddRoleDto; +import com.xcong.farmer.cms.modules.system.dto.AdminRoleDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUpdateRoleDto; +import com.xcong.farmer.cms.modules.system.entity.RoleEntity; + +public interface IRoleService extends IService<RoleEntity> { + + Result getRoleInPage(AdminRoleDto adminRoleDto); + + Result addRole(AdminAddRoleDto adminAddRoleDto); + + Result deleteRole(Long id); + + Result seeRoleInfo(Long id); + + Result updateRole(AdminUpdateRoleDto adminUpdateRoleDto); +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java new file mode 100644 index 0000000..1baac3d --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/IUserService.java @@ -0,0 +1,27 @@ +package com.xcong.farmer.cms.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.AdminAddUserDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUpdateUserDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUserDto; +import com.xcong.farmer.cms.modules.system.entity.UserEntity; + +public interface IUserService extends IService<UserEntity> { + + Result getUserInPage(AdminUserDto adminUserDto); + + Result addUser(AdminAddUserDto adminAddUserDto); + + Result activeUser(Long id); + + Result forbiddenUser(Long id); + + Result deleteUser(Long id); + + Result seeUserInfo(Long id); + + Result updateUser(AdminUpdateUserDto adminUpdateUserDto); + + Result resetPassword(Long id); +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/MenuServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/MenuServiceImpl.java new file mode 100644 index 0000000..b148be8 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/MenuServiceImpl.java @@ -0,0 +1,171 @@ +package com.xcong.farmer.cms.modules.system.service.Impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.AdminAddMenuDto; +import com.xcong.farmer.cms.modules.system.dto.AdminMenuDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUpdateMenuDto; +import com.xcong.farmer.cms.modules.system.entity.MenuEntity; +import com.xcong.farmer.cms.modules.system.mapper.MenuMapper; +import com.xcong.farmer.cms.modules.system.mapper.RoleMenuMapper; +import com.xcong.farmer.cms.modules.system.service.IMenuService; +import com.xcong.farmer.cms.modules.system.vo.AdminMenuVo; +import com.xcong.farmer.cms.modules.system.vo.AdminSeeMenuInfoVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.collection.CollUtil; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class MenuServiceImpl extends ServiceImpl<MenuMapper, MenuEntity> implements IMenuService { + + @Resource + private RoleMenuMapper roleMenuMapper; + + @Override + public Result getMenuInPage(AdminMenuDto adminMenuDto) { + Page<AdminMenuVo> page = new Page<>(adminMenuDto.getPageNum(), adminMenuDto.getPageSize()); + MenuEntity menuEntity = new MenuEntity(); + menuEntity.setParentId(MenuEntity.PARENTID_DEFAULT); + IPage<AdminMenuVo> list = this.baseMapper.selectAdminMenuVoInPage(page,menuEntity); + List<AdminMenuVo> records = list.getRecords(); + list.getTotal(); + if(CollUtil.isNotEmpty(records)){ + for(AdminMenuVo adminMenuVo : records){ + Long id = adminMenuVo.getId(); + QueryWrapper<MenuEntity> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("parent_id",id); + List<MenuEntity> menuEntities = this.baseMapper.selectList(objectQueryWrapper); + List<AdminMenuVo> adminMenuVoChilds = new ArrayList<>(); + if(CollUtil.isNotEmpty(menuEntities)){ + for(MenuEntity menuEntityChild : menuEntities){ + AdminMenuVo child = new AdminMenuVo(); + child.setId(menuEntityChild.getId()); + child.setMenuName(menuEntityChild.getMenuName()); + child.setMenuType(menuEntityChild.getMenuType()); + child.setRouteUrl(menuEntityChild.getRouteUrl()); + child.setOrderNum(menuEntityChild.getOrderNum()); + child.setCreateTime(menuEntityChild.getCreateTime()); + adminMenuVoChilds.add(child); + } + } + adminMenuVo.setChild(adminMenuVoChilds); + } + } + return Result.ok(list); + } + + @Override + @Transactional + public Result addMenu(AdminAddMenuDto adminAddMenuDto) { + String menuName = adminAddMenuDto.getMenuName(); + if(StrUtil.isEmpty(menuName)){ + return Result.fail("请输入菜单名称"); + } + Integer menuType = adminAddMenuDto.getMenuType(); + if(ObjectUtil.isEmpty(menuType)){ + return Result.fail("请输入菜单类型"); + } + MenuEntity menuEntity = new MenuEntity(); + menuEntity.setMenuName(menuName); + menuEntity.setMenuType(menuType); + Long parentId = adminAddMenuDto.getParentId(); + if(ObjectUtil.isEmpty(parentId)){ + menuEntity.setParentId(MenuEntity.PARENTID_DEFAULT); + }else{ + menuEntity.setParentId(parentId); + } + Integer orderNum = adminAddMenuDto.getOrderNum(); + if(ObjectUtil.isNotEmpty(orderNum)){ + menuEntity.setOrderNum(orderNum); + } + String routeUrl = adminAddMenuDto.getRouteUrl(); + if(StrUtil.isNotEmpty(routeUrl)){ + menuEntity.setRouteUrl(routeUrl); + } + this.baseMapper.insert(menuEntity); + return Result.ok("新增成功"); + } + + @Override + @Transactional + public Result deleteMenu(Long id) { + MenuEntity menuEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(menuEntity)){ + return Result.fail("菜单不存在"); + } + QueryWrapper<MenuEntity> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("parent_id",id); + List<MenuEntity> menuEntities = this.baseMapper.selectList(objectQueryWrapper); + if(CollUtil.isNotEmpty(menuEntities)){ + return Result.fail("请先清空它的二级菜单"); + } + this.baseMapper.deleteById(id); + roleMenuMapper.deleteByMenuId(id); + return Result.ok("删除成功"); + } + + @Override + public Result seeMenuInfo(Long id) { + MenuEntity menuEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(menuEntity)){ + return Result.fail("菜单不存在"); + } + AdminSeeMenuInfoVo adminSeeMenuInfoVo = new AdminSeeMenuInfoVo(); + adminSeeMenuInfoVo.setId(id); + adminSeeMenuInfoVo.setMenuName(menuEntity.getMenuName()); + adminSeeMenuInfoVo.setMenuType(menuEntity.getMenuType()); + adminSeeMenuInfoVo.setRouteUrl(menuEntity.getRouteUrl()); + adminSeeMenuInfoVo.setOrderNum(menuEntity.getOrderNum()); + adminSeeMenuInfoVo.setParentId(menuEntity.getParentId()); + return Result.ok(adminSeeMenuInfoVo); + } + + @Override + @Transactional + public Result updateMenu(AdminUpdateMenuDto adminUpdateMenuDto) { + Long id = adminUpdateMenuDto.getId(); + MenuEntity menuEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(menuEntity)){ + return Result.fail("菜单不存在"); + } + String menuName = adminUpdateMenuDto.getMenuName(); + if(StrUtil.isEmpty(menuName)){ + return Result.fail("请输入菜单名称"); + } + menuEntity.setMenuName(menuName); + Integer menuType = adminUpdateMenuDto.getMenuType(); + if(ObjectUtil.isEmpty(menuType)){ + return Result.fail("请输入菜单类型"); + } + menuEntity.setMenuType(menuType); + String routeUrl = adminUpdateMenuDto.getRouteUrl(); + if(StrUtil.isNotEmpty(routeUrl)){ + menuEntity.setRouteUrl(routeUrl); + } + Integer orderNum = adminUpdateMenuDto.getOrderNum(); + if(ObjectUtil.isNotEmpty(orderNum)){ + menuEntity.setOrderNum(orderNum); + } + Long parentId = adminUpdateMenuDto.getParentId(); + if(ObjectUtil.isEmpty(parentId)){ + menuEntity.setParentId(MenuEntity.PARENTID_DEFAULT); + }else{ + menuEntity.setParentId(parentId); + } + this.baseMapper.updateById(menuEntity); + return Result.ok("更新成功"); + } +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java new file mode 100644 index 0000000..4078bbd --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/RoleServiceImpl.java @@ -0,0 +1,169 @@ +package com.xcong.farmer.cms.modules.system.service.Impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.AdminAddRoleDto; +import com.xcong.farmer.cms.modules.system.dto.AdminRoleDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUpdateRoleDto; +import com.xcong.farmer.cms.modules.system.entity.MenuEntity; +import com.xcong.farmer.cms.modules.system.entity.RoleEntity; +import com.xcong.farmer.cms.modules.system.entity.RoleMenuEntity; +import com.xcong.farmer.cms.modules.system.entity.UserRoleEntity; +import com.xcong.farmer.cms.modules.system.mapper.MenuMapper; +import com.xcong.farmer.cms.modules.system.mapper.RoleMapper; +import com.xcong.farmer.cms.modules.system.mapper.RoleMenuMapper; +import com.xcong.farmer.cms.modules.system.mapper.UserRoleMapper; +import com.xcong.farmer.cms.modules.system.service.IRoleService; +import com.xcong.farmer.cms.modules.system.vo.AdminMenuInfoVo; +import com.xcong.farmer.cms.modules.system.vo.AdminRoleVo; +import com.xcong.farmer.cms.modules.system.vo.AdminSeeRoleInfoVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.collection.CollUtil; + + +@Service +@Slf4j +public class RoleServiceImpl extends ServiceImpl<RoleMapper, RoleEntity> implements IRoleService { + + @Resource + private RoleMenuMapper roleMenuMapper; + @Resource + private UserRoleMapper userRoleMapper; + @Resource + private MenuMapper menuMapper; + + @Override + public Result getRoleInPage(AdminRoleDto adminRoleDto) { + Page<AdminRoleVo> page = new Page<>(adminRoleDto.getPageNum(), adminRoleDto.getPageSize()); + RoleEntity roleEntity = new RoleEntity(); + if(StrUtil.isNotEmpty(adminRoleDto.getRoleName())){ + roleEntity.setRoleName(adminRoleDto.getRoleName()); + } + IPage<AdminRoleVo> list = this.baseMapper.selectAdminRoleVoInPage(page,roleEntity); + return Result.ok(list); + } + + @Override + @Transactional + public Result addRole(AdminAddRoleDto adminAddRoleDto) { + String roleName = adminAddRoleDto.getRoleName(); + if(StrUtil.isEmpty(roleName)){ + return Result.fail("请输入角色名称"); + } + String menuIds = adminAddRoleDto.getMenuIds(); + if(StrUtil.isEmpty(menuIds)){ + return Result.fail("请选择角色权限"); + } + RoleEntity roleEntity = new RoleEntity(); + String remark = adminAddRoleDto.getRemark(); + if(StrUtil.isNotEmpty(remark)){ + roleEntity.setRemark(remark); + } + roleEntity.setRoleName(roleName); + int insert = this.baseMapper.insert(roleEntity); + if(insert > 0){ + saveRoleMenus(menuIds,roleEntity.getId()); + return Result.ok("添加成功"); + } + return Result.fail("添加失败"); + } + + @Override + @Transactional + public Result deleteRole(Long id) { + RoleEntity roleEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(roleEntity)){ + return Result.fail("角色不存在"); + } + //获取角色下对应的用户信息 + QueryWrapper<UserRoleEntity> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("role_id",id); + List<UserRoleEntity> userRoleEntities = userRoleMapper.selectList(objectQueryWrapper); + if(CollUtil.isNotEmpty(userRoleEntities)){ + return Result.fail("当前角色下还有用户,请重新分配角色"); + } + this.baseMapper.deleteById(id); + return Result.ok("删除成功"); + } + + @Override + public Result seeRoleInfo(Long id) { + RoleEntity roleEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(roleEntity)){ + return Result.fail("角色不存在"); + } + AdminSeeRoleInfoVo adminSeeRoleInfoVo = new AdminSeeRoleInfoVo(); + adminSeeRoleInfoVo.setId(roleEntity.getId()); + adminSeeRoleInfoVo.setRoleName(roleEntity.getRoleName()); + adminSeeRoleInfoVo.setRemark(roleEntity.getRemark()); + List<RoleMenuEntity> roleMenuEntities = roleMenuMapper.selectListByRoleId(id); + if(CollUtil.isNotEmpty(roleMenuEntities)){ + List<AdminMenuInfoVo> adminMenuInfoVos = new ArrayList<>(); + for(RoleMenuEntity roleMenuEntity : roleMenuEntities){ + MenuEntity menuEntity = menuMapper.selectById(roleMenuEntity.getMenuId()); + AdminMenuInfoVo adminMenuInfoVo = new AdminMenuInfoVo(); + adminMenuInfoVo.setId(menuEntity.getId()); + adminMenuInfoVo.setMenuName(menuEntity.getMenuName()); + adminMenuInfoVos.add(adminMenuInfoVo); + } + adminSeeRoleInfoVo.setMenuInfoVos(adminMenuInfoVos); + } + return Result.ok(adminSeeRoleInfoVo); + } + + @Override + @Transactional + public Result updateRole(AdminUpdateRoleDto adminUpdateRoleDto) { + Long id = adminUpdateRoleDto.getId(); + RoleEntity roleEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(roleEntity)){ + return Result.fail("角色不存在"); + } + String roleName = adminUpdateRoleDto.getRoleName(); + if(StrUtil.isEmpty(roleName)){ + return Result.fail("请输入角色名称"); + } + roleEntity.setRoleName(roleName); + String remark = adminUpdateRoleDto.getRemark(); + if(StrUtil.isNotEmpty(remark)){ + roleEntity.setRemark(remark); + } + this.baseMapper.updateById(roleEntity); + QueryWrapper<RoleMenuEntity> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("role_id",id); + roleMenuMapper.delete(objectQueryWrapper); + String menuIds = adminUpdateRoleDto.getMenuIds(); + if(StrUtil.isNotEmpty(menuIds)){ + saveRoleMenus(menuIds,id); + } + return Result.ok("更新成功"); + } + + private void saveRoleMenus(String menuIds,Long roleId) { + if (StrUtil.isNotEmpty(menuIds)) { + String[] menuIdList = menuIds.split(StringPool.COMMA); + Arrays.stream(menuIdList).forEach(menuId -> { + RoleMenuEntity roleMenu = new RoleMenuEntity(); + roleMenu.setMenuId(Long.valueOf(menuId)); + roleMenu.setRoleId(roleId); + roleMenuMapper.insert(roleMenu); + }); + } + } + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java new file mode 100644 index 0000000..66dd7c0 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/UserServiceImpl.java @@ -0,0 +1,187 @@ +package com.xcong.farmer.cms.modules.system.service.Impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.xcong.farmer.cms.common.response.Result; +import com.xcong.farmer.cms.modules.system.dto.AdminAddUserDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUpdateUserDto; +import com.xcong.farmer.cms.modules.system.dto.AdminUserDto; +import com.xcong.farmer.cms.modules.system.entity.RoleEntity; +import com.xcong.farmer.cms.modules.system.entity.UserEntity; +import com.xcong.farmer.cms.modules.system.mapper.RoleMapper; +import com.xcong.farmer.cms.modules.system.mapper.UserMapper; +import com.xcong.farmer.cms.modules.system.service.IUserService; +import com.xcong.farmer.cms.modules.system.vo.AdminSeeUserInfoVo; +import com.xcong.farmer.cms.modules.system.vo.AdminUserVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.codec.Rot; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements IUserService { + + @Resource + private RoleMapper roleMapper; + + @Override + public Result getUserInPage(AdminUserDto adminUserDto) { + Page<AdminUserVo> page = new Page<>(adminUserDto.getPageNum(), adminUserDto.getPageSize()); + UserEntity userEntity = new UserEntity(); + if(StrUtil.isNotEmpty(adminUserDto.getUsername())){ + userEntity.setUsername(adminUserDto.getUsername()); + } + IPage<AdminUserVo> list = this.baseMapper.selectAdminUserVoInPage(page,userEntity); + return Result.ok(list); + } + + @Override + @Transactional + public Result addUser(AdminAddUserDto adminAddUserDto) { + String username = adminAddUserDto.getUsername(); + if(StrUtil.isEmpty(username)){ + return Result.fail("请输入用户名"); + } + Long roleId = adminAddUserDto.getRoleId(); + if(ObjectUtil.isEmpty(roleId)){ + return Result.fail("请选择用户角色"); + } + RoleEntity roleEntity = roleMapper.selectById(roleId); + if(ObjectUtil.isEmpty(roleEntity)){ + return Result.fail("请选择用户角色"); + } + String phone = adminAddUserDto.getPhone(); + if(StrUtil.isEmpty(phone)){ + return Result.fail("请输入联系电话"); + } + UserEntity userEntity = new UserEntity(); + userEntity.setUsername(username); + userEntity.setPhone(phone); + userEntity.setRoleId(roleId); + userEntity.setRoleName(roleEntity.getRoleName()); + if(StrUtil.isNotEmpty(adminAddUserDto.getNickname())){ + userEntity.setNickname(adminAddUserDto.getNickname()); + } + if(StrUtil.isNotEmpty(adminAddUserDto.getEmail())){ + userEntity.setEmail(adminAddUserDto.getEmail()); + } + ; + userEntity.setPassword(Rot.encode13(UserEntity.PASSWORD_DEFAULT)); + userEntity.setStatus(UserEntity.STATUS_ENABLE); + int insert = this.baseMapper.insert(userEntity); + if(insert > 0){ + return Result.ok("添加成功"); + } + return Result.fail("添加失败"); + } + + @Override + @Transactional + public Result activeUser(Long id) { + UserEntity userEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(userEntity)){ + return Result.fail("用户不存在"); + } + userEntity.setStatus(UserEntity.STATUS_ENABLE); + this.baseMapper.updateById(userEntity); + return Result.ok("激活成功"); + } + + @Override + @Transactional + public Result forbiddenUser(Long id) { + UserEntity userEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(userEntity)){ + return Result.fail("用户不存在"); + } + userEntity.setStatus(UserEntity.STATUS_DISABLED); + this.baseMapper.updateById(userEntity); + return Result.ok("禁用成功"); + } + + @Override + @Transactional + public Result deleteUser(Long id) { + UserEntity userEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(userEntity)){ + return Result.fail("用户不存在"); + } + this.baseMapper.deleteById(id); + return Result.ok("删除成功"); + } + + @Override + public Result seeUserInfo(Long id) { + UserEntity userEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(userEntity)){ + return Result.fail("用户不存在"); + } + AdminSeeUserInfoVo adminSeeUserInfoVo = new AdminSeeUserInfoVo(); + adminSeeUserInfoVo.setId(userEntity.getId()); + adminSeeUserInfoVo.setUsername(userEntity.getUsername()); + adminSeeUserInfoVo.setNickname(userEntity.getNickname()); + adminSeeUserInfoVo.setPhone(userEntity.getPhone()); + adminSeeUserInfoVo.setEmail(userEntity.getEmail()); + adminSeeUserInfoVo.setRoleId(userEntity.getRoleId()); + adminSeeUserInfoVo.setRoleName(userEntity.getRoleName()); + return Result.ok(adminSeeUserInfoVo); + } + + @Override + @Transactional + public Result updateUser(AdminUpdateUserDto adminUpdateUserDto) { + String username = adminUpdateUserDto.getUsername(); + if(StrUtil.isEmpty(username)){ + return Result.fail("请输入用户名"); + } + Long roleId = adminUpdateUserDto.getRoleId(); + if(ObjectUtil.isEmpty(roleId)){ + return Result.fail("请选择用户角色"); + } + RoleEntity roleEntity = roleMapper.selectById(roleId); + if(ObjectUtil.isEmpty(roleEntity)){ + return Result.fail("请选择用户角色"); + } + String phone = adminUpdateUserDto.getPhone(); + if(StrUtil.isEmpty(phone)){ + return Result.fail("请输入联系电话"); + } + UserEntity userEntity = this.baseMapper.selectById(adminUpdateUserDto.getId()); + if(ObjectUtil.isEmpty(userEntity)){ + return Result.fail("用户不存在"); + } + userEntity.setUsername(username); + userEntity.setPhone(phone); + userEntity.setRoleId(roleId); + userEntity.setRoleName(roleEntity.getRoleName()); + if(StrUtil.isNotEmpty(adminUpdateUserDto.getNickname())){ + userEntity.setNickname(adminUpdateUserDto.getNickname()); + } + if(StrUtil.isNotEmpty(adminUpdateUserDto.getEmail())){ + userEntity.setEmail(adminUpdateUserDto.getEmail()); + } + int insert = this.baseMapper.updateById(userEntity); + if(insert > 0){ + return Result.ok("更新成功"); + } + return Result.fail("更新失败"); + } + + @Override + @Transactional + public Result resetPassword(Long id) { + UserEntity userEntity = this.baseMapper.selectById(id); + if(ObjectUtil.isEmpty(userEntity)){ + return Result.fail("用户不存在"); + } + userEntity.setPassword(Rot.encode13(UserEntity.PASSWORD_DEFAULT)); + this.baseMapper.updateById(userEntity); + return Result.ok("重置成功"); + } +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminMenuInfoVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminMenuInfoVo.java new file mode 100644 index 0000000..0f86898 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminMenuInfoVo.java @@ -0,0 +1,17 @@ +package com.xcong.farmer.cms.modules.system.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminMenuInfoVo", description = "返回") +public class AdminMenuInfoVo { + + @ApiModelProperty(value = "菜单ID") + private Long id; + + @ApiModelProperty(value = "菜单名称") + private String menuName; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminMenuVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminMenuVo.java new file mode 100644 index 0000000..f880922 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminMenuVo.java @@ -0,0 +1,40 @@ +package com.xcong.farmer.cms.modules.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import java.util.Date; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.List; + +@Data +@ApiModel(value = "AdminMenuVo", description = "系统菜单列表返回") +public class AdminMenuVo { + + @ApiModelProperty(value = "菜单ID") + private Long id; + + //菜单按钮标题 + @ApiModelProperty(value = "菜单按钮标题") + private String menuName; + + //菜单类型 1:菜单 2:按钮 + @ApiModelProperty(value = "菜单类型 1:菜单 2:按钮") + private Integer menuType; + + //路由地址 + @ApiModelProperty(value = "路由地址") + private String routeUrl; + + //排序 + @ApiModelProperty(value = "排序") + private Integer orderNum; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @ApiModelProperty(value = "子菜单") + private List<AdminMenuVo> child; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminRoleVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminRoleVo.java new file mode 100644 index 0000000..3733f7d --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminRoleVo.java @@ -0,0 +1,26 @@ +package com.xcong.farmer.cms.modules.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import java.util.Date; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminRoleVo", description = "系统角色列表返回") +public class AdminRoleVo { + + @ApiModelProperty(value = "角色ID") + private Long id; + + @ApiModelProperty(value = "角色名称") + private String roleName; + + @ApiModelProperty(value = "拓展备注") + private String remark; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeMenuInfoVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeMenuInfoVo.java new file mode 100644 index 0000000..10e4a90 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeMenuInfoVo.java @@ -0,0 +1,28 @@ +package com.xcong.farmer.cms.modules.system.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminSeeMenuInfoVo", description = "系统菜单详情返回") +public class AdminSeeMenuInfoVo { + + @ApiModelProperty(value = "菜单ID") + private Long id; + + @ApiModelProperty(value = "菜单按钮标题") + private String menuName; + + @ApiModelProperty(value = "菜单类型 1:菜单 2:按钮") + private Integer menuType; + + @ApiModelProperty(value = "路由地址") + private String routeUrl; + + @ApiModelProperty(value = "排序") + private Integer orderNum; + + @ApiModelProperty(value = "父级ID") + private Long parentId; +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeRoleInfoVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeRoleInfoVo.java new file mode 100644 index 0000000..edee956 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeRoleInfoVo.java @@ -0,0 +1,25 @@ +package com.xcong.farmer.cms.modules.system.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.List; + + +@Data +@ApiModel(value = "AdminSeeRoleInfoVo", description = "系统角色详情返回") +public class AdminSeeRoleInfoVo { + + @ApiModelProperty(value = "角色ID") + private Long id; + + @ApiModelProperty(value = "角色名称") + private String roleName; + + @ApiModelProperty(value = "拓展备注") + private String remark; + + @ApiModelProperty(value = "菜单按钮") + private List<AdminMenuInfoVo> menuInfoVos; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java new file mode 100644 index 0000000..9c616b5 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminSeeUserInfoVo.java @@ -0,0 +1,32 @@ +package com.xcong.farmer.cms.modules.system.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminSeeUserInfoVo", description = "系统用户详情返回") +public class AdminSeeUserInfoVo { + + @ApiModelProperty(value = "用户ID") + private Long id; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "联系电话") + private String phone; + + @ApiModelProperty(value = "邮箱") + private String email; + + @ApiModelProperty(value = "角色ID") + private Long roleId; + + @ApiModelProperty(value = "角色名称") + private String roleName; + +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java new file mode 100644 index 0000000..9f22a8e --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/vo/AdminUserVo.java @@ -0,0 +1,38 @@ +package com.xcong.farmer.cms.modules.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import java.util.Date; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "AdminUserVo", description = "系统用户列表返回") +public class AdminUserVo { + + @ApiModelProperty(value = "用户ID") + private Long id; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "昵称") + private String nickname; + + @ApiModelProperty(value = "联系电话") + private String phone; + + @ApiModelProperty(value = "邮箱") + private String email; + + @ApiModelProperty(value = "角色名称") + private String roleName; + + @ApiModelProperty(value = "账号状态 0:禁用 1:激活") + private Integer status; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c941319..0086006 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -5,7 +5,7 @@ spring: datasource: - url: jdbc:mysql://120.27.238.55:3306/kss_framework?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8 + url: jdbc:mysql://120.27.238.55:3306/farmer-cms?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8 username: ct_test password: 123456 driver-class-name: com.mysql.jdbc.Driver diff --git a/src/main/resources/mapper/MenuMapper.xml b/src/main/resources/mapper/MenuMapper.xml new file mode 100644 index 0000000..74e8534 --- /dev/null +++ b/src/main/resources/mapper/MenuMapper.xml @@ -0,0 +1,20 @@ +<?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.xcong.farmer.cms.modules.system.mapper.MenuMapper"> + + <select id="selectAdminMenuVoInPage" resultType="com.xcong.farmer.cms.modules.system.vo.AdminMenuVo"> + SELECT + a.* + FROM + t_menu a + <where> + <if test="record != null" > + <if test="record.parentId != null"> + and a.parent_id = #{record.parentId} + </if> + </if> + </where> + order by a.create_time desc + </select> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/RoleMapper.xml b/src/main/resources/mapper/RoleMapper.xml new file mode 100644 index 0000000..92d5440 --- /dev/null +++ b/src/main/resources/mapper/RoleMapper.xml @@ -0,0 +1,20 @@ +<?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.xcong.farmer.cms.modules.system.mapper.RoleMapper"> + + <select id="selectAdminRoleVoInPage" resultType="com.xcong.farmer.cms.modules.system.vo.AdminRoleVo"> + SELECT + a.* + FROM + t_role a + <where> + <if test="record != null" > + <if test="record.roleName!=null"> + and a.role_name like concat ('%',#{record.roleName},'%') + </if> + </if> + </where> + order by a.create_time desc + </select> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/RoleMenuMapper.xml b/src/main/resources/mapper/RoleMenuMapper.xml new file mode 100644 index 0000000..c46bda2 --- /dev/null +++ b/src/main/resources/mapper/RoleMenuMapper.xml @@ -0,0 +1,13 @@ +<?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.xcong.farmer.cms.modules.system.mapper.RoleMenuMapper"> + + <select id="selectListByRoleId" resultType="com.xcong.farmer.cms.modules.system.entity.RoleMenuEntity"> + SELECT a.* FROM t_role_menu a where a.role_id = #{roleId} + </select> + + <delete id="deleteByMenuId"> + DELETE FROM t_role_menu where menu_id=#{menuId} + </delete> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..d417a2a --- /dev/null +++ b/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,20 @@ +<?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.xcong.farmer.cms.modules.system.mapper.UserMapper"> + + <select id="selectAdminUserVoInPage" resultType="com.xcong.farmer.cms.modules.system.vo.AdminUserVo"> + SELECT + a.* + FROM + t_user a + <where> + <if test="record != null" > + <if test="record.username!=null"> + and a.username like concat ('%',#{record.username},'%') + </if> + </if> + </where> + order by a.create_time desc + </select> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/UserRoleMapper.xml b/src/main/resources/mapper/UserRoleMapper.xml new file mode 100644 index 0000000..b1f80af --- /dev/null +++ b/src/main/resources/mapper/UserRoleMapper.xml @@ -0,0 +1,5 @@ +<?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.xcong.farmer.cms.modules.system.mapper.UserRoleMapper"> + +</mapper> \ No newline at end of file -- Gitblit v1.9.1