From 2dc1fed2e8ee747123c1c901d365ccd803e69484 Mon Sep 17 00:00:00 2001 From: dzl <863620989@qq.com> Date: Thu, 22 May 2025 15:58:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=A2=E5=8D=95=E6=95=85?= =?UTF-8?q?=E9=9A=9C=E4=B8=8A=E6=8A=A5=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EbikeUserFaultreportController.java | 35 +++++++--- .../model/dto/req/UserOrderFaultQueryDto.java | 28 ++++++++ .../model/dto/res}/OrderFaultReport.java | 15 +++-- .../model/entity/EbikeUserFaultreport.java | 6 ++ .../service/EbikeUserFaultreportService.java | 10 +++ .../impl/EbikeUserFaultreportServiceImpl.java | 67 +++++++++++++++---- 6 files changed, 134 insertions(+), 27 deletions(-) create mode 100644 ebike-orders/src/main/java/com/cdzy/orders/model/dto/req/UserOrderFaultQueryDto.java rename {ebike-payment/src/main/java/com/cdzy/payment/model/dto => ebike-orders/src/main/java/com/cdzy/orders/model/dto/res}/OrderFaultReport.java (66%) diff --git a/ebike-orders/src/main/java/com/cdzy/orders/controller/EbikeUserFaultreportController.java b/ebike-orders/src/main/java/com/cdzy/orders/controller/EbikeUserFaultreportController.java index 915775f4..b8898731 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/controller/EbikeUserFaultreportController.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/controller/EbikeUserFaultreportController.java @@ -4,8 +4,11 @@ import com.cdzy.common.model.JsonResult; import com.cdzy.common.model.EbikeUserFaultreportDto; import com.cdzy.common.model.EbikeUserFaultreportQueryDto; import com.cdzy.common.model.EbikeOrderAttachmentFileDto; +import com.cdzy.orders.model.dto.req.UserOrderFaultQueryDto; +import com.cdzy.orders.model.dto.res.OrderFaultReport; import com.cdzy.orders.service.EbikeOrderAttachmentFileService; import com.cdzy.orders.uitls.MinioUtil; +import com.mybatisflex.core.paginate.Page; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import org.springframework.beans.factory.annotation.Autowired; @@ -53,7 +56,7 @@ public class EbikeUserFaultreportController { @PostMapping("remove") public JsonResult remove(@RequestParam(name = "id") String id) { boolean r = ebikeUserFaultreportService.deleteById(id); - return r? JsonResult.success() : JsonResult.failed("删除用户上报故障信息失败"); + return r ? JsonResult.success() : JsonResult.failed("删除用户上报故障信息失败"); } /** @@ -65,7 +68,7 @@ public class EbikeUserFaultreportController { @PostMapping("update") public JsonResult update(@RequestBody EbikeUserFaultreport ebikeUserFaultreport) { boolean r = ebikeUserFaultreportService.updateById(ebikeUserFaultreport); - return r? JsonResult.success() : JsonResult.failed("更新用户上报故障信息失败"); + return r ? JsonResult.success() : JsonResult.failed("更新用户上报故障信息失败"); } /** @@ -83,7 +86,7 @@ public class EbikeUserFaultreportController { return ebikeUserFaultreport; }).toList(); boolean r = ebikeUserFaultreportService.updateBatch(ebikeUserFaultreportList); - return r? JsonResult.success() : JsonResult.failed("批量更新用户上报故障信息失败"); + return r ? JsonResult.success() : JsonResult.failed("批量更新用户上报故障信息失败"); } /** @@ -102,11 +105,11 @@ public class EbikeUserFaultreportController { BeanUtils.copyProperties(entity, dto); // 获取附件信息 List attachmentFiles = ebikeOrderAttachmentFileService.getFilesByBusiId(id) - .stream().map(attachmentFile ->{ - EbikeOrderAttachmentFileDto attachmentFileDto = new EbikeOrderAttachmentFileDto(); - BeanUtils.copyProperties(attachmentFile, attachmentFileDto); + .stream().map(attachmentFile -> { + EbikeOrderAttachmentFileDto attachmentFileDto = new EbikeOrderAttachmentFileDto(); + BeanUtils.copyProperties(attachmentFile, attachmentFileDto); attachmentFileDto.setUrl(minioUtil.getBucketFileUrl(attachmentFile.getFileKey())); - return attachmentFileDto; + return attachmentFileDto; }).toList(); dto.setAttachmentFiles(attachmentFiles); return JsonResult.success(dto); @@ -126,6 +129,7 @@ public class EbikeUserFaultreportController { } return JsonResult.success(list); } + /** * 根据用户上报故障信息userId获取列表信息。 * @@ -133,9 +137,24 @@ public class EbikeUserFaultreportController { * @return 用户上报故障信息userId获取列表信息 */ @PostMapping("getFaultListByWeChatUser") - public JsonResult getFaultListByWeChatUser(@RequestBody Map params) { + public JsonResult getFaultListByWeChatUser(@RequestBody Map params) { List faultListByWeChatUser = ebikeUserFaultreportService.getFaultListByWeChatUser(params); return JsonResult.success(faultListByWeChatUser); } + /** + * 获取用户订单故障上报记录列表。 + * + * @param userOrderFaultQueryDto + * @return + */ + @PostMapping("getUserOrderFaultRecord") + public JsonResult getUserOrderFaultRecord(@RequestBody UserOrderFaultQueryDto userOrderFaultQueryDto) { + try { + Page orderFaultReports = ebikeUserFaultreportService.getUserOrderFaultRecord(userOrderFaultQueryDto); + return JsonResult.success(orderFaultReports); + } catch (Exception e) { + return JsonResult.failed("getUserOrderFaultRecord===>出错了"); + } + } } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/model/dto/req/UserOrderFaultQueryDto.java b/ebike-orders/src/main/java/com/cdzy/orders/model/dto/req/UserOrderFaultQueryDto.java new file mode 100644 index 00000000..ca384b57 --- /dev/null +++ b/ebike-orders/src/main/java/com/cdzy/orders/model/dto/req/UserOrderFaultQueryDto.java @@ -0,0 +1,28 @@ +package com.cdzy.orders.model.dto.req; + +import com.cdzy.common.model.PageParam; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author:Ding + * @ClassName:UserOrderFaultQueryDto + * @Package:com.cdzy.orders.model.dto.req.UserOrderFaultQueryDto + * @Description:用户订单故障上报查询参数 + * @CreateDate:2025年05月22日 + * @Version:V1.0 + **/ +@Data +public class UserOrderFaultQueryDto { + + /** + * 订单编号 + */ + private String orderId; + + /** + * 分页参数 + */ + @NotNull(message = "分页参数不能为空") + private PageParam pageParam; +} diff --git a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/OrderFaultReport.java b/ebike-orders/src/main/java/com/cdzy/orders/model/dto/res/OrderFaultReport.java similarity index 66% rename from ebike-payment/src/main/java/com/cdzy/payment/model/dto/OrderFaultReport.java rename to ebike-orders/src/main/java/com/cdzy/orders/model/dto/res/OrderFaultReport.java index 2bab7d7f..67f9b2f7 100644 --- a/ebike-payment/src/main/java/com/cdzy/payment/model/dto/OrderFaultReport.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/model/dto/res/OrderFaultReport.java @@ -1,8 +1,9 @@ -package com.cdzy.payment.model.dto; +package com.cdzy.orders.model.dto.res; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; /** * @author:Ding @@ -15,10 +16,12 @@ import java.time.LocalDateTime; @Data public class OrderFaultReport { + private String faultReportId; + /** * 反馈用户 */ - private String userName; + private String reportUser; /** * 坐标 @@ -28,20 +31,20 @@ public class OrderFaultReport { /** * 故障类型 */ - private String faultType; + private String faultPart; /** * 图片 */ - private String image; + private List image; /** * 备注 */ - private String remark; + private String faultDescription; /** * 创建时间 */ - private LocalDateTime createTime; + private LocalDateTime reportAt; } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/model/entity/EbikeUserFaultreport.java b/ebike-orders/src/main/java/com/cdzy/orders/model/entity/EbikeUserFaultreport.java index c8a4aab8..47250aed 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/model/entity/EbikeUserFaultreport.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/model/entity/EbikeUserFaultreport.java @@ -3,6 +3,7 @@ package com.cdzy.orders.model.entity; import com.mybatisflex.annotation.Column; import com.mybatisflex.annotation.Id; import com.mybatisflex.annotation.Table; + import java.io.Serializable; import java.time.LocalDateTime; @@ -107,4 +108,9 @@ public class EbikeUserFaultreport implements Serializable { */ private String workorderId; + /** + * 订单编号 + */ + private String orderCode; + } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/service/EbikeUserFaultreportService.java b/ebike-orders/src/main/java/com/cdzy/orders/service/EbikeUserFaultreportService.java index 1f78c032..b710ee63 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/service/EbikeUserFaultreportService.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/service/EbikeUserFaultreportService.java @@ -2,6 +2,9 @@ package com.cdzy.orders.service; import com.cdzy.common.model.EbikeUserFaultreportQueryDto; import com.cdzy.common.model.EbikeUserFaultreportDto; +import com.cdzy.orders.model.dto.req.UserOrderFaultQueryDto; +import com.cdzy.orders.model.dto.res.OrderFaultReport; +import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; import com.cdzy.orders.model.entity.EbikeUserFaultreport; @@ -46,4 +49,11 @@ public interface EbikeUserFaultreportService extends IService getFaultListByWeChatUser( Map params); + + /** + * + * @param userOrderFaultQueryDto + * @return + */ + Page getUserOrderFaultRecord(UserOrderFaultQueryDto userOrderFaultQueryDto); } diff --git a/ebike-orders/src/main/java/com/cdzy/orders/service/impl/EbikeUserFaultreportServiceImpl.java b/ebike-orders/src/main/java/com/cdzy/orders/service/impl/EbikeUserFaultreportServiceImpl.java index 96de128d..fa5d326b 100644 --- a/ebike-orders/src/main/java/com/cdzy/orders/service/impl/EbikeUserFaultreportServiceImpl.java +++ b/ebike-orders/src/main/java/com/cdzy/orders/service/impl/EbikeUserFaultreportServiceImpl.java @@ -4,12 +4,17 @@ import cn.hutool.core.map.MapUtil; import com.cdzy.common.model.EbikeOrderAttachmentFileDto; import com.cdzy.common.model.EbikeUserFaultreportQueryDto; import com.cdzy.common.model.EbikeUserFaultreportDto; +import com.cdzy.orders.mapper.EbikeOrderAttachmentFileMapper; +import com.cdzy.orders.model.dto.req.UserOrderFaultQueryDto; +import com.cdzy.orders.model.dto.res.EbikeUserDto; +import com.cdzy.orders.model.dto.res.OrderFaultReport; import com.cdzy.orders.model.entity.EbikeAttachefileAssociated; import com.cdzy.orders.model.entity.EbikeOrderAttachmentFile; import com.cdzy.orders.service.EbikeAttachefileAssociatedService; import com.cdzy.orders.service.EbikeOrderAttachmentFileService; import com.cdzy.orders.uitls.MinioUtil; import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryMethods; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.cdzy.orders.model.entity.EbikeUserFaultreport; @@ -22,11 +27,14 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Map; import static com.cdzy.orders.model.entity.table.EbikeAttachefileAssociatedTableDef.EBIKE_ATTACHEFILE_ASSOCIATED; +import static com.cdzy.orders.model.entity.table.EbikeOrderAttachmentFileTableDef.EBIKE_ORDER_ATTACHMENT_FILE; import static com.cdzy.orders.model.entity.table.EbikeUserFaultreportTableDef.EBIKE_USER_FAULTREPORT; +import static com.cdzy.orders.model.entity.table.EbikeUserTableDef.EBIKE_USER; /** * 用户上报故障信息 服务层实现。 @@ -36,7 +44,7 @@ import static com.cdzy.orders.model.entity.table.EbikeUserFaultreportTableDef.EB */ @Slf4j @Service -public class EbikeUserFaultreportServiceImpl extends ServiceImpl implements EbikeUserFaultreportService{ +public class EbikeUserFaultreportServiceImpl extends ServiceImpl implements EbikeUserFaultreportService { @Resource private EbikeAttachefileAssociatedService ebikeAttachmentFileAssosiatedService; @@ -47,6 +55,7 @@ public class EbikeUserFaultreportServiceImpl extends ServiceImpl attachmentFiles = ebikeOrderAttachmentFileService.getFilesByBusiId(id); if (!attachmentFiles.isEmpty()) { @@ -101,17 +110,17 @@ public class EbikeUserFaultreportServiceImpl extends ServiceImpl list(EbikeUserFaultreportQueryDto queryParam) { QueryWrapper query = QueryWrapper.create() .where(EBIKE_USER_FAULTREPORT.BIKE_CODE.eq(queryParam.getBikeCode())); - if(queryParam.getWorkorderId()==null||queryParam.getWorkorderId().isEmpty()){ + if (queryParam.getWorkorderId() == null || queryParam.getWorkorderId().isEmpty()) { query.and(EBIKE_USER_FAULTREPORT.WORKORDER_ID.isNull()); - }else{ + } else { query.and(EBIKE_USER_FAULTREPORT.WORKORDER_ID.eq(queryParam.getWorkorderId())); } - if(queryParam.getFaultPart()!=null&&!queryParam.getFaultPart().isEmpty()){ + if (queryParam.getFaultPart() != null && !queryParam.getFaultPart().isEmpty()) { query.and(EBIKE_USER_FAULTREPORT.FAULT_PART.like(queryParam.getFaultPart())); } List list = list(query); - if (list==null) { + if (list == null) { return null; } List dtoList = list.stream().map(entity -> { @@ -119,7 +128,7 @@ public class EbikeUserFaultreportServiceImpl extends ServiceImpl attachmentFiles = ebikeOrderAttachmentFileService.getFilesByBusiId(dto.getFaultReportId()) - .stream().map(attachmentFile ->{ + .stream().map(attachmentFile -> { EbikeOrderAttachmentFileDto attachmentFileDto = new EbikeOrderAttachmentFileDto(); BeanUtils.copyProperties(attachmentFile, attachmentFileDto); attachmentFileDto.setFileBucket(MinioUtil.BUCKET_ORDERS); @@ -138,14 +147,46 @@ public class EbikeUserFaultreportServiceImpl extends ServiceImpl getFaultListByWeChatUser(Map params) { - String userId= MapUtil.getStr(params,"userId"); - Map pageParam = ( Map)params.get("pageParam"); - Integer pageNum= MapUtil.getInt(pageParam,"pageNum"); - Integer pageSize= MapUtil.getInt(pageParam,"pageSize"); + public List getFaultListByWeChatUser(Map params) { + String userId = MapUtil.getStr(params, "userId"); + Map pageParam = (Map) params.get("pageParam"); + Integer pageNum = MapUtil.getInt(pageParam, "pageNum"); + Integer pageSize = MapUtil.getInt(pageParam, "pageSize"); QueryWrapper query = QueryWrapper.create(); - query.eq("report_user",userId); + query.eq("report_user", userId); Page paginate = ebikeUserFaultreportMapper.paginate(pageNum, pageSize, query); return paginate.getRecords(); } + + @Override + public Page getUserOrderFaultRecord(UserOrderFaultQueryDto userOrderFaultQueryDto) { + + QueryWrapper query = QueryWrapper.create() + .select(EBIKE_USER_FAULTREPORT.FAULT_PART, EBIKE_USER_FAULTREPORT.REPORT_AT, + EBIKE_USER_FAULTREPORT.FAULT_DESCRIPTION, EBIKE_USER.NICKNAME.as("report_user"), + QueryMethods.concat(EBIKE_USER_FAULTREPORT.LONGITUDE, + EBIKE_USER_FAULTREPORT.LATITUDE).as("coordinate"), + EBIKE_USER_FAULTREPORT.FAULT_REPORT_ID) + .leftJoin(EBIKE_USER).on(EBIKE_USER_FAULTREPORT.REPORT_USER.eq(EBIKE_USER.USER_ID)) + .where(EBIKE_USER_FAULTREPORT.ORDER_CODE.eq(userOrderFaultQueryDto.getOrderId())); + + Page page = userOrderFaultQueryDto.getPageParam().getPage(); + Page orderFaultReportPage = ebikeUserFaultreportMapper.paginateAs(page, query, OrderFaultReport.class); + List records = orderFaultReportPage.getRecords(); + for (OrderFaultReport record : records) { + QueryWrapper file = QueryWrapper.create() + .leftJoin(EBIKE_ATTACHEFILE_ASSOCIATED) + .on(EBIKE_ATTACHEFILE_ASSOCIATED.ATTACHE_FILE + .eq(EBIKE_ORDER_ATTACHMENT_FILE.FILE_KEY)) + .where(EBIKE_ATTACHEFILE_ASSOCIATED.BUSI_ID.eq(record.getFaultReportId())); + List list = ebikeOrderAttachmentFileService.list(file); + List fileUrl = new ArrayList<>(); + for (EbikeOrderAttachmentFile ebikeOrderAttachmentFile : list) { + String url = minioUtil.getBucketFileUrl(ebikeOrderAttachmentFile.getFileKey()); + fileUrl.add(url); + } + record.setImage(fileUrl); + } + return orderFaultReportPage; + } }