From f93e2ec03934b95f7b8fb3b57a665aa717332f47 Mon Sep 17 00:00:00 2001 From: dzq Date: Sun, 6 Apr 2025 11:00:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=BD=92=E8=BF=98=E5=AE=A1=E6=89=B9=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增商品归还审批模块,包括审批列表查询、新增、修改、删除功能。涉及实体类、服务类、控制器及MyBatis映射文件等。模块支持审批状态管理及订单关联查询。 --- .../shop/ReturnApprovalController.java | 68 ++++++++++++++++ .../ReturnApprovalApplicationService.java | 54 +++++++++++++ .../command/AddReturnApprovalCommand.java | 11 +++ .../command/UpdateReturnApprovalCommand.java | 16 ++++ .../approval/db/ReturnApprovalEntity.java | 81 +++++++++++++++++++ .../approval/db/ReturnApprovalMapper.java | 43 ++++++++++ .../approval/db/ReturnApprovalService.java | 24 ++++++ .../db/ReturnApprovalServiceImpl.java | 41 ++++++++++ .../shop/approval/dto/ReturnApprovalDTO.java | 67 +++++++++++++++ .../approval/model/ReturnApprovalModel.java | 39 +++++++++ .../model/ReturnApprovalModelFactory.java | 27 +++++++ .../query/SearchReturnApprovalQuery.java | 40 +++++++++ .../mapper/shop/ReturnApprovalMapper.xml | 5 ++ .../mybatisplus/CodeGenerator.java | 2 +- 14 files changed, 517 insertions(+), 1 deletion(-) create mode 100644 agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ReturnApprovalController.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/command/AddReturnApprovalCommand.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/command/UpdateReturnApprovalCommand.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalEntity.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalMapper.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalService.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalServiceImpl.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/dto/ReturnApprovalDTO.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/model/ReturnApprovalModel.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/model/ReturnApprovalModelFactory.java create mode 100644 agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/query/SearchReturnApprovalQuery.java create mode 100644 agileboot-domain/src/main/resources/mapper/shop/ReturnApprovalMapper.xml diff --git a/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ReturnApprovalController.java b/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ReturnApprovalController.java new file mode 100644 index 0000000..eeaae2e --- /dev/null +++ b/agileboot-admin/src/main/java/com/agileboot/admin/controller/shop/ReturnApprovalController.java @@ -0,0 +1,68 @@ +package com.agileboot.admin.controller.shop; + +import com.agileboot.admin.customize.aop.accessLog.AccessLog; +import com.agileboot.common.core.base.BaseController; +import com.agileboot.common.core.dto.ResponseDTO; +import com.agileboot.common.core.page.PageDTO; +import com.agileboot.common.enums.common.BusinessTypeEnum; +import com.agileboot.domain.common.command.BulkOperationCommand; +import com.agileboot.domain.shop.approval.ReturnApprovalApplicationService; +import com.agileboot.domain.shop.approval.command.AddReturnApprovalCommand; +import com.agileboot.domain.shop.approval.command.UpdateReturnApprovalCommand; +import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity; +import com.agileboot.domain.shop.approval.dto.ReturnApprovalDTO; +import com.agileboot.domain.shop.approval.query.SearchReturnApprovalQuery; +import io.swagger.v3.oas.annotations.Operation; +import java.util.List; +import javax.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/shop/returnApproval") +@RequiredArgsConstructor +@Validated +public class ReturnApprovalController extends BaseController { + + private final ReturnApprovalApplicationService approvalApplicationService; + + @Operation(summary = "退货审批列表") + @GetMapping + public ResponseDTO> list(SearchReturnApprovalQuery query) { + PageDTO page = approvalApplicationService.getApprovalList(query); + return ResponseDTO.ok(page); + } + + @Operation(summary = "新增退货审批") + @AccessLog(title = "退货审批管理", businessType = BusinessTypeEnum.ADD) + @PostMapping + public ResponseDTO add(@Validated @RequestBody AddReturnApprovalCommand command) { + approvalApplicationService.addApproval(command); + return ResponseDTO.ok(); + } + + @Operation(summary = "修改退货审批") + @AccessLog(title = "退货审批管理", businessType = BusinessTypeEnum.MODIFY) + @PutMapping("/{approvalId}") + public ResponseDTO edit(@PathVariable Long approvalId, @Validated @RequestBody UpdateReturnApprovalCommand command) { + command.setApprovalId(approvalId); + approvalApplicationService.updateApproval(command); + return ResponseDTO.ok(); + } + + @Operation(summary = "删除退货审批") + @AccessLog(title = "退货审批管理", businessType = BusinessTypeEnum.DELETE) + @DeleteMapping("/{approvalIds}") + public ResponseDTO remove(@PathVariable @NotNull List approvalIds) { + approvalApplicationService.deleteApproval(new BulkOperationCommand<>(approvalIds)); + return ResponseDTO.ok(); + } +} \ No newline at end of file diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java new file mode 100644 index 0000000..1486051 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/ReturnApprovalApplicationService.java @@ -0,0 +1,54 @@ +package com.agileboot.domain.shop.approval; + +import com.agileboot.common.core.page.PageDTO; +import com.agileboot.domain.common.command.BulkOperationCommand; +import com.agileboot.domain.shop.approval.command.AddReturnApprovalCommand; +import com.agileboot.domain.shop.approval.command.UpdateReturnApprovalCommand; +import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity; +import com.agileboot.domain.shop.approval.db.ReturnApprovalService; +import com.agileboot.domain.shop.approval.dto.ReturnApprovalDTO; +import com.agileboot.domain.shop.approval.model.ReturnApprovalModel; +import com.agileboot.domain.shop.approval.model.ReturnApprovalModelFactory; +import com.agileboot.domain.shop.approval.query.SearchReturnApprovalQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.List; +import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +@RequiredArgsConstructor +public class ReturnApprovalApplicationService { + + private final ReturnApprovalService approvalService; + private final ReturnApprovalModelFactory modelFactory; + + public PageDTO getApprovalList(SearchReturnApprovalQuery query) { + Page page = approvalService.getApprovalList(query); + List dtoList = page.getRecords().stream() + .map(ReturnApprovalDTO::new) + .collect(Collectors.toList()); + return new PageDTO<>(dtoList, page.getTotal()); + } + + public void addApproval(AddReturnApprovalCommand command) { + ReturnApprovalModel model = modelFactory.create(); + model.loadAddCommand(command); + model.insert(); + } + + public void updateApproval(UpdateReturnApprovalCommand command) { + ReturnApprovalModel model = modelFactory.loadById(command.getApprovalId()); + model.loadUpdateCommand(command); + model.updateById(); + } + + public void deleteApproval(BulkOperationCommand command) { + for (Long approvalId : command.getIds()) { + ReturnApprovalModel model = modelFactory.loadById(approvalId); + model.deleteById(); + } + } +} \ No newline at end of file diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/command/AddReturnApprovalCommand.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/command/AddReturnApprovalCommand.java new file mode 100644 index 0000000..77c6d59 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/command/AddReturnApprovalCommand.java @@ -0,0 +1,11 @@ +package com.agileboot.domain.shop.approval.command; + +import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class AddReturnApprovalCommand extends ReturnApprovalEntity { + +} \ No newline at end of file diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/command/UpdateReturnApprovalCommand.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/command/UpdateReturnApprovalCommand.java new file mode 100644 index 0000000..ca75577 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/command/UpdateReturnApprovalCommand.java @@ -0,0 +1,16 @@ +package com.agileboot.domain.shop.approval.command; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.PositiveOrZero; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class UpdateReturnApprovalCommand extends AddReturnApprovalCommand { + + @NotNull + @PositiveOrZero + private Long approvalId; + +} \ No newline at end of file diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalEntity.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalEntity.java new file mode 100644 index 0000000..3bc4751 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalEntity.java @@ -0,0 +1,81 @@ +package com.agileboot.domain.shop.approval.db; + +import com.agileboot.common.core.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 商品归还审批表 + *

