From 2116b5b5802c0de0f126f85cf2ac56a732639e82 Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Wed, 02 Jul 2025 16:39:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into xin --- oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderIncomeDetailQueryCriteria.java | 43 oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderReminderMapper.java | 22 oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderRecordQueryCriteria.java | 53 oying-system/src/main/java/com/oying/modules/rider/service/RiderIncomeDetailService.java | 62 + oying-system/src/main/java/com/oying/modules/rider/domain/RiderIncomeDetail.java | 74 + oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderWalletInfoServiceImpl.java | 97 + oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderOperationQueryCriteria.java | 43 oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderOperation.java | 56 oying-system/src/main/java/com/oying/modules/pc/store/service/StoreCreateService.java | 3 oying-system/src/main/java/com/oying/modules/rider/rest/RiderIncomeDetailController.java | 73 + oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderReminderQueryCriteria.java | 50 oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java | 90 + oying-system/src/main/java/com/oying/modules/rider/service/RiderWalletInfoService.java | 66 + oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfoHttp.java | 25 oying-system/src/main/java/com/oying/modules/rider/domain/RiderWithdrawalRecord.java | 79 + oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java | 59 oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreMapper.java | 7 oying-system/src/main/java/com/oying/modules/rider/domain/RiderWalletInfo.java | 69 + oying-system/src/main/resources/mapper/rider/RiderOrderReminderMapper.xml | 71 + oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java | 3 oying-system/src/main/java/com/oying/modules/rider/utils/RiderSourceHttpUtils.java | 108 + oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java | 64 oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java | 7 oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderWithdrawalRecordQueryCriteria.java | 48 oying-system/src/main/java/com/oying/modules/rider/rest/RiderInfoController.java | 73 + oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderOperationMapper.java | 22 oying-system/src/main/java/com/oying/modules/rider/service/RiderWithdrawalRecordService.java | 59 oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderWalletInfoQueryCriteria.java | 29 oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderReminderService.java | 59 oying-system/src/main/resources/mapper/pc/category/PlatformCategoryMapper.xml | 4 oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java | 6 oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderOperationService.java | 59 oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderWithdrawalRecordServiceImpl.java | 91 + oying-system/src/main/resources/mapper/rider/RiderOrderRecordMapper.xml | 87 + oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java | 4 oying-common/src/main/java/com/oying/utils/DuplicateKeyExceptionUtil.java | 51 oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreController.java | 3 oying-system/src/main/java/com/oying/modules/rider/mapper/RiderWalletInfoMapper.java | 22 oying-system/src/main/java/com/oying/modules/rider/rest/RiderWalletInfoController.java | 74 + oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java | 18 oying-system/src/main/resources/mapper/rider/RiderIncomeDetailMapper.xml | 61 oying-system/src/main/java/com/oying/modules/pc/category/view/PlatformCategoryAdminView.java | 2 oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java | 9 oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderReminderController.java | 73 + oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderInfoQueryCriteria.java | 42 oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java | 29 oying-system/src/main/resources/mapper/rider/RiderWithdrawalRecordMapper.xml | 72 + oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml | 4 oying-system/src/main/resources/mapper/rider/RiderWalletInfoMapper.xml | 47 oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java | 12 oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml | 20 oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java | 33 oying-system/src/main/java/com/oying/modules/rider/domain/RiderInfo.java | 74 + oying-system/src/main/java/com/oying/modules/rider/rest/RiderWithdrawalRecordController.java | 73 + oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderSeller.java | 16 oying-common/src/main/java/com/oying/exception/handler/GlobalExceptionHandler.java | 16 oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfo.java | 43 oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java | 151 ++ oying-system/src/main/resources/mapper/rider/RiderOrderOperationMapper.xml | 59 oying-system/src/main/java/com/oying/modules/rider/service/RiderInfoService.java | 72 + oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderIncomeDetailServiceImpl.java | 89 + oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java | 22 oying-system/src/main/java/com/oying/modules/rider/mapper/RiderWithdrawalRecordMapper.java | 22 oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderReminder.java | 65 + oying-system/src/main/java/com/oying/modules/rider/mapper/RiderInfoMapper.java | 22 oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderOperationServiceImpl.java | 84 + oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderReminderServiceImpl.java | 87 + oying-common/src/main/java/com/oying/config/webConfig/ConfigurerAdapter.java | 1 oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreCreateServiceImpl.java | 5 oying-system/src/main/resources/mapper/rider/RiderInfoMapper.xml | 57 oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderRecordMapper.java | 22 oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java | 18 oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java | 99 + oying-system/src/main/java/com/oying/modules/rider/mapper/RiderIncomeDetailMapper.java | 22 oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderRecordController.java | 73 + oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderOperationController.java | 73 + oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java | 91 + 77 files changed, 3,626 insertions(+), 67 deletions(-) diff --git a/oying-common/src/main/java/com/oying/config/webConfig/ConfigurerAdapter.java b/oying-common/src/main/java/com/oying/config/webConfig/ConfigurerAdapter.java index b8b60b1..358584b 100644 --- a/oying-common/src/main/java/com/oying/config/webConfig/ConfigurerAdapter.java +++ b/oying-common/src/main/java/com/oying/config/webConfig/ConfigurerAdapter.java @@ -70,6 +70,7 @@ config.setDateFormat("yyyy-MM-dd HH:mm:ss"); // 开启引用检测,枚举支持 config.setWriterFeatures( + JSONWriter.Feature.WriteLongAsString, JSONWriter.Feature.WriteEnumUsingToString, JSONWriter.Feature.ReferenceDetection ); diff --git a/oying-common/src/main/java/com/oying/exception/handler/GlobalExceptionHandler.java b/oying-common/src/main/java/com/oying/exception/handler/GlobalExceptionHandler.java index 1c92ae1..f33a0bb 100644 --- a/oying-common/src/main/java/com/oying/exception/handler/GlobalExceptionHandler.java +++ b/oying-common/src/main/java/com/oying/exception/handler/GlobalExceptionHandler.java @@ -1,10 +1,12 @@ package com.oying.exception.handler; +import com.oying.exception.BadRequestException; import com.oying.exception.EntityExistException; import com.oying.exception.EntityNotFoundException; -import lombok.extern.slf4j.Slf4j; -import com.oying.exception.BadRequestException; +import com.oying.utils.DuplicateKeyExceptionUtil; import com.oying.utils.ThrowableUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.dao.DuplicateKeyException; import org.springframework.http.ResponseEntity; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.validation.FieldError; @@ -89,6 +91,16 @@ } /** + * 处理 DuplicateKeyException + */ + @ExceptionHandler(value = DuplicateKeyException.class) + public ResponseEntity<ApiError> handleDuplicateKeyException(DuplicateKeyException e) { + // 打印堆栈信息 + log.error(ThrowableUtil.getStackTrace(e)); + return buildResponseEntity(ApiError.error(BAD_REQUEST.value(), DuplicateKeyExceptionUtil.getDisplayMessage(e))); + } + + /** * 统一返回 */ private ResponseEntity<ApiError> buildResponseEntity(ApiError apiError) { diff --git a/oying-common/src/main/java/com/oying/utils/DuplicateKeyExceptionUtil.java b/oying-common/src/main/java/com/oying/utils/DuplicateKeyExceptionUtil.java new file mode 100644 index 0000000..6132e97 --- /dev/null +++ b/oying-common/src/main/java/com/oying/utils/DuplicateKeyExceptionUtil.java @@ -0,0 +1,51 @@ +package com.oying.utils; + +import cn.hutool.core.map.MapUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.dao.DuplicateKeyException; + +import java.sql.SQLException; +import java.util.Map; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +@Slf4j +public class DuplicateKeyExceptionUtil { + + public static final Map<String, String> INDEX_MAPPING = MapUtil.ofEntries( + MapUtil.entry("pc_store.uk_store_name", "店铺名称") + ); + + /** + * 获取错误消息 + */ + public static String getDisplayMessage(DuplicateKeyException e) { + try { + String indexName = findMySQLDuplicateKey(e); + String fieldDisplayName = INDEX_MAPPING.getOrDefault(indexName, indexName); + return Optional.ofNullable(fieldDisplayName).map(o -> o + "已存在").orElse(e.getMessage()); + } catch (Exception ex) { + log.error("解析'DuplicateKeyException'消息失败", ex); + return e.getMessage(); + } + } + + /** + * 提取索引名称 + */ + public static String findMySQLDuplicateKey(DuplicateKeyException e) { + if (e.getCause() instanceof SQLException) { + SQLException sqlEx = (SQLException) e.getCause(); + if (sqlEx.getErrorCode() == 1062) { // MySQL duplicate key error code + String errorMsg = sqlEx.getMessage(); + // 使用正则提取索引名 + Matcher matcher = Pattern.compile("for key '(.+?)'").matcher(errorMsg); + if (matcher.find()) { + return matcher.group(1); + } + } + } + return null; + } +} diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderSeller.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderSeller.java index f6b81ae..763f274 100644 --- a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderSeller.java +++ b/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrderSeller.java @@ -26,22 +26,30 @@ @ApiModelProperty(value = "id") private Integer id; - @NotNull + @ApiModelProperty(value = "orderId") private Integer orderId; - @NotBlank + + @ApiModelProperty(value = "storeId") + private Integer storeId; + + @ApiModelProperty(value = "messageType") private String messageType; - @NotBlank + @ApiModelProperty(value = "messageContent") private String messageContent; - @NotBlank + @ApiModelProperty(value = "link") private String link; + + @ApiModelProperty(value = "flag") + private Integer flag=0; + // @ApiModelProperty(value = "createTime") // private Timestamp createTime; diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java new file mode 100644 index 0000000..f33e962 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderSellerDTO.java @@ -0,0 +1,18 @@ +package com.oying.modules.message.domain.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +public class MessageOrderSellerDTO { + + private Integer orderId; + + private String messageType; + + private String messageContent; + +} diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java index be1783a..2fd121f 100644 --- a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java +++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderSellerMapper.java @@ -19,4 +19,8 @@ IPage<MessageOrderSeller> findAll(@Param("criteria") MessageOrderSellerQueryCriteria criteria, Page<Object> page); List<MessageOrderSeller> findAll(@Param("criteria") MessageOrderSellerQueryCriteria criteria); + + List<MessageOrderSeller> findByStoreId(String storeId); + + Boolean updateMessageOrderSellerRead(Integer orderId); } diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java index 80456f1..6fcf7d7 100644 --- a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java +++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderSellerController.java @@ -1,8 +1,10 @@ package com.oying.modules.message.rest; +import cn.hutool.core.bean.BeanUtil; import com.oying.annotation.Log; import com.oying.modules.message.domain.MessageOrderSeller; import com.oying.modules.message.domain.MessageOrderSeller; +import com.oying.modules.message.domain.dto.MessageOrderSellerDTO; import com.oying.modules.message.service.MessageOrderSellerService; import com.oying.modules.message.domain.dto.MessageOrderSellerQueryCriteria; import com.oying.utils.R; @@ -74,16 +76,62 @@ // return new ResponseEntity<>(HttpStatus.OK); // } - //订单状态变化通知 - @GetMapping("/status/{order_id}") - @ApiOperation("查询一条订单状态变化通知") - public R<String> getMessageOrderSeller(@PathVariable Integer order_id) { - MessageOrderSeller messageOrderSeller = messageOrderSellerService.findByOrderId(order_id); - String message = messageOrderSeller.getMessageType(); +// //订单状态变化通知 +// @GetMapping("/status/{order_id}") +// @ApiOperation("查询一条订单状态变化通知") +// public R<String> getMessageOrderSeller(@PathVariable Integer order_id) { +// MessageOrderSeller messageOrderSeller = messageOrderSellerService.findByOrderId(order_id); +// String message = messageOrderSeller.getMessageType(); +// +//// return new ResponseEntity<>(message, HttpStatus.OK); +// return R.success(message); +// } + //根据store_id 返回list订单状态变化通知 + @GetMapping("/status/store/{store_id}") + @ApiOperation("根据store_id 返回list订单状态变化通知") + public R<List<MessageOrderSellerDTO>> getMessageOrderSeller(@PathVariable String store_id) { + List<MessageOrderSeller> messageOrderSeller = messageOrderSellerService.findByStoreId(store_id); + //转换为MessageOrderSellerDTO huto tools + List<MessageOrderSellerDTO> dtoList = BeanUtil.copyToList(messageOrderSeller, MessageOrderSellerDTO.class); + //判断store_id存在 + if (messageOrderSeller == null) { + return R.fail("store_id不存在"); + }else{return R.success(dtoList);} -// return new ResponseEntity<>(message, HttpStatus.OK); - return R.success(message); } + //让前端标记已读 + @PostMapping("/read/{order_id}") + @ApiOperation("让前端标记已读 按条") + public R<String> getMessageOrderSellerRead(@PathVariable Integer order_id) { + if(messageOrderSellerService.updateMessageOrderSellerRead(order_id)){ + return R.success("已读"); + }else{ + return R.fail("id不存在"); + } + + + } + + //让后端队友更新我的表 + @PostMapping("/update/seller") + @ApiOperation("让后端队友更新消息表") + public R<String> updateMessageOrderSeller(@RequestBody MessageOrderSeller resources) { + //插入一条数据 + if(messageOrderSellerService.saveOrUpdate(resources)) + return R.success("更新成功"); + return R.fail("更新失败"); +// if(messageOrderSellerService.updateById(resources)){ +// return R.success("更新成功"); +// }else{ +// return R.fail("更新失败"); +// } + } + + + + + + //订单送达通知 @GetMapping("/deliver/{order_id}") @ApiOperation("查询一条订单送达通知") diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java index 29d672b..c4e5361 100644 --- a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java +++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderSellerService.java @@ -1,9 +1,8 @@ package com.oying.modules.message.service; -import com.oying.modules.message.domain.MessageOrderBuyer; import com.oying.modules.message.domain.MessageOrderSeller; import com.oying.modules.message.domain.dto.MessageOrderSellerQueryCriteria; -import java.util.Map; + import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; @@ -59,4 +58,8 @@ */ void download(List<MessageOrderSeller> all, HttpServletResponse response) throws IOException; public MessageOrderSeller findByOrderId(Integer orderId) ; + + List<MessageOrderSeller> findByStoreId(String storeId); + + boolean updateMessageOrderSellerRead(Integer orderId); } diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java index 1668632..25d8344 100644 --- a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java +++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderSellerServiceImpl.java @@ -1,7 +1,6 @@ package com.oying.modules.message.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.oying.modules.message.domain.MessageOrderBuyer; import com.oying.modules.message.domain.MessageOrderSeller; import com.oying.utils.FileUtil; import lombok.RequiredArgsConstructor; @@ -13,12 +12,11 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.oying.utils.PageUtil; -import java.util.List; -import java.util.Map; + +import java.util.*; import java.io.IOException; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.LinkedHashMap; + import com.oying.utils.PageResult; /** @@ -81,4 +79,14 @@ public MessageOrderSeller findByOrderId(Integer orderId) { return baseMapper.selectOne(new QueryWrapper<MessageOrderSeller>().eq("order_id", orderId)); } + + @Override + public List<MessageOrderSeller> findByStoreId(String storeId) { + return messageOrderSellerMapper.findByStoreId(storeId); + } + + @Override + public boolean updateMessageOrderSellerRead(Integer orderId) { + return messageOrderSellerMapper.updateMessageOrderSellerRead(orderId); + } } diff --git a/oying-system/src/main/java/com/oying/modules/pc/category/view/PlatformCategoryAdminView.java b/oying-system/src/main/java/com/oying/modules/pc/category/view/PlatformCategoryAdminView.java index be1d942..9c61307 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/category/view/PlatformCategoryAdminView.java +++ b/oying-system/src/main/java/com/oying/modules/pc/category/view/PlatformCategoryAdminView.java @@ -14,6 +14,8 @@ private Integer sortWeight; + private Long iconId; + private String iconUrl; private Integer active; diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java index 035c778..149958d 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java +++ b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductController.java @@ -11,11 +11,13 @@ import com.oying.modules.pc.product.service.ProductImageService; import com.oying.modules.pc.product.service.ProductLabelService; import com.oying.modules.pc.product.service.ProductService; +import com.oying.utils.PageResult; import com.oying.utils.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -65,7 +67,13 @@ // @PreAuthorize("@el.check('product:list')") public ResponseEntity<?> getProductsByPage(ProductQueryCriteria criteria) { Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); - return ResponseEntity.ok(R.success(productService.queryAll(criteria, page))); + PageResult<Product> pageResult = productService.queryAll(criteria, page); + pageResult.getContent().forEach(product -> { + Long productId = product.getProductId(); + product.setImages(productImageService.queryImagesByProductId(productId)); + product.setLabels(productLabelService.queryLabelsByProductId(productId)); + }); + return ResponseEntity.ok(R.success(pageResult)); } @GetMapping(value = "/{productId}}") @@ -112,7 +120,7 @@ //@PreAuthorize("@el.check('merchant:product:add')") public ResponseEntity<?> createProduct(@Validated @RequestBody ProductMerchantCreateRequest request) { productAdminService.create(request); - return ResponseEntity.noContent().build(); + return ResponseEntity.status(HttpStatus.CREATED).build(); } @PutMapping diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java index ad86796..f2791d4 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreQueryCriteria.java @@ -1,8 +1,7 @@ package com.oying.modules.pc.store.domain.dto; -import com.oying.utils.StringUtils; -import lombok.Data; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import org.springframework.util.DigestUtils; import java.io.Serializable; @@ -18,13 +17,13 @@ @ApiModelProperty(value = "商户ID", example = "1") private Long merchantId; - private String storeName; - - private Integer status; - private Long storeId; private Long platformCategoryId; + + private String storeName; + + private Integer status; private String blurry; @@ -44,19 +43,15 @@ public String buildConditionCacheKey() { StringJoiner baseKeyJoiner = new StringJoiner("|"); - if (platformCategoryId != null) { - baseKeyJoiner.add("platformCategoryId=" + platformCategoryId); - } - if (StringUtils.isNotEmpty(blurry)) { - baseKeyJoiner.add("blurry=" + blurry); - } - if (longitude != null && latitude != null) { - baseKeyJoiner.add("longitude=" + longitude); - baseKeyJoiner.add("latitude=" + latitude); - } - if (StringUtils.isNotEmpty(blurry)) { - baseKeyJoiner.add("radius=" + radius); - } + baseKeyJoiner.add("merchantId=" + merchantId); + baseKeyJoiner.add("storeId=" + storeId); + baseKeyJoiner.add("platformCategoryId=" + platformCategoryId); + baseKeyJoiner.add("storeName=" + storeName); + baseKeyJoiner.add("status=" + status); + baseKeyJoiner.add("blurry=" + blurry); + baseKeyJoiner.add("longitude=" + longitude); + baseKeyJoiner.add("latitude=" + latitude); + baseKeyJoiner.add("radius=" + radius); // 使用MD5或SHA缩短键长度 return "store:search:page:" + DigestUtils.md5DigestAsHex(baseKeyJoiner.toString().getBytes()); } diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreMapper.java b/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreMapper.java index b535f17..ae21034 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreMapper.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreMapper.java @@ -3,11 +3,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.oying.modules.pc.store.domain.Store; import com.oying.modules.pc.search.domain.dto.NearbyStoreQueryCriteria; -import com.oying.modules.pc.store.domain.dto.StoreCustomerQueryCriteria; -import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria; import com.oying.modules.pc.search.domain.dto.StoreSearchDto; +import com.oying.modules.pc.store.domain.Store; +import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -22,7 +21,7 @@ @Mapper public interface StoreMapper extends BaseMapper<Store> { - List<Store> selectStoreList(@Param("criteria") StoreQueryCriteria criteria, Page<Store> page); + IPage<Store> selectStoreList(@Param("criteria") StoreQueryCriteria criteria, Page<Store> page); List<Store> selectStoreList(@Param("criteria") StoreQueryCriteria criteria); diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreController.java index a81be6f..552f567 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreController.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreController.java @@ -57,8 +57,7 @@ @PostMapping @ApiOperation("创建店铺") public ResponseEntity<?> create(@RequestBody StoreCreateRequest request) { - storeService.create(request); - return ResponseEntity.status(HttpStatus.CREATED).build(); + return ResponseEntity.status(HttpStatus.CREATED).body(R.success(storeService.create(request))); } @PostMapping(value = "/{storeId}") diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java index 3a12592..59900e0 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreCustomerController.java @@ -46,11 +46,9 @@ @GetMapping(value = "/page") @ApiOperation("查询店铺") public ResponseEntity<?> getStoresByPage(StoreQueryCriteria criteria) { + criteria.setLimit(1000); PageResult<Store> pagedStores = storeQueryService.findPagedStores(criteria); - List<Store> stores = pagedStores.getContent(); - for (Store store : stores) { - store.setProducts(this.getProductsByStoreId(store.getStoreId())); - } + pagedStores.getContent().forEach(store -> store.setProducts(this.getProductsByStoreId(store.getStoreId()))); return ResponseEntity.ok(R.success(pagedStores)); } diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java index d1852b3..1c19479 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/rest/StoreMerchantController.java @@ -93,8 +93,7 @@ @ApiOperation("创建店铺") //@PreAuthorize("@el.check('merchant:store:create')") public ResponseEntity<?> create(@RequestBody StoreCreateRequest request) { - storeCreateService.create(request); - return ResponseEntity.status(HttpStatus.CREATED).build(); + return ResponseEntity.status(HttpStatus.CREATED).body(storeCreateService.create(request)); } /** diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreCreateService.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreCreateService.java index 7644c48..80ad44d 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreCreateService.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreCreateService.java @@ -1,7 +1,8 @@ package com.oying.modules.pc.store.service; +import com.oying.modules.pc.store.domain.Store; import com.oying.modules.pc.store.domain.dto.StoreCreateRequest; public interface StoreCreateService { - void create(StoreCreateRequest request); + Store create(StoreCreateRequest request); } diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java index d56cbfc..f1c3e56 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreService.java @@ -2,8 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.oying.modules.pc.store.domain.Store; -import com.oying.modules.pc.store.domain.StoreCategory; -import com.oying.modules.pc.store.domain.dto.*; +import com.oying.modules.pc.store.domain.dto.StoreCreateRequest; +import com.oying.modules.pc.store.domain.dto.StoreQueryCriteria; +import com.oying.modules.pc.store.domain.dto.StoreUpdateRequest; import com.oying.utils.PageResult; import java.math.BigDecimal; @@ -26,7 +27,7 @@ List<Store> queryUserStores(Long userId); - boolean create(StoreCreateRequest request); + Store create(StoreCreateRequest request); boolean update(StoreUpdateRequest request); @@ -55,4 +56,6 @@ boolean updateStatus(Long storeId, Integer status, Long version); boolean existsByIdAndMerchantId(Long storeId, Long merchantId); + + boolean existsStoreName(String storeName); } diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreCreateServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreCreateServiceImpl.java index 9ed3aa1..a2f9b79 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreCreateServiceImpl.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreCreateServiceImpl.java @@ -1,5 +1,6 @@ package com.oying.modules.pc.store.service.impl; +import com.oying.modules.pc.store.domain.Store; import com.oying.modules.pc.store.domain.dto.StoreCreateRequest; import com.oying.modules.pc.store.service.StoreCreateService; import com.oying.modules.pc.store.service.StoreService; @@ -16,7 +17,7 @@ private final StoreService storeService; @Transactional(rollbackFor = Exception.class) - public void create(StoreCreateRequest request) { - storeService.create(request); + public Store create(StoreCreateRequest request) { + return storeService.create(request); } } diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java index f7fbfb4..8531306 100644 --- a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java +++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreServiceImpl.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.oying.exception.EntityExistException; +import com.oying.exception.BadRequestException; import com.oying.exception.EntityNotFoundException; import com.oying.modules.pc.common.ValueUpdate; import com.oying.modules.pc.store.converter.StoreAssembler; @@ -27,6 +27,7 @@ import com.oying.utils.PageResult; import com.oying.utils.PageUtil; import com.oying.utils.SecurityUtils; +import com.oying.utils.StringUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -79,12 +80,17 @@ @Override @Transactional(rollbackFor = Exception.class) - public boolean create(StoreCreateRequest request) { + public Store create(StoreCreateRequest request) { + // 检查店铺名称是否存在 + if (this.existsStoreName(request.getStoreName())) { + throw new BadRequestException("店铺名称已存在"); + } + // 创建店铺 Store store = StoreAssembler.to(request); storeMapper.insert(store); this.processQualificationCreate(store, request.getQualificationList()); this.bindUser(store.getStoreId()); - return true; + return store; } @Override @@ -198,6 +204,16 @@ } @Override + public boolean existsStoreName(String storeName) { + if (StringUtils.isEmpty(storeName)) { + return true; + } + LambdaQueryWrapper<Store> wrapper = new LambdaQueryWrapper<Store>() + .eq(Store::getStoreName, storeName); + return storeMapper.selectCount(wrapper) > 0; + } + + @Override public boolean existsByIdAndMerchantId(Long storeId, Long merchantId) { if (storeId == null || merchantId == null) { return false; diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderIncomeDetail.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderIncomeDetail.java new file mode 100644 index 0000000..a3fd5e5 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderIncomeDetail.java @@ -0,0 +1,74 @@ +package com.oying.modules.rider.domain; + +import com.oying.base.BaseEntity; +import lombok.Getter; +import lombok.Setter; +import cn.hutool.core.bean.BeanUtil; +import io.swagger.annotations.ApiModelProperty; +import cn.hutool.core.bean.copier.CopyOptions; +import java.sql.Timestamp; +import java.math.BigDecimal; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +/** +* @description / +* @author pxb +* @date 2025-06-18 +**/ +@Getter +@Setter +@TableName("qs_rider_income_detail") +public class RiderIncomeDetail extends BaseEntity implements Serializable { + + @TableId(value = "income_id", type = IdType.AUTO) + @ApiModelProperty(value = "收入明细id") + private Long incomeId; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "骑手名字") + private String riderName; + + @ApiModelProperty(value = "骑手手机号") + private String riderPhone; + + @ApiModelProperty(value = "订单id") + private Long orderId; + + @ApiModelProperty(value = "订单号") + private String orderNum; + + @ApiModelProperty(value = "收入金额") + private BigDecimal incomeAmount; + + @ApiModelProperty(value = "收入类型:1-配送费,2-奖励,3-补贴") + private String incomeType; + + @ApiModelProperty(value = "收入日期(YYYY-MM-dd)方便统计") + private String incomeDate; + + @ApiModelProperty(value = "收入月份YYYY-MM") + private String incomeMonth; + + @ApiModelProperty(value = "订单状态:1-待取货,2-配送中,3-已完成,4-已取消") + private String orderStatus; + + @ApiModelProperty(value = "起始地址") + private String startAddress; + + @ApiModelProperty(value = "到达终点地址") + private String endAddress; + + @ApiModelProperty(value = "送达完成时间") + private Timestamp deliveryTime; + + public void copy(RiderIncomeDetail source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } + + public static final String COL_RIDER_ID = "rider_id"; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderInfo.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderInfo.java new file mode 100644 index 0000000..741c170 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderInfo.java @@ -0,0 +1,74 @@ +package com.oying.modules.rider.domain; + +import com.oying.base.BaseEntity; +import lombok.Getter; +import lombok.Setter; +import cn.hutool.core.bean.BeanUtil; +import io.swagger.annotations.ApiModelProperty; +import cn.hutool.core.bean.copier.CopyOptions; +import java.sql.Timestamp; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +/** +* @description / +* @author pxb +* @date 2025-07-01 +**/ +@Getter +@Setter +@TableName("qs_rider_info") +public class RiderInfo extends BaseEntity implements Serializable { + + @TableId(value = "info_id", type = IdType.AUTO) + @ApiModelProperty(value = "id") + private Long infoId; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "数据来源id") + private String sourceId; + + @ApiModelProperty(value = "电话") + private String phone; + + @ApiModelProperty(value = "乙方姓名") + private String cardName; + + @ApiModelProperty(value = "证件号") + private String cardNum; + + @ApiModelProperty(value = "数据来源编号") + private String sourceNum; + + @ApiModelProperty(value = "状态 0不生效,1生效 其他平台是否满足接单的条件") + private String enabled; + + @ApiModelProperty(value = "数据来源平台(LY,等)") + private String sourcePlatform; + + @ApiModelProperty(value = "地址") + private String address; + + public void copy(RiderInfo source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } + + /** + * 数据库字段常量 + */ + public static final String COL_RIDER_ID = "rider_id"; + public static final String COL_SOURCE_ID = "source_id"; + public static final String COL_PHONE = "phone"; + public static final String COL_CARD_NAME = "card_name"; + public static final String COL_CARD_NUM = "card_num"; + public static final String COL_SOURCE_NUM = "source_num"; + public static final String COL_ENABLED = "enabled"; + public static final String COL_SOURCE_PLATFORM = "source_platform"; + public static final String COL_ADDRESS = "address"; + public static final String COL_INFO_ID = "info_id"; + +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderOperation.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderOperation.java new file mode 100644 index 0000000..e244e95 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderOperation.java @@ -0,0 +1,56 @@ +package com.oying.modules.rider.domain; + +import com.oying.base.BaseEntity; +import lombok.Getter; +import lombok.Setter; +import cn.hutool.core.bean.BeanUtil; +import io.swagger.annotations.ApiModelProperty; +import cn.hutool.core.bean.copier.CopyOptions; +import java.sql.Timestamp; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +/** +* @description / +* @author pxb +* @date 2025-06-18 +**/ +@Getter +@Setter +@TableName("qs_rider_order_operation") +public class RiderOrderOperation extends BaseEntity implements Serializable { + + @TableId(value = "operation_id", type = IdType.AUTO) + @ApiModelProperty(value = "操作ID") + private Long operationId; + + @ApiModelProperty(value = "订单ID") + private Long orderId; + + @ApiModelProperty(value = "订单编号") + private Long orderNum; + + @ApiModelProperty(value = "骑手ID") + private Long riderId; + + @ApiModelProperty(value = "骑手手机号") + private String riderPhone; + + @ApiModelProperty(value = "骑手手姓名") + private String riderName; + + @ApiModelProperty(value = "操作类型:1-接单,2-取货,3-送达,0-取消接单") + private String operationType; + + @ApiModelProperty(value = "操作原因") + private String operationReason; + + @ApiModelProperty(value = "操作时间") + private String operationTime; + + public void copy(RiderOrderOperation source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java new file mode 100644 index 0000000..310b0a4 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderRecord.java @@ -0,0 +1,99 @@ +package com.oying.modules.rider.domain; + +import com.oying.base.BaseEntity; +import lombok.Getter; +import lombok.Setter; +import cn.hutool.core.bean.BeanUtil; +import io.swagger.annotations.ApiModelProperty; +import cn.hutool.core.bean.copier.CopyOptions; +import java.sql.Timestamp; +import java.math.BigDecimal; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +/** +* @description / +* @author pxb +* @date 2025-07-01 +**/ +@Getter +@Setter +@TableName("qs_rider_order_record") +public class RiderOrderRecord extends BaseEntity implements Serializable { + + @TableId(value = "record_id", type = IdType.AUTO) + @ApiModelProperty(value = "骑手订单记录") + private Long recordId; + + @ApiModelProperty(value = "订单id") + private Long orderId; + + @ApiModelProperty(value = "订单编号") + private String orderNum; + + @ApiModelProperty(value = "商家ID") + private Long merchantId; + + @ApiModelProperty(value = "商家名称") + private String merchantName; + + @ApiModelProperty(value = "商家地址") + private String merchantAddress; + + @ApiModelProperty(value = "收货地址") + private String receiverAddress; + + @ApiModelProperty(value = "订单状态: 1-待取货 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消") + private String orderStatus; + + @ApiModelProperty(value = "接单时间") + private Timestamp acceptTime; + + @ApiModelProperty(value = "接单编号") + private String acceptNum; + + @ApiModelProperty(value = "完成/取消时间") + private Timestamp finishTime; + + @ApiModelProperty(value = "配送时长(秒)") + private Long deliveryDuration; + + @ApiModelProperty(value = "是否超时:1-是 0-否") + private String isOvertime; + + @ApiModelProperty(value = "订单来源: 1-平台派单 2-骑手抢单 3-商家直派 4-其他") + private String orderSource; + + @ApiModelProperty(value = "订单收入配送费") + private BigDecimal orderIncome; + + @ApiModelProperty(value = "骑手姓名") + private String riderName; + + @ApiModelProperty(value = "手机号") + private String phone; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "用户经度") + private String userLongitude; + + @ApiModelProperty(value = "用户纬度") + private String userLatitude; + + @ApiModelProperty(value = "商家经度") + private String merchantLongitude; + + @ApiModelProperty(value = "商家纬度") + private String merchantLatitude; + + @ApiModelProperty(value = "用户id") + private Long userId; + + public void copy(RiderOrderRecord source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderReminder.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderReminder.java new file mode 100644 index 0000000..8e48f45 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderOrderReminder.java @@ -0,0 +1,65 @@ +package com.oying.modules.rider.domain; + +import com.oying.base.BaseEntity; +import lombok.Getter; +import lombok.Setter; +import cn.hutool.core.bean.BeanUtil; +import io.swagger.annotations.ApiModelProperty; +import cn.hutool.core.bean.copier.CopyOptions; +import java.sql.Timestamp; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +/** +* @description / +* @author pxb +* @date 2025-06-18 +**/ +@Getter +@Setter +@TableName("qs_rider_order_reminder") +public class RiderOrderReminder extends BaseEntity implements Serializable { + + @TableId(value = "reminder_id", type = IdType.AUTO) + @ApiModelProperty(value = "订单提醒记录id") + private Long reminderId; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "骑手名字") + private String riderName; + + @ApiModelProperty(value = "骑手手机号") + private String riderPhone; + + @ApiModelProperty(value = "订单Id") + private Long orderId; + + @ApiModelProperty(value = "订单号") + private String orderNum; + + @ApiModelProperty(value = "规则id") + private Long ruleId; + + @ApiModelProperty(value = "规则内容") + private String ruleContent; + + @ApiModelProperty(value = "规则类型。。。") + private String ruleType; + + @ApiModelProperty(value = "提醒时间") + private Timestamp reminderTime; + + @ApiModelProperty(value = "是否已发送:0-否,1-是") + private String isSent; + + @ApiModelProperty(value = "发送时间") + private Timestamp sendTime; + + public void copy(RiderOrderReminder source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfo.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfo.java new file mode 100644 index 0000000..9e0c1b9 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfo.java @@ -0,0 +1,43 @@ +package com.oying.modules.rider.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** +* @description / +* @author pxb +* @date 2025-07-01 +**/ +@Getter +@Setter +public class RiderSourceInfo implements Serializable { + + @ApiModelProperty(value = "数据来源id") + private String sourceId; + + @ApiModelProperty(value = "电话") + private String phone; + + @ApiModelProperty(value = "乙方姓名") + private String cardName; + + @ApiModelProperty(value = "证件号") + private String cardNum; + + @ApiModelProperty(value = "数据来源编号") + private String sourceNum; + + @ApiModelProperty(value = "状态0不生效,1生效 其他平台的条件是否满足") + private String enabled; + + @ApiModelProperty(value = "数据来源平台(LY,等)") + private String sourcePlatform; + + @ApiModelProperty(value = "地址") + private String address; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfoHttp.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfoHttp.java new file mode 100644 index 0000000..21d47c9 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderSourceInfoHttp.java @@ -0,0 +1,25 @@ +package com.oying.modules.rider.domain; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** +* @description / +* @author pxb +* @date 2025-07-01 +**/ +@Getter +@Setter +public class RiderSourceInfoHttp implements Serializable { + + private String success; + + private String code; + + private String message; + + private RiderSourceInfo data; + +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderWalletInfo.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderWalletInfo.java new file mode 100644 index 0000000..29af9e4 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderWalletInfo.java @@ -0,0 +1,69 @@ +package com.oying.modules.rider.domain; + +import com.oying.base.BaseEntity; +import lombok.Getter; +import lombok.Setter; +import cn.hutool.core.bean.BeanUtil; +import io.swagger.annotations.ApiModelProperty; +import cn.hutool.core.bean.copier.CopyOptions; +import java.sql.Timestamp; +import java.math.BigDecimal; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +/** +* @description / +* @author pxb +* @date 2025-06-18 +**/ +@Getter +@Setter +@TableName("qs_rider_wallet_info") +public class RiderWalletInfo extends BaseEntity implements Serializable { + + @TableId(value = "wallet_id", type = IdType.AUTO) + @ApiModelProperty(value = "收入总额ID") + private Long walletId; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "总金额") + private BigDecimal amount; + + @ApiModelProperty(value = "可用余额") + private BigDecimal availableBalance; + + @ApiModelProperty(value = "购电总金额") + private BigDecimal purchasingElectricityAmount; + + @ApiModelProperty(value = "累计提现") + private BigDecimal withdrawTotal; + + @ApiModelProperty(value = "累计收入") + private BigDecimal incomeTotal; + + @ApiModelProperty(value = "冻结金额") + private BigDecimal frozenAmount; + + @ApiModelProperty(value = "完成总单数") + private Integer runTotal; + + @ApiModelProperty(value = "提现总次数") + private Integer cashWithdrawalTotal; + + @ApiModelProperty(value = "购电总次数") + private Integer purchasingElectricityTotal; + + @ApiModelProperty(value = "钱包状态(0冻结,1正常)") + private String status; + + + public void copy(RiderWalletInfo source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } + + public static final String COL_RIDER_ID = "rider_id"; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/RiderWithdrawalRecord.java b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderWithdrawalRecord.java new file mode 100644 index 0000000..f91dd14 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/RiderWithdrawalRecord.java @@ -0,0 +1,79 @@ +package com.oying.modules.rider.domain; + +import com.oying.base.BaseEntity; +import lombok.Getter; +import lombok.Setter; +import cn.hutool.core.bean.BeanUtil; +import io.swagger.annotations.ApiModelProperty; +import cn.hutool.core.bean.copier.CopyOptions; +import java.sql.Timestamp; +import java.math.BigDecimal; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +/** +* @description / +* @author pxb +* @date 2025-06-18 +**/ +@Getter +@Setter +@TableName("qs_rider_withdrawal_record") +public class RiderWithdrawalRecord extends BaseEntity implements Serializable { + + @TableId(value = "record_id", type = IdType.AUTO) + @ApiModelProperty(value = "体现记录ID") + private Long recordId; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "骑手名字") + private String riderName; + + @ApiModelProperty(value = "骑手手机号") + private String riderPhone; + + @ApiModelProperty(value = "提现前总金额") + private BigDecimal amount; + + @ApiModelProperty(value = "本次提现金额") + private BigDecimal withdrawalAmount; + + @ApiModelProperty(value = "剩余总金额") + private BigDecimal nowAmount; + + @ApiModelProperty(value = "手续费") + private BigDecimal fee; + + @ApiModelProperty(value = "实际到账金额") + private BigDecimal actualAmount; + + @ApiModelProperty(value = "状态:1-处理中,2-已完成,3-已拒绝") + private String status; + + @ApiModelProperty(value = "银行账号") + private String bankAccount; + + @ApiModelProperty(value = "开户行") + private String bankName; + + @ApiModelProperty(value = "申请时间") + private Timestamp applyTime; + + @ApiModelProperty(value = "处理时间") + private Timestamp processTime; + + @ApiModelProperty(value = "处理人") + private String operator; + + @ApiModelProperty(value = "备注") + private String remark; + + + public void copy(RiderWithdrawalRecord source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderIncomeDetailQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderIncomeDetailQueryCriteria.java new file mode 100644 index 0000000..a259522 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderIncomeDetailQueryCriteria.java @@ -0,0 +1,43 @@ +package com.oying.modules.rider.domain.dto; + +import lombok.Data; +import java.sql.Timestamp; +import java.util.List; +import io.swagger.annotations.ApiModelProperty; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Data +public class RiderIncomeDetailQueryCriteria{ + + @ApiModelProperty(value = "页码", example = "1") + private Integer page = 1; + + @ApiModelProperty(value = "每页数据量", example = "10") + private Integer size = 10; + + @ApiModelProperty(value = "骑手名字") + private String riderName; + + @ApiModelProperty(value = "骑手手机号") + private String riderPhone; + + @ApiModelProperty(value = "订单号") + private String orderNum; + + @ApiModelProperty(value = "收入类型:1-配送费,2-奖励,3-补贴") + private String incomeType; + + @ApiModelProperty(value = "收入日期(YYYY-MM-dd)方便统计") + private String incomeDate; + + @ApiModelProperty(value = "收入月份YYYY-MM") + private String incomeMonth; + + @ApiModelProperty(value = "订单状态:1-待取货,2-配送中,3-已完成,4-已取消") + private String orderStatus; + + private List<Timestamp> createTime; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderInfoQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderInfoQueryCriteria.java new file mode 100644 index 0000000..3680fad --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderInfoQueryCriteria.java @@ -0,0 +1,42 @@ +package com.oying.modules.rider.domain.dto; + +import lombok.Data; +import io.swagger.annotations.ApiModelProperty; + +/** +* @author pxb +* @date 2025-07-01 +**/ +@Data +public class RiderInfoQueryCriteria{ + + @ApiModelProperty(value = "页码", example = "1") + private Integer page = 1; + + @ApiModelProperty(value = "每页数据量", example = "10") + private Integer size = 10; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "数据来源id") + private String sourceId; + + @ApiModelProperty(value = "电话") + private String phone; + + @ApiModelProperty(value = "乙方姓名") + private String cardName; + + @ApiModelProperty(value = "证件号") + private String cardNum; + + @ApiModelProperty(value = "数据来源编号") + private String sourceNum; + + @ApiModelProperty(value = "状态0不生效,1生效 其他平台的条件是否满足") + private String enabled; + + @ApiModelProperty(value = "数据来源平台(LY,等)") + private String sourcePlatform; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderOperationQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderOperationQueryCriteria.java new file mode 100644 index 0000000..036a7bc --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderOperationQueryCriteria.java @@ -0,0 +1,43 @@ +package com.oying.modules.rider.domain.dto; + +import lombok.Data; +import java.sql.Timestamp; +import java.util.List; +import io.swagger.annotations.ApiModelProperty; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Data +public class RiderOrderOperationQueryCriteria{ + + @ApiModelProperty(value = "页码", example = "1") + private Integer page = 1; + + @ApiModelProperty(value = "每页数据量", example = "10") + private Integer size = 10; + + @ApiModelProperty(value = "订单ID") + private Long orderId; + + @ApiModelProperty(value = "订单编号") + private Long orderNum; + + @ApiModelProperty(value = "骑手ID") + private Long riderId; + + @ApiModelProperty(value = "骑手手机号") + private String riderPhone; + + @ApiModelProperty(value = "骑手手姓名") + private String riderName; + + @ApiModelProperty(value = "操作类型:1-接单,2-取货,3-送达,0-取消接单") + private String operationType; + + @ApiModelProperty(value = "操作原因") + private String operationReason; + private List<String> operationTime; + private List<Timestamp> createTime; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderRecordQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderRecordQueryCriteria.java new file mode 100644 index 0000000..4ef50fc --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderRecordQueryCriteria.java @@ -0,0 +1,53 @@ +package com.oying.modules.rider.domain.dto; + +import lombok.Data; +import java.sql.Timestamp; +import java.util.List; +import io.swagger.annotations.ApiModelProperty; + +/** +* @author pxb +* @date 2025-07-01 +**/ +@Data +public class RiderOrderRecordQueryCriteria{ + + @ApiModelProperty(value = "页码", example = "1") + private Integer page = 1; + + @ApiModelProperty(value = "每页数据量", example = "10") + private Integer size = 10; + + @ApiModelProperty(value = "订单id") + private Long orderId; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "订单编号") + private String orderNum; + + @ApiModelProperty(value = "商家ID") + private Long merchantId; + + @ApiModelProperty(value = "商家名称") + private String merchantName; + + @ApiModelProperty(value = "商家地址") + private String merchantAddress; + + @ApiModelProperty(value = "收货地址") + private String receiverAddress; + + @ApiModelProperty(value = "订单状态: 1-待取货 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消") + private String orderStatus; + + @ApiModelProperty(value = "是否超时:1-是 0-否") + private String isOvertime; + private List<Timestamp> acceptTime; + private List<Timestamp> finishTime; + private List<Timestamp> createTime; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderReminderQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderReminderQueryCriteria.java new file mode 100644 index 0000000..967a64b --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderOrderReminderQueryCriteria.java @@ -0,0 +1,50 @@ +package com.oying.modules.rider.domain.dto; + +import lombok.Data; +import java.sql.Timestamp; +import java.util.List; +import io.swagger.annotations.ApiModelProperty; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Data +public class RiderOrderReminderQueryCriteria{ + + @ApiModelProperty(value = "页码", example = "1") + private Integer page = 1; + + @ApiModelProperty(value = "每页数据量", example = "10") + private Integer size = 10; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "骑手名字") + private String riderName; + + @ApiModelProperty(value = "骑手手机号") + private String riderPhone; + + @ApiModelProperty(value = "订单Id") + private Long orderId; + + @ApiModelProperty(value = "订单号") + private String orderNum; + + @ApiModelProperty(value = "规则id") + private Long ruleId; + + @ApiModelProperty(value = "规则内容") + private String ruleContent; + + @ApiModelProperty(value = "规则类型。。。") + private String ruleType; + + @ApiModelProperty(value = "是否已发送:0-否,1-是") + private String isSent; + private List<Timestamp> reminderTime; + private List<Timestamp> sendTime; + private List<Timestamp> createTime; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderWalletInfoQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderWalletInfoQueryCriteria.java new file mode 100644 index 0000000..477fdb3 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderWalletInfoQueryCriteria.java @@ -0,0 +1,29 @@ +package com.oying.modules.rider.domain.dto; + +import lombok.Data; +import java.sql.Timestamp; +import java.math.BigDecimal; +import java.util.List; +import io.swagger.annotations.ApiModelProperty; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Data +public class RiderWalletInfoQueryCriteria{ + + @ApiModelProperty(value = "页码", example = "1") + private Integer page = 1; + + @ApiModelProperty(value = "每页数据量", example = "10") + private Integer size = 10; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "钱包状态(0冻结,1正常)") + private String status; + private List<BigDecimal> amount; + private List<Timestamp> createTime; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderWithdrawalRecordQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderWithdrawalRecordQueryCriteria.java new file mode 100644 index 0000000..4691114 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/domain/dto/RiderWithdrawalRecordQueryCriteria.java @@ -0,0 +1,48 @@ +package com.oying.modules.rider.domain.dto; + +import lombok.Data; +import java.sql.Timestamp; +import java.util.List; +import io.swagger.annotations.ApiModelProperty; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Data +public class RiderWithdrawalRecordQueryCriteria{ + + @ApiModelProperty(value = "页码", example = "1") + private Integer page = 1; + + @ApiModelProperty(value = "每页数据量", example = "10") + private Integer size = 10; + + @ApiModelProperty(value = "骑手id") + private Long riderId; + + @ApiModelProperty(value = "骑手名字") + private String riderName; + + @ApiModelProperty(value = "骑手手机号") + private String riderPhone; + + @ApiModelProperty(value = "状态:1-处理中,2-已完成,3-已拒绝") + private String status; + + @ApiModelProperty(value = "银行账号") + private String bankAccount; + + @ApiModelProperty(value = "开户行") + private String bankName; + + @ApiModelProperty(value = "处理人") + private String operator; + + @ApiModelProperty(value = "备注") + private String remark; + + private List<Timestamp> applyTime; + private List<Timestamp> processTime; + private List<Timestamp> createTime; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderIncomeDetailMapper.java b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderIncomeDetailMapper.java new file mode 100644 index 0000000..af215f6 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderIncomeDetailMapper.java @@ -0,0 +1,22 @@ +package com.oying.modules.rider.mapper; + +import com.oying.modules.rider.domain.RiderIncomeDetail; +import com.oying.modules.rider.domain.dto.RiderIncomeDetailQueryCriteria; +import java.util.List; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Mapper +public interface RiderIncomeDetailMapper extends BaseMapper<RiderIncomeDetail> { + + IPage<RiderIncomeDetail> findAll(@Param("criteria") RiderIncomeDetailQueryCriteria criteria, Page<Object> page); + + List<RiderIncomeDetail> findAll(@Param("criteria") RiderIncomeDetailQueryCriteria criteria); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderInfoMapper.java b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderInfoMapper.java new file mode 100644 index 0000000..b63c73b --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderInfoMapper.java @@ -0,0 +1,22 @@ +package com.oying.modules.rider.mapper; + +import com.oying.modules.rider.domain.RiderInfo; +import com.oying.modules.rider.domain.dto.RiderInfoQueryCriteria; +import java.util.List; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** +* @author pxb +* @date 2025-07-01 +**/ +@Mapper +public interface RiderInfoMapper extends BaseMapper<RiderInfo> { + + IPage<RiderInfo> findAll(@Param("criteria") RiderInfoQueryCriteria criteria, Page<Object> page); + + List<RiderInfo> findAll(@Param("criteria") RiderInfoQueryCriteria criteria); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderOperationMapper.java b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderOperationMapper.java new file mode 100644 index 0000000..2480bd4 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderOperationMapper.java @@ -0,0 +1,22 @@ +package com.oying.modules.rider.mapper; + +import com.oying.modules.rider.domain.RiderOrderOperation; +import com.oying.modules.rider.domain.dto.RiderOrderOperationQueryCriteria; +import java.util.List; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Mapper +public interface RiderOrderOperationMapper extends BaseMapper<RiderOrderOperation> { + + IPage<RiderOrderOperation> findAll(@Param("criteria") RiderOrderOperationQueryCriteria criteria, Page<Object> page); + + List<RiderOrderOperation> findAll(@Param("criteria") RiderOrderOperationQueryCriteria criteria); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderRecordMapper.java b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderRecordMapper.java new file mode 100644 index 0000000..c24ed5f --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderRecordMapper.java @@ -0,0 +1,22 @@ +package com.oying.modules.rider.mapper; + +import com.oying.modules.rider.domain.RiderOrderRecord; +import com.oying.modules.rider.domain.dto.RiderOrderRecordQueryCriteria; +import java.util.List; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** +* @author pxb +* @date 2025-07-01 +**/ +@Mapper +public interface RiderOrderRecordMapper extends BaseMapper<RiderOrderRecord> { + + IPage<RiderOrderRecord> findAll(@Param("criteria") RiderOrderRecordQueryCriteria criteria, Page<Object> page); + + List<RiderOrderRecord> findAll(@Param("criteria") RiderOrderRecordQueryCriteria criteria); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderReminderMapper.java b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderReminderMapper.java new file mode 100644 index 0000000..94f184e --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderOrderReminderMapper.java @@ -0,0 +1,22 @@ +package com.oying.modules.rider.mapper; + +import com.oying.modules.rider.domain.RiderOrderReminder; +import com.oying.modules.rider.domain.dto.RiderOrderReminderQueryCriteria; +import java.util.List; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Mapper +public interface RiderOrderReminderMapper extends BaseMapper<RiderOrderReminder> { + + IPage<RiderOrderReminder> findAll(@Param("criteria") RiderOrderReminderQueryCriteria criteria, Page<Object> page); + + List<RiderOrderReminder> findAll(@Param("criteria") RiderOrderReminderQueryCriteria criteria); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderWalletInfoMapper.java b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderWalletInfoMapper.java new file mode 100644 index 0000000..0d7b824 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderWalletInfoMapper.java @@ -0,0 +1,22 @@ +package com.oying.modules.rider.mapper; + +import com.oying.modules.rider.domain.RiderWalletInfo; +import com.oying.modules.rider.domain.dto.RiderWalletInfoQueryCriteria; +import java.util.List; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Mapper +public interface RiderWalletInfoMapper extends BaseMapper<RiderWalletInfo> { + + IPage<RiderWalletInfo> findAll(@Param("criteria") RiderWalletInfoQueryCriteria criteria, Page<Object> page); + + List<RiderWalletInfo> findAll(@Param("criteria") RiderWalletInfoQueryCriteria criteria); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderWithdrawalRecordMapper.java b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderWithdrawalRecordMapper.java new file mode 100644 index 0000000..509eb80 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/mapper/RiderWithdrawalRecordMapper.java @@ -0,0 +1,22 @@ +package com.oying.modules.rider.mapper; + +import com.oying.modules.rider.domain.RiderWithdrawalRecord; +import com.oying.modules.rider.domain.dto.RiderWithdrawalRecordQueryCriteria; +import java.util.List; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@Mapper +public interface RiderWithdrawalRecordMapper extends BaseMapper<RiderWithdrawalRecord> { + + IPage<RiderWithdrawalRecord> findAll(@Param("criteria") RiderWithdrawalRecordQueryCriteria criteria, Page<Object> page); + + List<RiderWithdrawalRecord> findAll(@Param("criteria") RiderWithdrawalRecordQueryCriteria criteria); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/RiderIncomeDetailController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderIncomeDetailController.java new file mode 100644 index 0000000..06079cf --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderIncomeDetailController.java @@ -0,0 +1,73 @@ +package com.oying.modules.rider.rest; + +import com.oying.annotation.Log; +import com.oying.modules.rider.domain.dto.RiderIncomeDetailQueryCriteria; +import com.oying.modules.rider.service.RiderIncomeDetailService; +import com.oying.modules.rider.domain.RiderIncomeDetail; +import lombok.RequiredArgsConstructor; +import java.util.List; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.oying.utils.PageResult; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "骑手收入明细") +@RequestMapping("/api/rider/riderIncomeDetail") +public class RiderIncomeDetailController { + + private final RiderIncomeDetailService riderIncomeDetailService; + + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('riderIncomeDetail:list')") + public void exportRiderIncomeDetail(HttpServletResponse response, RiderIncomeDetailQueryCriteria criteria) throws IOException { + riderIncomeDetailService.download(riderIncomeDetailService.queryAll(criteria), response); + } + + @GetMapping + @ApiOperation("查询骑手收入明细") + @PreAuthorize("@el.check('riderIncomeDetail:list')") + public ResponseEntity<PageResult<RiderIncomeDetail>> queryRiderIncomeDetail(RiderIncomeDetailQueryCriteria criteria){ + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + return new ResponseEntity<>(riderIncomeDetailService.queryAll(criteria,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增骑手收入明细") + @ApiOperation("新增骑手收入明细") + @PreAuthorize("@el.check('riderIncomeDetail:add')") + public ResponseEntity<Object> createRiderIncomeDetail(@Validated @RequestBody RiderIncomeDetail resources){ + riderIncomeDetailService.create(resources); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改骑手收入明细") + @ApiOperation("修改骑手收入明细") + @PreAuthorize("@el.check('riderIncomeDetail:edit')") + public ResponseEntity<Object> updateRiderIncomeDetail(@Validated @RequestBody RiderIncomeDetail resources){ + riderIncomeDetailService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除骑手收入明细") + @ApiOperation("删除骑手收入明细") + @PreAuthorize("@el.check('riderIncomeDetail:del')") + public ResponseEntity<Object> deleteRiderIncomeDetail(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { + riderIncomeDetailService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/RiderInfoController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderInfoController.java new file mode 100644 index 0000000..94898a7 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderInfoController.java @@ -0,0 +1,73 @@ +package com.oying.modules.rider.rest; + +import com.oying.annotation.Log; +import com.oying.modules.rider.domain.RiderInfo; +import com.oying.modules.rider.service.RiderInfoService; +import com.oying.modules.rider.domain.dto.RiderInfoQueryCriteria; +import lombok.RequiredArgsConstructor; +import java.util.List; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.oying.utils.PageResult; + +/** +* @author pxb +* @date 2025-07-01 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "三方骑手数据信息") +@RequestMapping("/api/rider/riderInfo") +public class RiderInfoController { + + private final RiderInfoService riderInfoService; + + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('riderInfo:list')") + public void exportRiderInfo(HttpServletResponse response, RiderInfoQueryCriteria criteria) throws IOException { + riderInfoService.download(riderInfoService.queryAll(criteria), response); + } + + @GetMapping + @ApiOperation("查询三方骑手数据信息") + @PreAuthorize("@el.check('riderInfo:list')") + public ResponseEntity<PageResult<RiderInfo>> queryRiderInfo(RiderInfoQueryCriteria criteria){ + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + return new ResponseEntity<>(riderInfoService.queryAll(criteria,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增三方骑手数据信息") + @ApiOperation("新增三方骑手数据信息") + @PreAuthorize("@el.check('riderInfo:add')") + public ResponseEntity<Object> createRiderInfo(@Validated @RequestBody RiderInfo resources){ + riderInfoService.create(resources); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改三方骑手数据信息") + @ApiOperation("修改三方骑手数据信息") + @PreAuthorize("@el.check('riderInfo:edit')") + public ResponseEntity<Object> updateRiderInfo(@Validated @RequestBody RiderInfo resources){ + riderInfoService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除三方骑手数据信息") + @ApiOperation("删除三方骑手数据信息") + @PreAuthorize("@el.check('riderInfo:del')") + public ResponseEntity<Object> deleteRiderInfo(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { + riderInfoService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderOperationController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderOperationController.java new file mode 100644 index 0000000..78280e8 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderOperationController.java @@ -0,0 +1,73 @@ +package com.oying.modules.rider.rest; + +import com.oying.annotation.Log; +import com.oying.modules.rider.domain.RiderOrderOperation; +import com.oying.modules.rider.service.RiderOrderOperationService; +import com.oying.modules.rider.domain.dto.RiderOrderOperationQueryCriteria; +import lombok.RequiredArgsConstructor; +import java.util.List; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.oying.utils.PageResult; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "骑手订单操作日志") +@RequestMapping("/api/rider/riderOrderOperation") +public class RiderOrderOperationController { + + private final RiderOrderOperationService riderOrderOperationService; + + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('riderOrderOperation:list')") + public void exportRiderOrderOperation(HttpServletResponse response, RiderOrderOperationQueryCriteria criteria) throws IOException { + riderOrderOperationService.download(riderOrderOperationService.queryAll(criteria), response); + } + + @GetMapping + @ApiOperation("查询骑手订单操作日志") + @PreAuthorize("@el.check('riderOrderOperation:list')") + public ResponseEntity<PageResult<RiderOrderOperation>> queryRiderOrderOperation(RiderOrderOperationQueryCriteria criteria){ + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + return new ResponseEntity<>(riderOrderOperationService.queryAll(criteria,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增骑手订单操作日志") + @ApiOperation("新增骑手订单操作日志") + @PreAuthorize("@el.check('riderOrderOperation:add')") + public ResponseEntity<Object> createRiderOrderOperation(@Validated @RequestBody RiderOrderOperation resources){ + riderOrderOperationService.create(resources); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改骑手订单操作日志") + @ApiOperation("修改骑手订单操作日志") + @PreAuthorize("@el.check('riderOrderOperation:edit')") + public ResponseEntity<Object> updateRiderOrderOperation(@Validated @RequestBody RiderOrderOperation resources){ + riderOrderOperationService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除骑手订单操作日志") + @ApiOperation("删除骑手订单操作日志") + @PreAuthorize("@el.check('riderOrderOperation:del')") + public ResponseEntity<Object> deleteRiderOrderOperation(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { + riderOrderOperationService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderRecordController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderRecordController.java new file mode 100644 index 0000000..5547a24 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderRecordController.java @@ -0,0 +1,73 @@ +package com.oying.modules.rider.rest; + +import com.oying.annotation.Log; +import com.oying.modules.rider.domain.RiderOrderRecord; +import com.oying.modules.rider.service.RiderOrderRecordService; +import com.oying.modules.rider.domain.dto.RiderOrderRecordQueryCriteria; +import lombok.RequiredArgsConstructor; +import java.util.List; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.oying.utils.PageResult; + +/** +* @author pxb +* @date 2025-07-01 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "骑手订单信息") +@RequestMapping("/api/rider/riderOrderRecord") +public class RiderOrderRecordController { + + private final RiderOrderRecordService riderOrderRecordService; + + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('riderOrderRecord:list')") + public void exportRiderOrderRecord(HttpServletResponse response, RiderOrderRecordQueryCriteria criteria) throws IOException { + riderOrderRecordService.download(riderOrderRecordService.queryAll(criteria), response); + } + + @GetMapping + @ApiOperation("查询骑手订单信息") + @PreAuthorize("@el.check('riderOrderRecord:list')") + public ResponseEntity<PageResult<RiderOrderRecord>> queryRiderOrderRecord(RiderOrderRecordQueryCriteria criteria){ + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + return new ResponseEntity<>(riderOrderRecordService.queryAll(criteria,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增骑手订单信息") + @ApiOperation("新增骑手订单信息") + @PreAuthorize("@el.check('riderOrderRecord:add')") + public ResponseEntity<Object> createRiderOrderRecord(@Validated @RequestBody RiderOrderRecord resources){ + riderOrderRecordService.create(resources); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("新增骑手订单信息") + @ApiOperation("新增骑手订单信息") + @PreAuthorize("@el.check('riderOrderRecord:edit')") + public ResponseEntity<Object> updateRiderOrderRecord(@Validated @RequestBody RiderOrderRecord resources){ + riderOrderRecordService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("新增骑手订单信息") + @ApiOperation("新增骑手订单信息") + @PreAuthorize("@el.check('riderOrderRecord:del')") + public ResponseEntity<Object> deleteRiderOrderRecord(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { + riderOrderRecordService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderReminderController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderReminderController.java new file mode 100644 index 0000000..bb14a54 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderOrderReminderController.java @@ -0,0 +1,73 @@ +package com.oying.modules.rider.rest; + +import com.oying.annotation.Log; +import com.oying.modules.rider.domain.RiderOrderReminder; +import com.oying.modules.rider.service.RiderOrderReminderService; +import com.oying.modules.rider.domain.dto.RiderOrderReminderQueryCriteria; +import lombok.RequiredArgsConstructor; +import java.util.List; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.oying.utils.PageResult; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "骑手消息提示记录") +@RequestMapping("/api/rider/riderOrderReminder") +public class RiderOrderReminderController { + + private final RiderOrderReminderService riderOrderReminderService; + + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('riderOrderReminder:list')") + public void exportRiderOrderReminder(HttpServletResponse response, RiderOrderReminderQueryCriteria criteria) throws IOException { + riderOrderReminderService.download(riderOrderReminderService.queryAll(criteria), response); + } + + @GetMapping + @ApiOperation("查询骑手消息提示记录") + @PreAuthorize("@el.check('riderOrderReminder:list')") + public ResponseEntity<PageResult<RiderOrderReminder>> queryRiderOrderReminder(RiderOrderReminderQueryCriteria criteria){ + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + return new ResponseEntity<>(riderOrderReminderService.queryAll(criteria,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增骑手消息提示记录") + @ApiOperation("新增骑手消息提示记录") + @PreAuthorize("@el.check('riderOrderReminder:add')") + public ResponseEntity<Object> createRiderOrderReminder(@Validated @RequestBody RiderOrderReminder resources){ + riderOrderReminderService.create(resources); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改骑手消息提示记录") + @ApiOperation("修改骑手消息提示记录") + @PreAuthorize("@el.check('riderOrderReminder:edit')") + public ResponseEntity<Object> updateRiderOrderReminder(@Validated @RequestBody RiderOrderReminder resources){ + riderOrderReminderService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除骑手消息提示记录") + @ApiOperation("删除骑手消息提示记录") + @PreAuthorize("@el.check('riderOrderReminder:del')") + public ResponseEntity<Object> deleteRiderOrderReminder(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { + riderOrderReminderService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/RiderWalletInfoController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderWalletInfoController.java new file mode 100644 index 0000000..f5a31f9 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderWalletInfoController.java @@ -0,0 +1,74 @@ +package com.oying.modules.rider.rest; + +import com.oying.annotation.Log; +import com.oying.modules.rider.domain.RiderWalletInfo; +import com.oying.modules.rider.service.RiderWalletInfoService; +import com.oying.modules.rider.domain.dto.RiderWalletInfoQueryCriteria; +import lombok.RequiredArgsConstructor; +import java.util.List; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.oying.utils.PageResult; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "骑手钱包详情") +@RequestMapping("/api/rider/riderWalletInfo") +public class RiderWalletInfoController { + + private final RiderWalletInfoService riderWalletInfoService; + + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('riderWalletInfo:list')") + public void exportRiderWalletInfo(HttpServletResponse response, RiderWalletInfoQueryCriteria criteria) throws IOException { + riderWalletInfoService.download(riderWalletInfoService.queryAll(criteria), response); + } + + @GetMapping + @ApiOperation("查询骑手钱包详情") + @PreAuthorize("@el.check('riderWalletInfo:list')") + public ResponseEntity<PageResult<RiderWalletInfo>> queryRiderWalletInfo(RiderWalletInfoQueryCriteria criteria){ + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + return new ResponseEntity<>(riderWalletInfoService.queryAll(criteria,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增骑手钱包详情") + @ApiOperation("新增骑手钱包详情") + @PreAuthorize("@el.check('riderWalletInfo:add')") + public ResponseEntity<Object> createRiderWalletInfo(@Validated @RequestBody RiderWalletInfo resources){ + riderWalletInfoService.create(resources); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改骑手钱包详情") + @ApiOperation("修改骑手钱包详情") + @PreAuthorize("@el.check('riderWalletInfo:edit')") + public ResponseEntity<Object> updateRiderWalletInfo(@Validated @RequestBody RiderWalletInfo resources){ + riderWalletInfoService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除骑手钱包详情") + @ApiOperation("删除骑手钱包详情") + @PreAuthorize("@el.check('riderWalletInfo:del')") + public ResponseEntity<Object> deleteRiderWalletInfo(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { + riderWalletInfoService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/RiderWithdrawalRecordController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderWithdrawalRecordController.java new file mode 100644 index 0000000..849d729 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/rest/RiderWithdrawalRecordController.java @@ -0,0 +1,73 @@ +package com.oying.modules.rider.rest; + +import com.oying.annotation.Log; +import com.oying.modules.rider.domain.RiderWithdrawalRecord; +import com.oying.modules.rider.service.RiderWithdrawalRecordService; +import com.oying.modules.rider.domain.dto.RiderWithdrawalRecordQueryCriteria; +import lombok.RequiredArgsConstructor; +import java.util.List; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import io.swagger.annotations.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.oying.utils.PageResult; + +/** +* @author pxb +* @date 2025-06-18 +**/ +@RestController +@RequiredArgsConstructor +@Api(tags = "骑手提现记录") +@RequestMapping("/api/rider/riderWithdrawalRecord") +public class RiderWithdrawalRecordController { + + private final RiderWithdrawalRecordService riderWithdrawalRecordService; + + @ApiOperation("导出数据") + @GetMapping(value = "/download") + @PreAuthorize("@el.check('riderWithdrawalRecord:list')") + public void exportRiderWithdrawalRecord(HttpServletResponse response, RiderWithdrawalRecordQueryCriteria criteria) throws IOException { + riderWithdrawalRecordService.download(riderWithdrawalRecordService.queryAll(criteria), response); + } + + @GetMapping + @ApiOperation("查询骑手提现记录") + @PreAuthorize("@el.check('riderWithdrawalRecord:list')") + public ResponseEntity<PageResult<RiderWithdrawalRecord>> queryRiderWithdrawalRecord(RiderWithdrawalRecordQueryCriteria criteria){ + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + return new ResponseEntity<>(riderWithdrawalRecordService.queryAll(criteria,page),HttpStatus.OK); + } + + @PostMapping + @Log("新增骑手提现记录") + @ApiOperation("新增骑手提现记录") + @PreAuthorize("@el.check('riderWithdrawalRecord:add')") + public ResponseEntity<Object> createRiderWithdrawalRecord(@Validated @RequestBody RiderWithdrawalRecord resources){ + riderWithdrawalRecordService.create(resources); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改骑手提现记录") + @ApiOperation("修改骑手提现记录") + @PreAuthorize("@el.check('riderWithdrawalRecord:edit')") + public ResponseEntity<Object> updateRiderWithdrawalRecord(@Validated @RequestBody RiderWithdrawalRecord resources){ + riderWithdrawalRecordService.update(resources); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @DeleteMapping + @Log("删除骑手提现记录") + @ApiOperation("删除骑手提现记录") + @PreAuthorize("@el.check('riderWithdrawalRecord:del')") + public ResponseEntity<Object> deleteRiderWithdrawalRecord(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { + riderWithdrawalRecordService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java b/oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java new file mode 100644 index 0000000..5d81a0c --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/rest/WxRiderController.java @@ -0,0 +1,91 @@ +package com.oying.modules.rider.rest; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.oying.modules.rider.domain.*; +import com.oying.modules.rider.domain.dto.RiderIncomeDetailQueryCriteria; +import com.oying.modules.rider.domain.dto.RiderOrderRecordQueryCriteria; +import com.oying.modules.rider.domain.dto.RiderWithdrawalRecordQueryCriteria; +import com.oying.modules.rider.service.*; +import com.oying.utils.PageResult; +import com.oying.utils.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + + +/** + * @author pxb + * @date 2025-06-18 + **/ +@RestController +@RequiredArgsConstructor +@Api(tags = "骑手微信小程序接口") +@RequestMapping("/api/wx/rider") +public class WxRiderController { + + private final RiderIncomeDetailService riderIncomeDetailService; + + private final RiderWalletInfoService riderWalletInfoService; + + private final RiderWithdrawalRecordService riderWithdrawalRecordService; + + private final RiderInfoService riderInfoService; + + private final RiderOrderRecordService riderOrderRecordService; + + + @GetMapping("getRiderSourceInfo/{riderId}") + @ApiOperation("查询第三方数据骑手信息") + @PreAuthorize("@el.check('riderInfo:list')") + public ResponseEntity<?> getRiderSourceInfo(@PathVariable String riderId) { + RiderInfo riderInfo = riderInfoService.getRiderSourceInfo(riderId); + return ResponseEntity.ok(R.success(riderInfo)); + } + + @GetMapping("syncRiderSourceInfo/{sourcePlatform}") + @ApiOperation("同步查询第三方骑手信息 LY") + @PreAuthorize("@el.check('riderInfo:edit')") + public ResponseEntity<?> syncRiderSourceInfo(@PathVariable String sourcePlatform) { + riderInfoService.syncRiderSourceInfo(sourcePlatform); + return ResponseEntity.ok(R.success()); + } + + @GetMapping("getRiderWalletInfo/{riderId}") + @ApiOperation("查询骑手钱包信息") + @PreAuthorize("@el.check('riderWalletInfo:list')") + public ResponseEntity<?> getRiderWalletInfo(@PathVariable String riderId) { + RiderWalletInfo riderWalletInfo = riderWalletInfoService.getRiderWalletInfo(riderId); + return ResponseEntity.ok(R.success(riderWalletInfo)); + } + + @GetMapping("getRiderIncomeDetail") + @ApiOperation("查询骑手订单收入明细分页") + @PreAuthorize("@el.check('riderIncomeDetail:list')") + public ResponseEntity<?> getRiderIncomeDetail(RiderIncomeDetailQueryCriteria criteria) { + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + PageResult<RiderIncomeDetail> riderIncomeDetails = riderIncomeDetailService.queryAll(criteria, page); + return ResponseEntity.ok(R.success(riderIncomeDetails)); + } + + @GetMapping("getRiderWithdrawalRecord") + @ApiOperation("查询骑手提现记录分页") + @PreAuthorize("@el.check('riderWithdrawalRecord:list')") + public ResponseEntity<?> getRiderWithdrawalRecord(RiderWithdrawalRecordQueryCriteria criteria) { + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + PageResult<RiderWithdrawalRecord> riderIncomeDetails = riderWithdrawalRecordService.queryAll(criteria, page); + return ResponseEntity.ok(R.success(riderIncomeDetails)); + } + + @GetMapping("getRiderOrderRecord") + @ApiOperation("查询骑手订单记录分页") + @PreAuthorize("@el.check('riderOrderRecord:list')") + public ResponseEntity<?> getRiderOrderRecord(RiderOrderRecordQueryCriteria criteria) { + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + PageResult<RiderOrderRecord> riderOrderRecordPageResult = riderOrderRecordService.queryAll(criteria, page); + return ResponseEntity.ok(R.success(riderOrderRecordPageResult)); + } + +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderIncomeDetailService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderIncomeDetailService.java new file mode 100644 index 0000000..9bf3e10 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderIncomeDetailService.java @@ -0,0 +1,62 @@ +package com.oying.modules.rider.service; + +import com.oying.modules.rider.domain.dto.RiderIncomeDetailQueryCriteria; +import com.oying.modules.rider.domain.RiderIncomeDetail; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.oying.utils.PageResult; + +/** +* @description 服务接口 +* @author pxb +* @date 2025-06-18 +**/ +public interface RiderIncomeDetailService extends IService<RiderIncomeDetail> { + + /** + * 查询数据分页 + * @param criteria 条件 + * @param page 分页参数 + * @return PageResult + */ + PageResult<RiderIncomeDetail> queryAll(RiderIncomeDetailQueryCriteria criteria, Page<Object> page); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List<RiderIncomeDetailDto> + */ + List<RiderIncomeDetail> queryAll(RiderIncomeDetailQueryCriteria criteria); + + /** + * 创建 + * @param resources / + */ + void create(RiderIncomeDetail resources); + + /** + * 编辑 + * @param resources / + */ + void update(RiderIncomeDetail resources); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(List<Long> ids); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List<RiderIncomeDetail> all, HttpServletResponse response) throws IOException; + + +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderInfoService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderInfoService.java new file mode 100644 index 0000000..e4d1e96 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderInfoService.java @@ -0,0 +1,72 @@ +package com.oying.modules.rider.service; + +import com.oying.modules.rider.domain.RiderInfo; +import com.oying.modules.rider.domain.dto.RiderInfoQueryCriteria; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.oying.utils.PageResult; + +/** +* @description 服务接口 +* @author pxb +* @date 2025-07-01 +**/ +public interface RiderInfoService extends IService<RiderInfo> { + + /** + * 查询数据分页 + * @param criteria 条件 + * @param page 分页参数 + * @return PageResult + */ + PageResult<RiderInfo> queryAll(RiderInfoQueryCriteria criteria, Page<Object> page); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List<RiderInfoDto> + */ + List<RiderInfo> queryAll(RiderInfoQueryCriteria criteria); + + /** + * 创建 + * @param resources / + */ + void create(RiderInfo resources); + + /** + * 编辑 + * @param resources / + */ + void update(RiderInfo resources); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(List<Long> ids); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List<RiderInfo> all, HttpServletResponse response) throws IOException; + + /** + * 同步其他平台的骑手信息 + * @param sourcePlatform / + */ + void syncRiderSourceInfo(String sourcePlatform); + + /** + * 查询其他平台的骑手信息 + * @return RiderInfo + * @param riderId / + */ + RiderInfo getRiderSourceInfo(String riderId); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderOperationService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderOperationService.java new file mode 100644 index 0000000..b3e9c27 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderOperationService.java @@ -0,0 +1,59 @@ +package com.oying.modules.rider.service; + +import com.oying.modules.rider.domain.RiderOrderOperation; +import com.oying.modules.rider.domain.dto.RiderOrderOperationQueryCriteria; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.oying.utils.PageResult; + +/** +* @description 服务接口 +* @author pxb +* @date 2025-06-18 +**/ +public interface RiderOrderOperationService extends IService<RiderOrderOperation> { + + /** + * 查询数据分页 + * @param criteria 条件 + * @param page 分页参数 + * @return PageResult + */ + PageResult<RiderOrderOperation> queryAll(RiderOrderOperationQueryCriteria criteria, Page<Object> page); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List<RiderOrderOperationDto> + */ + List<RiderOrderOperation> queryAll(RiderOrderOperationQueryCriteria criteria); + + /** + * 创建 + * @param resources / + */ + void create(RiderOrderOperation resources); + + /** + * 编辑 + * @param resources / + */ + void update(RiderOrderOperation resources); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(List<Long> ids); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List<RiderOrderOperation> all, HttpServletResponse response) throws IOException; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java new file mode 100644 index 0000000..bb45f54 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderRecordService.java @@ -0,0 +1,59 @@ +package com.oying.modules.rider.service; + +import com.oying.modules.rider.domain.RiderOrderRecord; +import com.oying.modules.rider.domain.dto.RiderOrderRecordQueryCriteria; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.oying.utils.PageResult; + +/** +* @description 服务接口 +* @author pxb +* @date 2025-07-01 +**/ +public interface RiderOrderRecordService extends IService<RiderOrderRecord> { + + /** + * 查询数据分页 + * @param criteria 条件 + * @param page 分页参数 + * @return PageResult + */ + PageResult<RiderOrderRecord> queryAll(RiderOrderRecordQueryCriteria criteria, Page<Object> page); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List<RiderOrderRecordDto> + */ + List<RiderOrderRecord> queryAll(RiderOrderRecordQueryCriteria criteria); + + /** + * 创建 + * @param resources / + */ + void create(RiderOrderRecord resources); + + /** + * 编辑 + * @param resources / + */ + void update(RiderOrderRecord resources); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(List<Long> ids); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List<RiderOrderRecord> all, HttpServletResponse response) throws IOException; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderReminderService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderReminderService.java new file mode 100644 index 0000000..039167a --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderOrderReminderService.java @@ -0,0 +1,59 @@ +package com.oying.modules.rider.service; + +import com.oying.modules.rider.domain.RiderOrderReminder; +import com.oying.modules.rider.domain.dto.RiderOrderReminderQueryCriteria; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.oying.utils.PageResult; + +/** +* @description 服务接口 +* @author pxb +* @date 2025-06-18 +**/ +public interface RiderOrderReminderService extends IService<RiderOrderReminder> { + + /** + * 查询数据分页 + * @param criteria 条件 + * @param page 分页参数 + * @return PageResult + */ + PageResult<RiderOrderReminder> queryAll(RiderOrderReminderQueryCriteria criteria, Page<Object> page); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List<RiderOrderReminderDto> + */ + List<RiderOrderReminder> queryAll(RiderOrderReminderQueryCriteria criteria); + + /** + * 创建 + * @param resources / + */ + void create(RiderOrderReminder resources); + + /** + * 编辑 + * @param resources / + */ + void update(RiderOrderReminder resources); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(List<Long> ids); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List<RiderOrderReminder> all, HttpServletResponse response) throws IOException; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderWalletInfoService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderWalletInfoService.java new file mode 100644 index 0000000..38e7248 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderWalletInfoService.java @@ -0,0 +1,66 @@ +package com.oying.modules.rider.service; + +import com.oying.modules.rider.domain.RiderWalletInfo; +import com.oying.modules.rider.domain.dto.RiderWalletInfoQueryCriteria; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.oying.utils.PageResult; + +/** +* @description 服务接口 +* @author pxb +* @date 2025-06-18 +**/ +public interface RiderWalletInfoService extends IService<RiderWalletInfo> { + + /** + * 查询数据分页 + * @param criteria 条件 + * @param page 分页参数 + * @return PageResult + */ + PageResult<RiderWalletInfo> queryAll(RiderWalletInfoQueryCriteria criteria, Page<Object> page); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List<RiderWalletInfoDto> + */ + List<RiderWalletInfo> queryAll(RiderWalletInfoQueryCriteria criteria); + + /** + * 创建 + * @param resources / + */ + void create(RiderWalletInfo resources); + + /** + * 编辑 + * @param resources / + */ + void update(RiderWalletInfo resources); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(List<Long> ids); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List<RiderWalletInfo> all, HttpServletResponse response) throws IOException; + + /** + * 根据骑手ID查询钱包信息 + * @param riderId 条件 + * @return RiderWalletInfo + */ + RiderWalletInfo getRiderWalletInfo(String riderId); +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/RiderWithdrawalRecordService.java b/oying-system/src/main/java/com/oying/modules/rider/service/RiderWithdrawalRecordService.java new file mode 100644 index 0000000..dd7595c --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/RiderWithdrawalRecordService.java @@ -0,0 +1,59 @@ +package com.oying.modules.rider.service; + +import com.oying.modules.rider.domain.RiderWithdrawalRecord; +import com.oying.modules.rider.domain.dto.RiderWithdrawalRecordQueryCriteria; +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.oying.utils.PageResult; + +/** +* @description 服务接口 +* @author pxb +* @date 2025-06-18 +**/ +public interface RiderWithdrawalRecordService extends IService<RiderWithdrawalRecord> { + + /** + * 查询数据分页 + * @param criteria 条件 + * @param page 分页参数 + * @return PageResult + */ + PageResult<RiderWithdrawalRecord> queryAll(RiderWithdrawalRecordQueryCriteria criteria, Page<Object> page); + + /** + * 查询所有数据不分页 + * @param criteria 条件参数 + * @return List<RiderWithdrawalRecordDto> + */ + List<RiderWithdrawalRecord> queryAll(RiderWithdrawalRecordQueryCriteria criteria); + + /** + * 创建 + * @param resources / + */ + void create(RiderWithdrawalRecord resources); + + /** + * 编辑 + * @param resources / + */ + void update(RiderWithdrawalRecord resources); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(List<Long> ids); + + /** + * 导出数据 + * @param all 待导出的数据 + * @param response / + * @throws IOException / + */ + void download(List<RiderWithdrawalRecord> all, HttpServletResponse response) throws IOException; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderIncomeDetailServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderIncomeDetailServiceImpl.java new file mode 100644 index 0000000..5da95c2 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderIncomeDetailServiceImpl.java @@ -0,0 +1,89 @@ +package com.oying.modules.rider.service.impl; + +import com.oying.modules.rider.domain.RiderIncomeDetail; +import com.oying.modules.rider.domain.dto.RiderIncomeDetailQueryCriteria; +import com.oying.modules.rider.mapper.RiderIncomeDetailMapper; +import com.oying.modules.rider.service.RiderIncomeDetailService; +import com.oying.utils.FileUtil; +import lombok.RequiredArgsConstructor; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.oying.utils.PageUtil; + +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; + +import com.oying.utils.PageResult; + +/** + * @author pxb + * @description 服务实现 + * @date 2025-06-18 + **/ +@Service +@RequiredArgsConstructor +public class RiderIncomeDetailServiceImpl extends ServiceImpl<RiderIncomeDetailMapper, RiderIncomeDetail> implements RiderIncomeDetailService { + + private final RiderIncomeDetailMapper riderIncomeDetailMapper; + + @Override + public PageResult<RiderIncomeDetail> queryAll(RiderIncomeDetailQueryCriteria criteria, Page<Object> page) { + return PageUtil.toPage(riderIncomeDetailMapper.findAll(criteria, page)); + } + + @Override + public List<RiderIncomeDetail> queryAll(RiderIncomeDetailQueryCriteria criteria) { + return riderIncomeDetailMapper.findAll(criteria); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(RiderIncomeDetail resources) { + riderIncomeDetailMapper.insert(resources); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(RiderIncomeDetail resources) { + RiderIncomeDetail riderIncomeDetail = getById(resources.getIncomeId()); + riderIncomeDetail.copy(resources); + riderIncomeDetailMapper.updateById(riderIncomeDetail); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(List<Long> ids) { + riderIncomeDetailMapper.deleteBatchIds(ids); + } + + @Override + public void download(List<RiderIncomeDetail> all, HttpServletResponse response) throws IOException { + List<Map<String, Object>> list = new ArrayList<>(); + for (RiderIncomeDetail riderIncomeDetail : all) { + Map<String, Object> map = new LinkedHashMap<>(); + map.put("骑手id", riderIncomeDetail.getRiderId()); + map.put("骑手名字", riderIncomeDetail.getRiderName()); + map.put("骑手手机号", riderIncomeDetail.getRiderPhone()); + map.put("订单id", riderIncomeDetail.getOrderId()); + map.put("订单号", riderIncomeDetail.getOrderNum()); + map.put("收入金额", riderIncomeDetail.getIncomeAmount()); + map.put("收入类型:1-配送费,2-奖励,3-补贴", riderIncomeDetail.getIncomeType()); + map.put("收入日期(YYYY-MM-dd)方便统计", riderIncomeDetail.getIncomeDate()); + map.put("收入月份YYYY-MM", riderIncomeDetail.getIncomeMonth()); + map.put("订单状态:1-待取货,2-配送中,3-已完成,4-已取消", riderIncomeDetail.getOrderStatus()); + map.put("创建人", riderIncomeDetail.getCreateBy()); + map.put("创建时间", riderIncomeDetail.getCreateTime()); + map.put("修改者", riderIncomeDetail.getUpdateBy()); + map.put("修改时间", riderIncomeDetail.getUpdateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } + +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java new file mode 100644 index 0000000..74eedd1 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderInfoServiceImpl.java @@ -0,0 +1,151 @@ +package com.oying.modules.rider.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.oying.exception.BadRequestException; +import com.oying.modules.rider.domain.RiderInfo; +import com.oying.modules.rider.domain.RiderSourceInfo; +import com.oying.modules.rider.domain.RiderSourceInfoHttp; +import com.oying.modules.rider.utils.Constants; +import com.oying.modules.rider.utils.RiderSourceHttpUtils; +import com.oying.utils.FileUtil; +import com.oying.utils.SecurityUtils; +import lombok.RequiredArgsConstructor; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.oying.modules.rider.service.RiderInfoService; +import com.oying.modules.rider.domain.dto.RiderInfoQueryCriteria; +import com.oying.modules.rider.mapper.RiderInfoMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.oying.utils.PageUtil; + +import java.util.*; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import com.oying.utils.PageResult; + +/** + * @author pxb + * @description 服务实现 + * @date 2025-07-01 + **/ +@Service +@RequiredArgsConstructor +public class RiderInfoServiceImpl extends ServiceImpl<RiderInfoMapper, RiderInfo> implements RiderInfoService { + + private final RiderInfoMapper riderInfoMapper; + + @Override + public PageResult<RiderInfo> queryAll(RiderInfoQueryCriteria criteria, Page<Object> page) { + return PageUtil.toPage(riderInfoMapper.findAll(criteria, page)); + } + + @Override + public List<RiderInfo> queryAll(RiderInfoQueryCriteria criteria) { + return riderInfoMapper.findAll(criteria); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(RiderInfo resources) { + riderInfoMapper.insert(resources); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(RiderInfo resources) { + RiderInfo riderInfo = getById(resources.getInfoId()); + riderInfo.copy(resources); + riderInfoMapper.updateById(riderInfo); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(List<Long> ids) { + riderInfoMapper.deleteBatchIds(ids); + } + + @Override + public void download(List<RiderInfo> all, HttpServletResponse response) throws IOException { + List<Map<String, Object>> list = new ArrayList<>(); + for (RiderInfo riderInfo : all) { + Map<String, Object> map = new LinkedHashMap<>(); + map.put("骑手id", riderInfo.getRiderId()); + map.put("数据来源id", riderInfo.getSourceId()); + map.put("电话", riderInfo.getPhone()); + map.put("乙方姓名", riderInfo.getCardName()); + map.put("证件号", riderInfo.getCardNum()); + map.put("数据来源编号", riderInfo.getSourceNum()); + map.put("状态0不生效,1生效 其他平台的条件是否满足", riderInfo.getEnabled()); + map.put("数据来源平台(LY,等)", riderInfo.getSourcePlatform()); + map.put("地址", riderInfo.getAddress()); + map.put("创建者", riderInfo.getCreateBy()); + map.put("更新者", riderInfo.getUpdateBy()); + map.put("创建日期", riderInfo.getCreateTime()); + map.put("更新时间", riderInfo.getUpdateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } + + @Override + public void syncRiderSourceInfo(String sourcePlatform) { + Long riderId = SecurityUtils.getCurrentUserId(); + // 查询其他平台的数据 + RiderSourceInfoHttp riderSourceInfoHttp = RiderSourceHttpUtils.getRiderSourceInfoHttp(SecurityUtils.getCurrentUsername(), sourcePlatform); + // 请求成功 + if (riderSourceInfoHttp.getCode().equals(Constants.HTTP_CODE_SUCCESS)) { + // 获取骑手信息等于空 + if (null != riderSourceInfoHttp.getData()) { + RiderSourceInfo infoHttpData = riderSourceInfoHttp.getData(); + // 检查是否存在该平台的骑手信息 + QueryWrapper<RiderInfo> riderInfoQueryWrapper = new QueryWrapper<>(); + riderInfoQueryWrapper.eq(RiderInfo.COL_RIDER_ID, riderId); + RiderInfo riderInfo = riderInfoMapper.selectOne(riderInfoQueryWrapper); + // 如果存在该平台的骑手信息 + if (null == riderInfo) { + // 如果不存在,则创建新的骑手三方信息 + RiderInfo newRiderInfo = new RiderInfo(); + BeanUtil.copyProperties(infoHttpData, newRiderInfo); + newRiderInfo.setRiderId(riderId); + newRiderInfo.setSourcePlatform(sourcePlatform); + create(newRiderInfo); + } else { + // 是否相同平台 + if (sourcePlatform.equals(riderInfo.getSourcePlatform())) { + // 如果存在,接单状态不同 更新接单状态 + if (!infoHttpData.getEnabled().equals(riderInfo.getEnabled())) { + riderInfo.setEnabled(infoHttpData.getEnabled()); + // 更新骑手信息 + updateById(riderInfo); + } + } else { + // 骑手平台信息变更 + RiderInfo newRiderInfo = new RiderInfo(); + BeanUtil.copyProperties(infoHttpData, newRiderInfo); + newRiderInfo.setRiderId(riderId); + newRiderInfo.setSourcePlatform(sourcePlatform); + updateById(newRiderInfo); + // 添加变更记录... + } + } + } else { + // 获取骑手三方数据为空,抛出异常 + throw new BadRequestException("获取骑手三方数据为空"); + } + } else { + // 获取骑手三方数据失败,抛出异常 + throw new BadRequestException("获取骑手三方数据失败"); + } + } + + @Override + public RiderInfo getRiderSourceInfo(String riderId) { + QueryWrapper<RiderInfo> riderInfoQueryWrapper = new QueryWrapper<>(); + riderInfoQueryWrapper.eq(RiderInfo.COL_RIDER_ID, riderId); + return riderInfoMapper.selectOne(riderInfoQueryWrapper); + } + +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderOperationServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderOperationServiceImpl.java new file mode 100644 index 0000000..114a925 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderOperationServiceImpl.java @@ -0,0 +1,84 @@ +package com.oying.modules.rider.service.impl; + +import com.oying.modules.rider.domain.RiderOrderOperation; +import com.oying.utils.FileUtil; +import lombok.RequiredArgsConstructor; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.oying.modules.rider.service.RiderOrderOperationService; +import com.oying.modules.rider.domain.dto.RiderOrderOperationQueryCriteria; +import com.oying.modules.rider.mapper.RiderOrderOperationMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.oying.utils.PageUtil; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import com.oying.utils.PageResult; + +/** +* @description 服务实现 +* @author pxb +* @date 2025-06-18 +**/ +@Service +@RequiredArgsConstructor +public class RiderOrderOperationServiceImpl extends ServiceImpl<RiderOrderOperationMapper, RiderOrderOperation> implements RiderOrderOperationService { + + private final RiderOrderOperationMapper riderOrderOperationMapper; + + @Override + public PageResult<RiderOrderOperation> queryAll(RiderOrderOperationQueryCriteria criteria, Page<Object> page){ + return PageUtil.toPage(riderOrderOperationMapper.findAll(criteria, page)); + } + + @Override + public List<RiderOrderOperation> queryAll(RiderOrderOperationQueryCriteria criteria){ + return riderOrderOperationMapper.findAll(criteria); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(RiderOrderOperation resources) { + riderOrderOperationMapper.insert(resources); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(RiderOrderOperation resources) { + RiderOrderOperation riderOrderOperation = getById(resources.getOperationId()); + riderOrderOperation.copy(resources); + riderOrderOperationMapper.updateById(riderOrderOperation); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(List<Long> ids) { + riderOrderOperationMapper.deleteBatchIds(ids); + } + + @Override + public void download(List<RiderOrderOperation> all, HttpServletResponse response) throws IOException { + List<Map<String, Object>> list = new ArrayList<>(); + for (RiderOrderOperation riderOrderOperation : all) { + Map<String, Object> map = new LinkedHashMap<>(); + map.put("订单ID", riderOrderOperation.getOrderId()); + map.put("订单编号", riderOrderOperation.getOrderNum()); + map.put("骑手ID", riderOrderOperation.getRiderId()); + map.put("骑手手机号", riderOrderOperation.getRiderPhone()); + map.put("骑手手姓名", riderOrderOperation.getRiderName()); + map.put("操作类型:1-接单,2-取货,3-送达,0-取消接单", riderOrderOperation.getOperationType()); + map.put("操作原因", riderOrderOperation.getOperationReason()); + map.put("操作时间", riderOrderOperation.getOperationTime()); + map.put("创建人", riderOrderOperation.getCreateBy()); + map.put("创建时间", riderOrderOperation.getCreateTime()); + map.put("修改者", riderOrderOperation.getUpdateBy()); + map.put("修改时间", riderOrderOperation.getUpdateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java new file mode 100644 index 0000000..d1b9785 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderRecordServiceImpl.java @@ -0,0 +1,90 @@ +package com.oying.modules.rider.service.impl; + +import com.oying.modules.rider.domain.RiderOrderRecord; +import com.oying.utils.FileUtil; +import lombok.RequiredArgsConstructor; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.oying.modules.rider.service.RiderOrderRecordService; +import com.oying.modules.rider.domain.dto.RiderOrderRecordQueryCriteria; +import com.oying.modules.rider.mapper.RiderOrderRecordMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.oying.utils.PageUtil; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import com.oying.utils.PageResult; + +/** +* @description 服务实现 +* @author pxb +* @date 2025-07-01 +**/ +@Service +@RequiredArgsConstructor +public class RiderOrderRecordServiceImpl extends ServiceImpl<RiderOrderRecordMapper, RiderOrderRecord> implements RiderOrderRecordService { + + private final RiderOrderRecordMapper riderOrderRecordMapper; + + @Override + public PageResult<RiderOrderRecord> queryAll(RiderOrderRecordQueryCriteria criteria, Page<Object> page){ + return PageUtil.toPage(riderOrderRecordMapper.findAll(criteria, page)); + } + + @Override + public List<RiderOrderRecord> queryAll(RiderOrderRecordQueryCriteria criteria){ + return riderOrderRecordMapper.findAll(criteria); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(RiderOrderRecord resources) { + riderOrderRecordMapper.insert(resources); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(RiderOrderRecord resources) { + RiderOrderRecord riderOrderRecord = getById(resources.getRecordId()); + riderOrderRecord.copy(resources); + riderOrderRecordMapper.updateById(riderOrderRecord); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(List<Long> ids) { + riderOrderRecordMapper.deleteBatchIds(ids); + } + + @Override + public void download(List<RiderOrderRecord> all, HttpServletResponse response) throws IOException { + List<Map<String, Object>> list = new ArrayList<>(); + for (RiderOrderRecord riderOrderRecord : all) { + Map<String, Object> map = new LinkedHashMap<>(); + map.put("订单id", riderOrderRecord.getOrderId()); + map.put("订单编号", riderOrderRecord.getOrderNum()); + map.put("商家ID", riderOrderRecord.getMerchantId()); + map.put("商家名称", riderOrderRecord.getMerchantName()); + map.put("商家地址", riderOrderRecord.getMerchantAddress()); + map.put("收货地址", riderOrderRecord.getReceiverAddress()); + map.put("订单状态: 1-待取货 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消", riderOrderRecord.getOrderStatus()); + map.put("接单时间", riderOrderRecord.getAcceptTime()); + map.put("接单编号", riderOrderRecord.getAcceptNum()); + map.put("完成/取消时间", riderOrderRecord.getFinishTime()); + map.put("配送时长(秒)", riderOrderRecord.getDeliveryDuration()); + map.put("是否超时:1-是 0-否", riderOrderRecord.getIsOvertime()); + map.put("订单来源: 1-平台派单 2-骑手抢单 3-商家直派 4-其他", riderOrderRecord.getOrderSource()); + map.put("订单收入配送费", riderOrderRecord.getOrderIncome()); + map.put("创建人", riderOrderRecord.getCreateBy()); + map.put("创建时间", riderOrderRecord.getCreateTime()); + map.put("修改人", riderOrderRecord.getUpdateBy()); + map.put("修改时间", riderOrderRecord.getUpdateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderReminderServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderReminderServiceImpl.java new file mode 100644 index 0000000..0cf6510 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderOrderReminderServiceImpl.java @@ -0,0 +1,87 @@ +package com.oying.modules.rider.service.impl; + +import com.oying.modules.rider.domain.RiderOrderReminder; +import com.oying.utils.FileUtil; +import lombok.RequiredArgsConstructor; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.oying.modules.rider.service.RiderOrderReminderService; +import com.oying.modules.rider.domain.dto.RiderOrderReminderQueryCriteria; +import com.oying.modules.rider.mapper.RiderOrderReminderMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.oying.utils.PageUtil; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import com.oying.utils.PageResult; + +/** +* @description 服务实现 +* @author pxb +* @date 2025-06-18 +**/ +@Service +@RequiredArgsConstructor +public class RiderOrderReminderServiceImpl extends ServiceImpl<RiderOrderReminderMapper, RiderOrderReminder> implements RiderOrderReminderService { + + private final RiderOrderReminderMapper riderOrderReminderMapper; + + @Override + public PageResult<RiderOrderReminder> queryAll(RiderOrderReminderQueryCriteria criteria, Page<Object> page){ + return PageUtil.toPage(riderOrderReminderMapper.findAll(criteria, page)); + } + + @Override + public List<RiderOrderReminder> queryAll(RiderOrderReminderQueryCriteria criteria){ + return riderOrderReminderMapper.findAll(criteria); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(RiderOrderReminder resources) { + riderOrderReminderMapper.insert(resources); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(RiderOrderReminder resources) { + RiderOrderReminder riderOrderReminder = getById(resources.getReminderId()); + riderOrderReminder.copy(resources); + riderOrderReminderMapper.updateById(riderOrderReminder); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(List<Long> ids) { + riderOrderReminderMapper.deleteBatchIds(ids); + } + + @Override + public void download(List<RiderOrderReminder> all, HttpServletResponse response) throws IOException { + List<Map<String, Object>> list = new ArrayList<>(); + for (RiderOrderReminder riderOrderReminder : all) { + Map<String, Object> map = new LinkedHashMap<>(); + map.put("骑手id", riderOrderReminder.getRiderId()); + map.put("骑手名字", riderOrderReminder.getRiderName()); + map.put("骑手手机号", riderOrderReminder.getRiderPhone()); + map.put("订单Id", riderOrderReminder.getOrderId()); + map.put("订单号", riderOrderReminder.getOrderNum()); + map.put("规则id", riderOrderReminder.getRuleId()); + map.put("规则内容", riderOrderReminder.getRuleContent()); + map.put("规则类型。。。", riderOrderReminder.getRuleType()); + map.put("提醒时间", riderOrderReminder.getReminderTime()); + map.put("是否已发送:0-否,1-是", riderOrderReminder.getIsSent()); + map.put("发送时间", riderOrderReminder.getSendTime()); + map.put("创建人", riderOrderReminder.getCreateBy()); + map.put("创建时间", riderOrderReminder.getCreateTime()); + map.put("修改者", riderOrderReminder.getUpdateBy()); + map.put("修改时间", riderOrderReminder.getUpdateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderWalletInfoServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderWalletInfoServiceImpl.java new file mode 100644 index 0000000..e651a2d --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderWalletInfoServiceImpl.java @@ -0,0 +1,97 @@ +package com.oying.modules.rider.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.oying.modules.rider.domain.RiderWalletInfo; +import com.oying.utils.FileUtil; +import lombok.RequiredArgsConstructor; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.oying.modules.rider.service.RiderWalletInfoService; +import com.oying.modules.rider.domain.dto.RiderWalletInfoQueryCriteria; +import com.oying.modules.rider.mapper.RiderWalletInfoMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.oying.utils.PageUtil; + +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; + +import com.oying.utils.PageResult; + +/** + * @author pxb + * @description 服务实现 + * @date 2025-06-18 + **/ +@Service +@RequiredArgsConstructor +public class RiderWalletInfoServiceImpl extends ServiceImpl<RiderWalletInfoMapper, RiderWalletInfo> implements RiderWalletInfoService { + + private final RiderWalletInfoMapper riderWalletInfoMapper; + + @Override + public PageResult<RiderWalletInfo> queryAll(RiderWalletInfoQueryCriteria criteria, Page<Object> page) { + return PageUtil.toPage(riderWalletInfoMapper.findAll(criteria, page)); + } + + @Override + public List<RiderWalletInfo> queryAll(RiderWalletInfoQueryCriteria criteria) { + return riderWalletInfoMapper.findAll(criteria); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(RiderWalletInfo resources) { + riderWalletInfoMapper.insert(resources); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(RiderWalletInfo resources) { + RiderWalletInfo riderWalletInfo = getById(resources.getWalletId()); + riderWalletInfo.copy(resources); + riderWalletInfoMapper.updateById(riderWalletInfo); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(List<Long> ids) { + riderWalletInfoMapper.deleteBatchIds(ids); + } + + @Override + public void download(List<RiderWalletInfo> all, HttpServletResponse response) throws IOException { + List<Map<String, Object>> list = new ArrayList<>(); + for (RiderWalletInfo riderWalletInfo : all) { + Map<String, Object> map = new LinkedHashMap<>(); + map.put("骑手id", riderWalletInfo.getRiderId()); + map.put("总金额", riderWalletInfo.getAmount()); + map.put("可用余额", riderWalletInfo.getAvailableBalance()); + map.put("购电总金额", riderWalletInfo.getPurchasingElectricityAmount()); + map.put("累计提现", riderWalletInfo.getWithdrawTotal()); + map.put("累计收入", riderWalletInfo.getIncomeTotal()); + map.put("冻结金额", riderWalletInfo.getFrozenAmount()); + map.put("完成总单数", riderWalletInfo.getRunTotal()); + map.put("提现总次数", riderWalletInfo.getCashWithdrawalTotal()); + map.put("购电总次数", riderWalletInfo.getPurchasingElectricityTotal()); + map.put("钱包状态(0冻结,1正常)", riderWalletInfo.getStatus()); + map.put("创建人", riderWalletInfo.getCreateBy()); + map.put("创建时间", riderWalletInfo.getCreateTime()); + map.put("修改人", riderWalletInfo.getUpdateBy()); + map.put("修改时间", riderWalletInfo.getUpdateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } + + @Override + public RiderWalletInfo getRiderWalletInfo(String riderId) { + QueryWrapper<RiderWalletInfo> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(RiderWalletInfo.COL_RIDER_ID, riderId); + return riderWalletInfoMapper.selectOne(queryWrapper); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderWithdrawalRecordServiceImpl.java b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderWithdrawalRecordServiceImpl.java new file mode 100644 index 0000000..5c3ff2a --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/service/impl/RiderWithdrawalRecordServiceImpl.java @@ -0,0 +1,91 @@ +package com.oying.modules.rider.service.impl; + +import com.oying.modules.rider.domain.RiderWithdrawalRecord; +import com.oying.utils.FileUtil; +import lombok.RequiredArgsConstructor; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.oying.modules.rider.service.RiderWithdrawalRecordService; +import com.oying.modules.rider.domain.dto.RiderWithdrawalRecordQueryCriteria; +import com.oying.modules.rider.mapper.RiderWithdrawalRecordMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.oying.utils.PageUtil; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import com.oying.utils.PageResult; + +/** +* @description 服务实现 +* @author pxb +* @date 2025-06-18 +**/ +@Service +@RequiredArgsConstructor +public class RiderWithdrawalRecordServiceImpl extends ServiceImpl<RiderWithdrawalRecordMapper, RiderWithdrawalRecord> implements RiderWithdrawalRecordService { + + private final RiderWithdrawalRecordMapper riderWithdrawalRecordMapper; + + @Override + public PageResult<RiderWithdrawalRecord> queryAll(RiderWithdrawalRecordQueryCriteria criteria, Page<Object> page){ + return PageUtil.toPage(riderWithdrawalRecordMapper.findAll(criteria, page)); + } + + @Override + public List<RiderWithdrawalRecord> queryAll(RiderWithdrawalRecordQueryCriteria criteria){ + return riderWithdrawalRecordMapper.findAll(criteria); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(RiderWithdrawalRecord resources) { + riderWithdrawalRecordMapper.insert(resources); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(RiderWithdrawalRecord resources) { + RiderWithdrawalRecord riderWithdrawalRecord = getById(resources.getRecordId()); + riderWithdrawalRecord.copy(resources); + riderWithdrawalRecordMapper.updateById(riderWithdrawalRecord); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteAll(List<Long> ids) { + riderWithdrawalRecordMapper.deleteBatchIds(ids); + } + + @Override + public void download(List<RiderWithdrawalRecord> all, HttpServletResponse response) throws IOException { + List<Map<String, Object>> list = new ArrayList<>(); + for (RiderWithdrawalRecord riderWithdrawalRecord : all) { + Map<String, Object> map = new LinkedHashMap<>(); + map.put("骑手id", riderWithdrawalRecord.getRiderId()); + map.put("骑手名字", riderWithdrawalRecord.getRiderName()); + map.put("骑手手机号", riderWithdrawalRecord.getRiderPhone()); + map.put("提现前总金额", riderWithdrawalRecord.getAmount()); + map.put("本次提现金额", riderWithdrawalRecord.getWithdrawalAmount()); + map.put("剩余总金额", riderWithdrawalRecord.getNowAmount()); + map.put("手续费", riderWithdrawalRecord.getFee()); + map.put("实际到账金额", riderWithdrawalRecord.getActualAmount()); + map.put("状态:1-处理中,2-已完成,3-已拒绝", riderWithdrawalRecord.getStatus()); + map.put("银行账号", riderWithdrawalRecord.getBankAccount()); + map.put("开户行", riderWithdrawalRecord.getBankName()); + map.put("申请时间", riderWithdrawalRecord.getApplyTime()); + map.put("处理时间", riderWithdrawalRecord.getProcessTime()); + map.put("处理人", riderWithdrawalRecord.getOperator()); + map.put("备注", riderWithdrawalRecord.getRemark()); + map.put("创建人", riderWithdrawalRecord.getCreateBy()); + map.put("创建时间", riderWithdrawalRecord.getCreateTime()); + map.put("修改人", riderWithdrawalRecord.getUpdateBy()); + map.put("修改时间", riderWithdrawalRecord.getUpdateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java b/oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java new file mode 100644 index 0000000..21c3053 --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/utils/Constants.java @@ -0,0 +1,29 @@ +package com.oying.modules.rider.utils; + +/** + * TODO + * + * @author pxb + * @version 1.0 + * @date 2021/3/16 12:47 + */ +public interface Constants { + + + /** + * EXCEL文件格式 + */ + String EXCEL_SUFFIX_XLSX = ".xlsx"; + String EXCEL_SUFFIX_XLS = ".xls"; + + /** + * HTTP请求成功状态码 + */ + String HTTP_CODE_SUCCESS = "200"; + + /** + * 状态 0不生效,1生效 其他平台是否满足接单的条件 + */ + String SOURCE_ENABLED_ON = "0"; + String SOURCE_ENABLED_DFF = "1"; +} diff --git a/oying-system/src/main/java/com/oying/modules/rider/utils/RiderSourceHttpUtils.java b/oying-system/src/main/java/com/oying/modules/rider/utils/RiderSourceHttpUtils.java new file mode 100644 index 0000000..3e777aa --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/rider/utils/RiderSourceHttpUtils.java @@ -0,0 +1,108 @@ +package com.oying.modules.rider.utils; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.http.Header; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.oying.modules.rider.domain.RiderSourceInfoHttp; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; + + +/** + * TODO + * 骑手信息查询 + * + * @author pxb + * @version 1.0 + */ +public class RiderSourceHttpUtils { + + private static final Logger log = LoggerFactory.getLogger(RiderSourceHttpUtils.class); + // private static final String URL = "http://1.14.71.182:5000/"; + // private static final String URL = "http://192.168.18.111:5000/"; + + + /** + * 功能描述: <HTTp请求> + * + * @param: paramMap 请求参数 + * @return: java.lang.Object + * @author: pxb + */ + public static String httpPostRequest(HashMap<String, Object> paramMap, String url) { + String jsonParam = JSON.toJSONString(paramMap); + HttpResponse response = null; + try { + response = HttpRequest.post(url) + // 头信息,多个头信息多次调用此方法即可 + .header(Header.USER_AGENT, "*") + .header(Header.CONTENT_TYPE, "application/json;charset=utf-8") + // .form(paramMap)//表单内容 + // 超时,毫秒 + .timeout(30000) + .body(jsonParam) + .execute(); + return response.body(); + } catch (Exception e) { + RiderSourceInfoHttp riderSourceInfoHttp = new RiderSourceInfoHttp(); + riderSourceInfoHttp.setCode("500"); + riderSourceInfoHttp.setMessage(paramMap.get("phone") + "手机号请求异常:" + url); + riderSourceInfoHttp.setSuccess("false"); + return JSON.toJSONString(riderSourceInfoHttp); + } finally { + IoUtil.close(response); + } + } + + /** + * 功能描述: <获取第三方骑手数据信息> + * + * @param: [phone, sourcePlatform] 手机号,来源平台 + * @return: riderSourceInfoHttp + * @author: pxb + */ + public static RiderSourceInfoHttp getRiderSourceInfoHttp(String phone, String sourcePlatform) { + HashMap<String, Object> paramMap = new HashMap<>(2); + paramMap.put("phone", phone); + paramMap.put("produceType", sourcePlatform); + String url = ""; + // 转化成对象 + RiderSourceInfoHttp riderSourceInfoHttp = new RiderSourceInfoHttp(); + try { + String result = httpPostRequest(paramMap, url); + // 转换数据 + riderSourceInfoHttp = riderConvertUtils(result); + } catch (Exception e) { + riderSourceInfoHttp.setCode("500"); + riderSourceInfoHttp.setMessage("获取数据失败"); + riderSourceInfoHttp.setSuccess("false"); + return riderSourceInfoHttp; + } + return riderSourceInfoHttp; + } + + /** + * 功能描述: <转换第三方骑手数据信息> + * + * @param: [] + * @return: java.lang.Object + * @author: pxb + */ + public static RiderSourceInfoHttp riderConvertUtils(String result) { + RiderSourceInfoHttp riderSourceInfoHttp = new RiderSourceInfoHttp(); + try { + riderSourceInfoHttp = JSONObject.parseObject(result, RiderSourceInfoHttp.class); + return riderSourceInfoHttp; + } catch (Exception e) { + riderSourceInfoHttp.setCode("500"); + riderSourceInfoHttp.setMessage("转化数据失败"); + riderSourceInfoHttp.setSuccess("false"); + return riderSourceInfoHttp; + } + } +} diff --git a/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml b/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml index 759100b..5bccf2c 100644 --- a/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml +++ b/oying-system/src/main/resources/mapper/message/MessageOrderSellerMapper.xml @@ -4,6 +4,7 @@ <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageOrderSeller"> <id column="id" property="id"/> <result column="order_id" property="orderId"/> + <result column="store_id" property="storeId"/> <result column="message_type" property="messageType"/> <result column="message_content" property="messageContent"/> <result column="link" property="link"/> @@ -11,11 +12,13 @@ <result column="update_time" property="updateTime"/> <result column="create_by" property="createBy"/> <result column="update_by" property="updateBy"/> + <result column="flag" property="flag"/> </resultMap> <sql id="Base_Column_List"> - id, order_id, message_type, message_content, link, create_time, update_time, create_by, update_by + id, order_id,store_id, message_type, message_content, link, create_time, update_time, create_by, update_by,flag </sql> + <select id="findAll" resultMap="BaseResultMap"> select @@ -25,4 +28,19 @@ </where> order by id desc </select> + + <select id="findByStoreId" resultType="com.oying.modules.message.domain.MessageOrderSeller" + parameterType="java.lang.String"> +# 根据store_id(不是主键)返回 list + select + <include refid="Base_Column_List"/> + from message_order_seller + where store_id = #{storeId} and flag = 0 + order by id desc + </select> + <update id="updateMessageOrderSellerRead" parameterType="java.lang.Integer"> + update message_order_seller + set flag = 1 + where order_id = #{orderId} + </update> </mapper> \ No newline at end of file diff --git a/oying-system/src/main/resources/mapper/pc/category/PlatformCategoryMapper.xml b/oying-system/src/main/resources/mapper/pc/category/PlatformCategoryMapper.xml index 86b2d88..7202dfe 100644 --- a/oying-system/src/main/resources/mapper/pc/category/PlatformCategoryMapper.xml +++ b/oying-system/src/main/resources/mapper/pc/category/PlatformCategoryMapper.xml @@ -8,7 +8,7 @@ <result column="level" property="level"/> <result column="sort_weight" property="sortWeight"/> <result column="icon_id" property="iconId"/> - <result column="icon_url" property="iconId"/> + <result column="icon_url" property="iconUrl"/> <result column="status" property="status"/> <result column="active" property="active"/> <result column="create_by" property="createBy"/> @@ -18,7 +18,7 @@ </resultMap> <sql id="Base_Column_List"> - category_id, parent_id, name, level, sort_weight, icon_id, status, active, create_by, create_time, update_by, update_time + category_id, parent_id, name, level, sort_weight, icon_id, icon_url, status, active, create_by, create_time, update_by, update_time </sql> <select id="findAll" resultMap="BaseResultMap"> diff --git a/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml b/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml index 25f5a00..ac3cb3d 100644 --- a/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml +++ b/oying-system/src/main/resources/mapper/pc/store/StoreMapper.xml @@ -135,7 +135,9 @@ AND s.platform_category_id = #{criteria.platformCategoryId} </if> </where> - LIMIT 1000 + <if test="criteria.limit != null"> + limit #{criteria.limit} + </if> </select> <select id="queryUserStores" parameterType="java.lang.Long" resultMap="StoreResult"> diff --git a/oying-system/src/main/resources/mapper/rider/RiderIncomeDetailMapper.xml b/oying-system/src/main/resources/mapper/rider/RiderIncomeDetailMapper.xml new file mode 100644 index 0000000..1b05e74 --- /dev/null +++ b/oying-system/src/main/resources/mapper/rider/RiderIncomeDetailMapper.xml @@ -0,0 +1,61 @@ +<?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.oying.modules.rider.mapper.RiderIncomeDetailMapper"> + <resultMap id="BaseResultMap" type="com.oying.modules.rider.domain.RiderIncomeDetail"> + <id column="income_id" property="incomeId"/> + <result column="rider_id" property="riderId"/> + <result column="rider_name" property="riderName"/> + <result column="rider_phone" property="riderPhone"/> + <result column="order_id" property="orderId"/> + <result column="order_num" property="orderNum"/> + <result column="income_amount" property="incomeAmount"/> + <result column="income_type" property="incomeType"/> + <result column="income_date" property="incomeDate"/> + <result column="income_month" property="incomeMonth"/> + <result column="order_status" property="orderStatus"/> + <result column="create_by" property="createBy"/> + <result column="create_time" property="createTime"/> + <result column="update_by" property="updateBy"/> + <result column="update_time" property="updateTime"/> + <result column="start_address" property="startAddress"/> + <result column="end_address" property="endAddress"/> + <result column="delivery_time" property="deliveryTime"/> + </resultMap> + + <sql id="Base_Column_List"> + income_id, rider_id, rider_name, rider_phone, order_id, order_num, income_amount, income_type, income_date, income_month, order_status, create_by, create_time, update_by, update_time, start_address, end_address, delivery_time + </sql> + + <select id="findAll" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"/> + from qs_rider_income_detail + <where> + <if test="criteria.riderName != null"> + and rider_name = #{criteria.riderName} + </if> + <if test="criteria.riderPhone != null"> + and rider_phone = #{criteria.riderPhone} + </if> + <if test="criteria.orderNum != null"> + and order_num = #{criteria.orderNum} + </if> + <if test="criteria.incomeType != null"> + and income_type = #{criteria.incomeType} + </if> + <if test="criteria.incomeDate != null"> + and income_date = #{criteria.incomeDate} + </if> + <if test="criteria.incomeMonth != null"> + and income_month = #{criteria.incomeMonth} + </if> + <if test="criteria.orderStatus != null"> + and order_status = #{criteria.orderStatus} + </if> + <if test="criteria.createTime != null and criteria.createTime.size() > 0"> + AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} + </if> + </where> + order by create_time desc + </select> +</mapper> \ No newline at end of file diff --git a/oying-system/src/main/resources/mapper/rider/RiderInfoMapper.xml b/oying-system/src/main/resources/mapper/rider/RiderInfoMapper.xml new file mode 100644 index 0000000..0f69658 --- /dev/null +++ b/oying-system/src/main/resources/mapper/rider/RiderInfoMapper.xml @@ -0,0 +1,57 @@ +<?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.oying.modules.rider.mapper.RiderInfoMapper"> + <resultMap id="BaseResultMap" type="com.oying.modules.rider.domain.RiderInfo"> + <id column="info_id" property="infoId"/> + <result column="rider_id" property="riderId"/> + <result column="source_id" property="sourceId"/> + <result column="phone" property="phone"/> + <result column="card_name" property="cardName"/> + <result column="card_num" property="cardNum"/> + <result column="source_num" property="sourceNum"/> + <result column="enabled" property="enabled"/> + <result column="source_platform" property="sourcePlatform"/> + <result column="address" property="address"/> + <result column="create_by" property="createBy"/> + <result column="update_by" property="updateBy"/> + <result column="create_time" property="createTime"/> + <result column="update_time" property="updateTime"/> + </resultMap> + + <sql id="Base_Column_List"> + info_id, rider_id, source_id, phone, card_name, card_num, source_num, enabled, source_platform, address, create_by, update_by, create_time, update_time + </sql> + + <select id="findAll" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"/> + from qs_rider_info + <where> + <if test="criteria.riderId != null"> + and rider_id = #{criteria.riderId} + </if> + <if test="criteria.sourceId != null"> + and source_id = #{criteria.sourceId} + </if> + <if test="criteria.phone != null"> + and phone = #{criteria.phone} + </if> + <if test="criteria.cardName != null"> + and card_name like concat('%',#{criteria.cardName},'%') + </if> + <if test="criteria.cardNum != null"> + and card_num = #{criteria.cardNum} + </if> + <if test="criteria.sourceNum != null"> + and source_num = #{criteria.sourceNum} + </if> + <if test="criteria.enabled != null"> + and enabled = #{criteria.enabled} + </if> + <if test="criteria.sourcePlatform != null"> + and source_platform = #{criteria.sourcePlatform} + </if> + </where> + order by info_id desc + </select> +</mapper> \ No newline at end of file diff --git a/oying-system/src/main/resources/mapper/rider/RiderOrderOperationMapper.xml b/oying-system/src/main/resources/mapper/rider/RiderOrderOperationMapper.xml new file mode 100644 index 0000000..2dd63c0 --- /dev/null +++ b/oying-system/src/main/resources/mapper/rider/RiderOrderOperationMapper.xml @@ -0,0 +1,59 @@ +<?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.oying.modules.rider.mapper.RiderOrderOperationMapper"> + <resultMap id="BaseResultMap" type="com.oying.modules.rider.domain.RiderOrderOperation"> + <id column="operation_id" property="operationId"/> + <result column="order_id" property="orderId"/> + <result column="order_num" property="orderNum"/> + <result column="rider_id" property="riderId"/> + <result column="rider_phone" property="riderPhone"/> + <result column="rider_name" property="riderName"/> + <result column="operation_type" property="operationType"/> + <result column="operation_reason" property="operationReason"/> + <result column="operation_time" property="operationTime"/> + <result column="create_by" property="createBy"/> + <result column="create_time" property="createTime"/> + <result column="update_by" property="updateBy"/> + <result column="update_time" property="updateTime"/> + </resultMap> + + <sql id="Base_Column_List"> + operation_id, order_id, order_num, rider_id, rider_phone, rider_name, operation_type, operation_reason, operation_time, create_by, create_time, update_by, update_time + </sql> + + <select id="findAll" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"/> + from qs_rider_order_operation + <where> + <if test="criteria.orderId != null"> + and order_id = #{criteria.orderId} + </if> + <if test="criteria.orderNum != null"> + and order_num = #{criteria.orderNum} + </if> + <if test="criteria.riderId != null"> + and rider_id = #{criteria.riderId} + </if> + <if test="criteria.riderPhone != null"> + and rider_phone = #{criteria.riderPhone} + </if> + <if test="criteria.riderName != null"> + and rider_name = #{criteria.riderName} + </if> + <if test="criteria.operationType != null"> + and operation_type = #{criteria.operationType} + </if> + <if test="criteria.operationReason != null"> + and operation_reason like concat('%',#{criteria.operationReason},'%') + </if> + <if test="criteria.operationTime != null and criteria.operationTime.size() > 0"> + AND operation_time BETWEEN #{criteria.operationTime[0]} AND #{criteria.operationTime[1]} + </if> + <if test="criteria.createTime != null and criteria.createTime.size() > 0"> + AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} + </if> + </where> + order by operation_id desc + </select> +</mapper> \ No newline at end of file diff --git a/oying-system/src/main/resources/mapper/rider/RiderOrderRecordMapper.xml b/oying-system/src/main/resources/mapper/rider/RiderOrderRecordMapper.xml new file mode 100644 index 0000000..5549df0 --- /dev/null +++ b/oying-system/src/main/resources/mapper/rider/RiderOrderRecordMapper.xml @@ -0,0 +1,87 @@ +<?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.oying.modules.rider.mapper.RiderOrderRecordMapper"> + <resultMap id="BaseResultMap" type="com.oying.modules.rider.domain.RiderOrderRecord"> + <id column="record_id" property="recordId"/> + <result column="order_id" property="orderId"/> + <result column="order_num" property="orderNum"/> + <result column="merchant_id" property="merchantId"/> + <result column="merchant_name" property="merchantName"/> + <result column="merchant_address" property="merchantAddress"/> + <result column="receiver_address" property="receiverAddress"/> + <result column="order_status" property="orderStatus"/> + <result column="accept_time" property="acceptTime"/> + <result column="accept_num" property="acceptNum"/> + <result column="finish_time" property="finishTime"/> + <result column="delivery_duration" property="deliveryDuration"/> + <result column="is_overtime" property="isOvertime"/> + <result column="order_source" property="orderSource"/> + <result column="order_income" property="orderIncome"/> + <result column="create_by" property="createBy"/> + <result column="create_time" property="createTime"/> + <result column="update_by" property="updateBy"/> + <result column="update_time" property="updateTime"/> + <result column="rider_id" property="riderId"/> + <result column="phone" property="phone"/> + <result column="rider_name" property="riderName"/> + <result column="user_longitude" property="userLongitude"/> + <result column="user_latitude" property="userLatitude"/> + <result column="merchant_longitude" property="merchantLongitude"/> + <result column="merchant_latitude" property="merchantLatitude"/> + <result column="user_id" property="userId"/> + </resultMap> + + <sql id="Base_Column_List"> + record_id, order_id, order_num, merchant_id, merchant_name, merchant_address, + receiver_address, order_status, accept_time, accept_num, finish_time, delivery_duration, + is_overtime, order_source, order_income, create_by, create_time, update_by, update_time, + rider_id, phone, rider_name, user_id, user_longitude, user_latitude, merchant_longitude, merchant_latitude + </sql> + <select id="findAll" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"/> + from qs_rider_order_record + <where> + <if test="criteria.riderId != null"> + and rider_id = #{criteria.riderId} + </if> + <if test="criteria.userId != null"> + and user_id = #{criteria.userId} + </if> + <if test="criteria.orderId != null"> + and order_id = #{criteria.orderId} + </if> + <if test="criteria.orderNum != null"> + and order_num = #{criteria.orderNum} + </if> + <if test="criteria.merchantId != null"> + and merchant_id = #{criteria.merchantId} + </if> + <if test="criteria.merchantName != null"> + and merchant_name like concat('%',#{criteria.merchantName},'%') + </if> + <if test="criteria.merchantAddress != null"> + and merchant_address like concat('%',#{criteria.merchantAddress},'%') + </if> + <if test="criteria.receiverAddress != null"> + and receiver_address like concat('%',#{criteria.receiverAddress},'%') + </if> + <if test="criteria.orderStatus != null"> + and order_status = #{criteria.orderStatus} + </if> + <if test="criteria.isOvertime != null"> + and is_overtime = #{criteria.isOvertime} + </if> + <if test="criteria.acceptTime != null and criteria.acceptTime.size() > 0"> + AND accept_time BETWEEN #{criteria.acceptTime[0]} AND #{criteria.acceptTime[1]} + </if> + <if test="criteria.finishTime != null and criteria.finishTime.size() > 0"> + AND finish_time BETWEEN #{criteria.finishTime[0]} AND #{criteria.finishTime[1]} + </if> + <if test="criteria.createTime != null and criteria.createTime.size() > 0"> + AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} + </if> + </where> + order by create_time desc + </select> +</mapper> \ No newline at end of file diff --git a/oying-system/src/main/resources/mapper/rider/RiderOrderReminderMapper.xml b/oying-system/src/main/resources/mapper/rider/RiderOrderReminderMapper.xml new file mode 100644 index 0000000..48e4d9c --- /dev/null +++ b/oying-system/src/main/resources/mapper/rider/RiderOrderReminderMapper.xml @@ -0,0 +1,71 @@ +<?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.oying.modules.rider.mapper.RiderOrderReminderMapper"> + <resultMap id="BaseResultMap" type="com.oying.modules.rider.domain.RiderOrderReminder"> + <id column="reminder_id" property="reminderId"/> + <result column="rider_id" property="riderId"/> + <result column="rider_name" property="riderName"/> + <result column="rider_phone" property="riderPhone"/> + <result column="order_id" property="orderId"/> + <result column="order_num" property="orderNum"/> + <result column="rule_id" property="ruleId"/> + <result column="rule_content" property="ruleContent"/> + <result column="rule_type" property="ruleType"/> + <result column="reminder_time" property="reminderTime"/> + <result column="is_sent" property="isSent"/> + <result column="send_time" property="sendTime"/> + <result column="create_by" property="createBy"/> + <result column="create_time" property="createTime"/> + <result column="update_by" property="updateBy"/> + <result column="update_time" property="updateTime"/> + </resultMap> + + <sql id="Base_Column_List"> + reminder_id, rider_id, rider_name, rider_phone, order_id, order_num, rule_id, rule_content, rule_type, reminder_time, is_sent, send_time, create_by, create_time, update_by, update_time + </sql> + + <select id="findAll" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"/> + from qs_rider_order_reminder + <where> + <if test="criteria.riderId != null"> + and rider_id = #{criteria.riderId} + </if> + <if test="criteria.riderName != null"> + and rider_name = #{criteria.riderName} + </if> + <if test="criteria.riderPhone != null"> + and rider_phone = #{criteria.riderPhone} + </if> + <if test="criteria.orderId != null"> + and order_id = #{criteria.orderId} + </if> + <if test="criteria.orderNum != null"> + and order_num = #{criteria.orderNum} + </if> + <if test="criteria.ruleId != null"> + and rule_id = #{criteria.ruleId} + </if> + <if test="criteria.ruleContent != null"> + and rule_content like concat('%',#{criteria.ruleContent},'%') + </if> + <if test="criteria.ruleType != null"> + and rule_type = #{criteria.ruleType} + </if> + <if test="criteria.isSent != null"> + and is_sent = #{criteria.isSent} + </if> + <if test="criteria.reminderTime != null and criteria.reminderTime.size() > 0"> + AND reminder_time BETWEEN #{criteria.reminderTime[0]} AND #{criteria.reminderTime[1]} + </if> + <if test="criteria.sendTime != null and criteria.sendTime.size() > 0"> + AND send_time BETWEEN #{criteria.sendTime[0]} AND #{criteria.sendTime[1]} + </if> + <if test="criteria.createTime != null and criteria.createTime.size() > 0"> + AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} + </if> + </where> + order by reminder_id desc + </select> +</mapper> \ No newline at end of file diff --git a/oying-system/src/main/resources/mapper/rider/RiderWalletInfoMapper.xml b/oying-system/src/main/resources/mapper/rider/RiderWalletInfoMapper.xml new file mode 100644 index 0000000..04cdd53 --- /dev/null +++ b/oying-system/src/main/resources/mapper/rider/RiderWalletInfoMapper.xml @@ -0,0 +1,47 @@ +<?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.oying.modules.rider.mapper.RiderWalletInfoMapper"> + <resultMap id="BaseResultMap" type="com.oying.modules.rider.domain.RiderWalletInfo"> + <id column="wallet_id" property="walletId"/> + <result column="rider_id" property="riderId"/> + <result column="amount" property="amount"/> + <result column="available_balance" property="availableBalance"/> + <result column="purchasing_electricity_amount" property="purchasingElectricityAmount"/> + <result column="withdraw_total" property="withdrawTotal"/> + <result column="income_total" property="incomeTotal"/> + <result column="frozen_amount" property="frozenAmount"/> + <result column="run_total" property="runTotal"/> + <result column="cash_withdrawal_total" property="cashWithdrawalTotal"/> + <result column="purchasing_electricity_total" property="purchasingElectricityTotal"/> + <result column="status" property="status"/> + <result column="create_by" property="createBy"/> + <result column="create_time" property="createTime"/> + <result column="update_by" property="updateBy"/> + <result column="update_time" property="updateTime"/> + </resultMap> + + <sql id="Base_Column_List"> + wallet_id, rider_id, amount, available_balance, purchasing_electricity_amount, withdraw_total, income_total, frozen_amount, run_total, cash_withdrawal_total, purchasing_electricity_total, status, create_by, create_time, update_by, update_time + </sql> + + <select id="findAll" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"/> + from qs_rider_wallet_info + <where> + <if test="criteria.riderId != null"> + and rider_id = #{criteria.riderId} + </if> + <if test="criteria.status != null"> + and status = #{criteria.status} + </if> + <if test="criteria.amount != null and criteria.amount.size() > 0"> + AND amount BETWEEN #{criteria.amount[0]} AND #{criteria.amount[1]} + </if> + <if test="criteria.createTime != null and criteria.createTime.size() > 0"> + AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} + </if> + </where> + order by wallet_id desc + </select> +</mapper> \ No newline at end of file diff --git a/oying-system/src/main/resources/mapper/rider/RiderWithdrawalRecordMapper.xml b/oying-system/src/main/resources/mapper/rider/RiderWithdrawalRecordMapper.xml new file mode 100644 index 0000000..c23a732 --- /dev/null +++ b/oying-system/src/main/resources/mapper/rider/RiderWithdrawalRecordMapper.xml @@ -0,0 +1,72 @@ +<?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.oying.modules.rider.mapper.RiderWithdrawalRecordMapper"> + <resultMap id="BaseResultMap" type="com.oying.modules.rider.domain.RiderWithdrawalRecord"> + <id column="record_id" property="recordId"/> + <result column="rider_id" property="riderId"/> + <result column="rider_name" property="riderName"/> + <result column="rider_phone" property="riderPhone"/> + <result column="amount" property="amount"/> + <result column="withdrawal_amount" property="withdrawalAmount"/> + <result column="now_amount" property="nowAmount"/> + <result column="fee" property="fee"/> + <result column="actual_amount" property="actualAmount"/> + <result column="status" property="status"/> + <result column="bank_account" property="bankAccount"/> + <result column="bank_name" property="bankName"/> + <result column="apply_time" property="applyTime"/> + <result column="process_time" property="processTime"/> + <result column="operator" property="operator"/> + <result column="remark" property="remark"/> + <result column="create_by" property="createBy"/> + <result column="create_time" property="createTime"/> + <result column="update_by" property="updateBy"/> + <result column="update_time" property="updateTime"/> + </resultMap> + + <sql id="Base_Column_List"> + record_id, rider_id, rider_name, rider_phone, amount, withdrawal_amount, now_amount, fee, actual_amount, status, bank_account, bank_name, apply_time, process_time, operator, remark, create_by, create_time, update_by, update_time + </sql> + + <select id="findAll" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"/> + from qs_rider_withdrawal_record + <where> + <if test="criteria.riderId != null"> + and rider_id = #{criteria.riderId} + </if> + <if test="criteria.riderName != null"> + and rider_name = #{criteria.riderName} + </if> + <if test="criteria.riderPhone != null"> + and rider_phone = #{criteria.riderPhone} + </if> + <if test="criteria.status != null"> + and status = #{criteria.status} + </if> + <if test="criteria.bankAccount != null"> + and bank_account = #{criteria.bankAccount} + </if> + <if test="criteria.bankName != null"> + and bank_name like concat('%',#{criteria.bankName},'%') + </if> + <if test="criteria.operator != null"> + and operator = #{criteria.operator} + </if> + <if test="criteria.remark != null"> + and remark like concat('%',#{criteria.remark},'%') + </if> + <if test="criteria.applyTime != null and criteria.applyTime.size() > 0"> + AND apply_time BETWEEN #{criteria.applyTime[0]} AND #{criteria.applyTime[1]} + </if> + <if test="criteria.processTime != null and criteria.processTime.size() > 0"> + AND process_time BETWEEN #{criteria.processTime[0]} AND #{criteria.processTime[1]} + </if> + <if test="criteria.createTime != null and criteria.createTime.size() > 0"> + AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} + </if> + </where> + order by record_id desc + </select> +</mapper> \ No newline at end of file -- Gitblit v1.9.3