Compare commits

...

3 Commits

Author SHA1 Message Date
xiaofajia
ffbf0130d6 预约时通知服务顾问 2024-11-06 16:01:49 +08:00
xiaofajia
2a182b0614 Merge branch 'repair' of http://122.51.230.86:3000/dianliang/lanan-system into repair 2024-11-06 15:07:19 +08:00
xiaofajia
8bd53b225c 暂提 2024-11-06 15:07:08 +08:00
2 changed files with 40 additions and 3 deletions

View File

@ -5,6 +5,7 @@ import cn.iocoder.yudao.common.RepairRoleEnum;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
import cn.iocoder.yudao.module.app.controller.admin.NotifyMessageSocket;
import cn.iocoder.yudao.module.base.entity.RepairWorker;
import cn.iocoder.yudao.module.base.mapper.RepairWorkerMapper;
@ -223,7 +224,7 @@ public class RepairWorkerServiceImpl extends ServiceImpl<RepairWorkerMapper, Rep
public void sentMessage(Long userId, String text) {
try {
//获取当前登录用户
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
// 准备发送参数
Map<String, Object> templateParams = new HashMap<>();
// 发送模版内容
@ -232,8 +233,9 @@ public class RepairWorkerServiceImpl extends ServiceImpl<RepairWorkerMapper, Rep
sendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
.setUserId(userId)
.setTemplateCode(TICKET_EMPLOY).setTemplateParams(templateParams));
//发送语音提醒
notifyMessageSocket.sendMessage(text, loginUser.getTenantId().toString(), userId.toString());
//发送语音提醒---小李---通过租户上下文去取租户ID
// notifyMessageSocket.sendMessage(text, loginUser.getTenantId().toString(), userId.toString());
notifyMessageSocket.sendMessage(text, TenantContextHolder.getRequiredTenantId().toString(), userId.toString());
} catch (IOException e) {
e.printStackTrace();
}

View File

@ -3,10 +3,13 @@ package cn.iocoder.yudao.module.booking.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.common.RepairRoleEnum;
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.context.TenantContextHolder;
import cn.iocoder.yudao.module.app.booking.vo.BookingQueryVO;
import cn.iocoder.yudao.module.base.service.RepairWorkerService;
import cn.iocoder.yudao.module.booking.entity.DlRepairBooking;
import cn.iocoder.yudao.module.booking.mapper.DlRepairBookingMapper;
import cn.iocoder.yudao.module.booking.service.DlRepairBookingService;
@ -23,16 +26,19 @@ import cn.iocoder.yudao.module.system.api.service.dto.ServicePackageDto;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.catalina.User;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -63,6 +69,9 @@ public class DlRepairBookingServiceImpl extends ServiceImpl<DlRepairBookingMappe
@Autowired
private AdminUserApi adminUserApi;
@Resource
private RepairWorkerService repairWorkerService;
/**
* 维修预约表 新增修改
*
@ -71,7 +80,33 @@ public class DlRepairBookingServiceImpl extends ServiceImpl<DlRepairBookingMappe
* @param repairBookingRespVO 预约对象
**/
@Override
@DSTransactional
public void updateBooking(DlRepairBookingRespVO repairBookingRespVO){
// 构建消息
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
List<DictDataRespDTO> dataList = dictDataApi.getDictDataList("repair_type");
DictDataRespDTO dictDataRespDTO = dataList.stream().filter(item -> item.getValue().equals(repairBookingRespVO.getRepairType())).findFirst().orElse(null);
String message = String.format(
"%s(%s)预约了%s的%s",
repairBookingRespVO.getUserName(),
repairBookingRespVO.getUserMobile(),
formatter.format(repairBookingRespVO.getBookingTime()),
dictDataRespDTO != null ? dictDataRespDTO.getLabel() : "维修保养"
);
// 选择了服务顾问
if (ObjectUtil.isNotEmpty(repairBookingRespVO.getAdviserId())){
// 发送消息通知
repairWorkerService.sentMessage(Long.valueOf(repairBookingRespVO.getAdviserId()), message);
}else {
// 没选服务顾问
// 获取所有的服务顾问
List<UserDTO> allServicer = getAllServicer(TenantContextHolder.getRequiredTenantId());
// 发送消息通知
allServicer.forEach(item -> repairWorkerService.sentMessage(item.getId(), message));
}
// 正常的新增修改
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
Optional.ofNullable(loginUserId).ifPresent(repairBookingRespVO::setUserId);
repairBookingRespVO.setBookingStatus("01");