diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index a625a8bb2..cad151d6c 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -72,6 +72,12 @@ CREATE TABLE hard_car product_count int NOT NULL COMMENT '数量', product_weight decimal(10, 2) COMMENT '重量', total_price bigint 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 DEFAULT CHARSET = utf8mb4 @@ -87,6 +93,12 @@ CREATE TABLE hard_parent_car user_id bigint NOT NULL COMMENT '用户id', merchant_id bigint NOT NULL COMMENT '商户id', order_status char(10) 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 DEFAULT CHARSET = utf8mb4 @@ -94,22 +106,22 @@ CREATE TABLE hard_parent_car CREATE TABLE hardware_order ( - id bigint NOT NULL COMMENT '编号', - user_id bigint NOT NULL COMMENT '用户id', + id bigint NOT NULL COMMENT '编号', + user_id bigint NOT NULL COMMENT '用户id', merchant_id bigint COMMENT '商户id', hard_id bigint COMMENT '设备id', dept_id bigint COMMENT '部门id', wallet_id bigint COMMENT '钱包id', - parent_car_id bigint NOT NULL COMMENT '购物车父id', + parent_car_id bigint NOT NULL COMMENT '购物车父id', order_source_type_id bigint COMMENT '订单类型渠道id', - order_type char(10) NOT NULL COMMENT '订单类型', - order_status char(10) NOT NULL COMMENT '订单状态', - pay_type char(10) NOT NULL COMMENT '支付方式', + order_type char(10) NOT NULL COMMENT '订单类型', + order_status char(10) NOT NULL COMMENT '订单状态', + pay_type char(10) NOT NULL COMMENT '支付方式', hour_type char(10) COMMENT '用餐类型', sys_type char(10) COMMENT '订单设备类型', - total_price int NOT NULL COMMENT '总价(分)', - extra_price int DEFAULT 0 NOT NULL COMMENT '额外价格(分)', - pay_price int DEFAULT 0 COMMENT '支付金额(分)', + total_price int NOT NULL COMMENT '总价(分)', + extra_price int DEFAULT 0 NOT NULL COMMENT '额外价格(分)', + pay_price int DEFAULT 0 COMMENT '支付金额(分)', pay_time timestamp COMMENT '支付时间', pay_refund_id bigint COMMENT '支付退款单号', refund_price int COMMENT '退款金额,单位:分', @@ -117,8 +129,14 @@ CREATE TABLE hardware_order refund_status char(10) COMMENT '退款状态', apply_cancel_time timestamp COMMENT '订单取消时间', android_order_code varchar(128) COMMENT '设备上的唯一订单号', - is_offline_order char(1) DEFAULT 0 NOT NULL COMMENT '是否为离线订单', - product_desc varchar(256) DEFAULT '' NOT NULL COMMENT '商品描述', + is_offline_order char(1) DEFAULT 0 NOT NULL COMMENT '是否为离线订单', + product_desc varchar(256) DEFAULT '' NOT NULL COMMENT '商品描述', offline_pay_success char(1) 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 ='订单表'; diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardInvoiceDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardInvoiceDto.java index d499ebbdb..256cbc018 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardInvoiceDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardInvoiceDto.java @@ -3,6 +3,11 @@ package com.bsd.pjcloud.hard.api.dto; import com.bsd.pjcloud.hard.api.entity.HardInvoiceEntity; import lombok.Data; +import java.util.List; + @Data public class HardInvoiceDto extends HardInvoiceEntity { + private List deptIds; + + private List merchantIds; } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardManagerDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardManagerDto.java index 6dfa6a596..1d844994b 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardManagerDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardManagerDto.java @@ -3,6 +3,13 @@ package com.bsd.pjcloud.hard.api.dto; import com.bsd.pjcloud.hard.api.entity.HardManagerEntity; import lombok.Data; +import java.util.List; + @Data public class HardManagerDto extends HardManagerEntity { + + private List deptIds; + + private List merchantIds; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardCarDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardCarDto.java new file mode 100644 index 000000000..3e69836be --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardCarDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.dto.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardCarEntity; +import lombok.Data; + +@Data +public class HardCarDto extends HardCarEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardParentCarDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardParentCarDto.java new file mode 100644 index 000000000..1d9fc74c5 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardParentCarDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.dto.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardParentCarEntity; +import lombok.Data; + +@Data +public class HardParentCarDto extends HardParentCarEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardwareOrderDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardwareOrderDto.java new file mode 100644 index 000000000..c8eb5fd6b --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardwareOrderDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.dto.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardwareOrderEntity; +import lombok.Data; + +@Data +public class HardwareOrderDto extends HardwareOrderEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardCarEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardCarEntity.java new file mode 100644 index 000000000..47fb517cd --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardCarEntity.java @@ -0,0 +1,122 @@ +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.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 购物车表 + * + * @author dzc + * @date 2025-01-05 16:44:54 + */ +@Data +@TenantTable +@TableName("hard_car") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "购物车表") +public class HardCarEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 父购物车id + */ + @Schema(description="父购物车id") + private Long parentCarId; + + /** + * 商品id + */ + @Schema(description="商品id") + private Long productId; + + /** + * 商品名 + */ + @Schema(description="商品名") + private String productName; + + /** + * 商品图片 + */ + @Schema(description="商品图片") + private String productPic; + + /** + * 商品价格 + */ + @Schema(description="商品价格") + private Long productPrice; + + /** + * 数量 + */ + @Schema(description="数量") + private Integer productCount; + + /** + * 重量 + */ + @Schema(description="重量") + private BigDecimal productWeight; + + /** + * 总价(分) + */ + @Schema(description="总价(分)") + private Long totalPrice; + + /** + * 创建人 + */ + @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/HardParentCarEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardParentCarEntity.java new file mode 100644 index 000000000..6466dbbb1 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardParentCarEntity.java @@ -0,0 +1,91 @@ +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-05 16:45:33 + */ +@Data +@TenantTable +@TableName("hard_parent_car") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "父订单表") +public class HardParentCarEntity extends Model { + + + /** + * 标号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="标号") + private Long id; + + /** + * 用户id + */ + @Schema(description="用户id") + private Long userId; + + /** + * 商户id + */ + @Schema(description="商户id") + private Long merchantId; + + /** + * 订单状态 + */ + @Schema(description="订单状态") + private String orderStatus; + + /** + * 创建人 + */ + @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/HardwareOrderEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardwareOrderEntity.java new file mode 100644 index 000000000..c52268f5c --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/order/HardwareOrderEntity.java @@ -0,0 +1,223 @@ +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-05 16:46:25 + */ +@Data +@TenantTable +@TableName("hardware_order") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "订单表") +public class HardwareOrderEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 用户id + */ + @Schema(description="用户id") + private Long userId; + + /** + * 商户id + */ + @Schema(description="商户id") + private Long merchantId; + + /** + * 设备id + */ + @Schema(description="设备id") + private Long hardId; + + /** + * 部门id + */ + @Schema(description="部门id") + private Long deptId; + + /** + * 钱包id + */ + @Schema(description="钱包id") + private Long walletId; + + /** + * 购物车父id + */ + @Schema(description="购物车父id") + private Long parentCarId; + + /** + * 订单类型渠道id + */ + @Schema(description="订单类型渠道id") + private Long orderSourceTypeId; + + /** + * 订单类型 + */ + @Schema(description="订单类型") + private String orderType; + + /** + * 订单状态 + */ + @Schema(description="订单状态") + private String orderStatus; + + /** + * 支付方式 + */ + @Schema(description="支付方式") + private String payType; + + /** + * 用餐类型 + */ + @Schema(description="用餐类型") + private String hourType; + + /** + * 订单设备类型 + */ + @Schema(description="订单设备类型") + private String sysType; + + /** + * 总价(分) + */ + @Schema(description="总价(分)") + private Integer totalPrice; + + /** + * 额外价格(分) + */ + @Schema(description="额外价格(分)") + private Integer extraPrice; + + /** + * 支付金额(分) + */ + @Schema(description="支付金额(分)") + private Integer payPrice; + + /** + * 支付时间 + */ + @Schema(description="支付时间") + private LocalDateTime payTime; + + /** + * 支付退款单号 + */ + @Schema(description="支付退款单号") + private Long payRefundId; + + /** + * 退款金额,单位:分 + */ + @Schema(description="退款金额,单位:分") + private Integer refundPrice; + + /** + * 退款完成时间 + */ + @Schema(description="退款完成时间") + private LocalDateTime refundTime; + + /** + * 退款状态 + */ + @Schema(description="退款状态") + private String refundStatus; + + /** + * 订单取消时间 + */ + @Schema(description="订单取消时间") + private LocalDateTime applyCancelTime; + + /** + * 设备上的唯一订单号 + */ + @Schema(description="设备上的唯一订单号") + private String androidOrderCode; + + /** + * 是否为离线订单 + */ + @Schema(description="是否为离线订单") + private String isOfflineOrder; + + /** + * 商品描述 + */ + @Schema(description="商品描述") + private String productDesc; + + /** + * 离线自动支付是否成功 + */ + @Schema(description="离线自动支付是否成功") + private String offlinePaySuccess; + + /** + * 创建人 + */ + @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/vo/HardInvoiceVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardInvoiceVo.java index 4c2da3354..aed44aacc 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardInvoiceVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardInvoiceVo.java @@ -1,8 +1,14 @@ package com.bsd.pjcloud.hard.api.vo; +import com.bsd.pjcloud.admin.api.vo.base.BaseDeptInterface; import com.bsd.pjcloud.hard.api.entity.HardInvoiceEntity; +import com.bsd.pjcloud.wallet.api.vo.base.BaseMchInterface; import lombok.Data; @Data -public class HardInvoiceVo extends HardInvoiceEntity { +public class HardInvoiceVo extends HardInvoiceEntity implements BaseDeptInterface, BaseMchInterface { + private String deptName; + + private Long merchantId; + private String merchantName; } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardCarVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardCarVo.java new file mode 100644 index 000000000..5b58c50bc --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardCarVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.vo.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardCarEntity; +import lombok.Data; + +@Data +public class HardCarVo extends HardCarEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardParentCarVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardParentCarVo.java new file mode 100644 index 000000000..9ac4bbeed --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardParentCarVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.vo.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardParentCarEntity; +import lombok.Data; + +@Data +public class HardParentCarVo extends HardParentCarEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardwareOrderVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardwareOrderVo.java new file mode 100644 index 000000000..daa132440 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardwareOrderVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.vo.order; + +import com.bsd.pjcloud.hard.api.entity.order.HardwareOrderEntity; +import lombok.Data; + +@Data +public class HardwareOrderVo extends HardwareOrderEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardCarController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardCarController.java new file mode 100644 index 000000000..25a0960fb --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardCarController.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.HardCarDto; +import com.bsd.pjcloud.hard.api.entity.order.HardCarEntity; +import com.bsd.pjcloud.hard.service.HardCarService; +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-05 16:44:54 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hard-car") +@Tag(description = "hard-car", name = "购物车表管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardCarController { + + private final HardCarService hardCarService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardCar_view')") + public R getHardCarPage(@ParameterObject Page page, @ParameterObject HardCarEntity hardCar) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardCarService.page(page, wrapper)); + } + + @Operation(summary = "分页复杂查询", description = "分页复杂查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('hard_hardCar_view')") + public R pageJoin(@ParameterObject Page page, @ParameterObject HardCarDto dto) { + return R.ok(hardCarService.pageJoin(page, dto)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardCar_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardCarService.getById(id)); + } + + @Operation(summary = "新增购物车表", description = "新增购物车表") + @SysLog("新增购物车表") + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardCar_add')") + public R save(@RequestBody HardCarEntity hardCar) { + return R.ok(hardCarService.save(hardCar)); + } + + @Operation(summary = "修改购物车表", description = "修改购物车表") + @SysLog("修改购物车表") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardCar_edit')") + public R updateById(@RequestBody HardCarEntity hardCar) { + return R.ok(hardCarService.updateById(hardCar)); + } + + @Operation(summary = "通过id删除购物车表", description = "通过id删除购物车表") + @SysLog("通过id删除购物车表") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardCar_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardCarService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardCar_export')") + public List export(HardCarEntity hardCar, Long[] ids) { + return hardCarService.list(Wrappers.lambdaQuery(hardCar).in(ArrayUtil.isNotEmpty(ids), HardCarEntity::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/HardwareOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardwareOrderController.java new file mode 100644 index 000000000..4c867de09 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardwareOrderController.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.HardwareOrderDto; +import com.bsd.pjcloud.hard.api.entity.order.HardwareOrderEntity; +import com.bsd.pjcloud.hard.service.HardwareOrderService; +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-05 16:46:25 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hardware-order") +@Tag(description = "hardware-order", name = "订单表管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardwareOrderController { + + private final HardwareOrderService hardwareOrderService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_view')") + public R getHardwareOrderPage(@ParameterObject Page page, @ParameterObject HardwareOrderEntity hardwareOrder) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardwareOrderService.page(page, wrapper)); + } + + @Operation(summary = "分页复杂查询", description = "分页复杂查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_view')") + public R pageJoin(@ParameterObject Page page, @ParameterObject HardwareOrderDto dto) { + return R.ok(hardwareOrderService.pageJoin(page, dto)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardwareOrderService.getById(id)); + } + + @Operation(summary = "新增订单表", description = "新增订单表") + @SysLog("新增订单表") + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_add')") + public R save(@RequestBody HardwareOrderEntity hardwareOrder) { + return R.ok(hardwareOrderService.save(hardwareOrder)); + } + + @Operation(summary = "修改订单表", description = "修改订单表") + @SysLog("修改订单表") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_edit')") + public R updateById(@RequestBody HardwareOrderEntity hardwareOrder) { + return R.ok(hardwareOrderService.updateById(hardwareOrder)); + } + + @Operation(summary = "通过id删除订单表", description = "通过id删除订单表") + @SysLog("通过id删除订单表") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardwareOrderService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_export')") + public List export(HardwareOrderEntity hardwareOrder, Long[] ids) { + return hardwareOrderService.list(Wrappers.lambdaQuery(hardwareOrder).in(ArrayUtil.isNotEmpty(ids), HardwareOrderEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardManagerMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardManagerMapper.java index ce6777db7..c659d19e9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardManagerMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardManagerMapper.java @@ -1,5 +1,6 @@ package com.bsd.pjcloud.hard.mapper; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.hard.api.dto.HardManagerDto; @@ -14,8 +15,12 @@ public interface HardManagerMapper extends PjcloudBaseMapper default Page pageJoin(Page page, HardManagerDto dto) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper() .selectAll(HardManagerEntity.class) - .eqIfExists(HardManagerEntity::getName, dto.getName()) - .eqIfExists(HardManagerEntity::getMerchantId, dto.getMerchantId()); + .likeIfExists(HardManagerEntity::getName, dto.getName()) + .eqIfExists(HardManagerEntity::getDeptId, dto.getDeptId()) + .eqIfExists(HardManagerEntity::getType, dto.getType()) + .eqIfExists(HardManagerEntity::getMerchantId, dto.getMerchantId()) + .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), HardManagerEntity::getDeptId, dto.getDeptIds()) + .in(ObjectUtil.isNotEmpty(dto.getMerchantIds()), HardManagerEntity::getMerchantId, dto.getMerchantIds()); return selectJoinPage(page, HardManagerVo.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/HardCarMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardCarMapper.java new file mode 100644 index 000000000..3c6ae8196 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardCarMapper.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.HardCarDto; +import com.bsd.pjcloud.hard.api.entity.order.HardCarEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardCarVo; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardCarMapper extends PjcloudBaseMapper { + + default Page pageJoin(Page page, HardCarDto dto) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .selectAll(HardCarEntity.class); + return selectJoinPage(page, HardCarVo.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/HardParentCarMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardParentCarMapper.java new file mode 100644 index 000000000..a45b4025c --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardParentCarMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.hard.mapper.order; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.entity.order.HardParentCarEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardParentCarMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardwareOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardwareOrderMapper.java new file mode 100644 index 000000000..34e24388d --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardwareOrderMapper.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.HardwareOrderDto; +import com.bsd.pjcloud.hard.api.entity.order.HardwareOrderEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardwareOrderVo; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardwareOrderMapper extends PjcloudBaseMapper { + + default Page pageJoin(Page page, HardwareOrderDto dto) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .selectAll(HardwareOrderEntity.class); + return selectJoinPage(page, HardwareOrderVo.class, wrapper); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardCarService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardCarService.java new file mode 100644 index 000000000..c584795f5 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardCarService.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.HardCarDto; +import com.bsd.pjcloud.hard.api.entity.order.HardCarEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardCarVo; + +public interface HardCarService extends IService { + + Page pageJoin(Page page, HardCarDto dto); +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardParentCarService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardParentCarService.java new file mode 100644 index 000000000..331a3eca0 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardParentCarService.java @@ -0,0 +1,7 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.entity.order.HardParentCarEntity; + +public interface HardParentCarService extends IService { +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardwareOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardwareOrderService.java new file mode 100644 index 000000000..11b057a4b --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardwareOrderService.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.HardwareOrderDto; +import com.bsd.pjcloud.hard.api.entity.order.HardwareOrderEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardwareOrderVo; + +public interface HardwareOrderService extends IService { + + Page pageJoin(Page page, HardwareOrderDto 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/HardCarServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java new file mode 100644 index 000000000..e047b4de7 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardCarServiceImpl.java @@ -0,0 +1,24 @@ +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.HardCarDto; +import com.bsd.pjcloud.hard.api.entity.order.HardCarEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardCarVo; +import com.bsd.pjcloud.hard.mapper.order.HardCarMapper; +import com.bsd.pjcloud.hard.service.HardCarService; +import org.springframework.stereotype.Service; +/** + * 购物车表 + * + * @author dzc + * @date 2025-01-05 16:44:54 + */ +@Service +public class HardCarServiceImpl extends ServiceImpl implements HardCarService { + + @Override + public Page pageJoin(Page page, HardCarDto 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/HardParentCarServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardParentCarServiceImpl.java new file mode 100644 index 000000000..0867c87c2 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardParentCarServiceImpl.java @@ -0,0 +1,16 @@ +package com.bsd.pjcloud.hard.service.impl.order; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.entity.order.HardParentCarEntity; +import com.bsd.pjcloud.hard.mapper.order.HardParentCarMapper; +import com.bsd.pjcloud.hard.service.HardParentCarService; +import org.springframework.stereotype.Service; +/** + * 父订单表 + * + * @author dzc + * @date 2025-01-05 16:45:33 + */ +@Service +public class HardParentCarServiceImpl extends ServiceImpl implements HardParentCarService { +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardwareOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardwareOrderServiceImpl.java new file mode 100644 index 000000000..2556cda01 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardwareOrderServiceImpl.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.HardwareOrderDto; +import com.bsd.pjcloud.hard.api.entity.order.HardwareOrderEntity; +import com.bsd.pjcloud.hard.api.vo.order.HardwareOrderVo; +import com.bsd.pjcloud.hard.mapper.order.HardwareOrderMapper; +import com.bsd.pjcloud.hard.service.HardwareOrderService; +import org.springframework.stereotype.Service; + +/** + * 订单表 + * + * @author dzc + * @date 2025-01-05 16:46:25 + */ +@Service +public class HardwareOrderServiceImpl extends ServiceImpl implements HardwareOrderService { + + @Override + public Page pageJoin(Page page, HardwareOrderDto 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/HardCarMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml new file mode 100644 index 000000000..a3e941afe --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardParentCarMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardParentCarMapper.xml new file mode 100644 index 000000000..c33b3dac5 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardParentCarMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardwareOrderMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardwareOrderMapper.xml new file mode 100644 index 000000000..e15c81724 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardwareOrderMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file