From 17b5bbf83b6082228ebd8e58d63dddb714ee3d5b Mon Sep 17 00:00:00 2001 From: xyc <3422692813@qq.com> Date: Fri, 1 Aug 2025 17:25:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B00801?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/InspectionOrderInfoController.java | 18 +++++- .../impl/AppInspectionPartnerServiceImpl.java | 2 +- .../admin/RepairStaffController.java | 59 +++++++++++++++++++ .../yudao/module/base/entity/RepairStaff.java | 58 ++++++++++++++++++ .../permission/PermissionController.java | 6 +- .../admin/permission/RoleController.java | 17 ++++-- .../PermissionAssignUserRoleReqVO.java | 3 + .../dal/mysql/permission/UserRoleMapper.java | 2 + .../service/permission/PermissionService.java | 7 +++ .../permission/PermissionServiceImpl.java | 30 ++++++++++ .../service/permission/RoleService.java | 10 ++++ .../service/permission/RoleServiceImpl.java | 15 +++++ .../main/resources/mapper/UserRoleMapper.xml | 9 ++- 13 files changed, 224 insertions(+), 12 deletions(-) create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairStaffController.java create mode 100644 dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/entity/RepairStaff.java diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/InspectionOrderInfoController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/InspectionOrderInfoController.java index 2ae07041..3108046a 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/InspectionOrderInfoController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/InspectionOrderInfoController.java @@ -2,8 +2,11 @@ package cn.iocoder.yudao.module.inspection.controller.admin; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.inspection.entity.InspectionInfo; +import cn.iocoder.yudao.module.inspection.service.IInspectionInfoService; import cn.iocoder.yudao.module.payment.entity.OrderInfo; import cn.iocoder.yudao.module.payment.service.OrderInfoService; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -14,6 +17,8 @@ public class InspectionOrderInfoController { private final OrderInfoService orderInfoService; + private final IInspectionInfoService inspectionInfoService; + /** * 修改订单信息 * @@ -24,7 +29,7 @@ public class InspectionOrderInfoController { public CommonResult cashier(@RequestBody OrderInfo orderInfo) { if ("accounting".equals(orderInfo.getType())) { orderInfo.setAccountingConfirmUser(SecurityFrameworkUtils.getLoginUserId()); - }else { + } else { orderInfo.setCashierConfirmUser(SecurityFrameworkUtils.getLoginUserId()); } return CommonResult.success(orderInfoService.updateById(orderInfo)); @@ -32,11 +37,18 @@ public class InspectionOrderInfoController { /** * 获取订单信息 + * * @param id * @return */ @GetMapping("/{id}") - public CommonResult get(@PathVariable Long id){ - return CommonResult.success(orderInfoService.getById(id)); + public CommonResult get(@PathVariable Long id) { + OrderInfo byId = orderInfoService.getById(id); + InspectionInfo one = inspectionInfoService.getOne(Wrappers.lambdaQuery() + .eq(InspectionInfo::getInspectionOrderId, id)); + if (one != null) { + byId.setCarNo(one.getCarNum()); + } + return CommonResult.success(byId); } } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java index b6b84769..e92bfec1 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java @@ -2718,7 +2718,7 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpllambdaUpdate() .in(OrderInfo::getId, orderIds) diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairStaffController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairStaffController.java new file mode 100644 index 00000000..9a914b5a --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairStaffController.java @@ -0,0 +1,59 @@ +package cn.iocoder.yudao.module.base.controller.admin; + + +import cn.hutool.core.bean.BeanUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.base.entity.RepairStaff; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.service.permission.RoleService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/base/repair-staff") +@RequiredArgsConstructor +public class RepairStaffController { + private final AdminUserService userService; + private final RoleService roleService; + + /** + * 获取维修员工信息 + * + * @param id 用户id + * @return + */ + @GetMapping("/get") + public CommonResult getRepairStaff(Long id) { + // 查询信息 + AdminUserDO user = userService.getUser(id); + if (user == null) { + return CommonResult.error(400,"用户不存在"); + } + + // 查询对应角色 + List roleDOS = roleService.selectRoleByUserId(id); + if (roleDOS == null) { + roleDOS = Collections.emptyList(); + } + + RepairStaff repairStaff = BeanUtil.copyProperties(user, RepairStaff.class); + + // 过滤出服务套餐为 weixiu 的 + List weixiuRoleDOS = roleDOS.stream() + .filter(item -> "weixiu".equals(item.getServicePackageId())) + .collect(Collectors.toList()); + repairStaff.setRoles(weixiuRoleDOS); + + return CommonResult.success(repairStaff); + } + +} diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/entity/RepairStaff.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/entity/RepairStaff.java new file mode 100644 index 00000000..19e02563 --- /dev/null +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/entity/RepairStaff.java @@ -0,0 +1,58 @@ +package cn.iocoder.yudao.module.base.entity; + + +import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; +import lombok.Data; + +import java.util.List; + +@Data +public class RepairStaff { + /** + * 用户id + */ + private Long id; + /** + * 用户账号 + */ + private String username; + /** + * 用户昵称 + */ + private String nickname; + /** + * 备注 + */ + private String remark; + /** + * 用户手机号码 + */ + private String mobile; + /** + * 用户头像 + */ + private String avatar; + + /** + * 用户性别 + **/ + private String sex; + /** + * 用户openId + **/ + private String openId; + /** + * 用户openId + **/ + private Long tenantId; + /** + * 用户状态 + */ + private Integer status; + /** + * 角色名称 多个角色以逗号隔开 + */ + private String roleNames; + List roles; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java index 3b84c7a8..37ca1a9e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/PermissionController.java @@ -76,7 +76,11 @@ public class PermissionController { @PostMapping("/assign-user-role") @PreAuthorize("@ss.hasPermission('system:permission:assign-user-role')") public CommonResult assignUserRole(@Validated @RequestBody PermissionAssignUserRoleReqVO reqVO) { - permissionService.assignUserRole(reqVO.getUserId(), reqVO.getRoleIds()); + if (reqVO.getServicePackageId() != null) { + permissionService.assignUserRoleByServicePackageId(reqVO.getUserId(), reqVO.getRoleIds(), reqVO.getServicePackageId()); + }else { + permissionService.assignUserRole(reqVO.getUserId(), reqVO.getRoleIds()); + } return success(true); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java index ce1b1974..2018ee4d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java @@ -100,52 +100,57 @@ public class RoleController { /** * app端通过服务套餐id查询角色列表 + * * @param roleDO * @return */ @GetMapping("/pageByQuery") - public CommonResult pageByQuery(RoleDO roleDO){ + public CommonResult pageByQuery(RoleDO roleDO) { return success(roleService.pageByQuery(roleDO)); } /** * 通过角色id查询角色 + * * @param roleIds * @return */ @GetMapping("/selectListByRoleId") - public CommonResult selectListByRoleId(RolePageReqVO role){ + public CommonResult selectListByRoleId(RolePageReqVO role) { return success(roleService.selectListByRoleId(role)); } /** * 通过角色id查询角色 + * * @return */ @GetMapping("/selectListByRoleIdJX") - public CommonResult selectListByRoleIdJX(RolePageReqVO role){ + public CommonResult selectListByRoleIdJX(RolePageReqVO role) { return success(roleService.selectListByRoleIdJX(role)); } /** * 通过角色id查询角色 + * * @return */ @GetMapping("/selectListByRoleIdRepair") - public CommonResult selectListByRoleIdRepair(RolePageReqVO role){ + public CommonResult selectListByRoleIdRepair(RolePageReqVO role) { return success(roleService.selectListByRoleIdRepair(role)); } /** * 通过角色code查询用户 + * * @param code * @return */ @GetMapping("/getUsersByRoleCode") - public CommonResult getUsersByRoleCode(String code){ + public CommonResult getUsersByRoleCode(String code) { //获取当前登陆人的tenanId Long tenantId = SecurityFrameworkUtils.getLoginUser().getTenantId(); - return success(roleService.selectByRoleCode(tenantId,code)); + return success(roleService.selectByRoleCode(tenantId, code)); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java index 9ca43f94..a590239c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/permission/PermissionAssignUserRoleReqVO.java @@ -18,4 +18,7 @@ public class PermissionAssignUserRoleReqVO { @Schema(description = "角色编号列表", example = "1,3,5") private Set roleIds = Collections.emptySet(); // 兜底 + @Schema(description = "服务套餐编号", example = "1") + private String servicePackageId; + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java index 288b9b39..62e101f1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java @@ -21,6 +21,8 @@ public interface UserRoleMapper extends BaseMapperX { return selectList(UserRoleDO::getUserId, userId); } + List selectListByUserIdAndServicePackageId(@Param("userId")Long userId, @Param("servicePackageId")String servicePackageId); + default void deleteListByUserIdAndRoleIdIds(Long userId, Collection roleIds) { delete(new LambdaQueryWrapper() .eq(UserRoleDO::getUserId, userId) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java index 3dd7c59e..35e63a89 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java @@ -182,4 +182,11 @@ public interface PermissionService { **/ List getUserIdByRoleId(Long roleId); + /** + * 赋予用户角色 + * @param userId + * @param roleIds + * @param servicePackageId + */ + void assignUserRoleByServicePackageId(Long userId, Set roleIds, String servicePackageId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java index f5bc4295..040746e7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java @@ -390,4 +390,34 @@ public class PermissionServiceImpl implements PermissionService { List userIds = userRoleDOS.stream().map(item -> item.getUserId()).collect(Collectors.toList()); return userIds; } + + /** + * 赋予用户角色 + * + * @param userId + * @param roleIds + * @param servicePackageId + */ + @Override + public void assignUserRoleByServicePackageId(Long userId, Set roleIds, String servicePackageId) { + // 获得角色拥有角色编号 + Set dbRoleIds = convertSet(userRoleMapper.selectListByUserIdAndServicePackageId(userId, servicePackageId), + UserRoleDO::getRoleId); + // 计算新增和删除的角色编号 + Set roleIdList = CollUtil.emptyIfNull(roleIds); + Collection createRoleIds = CollUtil.subtract(roleIdList, dbRoleIds); + Collection deleteRoleIds = CollUtil.subtract(dbRoleIds, roleIdList); + // 执行新增和删除。对于已经授权的角色,不用做任何处理 + if (!CollectionUtil.isEmpty(createRoleIds)) { + userRoleMapper.insertBatch(CollectionUtils.convertList(createRoleIds, roleId -> { + UserRoleDO entity = new UserRoleDO(); + entity.setUserId(userId); + entity.setRoleId(roleId); + return entity; + })); + } + if (!CollectionUtil.isEmpty(deleteRoleIds)) { + userRoleMapper.deleteListByUserIdAndRoleIdIds(userId, deleteRoleIds); + } + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java index 3d36127b..b9d23418 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java @@ -172,7 +172,9 @@ public interface RoleService { List pageByQuery(RoleDO roleDO); IPage selectListByRoleId(RolePageReqVO role); + IPage selectListByRoleIdJX(RolePageReqVO role); + IPage selectListByRoleIdRepair(RolePageReqVO role); /** @@ -214,4 +216,12 @@ public interface RoleService { * @return */ List getUserListByCodesAndTenantId(List codes, Long tenantId); + + /** + * 根据用户id查询角色 + * + * @param userId 用户id + * @return + */ + List selectRoleByUserId(Long userId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java index da361060..cc601948 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java @@ -435,6 +435,21 @@ public class RoleServiceImpl implements RoleService { return userRoleMapper.selectByRoleCodesAndTenantId(codes, tenantId); } + /** + * 根据用户id查询角色 + * + * @param userId 用户id + * @return + */ + @Override + public List selectRoleByUserId(Long userId) { + List userRoleDOS = userRoleMapper.selectList(new LambdaQueryWrapper() + .eq(UserRoleDO::getUserId, userId)); + // 获取角色id集合 + List roleIds = userRoleDOS.stream().map(item -> item.getRoleId()).collect(Collectors.toList()); + return getRoleListFromCache(roleIds); + } + /** * 获得自身的代理对象,解决 AOP 生效问题 * diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/UserRoleMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/UserRoleMapper.xml index 158424b1..d6f9d417 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/UserRoleMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/UserRoleMapper.xml @@ -97,7 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from system_users su left join system_user_role sr on su.id = sr.user_id and sr.deleted = 0 left join system_role sr2 on sr.role_id = sr2.id - INNER JOIN dl_repair_worker dsc ON dsc.user_id = su.id +-- INNER JOIN dl_repair_worker dsc ON dsc.user_id = su.id su.deleted = 0 and sr2.service_package_id = 'weixiu' @@ -210,4 +210,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) AND sur.deleted = 0 ) AND deleted = 0 +