From 3d38a89e7aa3ad0023f3817150332f35728ba573 Mon Sep 17 00:00:00 2001 From: DB <2502523450@qq.com> Date: Thu, 19 Oct 2023 22:46:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=9F=8E=E8=A7=92=E8=89=B2=E5=AE=9A?= =?UTF-8?q?=E5=88=B6=E6=96=B0=E5=A2=9E,=E4=BF=AE=E6=94=B9,=E5=88=A0?= =?UTF-8?q?=E9=99=A4,=E4=BF=AE=E6=94=B9=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cpop/mall/business/bo/MallRoleBo.java | 83 +++++++++++++++++++ .../cpop/mall/business/bo/MallRolePageBo.java | 33 ++++++++ .../controller/MallRoleController.java | 44 +++++----- .../business/service/RoleBrandService.java | 36 +++++++- .../service/impl/RoleBrandServiceImpl.java | 75 ++++++++++++++++- .../com/cpop/system/business/bo/RoleBo.java | 6 -- .../system/business/service/RoleService.java | 1 + .../service/impl/MenuServiceImpl.java | 9 +- .../service/impl/RoleServiceImpl.java | 4 + 9 files changed, 247 insertions(+), 44 deletions(-) create mode 100644 Cpop-Mall/src/main/java/com/cpop/mall/business/bo/MallRoleBo.java create mode 100644 Cpop-Mall/src/main/java/com/cpop/mall/business/bo/MallRolePageBo.java diff --git a/Cpop-Mall/src/main/java/com/cpop/mall/business/bo/MallRoleBo.java b/Cpop-Mall/src/main/java/com/cpop/mall/business/bo/MallRoleBo.java new file mode 100644 index 0000000..947d59d --- /dev/null +++ b/Cpop-Mall/src/main/java/com/cpop/mall/business/bo/MallRoleBo.java @@ -0,0 +1,83 @@ +package com.cpop.mall.business.bo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +/** + * @author DB + * @Description: + * @create 2023-10-19 22:23 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "商城Role对象", description = "角色表") +public class MallRoleBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ApiModelProperty("主键") + private String id; + + /** + * 角色id + */ + @ApiModelProperty("角色id") + private String roleId; + + /** + * 角色名称 + */ + @NotBlank(message = "角色名称不能为空") + @ApiModelProperty("角色名称") + private String roleName; + + /** + * 角色值 + */ + @NotBlank(message = "角色值不能为空") + @ApiModelProperty("角色值") + private String roleValue; + + /** + * 状态 + */ + @NotNull(message = "状态不能为空") + @ApiModelProperty("状态") + private Boolean status; + + /** + * 备注 + */ + @ApiModelProperty("备注") + private String remark; + + /** + * 排序 + */ + @NotNull(message = "排序不能为空") + @ApiModelProperty("排序") + private Integer orderNo; + + /** + * 菜单集合 + */ + @ApiModelProperty("菜单集合") + private List menuIds; + + /** + * 品牌id + */ + @NotBlank(message = "品牌id不能为空") + @ApiModelProperty(value = "品牌id",required = true) + private String brandId; +} diff --git a/Cpop-Mall/src/main/java/com/cpop/mall/business/bo/MallRolePageBo.java b/Cpop-Mall/src/main/java/com/cpop/mall/business/bo/MallRolePageBo.java new file mode 100644 index 0000000..9cd2fe2 --- /dev/null +++ b/Cpop-Mall/src/main/java/com/cpop/mall/business/bo/MallRolePageBo.java @@ -0,0 +1,33 @@ +package com.cpop.mall.business.bo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * @author DB + * @Description: + * @create 2023-10-19 22:21 + */ +@Data +@Accessors(chain = true) +@ApiModel(value = "商城Role分页对象") +public class MallRolePageBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 角色名称 + */ + @ApiModelProperty("角色名称") + private String roleName; + + /** + * 状态 + */ + @ApiModelProperty("状态") + private Boolean status; +} diff --git a/Cpop-Mall/src/main/java/com/cpop/mall/business/controller/MallRoleController.java b/Cpop-Mall/src/main/java/com/cpop/mall/business/controller/MallRoleController.java index 2d15c3c..8c40825 100644 --- a/Cpop-Mall/src/main/java/com/cpop/mall/business/controller/MallRoleController.java +++ b/Cpop-Mall/src/main/java/com/cpop/mall/business/controller/MallRoleController.java @@ -1,16 +1,13 @@ package com.cpop.mall.business.controller; -import com.cpop.core.annontation.OperationLog; import com.cpop.core.base.R; -import com.cpop.core.base.enums.OperationLogEnum; +import com.cpop.mall.business.bo.MallRoleBo; +import com.cpop.mall.business.bo.MallRolePageBo; import com.cpop.mall.business.service.RoleBrandService; import com.cpop.mall.business.vo.MallRolePageVo; import com.cpop.system.business.bo.MenuListBo; -import com.cpop.system.business.bo.RoleBo; -import com.cpop.system.business.bo.RolePageBo; import com.cpop.system.business.bo.RoleStatusBo; import com.cpop.system.business.service.MenuService; -import com.cpop.system.business.service.RoleService; import com.cpop.system.business.vo.MenuVo; import com.mybatisflex.core.paginate.Page; import io.swagger.annotations.Api; @@ -35,9 +32,6 @@ public class MallRoleController { @Autowired private RoleBrandService roleBrandService; - @Autowired - private RoleService roleService; - @Autowired private MenuService menuService; @@ -51,7 +45,7 @@ public class MallRoleController { @PreAuthorize("@aps.hasPermission('system:role:list')") @ApiOperation("查询商城角色分页列表") @GetMapping("/getMallRolePageList") - public R> getMallRolePageList(RolePageBo bo) { + public R> getMallRolePageList(MallRolePageBo bo) { Page pageVo = roleBrandService.getMallRolePageList(bo); return R.ok(pageVo); } @@ -64,10 +58,9 @@ public class MallRoleController { * @return: com.cpop.core.base.R */ @PreAuthorize("@aps.hasPermission('system:role:insert')") - @OperationLog(operationLogEnumType = OperationLogEnum.INSERT_OAM_ROLE) @ApiOperation("新增商城角色") @PostMapping("/insertMallRole") - public R insertMallRole(@RequestBody @Validated RoleBo bo) { + public R insertMallRole(@RequestBody @Validated MallRoleBo bo) { roleBrandService.insertMallRole(bo); return R.ok(); } @@ -94,23 +87,25 @@ public class MallRoleController { * @return com.jambox.core.base.R */ @PreAuthorize("@aps.hasPermission('system:role:update')") - @OperationLog(operationLogEnumType = OperationLogEnum.UPDATE_OAM_ROLE) @ApiOperation("修改商城角色") - @PutMapping("/updateSysRole") - public R updateSysRole(@RequestBody @Validated RoleBo bo) { - roleService.updateSysRole(bo); + @PutMapping("/updateMallRole") + public R updateMallRole(@RequestBody @Validated MallRoleBo bo) { + roleBrandService.updateMallRole(bo); return R.ok(); } /** - * 删除系统角色表 + * @Description: 删除商城角色 + * @param id 主键 + * @return R + * @Author DB + * @Date: 2023/10/19 22:34 */ @PreAuthorize("@aps.hasPermission('system:role:remove')") - @OperationLog(operationLogEnumType = OperationLogEnum.REMOVE_OAM_ROLE) - @ApiOperation("删除商城角色表") - @DeleteMapping("/removeSysRole/{id}") - public R removeSysRole(@PathVariable String id) { - roleService.removeSysRole(id); + @ApiOperation("删除商城角色") + @DeleteMapping("/removeMallRole/{id}") + public R removeMallRole(@PathVariable String id) { + roleBrandService.removeMallRole(id); return R.ok(); } @@ -122,11 +117,10 @@ public class MallRoleController { * @Date: 2023/5/9 14:13 **/ @PreAuthorize("@aps.hasPermission('system:role:update')") - @OperationLog(operationLogEnumType = OperationLogEnum.UPDATE_OAM_ROLE) @ApiOperation("设置商城角色状态") - @PutMapping("/setSysRoleStatus") - public R setSysRoleStatus(@RequestBody @Validated RoleStatusBo bo) { - roleService.setSysRoleStatus(bo); + @PutMapping("/setMallRoleStatus") + public R setMallRoleStatus(@RequestBody @Validated RoleStatusBo bo) { + roleBrandService.setMallRoleStatus(bo); return R.ok(); } } diff --git a/Cpop-Mall/src/main/java/com/cpop/mall/business/service/RoleBrandService.java b/Cpop-Mall/src/main/java/com/cpop/mall/business/service/RoleBrandService.java index 2d4c65a..0b607c2 100644 --- a/Cpop-Mall/src/main/java/com/cpop/mall/business/service/RoleBrandService.java +++ b/Cpop-Mall/src/main/java/com/cpop/mall/business/service/RoleBrandService.java @@ -1,9 +1,10 @@ package com.cpop.mall.business.service; +import com.cpop.mall.business.bo.MallRoleBo; +import com.cpop.mall.business.bo.MallRolePageBo; import com.cpop.mall.business.entity.RoleBrand; import com.cpop.mall.business.vo.MallRolePageVo; -import com.cpop.system.business.bo.RoleBo; -import com.cpop.system.business.bo.RolePageBo; +import com.cpop.system.business.bo.RoleStatusBo; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; @@ -22,7 +23,7 @@ public interface RoleBrandService extends IService { * @param bo 请求参数 * @return R> */ - Page getMallRolePageList(RolePageBo bo); + Page getMallRolePageList(MallRolePageBo bo); /** * @descriptions 新增角色 @@ -31,5 +32,32 @@ public interface RoleBrandService extends IService { * @param bo 请求参数 * @return: com.cpop.core.base.R */ - void insertMallRole(RoleBo bo); + void insertMallRole(MallRoleBo bo); + + /** + * @descriptions 修改角色 + * @author DB + * @date 2023/09/10 17:45 + * @param bo 请求参数 + * @return com.jambox.core.base.R + */ + void updateMallRole(MallRoleBo bo); + + /** + * @Description: 删除商城角色 + * @param id 主键 + * @return + * @Author DB + * @Date: 2023/10/19 22:34 + */ + void removeMallRole(String id); + + /** + * @Description: 设置角色状态 + * @param bo 请求参数 + * @return: R + * @Author: DB + * @Date: 2023/5/9 14:13 + **/ + void setMallRoleStatus(RoleStatusBo bo); } diff --git a/Cpop-Mall/src/main/java/com/cpop/mall/business/service/impl/RoleBrandServiceImpl.java b/Cpop-Mall/src/main/java/com/cpop/mall/business/service/impl/RoleBrandServiceImpl.java index 97c9614..793749e 100644 --- a/Cpop-Mall/src/main/java/com/cpop/mall/business/service/impl/RoleBrandServiceImpl.java +++ b/Cpop-Mall/src/main/java/com/cpop/mall/business/service/impl/RoleBrandServiceImpl.java @@ -6,12 +6,13 @@ import com.cpop.core.base.entity.PageDomain; import com.cpop.core.utils.SecurityUtils; import com.cpop.core.utils.SpringUtils; import com.cpop.core.utils.sql.SqlUtils; +import com.cpop.mall.business.bo.MallRoleBo; +import com.cpop.mall.business.bo.MallRolePageBo; import com.cpop.mall.business.entity.RoleBrand; import com.cpop.mall.business.mapper.RoleBrandMapper; import com.cpop.mall.business.service.RoleBrandService; import com.cpop.mall.business.vo.MallRolePageVo; -import com.cpop.system.business.bo.RoleBo; -import com.cpop.system.business.bo.RolePageBo; +import com.cpop.system.business.bo.RoleStatusBo; import com.cpop.system.business.entity.Role; import com.cpop.system.business.entity.RoleMenu; import com.cpop.system.business.service.RoleMenuService; @@ -50,7 +51,7 @@ public class RoleBrandServiceImpl extends ServiceImpl> */ @Override - public Page getMallRolePageList(RolePageBo bo) { + public Page getMallRolePageList(MallRolePageBo bo) { //获取当前登录用户信息 JSONObject staffInfo = SecurityUtils.getInstance().getLoginStaffInfo(); //获取分页参数 @@ -85,7 +86,7 @@ public class RoleBrandServiceImpl extends ServiceImpl + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void updateMallRole(MallRoleBo bo) { + Role entity = new Role(); + BeanUtils.copyBeanProp(entity, bo); + entity.setId(bo.getRoleId()); + SpringUtils.getBean(RoleService.class).updateById(entity); + //将菜单信息录入中间表 + if (!bo.getMenuIds().isEmpty()) { + //先删后存 + RoleMenuService sysRoleMenuService = SpringUtils.getBean(RoleMenuService.class); + sysRoleMenuService.remove(QueryWrapper.create() + .where(ROLE_MENU.ROLE_ID.eq(entity.getId()))); + List roleMenus = new ArrayList<>(); + bo.getMenuIds().forEach(item -> { + RoleMenu roleMenu = new RoleMenu(); + roleMenu.setMenuId(item); + roleMenu.setRoleId(entity.getId()); + roleMenus.add(roleMenu); + }); + sysRoleMenuService.saveBatch(roleMenus); + } + } + + /** + * @Description: 删除商城角色 + * @param id 主键 + * @return + * @Author DB + * @Date: 2023/10/19 22:34 + */ + @Override + public void removeMallRole(String id) { + //获取中间表 + RoleBrand roleBrand = this.queryChain().where(ROLE_BRAND.ID.eq(id)).one(); + //删除角色 + SpringUtils.getBean(RoleService.class).removeById(roleBrand.getRoleId()); + //删除相关联菜单 + SpringUtils.getBean(RoleMenuService.class).remove(QueryWrapper.create().where(ROLE_MENU.ROLE_ID.eq(roleBrand.getRoleId()))); + this.removeById(id); + } + + /** + * @Description: 设置角色状态 + * @param bo 请求参数 + * @return: R + * @Author: DB + * @Date: 2023/5/9 14:13 + **/ + @Override + public void setMallRoleStatus(RoleStatusBo bo) { + //获取中间表 + RoleBrand roleBrand = this.queryChain().where(ROLE_BRAND.ID.eq(bo.getId())).one(); + SpringUtils.getBean(RoleService.class).updateChain() + .set(ROLE.STATUS, bo.getStatus()) + .where(ROLE.ID.eq(roleBrand.getRoleId())) + .update(); + } } diff --git a/Cpop-System/src/main/java/com/cpop/system/business/bo/RoleBo.java b/Cpop-System/src/main/java/com/cpop/system/business/bo/RoleBo.java index 2ad28eb..68a94dd 100644 --- a/Cpop-System/src/main/java/com/cpop/system/business/bo/RoleBo.java +++ b/Cpop-System/src/main/java/com/cpop/system/business/bo/RoleBo.java @@ -69,10 +69,4 @@ public class RoleBo implements Serializable { @ApiModelProperty("菜单集合") private List menuIds; - /** - * 当前品牌id - */ - @ApiModelProperty("菜单集合") - private String brandId; - } diff --git a/Cpop-System/src/main/java/com/cpop/system/business/service/RoleService.java b/Cpop-System/src/main/java/com/cpop/system/business/service/RoleService.java index 591ecd4..bc6019a 100644 --- a/Cpop-System/src/main/java/com/cpop/system/business/service/RoleService.java +++ b/Cpop-System/src/main/java/com/cpop/system/business/service/RoleService.java @@ -60,4 +60,5 @@ public interface RoleService extends IService { * @return: void */ void setSysRoleStatus(RoleStatusBo bo); + } diff --git a/Cpop-System/src/main/java/com/cpop/system/business/service/impl/MenuServiceImpl.java b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/MenuServiceImpl.java index 26c7801..717966e 100644 --- a/Cpop-System/src/main/java/com/cpop/system/business/service/impl/MenuServiceImpl.java +++ b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/MenuServiceImpl.java @@ -5,18 +5,16 @@ import com.cpop.common.constant.Constants; import com.cpop.common.utils.StringUtils; import com.cpop.common.utils.bean.BeanUtils; import com.cpop.core.base.entity.LoginUser; -import com.cpop.core.base.entity.loginInfo.OamStaffLoginInfo; import com.cpop.core.utils.SecurityUtils; -import com.cpop.core.utils.SpringUtils; import com.cpop.system.business.bo.MenuBo; import com.cpop.system.business.bo.MenuListBo; +import com.cpop.system.business.entity.Menu; +import com.cpop.system.business.mapper.MenuMapper; +import com.cpop.system.business.service.MenuService; import com.cpop.system.business.vo.MenuRouteVo; import com.cpop.system.business.vo.MenuVo; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; -import com.cpop.system.business.entity.Menu; -import com.cpop.system.business.mapper.MenuMapper; -import com.cpop.system.business.service.MenuService; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -85,6 +83,7 @@ public class MenuServiceImpl extends ServiceImpl implements Me .and(MENU.TITLE.like(bo.getTitle())) //构建公共菜单与特有菜单 .and(MENU.USER_TYPE.in("COMMON", user.getUserType())) + .and(MENU.STATUS.eq(true)) .orderBy(MENU.ORDER_NO.asc()), MenuVo.class)); } diff --git a/Cpop-System/src/main/java/com/cpop/system/business/service/impl/RoleServiceImpl.java b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/RoleServiceImpl.java index 941b888..f42ffef 100644 --- a/Cpop-System/src/main/java/com/cpop/system/business/service/impl/RoleServiceImpl.java +++ b/Cpop-System/src/main/java/com/cpop/system/business/service/impl/RoleServiceImpl.java @@ -154,4 +154,8 @@ public class RoleServiceImpl extends ServiceImpl implements Ro public void setSysRoleStatus(RoleStatusBo bo) { this.updateById(BeanUtils.mapToClass(bo, Role.class)); } + + + + }