From 1cda9be49d77c83bdab4cfea7e3558fd4064bdb1 Mon Sep 17 00:00:00 2001 From: seatonwan9 Date: 星期四, 28 八月 2025 02:03:11 +0800 Subject: [PATCH] 更新代码 --- src/main/java/com/webmanage/entity/PointsRule.java | 2 src/main/java/com/webmanage/dto/CreateOrderDTO.java | 6 src/main/java/com/webmanage/controller/PointsController.java | 2 src/main/java/com/webmanage/service/UserPointsService.java | 6 src/main/java/com/webmanage/entity/Points.java | 2 src/main/java/com/webmanage/entity/OrderInfo.java | 10 src/main/java/com/webmanage/mapper/UserPointsMapper.java | 4 src/main/java/com/webmanage/entity/UserPoints.java | 6 src/main/resources/mapper/ProductMapper.xml | 80 +++ src/main/java/com/webmanage/service/ProductPricingService.java | 2 src/main/java/com/webmanage/controller/CartController.java | 44 +- src/main/resources/mapper/ApprovalRecordMapper.xml | 10 src/main/java/com/webmanage/mapper/ReportResultSubmissionMapper.java | 30 + src/main/java/com/webmanage/service/impl/CartServiceImpl.java | 60 +- src/main/java/com/webmanage/dto/PointsFlowQueryDTO.java | 4 src/main/java/com/webmanage/entity/OrderEvaluation.java | 2 src/main/resources/mapper/UserPointsMapper.xml | 4 src/main/java/com/webmanage/service/impl/UserPointsServiceImpl.java | 6 src/main/resources/mapper/OrderAttachmentMapper.xml | 2 src/main/java/com/webmanage/dto/AddPointsFlowDTO.java | 16 src/main/java/com/webmanage/service/PointsFlowService.java | 2 src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java | 196 +++++++++ src/main/java/com/webmanage/vo/OrderDetailVO.java | 8 src/main/java/com/webmanage/dto/CreateOrderItemDTO.java | 4 src/main/java/com/webmanage/dto/CartItemDTO.java | 2 src/main/java/com/webmanage/service/CartPersistenceService.java | 6 src/main/java/com/webmanage/controller/ProductPricingController.java | 5 src/main/java/com/webmanage/service/OrderInfoService.java | 22 src/main/java/com/webmanage/mapper/CartMapper.java | 8 src/main/resources/mapper/OrderInfoMapper.xml | 135 ++++++ src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java | 196 +++++++-- src/main/java/com/webmanage/mapper/ProductPricingMapper.java | 2 src/main/resources/mapper/ProductPricingMapper.xml | 10 src/main/resources/mapper/ReportResultSubmissionMapper.xml | 24 + src/main/java/com/webmanage/entity/PointsFlow.java | 6 src/main/java/com/webmanage/mapper/OrderInfoMapper.java | 28 + src/main/java/com/webmanage/controller/OrderController.java | 35 + src/main/java/com/webmanage/entity/Cart.java | 8 src/main/java/com/webmanage/vo/OrderDetailItemVO.java | 4 src/main/java/com/webmanage/service/impl/CartPersistenceServiceImpl.java | 11 src/main/resources/mapper/PointsMapper.xml | 2 src/main/java/com/webmanage/entity/ApprovalRecord.java | 2 src/main/java/com/webmanage/entity/ReportResultSubmission.java | 105 +++++ src/main/java/com/webmanage/service/impl/ProductPricingServiceImpl.java | 5 src/main/resources/mapper/CartMapper.xml | 42 + src/main/resources/mapper/OrderEvaluationMapper.xml | 2 src/main/java/com/webmanage/entity/Product.java | 2 src/main/java/com/webmanage/vo/CartVO.java | 4 src/main/java/com/webmanage/entity/OrderApproval.java | 2 src/main/java/com/webmanage/entity/ProductPricing.java | 6 src/main/java/com/webmanage/service/CartService.java | 24 src/main/java/com/webmanage/entity/OrderAttachment.java | 2 src/main/java/com/webmanage/entity/OrderDetail.java | 6 src/main/java/com/webmanage/vo/CartItemVO.java | 2 src/main/java/com/webmanage/dto/OrderQueryDTO.java | 19 src/main/resources/mapper/OrderDetailMapper.xml | 2 56 files changed, 996 insertions(+), 241 deletions(-) diff --git a/src/main/java/com/webmanage/controller/CartController.java b/src/main/java/com/webmanage/controller/CartController.java index 1452cfc..350e3a7 100644 --- a/src/main/java/com/webmanage/controller/CartController.java +++ b/src/main/java/com/webmanage/controller/CartController.java @@ -35,8 +35,8 @@ @PostMapping("/add") @ApiOperation("娣诲姞鍟嗗搧鍒拌喘鐗╄溅") public Result<Object> addToCart(@Valid @RequestBody CartItemDTO cartItemDTO, - @RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId) { + @RequestParam @NotNull String userId, + @RequestParam String unitId) { try { boolean result = cartService.addToCart(userId, unitId, cartItemDTO); if (result) { @@ -52,8 +52,8 @@ @DeleteMapping("/remove") @ApiOperation("浠庤喘鐗╄溅绉婚櫎鍟嗗搧") - public Result<Object> removeFromCart(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId, + public Result<Object> removeFromCart(@RequestParam @NotNull String userId, + @RequestParam String unitId, @RequestParam @NotNull Long pricingId) { try { boolean result = cartService.removeFromCart(userId, unitId, pricingId); @@ -70,8 +70,8 @@ @PutMapping("/update") @ApiOperation("鏇存柊璐墿杞﹀晢鍝佹暟閲�") - public Result<Object> updateCartItemQuantity(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId, + public Result<Object> updateCartItemQuantity(@RequestParam @NotNull String userId, + @RequestParam String unitId, @RequestParam @NotNull Long pricingId, @RequestParam @NotNull @Min(1) Integer quantity) { try { @@ -89,8 +89,8 @@ @DeleteMapping("/clear") @ApiOperation("娓呯┖璐墿杞�") - public Result<Object> clearCart(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId) { + public Result<Object> clearCart(@RequestParam @NotNull String userId, + @RequestParam String unitId) { try { boolean result = cartService.clearCart(userId, unitId); if (result) { @@ -106,8 +106,8 @@ @GetMapping("/info") @ApiOperation("鑾峰彇璐墿杞︿俊鎭�") - public Result<Object> getCart(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId) { + public Result<Object> getCart(@RequestParam @NotNull String userId, + @RequestParam String unitId) { try { CartVO cart = cartService.getCart(userId, unitId); return Result.success(cart); @@ -119,8 +119,8 @@ @GetMapping("/items") @ApiOperation("鑾峰彇璐墿杞﹀晢鍝佸垪琛�") - public Result<Object> getCartItems(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId) { + public Result<Object> getCartItems(@RequestParam @NotNull String userId, + @RequestParam String unitId) { try { List<CartItemVO> items = cartService.getCartItems(userId, unitId); return Result.success(items); @@ -132,8 +132,8 @@ @DeleteMapping("/batch-remove") @ApiOperation("鎵归噺鍒犻櫎璐墿杞﹀晢鍝�") - public Result<Object> batchRemoveFromCart(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId, + public Result<Object> batchRemoveFromCart(@RequestParam @NotNull String userId, + @RequestParam String unitId, @RequestBody List<Long> pricingIds) { try { boolean result = cartService.batchRemoveFromCart(userId, unitId, pricingIds); @@ -150,8 +150,8 @@ @GetMapping("/count") @ApiOperation("鑾峰彇璐墿杞﹀晢鍝佹暟閲�") - public Result<Object> getCartItemCount(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId) { + public Result<Object> getCartItemCount(@RequestParam @NotNull String userId, + @RequestParam String unitId) { try { Integer count = cartService.getCartItemCount(userId, unitId); return Result.success(count); @@ -163,8 +163,8 @@ @PostMapping("/sync-to-db") @ApiOperation("鍚屾Redis璐墿杞︽暟鎹埌鏁版嵁搴�") - public Result<Object> syncCartToDatabase(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId) { + public Result<Object> syncCartToDatabase(@RequestParam @NotNull String userId, + @RequestParam @NotNull String unitId) { try { boolean result = cartService.syncCartToDatabase(userId, unitId); if (result) { @@ -180,8 +180,8 @@ @PostMapping("/load-from-db") @ApiOperation("浠庢暟鎹簱鍔犺浇璐墿杞︽暟鎹埌Redis") - public Result<Object> loadCartFromDatabase(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId) { + public Result<Object> loadCartFromDatabase(@RequestParam @NotNull String userId, + @RequestParam @NotNull String unitId) { try { boolean result = cartService.loadCartFromDatabase(userId, unitId); if (result) { @@ -197,8 +197,8 @@ @GetMapping("/consistency") @ApiOperation("妫�鏌ヨ喘鐗╄溅鏁版嵁涓�鑷存��") - public Result<Object> checkCartConsistency(@RequestParam @NotNull Long userId, - @RequestParam @NotNull Long unitId) { + public Result<Object> checkCartConsistency(@RequestParam @NotNull String userId, + @RequestParam @NotNull String unitId) { try { boolean isConsistent = cartService.checkCartConsistency(userId, unitId); if (isConsistent) { diff --git a/src/main/java/com/webmanage/controller/OrderController.java b/src/main/java/com/webmanage/controller/OrderController.java index f66ad4d..baeb5f9 100644 --- a/src/main/java/com/webmanage/controller/OrderController.java +++ b/src/main/java/com/webmanage/controller/OrderController.java @@ -43,6 +43,13 @@ catch (Exception e) { log.error("鏌ヨ涔板璁㈠崟鍒楄〃澶辫触", e); return Result.error("鏌ヨ涔板璁㈠崟鍒楄〃澶辫触锛�" + e.getMessage()); } } + @PostMapping("/buyer/page/with-product-conditions") + @ApiOperation("鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級") + public Result<Object> getBuyerOrderPageWithProductConditions(@Valid @RequestBody OrderQueryDTO queryDTO) { + try { return Result.success(orderInfoService.getBuyerOrderPageWithProductConditions(queryDTO)); } + catch (Exception e) { log.error("鏌ヨ涔板璁㈠崟鍒楄〃澶辫触", e); return Result.error("鏌ヨ涔板璁㈠崟鍒楄〃澶辫触锛�" + e.getMessage()); } + } + @PostMapping("/create") @ApiOperation("鍒涘缓璁㈠崟锛堝寘鍚鍗曡鎯咃級锛岄渶鍦� Header 鎼哄甫 Idempotency-Token 闃查噸澶嶆彁浜�") public Result<OrderInfo> createOrder(@RequestHeader(value = "Idempotency-Token", required = false) String token, @@ -119,6 +126,20 @@ return Result.error("鎻愪緵鑰匢D涓嶈兘涓虹┖"); } return Result.success(orderInfoService.getSellerOrderPage(queryDTO)); + } catch (Exception e) { + log.error("鏌ヨ鍗栧璁㈠崟鍒楄〃澶辫触", e); + return Result.error("鏌ヨ鍗栧璁㈠崟鍒楄〃澶辫触锛�" + e.getMessage()); + } + } + + @PostMapping("/seller/page/with-product-conditions") + @ApiOperation("鍒嗛〉鏌ヨ鍗栧璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級") + public Result<Object> getSellerOrderPageWithProductConditions(@Valid @RequestBody OrderQueryDTO queryDTO) { + try { + if (queryDTO.getProviderId() == null) { + return Result.error("鎻愪緵鑰匢D涓嶈兘涓虹┖"); + } + return Result.success(orderInfoService.getSellerOrderPageWithProductConditions(queryDTO)); } catch (Exception e) { log.error("鏌ヨ鍗栧璁㈠崟鍒楄〃澶辫触", e); return Result.error("鏌ヨ鍗栧璁㈠崟鍒楄〃澶辫触锛�" + e.getMessage()); @@ -290,6 +311,20 @@ } } + @PostMapping("/workflow/update") + @ApiOperation("鏍规嵁璁㈠崟ID鏇存柊宸ヤ綔娴両D锛坵orkflow_id锛�") + public Result<Boolean> updateWorkflowId( + @ApiParam("璁㈠崟ID") @RequestParam @NotBlank String orderId, + @ApiParam("宸ヤ綔娴両D") @RequestParam @NotBlank String workflowId) { + try { + boolean result = orderInfoService.updateWorkflowId(orderId, workflowId); + return result ? Result.success(true) : Result.error("鏇存柊宸ヤ綔娴両D澶辫触"); + } catch (Exception e) { + log.error("鏇存柊宸ヤ綔娴両D澶辫触锛岃鍗旾D: {}", orderId, e); + return Result.error("鏇存柊宸ヤ綔娴両D澶辫触锛�" + e.getMessage()); + } + } + @GetMapping("/agreement/check/{orderId}") @ApiOperation("妫�鏌ヨ鍗曟槸鍚﹀寘鍚崗璁被鍨嬬殑瀛愯鍗�") public Result<Boolean> checkAgreementPriceType( diff --git a/src/main/java/com/webmanage/controller/PointsController.java b/src/main/java/com/webmanage/controller/PointsController.java index 8f4214f..837b163 100644 --- a/src/main/java/com/webmanage/controller/PointsController.java +++ b/src/main/java/com/webmanage/controller/PointsController.java @@ -250,7 +250,7 @@ @GetMapping("/total/user/{userId}") @ApiOperation("鑾峰彇鐢ㄦ埛绉垎缁熻") - public Result<UserPoints> getUserPointsTotal(@ApiParam("鐢ㄦ埛ID") @PathVariable Long userId) { + public Result<UserPoints> getUserPointsTotal(@ApiParam("鐢ㄦ埛ID") @PathVariable String userId) { try { UserPoints userPoints = pointsFlowService.getUserPointsTotal(userId); return Result.success(userPoints); diff --git a/src/main/java/com/webmanage/controller/ProductPricingController.java b/src/main/java/com/webmanage/controller/ProductPricingController.java index 1ca6f19..6432aea 100644 --- a/src/main/java/com/webmanage/controller/ProductPricingController.java +++ b/src/main/java/com/webmanage/controller/ProductPricingController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -107,9 +108,9 @@ */ @GetMapping("/product/{productId}") @ApiOperation("鏍规嵁浜у搧ID鏌ヨ瀹氫环鍒楄〃") - public Result<List<ProductPricing>> getPricingByProductId(@ApiParam("浜у搧ID") @PathVariable Long productId) { + public Result<List<ProductPricing>> getPricingByProductId(@ApiParam("浜у搧ID") @PathVariable String productId) { try { - if (productId == null) { + if (!StringUtils.hasText(productId)) { return Result.error("浜у搧ID涓嶈兘涓虹┖"); } List<ProductPricing> result = productPricingService.getPricingByProductId(productId); diff --git a/src/main/java/com/webmanage/dto/AddPointsFlowDTO.java b/src/main/java/com/webmanage/dto/AddPointsFlowDTO.java index 4712c53..14b863a 100644 --- a/src/main/java/com/webmanage/dto/AddPointsFlowDTO.java +++ b/src/main/java/com/webmanage/dto/AddPointsFlowDTO.java @@ -15,12 +15,13 @@ public class AddPointsFlowDTO { @ApiModelProperty("鐢ㄦ埛ID") - @NotNull(message = "鐢ㄦ埛ID涓嶈兘涓虹┖") - private Long userId; + private String userId; + + @ApiModelProperty("鎻愪緵鑰匢D") + private String providerId; @ApiModelProperty("鍗曚綅ID") - @NotNull(message = "鍗曚綅ID涓嶈兘涓虹┖") - private Long unitId; + private String unitId; @ApiModelProperty("瑙勫垯绫诲瀷(0鑾峰緱/1娑堣垂)") @NotNull(message = "瑙勫垯绫诲瀷涓嶈兘涓虹┖") @@ -33,13 +34,6 @@ @ApiModelProperty("绉垎瑙勫垯绫诲埆(璧勬簮璐$尞銆佽祫婧愪紶鎾�佽祫婧愪氦鏄撱�佷氦娴佺ぞ鍖轰簰鍔�)") @NotBlank(message = "绉垎瑙勫垯缂栫爜") private String ruleNameCode; - - @ApiModelProperty("鏁版嵁绫荤洰)") - @NotBlank(message = "鏁版嵁绫荤洰涓嶈兘涓虹┖") - private String dataCategoty; - - @ApiModelProperty("鍏宠仈璁㈠崟ID") - private String orderId; @ApiModelProperty("瑙﹀彂娆℃暟(榛樿涓�1)") private Integer count = 1; diff --git a/src/main/java/com/webmanage/dto/CartItemDTO.java b/src/main/java/com/webmanage/dto/CartItemDTO.java index 8514c92..d87a135 100644 --- a/src/main/java/com/webmanage/dto/CartItemDTO.java +++ b/src/main/java/com/webmanage/dto/CartItemDTO.java @@ -21,7 +21,7 @@ @ApiModelProperty("鍟嗗搧ID") @NotNull(message = "鍟嗗搧ID涓嶈兘涓虹┖") - private Long productId; + private String productId; @ApiModelProperty("鍟嗗搧鍚嶇О") private String productName; diff --git a/src/main/java/com/webmanage/dto/CreateOrderDTO.java b/src/main/java/com/webmanage/dto/CreateOrderDTO.java index 8d940ae..18f8b32 100644 --- a/src/main/java/com/webmanage/dto/CreateOrderDTO.java +++ b/src/main/java/com/webmanage/dto/CreateOrderDTO.java @@ -17,11 +17,11 @@ @ApiModelProperty("鐢ㄦ埛ID") @NotNull(message = "鐢ㄦ埛ID涓嶈兘涓虹┖") - private Long userId; + private String userId; @ApiModelProperty("鍗曚綅ID") @NotNull(message = "鍗曚綅ID涓嶈兘涓虹┖") - private Long unitId; + private String unitId; @ApiModelProperty("浜у搧鍚嶇О") @NotBlank(message = "浜у搧鍚嶇О涓嶈兘涓虹┖") @@ -31,7 +31,7 @@ private String providerName; @ApiModelProperty("鎻愪緵鑰匢D") - private Long providerId; + private String providerId; @ApiModelProperty("鏀粯鏂瑰紡锛堝锛氱Н鍒�/鐜伴噾/娣峰悎锛�") @NotBlank(message = "鏀粯鏂瑰紡涓嶈兘涓虹┖") diff --git a/src/main/java/com/webmanage/dto/CreateOrderItemDTO.java b/src/main/java/com/webmanage/dto/CreateOrderItemDTO.java index e34bc55..439c512 100644 --- a/src/main/java/com/webmanage/dto/CreateOrderItemDTO.java +++ b/src/main/java/com/webmanage/dto/CreateOrderItemDTO.java @@ -16,7 +16,7 @@ @ApiModelProperty("浜у搧ID") @NotNull(message = "浜у搧ID涓嶈兘涓虹┖") - private Long productId; + private String productId; @ApiModelProperty("浜у搧濂椾欢鍚嶇О") private String suiteName; @@ -55,7 +55,7 @@ private BigDecimal totalPrice; @ApiModelProperty("浜у搧鎻愪緵鑰匢D") - private Long providerId; + private String providerId; @ApiModelProperty("浜у搧鎻愪緵鑰呭悕绉�") private String providerName; diff --git a/src/main/java/com/webmanage/dto/OrderQueryDTO.java b/src/main/java/com/webmanage/dto/OrderQueryDTO.java index 9f96807..0300db9 100644 --- a/src/main/java/com/webmanage/dto/OrderQueryDTO.java +++ b/src/main/java/com/webmanage/dto/OrderQueryDTO.java @@ -20,13 +20,13 @@ private Integer pageSize = 10; @ApiModelProperty("鐢ㄦ埛ID") - private Long userId; + private String userId; @ApiModelProperty("鍗曚綅ID") - private Long unitId; + private String unitId; @ApiModelProperty("鎻愪緵鑰匢D") - private Long providerId; + private String providerId; @ApiModelProperty("璁㈠崟鐘舵��") private String orderStatus; @@ -63,4 +63,17 @@ @ApiModelProperty("鎺掑簭鏂瑰悜(asc/desc)") private String orderDirection = "desc"; + + @ApiModelProperty("琛屼笟棰嗗煙ID") + private String industryId; + + @ApiModelProperty("鍗曚綅宸ョ▼ID") + private String unitProjectId; + + @ApiModelProperty("浜у搧绫诲瀷ID") + private String productTypeId; + + @ApiModelProperty("浜у搧绫诲瀷瀛愮骇ID") + private String productSubTypeId; + } diff --git a/src/main/java/com/webmanage/dto/PointsFlowQueryDTO.java b/src/main/java/com/webmanage/dto/PointsFlowQueryDTO.java index 98aaa5c..2e28d32 100644 --- a/src/main/java/com/webmanage/dto/PointsFlowQueryDTO.java +++ b/src/main/java/com/webmanage/dto/PointsFlowQueryDTO.java @@ -20,10 +20,10 @@ private Integer pageSize = 10; @ApiModelProperty("鐢ㄦ埛ID") - private Long userId; + private String userId; @ApiModelProperty("鍗曚綅ID") - private Long unitId; + private String unitId; @ApiModelProperty("娴佹按绫诲瀷(0鑾峰緱1/娑堣垂)") private Integer dataType; diff --git a/src/main/java/com/webmanage/entity/ApprovalRecord.java b/src/main/java/com/webmanage/entity/ApprovalRecord.java index 0315756..7384fc0 100644 --- a/src/main/java/com/webmanage/entity/ApprovalRecord.java +++ b/src/main/java/com/webmanage/entity/ApprovalRecord.java @@ -13,7 +13,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("approval_record") +@TableName("tb_approval_record") @ApiModel(value = "ApprovalRecord", description = "瀹℃壒璁板綍") public class ApprovalRecord { diff --git a/src/main/java/com/webmanage/entity/Cart.java b/src/main/java/com/webmanage/entity/Cart.java index 5b5c741..0d322a8 100644 --- a/src/main/java/com/webmanage/entity/Cart.java +++ b/src/main/java/com/webmanage/entity/Cart.java @@ -14,7 +14,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("cart") +@TableName("tb_cart") @ApiModel(value = "Cart", description = "璐墿杞�") public class Cart { @ApiModelProperty("涓婚敭ID") @@ -23,11 +23,11 @@ @ApiModelProperty("鐢ㄦ埛ID") @TableField("user_id") - private Long userId; + private String userId; @ApiModelProperty("鍗曚綅ID") @TableField("unit_id") - private Long unitId; + private String unitId; @ApiModelProperty("鍟嗗搧瀹氫环ID") @TableField("pricing_id") @@ -35,7 +35,7 @@ @ApiModelProperty("鍟嗗搧ID") @TableField("product_id") - private Long productId; + private String productId; @ApiModelProperty("鍟嗗搧鍚嶇О") @TableField("product_name") diff --git a/src/main/java/com/webmanage/entity/OrderApproval.java b/src/main/java/com/webmanage/entity/OrderApproval.java index d4d2558..e14f9c7 100644 --- a/src/main/java/com/webmanage/entity/OrderApproval.java +++ b/src/main/java/com/webmanage/entity/OrderApproval.java @@ -13,7 +13,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("order_approval") +@TableName("tb_order_approval") @ApiModel(value = "OrderApproval", description = "璁㈠崟瀹℃壒璁板綍") public class OrderApproval { diff --git a/src/main/java/com/webmanage/entity/OrderAttachment.java b/src/main/java/com/webmanage/entity/OrderAttachment.java index 97b406c..c7774ec 100644 --- a/src/main/java/com/webmanage/entity/OrderAttachment.java +++ b/src/main/java/com/webmanage/entity/OrderAttachment.java @@ -13,7 +13,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("order_attachment") +@TableName("tb_order_attachment") @ApiModel(value = "OrderAttachment", description = "璁㈠崟闄勪欢") public class OrderAttachment { diff --git a/src/main/java/com/webmanage/entity/OrderDetail.java b/src/main/java/com/webmanage/entity/OrderDetail.java index f2bb3e4..883abb0 100644 --- a/src/main/java/com/webmanage/entity/OrderDetail.java +++ b/src/main/java/com/webmanage/entity/OrderDetail.java @@ -14,7 +14,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("order_detail") +@TableName("tb_order_detail") @ApiModel(value = "OrderDetail", description = "璁㈠崟璇︽儏") public class OrderDetail { @@ -32,7 +32,7 @@ @ApiModelProperty("浜у搧ID") @TableField("product_id") - private Long productId; + private String productId; @ApiModelProperty("浜у搧濂椾欢鍚嶇О") @TableField("suite_name") @@ -80,7 +80,7 @@ @ApiModelProperty("浜у搧鎻愪緵鑰匢D") @TableField("provider_id") - private Long providerId; + private String providerId; @ApiModelProperty("浜у搧鎻愪緵鑰呭悕绉�") @TableField("provider_name") diff --git a/src/main/java/com/webmanage/entity/OrderEvaluation.java b/src/main/java/com/webmanage/entity/OrderEvaluation.java index 9ae5922..435635e 100644 --- a/src/main/java/com/webmanage/entity/OrderEvaluation.java +++ b/src/main/java/com/webmanage/entity/OrderEvaluation.java @@ -13,7 +13,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("order_evaluation") +@TableName("tb_order_evaluation") @ApiModel(value = "OrderEvaluation", description = "璁㈠崟璇勪环") public class OrderEvaluation { diff --git a/src/main/java/com/webmanage/entity/OrderInfo.java b/src/main/java/com/webmanage/entity/OrderInfo.java index 6ab5947..cdea320 100644 --- a/src/main/java/com/webmanage/entity/OrderInfo.java +++ b/src/main/java/com/webmanage/entity/OrderInfo.java @@ -16,7 +16,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("order_info") +@TableName("tb_order_info") public class OrderInfo implements Serializable { private static final long serialVersionUID = 1L; @@ -31,19 +31,19 @@ * 浜у搧ID */ @TableField("product_id") - private Long productId; + private String productId; /** * 鐢ㄦ埛ID */ @TableField("user_id") - private Long userId; + private String userId; /** * 鍗曚綅ID */ @TableField("unit_id") - private Long unitId; + private String unitId; /** * 浜у搧鍚嶇О @@ -61,7 +61,7 @@ * 鎻愪緵鑰匢D */ @TableField("provider_id") - private Long providerId; + private String providerId; /** * 鐢宠鏃堕棿 diff --git a/src/main/java/com/webmanage/entity/Points.java b/src/main/java/com/webmanage/entity/Points.java index 40a6f3f..26c691c 100644 --- a/src/main/java/com/webmanage/entity/Points.java +++ b/src/main/java/com/webmanage/entity/Points.java @@ -18,7 +18,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("points") +@TableName("tb_points") @ApiModel(value = "Points", description = "绉垎涓昏〃") public class Points implements Serializable { diff --git a/src/main/java/com/webmanage/entity/PointsFlow.java b/src/main/java/com/webmanage/entity/PointsFlow.java index c10a3de..ec717ae 100644 --- a/src/main/java/com/webmanage/entity/PointsFlow.java +++ b/src/main/java/com/webmanage/entity/PointsFlow.java @@ -15,7 +15,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("points_flow") +@TableName("tb_points_flow") public class PointsFlow implements Serializable { private static final long serialVersionUID = 1L; @@ -30,13 +30,13 @@ * 鐢ㄦ埛ID */ @TableField("user_id") - private Long userId; + private String userId; /** * 鍗曚綅ID */ @TableField("unit_id") - private Long unitId; + private String unitId; /** * 鏁版嵁绫荤洰 diff --git a/src/main/java/com/webmanage/entity/PointsRule.java b/src/main/java/com/webmanage/entity/PointsRule.java index 96c2ee7..470a7ac 100644 --- a/src/main/java/com/webmanage/entity/PointsRule.java +++ b/src/main/java/com/webmanage/entity/PointsRule.java @@ -18,7 +18,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("points_rule") +@TableName("tb_points_rule") @ApiModel(value = "PointsRule", description = "绉垎瑙勫垯") public class PointsRule implements Serializable { diff --git a/src/main/java/com/webmanage/entity/Product.java b/src/main/java/com/webmanage/entity/Product.java index 13e1f42..fa45a22 100644 --- a/src/main/java/com/webmanage/entity/Product.java +++ b/src/main/java/com/webmanage/entity/Product.java @@ -15,7 +15,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("product") +@TableName("tb_product") public class Product implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/webmanage/entity/ProductPricing.java b/src/main/java/com/webmanage/entity/ProductPricing.java index fee2c84..0a0e03b 100644 --- a/src/main/java/com/webmanage/entity/ProductPricing.java +++ b/src/main/java/com/webmanage/entity/ProductPricing.java @@ -16,7 +16,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("product_pricing") +@TableName("tb_product_pricing") public class ProductPricing implements Serializable { private static final long serialVersionUID = 1L; @@ -91,7 +91,7 @@ * 鍏宠仈浜у搧ID */ @TableField("product_id") - private Long productId; + private String productId; /** * 浜у搧鍚嶇О @@ -103,7 +103,7 @@ * 浜у搧鎻愪緵鑰匢D */ @TableField("provider_id") - private Long providerId; + private String providerId; /** * 浜у搧鎻愪緵鑰呭悕绉� diff --git a/src/main/java/com/webmanage/entity/ReportResultSubmission.java b/src/main/java/com/webmanage/entity/ReportResultSubmission.java new file mode 100644 index 0000000..19704fc --- /dev/null +++ b/src/main/java/com/webmanage/entity/ReportResultSubmission.java @@ -0,0 +1,105 @@ +package com.webmanage.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 浜у搧淇℃伅琛ㄥ疄浣撶被 + */ +@Data +@TableName("tb_report_result_submission") +public class ReportResultSubmission { + + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + private String name; + + private String describe; + + private String sourceId; + + private String sourceName; + + private String schemeId; + + private String schemeName; + + private String industrialChainId; + + private String industrialChainName; + + private String importantAreaId; + + private String importantAreaName; + + private String sceneId; + + private String sceneName; + + private String deptId; + + private String submissionUnit; + + private Integer sort; + + private String status; + + private String approStatus; + + private String createBy; + + private String createUserId; + + private LocalDateTime createTime; + + private String updateBy; + + private String updateUserId; + + private LocalDateTime updateTime; + + private String deleted; + + private String homeImage; + + private String uploadDoc; + + private String uploadVideo; + + private String flowId; + + private String typeId; + + private String typeName; + + private String typeChildId; + + private String typeChildName; + + private String businessProcessId; + + private String businessProcessName; + + private String awardId; + + private String awardName; + + private String dataSource; + + private String importantDistrictId; + + private String importantDistrictName; + + private String unitId; + + private String display; + + private String url1; + + private String importantFullName; +} diff --git a/src/main/java/com/webmanage/entity/UserPoints.java b/src/main/java/com/webmanage/entity/UserPoints.java index 5448b71..120b1c9 100644 --- a/src/main/java/com/webmanage/entity/UserPoints.java +++ b/src/main/java/com/webmanage/entity/UserPoints.java @@ -15,7 +15,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("user_points") +@TableName("tb_user_points") public class UserPoints implements Serializable { private static final long serialVersionUID = 1L; @@ -30,13 +30,13 @@ * 鐢ㄦ埛ID */ @TableField("user_id") - private Long userId; + private String userId; /** * 鍗曚綅ID */ @TableField("unit_id") - private Long unitId; + private String unitId; /** * 绉垎浣欓 diff --git a/src/main/java/com/webmanage/mapper/CartMapper.java b/src/main/java/com/webmanage/mapper/CartMapper.java index 5cc4d07..592dc9d 100644 --- a/src/main/java/com/webmanage/mapper/CartMapper.java +++ b/src/main/java/com/webmanage/mapper/CartMapper.java @@ -16,22 +16,22 @@ /** * 鏍规嵁鐢ㄦ埛ID鍜屽崟浣岻D鏌ヨ璐墿杞﹀晢鍝佸垪琛� */ - List<Cart> selectByUserIdAndUnitId(@Param("userId") Long userId, @Param("unitId") Long unitId); + List<Cart> selectByUserIdAndUnitId(@Param("userId") String userId, @Param("unitId") String unitId); /** * 鏍规嵁鐢ㄦ埛ID銆佸崟浣岻D鍜屽畾浠稩D鏌ヨ璐墿杞﹀晢鍝� */ - Cart selectByUserIdUnitIdAndPricingId(@Param("userId") Long userId, @Param("unitId") Long unitId, @Param("pricingId") Long pricingId); + Cart selectByUserIdUnitIdAndPricingId(@Param("userId") String userId, @Param("unitId") String unitId, @Param("pricingId") Long pricingId); /** * 鏍规嵁鐢ㄦ埛ID鍜屽崟浣岻D缁熻璐墿杞﹀晢鍝佹暟閲� */ - Integer countByUserIdAndUnitId(@Param("userId") Long userId, @Param("unitId") Long unitId); + Integer countByUserIdAndUnitId(@Param("userId") String userId, @Param("unitId") String unitId); /** * 鏍规嵁鐢ㄦ埛ID鍜屽崟浣岻D璁$畻璐墿杞︽�婚噾棰� */ - java.math.BigDecimal sumTotalAmountByUserIdAndUnitId(@Param("userId") Long userId, @Param("unitId") Long unitId); + java.math.BigDecimal sumTotalAmountByUserIdAndUnitId(@Param("userId") String userId, @Param("unitId") String unitId); Integer deleteByCustomerCondition(@Param("id") Long id); } diff --git a/src/main/java/com/webmanage/mapper/OrderInfoMapper.java b/src/main/java/com/webmanage/mapper/OrderInfoMapper.java index e019bcb..055b06f 100644 --- a/src/main/java/com/webmanage/mapper/OrderInfoMapper.java +++ b/src/main/java/com/webmanage/mapper/OrderInfoMapper.java @@ -16,8 +16,8 @@ /** * 鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃 */ - IPage<OrderInfo> selectBuyerOrderPage(Page<OrderInfo> page, @Param("userId") Long userId, - @Param("unitId") Long unitId, @Param("orderStatus") String orderStatus, + IPage<OrderInfo> selectBuyerOrderPage(Page<OrderInfo> page, @Param("userId") String userId, + @Param("unitId") String unitId, @Param("orderStatus") String orderStatus, @Param("paymentStatus") String paymentStatus, @Param("paymentType") String paymentType, @Param("productName") String productName, @Param("providerName") String providerName, @Param("orderId") String orderId, @Param("applyTimeStart") String applyTimeStart, @@ -28,7 +28,7 @@ /** * 鍒嗛〉鏌ヨ鍗栧璁㈠崟鍒楄〃 */ - IPage<OrderInfo> selectSellerOrderPage(Page<OrderInfo> page, @Param("providerId") Long providerId, + IPage<OrderInfo> selectSellerOrderPage(Page<OrderInfo> page, @Param("providerId") String providerId, @Param("orderStatus") String orderStatus, @Param("paymentStatus") String paymentStatus, @Param("productName") String productName, @Param("orderId") String orderId, @Param("applyTimeStart") String applyTimeStart, @Param("applyTimeEnd") String applyTimeEnd, @@ -43,4 +43,26 @@ @Param("orderId") String orderId, @Param("applyTimeStart") String applyTimeStart, @Param("applyTimeEnd") String applyTimeEnd, @Param("orderBy") String orderBy, @Param("orderDirection") String orderDirection); + + /** + * 鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級 + */ + IPage<OrderInfo> selectBuyerOrderPageWithProductConditions(Page<OrderInfo> page, @Param("userId") String userId, + @Param("unitId") String unitId, @Param("orderStatus") String orderStatus, + @Param("paymentStatus") String paymentStatus, @Param("paymentType") String paymentType, + @Param("productName") String productName, @Param("providerName") String providerName, + @Param("orderId") String orderId, @Param("applyTimeStart") String applyTimeStart, + @Param("applyTimeEnd") String applyTimeEnd, @Param("createTimeStart") String createTimeStart, + @Param("createTimeEnd") String createTimeEnd, @Param("orderBy") String orderBy, + @Param("orderDirection") String orderDirection, @Param("productIds") java.util.List<String> productIds); + + /** + * 鍒嗛〉鏌ヨ鍗栧璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級 + */ + IPage<OrderInfo> selectSellerOrderPageWithProductConditions(Page<OrderInfo> page, @Param("providerId") String providerId, + @Param("orderStatus") String orderStatus, @Param("paymentStatus") String paymentStatus, + @Param("productName") String productName, @Param("orderId") String orderId, + @Param("applyTimeStart") String applyTimeStart, @Param("applyTimeEnd") String applyTimeEnd, + @Param("createTimeStart") String createTimeStart, @Param("createTimeEnd") String createTimeEnd, + @Param("orderBy") String orderBy, @Param("orderDirection") String orderDirection, @Param("productIds") java.util.List<String> productIds); } diff --git a/src/main/java/com/webmanage/mapper/ProductPricingMapper.java b/src/main/java/com/webmanage/mapper/ProductPricingMapper.java index 19e467b..640a1d7 100644 --- a/src/main/java/com/webmanage/mapper/ProductPricingMapper.java +++ b/src/main/java/com/webmanage/mapper/ProductPricingMapper.java @@ -26,7 +26,7 @@ /** * 鏍规嵁浜у搧ID鏌ヨ瀹氫环鍒楄〃 */ - List<ProductPricing> selectByProductId(@Param("productId") Long productId); + List<ProductPricing> selectByProductId(@Param("productId") String productId); /** * 鏍规嵁鏉′欢鏌ヨ浜у搧瀹氫环 diff --git a/src/main/java/com/webmanage/mapper/ReportResultSubmissionMapper.java b/src/main/java/com/webmanage/mapper/ReportResultSubmissionMapper.java new file mode 100644 index 0000000..1fef68d --- /dev/null +++ b/src/main/java/com/webmanage/mapper/ReportResultSubmissionMapper.java @@ -0,0 +1,30 @@ +package com.webmanage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.webmanage.entity.ReportResultSubmission; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 浜у搧淇℃伅琛∕apper鎺ュ彛 + */ +@Mapper +public interface ReportResultSubmissionMapper extends BaseMapper<ReportResultSubmission> { + + /** + * 鏍规嵁鏉′欢鏌ヨ浜у搧ID鍒楄〃 + * @param industryId 琛屼笟棰嗗煙ID + * @param unitProjectId 鍗曚綅宸ョ▼ID + * @param productTypeId 浜у搧绫诲瀷ID + * @param productSubTypeId 浜у搧绫诲瀷瀛愮骇ID + * @return 浜у搧ID鍒楄〃 + */ + List<String> selectProductIdsByConditions( + @Param("industryId") String industryId, + @Param("unitProjectId") String unitProjectId, + @Param("productTypeId") String productTypeId, + @Param("productSubTypeId") String productSubTypeId + ); +} diff --git a/src/main/java/com/webmanage/mapper/UserPointsMapper.java b/src/main/java/com/webmanage/mapper/UserPointsMapper.java index 183ad79..e8ede60 100644 --- a/src/main/java/com/webmanage/mapper/UserPointsMapper.java +++ b/src/main/java/com/webmanage/mapper/UserPointsMapper.java @@ -17,10 +17,10 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ绉垎淇℃伅 */ - UserPoints selectByUserId(@Param("userId") Long userId); + UserPoints selectByUserId(@Param("userId") String userId); /** * 鏍规嵁鍗曚綅ID鏌ヨ绉垎淇℃伅 */ - UserPoints selectByUnitId(@Param("unitId") Long unitId); + UserPoints selectByUnitId(@Param("unitId") String unitId); } diff --git a/src/main/java/com/webmanage/service/CartPersistenceService.java b/src/main/java/com/webmanage/service/CartPersistenceService.java index bd7cb3d..7f51314 100644 --- a/src/main/java/com/webmanage/service/CartPersistenceService.java +++ b/src/main/java/com/webmanage/service/CartPersistenceService.java @@ -3,9 +3,9 @@ import com.webmanage.vo.CartItemVO; public interface CartPersistenceService { - void saveOrUpdate(Long userId, Long unitId, CartItemVO item); - void remove(Long userId, Long unitId, Long pricingId); - void clear(Long userId, Long unitId); + void saveOrUpdate(String userId, String unitId, CartItemVO item); + void remove(String userId, String unitId, Long pricingId); + void clear(String userId, String unitId); } diff --git a/src/main/java/com/webmanage/service/CartService.java b/src/main/java/com/webmanage/service/CartService.java index 58a08bb..027f6f9 100644 --- a/src/main/java/com/webmanage/service/CartService.java +++ b/src/main/java/com/webmanage/service/CartService.java @@ -14,60 +14,60 @@ /** * 娣诲姞鍟嗗搧鍒拌喘鐗╄溅锛圧edis + 鏁版嵁搴擄級 */ - boolean addToCart(Long userId, Long unitId, CartItemDTO cartItemDTO); + boolean addToCart(String userId, String unitId, CartItemDTO cartItemDTO); /** * 浠庤喘鐗╄溅绉婚櫎鍟嗗搧锛圧edis + 鏁版嵁搴擄級 */ - boolean removeFromCart(Long userId, Long unitId, Long pricingId); + boolean removeFromCart(String userId, String unitId, Long pricingId); /** * 鏇存柊璐墿杞﹀晢鍝佹暟閲忥紙Redis + 鏁版嵁搴擄級 */ - boolean updateCartItemQuantity(Long userId, Long unitId, Long pricingId, Integer quantity); + boolean updateCartItemQuantity(String userId, String unitId, Long pricingId, Integer quantity); /** * 娓呯┖璐墿杞︼紙Redis + 鏁版嵁搴擄級 */ - boolean clearCart(Long userId, Long unitId); + boolean clearCart(String userId, String unitId); /** * 鑾峰彇璐墿杞︿俊鎭紙浼樺厛Redis锛屽け璐ュ垯浠庢暟鎹簱鍔犺浇锛� */ - CartVO getCart(Long userId, Long unitId); + CartVO getCart(String userId, String unitId); /** * 鑾峰彇璐墿杞﹀晢鍝佸垪琛紙浼樺厛Redis锛屽け璐ュ垯浠庢暟鎹簱鍔犺浇锛� */ - List<CartItemVO> getCartItems(Long userId, Long unitId); + List<CartItemVO> getCartItems(String userId, String unitId); /** * 妫�鏌ヨ喘鐗╄溅鍟嗗搧搴撳瓨 */ - boolean checkCartItemStock(Long userId, Long unitId, Long pricingId); + boolean checkCartItemStock(String userId, String unitId, Long pricingId); /** * 鎵归噺鍒犻櫎璐墿杞﹀晢鍝侊紙Redis + 鏁版嵁搴擄級 */ - boolean batchRemoveFromCart(Long userId, Long unitId, List<Long> pricingIds); + boolean batchRemoveFromCart(String userId, String unitId, List<Long> pricingIds); /** * 鑾峰彇璐墿杞﹀晢鍝佹暟閲忥紙浼樺厛Redis锛屽け璐ュ垯浠庢暟鎹簱鍔犺浇锛� */ - Integer getCartItemCount(Long userId, Long unitId); + Integer getCartItemCount(String userId, String unitId); /** * 浠庢暟鎹簱鍔犺浇璐墿杞︽暟鎹埌Redis */ - boolean loadCartFromDatabase(Long userId, Long unitId); + boolean loadCartFromDatabase(String userId, String unitId); /** * 鍚屾Redis鏁版嵁鍒版暟鎹簱 */ - boolean syncCartToDatabase(Long userId, Long unitId); + boolean syncCartToDatabase(String userId, String unitId); /** * 妫�鏌ヨ喘鐗╄溅鏁版嵁涓�鑷存�� */ - boolean checkCartConsistency(Long userId, Long unitId); + boolean checkCartConsistency(String userId, String unitId); } diff --git a/src/main/java/com/webmanage/service/OrderInfoService.java b/src/main/java/com/webmanage/service/OrderInfoService.java index 63de046..a7a367f 100644 --- a/src/main/java/com/webmanage/service/OrderInfoService.java +++ b/src/main/java/com/webmanage/service/OrderInfoService.java @@ -18,12 +18,22 @@ /** * 鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃 */ - PageResult<OrderInfo> getBuyerOrderPage(OrderQueryDTO queryDTO); + PageResult<OrderDetailVO> getBuyerOrderPage(OrderQueryDTO queryDTO); /** * 鍒嗛〉鏌ヨ鍗栧璁㈠崟鍒楄〃 */ - PageResult<OrderInfo> getSellerOrderPage(OrderQueryDTO queryDTO); + PageResult<OrderDetailVO> getSellerOrderPage(OrderQueryDTO queryDTO); + + /** + * 鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級 + */ + PageResult<OrderDetailVO> getBuyerOrderPageWithProductConditions(OrderQueryDTO queryDTO); + + /** + * 鍒嗛〉鏌ヨ鍗栧璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級 + */ + PageResult<OrderDetailVO> getSellerOrderPageWithProductConditions(OrderQueryDTO queryDTO); /** * 鍒嗛〉鏌ヨ寰呭鎵硅鍗曞垪琛� @@ -122,4 +132,12 @@ * @return 鏄惁鍙栨秷鎴愬姛 */ boolean cancelOrder(String orderId); + + /** + * 鏍规嵁璁㈠崟ID鏇存柊宸ヤ綔娴両D + * @param orderId 璁㈠崟ID + * @param workflowId 宸ヤ綔娴佸疄渚婭D + * @return 鏄惁鏇存柊鎴愬姛 + */ + boolean updateWorkflowId(String orderId, String workflowId); } diff --git a/src/main/java/com/webmanage/service/PointsFlowService.java b/src/main/java/com/webmanage/service/PointsFlowService.java index 75c1211..85c4a47 100644 --- a/src/main/java/com/webmanage/service/PointsFlowService.java +++ b/src/main/java/com/webmanage/service/PointsFlowService.java @@ -43,7 +43,7 @@ /** * 鑾峰彇鐢ㄦ埛绉垎缁熻 */ - UserPoints getUserPointsTotal(Long userId); + UserPoints getUserPointsTotal(String userId); /** * 鑾峰彇鍗曚綅绉垎缁熻 diff --git a/src/main/java/com/webmanage/service/ProductPricingService.java b/src/main/java/com/webmanage/service/ProductPricingService.java index 1f0b329..2965484 100644 --- a/src/main/java/com/webmanage/service/ProductPricingService.java +++ b/src/main/java/com/webmanage/service/ProductPricingService.java @@ -38,7 +38,7 @@ /** * 鏍规嵁浜у搧ID鏌ヨ瀹氫环鍒楄〃 */ - List<ProductPricing> getPricingByProductId(Long productId); + List<ProductPricing> getPricingByProductId(String productId); /** * 鏍规嵁鏉′欢鏌ヨ浜у搧瀹氫环 diff --git a/src/main/java/com/webmanage/service/UserPointsService.java b/src/main/java/com/webmanage/service/UserPointsService.java index 390481f..9e6775c 100644 --- a/src/main/java/com/webmanage/service/UserPointsService.java +++ b/src/main/java/com/webmanage/service/UserPointsService.java @@ -14,15 +14,15 @@ /** * 鑾峰彇涓汉绉垎缁熻 */ - PointsStatsVO getPersonalPointsStats(Long userId); + PointsStatsVO getPersonalPointsStats(String userId); /** * 鑾峰彇鍗曚綅绉垎缁熻 */ - PointsStatsVO getUnitPointsStats(Long unitId); + PointsStatsVO getUnitPointsStats(String unitId); /** * 鏇存柊鐢ㄦ埛绉垎 */ - void updateUserPoints(Long userId, Long unitId, Integer points); + void updateUserPoints(String userId, String unitId, Integer points); } diff --git a/src/main/java/com/webmanage/service/impl/CartPersistenceServiceImpl.java b/src/main/java/com/webmanage/service/impl/CartPersistenceServiceImpl.java index cdbe2c2..a41e5a0 100644 --- a/src/main/java/com/webmanage/service/impl/CartPersistenceServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/CartPersistenceServiceImpl.java @@ -8,6 +8,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.AsyncConfigurer; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.time.LocalDateTime; @@ -20,12 +21,14 @@ @Override @Async("asyncExecutor") - public void saveOrUpdate(Long userId, Long unitId, CartItemVO item) { + public void saveOrUpdate(String userId, String unitId, CartItemVO item) { try { Cart cart = new Cart(); BeanUtils.copyProperties(item, cart); cart.setUserId(userId); - cart.setUnitId(unitId); + if(StringUtils.hasText(unitId)){ + cart.setUnitId(unitId); + } cart.setUpdateTime(LocalDateTime.now()); Cart existing = cartMapper.selectByUserIdUnitIdAndPricingId(userId, unitId, item.getPricingId()); if (existing != null) { @@ -40,7 +43,7 @@ @Override @Async("asyncExecutor") - public void remove(Long userId, Long unitId, Long pricingId) { + public void remove(String userId, String unitId, Long pricingId) { try { Cart existing = cartMapper.selectByUserIdUnitIdAndPricingId(userId, unitId, pricingId); if (existing != null) { @@ -51,7 +54,7 @@ @Override @Async("asyncExecutor") - public void clear(Long userId, Long unitId) { + public void clear(String userId, String unitId) { try { java.util.List<Cart> cartItems = cartMapper.selectByUserIdAndUnitId(userId, unitId); for (Cart item : cartItems) { diff --git a/src/main/java/com/webmanage/service/impl/CartServiceImpl.java b/src/main/java/com/webmanage/service/impl/CartServiceImpl.java index 7072069..716c8a2 100644 --- a/src/main/java/com/webmanage/service/impl/CartServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/CartServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.math.BigDecimal; @@ -55,7 +56,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public boolean addToCart(Long userId, Long unitId, CartItemDTO cartItemDTO) { + public boolean addToCart(String userId, String unitId, CartItemDTO cartItemDTO) { try { // 楠岃瘉鍟嗗搧瀹氫环鏄惁瀛樺湪 ProductPricing pricing = productPricingMapper.selectById(cartItemDTO.getPricingId()); @@ -64,7 +65,7 @@ } // 鏋勫缓璐墿杞ey - String cartKey = buildCartKey(userId, unitId); + String cartKey = buildCartKey(userId,unitId); String cartItemKey = buildCartItemKey(userId, unitId, cartItemDTO.getPricingId()); // 妫�鏌ュ晢鍝佹槸鍚﹀凡鍦ㄨ喘鐗╄溅涓� @@ -110,7 +111,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public boolean removeFromCart(Long userId, Long unitId, Long pricingId) { + public boolean removeFromCart(String userId, String unitId, Long pricingId) { try { String cartItemKey = buildCartItemKey(userId, unitId, pricingId); @@ -137,7 +138,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public boolean updateCartItemQuantity(Long userId, Long unitId, Long pricingId, Integer quantity) { + public boolean updateCartItemQuantity(String userId, String unitId, Long pricingId, Integer quantity) { try { if (quantity <= 0) { return removeFromCart(userId, unitId, pricingId); @@ -171,7 +172,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public boolean clearCart(Long userId, Long unitId) { + public boolean clearCart(String userId, String unitId) { try { String cartKey = buildCartKey(userId, unitId); List<Long> pricingIds = getCartItemPricingIds(userId, unitId); @@ -199,12 +200,13 @@ } @Override - public CartVO getCart(Long userId, Long unitId) { + public CartVO getCart(String userId, String unitId) { try { CartVO cartVO = new CartVO(); cartVO.setUserId(userId); - cartVO.setUnitId(unitId); - + if (StringUtils.hasText(unitId)){ + cartVO.setUnitId(unitId); + } List<CartItemVO> items = getCartItems(userId, unitId); cartVO.setItems(items); @@ -226,7 +228,7 @@ } @Override - public List<CartItemVO> getCartItems(Long userId, Long unitId) { + public List<CartItemVO> getCartItems(String userId, String unitId) { try { // 浼樺厛浠嶳edis鑾峰彇 List<CartItemVO> items = getCartItemsFromRedis(userId, unitId); @@ -245,14 +247,14 @@ } @Override - public boolean checkCartItemStock(Long userId, Long unitId, Long pricingId) { + public boolean checkCartItemStock(String userId, String unitId, Long pricingId) { // TODO: 瀹炵幇搴撳瓨妫�鏌ラ�昏緫 return true; } @Override @Transactional(rollbackFor = Exception.class) - public boolean batchRemoveFromCart(Long userId, Long unitId, List<Long> pricingIds) { + public boolean batchRemoveFromCart(String userId, String unitId, List<Long> pricingIds) { try { if (CollectionUtils.isEmpty(pricingIds)) { return true; @@ -270,7 +272,7 @@ } @Override - public Integer getCartItemCount(Long userId, Long unitId) { + public Integer getCartItemCount(String userId, String unitId) { try { // 浼樺厛浠嶳edis鑾峰彇 String cartKey = buildCartKey(userId, unitId); @@ -288,7 +290,7 @@ } @Override - public boolean loadCartFromDatabase(Long userId, Long unitId) { + public boolean loadCartFromDatabase(String userId, String unitId) { try { List<Cart> cartItems = cartMapper.selectByUserIdAndUnitId(userId, unitId); if (CollectionUtils.isEmpty(cartItems)) { @@ -319,7 +321,7 @@ } @Override - public boolean syncCartToDatabase(Long userId, Long unitId) { + public boolean syncCartToDatabase(String userId, String unitId) { try { List<CartItemVO> redisItems = getCartItemsFromRedis(userId, unitId); if (CollectionUtils.isEmpty(redisItems)) { @@ -343,7 +345,7 @@ } @Override - public boolean checkCartConsistency(Long userId, Long unitId) { + public boolean checkCartConsistency(String userId, String unitId) { try { List<CartItemVO> redisItems = getCartItemsFromRedis(userId, unitId); List<Cart> dbItems = cartMapper.selectByUserIdAndUnitId(userId, unitId); @@ -378,15 +380,21 @@ // ==================== 绉佹湁鏂规硶 ==================== - private String buildCartKey(Long userId, Long unitId) { - return CART_KEY_PREFIX + userId + ":" + unitId; + private String buildCartKey(String userId, String unitId) { + if(StringUtils.hasText(unitId)){ + return CART_KEY_PREFIX + userId + ":" + unitId; + } + return CART_KEY_PREFIX + userId; } - private String buildCartItemKey(Long userId, Long unitId, Long pricingId) { - return CART_ITEM_KEY_PREFIX + userId + ":" + unitId + ":" + pricingId; + private String buildCartItemKey(String userId, String unitId, Long pricingId) { + if(StringUtils.hasText(unitId)){ + return CART_ITEM_KEY_PREFIX + userId + ":" + unitId + ":" + pricingId; + } + return CART_ITEM_KEY_PREFIX + userId + ":" + pricingId; } - private void updateCartItemList(Long userId, Long unitId, Long pricingId, boolean add) { + private void updateCartItemList(String userId, String unitId, Long pricingId, boolean add) { String cartKey = buildCartKey(userId, unitId); List<Long> pricingIds = (List<Long>) redisTemplate.opsForValue().get(cartKey); @@ -403,13 +411,13 @@ redisTemplate.opsForValue().set(cartKey, pricingIds, CART_EXPIRE_DAYS, TimeUnit.DAYS); } - private List<Long> getCartItemPricingIds(Long userId, Long unitId) { + private List<Long> getCartItemPricingIds(String userId, String unitId) { String cartKey = buildCartKey(userId, unitId); List<Long> pricingIds = (List<Long>) redisTemplate.opsForValue().get(cartKey); return pricingIds != null ? pricingIds : new ArrayList<>(); } - private List<CartItemVO> getCartItemsFromRedis(Long userId, Long unitId) { + private List<CartItemVO> getCartItemsFromRedis(String userId, String unitId) { try { String cartKey = buildCartKey(userId, unitId); List<Long> pricingIds = (List<Long>) redisTemplate.opsForValue().get(cartKey); @@ -434,7 +442,7 @@ } } - private List<CartItemVO> getCartItemsFromDatabase(Long userId, Long unitId) { + private List<CartItemVO> getCartItemsFromDatabase(String userId, String unitId) { try { List<Cart> cartItems = cartMapper.selectByUserIdAndUnitId(userId, unitId); List<CartItemVO> items = new ArrayList<>(); @@ -456,7 +464,7 @@ return itemVO; } - private void syncCartItemToDatabase(Long userId, Long unitId, CartItemVO item) { + private void syncCartItemToDatabase(String userId, String unitId, CartItemVO item) { try { Cart cart = new Cart(); BeanUtils.copyProperties(item, cart); @@ -480,7 +488,7 @@ } } - private void removeCartItemFromDatabase(Long userId, Long unitId, Long pricingId) { + private void removeCartItemFromDatabase(String userId, String unitId, Long pricingId) { try { Cart existingCart = cartMapper.selectByUserIdUnitIdAndPricingId(userId, unitId, pricingId); if (existingCart != null) { @@ -491,7 +499,7 @@ } } - private void clearCartFromDatabase(Long userId, Long unitId) { + private void clearCartFromDatabase(String userId, String unitId) { try { // 浣跨敤閫昏緫鍒犻櫎 List<Cart> cartItems = cartMapper.selectByUserIdAndUnitId(userId, unitId); diff --git a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java index 7ec425c..94a5ab0 100644 --- a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java @@ -22,6 +22,7 @@ import com.webmanage.mapper.OrderDetailMapper; import com.webmanage.mapper.OrderEvaluationMapper; import com.webmanage.mapper.OrderInfoMapper; +import com.webmanage.mapper.ReportResultSubmissionMapper; import com.webmanage.service.OrderInfoService; import com.webmanage.service.OrderNoService; import com.webmanage.service.MinioService; @@ -67,8 +68,11 @@ @Resource private MinioService minioService; + @Resource + private ReportResultSubmissionMapper reportResultSubmissionMapper; + @Override - public PageResult<OrderInfo> getBuyerOrderPage(OrderQueryDTO queryDTO) { + public PageResult<OrderDetailVO> getBuyerOrderPage(OrderQueryDTO queryDTO) { // 鍙傛暟鏍¢獙 if (queryDTO.getUserId() == null) { throw new BusinessException("鐢ㄦ埛ID涓嶈兘涓虹┖"); @@ -88,10 +92,23 @@ queryDTO.getCreateTimeEnd() != null ? queryDTO.getCreateTimeEnd().toString() : null, queryDTO.getOrderBy(), queryDTO.getOrderDirection() ); + // 灏嗚鍗曚笌璇︽儏鑱旇〃灏佽鍒癡O + List<OrderDetailVO> voList = result.getRecords().stream().map(order -> { + OrderDetailVO vo = new OrderDetailVO(); + BeanUtils.copyProperties(order, vo); + List<OrderDetail> details = orderDetailMapper.selectByOrderId(order.getOrderId()); + List<OrderDetailItemVO> items = details.stream().map(d -> { + OrderDetailItemVO item = new OrderDetailItemVO(); + BeanUtils.copyProperties(d, item); + return item; + }).collect(java.util.stream.Collectors.toList()); + vo.setOrderDetails(items); + return vo; + }).collect(java.util.stream.Collectors.toList()); // 鏋勫缓杩斿洖缁撴灉 - return new PageResult<OrderInfo>( - result.getRecords(), + return new PageResult<OrderDetailVO>( + voList, result.getTotal(), queryDTO.getPageNum().longValue(), queryDTO.getPageSize().longValue(), @@ -100,7 +117,7 @@ } @Override - public PageResult<OrderInfo> getSellerOrderPage(OrderQueryDTO queryDTO) { + public PageResult<OrderDetailVO> getSellerOrderPage(OrderQueryDTO queryDTO) { // 鍙傛暟鏍¢獙 if (queryDTO.getProviderId() == null) { throw new BusinessException("鎻愪緵鑰匢D涓嶈兘涓虹┖"); @@ -120,9 +137,23 @@ queryDTO.getOrderBy(), queryDTO.getOrderDirection() ); + // 灏嗚鍗曚笌璇︽儏鑱旇〃灏佽鍒癡O + List<OrderDetailVO> voList = result.getRecords().stream().map(order -> { + OrderDetailVO vo = new OrderDetailVO(); + BeanUtils.copyProperties(order, vo); + List<OrderDetail> details = orderDetailMapper.selectByOrderId(order.getOrderId()); + List<OrderDetailItemVO> items = details.stream().map(d -> { + OrderDetailItemVO item = new OrderDetailItemVO(); + BeanUtils.copyProperties(d, item); + return item; + }).collect(java.util.stream.Collectors.toList()); + vo.setOrderDetails(items); + return vo; + }).collect(java.util.stream.Collectors.toList()); + // 鏋勫缓杩斿洖缁撴灉 - return new PageResult<OrderInfo>( - result.getRecords(), + return new PageResult<OrderDetailVO>( + voList, result.getTotal(), queryDTO.getPageNum().longValue(), queryDTO.getPageSize().longValue(), @@ -147,6 +178,139 @@ // 鏋勫缓杩斿洖缁撴灉 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) { + throw new BusinessException("鐢ㄦ埛ID涓嶈兘涓虹┖"); + } + + // 鏍规嵁浜у搧鏉′欢鏌ヨ浜у搧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<OrderDetailVO>( + 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.selectBuyerOrderPageWithProductConditions( + page, queryDTO.getUserId(), queryDTO.getUnitId(), queryDTO.getOrderStatus(), + queryDTO.getPaymentStatus(), queryDTO.getPaymentType(), queryDTO.getProductName(), + queryDTO.getProviderName(), queryDTO.getOrderId(), + queryDTO.getApplyTimeStart() != null ? queryDTO.getApplyTimeStart().toString() : null, + queryDTO.getApplyTimeEnd() != null ? queryDTO.getApplyTimeEnd().toString() : null, + queryDTO.getCreateTimeStart() != null ? queryDTO.getCreateTimeStart().toString() : null, + queryDTO.getCreateTimeEnd() != null ? queryDTO.getCreateTimeEnd().toString() : null, + queryDTO.getOrderBy(), queryDTO.getOrderDirection(), productIds + ); + + // 灏嗚鍗曚笌璇︽儏鑱旇〃灏佽鍒癡O + List<OrderDetailVO> voList = result.getRecords().stream().map(order -> { + OrderDetailVO vo = new OrderDetailVO(); + BeanUtils.copyProperties(order, vo); + List<OrderDetail> details = orderDetailMapper.selectByOrderId(order.getOrderId()); + List<OrderDetailItemVO> items = details.stream().map(d -> { + OrderDetailItemVO item = new OrderDetailItemVO(); + BeanUtils.copyProperties(d, item); + return item; + }).collect(java.util.stream.Collectors.toList()); + vo.setOrderDetails(items); + return vo; + }).collect(java.util.stream.Collectors.toList()); + + // 鏋勫缓杩斿洖缁撴灉 + return new PageResult<OrderDetailVO>( + voList, + result.getTotal(), + queryDTO.getPageNum().longValue(), + queryDTO.getPageSize().longValue(), + result.getPages() + ); + } + + @Override + public PageResult<OrderDetailVO> getSellerOrderPageWithProductConditions(OrderQueryDTO queryDTO) { + // 鍙傛暟鏍¢獙 + if (queryDTO.getProviderId() == null) { + throw new BusinessException("鎻愪緵鑰匢D涓嶈兘涓虹┖"); + } + + // 鏍规嵁浜у搧鏉′欢鏌ヨ浜у搧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<OrderDetailVO>( + 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.selectSellerOrderPageWithProductConditions( + page, queryDTO.getProviderId(), queryDTO.getOrderStatus(), queryDTO.getPaymentStatus(), + queryDTO.getProductName(), queryDTO.getOrderId(), + queryDTO.getApplyTimeStart() != null ? queryDTO.getApplyTimeStart().toString() : null, + queryDTO.getApplyTimeEnd() != null ? queryDTO.getApplyTimeEnd().toString() : null, + queryDTO.getCreateTimeStart() != null ? queryDTO.getCreateTimeStart().toString() : null, + queryDTO.getCreateTimeEnd() != null ? queryDTO.getCreateTimeEnd().toString() : null, + queryDTO.getOrderBy(), queryDTO.getOrderDirection(), productIds + ); + + // 灏嗚鍗曚笌璇︽儏鑱旇〃灏佽鍒癡O + List<OrderDetailVO> voList = result.getRecords().stream().map(order -> { + OrderDetailVO vo = new OrderDetailVO(); + BeanUtils.copyProperties(order, vo); + List<OrderDetail> details = orderDetailMapper.selectByOrderId(order.getOrderId()); + List<OrderDetailItemVO> items = details.stream().map(d -> { + OrderDetailItemVO item = new OrderDetailItemVO(); + BeanUtils.copyProperties(d, item); + return item; + }).collect(java.util.stream.Collectors.toList()); + vo.setOrderDetails(items); + return vo; + }).collect(java.util.stream.Collectors.toList()); + + // 鏋勫缓杩斿洖缁撴灉 + return new PageResult<OrderDetailVO>( + voList, result.getTotal(), queryDTO.getPageNum().longValue(), queryDTO.getPageSize().longValue(), @@ -940,4 +1104,24 @@ throw new BusinessException("鍙栨秷璁㈠崟澶辫触锛�" + e.getMessage()); } } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateWorkflowId(String orderId, String workflowId) { + if (!StringUtils.hasText(orderId)) { + throw new BusinessException("璁㈠崟ID涓嶈兘涓虹┖"); + } + if (!StringUtils.hasText(workflowId)) { + throw new BusinessException("宸ヤ綔娴両D涓嶈兘涓虹┖"); + } + + OrderInfo orderInfo = this.getById(orderId); + if (orderInfo == null) { + throw new BusinessException("璁㈠崟涓嶅瓨鍦�"); + } + + orderInfo.setWorkflowId(workflowId); + orderInfo.setUpdatedAt(LocalDateTime.now()); + return this.updateById(orderInfo); + } } diff --git a/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java b/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java index 8cdf5be..b21c1e4 100644 --- a/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/PointsFlowServiceImpl.java @@ -42,7 +42,7 @@ @Override public PageResult<PointsFlow> getPersonalPointsFlowPage(PointsFlowQueryDTO queryDTO) { - if (queryDTO.getUserId() == null) { + if (!StringUtils.hasText(queryDTO.getUserId())) { throw new BusinessException("鐢ㄦ埛ID涓嶈兘涓虹┖"); } @@ -123,68 +123,118 @@ throw new BusinessException("鍙傛暟涓嶈兘涓虹┖"); } - Long userId = addPointsFlowDTO.getUserId(); - Long unitId = addPointsFlowDTO.getUnitId(); + String userId = addPointsFlowDTO.getUserId(); + String providerId = addPointsFlowDTO.getProviderId(); + String unitId = addPointsFlowDTO.getUnitId(); Integer ruleType = addPointsFlowDTO.getRuleType(); String category = addPointsFlowDTO.getCategory(); String ruleNameCode = addPointsFlowDTO.getRuleNameCode(); Integer count = addPointsFlowDTO.getCount() != null ? addPointsFlowDTO.getCount() : 1; - // 鏍规嵁ruleType銆乺uleNameCode銆乧ategory鏌ヨ鐢熸晥鏃堕棿鏈�鏂扮殑绉垎瑙勫垯 - PointsRule pointsRule = getLatestEffectiveRule(ruleType, ruleNameCode, category); - if (pointsRule == null) { - throw new BusinessException("绉垎瑙勫垯涓嶅瓨鍦ㄦ垨鏈惎鐢�: ruleType=" + ruleType + ", ruleNameCode=" + ruleNameCode + ", category=" + category); + boolean applyUser = StringUtils.hasText(userId) ; + boolean applyProvider = StringUtils.hasText(providerId) ;; + if (!applyUser && !applyProvider) { + throw new BusinessException("userId 涓� providerId 涓嶈兘鍚屾椂涓虹┖"); } - // 楠岃瘉瑙勫垯绫诲瀷鏄惁鍖归厤 - if (!ruleType.equals(pointsRule.getRuleType())) { - throw new BusinessException("瑙勫垯绫诲瀷涓嶅尮閰嶏紝鏈熸湜: " + pointsRule.getRuleType() + "锛屽疄闄�: " + ruleType); + // 鍒嗗埆鑾峰彇鐢ㄦ埛渚�/鎻愪緵鑰呬晶鏈�鏂扮敓鏁堣鍒欙紙鎸� points_winner 杩囨护锛�1鐢ㄦ埛銆�0鎻愪緵鑰咃級 + PointsRule userRule = null; + PointsRule providerRule = null; + if (applyUser) { + userRule = getLatestEffectiveRule(ruleType, ruleNameCode, category, 1); + if (userRule == null) { + throw new BusinessException("鏈壘鍒扮敤鎴蜂晶鐢熸晥瑙勫垯: ruleType=" + ruleType + ", ruleNameCode=" + ruleNameCode + ", category=" + category + ", points_winner=1"); + } + if (!ruleType.equals(userRule.getRuleType())) { + throw new BusinessException("鐢ㄦ埛渚ц鍒欑被鍨嬩笉鍖归厤锛屾湡鏈�: " + userRule.getRuleType() + "锛屽疄闄�: " + ruleType); + } + } + if (applyProvider) { + providerRule = getLatestEffectiveRule(ruleType, ruleNameCode, category, 0); + if (providerRule == null) { + throw new BusinessException("鏈壘鍒版彁渚涜�呬晶鐢熸晥瑙勫垯: ruleType=" + ruleType + ", ruleNameCode=" + ruleNameCode + ", category=" + category + ", points_winner=0"); + } + if (!ruleType.equals(providerRule.getRuleType())) { + throw new BusinessException("鎻愪緵鑰呬晶瑙勫垯绫诲瀷涓嶅尮閰嶏紝鏈熸湜: " + providerRule.getRuleType() + "锛屽疄闄�: " + ruleType); + } } - // 璁$畻绉垎鍊� - Integer basePoints = pointsRule.getPointsValue() != null ? pointsRule.getPointsValue() : 0; - Integer totalPoints = basePoints * count; - - // 濡傛灉鏄秷璐圭被鍨嬶紝绉垎涓鸿礋鏁� - if (ruleType == RuleTypeEnum.CONSUME.getCode()) { // 1琛ㄧず娑堣垂绫诲瀷 - totalPoints = -totalPoints; + // 璁$畻涓や晶绉垎鍙樺寲锛堝悇鑷寜瑙勫垯璁$畻锛� + int userPointsChange = 0; + int providerPointsChange = 0; + if (applyUser) { + int base = userRule.getPointsValue() != null ? userRule.getPointsValue() : 0; + int amount = base * count; + userPointsChange = (ruleType == RuleTypeEnum.CONSUME.getCode()) ? -Math.abs(amount) : Math.abs(amount); + } + if (applyProvider) { + int base = providerRule.getPointsValue() != null ? providerRule.getPointsValue() : 0; + int amount = base * count; + providerPointsChange = (ruleType == RuleTypeEnum.CONSUME.getCode()) ? -Math.abs(amount) : Math.abs(amount); } - // 妫�鏌ユ瘡鏃ョН鍒嗕笂闄� - if (pointsRule.getIsLimit() != null && pointsRule.getIsLimit() == 0) { // 0琛ㄧず鏈夋瘡鏃ヤ笂闄� - checkDailyLimitByRule(userId, unitId, pointsRule, totalPoints); + // 姣忔棩涓婇檺鏍¢獙锛堝垎鍒牎楠岋級 + if (applyUser && userRule.getIsLimit() != null && userRule.getIsLimit() == 0) { + checkDailyLimitByRule(userId, unitId, userRule, userPointsChange); + } + if (applyProvider && providerRule.getIsLimit() != null && providerRule.getIsLimit() == 0) { + checkDailyLimitByRule(providerId, providerId, providerRule, providerPointsChange); } - // 濡傛灉鏄墸绉垎鎿嶄綔锛屽厛妫�鏌ヤ綑棰濇槸鍚﹁冻澶� - if (totalPoints < 0) { - checkBalanceSufficient(userId, unitId, Math.abs(totalPoints)); + // 浣欓鏍¢獙锛堜粎鍦ㄦ墸鍑忔椂锛� + if (applyUser && userPointsChange < 0) { + checkBalanceSufficient(userId, unitId, Math.abs(userPointsChange)); + } + if (applyProvider && providerPointsChange < 0) { + checkBalanceSufficient(providerId, providerId, Math.abs(providerPointsChange)); } - // 鍒涘缓绉垎娴佹按璁板綍 - PointsFlow pointsFlow = new PointsFlow(); - pointsFlow.setUserId(userId); - pointsFlow.setUnitId(unitId); - pointsFlow.setDataType(ruleType); - pointsFlow.setDataCategory(addPointsFlowDTO.getCategory()); - pointsFlow.setPoints(totalPoints); - pointsFlow.setName(addPointsFlowDTO.getDescription() != null ? addPointsFlowDTO.getDescription() : pointsRule.getRuleDescription()); - pointsFlow.setFlowTime(LocalDateTime.now()); - pointsFlow.setRlueId(pointsRule.getId()); + // 鐢熸垚鐢ㄦ埛渚ф祦姘村苟鏇存柊璐︽埛 + if (applyUser && userPointsChange != 0) { + PointsFlow pointsFlow = new PointsFlow(); + pointsFlow.setUserId(userId); + pointsFlow.setUnitId(unitId); + pointsFlow.setDataType(ruleType); + pointsFlow.setDataCategory(addPointsFlowDTO.getCategory()); + pointsFlow.setPoints(userPointsChange); + pointsFlow.setName(addPointsFlowDTO.getDescription() != null ? addPointsFlowDTO.getDescription() : userRule.getRuleDescription()); + pointsFlow.setFlowTime(LocalDateTime.now()); + pointsFlow.setRlueId(userRule.getId()); - boolean saved = save(pointsFlow); - if (!saved) { - throw new BusinessException("淇濆瓨绉垎娴佹按澶辫触"); + boolean saved = save(pointsFlow); + if (!saved) { + throw new BusinessException("淇濆瓨绉垎娴佹按澶辫触"); + } + + updateUserPointsByRule(userId, unitId, userPointsChange); } - // 鏇存柊鐢ㄦ埛绉垎璐︽埛 - updateUserPointsByRule(userId, unitId, totalPoints); + // 鐢熸垚鎻愪緵鑰呬晶娴佹按骞舵洿鏂拌处鎴� + if (applyProvider && providerPointsChange != 0) { + PointsFlow providerFlow = new PointsFlow(); + providerFlow.setUserId(providerId); + providerFlow.setUnitId(providerId); + providerFlow.setDataType(ruleType); + providerFlow.setDataCategory(addPointsFlowDTO.getCategory()); + providerFlow.setPoints(providerPointsChange); + providerFlow.setName(addPointsFlowDTO.getDescription() != null ? addPointsFlowDTO.getDescription() : providerRule.getRuleDescription()); + providerFlow.setFlowTime(LocalDateTime.now()); + providerFlow.setRlueId(providerRule.getId()); + + boolean providerSaved = save(providerFlow); + if (!providerSaved) { + throw new BusinessException("淇濆瓨鎻愪緵鑰呯Н鍒嗘祦姘村け璐�"); + } + + updateProviderUnitPoints(providerId, providerPointsChange); + } return true; } @Override - public UserPoints getUserPointsTotal(Long userId) { - if (userId == null) { + public UserPoints getUserPointsTotal(String userId) { + if (!StringUtils.hasText(userId)) { throw new BusinessException("鐢ㄦ埛ID涓嶈兘涓簄ull"); } @@ -272,9 +322,25 @@ } /** + * 鏍规嵁ruleType銆乺uleNameCode銆乧ategory銆乸oints_winner鏌ヨ鐢熸晥鏃堕棿鏈�鏂扮殑绉垎瑙勫垯 + */ + private PointsRule getLatestEffectiveRule(Integer ruleType, String ruleNameCode, String category, Integer pointsWinner) { + QueryWrapper<PointsRule> wrapper = new QueryWrapper<>(); + wrapper.eq("deleted", 0) + .eq("is_enabled", 0) + .eq("rule_type", ruleType) + .eq("rule_name_code", ruleNameCode) + .eq("data_category", category) + .eq(pointsWinner != null, "points_winner", pointsWinner) + .orderByDesc("created_at") + .last("LIMIT 1"); + return pointsRuleService.getOne(wrapper); + } + + /** * 妫�鏌ユ瘡鏃ョН鍒嗕笂闄愶紙鍩轰簬瑙勫垯锛� */ - private void checkDailyLimitByRule(Long userId, Long unitId, PointsRule pointsRule, Integer currentPoints) { + private void checkDailyLimitByRule(String userId, String unitId, PointsRule pointsRule, Integer currentPoints) { // 鑾峰彇浠婃棩寮�濮嬪拰缁撴潫鏃堕棿 LocalDate today = LocalDate.now(); LocalDateTime startOfDay = today.atStartOfDay(); @@ -315,7 +381,7 @@ /** * 妫�鏌ョН鍒嗕綑棰濇槸鍚﹁冻澶� */ - private void checkBalanceSufficient(Long userId, Long unitId, Integer requiredPoints) { + private void checkBalanceSufficient(String userId, String unitId, Integer requiredPoints) { // 妫�鏌ヤ釜浜虹Н鍒嗕綑棰� QueryWrapper<UserPoints> userWrapper = new QueryWrapper<>(); userWrapper.eq("deleted", 0) @@ -371,7 +437,7 @@ /** * 鏇存柊鐢ㄦ埛绉垎 */ - private void updateUserPoints(Long userId, Long unitId, Integer pointsValue) { + private void updateUserPoints(String userId, String unitId, Integer pointsValue) { // 鏇存柊涓汉绉垎 QueryWrapper<UserPoints> userWrapper = new QueryWrapper<>(); userWrapper.eq("deleted", 0) @@ -412,7 +478,7 @@ /** * 鏍规嵁瑙勫垯鏇存柊鐢ㄦ埛绉垎璐︽埛 */ - private void updateUserPointsByRule(Long userId, Long unitId, Integer pointsValue) { + private void updateUserPointsByRule(String userId, String unitId, Integer pointsValue) { // 鏇存柊涓汉绉垎璐︽埛 QueryWrapper<UserPoints> userWrapper = new QueryWrapper<>(); userWrapper.eq("deleted", 0) @@ -499,4 +565,46 @@ userPointsMapper.updateById(unitPoints); } } + + /** + * 浠呮洿鏂版彁渚涜�咃紙鍗曚綅锛夌Н鍒嗚处鎴� + */ + private void updateProviderUnitPoints(String providerUnitId, Integer pointsValue) { + QueryWrapper<UserPoints> unitWrapper = new QueryWrapper<>(); + unitWrapper.eq("deleted", 0) + .eq("unit_id", providerUnitId); + + UserPoints unitPoints = userPointsMapper.selectOne(unitWrapper); + if (unitPoints == null) { + if (pointsValue < 0) { + throw new BusinessException("鎻愪緵鑰呯Н鍒嗕綑棰濅笉瓒筹紝鏃犳硶鎵i櫎绉垎"); + } + + unitPoints = new UserPoints(); + unitPoints.setUserId(null); + unitPoints.setUnitId(providerUnitId); + unitPoints.setBalance(pointsValue); + unitPoints.setTotalEarned(pointsValue > 0 ? pointsValue : 0); + unitPoints.setTotalConsumed(pointsValue < 0 ? Math.abs(pointsValue) : 0); + userPointsMapper.insert(unitPoints); + } else { + if (pointsValue < 0 && unitPoints.getBalance() + pointsValue < 0) { + throw new BusinessException("鎻愪緵鑰呯Н鍒嗕綑棰濅笉瓒筹紝褰撳墠浣欓: " + unitPoints.getBalance() + "锛岄渶瑕佹墸闄�: " + Math.abs(pointsValue)); + } + + unitPoints.setBalance(unitPoints.getBalance() + pointsValue); + + if (pointsValue > 0) { + unitPoints.setTotalEarned(unitPoints.getTotalEarned() != null ? + unitPoints.getTotalEarned() + pointsValue : pointsValue); + } + if (pointsValue < 0) { + unitPoints.setTotalConsumed(unitPoints.getTotalConsumed() != null ? + unitPoints.getTotalConsumed() + Math.abs(pointsValue) : Math.abs(pointsValue)); + } + + unitPoints.setUpdateTime(LocalDateTime.now()); + userPointsMapper.updateById(unitPoints); + } + } } diff --git a/src/main/java/com/webmanage/service/impl/ProductPricingServiceImpl.java b/src/main/java/com/webmanage/service/impl/ProductPricingServiceImpl.java index 0d59412..a5a63ee 100644 --- a/src/main/java/com/webmanage/service/impl/ProductPricingServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/ProductPricingServiceImpl.java @@ -162,11 +162,8 @@ } @Override - public List<ProductPricing> getPricingByProductId(Long productId) { + public List<ProductPricing> getPricingByProductId(String productId) { try { - if (productId == null) { - throw new BusinessException("浜у搧ID涓嶈兘涓虹┖"); - } return baseMapper.selectByProductId(productId); } catch (Exception e) { log.error("鏍规嵁浜у搧ID鏌ヨ瀹氫环澶辫触: ", e); diff --git a/src/main/java/com/webmanage/service/impl/UserPointsServiceImpl.java b/src/main/java/com/webmanage/service/impl/UserPointsServiceImpl.java index 5b69262..d54e621 100644 --- a/src/main/java/com/webmanage/service/impl/UserPointsServiceImpl.java +++ b/src/main/java/com/webmanage/service/impl/UserPointsServiceImpl.java @@ -23,7 +23,7 @@ public class UserPointsServiceImpl extends ServiceImpl<UserPointsMapper, UserPoints> implements UserPointsService { @Override - public PointsStatsVO getPersonalPointsStats(Long userId) { + public PointsStatsVO getPersonalPointsStats(String userId) { UserPoints userPoints = this.baseMapper.selectByUserId(userId); PointsStatsVO statsVO = new PointsStatsVO(); @@ -48,7 +48,7 @@ } @Override - public PointsStatsVO getUnitPointsStats(Long unitId) { + public PointsStatsVO getUnitPointsStats(String unitId) { UserPoints userPoints = this.baseMapper.selectByUnitId(unitId); PointsStatsVO statsVO = new PointsStatsVO(); @@ -86,7 +86,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public void updateUserPoints(Long userId, Long unitId, Integer points) { + public void updateUserPoints(String userId, String unitId, Integer points) { // 鏌ヨ鐢ㄦ埛绉垎璁板綍 LambdaQueryWrapper<UserPoints> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(UserPoints::getUserId, userId); diff --git a/src/main/java/com/webmanage/vo/CartItemVO.java b/src/main/java/com/webmanage/vo/CartItemVO.java index ab0275a..240e752 100644 --- a/src/main/java/com/webmanage/vo/CartItemVO.java +++ b/src/main/java/com/webmanage/vo/CartItemVO.java @@ -19,7 +19,7 @@ private Long pricingId; @ApiModelProperty("鍟嗗搧ID") - private Long productId; + private String productId; @ApiModelProperty("鍟嗗搧鍚嶇О") private String productName; diff --git a/src/main/java/com/webmanage/vo/CartVO.java b/src/main/java/com/webmanage/vo/CartVO.java index da86729..d81c7bb 100644 --- a/src/main/java/com/webmanage/vo/CartVO.java +++ b/src/main/java/com/webmanage/vo/CartVO.java @@ -16,10 +16,10 @@ public class CartVO { @ApiModelProperty("鐢ㄦ埛ID") - private Long userId; + private String userId; @ApiModelProperty("鍗曚綅ID") - private Long unitId; + private String unitId; @ApiModelProperty("璐墿杞﹀晢鍝侀」鍒楄〃") private List<CartItemVO> items; diff --git a/src/main/java/com/webmanage/vo/OrderDetailItemVO.java b/src/main/java/com/webmanage/vo/OrderDetailItemVO.java index cce4f5b..33a23e5 100644 --- a/src/main/java/com/webmanage/vo/OrderDetailItemVO.java +++ b/src/main/java/com/webmanage/vo/OrderDetailItemVO.java @@ -20,7 +20,7 @@ private Long pricingId; @ApiModelProperty("浜у搧ID") - private Long productId; + private String productId; @ApiModelProperty("浜у搧濂椾欢鍚嶇О") private String suiteName; @@ -56,7 +56,7 @@ private BigDecimal totalPrice; @ApiModelProperty("浜у搧鎻愪緵鑰匢D") - private Long providerId; + private String providerId; @ApiModelProperty("浜у搧鎻愪緵鑰呭悕绉�") private String providerName; diff --git a/src/main/java/com/webmanage/vo/OrderDetailVO.java b/src/main/java/com/webmanage/vo/OrderDetailVO.java index 282df60..6e14e2a 100644 --- a/src/main/java/com/webmanage/vo/OrderDetailVO.java +++ b/src/main/java/com/webmanage/vo/OrderDetailVO.java @@ -19,13 +19,13 @@ private String orderId; @ApiModelProperty("浜у搧ID") - private Long productId; + private String productId; @ApiModelProperty("鐢ㄦ埛ID") - private Long userId; + private String userId; @ApiModelProperty("鍗曚綅ID") - private Long unitId; + private String unitId; @ApiModelProperty("浜у搧鍚嶇О") private String productName; @@ -34,7 +34,7 @@ private String providerName; @ApiModelProperty("鎻愪緵鑰匢D") - private Long providerId; + private String providerId; @ApiModelProperty("鐢宠鏃堕棿") private LocalDateTime applyTime; diff --git a/src/main/resources/mapper/ApprovalRecordMapper.xml b/src/main/resources/mapper/ApprovalRecordMapper.xml index 11d9bae..bc7571b 100644 --- a/src/main/resources/mapper/ApprovalRecordMapper.xml +++ b/src/main/resources/mapper/ApprovalRecordMapper.xml @@ -30,8 +30,8 @@ <select id="selectApprovalRecordPage" resultMap="BaseResultMap"> SELECT ar.<include refid="Base_Column_List"/> - FROM approval_record ar - LEFT JOIN order_info oi ON ar.order_id = oi.order_id + FROM tb_approval_record ar + LEFT JOIN tb_order_info oi ON ar.order_id = oi.order_id WHERE ar.deleted = 0 <if test="orderId != null and orderId != ''"> AND ar.order_id = #{orderId} @@ -80,15 +80,15 @@ <select id="selectByOrderId" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM approval_record + FROM tb_approval_record WHERE deleted = 0 AND order_id = #{orderId} ORDER BY created_at ASC </select> <select id="selectPendingApprovalPage" resultMap="BaseResultMap"> SELECT ar.<include refid="Base_Column_List"/> - FROM approval_record ar - LEFT JOIN order_info oi ON ar.order_id = oi.order_id + FROM tb_approval_record ar + LEFT JOIN tb_order_info oi ON ar.order_id = oi.order_id WHERE ar.deleted = 0 AND ar.approval_result IS NULL <if test="orderId != null and orderId != ''"> AND ar.order_id = #{orderId} diff --git a/src/main/resources/mapper/CartMapper.xml b/src/main/resources/mapper/CartMapper.xml index 3d56c30..22f7e4c 100644 --- a/src/main/resources/mapper/CartMapper.xml +++ b/src/main/resources/mapper/CartMapper.xml @@ -4,10 +4,10 @@ <resultMap id="BaseResultMap" type="com.webmanage.entity.Cart"> <id column="id" property="id" jdbcType="BIGINT"/> - <result column="user_id" property="userId" jdbcType="BIGINT"/> - <result column="unit_id" property="unitId" jdbcType="BIGINT"/> + <result column="user_id" property="userId" jdbcType="VARCHAR"/> + <result column="unit_id" property="unitId" jdbcType="VARCHAR"/> <result column="pricing_id" property="pricingId" jdbcType="BIGINT"/> - <result column="product_id" property="productId" jdbcType="BIGINT"/> + <result column="product_id" property="productId" jdbcType="VARCHAR"/> <result column="product_name" property="productName" jdbcType="VARCHAR"/> <result column="suite_name" property="suiteName" jdbcType="VARCHAR"/> <result column="sales_form" property="salesForm" jdbcType="VARCHAR"/> @@ -37,40 +37,48 @@ <select id="selectByUserIdAndUnitId" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM cart + FROM tb_cart WHERE deleted = 0 - AND user_id = #{userId} - AND unit_id = #{unitId} + AND user_id = #{userId} + <if test="unitId !=null and unitId != ''"> + AND unit_id = #{unitId} + </if> ORDER BY add_time DESC </select> <select id="selectByUserIdUnitIdAndPricingId" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM cart - WHERE deleted = 0 - AND user_id = #{userId} - AND unit_id = #{unitId} + FROM tb_cart + WHERE deleted = 0 + AND user_id = #{userId} + <if test="unitId != '' and unitId != null"> + AND unit_id = #{unitId} + </if> AND pricing_id = #{pricingId} LIMIT 1 </select> <select id="countByUserIdAndUnitId" resultType="java.lang.Integer"> SELECT COUNT(*) - FROM cart + FROM tb_cart WHERE deleted = 0 - AND user_id = #{userId} - AND unit_id = #{unitId} + AND user_id = #{userId} + <if test="unitId != '' and unitId != null"> + AND unit_id = #{unitId} + </if> </select> <select id="sumTotalAmountByUserIdAndUnitId" resultType="java.math.BigDecimal"> SELECT COALESCE(SUM(total_price), 0) - FROM cart + FROM tb_cart WHERE deleted = 0 - AND user_id = #{userId} - AND unit_id = #{unitId} + AND user_id = #{userId} + <if test="unitId != '' and unitId != null"> + AND unit_id = #{unitId} + </if> </select> <delete id="deleteByCustomerCondition"> - delete from cart where id = #{id} + delete from tb_cart where id = #{id} </delete> </mapper> diff --git a/src/main/resources/mapper/OrderAttachmentMapper.xml b/src/main/resources/mapper/OrderAttachmentMapper.xml index 01114a6..7643e8c 100644 --- a/src/main/resources/mapper/OrderAttachmentMapper.xml +++ b/src/main/resources/mapper/OrderAttachmentMapper.xml @@ -34,7 +34,7 @@ <select id="selectByOrderId" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM order_attachment + FROM tb_order_attachment WHERE deleted = 0 AND order_id = #{orderId} ORDER BY created_at ASC </select> diff --git a/src/main/resources/mapper/OrderDetailMapper.xml b/src/main/resources/mapper/OrderDetailMapper.xml index ccc67f5..ccc2674 100644 --- a/src/main/resources/mapper/OrderDetailMapper.xml +++ b/src/main/resources/mapper/OrderDetailMapper.xml @@ -38,7 +38,7 @@ <select id="selectByOrderId" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM order_detail + FROM tb_order_detail WHERE deleted = 0 AND order_id = #{orderId} ORDER BY created_at ASC </select> diff --git a/src/main/resources/mapper/OrderEvaluationMapper.xml b/src/main/resources/mapper/OrderEvaluationMapper.xml index 8a22960..a41ca54 100644 --- a/src/main/resources/mapper/OrderEvaluationMapper.xml +++ b/src/main/resources/mapper/OrderEvaluationMapper.xml @@ -34,7 +34,7 @@ <select id="selectByOrderId" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM order_evaluation + FROM tb_order_evaluation WHERE deleted = 0 AND order_id = #{orderId} LIMIT 1 </select> diff --git a/src/main/resources/mapper/OrderInfoMapper.xml b/src/main/resources/mapper/OrderInfoMapper.xml index 0d38b6a..d65043b 100644 --- a/src/main/resources/mapper/OrderInfoMapper.xml +++ b/src/main/resources/mapper/OrderInfoMapper.xml @@ -37,12 +37,12 @@ <select id="selectBuyerOrderPage" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM order_info + FROM tb_order_info WHERE deleted = 0 <if test="userId != null"> AND user_id = #{userId} </if> - <if test="unitId != null"> + <if test="unitId != null and unitId != ''"> AND unit_id = #{unitId} </if> <if test="orderStatus != null and orderStatus != ''"> @@ -98,9 +98,9 @@ <select id="selectSellerOrderPage" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM order_info + FROM tb_order_info WHERE deleted = 0 - <if test="providerId != null"> + <if test="providerId != null and providerId != ''"> AND provider_id = #{providerId} </if> <if test="orderStatus != null and orderStatus != ''"> @@ -150,7 +150,7 @@ <select id="selectPendingApprovalOrderPage" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM order_info + FROM tb_order_info WHERE deleted = 0 AND order_status IN ('寰呬笂浼犳枃浠�', '寰呮巿鏉�', '寰呬氦鏄撶‘璁�', '宸插畬鎴�', '宸茶瘎浠�') <if test="orderStatus != null and orderStatus != ''"> @@ -190,4 +190,129 @@ </choose> </select> + <!-- 鍒嗛〉鏌ヨ涔板璁㈠崟鍒楄〃锛堟敮鎸佷骇鍝佹潯浠讹級 --> + <select id="selectBuyerOrderPageWithProductConditions" resultMap="BaseResultMap"> + SELECT + <include refid="Base_Column_List"/> + FROM tb_order_info + WHERE deleted = 0 + <if test="userId != null"> + AND user_id = #{userId} + </if> + <if test="unitId != null and unitId != ''"> + AND unit_id = #{unitId} + </if> + <if test="orderStatus != null and orderStatus != ''"> + AND order_status = #{orderStatus} + </if> + <if test="paymentStatus != null and paymentStatus != ''"> + AND payment_status = #{paymentStatus} + </if> + <if test="paymentType != null and paymentType != ''"> + AND payment_type = #{paymentType} + </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="createTimeStart != null and createTimeStart != ''"> + AND created_at >= #{createTimeStart}::timestamp + </if> + <if test="createTimeEnd != null and createTimeEnd != ''"> + AND created_at <= #{createTimeEnd}::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="selectSellerOrderPageWithProductConditions" resultMap="BaseResultMap"> + SELECT + <include refid="Base_Column_List"/> + FROM tb_order_info + WHERE deleted = 0 + <if test="providerId != null and providerId != ''"> + AND provider_id = #{providerId} + </if> + <if test="orderStatus != null and orderStatus != ''"> + AND order_status = #{orderStatus} + </if> + <if test="paymentStatus != null and paymentStatus != ''"> + AND payment_status = #{paymentStatus} + </if> + <if test="productName != null and productName != ''"> + AND product_name LIKE CONCAT('%', #{productName}, '%') + </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="createTimeStart != null and createTimeStart != ''"> + AND created_at >= #{createTimeStart}::timestamp + </if> + <if test="createTimeEnd != null and createTimeEnd != ''"> + AND created_at <= #{createTimeEnd}::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> + </mapper> diff --git a/src/main/resources/mapper/PointsMapper.xml b/src/main/resources/mapper/PointsMapper.xml index 88988e5..5da436a 100644 --- a/src/main/resources/mapper/PointsMapper.xml +++ b/src/main/resources/mapper/PointsMapper.xml @@ -5,7 +5,7 @@ <!-- 鍒嗛〉鏌ヨ绉垎涓昏〃 --> <select id="selectPointsMainPage" resultType="com.webmanage.entity.Points"> SELECT * - FROM points + FROM tb_points WHERE deleted = 0 <if test="queryDTO.pointsName != null and queryDTO.pointsName != ''"> AND points_name LIKE CONCAT('%', #{queryDTO.pointsName}, '%') diff --git a/src/main/resources/mapper/ProductMapper.xml b/src/main/resources/mapper/ProductMapper.xml new file mode 100644 index 0000000..3902795 --- /dev/null +++ b/src/main/resources/mapper/ProductMapper.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.webmanage.mapper.ProductMapper"> + + <!-- 缁撴灉鏄犲皠 --> + <resultMap id="BaseResultMap" type="com.webmanage.entity.Product"> + <id column="id" property="id" jdbcType="BIGINT"/> + <result column="product_name" property="productName" jdbcType="VARCHAR"/> + <result column="product_code" property="productCode" jdbcType="VARCHAR"/> + <result column="product_type" property="productType" jdbcType="VARCHAR"/> + <result column="category" property="category" jdbcType="VARCHAR"/> + <result column="description" property="description" jdbcType="VARCHAR"/> + <result column="provider_id" property="providerId" jdbcType="BIGINT"/> + <result column="provider_name" property="providerName" jdbcType="VARCHAR"/> + <result column="provider_type" property="providerType" jdbcType="VARCHAR"/> + <result column="status" property="status" jdbcType="VARCHAR"/> + <result column="audit_status" property="auditStatus" jdbcType="VARCHAR"/> + <result column="tags" property="tags" jdbcType="VARCHAR"/> + <result column="cover_image" property="coverImage" jdbcType="VARCHAR"/> + <result column="demo_url" property="demoUrl" jdbcType="VARCHAR"/> + <result column="doc_url" property="docUrl" jdbcType="VARCHAR"/> + <result column="created_at" property="createdAt" jdbcType="TIMESTAMP"/> + <result column="updated_at" property="updatedAt" jdbcType="TIMESTAMP"/> + <result column="created_by" property="createdBy" jdbcType="BIGINT"/> + <result column="updated_by" property="updatedBy" jdbcType="BIGINT"/> + <result column="deleted" property="deleted" jdbcType="INTEGER"/> + </resultMap> + + <!-- 鍩虹瀛楁 --> + <sql id="Base_Column_List"> + id, product_name, product_code, product_type, category, description, + provider_id, provider_name, provider_type, status, audit_status, + tags, cover_image, demo_url, doc_url, created_at, updated_at, + created_by, updated_by, deleted + </sql> + + <!-- 鏍规嵁鏉′欢鏌ヨ浜у搧鍒楄〃 --> + <select id="selectProductList" resultMap="BaseResultMap"> + SELECT + <include refid="Base_Column_List"/> + FROM tb_product + WHERE deleted = 0 + <if test="productName != null and productName != ''"> + AND product_name LIKE CONCAT('%', #{productName}, '%') + </if> + <if test="productType != null and productType != ''"> + AND product_type = #{productType} + </if> + <if test="status != null and status != ''"> + AND status = #{status} + </if> + <if test="providerId != null"> + AND provider_id = #{providerId} + </if> + ORDER BY created_at DESC + </select> + + <!-- 鏍规嵁ID鏌ヨ浜у搧璇︽儏 --> + <select id="selectProductById" resultMap="BaseResultMap"> + SELECT + <include refid="Base_Column_List"/> + FROM tb_product + WHERE id = #{id} AND deleted = 0 + </select> + + <!-- 鏇存柊浜у搧鐘舵�� --> + <update id="updateProductStatus"> + UPDATE tb_product + SET status = #{status}, updated_at = CURRENT_TIMESTAMP + WHERE id = #{id} AND deleted = 0 + </update> + + <!-- 鏇存柊浜у搧瀹℃牳鐘舵�� --> + <update id="updateProductAuditStatus"> + UPDATE tb_product + SET audit_status = #{auditStatus}, updated_at = CURRENT_TIMESTAMP + WHERE id = #{id} AND deleted = 0 + </update> + +</mapper> diff --git a/src/main/resources/mapper/ProductPricingMapper.xml b/src/main/resources/mapper/ProductPricingMapper.xml index 1d5398f..fb76f20 100644 --- a/src/main/resources/mapper/ProductPricingMapper.xml +++ b/src/main/resources/mapper/ProductPricingMapper.xml @@ -15,9 +15,9 @@ <result column="points_price" property="pointsPrice" jdbcType="DECIMAL"/> <result column="currency_price" property="currencyPrice" jdbcType="DECIMAL"/> <result column="is_active" property="isActive" jdbcType="BOOLEAN"/> - <result column="product_id" property="productId" jdbcType="BIGINT"/> + <result column="product_id" property="productId" jdbcType="VARCHAR"/> <result column="product_name" property="productName" jdbcType="VARCHAR"/> - <result column="provider_id" property="providerId" jdbcType="BIGINT"/> + <result column="provider_id" property="providerId" jdbcType="VARCHAR"/> <result column="provider_name" property="providerName" jdbcType="VARCHAR"/> <result column="description" property="description" jdbcType="VARCHAR"/> <result column="created_at" property="createdAt" jdbcType="TIMESTAMP"/> @@ -38,7 +38,7 @@ <select id="selectProductPricingPage" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM product_pricing + FROM tb_product_pricing WHERE deleted = 0 <if test="productId != null"> AND product_id = #{productId} @@ -50,7 +50,7 @@ <select id="selectByProductId" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM product_pricing + FROM tb_product_pricing WHERE deleted = 0 AND product_id = #{productId} ORDER BY created_at DESC </select> @@ -59,7 +59,7 @@ <select id="selectByCondition" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List"/> - FROM product_pricing + FROM tb_product_pricing WHERE deleted = 0 <if test="suiteName != null and suiteName != ''"> AND suite_name LIKE CONCAT('%', #{suiteName}, '%') diff --git a/src/main/resources/mapper/ReportResultSubmissionMapper.xml b/src/main/resources/mapper/ReportResultSubmissionMapper.xml new file mode 100644 index 0000000..447d8ef --- /dev/null +++ b/src/main/resources/mapper/ReportResultSubmissionMapper.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.webmanage.mapper.ReportResultSubmissionMapper"> + + <!-- 鏍规嵁鏉′欢鏌ヨ浜у搧ID鍒楄〃 --> + <select id="selectProductIdsByConditions" resultType="java.lang.String"> + SELECT id + FROM tb_report_result_submission + WHERE deleted = '0' + <if test="industryId != null and industryId != ''"> + AND industrial_chain_id = #{industryId} + </if> + <if test="unitProjectId != null and unitProjectId != ''"> + AND important_area_id = #{unitProjectId} + </if> + <if test="productTypeId != null and productTypeId != ''"> + AND type_id = #{productTypeId} + </if> + <if test="productSubTypeId != null and productSubTypeId != ''"> + AND type_child_id = #{productSubTypeId} + </if> + </select> + +</mapper> diff --git a/src/main/resources/mapper/UserPointsMapper.xml b/src/main/resources/mapper/UserPointsMapper.xml index 081cd84..7c7e8ef 100644 --- a/src/main/resources/mapper/UserPointsMapper.xml +++ b/src/main/resources/mapper/UserPointsMapper.xml @@ -5,7 +5,7 @@ <!-- 鏍规嵁鐢ㄦ埛ID鏌ヨ绉垎淇℃伅 --> <select id="selectByUserId" resultType="com.webmanage.entity.UserPoints"> SELECT * - FROM user_points + FROM tb_user_points WHERE user_id = #{userId} AND deleted = 0 LIMIT 1 @@ -14,7 +14,7 @@ <!-- 鏍规嵁鍗曚綅ID鏌ヨ绉垎淇℃伅 --> <select id="selectByUnitId" resultType="com.webmanage.entity.UserPoints"> SELECT * - FROM user_points + FROM tb_user_points WHERE unit_id = #{unitId} AND deleted = 0 LIMIT 1 -- Gitblit v1.8.0