diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/controller/SysRoleController.java b/src/main/java/com/coscoshipping/ebtp/project/role/controller/SysRoleController.java index 67fdb43..cdb0344 100644 --- a/src/main/java/com/coscoshipping/ebtp/project/role/controller/SysRoleController.java +++ b/src/main/java/com/coscoshipping/ebtp/project/role/controller/SysRoleController.java @@ -3,7 +3,9 @@ package com.coscoshipping.ebtp.project.role.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.coscoshipping.ebtp.project.role.entity.vo.AllRolesAndAssignRoleVO; import com.coscoshipping.ebtp.project.role.entity.vo.SysRoleVO; +import com.coscoshipping.ebtp.project.userrole.service.SysUserRoleService; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -27,6 +29,8 @@ public class SysRoleController{ @Resource private SysRoleService iSysRoleService; + @Resource + private SysUserRoleService userRoleService; /** * 插入新数据 @@ -119,4 +123,16 @@ public class SysRoleController{ return BaseResponse.success(iSysRoleService.getPage(sysRoleVO)); } + + /** + * 获取角色关联人员 + * + * @return 返回结果 + */ + @ApiOperation("获取角色关联人员") + @GetMapping("/role/assign/{id}") + public BaseResponse getAssigningRoles(@ApiParam("用户id") @PathVariable("id") String userId) { + + return BaseResponse.success(userRoleService.getAllRolesAndAssignRole(userId)); + } } diff --git a/src/main/java/com/coscoshipping/ebtp/project/role/entity/vo/AllRolesAndAssignRoleVO.java b/src/main/java/com/coscoshipping/ebtp/project/role/entity/vo/AllRolesAndAssignRoleVO.java new file mode 100644 index 0000000..d89df9a --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/role/entity/vo/AllRolesAndAssignRoleVO.java @@ -0,0 +1,26 @@ +package com.coscoshipping.ebtp.project.role.entity.vo; + +import com.coscoshipping.ebtp.project.role.entity.SysRole; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.util.List; + +@Data +@Accessors(chain = true) +@AllArgsConstructor +@NoArgsConstructor +@ApiModel("所有角色信息和已分配的角色id") +public class AllRolesAndAssignRoleVO { + + @ApiModelProperty("角色列表") + private List allRole; + + @ApiModelProperty("已分配的角色信息") + private List roleIds; + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/entity/vo/SysUserVO.java b/src/main/java/com/coscoshipping/ebtp/project/user/entity/vo/SysUserVO.java index 841e478..c0b1735 100644 --- a/src/main/java/com/coscoshipping/ebtp/project/user/entity/vo/SysUserVO.java +++ b/src/main/java/com/coscoshipping/ebtp/project/user/entity/vo/SysUserVO.java @@ -11,6 +11,7 @@ import lombok.Data; import lombok.experimental.Accessors; import java.io.Serializable; +import java.util.List; /** * 实体类 SysUser-门户用户表 @@ -27,4 +28,7 @@ public class SysUserVO extends SysUser implements Serializable { */ @ApiModelProperty(value = "分页对象信息") private BasePageRequest basePageRequest; + + @ApiModelProperty(value = "角色ID集合") + private List roleIds; } diff --git a/src/main/java/com/coscoshipping/ebtp/project/userrole/controller/SysUserRoleController.java b/src/main/java/com/coscoshipping/ebtp/project/userrole/controller/SysUserRoleController.java new file mode 100644 index 0000000..378d915 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/userrole/controller/SysUserRoleController.java @@ -0,0 +1,121 @@ +package com.coscoshipping.ebtp.project.userrole.controller; + + +import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; +import com.coscoshipping.ebtp.project.user.entity.vo.SysUserVO; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; +import com.coscoshipping.ebtp.project.userrole.entity.SysUserRole; +import com.coscoshipping.ebtp.project.userrole.service.SysUserRoleService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +@RestController +@Api(value = "用户与角色关系表") +@RequestMapping("/v1/sysuserrole") +public class SysUserRoleController{ + + @Resource + private SysUserRoleService iSysUserRoleService; + + /** + * 用户分配角色 + * + * @param sysUserVO 分配信息 + * @return 返回结果 + */ + @ApiOperation("用户分配角色") + @PostMapping("/assignsRoles") + public BaseResponse assignsRoles(@ApiParam(value = "对象数据", required = true) @RequestBody SysUserVO sysUserVO) { + + return BaseResponse.success(iSysUserRoleService.assignsRoles(sysUserVO)); + } + + /** + * 插入新数据 + * + * @param sysUserRole + * + * @return + */ + @ApiOperation("插入新数据") + @PostMapping + public BaseResponse insert(@ApiParam(value = "对象数据", required = true) @RequestBody @Valid SysUserRole sysUserRole){ + + Boolean i = iSysUserRoleService.save(sysUserRole); + + return BaseResponse.success(i); + } + + /** + * 修改数据 + * + * @param sysUserRole + * + * @return + */ + @ApiOperation("修改数据") + @PutMapping + public BaseResponse update(@ApiParam(value = "对象数据", required = true) @RequestBody SysUserRole sysUserRole){ + + Boolean i = iSysUserRoleService.updateById(sysUserRole); + + return BaseResponse.success(i); + } + + /** + * 查询数据 + * + * @param id + * + * @return + */ + @ApiOperation("根据id查询数据") + @GetMapping("/{id}") + public BaseResponse get(@ApiParam(value = "主键id", required = true) @PathVariable String id){ + + SysUserRole sysUserRole = iSysUserRoleService.getById(id); + + return BaseResponse.success(sysUserRole); + } + + /** + * 删除数据 + * @param id 主键id + * @return BaseResponse + * @author dino + * @date 2020/10/21 14:56 + */ + @ApiOperation(value = "delete",notes = "删除数据") + @DeleteMapping("/{id}") + public BaseResponse delete(@ApiParam(value = "主键id", required = true) @PathVariable Long id) { + Boolean i = iSysUserRoleService.removeById(id); + return BaseResponse.success(i); + } + + /** + * 查询数据 + * + * @param param + * @return + */ + @ApiOperation("查询列表数据") + @GetMapping("/list") + public BaseResponse> list(@ApiParam(value = "查询对象数据", required = false) SysUserRole param) { + //查询 + LambdaQueryWrapper query = Wrappers.lambdaQuery(param); + List list = iSysUserRoleService.list(query); + //异常处理 + //RespsExceptionEnum.FRAME_EXCEPTION_DEMO_NOT_FIND.customValid(list.isEmpty()); + return BaseResponse.success(list); + } +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/userrole/dao/SysUserRoleMapper.java b/src/main/java/com/coscoshipping/ebtp/project/userrole/dao/SysUserRoleMapper.java new file mode 100644 index 0000000..a4a5fb2 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/userrole/dao/SysUserRoleMapper.java @@ -0,0 +1,11 @@ +package com.coscoshipping.ebtp.project.userrole.dao; + + +import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper; +import java.util.List; +import org.springframework.stereotype.Repository; +import com.coscoshipping.ebtp.project.userrole.entity.SysUserRole; + +@Repository +public interface SysUserRoleMapper extends IBaseMapper { +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/userrole/dao/mapper/SysUserRoleMapper.xml b/src/main/java/com/coscoshipping/ebtp/project/userrole/dao/mapper/SysUserRoleMapper.xml new file mode 100644 index 0000000..a4e4c9c --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/userrole/dao/mapper/SysUserRoleMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + update sys_user_role + set + delete_flag="1" + where ID=#{id } + + \ No newline at end of file diff --git a/src/main/java/com/coscoshipping/ebtp/project/userrole/entity/SysUserRole.java b/src/main/java/com/coscoshipping/ebtp/project/userrole/entity/SysUserRole.java new file mode 100644 index 0000000..ce5e8f9 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/userrole/entity/SysUserRole.java @@ -0,0 +1,33 @@ +package com.coscoshipping.ebtp.project.userrole.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** +* 实体类 SysUserRole-用户与角色关系表 +* +* @author yss +*/ +@Data +@Accessors(chain = true) +@TableName(value = "sys_user_role", autoResultMap = true) +@ApiModel(value = "SysUserRole对象", description = "用户与角色关系表") +public class SysUserRole implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "用户ID") + private String userId; + + @ApiModelProperty(value = "角色ID") + private Long roleId; + + + + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/userrole/service/SysUserRoleService.java b/src/main/java/com/coscoshipping/ebtp/project/userrole/service/SysUserRoleService.java new file mode 100644 index 0000000..32127b1 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/userrole/service/SysUserRoleService.java @@ -0,0 +1,25 @@ +package com.coscoshipping.ebtp.project.userrole.service; + + +import com.chinaunicom.mall.ebtp.common.base.service.IBaseService; +import com.coscoshipping.ebtp.project.role.entity.vo.AllRolesAndAssignRoleVO; +import com.coscoshipping.ebtp.project.user.entity.vo.SysUserVO; +import com.coscoshipping.ebtp.project.userrole.entity.SysUserRole; + +/** + * 对数据表 sys_user_role 操作的 service + * @author yss + * + */ +public interface SysUserRoleService extends IBaseService{ + + AllRolesAndAssignRoleVO getAllRolesAndAssignRole(String userId); + /** + * 用户分配角色 + * @param sysUserVO 分配信息 + * @return + */ + boolean assignsRoles(SysUserVO sysUserVO); + + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/userrole/service/impl/SysUserRoleServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/project/userrole/service/impl/SysUserRoleServiceImpl.java new file mode 100644 index 0000000..8a170dc --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/userrole/service/impl/SysUserRoleServiceImpl.java @@ -0,0 +1,59 @@ +package com.coscoshipping.ebtp.project.userrole.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum; +import com.coscoshipping.ebtp.project.role.entity.SysRole; +import com.coscoshipping.ebtp.project.role.entity.vo.AllRolesAndAssignRoleVO; +import com.coscoshipping.ebtp.project.role.service.SysRoleService; +import com.coscoshipping.ebtp.project.user.entity.vo.SysUserVO; +import org.springframework.stereotype.Service; +import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; +import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; +import org.springframework.beans.factory.annotation.Autowired; +import com.coscoshipping.ebtp.project.userrole.dao.SysUserRoleMapper; +import com.coscoshipping.ebtp.project.userrole.entity.SysUserRole; +import com.coscoshipping.ebtp.project.userrole.service.SysUserRoleService; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 对数据表 sys_user_role 操作的 serviceImpl + * @author yss + * + */ +@Service +public class SysUserRoleServiceImpl extends BaseServiceImpl implements SysUserRoleService { + + @Resource + private SysRoleService sysRoleService; + @Override + public AllRolesAndAssignRoleVO getAllRolesAndAssignRole(String userId) { + List list = sysRoleService.list(); + List userRoleList = list(Wrappers.lambdaQuery().eq(SysUserRole::getUserId, userId)); + List roleIds = userRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); + return new AllRolesAndAssignRoleVO(list, roleIds); + } + + @Override + public boolean assignsRoles(SysUserVO sysUserVO) { + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA__ERROR.assertNotNull(sysUserVO.getRoleIds()); + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA__ERROR.assertNotNull(sysUserVO.getUserId()); + + this.remove(new LambdaQueryWrapper().eq(SysUserRole::getUserId,sysUserVO.getUserId())); + + List userRoleList = new ArrayList<>(); + + for (Long roleId : sysUserVO.getRoleIds()) { + SysUserRole userRole = new SysUserRole(); + userRole.setRoleId(roleId); + userRole.setUserId(sysUserVO.getUserId()); + userRoleList.add(userRole); + } + return this.saveBatch(userRoleList); + } +}