From f911239fb5680b9095e2c640e4a81fab65e988ce Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 7 Jan 2025 17:45:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=94=9F=E6=88=90=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 62 ++++++- .../controller/BoxesInfoController.java | 1 + .../hard/api/dto/order/HardAfterSaleDto.java | 8 + .../api/dto/order/HardAfterSaleLogDto.java | 8 + .../api/entity/order/HardAfterSaleEntity.java | 174 ++++++++++++++++++ .../entity/order/HardAfterSaleLogEntity.java | 109 +++++++++++ .../api/entity/order/HardOrderEntity.java | 2 +- .../hard/api/vo/order/HardAfterSaleLogVo.java | 8 + .../hard/api/vo/order/HardAfterSaleVo.java | 8 + .../order/HardAfterSaleController.java | 93 ++++++++++ .../order/HardAfterSaleLogController.java | 92 +++++++++ .../mapper/order/HardAfterSaleLogMapper.java | 19 ++ .../mapper/order/HardAfterSaleMapper.java | 20 ++ .../hard/service/HardAfterSaleLogService.java | 12 ++ .../hard/service/HardAfterSaleService.java | 12 ++ .../order/HardAfterSaleLogServiceImpl.java | 25 +++ .../impl/order/HardAfterSaleServiceImpl.java | 25 +++ .../mapper/order/HardAfterSaleLogMapper.xml | 21 +++ .../mapper/order/HardAfterSaleMapper.xml | 32 ++++ 19 files changed, 729 insertions(+), 2 deletions(-) create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardAfterSaleDto.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardAfterSaleLogDto.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardAfterSaleEntity.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardAfterSaleLogEntity.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardAfterSaleLogVo.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardAfterSaleVo.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleLogController.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleLogMapper.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleMapper.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleLogService.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleLogServiceImpl.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleLogMapper.xml create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleMapper.xml diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index cad151d6c..61b118a7d 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -104,7 +104,11 @@ CREATE TABLE hard_parent_car DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT ='父订单表'; -CREATE TABLE hardware_order +-- ---------------------------- +-- Table structure for hard_order +-- ---------------------------- +DROP TABLE IF EXISTS `hard_order`; +CREATE TABLE hard_order ( id bigint NOT NULL COMMENT '编号', user_id bigint NOT NULL COMMENT '用户id', @@ -140,3 +144,59 @@ CREATE TABLE hardware_order tenant_id bigint DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (id) ) ENGINE = InnoDB COMMENT ='订单表'; + +-- ---------------------------- +-- Table structure for hard_after_sale +-- ---------------------------- +DROP TABLE IF EXISTS hard_after_sale; +CREATE TABLE hard_after_sale +( + id bigint NOT NULL COMMENT '售后编号', + no varchar(32) NOT NULL COMMENT '售后单号', + type char(10) COMMENT '售后类型', + status char(10) DEFAULT 0 NOT NULL COMMENT '售后状态', + way char(10) NOT NULL COMMENT '售后方式', + user_id bigint NOT NULL COMMENT '用户id', + apply_reason varchar(255) NOT NULL COMMENT '申请原因', + apply_description varchar(255) COMMENT '补充描述', + apply_pic_urls varchar(255) COMMENT '补充凭证图片', + order_id bigint NOT NULL COMMENT '订单编号', + order_no varchar(32) COMMENT '订单流水号', + audit_time timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '审批时间', + audit_user_id bigint COMMENT '审批人', + audit_reason varchar(255) COMMENT '审批备注', + refund_price int DEFAULT 0 NOT NULL COMMENT '退款金额,单位:分', + pay_refund_id bigint COMMENT '支付退款编号', + refund_time timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '退款时间', + delivery_time timestamp COMMENT '退货时间', + create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + create_time datetime DEFAULT NULL COMMENT '创建时间', + update_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', + update_time datetime DEFAULT NULL COMMENT '修改时间', + del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', + tenant_id bigint DEFAULT NULL COMMENT '租户ID', + PRIMARY KEY (id) +) ENGINE = InnoDB COMMENT ='售后订单'; + + +-- ---------------------------- +-- Table structure for hard_after_sale_log +-- ---------------------------- +DROP TABLE IF EXISTS hard_after_sale_log; +CREATE TABLE hard_after_sale_log +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + user_id bigint NOT NULL COMMENT '用户编号', + after_sale_id bigint NOT NULL COMMENT '售后编号', + before_status char(10) COMMENT '售后状态(之前)', + after_status char(10) NOT NULL COMMENT '售后状态(之后)', + operate_type char(10) NOT NULL COMMENT '操作类型', + content varchar(512) NOT NULL COMMENT '操作明细', + create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + create_time datetime DEFAULT NULL COMMENT '创建时间', + update_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', + update_time datetime DEFAULT NULL COMMENT '修改时间', + del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', + tenant_id bigint DEFAULT NULL COMMENT '租户ID', + PRIMARY KEY (id) +) ENGINE = InnoDB COMMENT ='售后订单日志'; \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesInfoController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesInfoController.java index 632a54983..5eb6fe72b 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesInfoController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesInfoController.java @@ -1,5 +1,6 @@ package com.bsd.pjcloud.canteen.controller; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardAfterSaleDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardAfterSaleDto.java new file mode 100644 index 000000000..ee2a87e84 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardAfterSaleDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.dto.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; +import lombok.Data; + +@Data +public class HardAfterSaleDto extends HardAfterSaleEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardAfterSaleLogDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardAfterSaleLogDto.java new file mode 100644 index 000000000..e641b4097 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardAfterSaleLogDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.dto.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity; +import lombok.Data; + +@Data +public class HardAfterSaleLogDto extends HardAfterSaleLogEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardAfterSaleEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardAfterSaleEntity.java new file mode 100644 index 000000000..def0a5756 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardAfterSaleEntity.java @@ -0,0 +1,174 @@ +package com.bsd.pjcloud.hard.api.entity.order; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.bsd.pjcloud.common.core.util.TenantTable; +import java.time.LocalDateTime; + +/** + * 售后订单 + * + * @author dzc + * @date 2025-01-07 17:23:08 + */ +@Data +@TenantTable +@TableName("hard_after_sale") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "售后订单") +public class HardAfterSaleEntity extends Model { + + /** + * 售后编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="售后编号") + private Long id; + + /** + * 售后单号 + */ + @Schema(description="售后单号") + private String no; + + /** + * 售后类型 + */ + @Schema(description="售后类型") + private String type; + + /** + * 售后状态 + */ + @Schema(description="售后状态") + private String status; + + /** + * 售后方式 + */ + @Schema(description="售后方式") + private String way; + + /** + * 用户id + */ + @Schema(description="用户id") + private Long userId; + + /** + * 申请原因 + */ + @Schema(description="申请原因") + private String applyReason; + + /** + * 补充描述 + */ + @Schema(description="补充描述") + private String applyDescription; + + /** + * 补充凭证图片 + */ + @Schema(description="补充凭证图片") + private String applyPicUrls; + + /** + * 订单编号 + */ + @Schema(description="订单编号") + private Long orderId; + + /** + * 订单流水号 + */ + @Schema(description="订单流水号") + private String orderNo; + + /** + * 审批时间 + */ + @Schema(description="审批时间") + private LocalDateTime auditTime; + + /** + * 审批人 + */ + @Schema(description="审批人") + private Long auditUserId; + + /** + * 审批备注 + */ + @Schema(description="审批备注") + private String auditReason; + + /** + * 退款金额,单位:分 + */ + @Schema(description="退款金额,单位:分") + private Integer refundPrice; + + /** + * 支付退款编号 + */ + @Schema(description="支付退款编号") + private Long payRefundId; + + /** + * 退款时间 + */ + @Schema(description="退款时间") + private LocalDateTime refundTime; + + /** + * 退货时间 + */ + @Schema(description="退货时间") + private LocalDateTime deliveryTime; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建人") + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建时间") + private LocalDateTime createTime; + + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description="修改人") + private String updateBy; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description="修改时间") + private LocalDateTime updateTime; + + /** + * 删除标记 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description="删除标记") + private String delFlag; + + /** + * 租户ID + */ + @Schema(description="租户ID") + private Long tenantId; +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardAfterSaleLogEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardAfterSaleLogEntity.java new file mode 100644 index 000000000..28b89f3ab --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardAfterSaleLogEntity.java @@ -0,0 +1,109 @@ +package com.bsd.pjcloud.hard.api.entity.order; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.bsd.pjcloud.common.core.util.TenantTable; +import java.time.LocalDateTime; + +/** + * 售后订单日志 + * + * @author dzc + * @date 2025-01-07 17:23:25 + */ +@Data +@TenantTable +@TableName("hard_after_sale_log") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "售后订单日志") +public class HardAfterSaleLogEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 用户编号 + */ + @Schema(description="用户编号") + private Long userId; + + /** + * 售后编号 + */ + @Schema(description="售后编号") + private Long afterSaleId; + + /** + * 售后状态(之前) + */ + @Schema(description="售后状态(之前)") + private String beforeStatus; + + /** + * 售后状态(之后) + */ + @Schema(description="售后状态(之后)") + private String afterStatus; + + /** + * 操作类型 + */ + @Schema(description="操作类型") + private String operateType; + + /** + * 操作明细 + */ + @Schema(description="操作明细") + private String content; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建人") + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建时间") + private LocalDateTime createTime; + + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description="修改人") + private String updateBy; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description="修改时间") + private LocalDateTime updateTime; + + /** + * 删除标记 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description="删除标记") + private String delFlag; + + /** + * 租户ID + */ + @Schema(description="租户ID") + private Long tenantId; +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardOrderEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardOrderEntity.java index 0319e1c40..226400b72 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardOrderEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardOrderEntity.java @@ -18,7 +18,7 @@ import java.time.LocalDateTime; @NoArgsConstructor @Data @TenantTable -@TableName("hardware_order") +@TableName("hard_order") @EqualsAndHashCode(callSuper = true) @Schema(description = "订单表") public class HardOrderEntity extends Model { diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardAfterSaleLogVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardAfterSaleLogVo.java new file mode 100644 index 000000000..c977c2123 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardAfterSaleLogVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.vo.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity; +import lombok.Data; + +@Data +public class HardAfterSaleLogVo extends HardAfterSaleLogEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardAfterSaleVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardAfterSaleVo.java new file mode 100644 index 000000000..ec478e9a1 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardAfterSaleVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.vo.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; +import lombok.Data; + +@Data +public class HardAfterSaleVo extends HardAfterSaleEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java new file mode 100644 index 000000000..5e9ab3454 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java @@ -0,0 +1,93 @@ +package com.bsd.pjcloud.hard.controller.order; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleDto; +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; +import com.bsd.pjcloud.hard.service.HardAfterSaleService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 售后订单 + * + * @author dzc + * @date 2025-01-07 17:23:08 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hard-after-sale" ) +@Tag(description = "hard-after-sale" , name = "售后订单管理" ) +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardAfterSaleController { + + private final HardAfterSaleService hardAfterSaleService; + + @Operation(summary = "分页查询" , description = "分页查询" ) + @GetMapping("/page" ) + @PreAuthorize("@pms.hasPermission('hard_hardAfterSale_view')" ) + public R getHardAfterSalePage(@ParameterObject Page page, @ParameterObject HardAfterSaleEntity hardAfterSale) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardAfterSaleService.page(page, wrapper)); + } + + @Operation(summary = "分页复杂查询" , description = "分页复杂查询" ) + @GetMapping("/page-join" ) + @PreAuthorize("@pms.hasPermission('hard_hardAfterSale_view')" ) + public R pageJoin(@ParameterObject Page page, @ParameterObject HardAfterSaleDto dto) { + return R.ok(hardAfterSaleService.pageJoin(page, dto)); + } + + @Operation(summary = "通过id查询" , description = "通过id查询" ) + @GetMapping("/{id}" ) + @PreAuthorize("@pms.hasPermission('hard_hardAfterSale_view')" ) + public R getById(@PathVariable("id" ) Long id) { + return R.ok(hardAfterSaleService.getById(id)); + } + + @Operation(summary = "新增售后订单" , description = "新增售后订单" ) + @SysLog("新增售后订单" ) + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardAfterSale_add')" ) + public R save(@RequestBody HardAfterSaleEntity hardAfterSale) { + return R.ok(hardAfterSaleService.save(hardAfterSale)); + } + + @Operation(summary = "修改售后订单" , description = "修改售后订单" ) + @SysLog("修改售后订单" ) + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardAfterSale_edit')" ) + public R updateById(@RequestBody HardAfterSaleEntity hardAfterSale) { + return R.ok(hardAfterSaleService.updateById(hardAfterSale)); + } + + @Operation(summary = "通过id删除售后订单" , description = "通过id删除售后订单" ) + @SysLog("通过id删除售后订单" ) + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardAfterSale_del')" ) + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardAfterSaleService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardAfterSale_export')" ) + public List export(HardAfterSaleEntity hardAfterSale,Long[] ids) { + return hardAfterSaleService.list(Wrappers.lambdaQuery(hardAfterSale).in(ArrayUtil.isNotEmpty(ids), HardAfterSaleEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleLogController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleLogController.java new file mode 100644 index 000000000..a40fb155f --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleLogController.java @@ -0,0 +1,92 @@ +package com.bsd.pjcloud.hard.controller.order; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleLogDto; +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity; +import com.bsd.pjcloud.hard.service.HardAfterSaleLogService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 售后订单日志 + * + * @author dzc + * @date 2025-01-07 17:23:25 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hard-after-sale-log") +@Tag(description = "hard-after-sale-log", name = "售后订单日志管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardAfterSaleLogController { + + private final HardAfterSaleLogService hardAfterSaleLogService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardAfterSaleLog_view')") + public R getHardAfterSaleLogPage(@ParameterObject Page page, @ParameterObject HardAfterSaleLogEntity dto) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardAfterSaleLogService.page(page, wrapper)); + } + + @Operation(summary = "分页复杂查询", description = "分页复杂查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('hard_hardAfterSaleLog_view')") + public R pageJoin(@ParameterObject Page page, @ParameterObject HardAfterSaleLogDto dto) { + return R.ok(hardAfterSaleLogService.pageJoin(page, dto)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardAfterSaleLog_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardAfterSaleLogService.getById(id)); + } + + @Operation(summary = "新增售后订单日志", description = "新增售后订单日志") + @SysLog("新增售后订单日志") + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardAfterSaleLog_add')") + public R save(@RequestBody HardAfterSaleLogEntity hardAfterSaleLog) { + return R.ok(hardAfterSaleLogService.save(hardAfterSaleLog)); + } + + @Operation(summary = "修改售后订单日志", description = "修改售后订单日志") + @SysLog("修改售后订单日志") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardAfterSaleLog_edit')") + public R updateById(@RequestBody HardAfterSaleLogEntity hardAfterSaleLog) { + return R.ok(hardAfterSaleLogService.updateById(hardAfterSaleLog)); + } + + @Operation(summary = "通过id删除售后订单日志", description = "通过id删除售后订单日志") + @SysLog("通过id删除售后订单日志") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardAfterSaleLog_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardAfterSaleLogService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardAfterSaleLog_export')") + public List export(HardAfterSaleLogEntity hardAfterSaleLog, Long[] ids) { + return hardAfterSaleLogService.list(Wrappers.lambdaQuery(hardAfterSaleLog).in(ArrayUtil.isNotEmpty(ids), HardAfterSaleLogEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleLogMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleLogMapper.java new file mode 100644 index 000000000..c375f3ce5 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleLogMapper.java @@ -0,0 +1,19 @@ +package com.bsd.pjcloud.hard.mapper.order; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleLogDto; +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleLogVo; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardAfterSaleLogMapper extends PjcloudBaseMapper { + + default Page pageJoin(Page page, HardAfterSaleLogDto dto) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .selectAll(HardAfterSaleLogEntity.class); + return selectJoinPage(page, HardAfterSaleLogVo.class, wrapper); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleMapper.java new file mode 100644 index 000000000..032eaa5a6 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleMapper.java @@ -0,0 +1,20 @@ +package com.bsd.pjcloud.hard.mapper.order; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleDto; +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleVo; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardAfterSaleMapper extends PjcloudBaseMapper { + + + default Page pageJoin(Page page, HardAfterSaleDto dto){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .selectAll(HardAfterSaleEntity.class); + return selectJoinPage(page, HardAfterSaleVo.class, wrapper); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleLogService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleLogService.java new file mode 100644 index 000000000..a9094d194 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleLogService.java @@ -0,0 +1,12 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleLogDto; +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleLogVo; + +public interface HardAfterSaleLogService extends IService { + + Page pageJoin(Page page, HardAfterSaleLogDto dto); +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java new file mode 100644 index 000000000..34c796bb2 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java @@ -0,0 +1,12 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleDto; +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleVo; + +public interface HardAfterSaleService extends IService { + + Page pageJoin(Page page, HardAfterSaleDto dto); +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleLogServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleLogServiceImpl.java new file mode 100644 index 000000000..89c4662fd --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleLogServiceImpl.java @@ -0,0 +1,25 @@ +package com.bsd.pjcloud.hard.service.impl.order; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleLogDto; +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleLogVo; +import com.bsd.pjcloud.hard.mapper.order.HardAfterSaleLogMapper; +import com.bsd.pjcloud.hard.service.HardAfterSaleLogService; +import org.springframework.stereotype.Service; + +/** + * 售后订单日志 + * + * @author dzc + * @date 2025-01-07 17:23:25 + */ +@Service +public class HardAfterSaleLogServiceImpl extends ServiceImpl implements HardAfterSaleLogService { + + @Override + public Page pageJoin(Page page, HardAfterSaleLogDto dto) { + return baseMapper.pageJoin(page, dto); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java new file mode 100644 index 000000000..d4be740bf --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java @@ -0,0 +1,25 @@ +package com.bsd.pjcloud.hard.service.impl.order; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleDto; +import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleVo; +import com.bsd.pjcloud.hard.mapper.order.HardAfterSaleMapper; +import com.bsd.pjcloud.hard.service.HardAfterSaleService; +import org.springframework.stereotype.Service; + +/** + * 售后订单 + * + * @author dzc + * @date 2025-01-07 17:23:08 + */ +@Service +public class HardAfterSaleServiceImpl extends ServiceImpl implements HardAfterSaleService { + + @Override + public Page pageJoin(Page page, HardAfterSaleDto dto) { + return baseMapper.pageJoin(page, dto); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleLogMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleLogMapper.xml new file mode 100644 index 000000000..65317b08b --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleLogMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleMapper.xml new file mode 100644 index 000000000..2be32ddf9 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file