From de435721cddfcbeaae7f0cb87ababc9ddcdd7905 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 2 Apr 2025 16:37:08 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=E8=AE=BE=E5=A4=87=E5=B9=BF=E6=92=AD?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 28 ++++++- .../mqtt/broadcast/BroadcastVideoService.java | 74 +++++++++++++++++++ .../mqtt/controller/MqttEventController.java | 1 + .../service/impl/WalletManageServiceImpl.java | 2 + 4 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/broadcast/BroadcastVideoService.java diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index df5e6fe8c..9590ec734 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -221,4 +221,30 @@ CREATE TABLE hard_after_sale_log 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 +) ENGINE = InnoDB COMMENT ='售后订单日志'; + +-- ---------------------------- +-- Table structure for hard_broadcast +-- ---------------------------- +DROP TABLE IF EXISTS hard_broadcast; +CREATE TABLE hard_broadcast +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + user_id bigint NOT NULL COMMENT '预定用户', + hard_id bigint NOT NULL COMMENT '硬件id', + topic varchar(128) NOT NULL COMMENT 'mq主题', + biz_id varchar(64) NOT NULL COMMENT '关联业务编号', + title varchar(64) NOT NULL COMMENT '预定标题', + unique_code varchar(16) NOT NULL COMMENT '广播唯一编号', + broadcast_count int DEFAULT 0 NOT NULL COMMENT '广播次数', + is_broadcast char(1) DEFAULT '0' COMMENT '是否广播语音', + is_done char(1) DEFAULT '0' COMMENT '是否完成', + is_done_time datetime DEFAULT 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 ='设备广播'; diff --git a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/broadcast/BroadcastVideoService.java b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/broadcast/BroadcastVideoService.java new file mode 100644 index 000000000..9f376ca9b --- /dev/null +++ b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/broadcast/BroadcastVideoService.java @@ -0,0 +1,74 @@ +package com.bsd.pjcloud.mqtt.broadcast; + + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + +/** + * 硬件语音广播 + */ +@Service +@Slf4j +public class BroadcastVideoService { + + private ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); + // 用于管理定时任务 + private ScheduledFuture scheduledFuture; + // 用于管理自动停止任务 + private ScheduledFuture autoStopFuture; + + private final int interval = 60; + private final int autoInterval = 60 * 5; + + /** + * 启动广播 + */ + public void startBroadcast() { + if (scheduledFuture == null || scheduledFuture.isDone()) { + scheduledFuture = executorService.scheduleAtFixedRate(() -> { + playAudio(); + }, 0, interval, TimeUnit.SECONDS); + log.info("广播已启动"); + startAutoStopTask(); + } + } + + /** + * 停止广播 + */ + public void stopBroadcast() { + if (scheduledFuture == null) return; + scheduledFuture.cancel(false); + scheduledFuture = null; + if (autoStopFuture != null) { + autoStopFuture.cancel(false); + autoStopFuture = null; + } + log.info("广播已停止"); + } + + /** + * 自动关闭广播任务 + */ + private void startAutoStopTask() { + autoStopFuture = executorService.schedule(() -> { + if (scheduledFuture != null && !scheduledFuture.isDone()) { + log.info("{}秒内未收到消息,自动停止广播", autoInterval); + stopBroadcast(); + } + }, autoInterval, TimeUnit.MINUTES); + } + + /** + * 播放音频 + */ + private void playAudio() { + + } + +} diff --git a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java index 7ad8671b5..fa6715f42 100644 --- a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java +++ b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java @@ -36,6 +36,7 @@ public class MqttEventController { @GetMapping("/send-config-change-msg") public R sendConfigChangeMsg(@RequestParam Long deptId) { MqttBaseDto dto = new MqttBaseDto<>(); + mqttEventService.getTopicParamsByUserDeptId(dto, deptId); dto.setAction(MqttActionEnum.CONFIG); dto.setMerchantDeptId(deptId); return R.ok(mqttEventService.defaultAction(dto)); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java index 0a3ce6c91..d9ecfba77 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java @@ -4,7 +4,9 @@ import cn.hutool.core.codec.Base64; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ZipUtil; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; From 6170c52550550956194cfe51dd7c403f1b273ecb Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 2 Apr 2025 19:23:37 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:=E6=99=BA=E8=83=BD=E6=9F=9C=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 84 +++++++++++++ .../hard/api/dto/spu/HardSpuCategoryDto.java | 9 ++ .../pjcloud/hard/api/dto/spu/HardSpuDto.java | 9 ++ .../hard/api/dto/spu/HardSpuRepertoryDto.java | 9 ++ .../api/entity/spu/HardSpuCategoryEntity.java | 82 ++++++++++++ .../hard/api/entity/spu/HardSpuEntity.java | 118 ++++++++++++++++++ .../entity/spu/HardSpuRepertoryEntity.java | 94 ++++++++++++++ .../hard/api/vo/spu/HardSpuCategoryVo.java | 9 ++ .../hard/api/vo/spu/HardSpuRepertoryVo.java | 9 ++ .../pjcloud/hard/api/vo/spu/HardSpuVo.java | 9 ++ .../spu/HardSpuCategoryController.java | 82 ++++++++++++ .../controller/spu/HardSpuController.java | 82 ++++++++++++ .../spu/HardSpuRepertoryController.java | 82 ++++++++++++ .../mapper/spu/HardSpuCategoryMapper.java | 11 ++ .../hard/mapper/spu/HardSpuMapper.java | 11 ++ .../mapper/spu/HardSpuRepertoryMapper.java | 11 ++ .../hard/service/HardSpuCategoryService.java | 8 ++ .../hard/service/HardSpuRepertoryService.java | 8 ++ .../pjcloud/hard/service/HardSpuService.java | 8 ++ .../impl/spu/HardSpuCategoryServiceImpl.java | 14 +++ .../impl/spu/HardSpuRepertoryServiceImpl.java | 17 +++ .../service/impl/spu/HardSpuServiceImpl.java | 15 +++ .../mapper/spu/HardSpuCategoryMapper.xml | 16 +++ .../resources/mapper/spu/HardSpuMapper.xml | 22 ++++ .../mapper/spu/HardSpuRepertoryMapper.xml | 18 +++ 25 files changed, 837 insertions(+) create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuCategoryDto.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuDto.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuRepertoryDto.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuCategoryEntity.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuEntity.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuCategoryVo.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuRepertoryVo.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuVo.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuCategoryController.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuCategoryMapper.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuMapper.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuRepertoryMapper.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuCategoryService.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuCategoryMapper.xml create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuRepertoryMapper.xml diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index 9590ec734..43680bc87 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -248,3 +248,87 @@ CREATE TABLE hard_broadcast tenant_id bigint DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (id) ) ENGINE = InnoDB COMMENT ='设备广播'; + +-- ---------------------------- +-- Table structure for hard_auth +-- ---------------------------- +DROP TABLE IF EXISTS hard_auth; +CREATE TABLE hard_auth +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + user_id bigint NOT NULL COMMENT '预定用户', + hard_id bigint NOT NULL COMMENT '硬件id', + auth_status char(1) DEFAULT '0' COMMENT '是否授权', + auth_time datetime DEFAULT NULL COMMENT '授权时间', + is_done char(1) DEFAULT '0' COMMENT '是否完成', + is_done_time datetime DEFAULT 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 ='硬件授权'; + +-- ---------------------------- +-- Table structure for hard_spu +-- ---------------------------- +DROP TABLE IF EXISTS hard_spu; +CREATE TABLE hard_spu +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + spu_category_id bigint NOT NULL COMMENT '商品分类id', + name varchar(64) NOT NULL COMMENT '商品名', + pic varchar(256) NOT NULL COMMENT '商品图片', + price int NOT NULL COMMENT '单价(分)', + sales_count int DEFAULT 0 NOT NULL COMMENT '销量', + repertory_count int DEFAULT 0 NOT NULL COMMENT '库存', + sort int DEFAULT 0 NOT NULL COMMENT '排序', + status char(1) DEFAULT '0' 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_spu_category +-- ---------------------------- +DROP TABLE IF EXISTS hard_spu_category; +CREATE TABLE hard_spu_category +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + name varchar(64) NOT NULL COMMENT '分类名', + sort int DEFAULT 0 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 ='硬件商品分类'; + +-- ---------------------------- +-- Table structure for hard_spu_repertory +-- ---------------------------- +DROP TABLE IF EXISTS hard_spu_repertory; +CREATE TABLE hard_spu_repertory +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + user_id bigint NOT NULL COMMENT '用户id', + hard_id bigint NOT NULL COMMENT '设备id', + spu_id bigint NOT NULL COMMENT '商品id', + count bigint DEFAULT 0 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-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuCategoryDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuCategoryDto.java new file mode 100644 index 000000000..713558d19 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuCategoryDto.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.dto.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; +import lombok.Data; + +@Data +public class HardSpuCategoryDto extends HardSpuCategoryEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuDto.java new file mode 100644 index 000000000..6d7ed5a12 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuDto.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.dto.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import lombok.Data; + +@Data +public class HardSpuDto extends HardSpuEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuRepertoryDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuRepertoryDto.java new file mode 100644 index 000000000..65d784519 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuRepertoryDto.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.dto.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; +import lombok.Data; + +@Data +public class HardSpuRepertoryDto extends HardSpuRepertoryEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuCategoryEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuCategoryEntity.java new file mode 100644 index 000000000..0ccfd387b --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuCategoryEntity.java @@ -0,0 +1,82 @@ +package com.bsd.pjcloud.hard.api.entity.spu; + +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; + +/** + * 硬件商品分类 + */ +@Data +@TenantTable +@TableName("hard_spu_category") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "硬件商品分类") +public class HardSpuCategoryEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 分类名 + */ + @Schema(description="分类名") + private String name; + + /** + * 排序 + */ + @Schema(description="排序") + private Integer sort; + + /** + * 创建人 + */ + @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/spu/HardSpuEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuEntity.java new file mode 100644 index 000000000..1f9fc1499 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuEntity.java @@ -0,0 +1,118 @@ +package com.bsd.pjcloud.hard.api.entity.spu; + +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; + +/** + * 硬件商品 + */ +@Data +@TenantTable +@TableName("hard_spu") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "硬件商品") +public class HardSpuEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 商品分类id + */ + @Schema(description="商品分类id") + private Long spuCategoryId; + + /** + * 商品名 + */ + @Schema(description="商品名") + private String name; + + /** + * 商品图片 + */ + @Schema(description="商品图片") + private String pic; + + /** + * 单价(分) + */ + @Schema(description="单价(分)") + private Integer price; + + /** + * 销量 + */ + @Schema(description="销量") + private Integer salesCount; + + /** + * 库存 + */ + @Schema(description="库存") + private Integer repertoryCount; + + /** + * 排序 + */ + @Schema(description="排序") + private Integer sort; + + /** + * 是否启用 + */ + @Schema(description="是否启用") + private String status; + + /** + * 创建人 + */ + @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/spu/HardSpuRepertoryEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java new file mode 100644 index 000000000..87892e0ce --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java @@ -0,0 +1,94 @@ +package com.bsd.pjcloud.hard.api.entity.spu; + +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; + +/** + * 硬件商品库存更新记录 + */ +@Data +@TenantTable +@TableName("hard_spu_repertory") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "硬件商品库存更新记录") +public class HardSpuRepertoryEntity 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 hardId; + + /** + * 商品id + */ + @Schema(description="商品id") + private Long spuId; + + /** + * 更新库存数量 + */ + @Schema(description="更新库存数量") + private Long count; + + /** + * 创建人 + */ + @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/spu/HardSpuCategoryVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuCategoryVo.java new file mode 100644 index 000000000..7f0f7516c --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuCategoryVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.vo.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; +import lombok.Data; + +@Data +public class HardSpuCategoryVo extends HardSpuCategoryEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuRepertoryVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuRepertoryVo.java new file mode 100644 index 000000000..2f2a59d8c --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuRepertoryVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.vo.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; +import lombok.Data; + +@Data +public class HardSpuRepertoryVo extends HardSpuRepertoryEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuVo.java new file mode 100644 index 000000000..367346ccd --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.vo.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import lombok.Data; + +@Data +public class HardSpuVo extends HardSpuEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuCategoryController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuCategoryController.java new file mode 100644 index 000000000..7e2aa48f8 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuCategoryController.java @@ -0,0 +1,82 @@ +package com.bsd.pjcloud.hard.controller.spu; + +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.entity.spu.HardSpuCategoryEntity; +import com.bsd.pjcloud.hard.service.HardSpuCategoryService; +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; + +/** + * 硬件商品分类 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hard-spu-category") +@Tag(description = "hard-spu-category", name = "硬件商品分类管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardSpuCategoryController { + + private final HardSpuCategoryService hardSpuCategoryService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_view')") + public R getHardSpuCategoryPage(@ParameterObject Page page, @ParameterObject HardSpuCategoryEntity hardSpuCategory) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardSpuCategoryService.page(page, wrapper)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardSpuCategoryService.getById(id)); + } + + @Operation(summary = "新增硬件商品分类", description = "新增硬件商品分类") + @SysLog("新增硬件商品分类") + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_add')") + public R save(@RequestBody HardSpuCategoryEntity hardSpuCategory) { + return R.ok(hardSpuCategoryService.save(hardSpuCategory)); + } + + @Operation(summary = "修改硬件商品分类", description = "修改硬件商品分类") + @SysLog("修改硬件商品分类") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_edit')") + public R updateById(@RequestBody HardSpuCategoryEntity hardSpuCategory) { + return R.ok(hardSpuCategoryService.updateById(hardSpuCategory)); + } + + @Operation(summary = "通过id删除硬件商品分类", description = "通过id删除硬件商品分类") + @SysLog("通过id删除硬件商品分类") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardSpuCategoryService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_export')") + public List export(HardSpuCategoryEntity hardSpuCategory, Long[] ids) { + return hardSpuCategoryService.list(Wrappers.lambdaQuery(hardSpuCategory).in(ArrayUtil.isNotEmpty(ids), HardSpuCategoryEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java new file mode 100644 index 000000000..e025552ac --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java @@ -0,0 +1,82 @@ +package com.bsd.pjcloud.hard.controller.spu; + +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.entity.spu.HardSpuEntity; +import com.bsd.pjcloud.hard.service.HardSpuService; +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; + +/** + * 硬件商品 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hard-spu") +@Tag(description = "hard-spu", name = "硬件商品管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardSpuController { + + private final HardSpuService hardSpuService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardSpu_view')") + public R getHardSpuPage(@ParameterObject Page page, @ParameterObject HardSpuEntity hardSpu) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardSpuService.page(page, wrapper)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardSpu_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardSpuService.getById(id)); + } + + @Operation(summary = "新增硬件商品", description = "新增硬件商品") + @SysLog("新增硬件商品") + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpu_add')") + public R save(@RequestBody HardSpuEntity hardSpu) { + return R.ok(hardSpuService.save(hardSpu)); + } + + @Operation(summary = "修改硬件商品", description = "修改硬件商品") + @SysLog("修改硬件商品") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpu_edit')") + public R updateById(@RequestBody HardSpuEntity hardSpu) { + return R.ok(hardSpuService.updateById(hardSpu)); + } + + @Operation(summary = "通过id删除硬件商品", description = "通过id删除硬件商品") + @SysLog("通过id删除硬件商品") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpu_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardSpuService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardSpu_export')") + public List export(HardSpuEntity hardSpu, Long[] ids) { + return hardSpuService.list(Wrappers.lambdaQuery(hardSpu).in(ArrayUtil.isNotEmpty(ids), HardSpuEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java new file mode 100644 index 000000000..64d65e837 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java @@ -0,0 +1,82 @@ +package com.bsd.pjcloud.hard.controller.spu; + +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.entity.spu.HardSpuRepertoryEntity; +import com.bsd.pjcloud.hard.service.HardSpuRepertoryService; +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; + +/** + * 硬件商品库存更新记录 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hard-spu-repertory") +@Tag(description = "hard-spu-repertory", name = "硬件商品库存更新记录管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardSpuRepertoryController { + + private final HardSpuRepertoryService hardSpuRepertoryService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_view')") + public R getHardSpuRepertoryPage(@ParameterObject Page page, @ParameterObject HardSpuRepertoryEntity hardSpuRepertory) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardSpuRepertoryService.page(page, wrapper)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardSpuRepertoryService.getById(id)); + } + + @Operation(summary = "新增硬件商品库存更新记录", description = "新增硬件商品库存更新记录") + @SysLog("新增硬件商品库存更新记录") + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_add')") + public R save(@RequestBody HardSpuRepertoryEntity hardSpuRepertory) { + return R.ok(hardSpuRepertoryService.save(hardSpuRepertory)); + } + + @Operation(summary = "修改硬件商品库存更新记录", description = "修改硬件商品库存更新记录") + @SysLog("修改硬件商品库存更新记录") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_edit')") + public R updateById(@RequestBody HardSpuRepertoryEntity hardSpuRepertory) { + return R.ok(hardSpuRepertoryService.updateById(hardSpuRepertory)); + } + + @Operation(summary = "通过id删除硬件商品库存更新记录", description = "通过id删除硬件商品库存更新记录") + @SysLog("通过id删除硬件商品库存更新记录") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardSpuRepertoryService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_export')") + public List export(HardSpuRepertoryEntity hardSpuRepertory, Long[] ids) { + return hardSpuRepertoryService.list(Wrappers.lambdaQuery(hardSpuRepertory).in(ArrayUtil.isNotEmpty(ids), HardSpuRepertoryEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuCategoryMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuCategoryMapper.java new file mode 100644 index 000000000..26c97d19a --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuCategoryMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.hard.mapper.spu; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardSpuCategoryMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuMapper.java new file mode 100644 index 000000000..391a430f6 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.hard.mapper.spu; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardSpuMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuRepertoryMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuRepertoryMapper.java new file mode 100644 index 000000000..9ca91d90f --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuRepertoryMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.hard.mapper.spu; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardSpuRepertoryMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuCategoryService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuCategoryService.java new file mode 100644 index 000000000..3572945bb --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuCategoryService.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; + +public interface HardSpuCategoryService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java new file mode 100644 index 000000000..521b2658c --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; + +public interface HardSpuRepertoryService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java new file mode 100644 index 000000000..2a33f9d89 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; + +public interface HardSpuService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java new file mode 100644 index 000000000..4ae3b9201 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java @@ -0,0 +1,14 @@ +package com.bsd.pjcloud.hard.service.impl.spu; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; +import com.bsd.pjcloud.hard.mapper.spu.HardSpuCategoryMapper; +import com.bsd.pjcloud.hard.service.HardSpuCategoryService; +import org.springframework.stereotype.Service; + +/** + * 硬件商品分类 + */ +@Service +public class HardSpuCategoryServiceImpl extends ServiceImpl implements HardSpuCategoryService { +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java new file mode 100644 index 000000000..2f1cbc0b5 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java @@ -0,0 +1,17 @@ +package com.bsd.pjcloud.hard.service.impl.spu; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; +import com.bsd.pjcloud.hard.mapper.spu.HardSpuRepertoryMapper; +import com.bsd.pjcloud.hard.service.HardSpuRepertoryService; +import org.springframework.stereotype.Service; +/** + * 硬件商品库存更新记录 + * + * @author dzc + * @date 2025-04-02 18:59:41 + */ +@Service +public class HardSpuRepertoryServiceImpl extends ServiceImpl implements HardSpuRepertoryService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java new file mode 100644 index 000000000..c449b2f7f --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java @@ -0,0 +1,15 @@ +package com.bsd.pjcloud.hard.service.impl.spu; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import com.bsd.pjcloud.hard.mapper.spu.HardSpuMapper; +import com.bsd.pjcloud.hard.service.HardSpuService; +import org.springframework.stereotype.Service; + +/** + * 硬件商品 + */ +@Service +public class HardSpuServiceImpl extends ServiceImpl implements HardSpuService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuCategoryMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuCategoryMapper.xml new file mode 100644 index 000000000..bb2d6a0e6 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuCategoryMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml new file mode 100644 index 000000000..264e1c438 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuRepertoryMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuRepertoryMapper.xml new file mode 100644 index 000000000..a49d3cdad --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuRepertoryMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file From 7e0a1f96f3c205a9dbe25dce2935f4c45c1e50e0 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 2 Apr 2025 20:12:17 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=E6=99=BA=E6=85=A7=E8=B6=85=E5=B8=82?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spu/HardSpuCategoryController.java | 21 ++++-- .../controller/spu/HardSpuController.java | 17 ++++- .../spu/HardSpuRepertoryController.java | 15 +++++ .../hard/service/HardSpuCategoryService.java | 25 +++++++ .../hard/service/HardSpuRepertoryService.java | 6 ++ .../pjcloud/hard/service/HardSpuService.java | 26 ++++++++ .../impl/spu/HardSpuCategoryServiceImpl.java | 66 +++++++++++++++++++ .../impl/spu/HardSpuRepertoryServiceImpl.java | 18 ++++- .../service/impl/spu/HardSpuServiceImpl.java | 56 ++++++++++++++++ 9 files changed, 239 insertions(+), 11 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuCategoryController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuCategoryController.java index 7e2aa48f8..eb41bddc4 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuCategoryController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuCategoryController.java @@ -6,7 +6,9 @@ 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.data.datascope.DataScope; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuCategoryDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; import com.bsd.pjcloud.hard.service.HardSpuCategoryService; import org.springframework.security.access.prepost.PreAuthorize; @@ -42,6 +44,14 @@ public class HardSpuCategoryController { return R.ok(hardSpuCategoryService.page(page, wrapper)); } + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_view')") + public R pageJoin(@ParameterObject Page page, @ParameterObject HardSpuCategoryDto dto) { + DataScope dataScope = null; + return R.ok(hardSpuCategoryService.scopPageJoin(page, dto, dataScope)); + } + @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_view')") @@ -53,16 +63,16 @@ public class HardSpuCategoryController { @SysLog("新增硬件商品分类") @PostMapping @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_add')") - public R save(@RequestBody HardSpuCategoryEntity hardSpuCategory) { - return R.ok(hardSpuCategoryService.save(hardSpuCategory)); + public R save(@RequestBody HardSpuCategoryEntity entity) { + return R.ok(hardSpuCategoryService.create(entity)); } @Operation(summary = "修改硬件商品分类", description = "修改硬件商品分类") @SysLog("修改硬件商品分类") @PutMapping @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_edit')") - public R updateById(@RequestBody HardSpuCategoryEntity hardSpuCategory) { - return R.ok(hardSpuCategoryService.updateById(hardSpuCategory)); + public R updateById(@RequestBody HardSpuCategoryEntity entity) { + return R.ok(hardSpuCategoryService.edit(entity)); } @Operation(summary = "通过id删除硬件商品分类", description = "通过id删除硬件商品分类") @@ -70,7 +80,8 @@ public class HardSpuCategoryController { @DeleteMapping @PreAuthorize("@pms.hasPermission('hard_hardSpuCategory_del')") public R removeById(@RequestBody Long[] ids) { - return R.ok(hardSpuCategoryService.removeBatchByIds(CollUtil.toList(ids))); + hardSpuCategoryService.delByIds(CollUtil.toList(ids)); + return R.ok(); } @ResponseExcel diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java index e025552ac..e2379e9d9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java @@ -6,7 +6,9 @@ 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.data.datascope.DataScope; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; import com.bsd.pjcloud.hard.service.HardSpuService; import org.springframework.security.access.prepost.PreAuthorize; @@ -42,6 +44,14 @@ public class HardSpuController { return R.ok(hardSpuService.page(page, wrapper)); } + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('hard_hardSpu_view')") + public R pageJoin(@ParameterObject Page page, @ParameterObject HardSpuDto dto) { + DataScope dataScope = null; + return R.ok(hardSpuService.scopPageJoin(page, dto, dataScope)); + } + @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('hard_hardSpu_view')") @@ -54,7 +64,7 @@ public class HardSpuController { @PostMapping @PreAuthorize("@pms.hasPermission('hard_hardSpu_add')") public R save(@RequestBody HardSpuEntity hardSpu) { - return R.ok(hardSpuService.save(hardSpu)); + return R.ok(hardSpuService.create(hardSpu)); } @Operation(summary = "修改硬件商品", description = "修改硬件商品") @@ -62,7 +72,7 @@ public class HardSpuController { @PutMapping @PreAuthorize("@pms.hasPermission('hard_hardSpu_edit')") public R updateById(@RequestBody HardSpuEntity hardSpu) { - return R.ok(hardSpuService.updateById(hardSpu)); + return R.ok(hardSpuService.edit(hardSpu)); } @Operation(summary = "通过id删除硬件商品", description = "通过id删除硬件商品") @@ -70,7 +80,8 @@ public class HardSpuController { @DeleteMapping @PreAuthorize("@pms.hasPermission('hard_hardSpu_del')") public R removeById(@RequestBody Long[] ids) { - return R.ok(hardSpuService.removeBatchByIds(CollUtil.toList(ids))); + hardSpuService.delByIds(CollUtil.toList(ids)); + return R.ok(); } @ResponseExcel diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java index 64d65e837..f781515fc 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java @@ -6,7 +6,9 @@ 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.data.datascope.DataScope; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuRepertoryDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; import com.bsd.pjcloud.hard.service.HardSpuRepertoryService; import org.springframework.security.access.prepost.PreAuthorize; @@ -34,6 +36,11 @@ public class HardSpuRepertoryController { private final HardSpuRepertoryService hardSpuRepertoryService; + /* ************************************* start app start ************************************* */ + + + /* ************************************* end app end ************************************* */ + @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_view')") @@ -42,6 +49,14 @@ public class HardSpuRepertoryController { return R.ok(hardSpuRepertoryService.page(page, wrapper)); } + @Operation(summary = "分页复杂查询", description = "分页复杂查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_view')") + public R pageJoin(@ParameterObject Page page, @ParameterObject HardSpuRepertoryDto dto) { + DataScope dataScope = null; + return R.ok(hardSpuRepertoryService.scopePageJoin(page, dto, dataScope)); + } + @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_view')") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuCategoryService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuCategoryService.java index 3572945bb..970a8362b 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuCategoryService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuCategoryService.java @@ -1,8 +1,33 @@ 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.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuCategoryDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; +import com.bsd.pjcloud.hard.api.vo.spu.HardSpuCategoryVo; + +import java.util.ArrayList; public interface HardSpuCategoryService extends IService { + /** + * 分页查询 + */ + Page scopPageJoin(Page page, HardSpuCategoryDto dto, DataScope dataScope); + + /** + * 新增 + */ + Long create(HardSpuCategoryEntity entity); + + /** + * 编辑 + */ + Long edit(HardSpuCategoryEntity entity); + + /** + * 删除 + */ + void delByIds(ArrayList list); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java index 521b2658c..cc1c7e9f6 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java @@ -1,8 +1,14 @@ 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.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuRepertoryDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; +import com.bsd.pjcloud.hard.api.vo.spu.HardSpuRepertoryVo; public interface HardSpuRepertoryService extends IService { + Page scopePageJoin(Page page, HardSpuRepertoryDto dto, DataScope dataScope); + } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java index 2a33f9d89..2fea2600c 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuService.java @@ -1,8 +1,34 @@ 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.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import com.bsd.pjcloud.hard.api.vo.spu.HardSpuVo; + +import java.util.ArrayList; public interface HardSpuService extends IService { + /** + * 分页查询 + */ + Page scopPageJoin(Page page, HardSpuDto dto, DataScope dataScope); + + /** + * 新增 + */ + Long create(HardSpuEntity entity); + + /** + * 编辑 + */ + Long edit(HardSpuEntity entity); + + /** + * 删除 + */ + void delByIds(ArrayList list); + } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java index 4ae3b9201..851db6388 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java @@ -1,14 +1,80 @@ package com.bsd.pjcloud.hard.service.impl.spu; +import cn.hutool.core.util.ObjectUtil; +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 com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuCategoryDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; +import com.bsd.pjcloud.hard.api.vo.spu.HardSpuCategoryVo; import com.bsd.pjcloud.hard.mapper.spu.HardSpuCategoryMapper; import com.bsd.pjcloud.hard.service.HardSpuCategoryService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.ArrayList; /** * 硬件商品分类 */ +@Validated +@Slf4j +@RequiredArgsConstructor @Service public class HardSpuCategoryServiceImpl extends ServiceImpl implements HardSpuCategoryService { + + /** + * 分页查询 + */ + @Override + public Page scopPageJoin(Page page, HardSpuCategoryDto dto, DataScope dataScope) { + return null; + } + + /** + * 新增 + */ + @Override + public Long create(HardSpuCategoryEntity entity) { + + + baseMapper.insert(entity); + return entity.getId(); + } + + /** + * 编辑 + */ + @Override + public Long edit(HardSpuCategoryEntity entity) { + + baseMapper.updateById(entity); + return entity.getId(); + } + + /** + * 删除 + */ + @Override + public void delByIds(ArrayList list) { + + baseMapper.deleteByIds(list); + } + + /** + * 分类名是否重复 + */ + private boolean existName(HardSpuCategoryEntity dto) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(dto.getName()), HardSpuCategoryEntity::getName, dto.getName()) + .ne(ObjectUtil.isNotEmpty(dto.getId()), HardSpuCategoryEntity::getId, dto.getId()) + ); + if (ObjectUtil.isNotEmpty(dto.getId())) { + return count >= 1; + } + return count > 0; + } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java index 2f1cbc0b5..ffb98e473 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java @@ -1,17 +1,29 @@ package com.bsd.pjcloud.hard.service.impl.spu; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuRepertoryDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; +import com.bsd.pjcloud.hard.api.vo.spu.HardSpuRepertoryVo; import com.bsd.pjcloud.hard.mapper.spu.HardSpuRepertoryMapper; import com.bsd.pjcloud.hard.service.HardSpuRepertoryService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + /** * 硬件商品库存更新记录 - * - * @author dzc - * @date 2025-04-02 18:59:41 */ +@Validated +@Slf4j +@RequiredArgsConstructor @Service public class HardSpuRepertoryServiceImpl extends ServiceImpl implements HardSpuRepertoryService { + @Override + public Page scopePageJoin(Page page, HardSpuRepertoryDto dto, DataScope dataScope) { + return null; + } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java index c449b2f7f..3aaebd066 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java @@ -1,15 +1,71 @@ package com.bsd.pjcloud.hard.service.impl.spu; +import cn.hutool.core.util.ObjectUtil; +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 com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import com.bsd.pjcloud.hard.api.vo.spu.HardSpuVo; import com.bsd.pjcloud.hard.mapper.spu.HardSpuMapper; import com.bsd.pjcloud.hard.service.HardSpuService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.ArrayList; /** * 硬件商品 */ +@Validated +@Slf4j +@RequiredArgsConstructor @Service public class HardSpuServiceImpl extends ServiceImpl implements HardSpuService { + /** + * 分页查询 + */ + @Override + public Page scopPageJoin(Page page, HardSpuDto dto, DataScope dataScope) { + return null; + } + + @Override + public Long create(HardSpuEntity entity) { + + baseMapper.insert(entity); + return entity.getId(); + } + + @Override + public Long edit(HardSpuEntity entity) { + + baseMapper.updateById(entity); + return entity.getId(); + } + + @Override + public void delByIds(ArrayList list) { + + baseMapper.deleteByIds(list); + } + + /** + * 商品是否重复 + */ + private boolean existName(HardSpuEntity dto) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(dto.getName()), HardSpuEntity::getName, dto.getName()) + .ne(ObjectUtil.isNotEmpty(dto.getId()), HardSpuEntity::getId, dto.getId()) + ); + if (ObjectUtil.isNotEmpty(dto.getId())) { + return count >= 1; + } + return count > 0; + } + } \ No newline at end of file From 529c7cda9d8917a53f67b98046719d9cf98cb05d Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Wed, 2 Apr 2025 20:20:36 +0800 Subject: [PATCH 4/5] 11 --- .../pjcloud/hard/api/dto/spu/HardSpuDto.java | 4 +++ .../pjcloud/hard/api/vo/spu/HardSpuVo.java | 5 +++ .../hard/mapper/spu/HardSpuMapper.java | 6 ++++ .../impl/spu/HardSpuCategoryServiceImpl.java | 11 +++--- .../service/impl/spu/HardSpuServiceImpl.java | 21 ++++++++--- .../resources/mapper/spu/HardSpuMapper.xml | 35 +++++++++++++++++++ 6 files changed, 74 insertions(+), 8 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuDto.java index 6d7ed5a12..4a15a6cfc 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuDto.java @@ -3,7 +3,11 @@ package com.bsd.pjcloud.hard.api.dto.spu; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; import lombok.Data; +import java.time.LocalDateTime; + @Data public class HardSpuDto extends HardSpuEntity { + private LocalDateTime[] createTimeList; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuVo.java index 367346ccd..2d7c1c939 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuVo.java @@ -6,4 +6,9 @@ import lombok.Data; @Data public class HardSpuVo extends HardSpuEntity { + /** + * 分类相关 + */ + private String categoryName; + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuMapper.java index 391a430f6..01fc60a70 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardSpuMapper.java @@ -1,11 +1,17 @@ package com.bsd.pjcloud.hard.mapper.spu; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.dto.spu.HardSpuDto; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import com.bsd.pjcloud.hard.api.vo.spu.HardSpuVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface HardSpuMapper extends PjcloudBaseMapper { + Page scopPageJoin(Page page, @Param("dto") HardSpuDto dto, @Param("dataScope") DataScope dataScope); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java index 851db6388..2ae177c51 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuCategoryServiceImpl.java @@ -39,8 +39,9 @@ public class HardSpuCategoryServiceImpl extends ServiceImpl list) { - + if (ObjectUtil.isEmpty(list)) return; baseMapper.deleteByIds(list); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java index 3aaebd066..0ab6889e8 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java @@ -31,26 +31,39 @@ public class HardSpuServiceImpl extends ServiceImpl scopPageJoin(Page page, HardSpuDto dto, DataScope dataScope) { - return null; + return baseMapper.scopPageJoin(page, dto, dataScope); } + /** + * 新增 + */ @Override public Long create(HardSpuEntity entity) { - + if (existName(entity)) { + throw new RuntimeException("商品名不能重复"); + } baseMapper.insert(entity); return entity.getId(); } + /** + * 编辑 + */ @Override public Long edit(HardSpuEntity entity) { - + if (existName(entity)) { + throw new RuntimeException("商品名不能重复"); + } baseMapper.updateById(entity); return entity.getId(); } + /** + * 删除 + */ @Override public void delByIds(ArrayList list) { - + if (ObjectUtil.isEmpty(list)) return; baseMapper.deleteByIds(list); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml index 264e1c438..7476464ae 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml @@ -19,4 +19,39 @@ + + + select a.id, + a.spu_category_id, + a.name, + a.pic, + a.price, + a.sales_count, + a.repertory_count, + a.sort, + a.status, + a.create_by, + a.create_time, + a.update_by, + a.update_time, + a.del_flag, + a.tenant_id, + + + + a.del_flag = '0' + + and a.create_time between #{dto.createTimeList[0]} and #{dto.createTimeList[1]} + + + + \ No newline at end of file From a343c72431ff3a5db1345f34c34962e13470b149 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 3 Apr 2025 10:05:11 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=97=B7=E4=B8=96?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 4 + .../hard/api/entity/spu/HardSpuEntity.java | 155 ++++++++++-------- .../resources/mapper/spu/HardSpuMapper.xml | 27 +++ 3 files changed, 121 insertions(+), 65 deletions(-) diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index 43680bc87..b44a8d788 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -286,6 +286,10 @@ CREATE TABLE hard_spu repertory_count int DEFAULT 0 NOT NULL COMMENT '库存', sort int DEFAULT 0 NOT NULL COMMENT '排序', status char(1) DEFAULT '0' COMMENT '是否启用', + is_default char(1) DEFAULT '0' COMMENT '是否为标品', + ks_status char(1) DEFAULT '0' COMMENT '旷世审核状态', + ks_status_title varchar(64) NOT NULL COMMENT '旷世审核状态标题', + ks_comments varchar(512) DEFAULT 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 '修改人', diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuEntity.java index 1f9fc1499..35080d105 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuEntity.java @@ -6,6 +6,7 @@ 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; /** @@ -19,100 +20,124 @@ import java.time.LocalDateTime; public class HardSpuEntity extends Model { - /** - * 编号 - */ + /** + * 编号 + */ @TableId(type = IdType.ASSIGN_ID) - @Schema(description="编号") + @Schema(description = "编号") private Long id; - /** - * 商品分类id - */ - @Schema(description="商品分类id") + /** + * 商品分类id + */ + @Schema(description = "商品分类id") private Long spuCategoryId; - /** - * 商品名 - */ - @Schema(description="商品名") + /** + * 商品名 + */ + @Schema(description = "商品名") private String name; - /** - * 商品图片 - */ - @Schema(description="商品图片") + /** + * 商品图片 + */ + @Schema(description = "商品图片") private String pic; - /** - * 单价(分) - */ - @Schema(description="单价(分)") + /** + * 单价(分) + */ + @Schema(description = "单价(分)") private Integer price; - /** - * 销量 - */ - @Schema(description="销量") + /** + * 销量 + */ + @Schema(description = "销量") private Integer salesCount; - /** - * 库存 - */ - @Schema(description="库存") + /** + * 库存 + */ + @Schema(description = "库存") private Integer repertoryCount; - /** - * 排序 - */ - @Schema(description="排序") + /** + * 排序 + */ + @Schema(description = "排序") private Integer sort; - /** - * 是否启用 - */ - @Schema(description="是否启用") + /** + * 是否启用 + */ + @Schema(description = "是否启用") private String status; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建人") + /** + * 是否为标品 + */ + @Schema(description = "是否为标品") + private String isDefault; + + /** + * 旷世审核状态 + */ + @Schema(description = "旷世审核状态") + private String ksStatus; + + /** + * 旷世审核状态标题 + */ + @Schema(description = "旷世审核状态标题") + private String ksStatusTitle; + + /** + * 旷世审核状态描述 + */ + @Schema(description = "旷世审核状态描述") + private String ksComments; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") private String createBy; - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建时间") + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") private LocalDateTime createTime; - /** - * 修改人 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改人") + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改人") private String updateBy; - /** - * 修改时间 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改时间") + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改时间") private LocalDateTime updateTime; - /** - * 删除标记 - */ + /** + * 删除标记 + */ @TableLogic - @TableField(fill = FieldFill.INSERT) - @Schema(description="删除标记") + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记") private String delFlag; - /** - * 租户ID - */ - @Schema(description="租户ID") + /** + * 租户ID + */ + @Schema(description = "租户ID") private Long tenantId; } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml index 7476464ae..74f2e8901 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardSpuMapper.xml @@ -12,6 +12,10 @@ + + + + @@ -30,6 +34,10 @@ a.repertory_count, a.sort, a.status, + a.is_default, + a.ks_status, + a.ks_status_title, + a.ks_comments, a.create_by, a.create_time, a.update_by, @@ -40,6 +48,24 @@ a.del_flag = '0' + + and a.name like concat('%', #{dto.name}, '%') + + + and a.spu_category_id = #{dto.spuCategoryId} + + + and a.spu_category_id = #{dto.spuCategoryId} + + + and a.status = #{dto.status} + + + and a.is_default = #{dto.isDefault} + + + and a.ks_status = #{dto.ksStatus} + and a.create_time between #{dto.createTimeList[0]} and #{dto.createTimeList[1]} @@ -53,5 +79,6 @@ + order by a.sort desc, a.create_time desc \ No newline at end of file