+ * + * @author valarchie + * @since 2025-04-03 + */ +@Getter +@Setter +@TableName("return_approval") +@ApiModel(value = "ReturnApprovalEntity对象", description = "商品归还审批表") +public class ReturnApprovalEntity extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("审批编号") + @TableId(value = "approval_id", type = IdType.AUTO) + private Long approvalId; + + @ApiModelProperty("关联订单ID") + @TableField("order_id") + private Long orderId; + + @ApiModelProperty("关联商品ID") + @TableField("goods_id") + private Long goodsId; + + @ApiModelProperty("归还数量") + @TableField("return_quantity") + private Integer returnQuantity; + + @ApiModelProperty("商品单价") + @TableField("goods_price") + private BigDecimal goodsPrice; + + @ApiModelProperty("退还金额") + @TableField("return_amount") + private BigDecimal returnAmount; + + @ApiModelProperty("归还图片路径数组") + @TableField("return_images") + private String returnImages; + + @ApiModelProperty("审核图片路径数组") + @TableField("audit_images") + private String auditImages; + + @ApiModelProperty("归还说明") + @TableField("return_remark") + private String returnRemark; + + @ApiModelProperty("审核说明") + @TableField("audit_remark") + private String auditRemark; + + @ApiModelProperty("审批状态(1待审核 2已通过 3已驳回)") + @TableField("`status`") + private Integer status; + + + @Override + public Serializable pkVal() { + return this.approvalId; + } + +} diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalMapper.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalMapper.java new file mode 100644 index 0000000..13efa6c --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalMapper.java @@ -0,0 +1,43 @@ +package com.agileboot.domain.shop.approval.db; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.List; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * 商品归还审批表 Mapper 接口 + *

