Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
60bb0a296a
@ -18,4 +18,6 @@ public class RepairCons {
|
|||||||
public static final String DICT_REPAIR_TYPE = "repair_type";
|
public static final String DICT_REPAIR_TYPE = "repair_type";
|
||||||
/**数据字典常量-repair_unit-*/
|
/**数据字典常量-repair_unit-*/
|
||||||
public static final String DICT_REPAIR_UNIT = "repair_unit";
|
public static final String DICT_REPAIR_UNIT = "repair_unit";
|
||||||
|
/**数据字典常量-repair_unit-*/
|
||||||
|
public static final String DICT_REPAIR_WORK_TYPE = "repair_work_type";
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.base.entity;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
@ -46,4 +47,10 @@ public class RepairWorker extends TenantBaseDO {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工种字典翻译
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String workTypeText;
|
||||||
|
|
||||||
}
|
}
|
@ -11,9 +11,10 @@ import cn.iocoder.yudao.module.base.service.RepairWorkerService;
|
|||||||
import cn.iocoder.yudao.module.base.vo.RepairWorkerPageReqVO;
|
import cn.iocoder.yudao.module.base.vo.RepairWorkerPageReqVO;
|
||||||
import cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO;
|
import cn.iocoder.yudao.module.base.vo.RepairWorkerRespVO;
|
||||||
import cn.iocoder.yudao.module.base.vo.RepairWorkerSaveReqVO;
|
import cn.iocoder.yudao.module.base.vo.RepairWorkerSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
|
||||||
|
import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
|
||||||
import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
|
import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
|
||||||
import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
|
import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
|
||||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
||||||
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||||
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
|
import cn.iocoder.yudao.module.tickets.entity.DlRepairTitem;
|
||||||
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
|
import cn.iocoder.yudao.module.tickets.service.DlRepairTitemService;
|
||||||
@ -32,6 +33,7 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.common.BaseConstants.TICKET_EMPLOY;
|
import static cn.iocoder.yudao.common.BaseConstants.TICKET_EMPLOY;
|
||||||
|
import static cn.iocoder.yudao.common.RepairCons.DICT_REPAIR_WORK_TYPE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 维修工人 Service 实现类
|
* 维修工人 Service 实现类
|
||||||
@ -53,7 +55,7 @@ public class RepairWorkerServiceImpl extends ServiceImpl<RepairWorkerMapper, Rep
|
|||||||
@Autowired
|
@Autowired
|
||||||
private NotifyMessageSocket notifyMessageSocket;
|
private NotifyMessageSocket notifyMessageSocket;
|
||||||
@Resource
|
@Resource
|
||||||
private AdminUserApi userApi;
|
private DictDataApi dictDataApi;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -113,7 +115,14 @@ public class RepairWorkerServiceImpl extends ServiceImpl<RepairWorkerMapper, Rep
|
|||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public IPage<RepairWorkerRespVO> queryListPage(RepairWorkerPageReqVO pageReqVO, Page<RepairWorkerRespVO> page) {
|
public IPage<RepairWorkerRespVO> queryListPage(RepairWorkerPageReqVO pageReqVO, Page<RepairWorkerRespVO> page) {
|
||||||
return workerMapper.queryListPage(pageReqVO, page);
|
IPage<RepairWorkerRespVO> respVOIPage= workerMapper.queryListPage(pageReqVO, page);
|
||||||
|
if(!respVOIPage.getRecords().isEmpty()){
|
||||||
|
// 单位字典
|
||||||
|
List<DictDataRespDTO> recordTypeList = dictDataApi.getDictDataList(DICT_REPAIR_WORK_TYPE);
|
||||||
|
Map<String,String> typeMap = recordTypeList.stream().collect(Collectors.toMap(DictDataRespDTO::getValue,DictDataRespDTO::getLabel));
|
||||||
|
respVOIPage.getRecords().stream().peek(item->item.setWorkTypeText(typeMap.get(item.getWorkType()))).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return respVOIPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -133,7 +142,15 @@ public class RepairWorkerServiceImpl extends ServiceImpl<RepairWorkerMapper, Rep
|
|||||||
}));
|
}));
|
||||||
// 取所有的员工ID
|
// 取所有的员工ID
|
||||||
Set<String> ids = titems.stream().flatMap(item -> Arrays.stream(item.getRepairIds().split(","))).collect(Collectors.toSet());
|
Set<String> ids = titems.stream().flatMap(item -> Arrays.stream(item.getRepairIds().split(","))).collect(Collectors.toSet());
|
||||||
return baseMapper.selectList(new LambdaQueryWrapper<RepairWorker>().in(RepairWorker::getUserId, ids));
|
List<RepairWorker> repairWorkerList = baseMapper.selectList(new LambdaQueryWrapper<RepairWorker>().in(RepairWorker::getUserId, ids));
|
||||||
|
if(!repairWorkerList.isEmpty()){
|
||||||
|
// 单位字典
|
||||||
|
List<DictDataRespDTO> recordTypeList = dictDataApi.getDictDataList(DICT_REPAIR_WORK_TYPE);
|
||||||
|
Map<String,String> typeMap = recordTypeList.stream().collect(Collectors.toMap(DictDataRespDTO::getValue,DictDataRespDTO::getLabel));
|
||||||
|
repairWorkerList.stream().peek(item->item.setWorkTypeText(typeMap.get(item.getWorkType()))).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
//翻译工种
|
||||||
|
return repairWorkerList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
package cn.iocoder.yudao.module.booking.controller.app;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.booking.service.DlRepairBookingService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序端维修预约控制层
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 14:25 2024/10/26
|
||||||
|
**/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/repair/booking")
|
||||||
|
public class ApiRepairBookingController {
|
||||||
|
/**
|
||||||
|
* 服务对象
|
||||||
|
*/
|
||||||
|
@Resource
|
||||||
|
private DlRepairBookingService dlRepairBookingService;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取可以预约的时间 --小程序用
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:03 2024/10/26
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
|
**/
|
||||||
|
@GetMapping("/getBookingTime")
|
||||||
|
@Operation(summary = "获取可以预约的时间")
|
||||||
|
public CommonResult<?> getBookingTime(@RequestParam("tenantId") Long tenantId){
|
||||||
|
return success(dlRepairBookingService.getBookingTime(tenantId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有服务顾问
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:03 2024/10/26
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
* @return cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
|
||||||
|
**/
|
||||||
|
@GetMapping("/getAllServicer")
|
||||||
|
@Operation(summary = "获取所有服务顾问")
|
||||||
|
public CommonResult<?> getAllServicer(@RequestParam("tenantId") Long tenantId){
|
||||||
|
return success(dlRepairBookingService.getAllServicer(tenantId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -7,10 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
|||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 维修预约表
|
* 维修预约表
|
||||||
@ -60,6 +58,10 @@ public class DlRepairBooking extends TenantBaseDO {
|
|||||||
|
|
||||||
/** 工单ID */
|
/** 工单ID */
|
||||||
private String ticketsId;
|
private String ticketsId;
|
||||||
|
/** 服务顾问ID(system_users表的ID) */
|
||||||
|
private String adviserId;
|
||||||
|
/** 服务顾问名字(system_user表的nickname) */
|
||||||
|
private String adviserName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 预约时间
|
* 预约时间
|
||||||
|
@ -2,8 +2,10 @@ package cn.iocoder.yudao.module.booking.service;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.module.app.booking.vo.BookingQueryVO;
|
import cn.iocoder.yudao.module.app.booking.vo.BookingQueryVO;
|
||||||
import cn.iocoder.yudao.module.booking.entity.DlRepairBooking;
|
import cn.iocoder.yudao.module.booking.entity.DlRepairBooking;
|
||||||
|
import cn.iocoder.yudao.module.booking.vo.BookingVO;
|
||||||
import cn.iocoder.yudao.module.booking.vo.DlRepairBookingReqVO;
|
import cn.iocoder.yudao.module.booking.vo.DlRepairBookingReqVO;
|
||||||
import cn.iocoder.yudao.module.booking.vo.DlRepairBookingRespVO;
|
import cn.iocoder.yudao.module.booking.vo.DlRepairBookingRespVO;
|
||||||
|
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@ -62,4 +64,21 @@ public interface DlRepairBookingService extends IService<DlRepairBooking> {
|
|||||||
* @param ids 预约记录ID
|
* @param ids 预约记录ID
|
||||||
**/
|
**/
|
||||||
List<BookingQueryVO> getBookingMap(List<String> ids);
|
List<BookingQueryVO> getBookingMap(List<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:03 2024/10/26
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.booking.vo.BookingVO>
|
||||||
|
**/
|
||||||
|
List<BookingVO> getBookingTime(Long tenantId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有服务顾问
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:52 2024/10/26
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
**/
|
||||||
|
List<UserDTO> getAllServicer(Long tenantId);
|
||||||
}
|
}
|
||||||
|
@ -2,22 +2,28 @@ package cn.iocoder.yudao.module.booking.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.iocoder.yudao.common.RepairRoleEnum;
|
||||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||||
import cn.iocoder.yudao.module.app.booking.vo.BookingQueryVO;
|
import cn.iocoder.yudao.module.app.booking.vo.BookingQueryVO;
|
||||||
import cn.iocoder.yudao.module.booking.entity.DlRepairBooking;
|
import cn.iocoder.yudao.module.booking.entity.DlRepairBooking;
|
||||||
import cn.iocoder.yudao.module.booking.mapper.DlRepairBookingMapper;
|
import cn.iocoder.yudao.module.booking.mapper.DlRepairBookingMapper;
|
||||||
import cn.iocoder.yudao.module.booking.service.DlRepairBookingService;
|
import cn.iocoder.yudao.module.booking.service.DlRepairBookingService;
|
||||||
|
import cn.iocoder.yudao.module.booking.vo.BookingVO;
|
||||||
import cn.iocoder.yudao.module.booking.vo.DlRepairBookingReqVO;
|
import cn.iocoder.yudao.module.booking.vo.DlRepairBookingReqVO;
|
||||||
import cn.iocoder.yudao.module.booking.vo.DlRepairBookingRespVO;
|
import cn.iocoder.yudao.module.booking.vo.DlRepairBookingRespVO;
|
||||||
import cn.iocoder.yudao.module.company.entity.Company;
|
import cn.iocoder.yudao.module.company.entity.Company;
|
||||||
import cn.iocoder.yudao.module.company.service.CompanyService;
|
import cn.iocoder.yudao.module.company.service.CompanyService;
|
||||||
|
import cn.iocoder.yudao.module.system.api.permission.RoleApi;
|
||||||
import cn.iocoder.yudao.module.system.api.service.ServicePackageApi;
|
import cn.iocoder.yudao.module.system.api.service.ServicePackageApi;
|
||||||
import cn.iocoder.yudao.module.system.api.service.dto.ServicePackageDto;
|
import cn.iocoder.yudao.module.system.api.service.dto.ServicePackageDto;
|
||||||
|
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -25,8 +31,6 @@ import javax.annotation.Resource;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 针对表【dl_repair_booking(维修预约表)】的数据库操作Service实现
|
* 针对表【dl_repair_booking(维修预约表)】的数据库操作Service实现
|
||||||
*
|
*
|
||||||
@ -44,6 +48,8 @@ public class DlRepairBookingServiceImpl extends ServiceImpl<DlRepairBookingMappe
|
|||||||
@Resource
|
@Resource
|
||||||
@Lazy
|
@Lazy
|
||||||
private ServicePackageApi servicePackageApi;
|
private ServicePackageApi servicePackageApi;
|
||||||
|
@Autowired
|
||||||
|
private RoleApi roleApi;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 维修预约表 新增、修改
|
* 维修预约表 新增、修改
|
||||||
@ -126,6 +132,110 @@ public class DlRepairBookingServiceImpl extends ServiceImpl<DlRepairBookingMappe
|
|||||||
});
|
});
|
||||||
return result.stream().sorted(Comparator.comparing(BookingQueryVO::getCreateTime).reversed()).collect(Collectors.toList());
|
return result.stream().sorted(Comparator.comparing(BookingQueryVO::getCreateTime).reversed()).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.booking.vo.BookingVO>
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:03 2024/10/26
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
@TenantIgnore
|
||||||
|
public List<BookingVO> getBookingTime(Long tenantId) {
|
||||||
|
Date nowDate = new Date();
|
||||||
|
String[] timeList = "09:00,11:00,14:00,15:00,16:00,17:00".split(",");
|
||||||
|
List<BookingVO> rtnList = new ArrayList<>();
|
||||||
|
//先遍历日期
|
||||||
|
for (int i = 0; i < 7; i++) {
|
||||||
|
BookingVO thisDay = new BookingVO();
|
||||||
|
List<BookingVO> timeVoList = new ArrayList<>();
|
||||||
|
if(i==0){
|
||||||
|
//今天
|
||||||
|
String dayStr = DateUtil.formatDate(nowDate);
|
||||||
|
//周几
|
||||||
|
int weekDay = DateUtil.dayOfWeek(nowDate);
|
||||||
|
System.out.println(dayStr.substring(5));
|
||||||
|
thisDay.setDate(dayStr.substring(5));
|
||||||
|
thisDay.setTitle(this.changeWeek(weekDay));
|
||||||
|
thisDay.setDisabled(false);
|
||||||
|
//遍历时间
|
||||||
|
for (String timeStr:timeList){
|
||||||
|
BookingVO thisTime = new BookingVO();
|
||||||
|
thisTime.setDate(timeStr);
|
||||||
|
//拼接时间
|
||||||
|
String timeDateStr = dayStr+" "+timeStr+":00";
|
||||||
|
//转时间戳,比对大小
|
||||||
|
Date timeDate = DateUtil.parseDateTime(timeDateStr);
|
||||||
|
int compareResult = DateUtil.compare(nowDate, timeDate);
|
||||||
|
//nowDate 在 timeDate 之前,可以预约,否则不能预约
|
||||||
|
thisTime.setDisabled(compareResult >= 0);
|
||||||
|
timeVoList.add(thisTime);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
//往后6天,每天、每个时间都能预约
|
||||||
|
Date thisDate = DateUtil.offsetDay(nowDate, i);
|
||||||
|
String dayStr = DateUtil.formatDate(thisDate);
|
||||||
|
//周几
|
||||||
|
int weekDay = DateUtil.dayOfWeek(thisDate);
|
||||||
|
thisDay.setDate(dayStr.substring(5));
|
||||||
|
thisDay.setTitle(this.changeWeek(weekDay));
|
||||||
|
thisDay.setDisabled(false);
|
||||||
|
//遍历时间
|
||||||
|
for (String timeStr:timeList){
|
||||||
|
BookingVO thisTime = new BookingVO();
|
||||||
|
thisTime.setDate(timeStr);
|
||||||
|
thisTime.setDisabled(false);
|
||||||
|
timeVoList.add(thisTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
thisDay.setTimeList(timeVoList);
|
||||||
|
rtnList.add(thisDay);
|
||||||
|
}
|
||||||
|
return rtnList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String changeWeek(int weekNum){
|
||||||
|
String weekStr="";
|
||||||
|
switch (weekNum){
|
||||||
|
case 1:
|
||||||
|
weekStr = "周日";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
weekStr = "周一";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
weekStr = "周二";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
weekStr = "周三";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
weekStr = "周四";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
weekStr = "周五";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
weekStr = "周六";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return weekStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有服务顾问
|
||||||
|
*
|
||||||
|
* @param tenantId 租户ID
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.base.entity.RepairWorker>
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:52 2024/10/26
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public List<UserDTO> getAllServicer(Long tenantId) {
|
||||||
|
return roleApi.selectUserListByRoleCode(tenantId, RepairRoleEnum.ADVISOR.getCode());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
package cn.iocoder.yudao.module.booking.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 可预约日期和时间通用实体
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 14:52 2024/10/26
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class BookingVO {
|
||||||
|
/** 日期或时间 */
|
||||||
|
private String date;
|
||||||
|
/** 周几 */
|
||||||
|
private String title;
|
||||||
|
/** 是否可选 */
|
||||||
|
private Boolean disabled;
|
||||||
|
/** 可选时间 */
|
||||||
|
List<BookingVO> timeList;
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.system.api.permission;
|
package cn.iocoder.yudao.module.system.api.permission;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
|
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
|
||||||
|
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -33,4 +34,10 @@ public interface RoleApi {
|
|||||||
**/
|
**/
|
||||||
RoleReqDTO getRoleInfo(String code);
|
RoleReqDTO getRoleInfo(String code);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询某个角色的用户
|
||||||
|
* @author zcy
|
||||||
|
**/
|
||||||
|
List<UserDTO> selectUserListByRoleCode(Long tenantId,String code);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,9 @@ package cn.iocoder.yudao.module.system.api.permission;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
|
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
|
||||||
|
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
||||||
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -53,4 +53,15 @@ public class RoleApiImpl implements RoleApi {
|
|||||||
roleReqDTO.setName(roleDO.getName());
|
roleReqDTO.setName(roleDO.getName());
|
||||||
return roleReqDTO;
|
return roleReqDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询某个角色的用户
|
||||||
|
*
|
||||||
|
* @param code
|
||||||
|
* @author zcy
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<UserDTO> selectUserListByRoleCode(Long tenantId,String code) {
|
||||||
|
return roleService.selectByRoleCode(tenantId,code);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.system.dal.mysql.permission;
|
package cn.iocoder.yudao.module.system.dal.mysql.permission;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -33,4 +35,5 @@ public interface UserRoleMapper extends BaseMapperX<UserRoleDO> {
|
|||||||
return selectList(UserRoleDO::getRoleId, roleIds);
|
return selectList(UserRoleDO::getRoleId, roleIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<UserDTO> selectByRoleCode(@Param("tenantId") Long tenantId, @Param("roleCode") String roleCode);
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.service.permission;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||||
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
|
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
||||||
@ -148,4 +148,13 @@ public interface RoleService {
|
|||||||
void validateRoleList(Collection<Long> ids);
|
void validateRoleList(Collection<Long> ids);
|
||||||
@TenantIgnore
|
@TenantIgnore
|
||||||
RoleDO getRoleByCodeWithoutTenant(String rescueOtherNotify);
|
RoleDO getRoleByCodeWithoutTenant(String rescueOtherNotify);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询某个角色的用户
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:58 2024/10/26
|
||||||
|
* @param roleCode 角色code
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.system.api.user.dto.UserDTO>
|
||||||
|
**/
|
||||||
|
List<UserDTO> selectByRoleCode(Long tenantId,String roleCode);
|
||||||
}
|
}
|
||||||
|
@ -12,11 +12,12 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
|
|||||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||||
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
|
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants;
|
import cn.iocoder.yudao.module.system.dal.redis.RedisKeyConstants;
|
||||||
import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum;
|
import cn.iocoder.yudao.module.system.enums.permission.DataScopeEnum;
|
||||||
import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
|
import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
|
||||||
@ -55,6 +56,8 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RoleMapper roleMapper;
|
private RoleMapper roleMapper;
|
||||||
|
@Resource
|
||||||
|
private UserRoleMapper userRoleMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@ -320,6 +323,19 @@ public class RoleServiceImpl implements RoleService {
|
|||||||
return roleMapper.selectByCode(code);
|
return roleMapper.selectByCode(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询某个角色的用户
|
||||||
|
*
|
||||||
|
* @param roleCode 角色code
|
||||||
|
* @return java.util.List<cn.iocoder.yudao.module.system.api.user.dto.UserDTO>
|
||||||
|
* @author vinjor-M
|
||||||
|
* @date 15:58 2024/10/26
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public List<UserDTO> selectByRoleCode(Long tenantId,String roleCode) {
|
||||||
|
return userRoleMapper.selectByRoleCode(tenantId,roleCode);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得自身的代理对象,解决 AOP 生效问题
|
* 获得自身的代理对象,解决 AOP 生效问题
|
||||||
*
|
*
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
<?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="cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper">
|
||||||
|
|
||||||
|
<select id="selectByRoleCode" resultType="cn.iocoder.yudao.module.system.api.user.dto.UserDTO">
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
system_users
|
||||||
|
WHERE
|
||||||
|
id IN (
|
||||||
|
SELECT
|
||||||
|
user_id
|
||||||
|
FROM
|
||||||
|
system_user_role sur
|
||||||
|
WHERE
|
||||||
|
sur.tenant_id = #{tenantId}
|
||||||
|
AND sur.role_id = ( SELECT id FROM system_role WHERE `code` = #{roleCode} ))
|
||||||
|
</select>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue
Block a user