From fc6434194c79f870234c8db31221aa187af3cad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 13 Feb 2025 22:33:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=80=E4=BA=9B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/SSEController.java | 7 ++-- .../admin/controller/TicketController.java | 17 +++++--- .../cfs/controller/AreaController.java | 18 ++++----- .../cfs/controller/SSEController.java | 6 +-- .../cfs/controller/TiketController.java | 3 +- .../common/pojo/request/AreaSaveRequest.java | 4 +- .../common/pojo/vo/ChatMessageVO.java | 40 +++++++++++++++++++ .../repository/service/IAppAreaService.java | 3 ++ .../repository/service/TicketChatService.java | 34 +++++++++++++++- .../service/impl/AppAreaServiceImpl.java | 23 +++++++++++ .../impl/AppUserApplyforServiceImpl.java | 7 ++-- .../service/impl/AppUserServiceImpl.java | 33 +++++++++++---- .../resources/mapper/AppMessageMapper.xml | 4 +- .../main/resources/mapper/DeviceMapper.xml | 26 ++++++------ .../main/resources/mapper/TicketMapper.xml | 11 ++++- 15 files changed, 178 insertions(+), 58 deletions(-) create mode 100644 nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ChatMessageVO.java diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/SSEController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/SSEController.java index 83203196..4172d463 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/SSEController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/SSEController.java @@ -3,7 +3,7 @@ package com.nflg.mobilebroken.admin.controller; import com.nflg.mobilebroken.admin.annotation.ApiMark; import com.nflg.mobilebroken.common.constant.STATE; import com.nflg.mobilebroken.common.exception.NflgException; -import com.nflg.mobilebroken.starter.service.impl.AdminSSEManagerService; +import com.nflg.mobilebroken.starter.service.impl.APPSSEManagerService; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -20,8 +20,9 @@ import java.io.IOException; @RequestMapping("/sse") public class SSEController extends ControllerBase { + @Resource - private AdminSSEManagerService adminSSEManagerService; + private APPSSEManagerService sseManagerService; /** * 建立sse连接 @@ -31,7 +32,7 @@ public class SSEController extends ControllerBase { @GetMapping(value = "connect", produces = MediaType.TEXT_EVENT_STREAM_VALUE) @ApiMark(moduleName = "连接", apiName = "SSE", isPublic = true) public SseEmitter connect(@RequestParam String userId) { - SseEmitter sse = adminSSEManagerService.connect(Integer.valueOf(userId)); + SseEmitter sse = sseManagerService.connect(Integer.valueOf(userId)); try { sse.send("您已连接"); } catch (IOException e) { diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index 6d4d45ae..53e3fea7 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -13,10 +13,7 @@ import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO; import com.nflg.mobilebroken.common.pojo.dto.SSEMessageDTO; import com.nflg.mobilebroken.common.pojo.request.*; -import com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO; -import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO; -import com.nflg.mobilebroken.common.pojo.vo.TicketInfoVO; -import com.nflg.mobilebroken.common.pojo.vo.TicketPdfVO; +import com.nflg.mobilebroken.common.pojo.vo.*; import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.EecExcelUtil; import com.nflg.mobilebroken.common.util.PageUtil; @@ -119,7 +116,15 @@ public class TicketController extends ControllerBase { d.setHandleBy(adminUsers.stream().map(AdminUser::getUserName).collect(Collectors.toList())); } AppUser primaryUser = appUserService.getPrimaryByCompanyId(d.getCompanyId()); - d.setPrimaryUserName(primaryUser.getName()); + if (Objects.nonNull(primaryUser)) { + d.setPrimaryUserName(primaryUser.getName()); + } + if (StrUtil.isNotBlank(d.getCqm())) { + AdminUser adminUser = adminUserService.getById(Integer.valueOf(d.getCqm())); + if (Objects.nonNull(adminUser)) { + d.setCqm(adminUser.getUserName()); + } + } return d; })); } @@ -313,7 +318,7 @@ public class TicketController extends ControllerBase { **/ @GetMapping("getChatMessages") @ApiMark(moduleName = "工单管理", apiName = "获取工单聊天记录") - public ApiResult> getChatMessages(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult> getChatMessages(@Valid @RequestParam @NotNull Integer ticketId) { return ApiResult.success(ticketChatService.getMessages(ticketId)); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AreaController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AreaController.java index 2a3fd66c..ff213eca 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AreaController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/AreaController.java @@ -9,15 +9,14 @@ import com.nflg.mobilebroken.common.pojo.request.AreaSearchRequest; import com.nflg.mobilebroken.common.pojo.request.EnableRequest; import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO; import com.nflg.mobilebroken.common.pojo.vo.AreaVO; -import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.repository.entity.AppArea; import com.nflg.mobilebroken.repository.service.IAppAreaService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; -import java.time.LocalDateTime; import java.util.List; +import java.util.Optional; /** * 区域相关接口 @@ -60,9 +59,10 @@ public class AreaController extends ControllerBase { **/ @PostMapping("saveArea") public ApiResult saveArea(@Valid @RequestBody AreaSaveRequest request){ - AppArea area=new AppArea().setId(request.getId()) + AppArea area = new AppArea() + .setId(request.getId()) .setName(request.getName()) - .setParentId(request.getParentId()); + .setParentId(Optional.ofNullable(request.getParentId()).orElse(0)); return ApiResult.success(appAreaService.saveOrUpdate(area)); } @@ -80,12 +80,8 @@ public class AreaController extends ControllerBase { * @param request 请求信息 **/ @PostMapping("changeAreaEnable") - public ApiResult changeAreaEnable(@Valid @RequestBody EnableRequest request){ - AppArea area=new AppArea() - .setId(request.getId()) - .setEnable(request.getEnable()) - .setUpdateBy(AppUserUtil.getUserName()) - .setUpdateTime(LocalDateTime.now()); - return ApiResult.success(appAreaService.updateById(area)); + public ApiResult changeAreaEnable(@Valid @RequestBody EnableRequest request) { + appAreaService.enable(request); + return ApiResult.success(); } } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/SSEController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/SSEController.java index 38d017df..ccd853e0 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/SSEController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/SSEController.java @@ -2,7 +2,7 @@ package com.nflg.mobilebroken.cfs.controller; import com.nflg.mobilebroken.common.constant.STATE; import com.nflg.mobilebroken.common.exception.NflgException; -import com.nflg.mobilebroken.starter.service.impl.APPSSEManagerService; +import com.nflg.mobilebroken.starter.service.impl.AdminSSEManagerService; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -25,7 +25,7 @@ import java.io.IOException; public class SSEController extends ControllerBase { @Resource - private APPSSEManagerService sseManagerService; + private AdminSSEManagerService adminSSEManagerService; /** * 建立sse连接 @@ -34,7 +34,7 @@ public class SSEController extends ControllerBase { */ @GetMapping(value = "connect",produces = MediaType.TEXT_EVENT_STREAM_VALUE) public SseEmitter connect(@RequestParam Integer userId) { - SseEmitter sse=sseManagerService.connect(userId); + SseEmitter sse = adminSSEManagerService.connect(userId); try { sse.send("您已连接"); } catch (IOException e) { diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java index ddacaf25..6e66d253 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java @@ -209,7 +209,6 @@ public class TiketController extends ControllerBase { .setAreaName(appArea.getName()) .setCompanyName(company.getAgencyCompanyName()) .setHandle(handle); - ; return ApiResult.success(vo); } @@ -219,7 +218,7 @@ public class TiketController extends ControllerBase { * @return 聊天记录 **/ @GetMapping("getChatMessages") - public ApiResult> getChatMessages(@Valid @RequestParam @NotNull Integer ticketId) { + public ApiResult> getChatMessages(@Valid @RequestParam @NotNull Integer ticketId) { return ApiResult.success(ticketChatService.getMessages(ticketId)); } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AreaSaveRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AreaSaveRequest.java index a7db9042..ef6c6d16 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AreaSaveRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AreaSaveRequest.java @@ -3,7 +3,6 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; @Data public class AreaSaveRequest { @@ -11,8 +10,7 @@ public class AreaSaveRequest { //区域id private Integer id; - //上级区域id,如果没有上级,则填0 - @NotNull(message = "上级区域id不能为空") + //上级区域id,如果为空则是一级区域 private Integer parentId; //区域名称 diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ChatMessageVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ChatMessageVO.java new file mode 100644 index 00000000..0b7f77e8 --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ChatMessageVO.java @@ -0,0 +1,40 @@ +package com.nflg.mobilebroken.common.pojo.vo; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +@Data +@Accessors(chain = true) +public class ChatMessageVO { + + private Long id; + + //来源 + private String from; + + // 发送者id + private Integer senderId; + + // 发送者名称 + private String senderName; + + // 发送者头像 + private String senderAvatar; + + // 消息内容 + private String content; + + // 附件列表 + private List attachments; + + //图片列表 + private List images; + + // 创建时间 + private String createTime; + + // 引用的消息 + private ChatMessageVO quote; +} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppAreaService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppAreaService.java index 38455db9..2bf4b602 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppAreaService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAppAreaService.java @@ -3,6 +3,7 @@ package com.nflg.mobilebroken.repository.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.request.AreaSearchRequest; +import com.nflg.mobilebroken.common.pojo.request.EnableRequest; import com.nflg.mobilebroken.common.pojo.vo.AreaVO; import com.nflg.mobilebroken.repository.entity.AppArea; @@ -21,4 +22,6 @@ public interface IAppAreaService extends IService { IPage search(AreaSearchRequest request); List getAllhildrens(Integer areaId); + + void enable(EnableRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/TicketChatService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/TicketChatService.java index 6723b636..ce45a068 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/TicketChatService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/TicketChatService.java @@ -1,7 +1,10 @@ package com.nflg.mobilebroken.repository.service; +import cn.hutool.core.date.DatePattern; import com.nflg.mobilebroken.common.pojo.dto.ChatMessageDTO; import com.nflg.mobilebroken.common.pojo.dto.TicketChatDTO; +import com.nflg.mobilebroken.common.pojo.vo.ChatMessageVO; +import com.nflg.mobilebroken.common.util.MultilingualUtil; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; @@ -9,9 +12,12 @@ import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.Collections; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; @Service public class TicketChatService { @@ -23,13 +29,37 @@ public class TicketChatService { mongoTemplate.save(ticketChatDTO); } - public List getMessages(Integer ticketId) { + public List getMessages(Integer ticketId) { Query query = new Query(Criteria.where("ticketId").is(ticketId)); TicketChatDTO ticketChatDTO = mongoTemplate.findOne(query, TicketChatDTO.class); if (Objects.isNull(ticketChatDTO)) { return Collections.emptyList(); } else { - return ticketChatDTO.getMessages(); + String zone = MultilingualUtil.getZone(); + ZoneId zoneId = ZoneId.of(Objects.isNull(zone) ? "Asia/Shanghai" : zone); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).withZone(zoneId); + List messages = ticketChatDTO.getMessages(); + return messages.stream().map(m -> new ChatMessageVO() + .setId(m.getId()) + .setFrom(m.getFrom()) + .setSenderId(m.getSenderId()) + .setSenderName(m.getSenderName()) + .setSenderAvatar(m.getSenderAvatar()) + .setContent(m.getContent()) + .setAttachments(m.getAttachments()) + .setImages(m.getImages()) + .setCreateTime(formatter.format(m.getCreateTime())) + .setQuote(Objects.isNull(m.getQuote()) ? null : new ChatMessageVO() + .setId(m.getId()) + .setFrom(m.getFrom()) + .setSenderId(m.getSenderId()) + .setSenderName(m.getSenderName()) + .setSenderAvatar(m.getSenderAvatar()) + .setContent(m.getContent()) + .setAttachments(m.getAttachments()) + .setImages(m.getImages())) + .setCreateTime(formatter.format(m.getCreateTime()))) + .collect(Collectors.toList()); } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java index 41f050bc..55848536 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppAreaServiceImpl.java @@ -8,12 +8,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.pojo.request.AreaSearchRequest; +import com.nflg.mobilebroken.common.pojo.request.EnableRequest; import com.nflg.mobilebroken.common.pojo.vo.AreaVO; import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.repository.entity.AppArea; import com.nflg.mobilebroken.repository.mapper.AppAreaMapper; import com.nflg.mobilebroken.repository.service.IAppAreaService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; @@ -98,6 +100,27 @@ public class AppAreaServiceImpl extends ServiceImpl impl return list; } + @Transactional + @Override + public void enable(EnableRequest request) { + if (request.getEnable()) { + lambdaUpdate() + .set(AppArea::getEnable, true) + .set(AppArea::getUpdateBy, AppUserUtil.getUserName()) + .set(AppArea::getUpdateTime, LocalDateTime.now()) + .eq(AppArea::getId, request.getId()) + .update(); + } else { + List childrens = getAllhildrens(request.getId()); + lambdaUpdate() + .set(AppArea::getEnable, false) + .set(AppArea::getUpdateBy, AppUserUtil.getUserName()) + .set(AppArea::getUpdateTime, LocalDateTime.now()) + .in(AppArea::getId, childrens) + .update(); + } + } + private List getChildrens(Integer areaId) { List areas = lambdaQuery() .eq(AppArea::getEnable, true) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java index 4682b3a3..f6167913 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserApplyforServiceImpl.java @@ -12,6 +12,7 @@ import com.nflg.mobilebroken.common.pojo.vo.AppUserApplyforInfoVO; import com.nflg.mobilebroken.common.pojo.vo.AppUserApplyforVO; import com.nflg.mobilebroken.common.pojo.vo.AppUserVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.AppArea; import com.nflg.mobilebroken.repository.entity.AppUser; @@ -73,7 +74,7 @@ public class AppUserApplyforServiceImpl extends ServiceImpl impl public void disable(Integer userId) { AppUser user=new AppUser() .setId(userId) - .setUpdateBy(AdminUserUtil.getUserId()) + .setUpdateBy(AppUserUtil.getUserId()) .setUpdateTime(LocalDateTime.now()); updateById(user); } @@ -248,12 +248,31 @@ public class AppUserServiceImpl extends ServiceImpl impl @Override public void enable(EnableAppUserRequest request) { - lambdaUpdate() - .set(AppUser::getState, request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState()) -// .set(AppUser::getUpdateBy, AdminUserUtil.getUserId()) - .set(AppUser::getUpdateTime, LocalDateTime.now()) - .in(AppUser::getId, request.getIds()) - .update(); + if (request.getEnable()) { + lambdaUpdate() + .set(AppUser::getState, UserState.Activated.getState()) + .set(AppUser::getUpdateTime, LocalDateTime.now()) + .in(AppUser::getId, request.getIds()) + .update(); + } else { + lambdaUpdate() + .set(AppUser::getState, UserState.Disabled.getState()) + .set(AppUser::getUpdateTime, LocalDateTime.now()) + .in(AppUser::getId, request.getIds()) + .update(); + //禁用子账号 + List companyIds = listByIds(request.getIds()) + .stream() + .filter(AppUser::getIsPrimary) + .flatMap(u -> Arrays.stream(u.getCompanyId().split(","))) + .collect(Collectors.toList()); + lambdaUpdate() + .set(AppUser::getState, UserState.Disabled.getState()) + .set(AppUser::getUpdateTime, LocalDateTime.now()) + .eq(AppUser::getIsPrimary, false) + .in(AppUser::getCompanyId, companyIds) + .update(); + } } @Override diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AppMessageMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AppMessageMapper.xml index be40aaaf..1ae86be3 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AppMessageMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AppMessageMapper.xml @@ -8,7 +8,7 @@ INNER JOIN ticket t ON m.ticket_id=t.id INNER JOIN app_user u ON t.user_id=u.id WHERE m.is_read=0 AND m.user_id=#{userId} - ORDER BY m.id + ORDER BY m.create_time DESC diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml index 7f26c5be..8c424649 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml @@ -52,19 +52,17 @@ #{companyId} - - - and d.device_no LIKE concat('%', #{request.deviceNo}, '%') - - - and d.model_no LIKE concat('%', #{request.modelNo}, '%') - - - and d.shipment_date >= #{request.startTime} - - - and d.shipment_date <= #{request.endTime} - - + + and d.device_no LIKE concat('%', #{request.deviceNo}, '%') + + + and d.model_no LIKE concat('%', #{request.modelNo}, '%') + + + and d.shipment_date >= #{request.startTime} + + + and d.shipment_date <= #{request.endTime} + diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml index a2f26a9d..77fabd19 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml @@ -78,6 +78,7 @@ LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=0 WHERE t.user_id=#{userId} + ORDER BY t.create_time DESC