+ * + * @author valarchie + * @since 2025-04-03 + */ +public interface ReturnApprovalMapper extends BaseMapper { + @Select("SELECT approval_id, order_id, goods_id, return_quantity, goods_price, return_amount, return_images, audit_images, return_remark, audit_remark, status " + + "FROM return_approval " + + "${ew.customSqlSegment}") + Page getApprovalList( + Page page, + @Param(Constants.WRAPPER) Wrapper queryWrapper + ); + + @Select("SELECT * " + + "FROM return_approval " + + "WHERE status = #{status} " + + "ORDER BY create_time DESC " + + "LIMIT 1") + ReturnApprovalEntity selectFirstByStatus(@Param("status") Integer status); + + @Select("SELECT * " + + "FROM return_approval " + + "WHERE status = #{status} " + + "ORDER BY create_time DESC") + List selectAllByStatus(@Param("status") Integer status); + + @Select("SELECT * FROM return_approval WHERE order_id = #{orderId} LIMIT 1") + ReturnApprovalEntity selectByOrderId(@Param("orderId") Long orderId); +} diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalService.java new file mode 100644 index 0000000..1212987 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalService.java @@ -0,0 +1,24 @@ +package com.agileboot.domain.shop.approval.db; + +import com.agileboot.common.core.page.AbstractPageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + *

+ * 商品归还审批表 服务类 + *

+ * + * @author valarchie + * @since 2025-04-03 + */ +public interface ReturnApprovalService extends IService { + + Page getApprovalList(AbstractPageQuery query); + + List selectAll(); + + ReturnApprovalEntity getByOrderId(Long orderId); +} diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalServiceImpl.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalServiceImpl.java new file mode 100644 index 0000000..47b0411 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/db/ReturnApprovalServiceImpl.java @@ -0,0 +1,41 @@ +package com.agileboot.domain.shop.approval.db; + +import com.agileboot.common.core.page.AbstractPageQuery; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 商品归还审批表 服务实现类 + *

