fix: 修复一些问题

This commit is contained in:
曹鹏飞 2025-03-06 11:31:58 +08:00
parent ba7c4f2a34
commit 1a42618421
7 changed files with 59 additions and 25 deletions

View File

@ -229,7 +229,7 @@ public class TicketController extends ControllerBase {
}
}
if (CollectionUtil.isNotEmpty(item.getChildren())) {
item.getChildren().removeIf(child -> !child.getSelected());
item.getChildren().removeIf(child -> !Objects.equals(child.getSelected(),true));
}
});
vo.getServiceEvaluation().removeIf(item -> !item.getSelected());
@ -246,10 +246,10 @@ public class TicketController extends ControllerBase {
}
}
if (CollectionUtil.isNotEmpty(item.getChildren())) {
item.getChildren().removeIf(child -> !child.getSelected());
item.getChildren().removeIf(child ->!Objects.equals(child.getSelected(),true));
}
});
vo.getExperienceEvaluation().removeIf(item -> !item.getSelected());
vo.getExperienceEvaluation().removeIf(item -> !Objects.equals(item.getSelected(),true));
return new TicketEvaluateVO()
.setScore(ticketEvaluate.getScore())
.setFeedback(ticketEvaluate.getFeedback())
@ -290,6 +290,7 @@ public class TicketController extends ControllerBase {
ticketChatService.addMessage(ticket.getId(), message);
//推送消息
ssePushService.sendTicketMessageToApp(ticket.getId(),message);
ssePushService.sendTicketMessageToAdmin(ticket.getId(),message);
return ApiResult.success();
}

View File

@ -1,16 +1,23 @@
package com.nflg.mobilebroken.cfs.controller;
import com.nflg.mobilebroken.cfs.publisher.TicketEventPublisher;
import cn.hutool.core.date.DatePattern;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.util.MultilingualUtil;
import com.nflg.mobilebroken.repository.entity.AppUser;
import com.nflg.mobilebroken.repository.entity.Ticket;
import com.nflg.mobilebroken.repository.service.IAppUserService;
import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService;
import com.nflg.mobilebroken.repository.service.ITicketService;
import com.nflg.mobilebroken.starter.service.EmailService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@RestController
@Slf4j
@ -18,15 +25,38 @@ import javax.annotation.Resource;
public class TestController extends ControllerBase {
@Resource
private TicketEventPublisher ticketEventPublisher;
private IDictionaryItemTranslateService dictionaryItemTranslateService;
@Resource
private ITicketService ticketService;
@GetMapping("sss")
public ApiResult sss(){
Ticket ticket =ticketService.getById(8);
ticketEventPublisher.publishTicketCreateEvent(ticket, MultilingualUtil.getLanguage(), MultilingualUtil.getZone());
@Resource
private IAppUserService appUserService;
@Resource
private EmailService emailService;
@GetMapping("sendEmail")
public ApiResult sendEmail() throws MessagingException {
Ticket ticket =ticketService.getById(1);
AppUser appUser=appUserService.getById(ticket.getUserId());
String subject=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_TITLE_TICKET_CREATE,Constant.DEFAULT_LANGUAGE_CODE);
String content=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_CONTENT_TICKET_NOTIFY,Constant.DEFAULT_LANGUAGE_CODE)
.replace("${no}",ticket.getNo())
.replace("${title}",ticket.getTitle())
.replace("${createUser}",appUser.getName())
.replace("${handleUser}","")
.replace("${createTime}",toTimeString(ticket.getCreateTime()))
.replace("${msg}",subject);
emailService.sendEmail("rakor@qq.com",subject,content);
return ApiResult.success();
}
private String toTimeString(LocalDateTime time){
// return time.atZone(ZoneOffset.UTC)
// .withZoneSameInstant(ZoneId.of(zone))
// .toLocalDateTime()
// .format(FORMATTER);
return time.format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN));
}
}

View File

@ -189,7 +189,7 @@ public class TiketController extends ControllerBase {
AppUser user = appUserService.getById(ticket.getUserId());
String areaName;
if (user.getIsPrimary()){
areaName=adminAreaService.getById(user.getAreaId()).getAreaName();
areaName=StrUtil.join(",",customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())));
}else {
areaName = appAreaService.getById(user.getAreaId()).getName();
}

View File

@ -18,8 +18,6 @@ import org.springframework.context.ApplicationEvent;
import javax.mail.MessagingException;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.List;
@ -124,9 +122,10 @@ public class TicketCreateEvent extends ApplicationEvent implements ApplicationCo
}
private String toTimeString(LocalDateTime time){
return time.atZone(ZoneOffset.UTC)
.withZoneSameInstant(ZoneId.of(zone))
.toLocalDateTime()
.format(FORMATTER);
// return time.atZone(ZoneOffset.UTC)
// .withZoneSameInstant(ZoneId.of(zone))
// .toLocalDateTime()
// .format(FORMATTER);
return time.format(FORMATTER);
}
}

View File

@ -119,7 +119,8 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
public Ticket assignmentTicket(AssignmentTicketRequest request) {
Ticket ticket = getById(request.getTicketId());
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单");
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.PendingProcessing.getState())).throwMessage("工单状态异常");
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.PendingProcessing.getState()))
.throwMessage("非待处理状态不能分派工单");
List<Integer> tickerMangagers = adminUserService.getTickerMangagers();
VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId())))
.throwMessage("你无权分派工单");
@ -172,11 +173,11 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
public Ticket completeTicket(Integer id) {
Ticket ticket=getById(id);
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.Processing.getState()))
.throwMessage("工单状态不允许完成");
.throwMessage("非处理中状态不允许完成");
List<Integer> tickerMangagers = adminUserService.getTickerMangagers();
tickerMangagers.addAll(Arrays.stream(ticket.getHandle().split(",")).map(Integer::parseInt).collect(Collectors.toList()));
VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId())))
.throwMessage("你无权添加处理人");
.throwMessage("你无权完成工单");
ticket.setState(TicketState.ProcessingCompleted.getState());
ticket.setCurrentHandle(AdminUserUtil.getUserId());
ticket.setUpdateTime(LocalDateTime.now());
@ -189,7 +190,7 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
Ticket ticket = getById(request.getTicketId());
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单");
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState()))
.throwMessage("工单状态不允许关闭");
.throwMessage("非处理完成状态不允许关闭");
VUtils.trueThrowBusinessError(!ticketEvaluateService.lambdaQuery()
.eq(TicketEvaluate::getTicketId, request.getTicketId())
.exists())

View File

@ -24,7 +24,7 @@
SELECT au.id
FROM t_base_position p
INNER JOIN admin_user au ON au.title_id=p.id
WHERE p.position_code IN
WHERE au.state=1 AND au.is_del=0 AND p.position_code IN
<foreach collection="titleCodes" item="titleCode" separator="," open="(" close=")">
#{titleCode}
</foreach>

View File

@ -215,10 +215,13 @@
</select>
<select id="getAdminFavorites" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
SELECT t.id,t.no,t.title
SELECT t.id, t.no, t.title
FROM ticket_follow tf
INNER JOIN ticket t ON tf.ticket_id=t.id
WHERE tf.`from`=1 AND tf.user_id=#{userId} AND tf.favorites_id=#{favoritesId}
INNER JOIN ticket t ON tf.ticket_id = t.id
WHERE tf.`from` = 1
AND tf.user_id = #{userId}
AND tf.favorites_id = #{favoritesId}
ORDER BY t.id DESC
</select>
<select id="searchByFavouritesId" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">