From f28da0f4705921b88d94c4531fa89753c4bb9f52 Mon Sep 17 00:00:00 2001 From: Bang Hu <hu_bang@hotmail.com> Date: 星期四, 28 八月 2025 12:21:30 +0800 Subject: [PATCH] 参考买家中心服务查询API添加交易审批模查询服务API --- src/main/java/com/webmanage/service/OrderInfoService.java | 5 + src/main/resources/mapper/OrderInfoMapper.xml | 50 ++++++++++++++++ src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java | 45 +++++++++++++++ src/main/resources/application-dev.yml | 2 src/main/java/com/webmanage/mapper/OrderInfoMapper.java | 9 +++ src/main/java/com/webmanage/controller/OrderController.java | 11 +++ 6 files changed, 121 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/webmanage/controller/OrderController.java b/src/main/java/com/webmanage/controller/OrderController.java index baeb5f9..f3120a7 100644 --- a/src/main/java/com/webmanage/controller/OrderController.java +++ b/src/main/java/com/webmanage/controller/OrderController.java @@ -157,6 +157,17 @@ } } + @PostMapping("/approval/page/with-product-conditions") + @ApiOperation("鍒嗛〉鏌ヨ寰呭鎵硅鍗曞垪琛紙鏀寔浜у搧鏉′欢锛�") + public Result<Object> getPendingApprovalOrderPageWithProductConditions(@Valid @RequestBody OrderQueryDTO queryDTO) { + try { + return Result.success(orderInfoService.getPendingApprovalOrderPageWithProductConditions(queryDTO)); + } catch (Exception e) { + log.error("鏌ヨ寰呭鎵硅鍗曞垪琛ㄥけ璐�", e); + return Result.error("鏌ヨ寰呭鎵硅鍗曞垪琛ㄥけ璐ワ細" + e.getMessage()); + } + } + @GetMapping("/detail/{orderId}") @ApiOperation("鑾峰彇璁㈠崟璇︽儏") public Result<OrderDetailVO> getOrderDetail( diff --git a/src/main/java/com/webmanage/mapper/OrderInfoMapper.java b/src/main/java/com/webmanage/mapper/OrderInfoMapper.java index 055b06f..1785bdc 100644 --- a/src/main/java/com/webmanage/mapper/OrderInfoMapper.java +++ b/src/main/java/com/webmanage/mapper/OrderInfoMapper.java @@ -45,6 +45,15 @@ @Param("orderDirection") String orderDirection); /** + * 鍒嗛〉鏌ヨ寰呭鎵硅鍗曞垪琛紙鏀寔浜у搧鏉′欢锛� + */ + IPage<OrderInfo> selectPendingApprovalOrderPageWithProductConditions(Page<OrderInfo> page, @Param("orderStatus") String orderStatus, + @Param("productName") String productName, @Param("providerName") String providerName, + @Param("orderId") String orderId, @Param("applyTimeStart") String applyTimeStart, + @Param("applyTimeEnd") String applyTimeEnd, @Param("orderBy") String orderBy, + @Param("orderDirection") String orderDirection, @Param("productIds") java.util.List<String> productIds); + + /** * 鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級 */ IPage<OrderInfo> selectBuyerOrderPageWithProductConditions(Page<OrderInfo> page, @Param("userId") String userId, diff --git a/src/main/java/com/webmanage/service/OrderInfoService.java b/src/main/java/com/webmanage/service/OrderInfoService.java index a7a367f..7481c6c 100644 --- a/src/main/java/com/webmanage/service/OrderInfoService.java +++ b/src/main/java/com/webmanage/service/OrderInfoService.java @@ -41,6 +41,11 @@ PageResult<OrderInfo> getPendingApprovalOrderPage(OrderQueryDTO queryDTO); /** + * 鍒嗛〉鏌ヨ寰呭鎵硅鍗曞垪琛紙鏀寔浜у搧鏉′欢锛� + */ + PageResult<OrderInfo> getPendingApprovalOrderPageWithProductConditions(OrderQueryDTO queryDTO); + + /** * 鑾峰彇璁㈠崟璇︽儏 */ OrderDetailVO getOrderDetail(String orderId); diff --git a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java index 94a5ab0..552ce54 100644 --- a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java @@ -186,6 +186,51 @@ } @Override + public PageResult<OrderInfo> getPendingApprovalOrderPageWithProductConditions(OrderQueryDTO queryDTO) { + // 鏍规嵁浜у搧鏉′欢鏌ヨ浜у搧ID鍒楄〃 + List<String> productIds = null; + if (StringUtils.hasText(queryDTO.getIndustryId()) || StringUtils.hasText(queryDTO.getUnitProjectId()) || + StringUtils.hasText(queryDTO.getProductTypeId()) || StringUtils.hasText(queryDTO.getProductSubTypeId())) { + productIds = reportResultSubmissionMapper.selectProductIdsByConditions( + queryDTO.getIndustryId(), queryDTO.getUnitProjectId(), + queryDTO.getProductTypeId(), queryDTO.getProductSubTypeId() + ); + + // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨勪骇鍝侊紝鐩存帴杩斿洖绌虹粨鏋� + if (CollectionUtils.isEmpty(productIds)) { + return new PageResult<OrderInfo>( + java.util.Collections.emptyList(), + 0L, + queryDTO.getPageNum().longValue(), + queryDTO.getPageSize().longValue(), + 0L + ); + } + } + + // 鍒涘缓鍒嗛〉瀵硅薄 + Page<OrderInfo> page = new Page<>(queryDTO.getPageNum(), queryDTO.getPageSize()); + + // 鎵ц鍒嗛〉鏌ヨ + IPage<OrderInfo> result = baseMapper.selectPendingApprovalOrderPageWithProductConditions( + page, queryDTO.getOrderStatus(), queryDTO.getProductName(), queryDTO.getProviderName(), + queryDTO.getOrderId(), + queryDTO.getApplyTimeStart() != null ? queryDTO.getApplyTimeStart().toString() : null, + queryDTO.getApplyTimeEnd() != null ? queryDTO.getApplyTimeEnd().toString() : null, + queryDTO.getOrderBy(), queryDTO.getOrderDirection(), productIds + ); + + // 鏋勫缓杩斿洖缁撴灉 + return new PageResult<OrderInfo>( + result.getRecords(), + result.getTotal(), + queryDTO.getPageNum().longValue(), + queryDTO.getPageSize().longValue(), + result.getPages() + ); + } + + @Override public PageResult<OrderDetailVO> getBuyerOrderPageWithProductConditions(OrderQueryDTO queryDTO) { // 鍙傛暟鏍¢獙 if (queryDTO.getUserId() == null) { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 235bb55..effd90b 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -5,7 +5,7 @@ driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/web_manage?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: postgres - password: postgres + password: zkyxpostgres druid: # 鍒濆杩炴帴鏁� initial-size: 5 diff --git a/src/main/resources/mapper/OrderInfoMapper.xml b/src/main/resources/mapper/OrderInfoMapper.xml index d65043b..3aec6a2 100644 --- a/src/main/resources/mapper/OrderInfoMapper.xml +++ b/src/main/resources/mapper/OrderInfoMapper.xml @@ -190,6 +190,56 @@ </choose> </select> + <!-- 鍒嗛〉鏌ヨ寰呭鎵硅鍗曞垪琛紙鏀寔浜у搧鏉′欢锛� --> + <select id="selectPendingApprovalOrderPageWithProductConditions" resultMap="BaseResultMap"> + SELECT + <include refid="Base_Column_List"/> + FROM tb_order_info + WHERE deleted = 0 + AND order_status IN ('寰呬笂浼犳枃浠�', '寰呮巿鏉�', '寰呬氦鏄撶‘璁�', '宸插畬鎴�', '宸茶瘎浠�') + <if test="orderStatus != null and orderStatus != ''"> + AND order_status = #{orderStatus} + </if> + <if test="productName != null and productName != ''"> + AND product_name LIKE CONCAT('%', #{productName}, '%') + </if> + <if test="providerName != null and providerName != ''"> + AND provider_name LIKE CONCAT('%', #{providerName}, '%') + </if> + <if test="orderId != null and orderId != ''"> + AND order_id LIKE CONCAT('%', #{orderId}, '%') + </if> + <if test="applyTimeStart != null and applyTimeStart != ''"> + AND apply_time >= #{applyTimeStart}::timestamp + </if> + <if test="applyTimeEnd != null and applyTimeEnd != ''"> + AND apply_time <= #{applyTimeEnd}::timestamp + </if> + <if test="productIds != null and productIds.size() > 0"> + AND product_id IN + <foreach collection="productIds" item="productId" open="(" separator="," close=")"> + #{productId} + </foreach> + </if> + ORDER BY + <choose> + <when test="orderBy != null and orderBy != ''"> + ${orderBy} + </when> + <otherwise> + created_at + </otherwise> + </choose> + <choose> + <when test="orderDirection != null and orderDirection == 'asc'"> + ASC + </when> + <otherwise> + DESC + </otherwise> + </choose> + </select> + <!-- 鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級 --> <select id="selectBuyerOrderPageWithProductConditions" resultMap="BaseResultMap"> SELECT -- Gitblit v1.8.0