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

View File

@ -1,16 +1,23 @@
package com.nflg.mobilebroken.cfs.controller; 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.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.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.repository.service.ITicketService;
import com.nflg.mobilebroken.starter.service.EmailService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.mail.MessagingException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@RestController @RestController
@Slf4j @Slf4j
@ -18,15 +25,38 @@ import javax.annotation.Resource;
public class TestController extends ControllerBase { public class TestController extends ControllerBase {
@Resource @Resource
private TicketEventPublisher ticketEventPublisher; private IDictionaryItemTranslateService dictionaryItemTranslateService;
@Resource @Resource
private ITicketService ticketService; private ITicketService ticketService;
@GetMapping("sss") @Resource
public ApiResult sss(){ private IAppUserService appUserService;
Ticket ticket =ticketService.getById(8);
ticketEventPublisher.publishTicketCreateEvent(ticket, MultilingualUtil.getLanguage(), MultilingualUtil.getZone()); @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(); 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()); AppUser user = appUserService.getById(ticket.getUserId());
String areaName; String areaName;
if (user.getIsPrimary()){ 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 { }else {
areaName = appAreaService.getById(user.getAreaId()).getName(); areaName = appAreaService.getById(user.getAreaId()).getName();
} }

View File

@ -18,8 +18,6 @@ import org.springframework.context.ApplicationEvent;
import javax.mail.MessagingException; import javax.mail.MessagingException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.List; import java.util.List;
@ -124,9 +122,10 @@ public class TicketCreateEvent extends ApplicationEvent implements ApplicationCo
} }
private String toTimeString(LocalDateTime time){ private String toTimeString(LocalDateTime time){
return time.atZone(ZoneOffset.UTC) // return time.atZone(ZoneOffset.UTC)
.withZoneSameInstant(ZoneId.of(zone)) // .withZoneSameInstant(ZoneId.of(zone))
.toLocalDateTime() // .toLocalDateTime()
.format(FORMATTER); // .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) { public Ticket assignmentTicket(AssignmentTicketRequest request) {
Ticket ticket = getById(request.getTicketId()); Ticket ticket = getById(request.getTicketId());
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单"); 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(); List<Integer> tickerMangagers = adminUserService.getTickerMangagers();
VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId()))) VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId())))
.throwMessage("你无权分派工单"); .throwMessage("你无权分派工单");
@ -172,11 +173,11 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
public Ticket completeTicket(Integer id) { public Ticket completeTicket(Integer id) {
Ticket ticket=getById(id); Ticket ticket=getById(id);
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.Processing.getState())) VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.Processing.getState()))
.throwMessage("工单状态不允许完成"); .throwMessage("非处理中状态不允许完成");
List<Integer> tickerMangagers = adminUserService.getTickerMangagers(); List<Integer> tickerMangagers = adminUserService.getTickerMangagers();
tickerMangagers.addAll(Arrays.stream(ticket.getHandle().split(",")).map(Integer::parseInt).collect(Collectors.toList())); tickerMangagers.addAll(Arrays.stream(ticket.getHandle().split(",")).map(Integer::parseInt).collect(Collectors.toList()));
VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId()))) VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId())))
.throwMessage("你无权添加处理人"); .throwMessage("你无权完成工单");
ticket.setState(TicketState.ProcessingCompleted.getState()); ticket.setState(TicketState.ProcessingCompleted.getState());
ticket.setCurrentHandle(AdminUserUtil.getUserId()); ticket.setCurrentHandle(AdminUserUtil.getUserId());
ticket.setUpdateTime(LocalDateTime.now()); ticket.setUpdateTime(LocalDateTime.now());
@ -189,7 +190,7 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
Ticket ticket = getById(request.getTicketId()); Ticket ticket = getById(request.getTicketId());
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单"); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单");
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState())) VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState()))
.throwMessage("工单状态不允许关闭"); .throwMessage("非处理完成状态不允许关闭");
VUtils.trueThrowBusinessError(!ticketEvaluateService.lambdaQuery() VUtils.trueThrowBusinessError(!ticketEvaluateService.lambdaQuery()
.eq(TicketEvaluate::getTicketId, request.getTicketId()) .eq(TicketEvaluate::getTicketId, request.getTicketId())
.exists()) .exists())

View File

@ -24,7 +24,7 @@
SELECT au.id SELECT au.id
FROM t_base_position p FROM t_base_position p
INNER JOIN admin_user au ON au.title_id=p.id 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=")"> <foreach collection="titleCodes" item="titleCode" separator="," open="(" close=")">
#{titleCode} #{titleCode}
</foreach> </foreach>

View File

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