+ * + * @author valarchie + * @since 2025-04-03 + */ +@Service +public class ReturnApprovalServiceImpl extends ServiceImpl implements ReturnApprovalService { + + @Override + public Page getApprovalList(AbstractPageQuery query) { + return this.page(query.toPage(), query.toQueryWrapper()); + } + + @Override + public List selectAll() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.orderByDesc(ReturnApprovalEntity::getCreateTime); + return this.list(wrapper); + } + + @Override + public ReturnApprovalEntity getByOrderId(Long orderId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ReturnApprovalEntity::getOrderId, orderId) + .last("LIMIT 1"); + return this.getOne(wrapper); + } +} diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/dto/ReturnApprovalDTO.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/dto/ReturnApprovalDTO.java new file mode 100644 index 0000000..ac70468 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/dto/ReturnApprovalDTO.java @@ -0,0 +1,67 @@ +package com.agileboot.domain.shop.approval.dto; + +import cn.hutool.core.bean.BeanUtil; +import com.agileboot.common.annotation.ExcelColumn; +import com.agileboot.common.annotation.ExcelSheet; +import com.agileboot.domain.common.cache.CacheCenter; +import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity; +import com.agileboot.domain.system.user.db.SysUserEntity; +import lombok.Data; + +import java.math.BigDecimal; + +@ExcelSheet(name = "商品归还审批列表") +@Data +public class ReturnApprovalDTO { + + public ReturnApprovalDTO(ReturnApprovalEntity entity) { + if (entity != null) { + BeanUtil.copyProperties(entity, this); + + this.statusStr = convertStatus(entity.getStatus()); + } + } + + private String convertStatus(Integer status) { + if (status == null) return "-"; + switch (status) { + case 1: return "待审核"; + case 2: return "已通过"; + case 3: return "已驳回"; + default: return "未知状态"; + } + } + + @ExcelColumn(name = "审批编号") + private Long approvalId; + + @ExcelColumn(name = "关联订单ID") + private Long orderId; + + @ExcelColumn(name = "关联商品ID") + private Long goodsId; + + @ExcelColumn(name = "归还数量") + private Integer returnQuantity; + + @ExcelColumn(name = "商品单价") + private BigDecimal goodsPrice; + + @ExcelColumn(name = "退还金额") + private BigDecimal returnAmount; + + @ExcelColumn(name = "归还图片") + private String returnImages; + + @ExcelColumn(name = "审核图片") + private String auditImages; + + @ExcelColumn(name = "归还说明") + private String returnRemark; + + @ExcelColumn(name = "审核说明") + private String auditRemark; + + @ExcelColumn(name = "审批状态") + private String statusStr; +} \ No newline at end of file diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/model/ReturnApprovalModel.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/model/ReturnApprovalModel.java new file mode 100644 index 0000000..c1a7084 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/model/ReturnApprovalModel.java @@ -0,0 +1,39 @@ +package com.agileboot.domain.shop.approval.model; + +import cn.hutool.core.bean.BeanUtil; +import com.agileboot.domain.shop.approval.command.AddReturnApprovalCommand; +import com.agileboot.domain.shop.approval.command.UpdateReturnApprovalCommand; +import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity; +import com.agileboot.domain.shop.approval.db.ReturnApprovalService; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class ReturnApprovalModel extends ReturnApprovalEntity { + + private ReturnApprovalService approvalService; + + public ReturnApprovalModel(ReturnApprovalEntity entity, ReturnApprovalService approvalService) { + this(approvalService); + if (entity != null) { + BeanUtil.copyProperties(entity, this); + } + } + + public ReturnApprovalModel(ReturnApprovalService approvalService) { + this.approvalService = approvalService; + } + + public void loadAddCommand(AddReturnApprovalCommand command) { + if (command != null) { + BeanUtil.copyProperties(command, this, "approvalId"); + } + } + + public void loadUpdateCommand(UpdateReturnApprovalCommand command) { + if (command != null) { + loadAddCommand(command); + } + } +} \ No newline at end of file diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/model/ReturnApprovalModelFactory.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/model/ReturnApprovalModelFactory.java new file mode 100644 index 0000000..8592974 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/model/ReturnApprovalModelFactory.java @@ -0,0 +1,27 @@ +package com.agileboot.domain.shop.approval.model; + +import com.agileboot.common.exception.ApiException; +import com.agileboot.common.exception.error.ErrorCode; +import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity; +import com.agileboot.domain.shop.approval.db.ReturnApprovalService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +@Component +@RequiredArgsConstructor +public class ReturnApprovalModelFactory { + + private final ReturnApprovalService approvalService; + + public ReturnApprovalModel loadById(Long approvalId) { + ReturnApprovalEntity entity = approvalService.getById(approvalId); + if (entity == null) { + throw new ApiException(ErrorCode.Business.COMMON_OBJECT_NOT_FOUND, approvalId, "审批"); + } + return new ReturnApprovalModel(entity, approvalService); + } + + public ReturnApprovalModel create() { + return new ReturnApprovalModel(approvalService); + } +} \ No newline at end of file diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/query/SearchReturnApprovalQuery.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/query/SearchReturnApprovalQuery.java new file mode 100644 index 0000000..e02e1e7 --- /dev/null +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/approval/query/SearchReturnApprovalQuery.java @@ -0,0 +1,40 @@ +package com.agileboot.domain.shop.approval.query; + +import cn.hutool.core.util.StrUtil; +import com.agileboot.common.core.page.AbstractPageQuery; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import java.util.Date; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class SearchReturnApprovalQuery extends AbstractPageQuery { + + private Long approvalId; + private Long orderId; + private Long goodsId; + private Integer status; + private String returnRemark; + private String auditRemark; + private Date startTime; + private Date endTime; + + @Override + public QueryWrapper addQueryCondition() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + + queryWrapper + .eq(approvalId != null, "approval_id", approvalId) + .eq(orderId != null, "order_id", orderId) + .eq(goodsId != null, "goods_id", goodsId) + .eq(status != null, "status", status) + .like(StrUtil.isNotEmpty(returnRemark), "return_remark", returnRemark) + .like(StrUtil.isNotEmpty(auditRemark), "audit_remark", auditRemark) + .between(startTime != null && endTime != null, "create_time", startTime, endTime); + + this.timeRangeColumn = "create_time"; + + return queryWrapper; + } +} \ No newline at end of file diff --git a/agileboot-domain/src/main/resources/mapper/shop/ReturnApprovalMapper.xml b/agileboot-domain/src/main/resources/mapper/shop/ReturnApprovalMapper.xml new file mode 100644 index 0000000..529e06a --- /dev/null +++ b/agileboot-domain/src/main/resources/mapper/shop/ReturnApprovalMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/agileboot-infrastructure/src/main/java/com/agileboot/infrastructure/mybatisplus/CodeGenerator.java b/agileboot-infrastructure/src/main/java/com/agileboot/infrastructure/mybatisplus/CodeGenerator.java index 263d92f..8ef4bdb 100644 --- a/agileboot-infrastructure/src/main/java/com/agileboot/infrastructure/mybatisplus/CodeGenerator.java +++ b/agileboot-infrastructure/src/main/java/com/agileboot/infrastructure/mybatisplus/CodeGenerator.java @@ -61,7 +61,7 @@ public class CodeGenerator { //生成的类 放在orm子模块下的/target/generated-code目录底下 .module("/agileboot-orm/target/generated-code") .parentPackage("com.agileboot") - .tableName("sys_user_qy_user") + .tableName("return_approval") // 决定是否继承基类 .isExtendsFromBaseEntity(true) .build();