diff --git a/null/download/4b42fe607ca640f19ff4f64892a29d2f_订单售后数据.xlsx b/null/download/4b42fe607ca640f19ff4f64892a29d2f_订单售后数据.xlsx
new file mode 100644
index 000000000..f6549ffeb
Binary files /dev/null and b/null/download/4b42fe607ca640f19ff4f64892a29d2f_订单售后数据.xlsx differ
diff --git a/null/download/5450a70ed0e242d097893399e35219f8_会员信息数据.xlsx b/null/download/5450a70ed0e242d097893399e35219f8_会员信息数据.xlsx
new file mode 100644
index 000000000..f54a040fc
Binary files /dev/null and b/null/download/5450a70ed0e242d097893399e35219f8_会员信息数据.xlsx differ
diff --git a/null/download/6e97b755e28945a39ada2fe0b7754369_会员信息数据.xlsx b/null/download/6e97b755e28945a39ada2fe0b7754369_会员信息数据.xlsx
new file mode 100644
index 000000000..33d70421e
Binary files /dev/null and b/null/download/6e97b755e28945a39ada2fe0b7754369_会员信息数据.xlsx differ
diff --git a/null/download/b69ecabeb1974f959a6e55e84f7e8d4e_订单售后数据.xlsx b/null/download/b69ecabeb1974f959a6e55e84f7e8d4e_订单售后数据.xlsx
new file mode 100644
index 000000000..d94e8327f
Binary files /dev/null and b/null/download/b69ecabeb1974f959a6e55e84f7e8d4e_订单售后数据.xlsx differ
diff --git a/null/download/df88302945b34951a404d615d8211ef2_订单售后数据.xlsx b/null/download/df88302945b34951a404d615d8211ef2_订单售后数据.xlsx
new file mode 100644
index 000000000..7a778b33e
Binary files /dev/null and b/null/download/df88302945b34951a404d615d8211ef2_订单售后数据.xlsx differ
diff --git a/qrcode/1930206182499577858.png b/qrcode/1930206182499577858.png
new file mode 100644
index 000000000..19eac2e6c
Binary files /dev/null and b/qrcode/1930206182499577858.png differ
diff --git a/qrcode/1931192482732077058.png b/qrcode/1931192482732077058.png
new file mode 100644
index 000000000..fb72cb737
Binary files /dev/null and b/qrcode/1931192482732077058.png differ
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 55c5a5415..b5276f501 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -159,6 +159,8 @@ tenant:
- pms_product_snapshot
- pms_sku
- pms_sku_snapshot
+ - oms_verification_codes
+ - oms_verification_logs
# MyBatisPlus配置
diff --git a/ruoyi-modules/ruoyi-order/pom.xml b/ruoyi-modules/ruoyi-order/pom.xml
index 0984f34d1..2caa69b34 100644
--- a/ruoyi-modules/ruoyi-order/pom.xml
+++ b/ruoyi-modules/ruoyi-order/pom.xml
@@ -97,7 +97,6 @@
org.dromara
ruoyi-common-sse
-
org.dromara
ruoyi-member
@@ -137,6 +136,28 @@
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.dromara
+ ruoyi-system
+
+
+
+ com.google.zxing
+ core
+ 3.4.1
+
+
+ com.google.zxing
+ javase
+ 3.4.1
+
+
+
+ cn.hutool
+ hutool-all
+ 5.8.22
+
+
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java
index 75f0ed11c..74518c063 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java
@@ -57,11 +57,17 @@ public class OrderController extends BaseController {
+// @ApiOperation("查询订单列表")
+// @PostMapping("/list")
+// public R> list(@RequestBody OrderBo query, Page page) {
+// Page list = service.page(page,query.toWrapper() );
+// return R.ok(convert.toVO(list));
+// }
+
@ApiOperation("查询订单列表")
@PostMapping("/list")
- public R> list(@RequestBody OrderBo query, Page page) {
- Page list = service.page(page,query.toWrapper() );
- return R.ok(convert.toVO(list));
+ public R> list1(@RequestBody OrderBo query, Page page){
+ return R.ok(orderService.getlist(page,query));
}
// @ApiOperation("查询订单表列表")
@@ -81,7 +87,7 @@ public class OrderController extends BaseController {
@ApiOperation("导出订单表列表")
@Log(title = "订单售后", businessType = BusinessType.EXPORT)
- @GetMapping("export")
+ @PostMapping("export")
public ResponseEntity export(OrderBo query) {
List list = service.list(query.toWrapper());
ExcelUtil util = new ExcelUtil<>(OrderVO.class);
@@ -137,7 +143,7 @@ public class OrderController extends BaseController {
throw new RuntimeException("发货失败");
}finally {
try{
- redisService.unLock(redisKey, redisValue);;
+ redisService.unLock(redisKey, redisValue);
}catch (Exception e){
log.error("", e);
}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/VerificationCodeController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/VerificationCodeController.java
new file mode 100644
index 000000000..b749a0781
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/VerificationCodeController.java
@@ -0,0 +1,44 @@
+package com.wzj.soopin.order.controller;
+
+import com.wzj.soopin.order.service.VerificationCodeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.dromara.common.core.domain.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 核销码相关接口
+ */
+@Api(tags = "核销码接口")
+@RestController
+@RequestMapping("/oms/verification")
+public class VerificationCodeController {
+
+ @Autowired
+ private VerificationCodeService verificationCodeService;
+
+
+ /**
+ * 生成核销码
+ */
+ @GetMapping("/generate/{orderId}")
+ @ApiOperation("生成核销码")
+ public R generateCode(@PathVariable Long orderId) {
+ return verificationCodeService.generateVerificationCode(orderId);
+ }
+
+ /**
+ * 扫码核销接口
+ * @param codeValue 核销码
+ * @param usedMerchantId 使用商家ID
+ * @return 核销结果z
+ */
+ @PostMapping("/verify")
+ @ApiOperation("扫码核销接口")
+ public R verifyCode(@RequestParam String codeValue,
+ @RequestParam Long usedMerchantId) {
+ return verificationCodeService.verifyCode(codeValue, usedMerchantId);
+ }
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/bo/OrderBo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/bo/OrderBo.java
index 27bb44fb3..e67ecc705 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/bo/OrderBo.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/bo/OrderBo.java
@@ -25,6 +25,9 @@ public class OrderBo {
@ApiModelProperty("订单编号")
private String orderSn;
+ @ApiModelProperty("租户id")
+ private String tenantId;
+
@ApiModelProperty("用户帐号 精确匹配")
private String memberUsernameLike;
@@ -125,20 +128,8 @@ public class OrderBo {
if (orderSn != null) {
queryWrapper.eq(Order::getOrderSn, orderSn);
}
- if (totalAmount != null) {
- queryWrapper.eq(Order::getTotalAmount, totalAmount);
- }
- if (purchasePrice != null) {
- queryWrapper.eq(Order::getPurchasePrice, purchasePrice);
- }
- if (payAmount != null) {
- queryWrapper.eq(Order::getPayAmount, payAmount);
- }
- if (merchantNote != null) {
- queryWrapper.eq(Order::getMerchantNote, merchantNote);
- }
- if (freightAmount != null) {
- queryWrapper.eq(Order::getFreightAmount, freightAmount);
+ if (tenantId != null) {
+ queryWrapper.eq(Order::getTenantId, tenantId);
}
if (payType != null) {
queryWrapper.eq(Order::getPayType, payType);
@@ -149,61 +140,12 @@ public class OrderBo {
if (aftersaleStatus != null) {
queryWrapper.eq(Order::getAftersaleStatus, aftersaleStatus);
}
- if (deliveryCompany != null &&!deliveryCompany.isEmpty()) {
- queryWrapper.eq(Order::getDeliveryCompany, deliveryCompany);
- }
- if (deliverySn != null &&!deliverySn.isEmpty()) {
- queryWrapper.eq(Order::getDeliverySn, deliverySn);
- }
- if (autoConfirmDay != null) {
- queryWrapper.eq(Order::getAutoConfirmDay, autoConfirmDay);
- }
if (receiverPhone != null &&!receiverPhone.isEmpty()) {
queryWrapper.eq(Order::getReceiverPhone, receiverPhone);
}
- if (receiverPostCode != null &&!receiverPostCode.isEmpty()) {
- queryWrapper.eq(Order::getReceiverPostCode, receiverPostCode);
- }
- if (receiverProvince != null &&!receiverProvince.isEmpty()) {
- queryWrapper.eq(Order::getReceiverProvince, receiverProvince);
- }
- if (receiverCity != null &&!receiverCity.isEmpty()) {
- queryWrapper.eq(Order::getReceiverCity, receiverCity);
- }
- if (receiverDistrict != null &&!receiverDistrict.isEmpty()) {
- queryWrapper.eq(Order::getReceiverDistrict, receiverDistrict);
- }
- if (receiverProvinceId != null) {
- queryWrapper.eq(Order::getReceiverProvinceId, receiverProvinceId);
- }
- if (receiverCityId != null) {
- queryWrapper.eq(Order::getReceiverCityId, receiverCityId);
- }
- if (receiverDistrictId != null) {
- queryWrapper.eq(Order::getReceiverDistrictId, receiverDistrictId);
- }
- if (receiverDetailAddress != null &&!receiverDetailAddress.isEmpty()) {
- queryWrapper.eq(Order::getReceiverDetailAddress, receiverDetailAddress);
- }
- if (note != null &&!note.isEmpty()) {
- queryWrapper.eq(Order::getNote, note);
- }
- if (confirmStatus != null) {
- queryWrapper.eq(Order::getConfirmStatus, confirmStatus);
- }
if (deleteStatus != null) {
queryWrapper.eq(Order::getDeleteStatus, deleteStatus);
}
- if (paymentTime != null) {
- queryWrapper.eq(Order::getPaymentTime, paymentTime);
- }
- if (deliveryTime != null) {
- queryWrapper.eq(Order::getDeliveryTime, deliveryTime);
- }
- if (receiveTime != null) {
- queryWrapper.eq(Order::getReceiveTime, receiveTime);
- }
-
// 时间范围查询
if (startTime != null && endTime != null) {
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/Order.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/Order.java
index f0bd40f42..0bcf66609 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/Order.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/Order.java
@@ -34,6 +34,9 @@ public class Order extends BaseAudit {
@ApiModelProperty("支付id")
private Long payId;
+ @ApiModelProperty("租户id")
+ private String tenantId;
+
@ApiModelProperty("订单编号")
@Excel(name = "订单编号")
private String orderSn;
@@ -164,5 +167,11 @@ public class Order extends BaseAudit {
@ApiModelProperty("优惠券金额")
private BigDecimal couponAmount;
+ @ApiModelProperty("核销时间")
+ private LocalDateTime usedTime;
+
+ @ApiModelProperty("核销码url")
+ private String codeUrl;
+
}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java
index e6726d3c5..d0102dbfd 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/OrderItem.java
@@ -24,8 +24,7 @@ public class OrderItem extends BaseAudit {
@ApiModelProperty("ID")
@TableId(type = IdType.ASSIGN_ID)
private Long id;
- @Excel(name = "商家备注")
- private String merchantNote;
+
@ApiModelProperty("订单id")
@Excel(name = "订单id")
private Long orderId;
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/VerificationCodes.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/VerificationCodes.java
new file mode 100644
index 000000000..545d05659
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/VerificationCodes.java
@@ -0,0 +1,48 @@
+package com.wzj.soopin.order.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.dromara.common.core.domain.model.BaseAudit;
+
+import java.time.LocalDateTime;
+
+@ApiModel(description="核销码表对象")
+@Data
+@TableName("oms_verification_codes")
+public class VerificationCodes extends BaseAudit {
+
+ @ApiModelProperty("ID")
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+
+ @ApiModelProperty("核销码")
+ private String code;
+
+ @ApiModelProperty("关联订单id")
+ private Long orderId;
+
+ @ApiModelProperty("是否使用")
+ private Integer status;
+
+ @ApiModelProperty("用户id")
+ private Long memberId;
+
+ @ApiModelProperty("用户昵称")
+ private String memberName ;
+
+ @ApiModelProperty("使用时间")
+ private LocalDateTime usedTime;
+
+ @ApiModelProperty("使用商家id")
+ private Long usedMerchantId;
+
+ @ApiModelProperty("过期时间")
+ private LocalDateTime expireTime;
+
+
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/VerificationLogs.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/VerificationLogs.java
new file mode 100644
index 000000000..393c4c9bb
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/VerificationLogs.java
@@ -0,0 +1,40 @@
+package com.wzj.soopin.order.domain.entity;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.dromara.common.core.domain.model.BaseAudit;
+
+import java.time.LocalDateTime;
+
+@ApiModel(description="核销日志表对象")
+@Data
+@TableName("oms_verification_logs")
+public class VerificationLogs extends BaseAudit {
+
+ @ApiModelProperty("ID")
+ @TableId(type = IdType.ASSIGN_ID)
+ private Long id;
+
+ @ApiModelProperty("核销码id")
+ private Long codeId;
+
+ @ApiModelProperty("订单id")
+ private Long orderId;
+
+ @ApiModelProperty("商家ID")
+ private Long merchantId;
+
+ @ApiModelProperty("核销时间")
+ private LocalDateTime verificationTime;
+
+ @ApiModelProperty("核销结果")
+ private Integer result;
+
+ @ApiModelProperty("失败原因")
+ private String reason;
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java
index 31e3320e3..472ff3c85 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java
@@ -28,6 +28,8 @@ public class OrderVO extends BaseAudit {
/** MEMBER_ID */
@Excel(name = "MEMBER_ID")
private Long memberId;
+ /** 租户id */
+ private String tenantId;
/** 用户帐号 */
@Excel(name = "用户帐号")
private String memberUsername;
@@ -118,4 +120,26 @@ public class OrderVO extends BaseAudit {
@Excel(name = "确认收货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime receiveTime;
private List items;
+
+ @Excel(name = "用户昵称")
+ private String memberNickname;
+ @Excel(name = "用户手机号")
+ private String memberPhoneEncrypted;
+
+ @Excel(name = "卖家昵称")
+ private String tenantContactName;
+ @Excel(name = "卖家手机号")
+ private String tenantContactPhone;
+
+ @Excel(name = "item ID")
+ private Long itemId;
+ @Excel(name = "商品id")
+ private Long productId;
+ @Excel(name = "商品品牌")
+ private Long productBrandId;
+ @Excel(name = "商品名称")
+ private String productName;
+ @Excel(name = "商品价格")
+ private BigDecimal productPrice;
+
}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderItemMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderItemMapper.java
index b2a6600e3..4e07a81b9 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderItemMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderItemMapper.java
@@ -16,7 +16,7 @@ import java.util.List;
*/
public interface OrderItemMapper extends BaseMapper {
- IPage selectOrderItem(@Param("query") OrderItemQuery query, IPage pageParam);
+// IPage selectOrderItem(@Param("query") OrderItemQuery query, IPage pageParam);
/**
* 查询订单中所包含的商品列表
*
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java
index 7003af7a7..725af5028 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/mapper/OrderMapper.java
@@ -3,6 +3,9 @@ package com.wzj.soopin.order.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wzj.soopin.order.domain.bo.OrderBo;
import com.wzj.soopin.order.domain.entity.Order;
import com.wzj.soopin.order.domain.entity.SystemStatistics;
import com.wzj.soopin.order.domain.form.ManagerOrderQueryForm;
@@ -47,4 +50,10 @@ public interface OrderMapper extends BaseMapper {
SystemStatistics statNewAndDeal(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
int statDealMember(@Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime);
+
+
+ IPage getlist(@Param("page") Page page,@Param("query") OrderBo query);
+
+
+// IPage getlist(@Param("page") Page