perf: 后台获取工单列表时增加数据权限(等级2则根据区域获取对应的数据)

This commit is contained in:
chenxiky 2025-07-27 14:44:37 +08:00
parent 1a8eba26a6
commit 9c278649e1
5 changed files with 48 additions and 10 deletions

View File

@ -22,16 +22,11 @@ import com.aircraft.modules.order.domain.vo.*;
import com.aircraft.modules.order.service.*;
import com.aircraft.modules.route.domain.CpRoute;
import com.aircraft.modules.route.service.CpRouteService;
import com.aircraft.modules.system.domain.AttachmentMaterial;
import com.aircraft.modules.system.domain.CnCustomer;
import com.aircraft.modules.system.domain.EmEmployees;
import com.aircraft.modules.system.domain.EmScenic;
import com.aircraft.modules.system.domain.*;
import com.aircraft.modules.system.domain.dto.LocalAttachmentMaterialDTO;
import com.aircraft.modules.system.domain.enums.AttachmentMaterialBusinessTypeEnum;
import com.aircraft.modules.system.service.CnCustomerService;
import com.aircraft.modules.system.service.EmEmployeesService;
import com.aircraft.modules.system.service.EmScenicService;
import com.aircraft.modules.system.service.IAttachmentMaterialService;
import com.aircraft.modules.system.mapper.UserRoleMapper;
import com.aircraft.modules.system.service.*;
import com.aircraft.utils.RedisUtils;
import com.aircraft.utils.SecurityUtils;
import com.aircraft.utils.enums.UserTypeEnum;
@ -84,6 +79,12 @@ public class OrderBiz {
private CnCustomerService cnCustomerService;
@Resource
private AircraftDeviceService aircraftDeviceService;
@Resource
private UserService userService;
@Resource
private RoleService roleService;
@Resource
private UserRoleMapper userRoleMapper;
public IPage<OrderMainPageQueryVO> queryAll(OrderMainPageQueryDTO pageQueryDTO, Page page) {
@ -200,7 +201,23 @@ public class OrderBiz {
* @return {@link List<OrderMain>}
*/
private List<OrderMain> adminAllOrderQueryList(OrderMainPageQueryDTO pageQueryDTO) {
// TODO 需要考虑用户角色获取对应的数据财务区域管理员角色
// 用户角色获取对应的数据财务区域管理员角色
// 获取当前角色
Long currentUserId = SecurityUtils.getCurrentUserId();
// 根据用户ID获取用户角色
User user = userService.getById(currentUserId);
Long userRoleId =userRoleMapper.obtainRoleByUserId(currentUserId);
// 获取对应的角色等级
Role role = roleService.getById(userRoleId);
if (ObjectUtil.isNotNull(role)) {
Integer level = role.getLevel();
if (level != null && level == 2) {
if (ObjectUtil.isNotNull(user.getAreaId())) {
pageQueryDTO.setAreaId(user.getAreaId());
}
}
}
// 处理时间格式
if (ObjectUtil.isNotNull(pageQueryDTO.getQueryStartTime())) {
Date start = DateUtil.beginOfDay(pageQueryDTO.getQueryStartTime());

View File

@ -67,5 +67,11 @@ public class OrderMainPageQueryDTO {
@ApiModelProperty(value = "结算状态点击生成结算订单的订单查询列表时请默认携带参数传值0未结算")
private Integer settlementStatus;
/**
* 区域ID
*/
@ApiModelProperty(value = "区域ID")
private Long areaId;
}

View File

@ -36,12 +36,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
LambdaQueryWrapper<OrderMain> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getAttractionId()), OrderMain::getAttractionId, pageQueryDTO.getAttractionId());
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getCustomerId()), OrderMain::getCustomerId, pageQueryDTO.getCustomerId());
queryWrapper.eq(StrUtil.isNotBlank(pageQueryDTO.getPhone()), OrderMain::getPhone, pageQueryDTO.getPhone());
queryWrapper.like(StrUtil.isNotBlank(pageQueryDTO.getPhone()), OrderMain::getPhone, pageQueryDTO.getPhone());
// 添加时间查询条件
queryWrapper.ge(ObjectUtil.isNotNull(pageQueryDTO.getQueryStartTime()), OrderMain::getOrderCreateTime, pageQueryDTO.getQueryStartTime());
queryWrapper.le(ObjectUtil.isNotNull(pageQueryDTO.getQueryEndTime()), OrderMain::getOrderCreateTime, pageQueryDTO.getQueryEndTime());
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getMainOrderStatus()), OrderMain::getMainOrderStatus, pageQueryDTO.getMainOrderStatus());
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getSettlementStatus()), OrderMain::getSettlementStatus, pageQueryDTO.getSettlementStatus());
queryWrapper.eq(ObjectUtil.isNotNull(pageQueryDTO.getAreaId()), OrderMain::getAreaId, pageQueryDTO.getAreaId());
queryWrapper.orderByDesc(OrderMain::getId);
return list(queryWrapper);
}

View File

@ -31,4 +31,12 @@ public interface UserRoleMapper {
void deleteByUserId(@Param("userId") Long userId);
void deleteByUserIds(@Param("userIds") Set<Long> userIds);
/**
* 获取用户角色ID
*
* @param currentUserId 当前用户ID
* @return 角色ID
*/
Long obtainRoleByUserId(Long currentUserId);
}

View File

@ -23,4 +23,10 @@
#{id}
</foreach>
</delete>
<select id="obtainRoleByUserId" resultType="java.lang.Long">
select role_id
from sys_users_roles
where user_id = #{userId}
</select>
</mapper>