From 04f33d32c28830004917c356d57f1a2714f2be0e Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Wed, 02 Jul 2025 23:17:02 +0800
Subject: [PATCH] 补充订单、退单用户操作信息
---
oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnOperationLogController.java | 54 +++++++++
oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturnOperationLog.java | 63 ++++++++++
oying-system/src/main/resources/mapper/sh/OrderReturnOperationLogMapper.xml | 40 ++++++
oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java | 4
oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnOperationLogQueryCriteria.java | 30 +++++
oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnOperationLogMapper.java | 22 +++
oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnOperationLogService.java | 59 +++++++++
oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml | 4
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnOperationLogServiceImpl.java | 80 +++++++++++++
9 files changed, 352 insertions(+), 4 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturnOperationLog.java b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturnOperationLog.java
new file mode 100644
index 0000000..107c4e7
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/OrderReturnOperationLog.java
@@ -0,0 +1,63 @@
+package com.oying.modules.sh.domain;
+
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-07-02
+**/
+@Data
+@TableName("sh_order_return_operation_log")
+public class OrderReturnOperationLog implements Serializable {
+
+ @TableId(value = "log_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long logId;
+
+ @NotBlank
+ @ApiModelProperty(value = "订单号")
+ private String returnNum;
+
+ @NotBlank
+ @ApiModelProperty(value = "用户账号")
+ private String username;
+
+ @NotBlank
+ @ApiModelProperty(value = "用户类型(骑手、消费者、商家、平台)")
+ private String userType;
+
+ @NotNull
+ @ApiModelProperty(value = "用户操作")
+ private Integer operation;
+
+ @NotBlank
+ @ApiModelProperty(value = "用户操作描述")
+ private String operationDescribe;
+
+ @NotBlank
+ @ApiModelProperty(value = "备注")
+ private String remark;
+
+ @NotNull
+ @ApiModelProperty(value = "操作时的订单快照")
+ private String snapshotData;
+
+ @NotNull
+ @ApiModelProperty(value = "操作时间")
+ private Timestamp operationTime;
+
+ public void copy(OrderReturnOperationLog source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java
index 1b3517c..26b92d1 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderOperationLogQueryCriteria.java
@@ -18,8 +18,8 @@
@ApiModelProperty(value = "每页数据量", example = "10")
private Integer size = 10;
- @ApiModelProperty(value = "用户id")
- private Long userId;
+ @ApiModelProperty(value = "用户账号")
+ private String username;
@ApiModelProperty(value = "用户类型")
private String userType;
diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnOperationLogQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnOperationLogQueryCriteria.java
new file mode 100644
index 0000000..572a792
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/OrderReturnOperationLogQueryCriteria.java
@@ -0,0 +1,30 @@
+package com.oying.modules.sh.domain.dto;
+
+import lombok.Data;
+import java.sql.Timestamp;
+import java.util.List;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-07-02
+**/
+@Data
+public class OrderReturnOperationLogQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+
+ @ApiModelProperty(value = "订单号")
+ private String returnNum;
+
+ @ApiModelProperty(value = "用户账号")
+ private String username;
+
+ @ApiModelProperty(value = "用户类型(骑手、消费者、商家、平台)")
+ private String userType;
+ private List<Timestamp> operationTime;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnOperationLogMapper.java b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnOperationLogMapper.java
new file mode 100644
index 0000000..9a9ffd8
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/mapper/OrderReturnOperationLogMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.sh.mapper;
+
+import com.oying.modules.sh.domain.OrderReturnOperationLog;
+import com.oying.modules.sh.domain.dto.OrderReturnOperationLogQueryCriteria;
+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 lixin
+* @date 2025-07-02
+**/
+@Mapper
+public interface OrderReturnOperationLogMapper extends BaseMapper<OrderReturnOperationLog> {
+
+ IPage<OrderReturnOperationLog> findAll(@Param("criteria") OrderReturnOperationLogQueryCriteria criteria, Page<Object> page);
+
+ List<OrderReturnOperationLog> findAll(@Param("criteria") OrderReturnOperationLogQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnOperationLogController.java b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnOperationLogController.java
new file mode 100644
index 0000000..3a9072f
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/rest/OrderReturnOperationLogController.java
@@ -0,0 +1,54 @@
+package com.oying.modules.sh.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.sh.domain.OrderReturnOperationLog;
+import com.oying.modules.sh.service.OrderReturnOperationLogService;
+import com.oying.modules.sh.domain.dto.OrderReturnOperationLogQueryCriteria;
+import lombok.RequiredArgsConstructor;
+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 lixin
+* @date 2025-07-02
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "退订用户操作管理")
+@RequestMapping("/api/orderReturnOperationLog")
+public class OrderReturnOperationLogController {
+
+ private final OrderReturnOperationLogService orderReturnOperationLogService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('orderReturnOperationLog:list')")
+ public void exportOrderReturnOperationLog(HttpServletResponse response, OrderReturnOperationLogQueryCriteria criteria) throws IOException {
+ orderReturnOperationLogService.download(orderReturnOperationLogService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询退订用户操作管理")
+ @PreAuthorize("@el.check('orderReturnOperationLog:list')")
+ public ResponseEntity<PageResult<OrderReturnOperationLog>> queryOrderReturnOperationLog(OrderReturnOperationLogQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(orderReturnOperationLogService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增退订用户操作管理")
+ @ApiOperation("新增退订用户操作管理")
+ @PreAuthorize("@el.check('orderReturnOperationLog:add')")
+ public ResponseEntity<Object> createOrderReturnOperationLog(@Validated @RequestBody OrderReturnOperationLog resources){
+ orderReturnOperationLogService.create(resources);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnOperationLogService.java b/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnOperationLogService.java
new file mode 100644
index 0000000..3b2f4fa
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/OrderReturnOperationLogService.java
@@ -0,0 +1,59 @@
+package com.oying.modules.sh.service;
+
+import com.oying.modules.sh.domain.OrderReturnOperationLog;
+import com.oying.modules.sh.domain.dto.OrderReturnOperationLogQueryCriteria;
+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 lixin
+* @date 2025-07-02
+**/
+public interface OrderReturnOperationLogService extends IService<OrderReturnOperationLog> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<OrderReturnOperationLog> queryAll(OrderReturnOperationLogQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<OrderReturnOperationLogDto>
+ */
+ List<OrderReturnOperationLog> queryAll(OrderReturnOperationLogQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(OrderReturnOperationLog resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(OrderReturnOperationLog resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<OrderReturnOperationLog> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnOperationLogServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnOperationLogServiceImpl.java
new file mode 100644
index 0000000..813fca8
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderReturnOperationLogServiceImpl.java
@@ -0,0 +1,80 @@
+package com.oying.modules.sh.service.impl;
+
+import com.oying.modules.sh.domain.OrderReturnOperationLog;
+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.sh.service.OrderReturnOperationLogService;
+import com.oying.modules.sh.domain.dto.OrderReturnOperationLogQueryCriteria;
+import com.oying.modules.sh.mapper.OrderReturnOperationLogMapper;
+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 lixin
+* @date 2025-07-02
+**/
+@Service
+@RequiredArgsConstructor
+public class OrderReturnOperationLogServiceImpl extends ServiceImpl<OrderReturnOperationLogMapper, OrderReturnOperationLog> implements OrderReturnOperationLogService {
+
+ private final OrderReturnOperationLogMapper orderReturnOperationLogMapper;
+
+ @Override
+ public PageResult<OrderReturnOperationLog> queryAll(OrderReturnOperationLogQueryCriteria criteria, Page<Object> page){
+ return PageUtil.toPage(orderReturnOperationLogMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<OrderReturnOperationLog> queryAll(OrderReturnOperationLogQueryCriteria criteria){
+ return orderReturnOperationLogMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(OrderReturnOperationLog resources) {
+ orderReturnOperationLogMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(OrderReturnOperationLog resources) {
+ OrderReturnOperationLog orderReturnOperationLog = getById(resources.getLogId());
+ orderReturnOperationLog.copy(resources);
+ orderReturnOperationLogMapper.updateById(orderReturnOperationLog);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ orderReturnOperationLogMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<OrderReturnOperationLog> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (OrderReturnOperationLog orderReturnOperationLog : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("订单号", orderReturnOperationLog.getReturnNum());
+ map.put("用户账号", orderReturnOperationLog.getUsername());
+ map.put("用户类型(骑手、消费者、商家、平台)", orderReturnOperationLog.getUserType());
+ map.put("用户操作", orderReturnOperationLog.getOperation());
+ map.put("用户操作描述", orderReturnOperationLog.getOperationDescribe());
+ map.put("备注", orderReturnOperationLog.getRemark());
+ map.put("操作时的订单快照", orderReturnOperationLog.getSnapshotData());
+ map.put("操作时间", orderReturnOperationLog.getOperationTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml
index a72896c..f5dd43c 100644
--- a/oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml
+++ b/oying-system/src/main/resources/mapper/sh/OrderOperationLogMapper.xml
@@ -22,8 +22,8 @@
<include refid="Base_Column_List"/>
from sh_order_operation_log
<where>
- <if test="criteria.userId != null">
- and user_id = #{criteria.userId}
+ <if test="criteria.username != null">
+ and username like concat('%',#{criteria.username},'%')
</if>
<if test="criteria.userType != null">
and user_type = #{criteria.userType}
diff --git a/oying-system/src/main/resources/mapper/sh/OrderReturnOperationLogMapper.xml b/oying-system/src/main/resources/mapper/sh/OrderReturnOperationLogMapper.xml
new file mode 100644
index 0000000..e4e8859
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/sh/OrderReturnOperationLogMapper.xml
@@ -0,0 +1,40 @@
+<?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.sh.mapper.OrderReturnOperationLogMapper">
+ <resultMap id="BaseResultMap" type="com.oying.modules.sh.domain.OrderReturnOperationLog">
+ <id column="log_id" property="logId"/>
+ <result column="return_num" property="returnNum"/>
+ <result column="username" property="username"/>
+ <result column="user_type" property="userType"/>
+ <result column="operation" property="operation"/>
+ <result column="operation_describe" property="operationDescribe"/>
+ <result column="remark" property="remark"/>
+ <result column="snapshot_data" property="snapshotData"/>
+ <result column="operation_time" property="operationTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ log_id, return_num, username, user_type, operation, operation_describe, remark, snapshot_data, operation_time
+ </sql>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from sh_order_return_operation_log
+ <where>
+ <if test="criteria.returnNum != null">
+ and return_num = #{criteria.returnNum}
+ </if>
+ <if test="criteria.username != null">
+ and username like concat('%',#{criteria.username},'%')
+ </if>
+ <if test="criteria.userType != null">
+ and user_type = #{criteria.userType}
+ </if>
+ <if test="criteria.operationTime != null and criteria.operationTime.size() > 0">
+ AND operation_time BETWEEN #{criteria.operationTime[0]} AND #{criteria.operationTime[1]}
+ </if>
+ </where>
+ order by log_id desc
+ </select>
+</mapper>
\ No newline at end of file
--
Gitblit v1.9.3