diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index 8e9aac8bb..f586dfb06 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -46,6 +46,7 @@ CREATE TABLE hard_door_manager imei varchar(32) NOT NULL COMMENT '设备 IMEI 号(15 位)', device_code int DEFAULT NULL COMMENT '设备编号', cabinet_num int DEFAULT NULL COMMENT '货柜数量', + door_count int DEFAULT NULL COMMENT '货柜层数', cabinet_camera_num int DEFAULT NULL COMMENT '每个货柜中摄像头数量', cabinet_weight_unit_num int DEFAULT NULL COMMENT '每个货柜中称重单元数量', power_status int DEFAULT NULL COMMENT '1:通电;2:断电', @@ -335,6 +336,50 @@ CREATE TABLE hard_spu PRIMARY KEY (id) ) ENGINE = InnoDB COMMENT ='硬件商品'; +-- ---------------------------- +-- Table structure for hard_ks_sku_join +-- ---------------------------- +DROP TABLE IF EXISTS hard_ks_sku_join; +CREATE TABLE hard_ks_sku_join +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + ks_sku_id varchar(32) DEFAULT NULL COMMENT '该字段为超级收银员平台的商品ID', + hard_door_id varchar(32) DEFAULT NULL COMMENT '硬件柜子id', + 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_ks_sku +-- ---------------------------- +DROP TABLE IF EXISTS hard_ks_sku; +CREATE TABLE hard_ks_sku +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + ks_sku_id varchar(32) DEFAULT NULL COMMENT '该字段为超级收银员平台的商品ID', + barcode varchar(32) DEFAULT NULL COMMENT '69码', + sku_name varchar(64) DEFAULT NULL COMMENT '商品名称', + sku_id varchar(32) DEFAULT NULL COMMENT '业务方sku_id', + cover varchar(256) DEFAULT NULL COMMENT '商品主图缩略图url,尺寸300*300px', + sku_type varchar(32) DEFAULT NULL COMMENT 'sku类型:0:标准库 1:私有库 ', + specs varchar(512) DEFAULT NULL COMMENT '该字段为SKU所对应的规格,包含口味、容量、重量,taste表示口味,capacity表示容量,单位:ml,weight表示重量,单位:g', + has_sub_sku varchar(32) DEFAULT NULL COMMENT '是否为集合SKU', + sub_sku text DEFAULT NULL COMMENT '集合SKU的子SKU信息', + check_status varchar(32) DEFAULT NULL COMMENT 'sku审核状态', + 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 -- ---------------------------- diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CommonRoleConstant.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CommonRoleConstant.java index 31443ab46..e7277790c 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CommonRoleConstant.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CommonRoleConstant.java @@ -29,4 +29,7 @@ public interface CommonRoleConstant { // 自动创建钱包 String AUTO_CREATE_WALLET = "WALLET_AUTO_CREATE"; + // 商户角色 + String MCH_USER = "MCH_USER"; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsCheckStatusEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsCheckStatusEnum.java new file mode 100644 index 000000000..c109c8a4c --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsCheckStatusEnum.java @@ -0,0 +1,30 @@ +package com.bsd.pjcloud.hard.api.constant.spu; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 旷世sku审核状态 + */ +@AllArgsConstructor +@Getter +public enum HardKsCheckStatusEnum { + + STANDARD("1", "识别进行中"), + DONE("2", "识别完成(人工未二次复核)"), + SECOND_CHECK("3", "二次验证中"), + AUTO_SECOND_CHECK("4", "自动二次验证中"), + CHECK_DONE("5", "识别完成(人工二次复核)"), + ; + private final String type; + private final String description; + + public static HardKsCheckStatusEnum valueOfByType(String type) { + if (ObjectUtil.isEmpty(type)) return null; + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + } + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsOrderStatusEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsOrderStatusEnum.java new file mode 100644 index 000000000..4a80f612e --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsOrderStatusEnum.java @@ -0,0 +1,34 @@ +package com.bsd.pjcloud.hard.api.constant.spu; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 旷世订单审核状态 + */ +@AllArgsConstructor +@Getter +public enum HardKsOrderStatusEnum { + + IDENTIFYING("1", "识别中"), + SUCCESS("2", "成功"), + SUCCESS_NO_ITEM_TAKEN("3", "成功:未拿商品"), + FAILED_UNRECOGNIZABLE("4", "失败:无法识别"), + ALARM_INTENTIONAL_OBSTRUCTION("6", "告警:故意遮挡"), + ALARM_SKU_NOT_IN_CABINET("7", "告警:柜中无此SKU"), + ALARM_OTHER_ALARM("8", "告警:其他告警"), + ALARM_FOREIGN_OBJECT("9", "告警:异物拿放"), + ALARM_SUSPECTED_DEVICE_FAILURE("10", "告警:疑似设备故障"); + + private final String type; + private final String description; + + public static HardKsOrderStatusEnum valueOfByType(String type) { + if (ObjectUtil.isEmpty(type)) return null; + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + } + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsSkuTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsSkuTypeEnum.java new file mode 100644 index 000000000..492668cc9 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardKsSkuTypeEnum.java @@ -0,0 +1,26 @@ +package com.bsd.pjcloud.hard.api.constant.spu; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 旷世sku类型 + */ +@AllArgsConstructor +@Getter +public enum HardKsSkuTypeEnum { + STANDARD("0", "标准库"), + SELF("1", "私有库"), + ; + private final String type; + private final String description; + + public static HardKsSkuTypeEnum valueOfByType(String type) { + if (ObjectUtil.isEmpty(type)) return null; + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + } +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/SpuRepertoryTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardSpuRepertoryTypeEnum.java similarity index 76% rename from pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/SpuRepertoryTypeEnum.java rename to pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardSpuRepertoryTypeEnum.java index 373f95108..0efb77ebf 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/SpuRepertoryTypeEnum.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/spu/HardSpuRepertoryTypeEnum.java @@ -1,7 +1,6 @@ package com.bsd.pjcloud.hard.api.constant.spu; import cn.hutool.core.util.ObjectUtil; -import com.bsd.pjcloud.hard.api.constant.HardPrintStatusEnum; import lombok.AllArgsConstructor; import lombok.Getter; @@ -12,14 +11,14 @@ import java.util.Arrays; */ @AllArgsConstructor @Getter -public enum SpuRepertoryTypeEnum { +public enum HardSpuRepertoryTypeEnum { HANDLER("10", "手动上架"), AUTO("20", "自动上架"), ; private final String type; private final String description; - public static SpuRepertoryTypeEnum valueOfByType(String type) { + public static HardSpuRepertoryTypeEnum valueOfByType(String type) { if (ObjectUtil.isEmpty(type)) return null; return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardKsSkuDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardKsSkuDto.java new file mode 100644 index 000000000..8b9d5cca0 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardKsSkuDto.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.dto.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardKsSkuEntity; +import lombok.Data; + +@Data +public class HardKsSkuDto extends HardKsSkuEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardKsSkuJoinDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardKsSkuJoinDto.java new file mode 100644 index 000000000..efd7f814a --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardKsSkuJoinDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.dto.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardKsSkuJoinEntity; +import lombok.Data; + +@Data +public class HardKsSkuJoinDto extends HardKsSkuJoinEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/manager/HardDoorManagerEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/manager/HardDoorManagerEntity.java index 91f6f2c6c..fe36eee33 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/manager/HardDoorManagerEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/manager/HardDoorManagerEntity.java @@ -10,9 +10,6 @@ import java.time.LocalDateTime; /** * 智能柜设置 - * - * @author dzc - * @date 2025-04-08 18:50:53 */ @Builder @AllArgsConstructor @@ -38,6 +35,12 @@ public class HardDoorManagerEntity extends Model { @Schema(description = "设备编号") private Long hardId; + /** + * 设备层数 + */ + @Schema(description = "设备层数") + private Long doorCount; + /** * 内置设备编号 */ diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/manager/HardManagerEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/manager/HardManagerEntity.java index f45905c58..e80c9dfb4 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/manager/HardManagerEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/manager/HardManagerEntity.java @@ -9,9 +9,6 @@ import java.time.LocalDateTime; /** * 设备管理 - * - * @author dzc - * @date 2025-01-05 14:16:52 */ @Builder @AllArgsConstructor diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardKsSkuEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardKsSkuEntity.java new file mode 100644 index 000000000..3e0846557 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardKsSkuEntity.java @@ -0,0 +1,130 @@ +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_ks_sku") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "商品") +public class HardKsSkuEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 该字段为超级收银员平台的商品ID + */ + @Schema(description="该字段为超级收银员平台的商品ID") + private String ksSkuId; + + /** + * 69码 + */ + @Schema(description="69码") + private String barcode; + + /** + * 商品名称 + */ + @Schema(description="商品名称") + private String skuName; + + /** + * 业务方sku_id + */ + @Schema(description="业务方sku_id") + private String skuId; + + /** + * 商品主图缩略图url,尺寸300*300px + */ + @Schema(description="商品主图缩略图url,尺寸300*300px") + private String cover; + + /** + * sku类型:0:标准库 1:私有库 + */ + @Schema(description="sku类型:0:标准库 1:私有库") + private String skuType; + + /** + * 该字段为SKU所对应的规格,包含口味、容量、重量,taste表示口味,capacity表示容量,单位:ml,weight表示重量,单位:g + */ + @Schema(description="该字段为SKU所对应的规格,包含口味、容量、重量,taste表示口味,capacity表示容量,单位:ml,weight表示重量,单位:g") + private String specs; + + /** + * 是否为集合SKU + */ + @Schema(description="是否为集合SKU") + private String hasSubSku; + + /** + * 集合SKU的子SKU信息 + */ + @Schema(description="集合SKU的子SKU信息") + private String subSku; + + /** + * sku审核状态 + */ + @Schema(description="sku审核状态") + private String checkStatus; + + /** + * 创建人 + */ + @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/HardKsSkuJoinEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardKsSkuJoinEntity.java new file mode 100644 index 000000000..8fd426a39 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardKsSkuJoinEntity.java @@ -0,0 +1,83 @@ +package com.bsd.pjcloud.hard.api.entity.spu; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.bsd.pjcloud.common.core.util.TenantTable; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * 旷世商品绑定 + */ +@Data +@TenantTable +@TableName("hard_ks_sku_join") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "旷世商品绑定") +public class HardKsSkuJoinEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 该字段为超级收银员平台的商品ID + */ + @Schema(description="该字段为超级收银员平台的商品ID") + private String ksSkuId; + + /** + * 硬件柜子id + */ + @Schema(description="硬件柜子id") + private String hardDoorId; + + /** + * 创建人 + */ + @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/HardKsSkuJoinVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardKsSkuJoinVo.java new file mode 100644 index 000000000..6322f4604 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardKsSkuJoinVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.vo.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardKsSkuJoinEntity; +import lombok.Data; + +@Data +public class HardKsSkuJoinVo extends HardKsSkuJoinEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardKsSkuVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardKsSkuVo.java new file mode 100644 index 000000000..2a08e4c56 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardKsSkuVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.hard.api.vo.spu; + +import com.bsd.pjcloud.hard.api.entity.spu.HardKsSkuEntity; +import lombok.Data; + +@Data +public class HardKsSkuVo extends HardKsSkuEntity { + +} diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java index 5892f7bf7..29e237baf 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java @@ -135,6 +135,21 @@ public class HardOrderController { public R appMchPageJoin(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { dto.setIsFindCarList(false); PjcloudUser user = SecurityUtils.getUser(); + // 判断是否为合作超市管理员工 + if (!hardManagerService.isSuperMarketAdmin(user)) { + return R.ok(new Page()); + } + // 查询商户和下面的子商户 + List mchDtoIds = dto.getMchIds(); + if (ObjectUtil.isNotEmpty(mchDtoIds) && mchDtoIds.size() == 1) { + Long mchId = mchDtoIds.get(0); + List mchList = mchService.getByParentId(mchId).getData(); + if (ObjectUtil.isNotEmpty(mchList)) { + List mchIds = mchList.stream().map(MchManageVo::getId).toList(); + mchDtoIds.addAll(mchIds); + dto.setMchIds(mchDtoIds); + } + } return R.ok(hardwareOrderService.appMchPageJoin(page, dto, user)); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java index 6d16d86ec..52d9cd05b 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java @@ -22,6 +22,7 @@ import com.bsd.pjcloud.hard.api.vo.order.HardDeptTotalVo; import com.bsd.pjcloud.hard.api.vo.order.HardOrderCsVo; import com.bsd.pjcloud.hard.api.vo.order.HardOrderPayTypeVo; import com.bsd.pjcloud.hard.api.vo.order.HardOrderSbVo; +import com.bsd.pjcloud.hard.service.HardManagerService; import com.bsd.pjcloud.hard.service.HardOrderTotalService; import com.bsd.pjcloud.wallet.api.feign.RemoteMchService; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; @@ -51,6 +52,7 @@ import java.util.Map; public class HardOrderTotalController { private final HardOrderTotalService hardOrderTotalService; + private final HardManagerService hardManagerService; private final RemoteMchService mchService; @@ -65,6 +67,21 @@ public class HardOrderTotalController { public R appMchTotal(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { PjcloudUser user = SecurityUtils.getUser(); dto.setIsFindCarList(false); + // 判断是否为合作超市管理员工 + if (!hardManagerService.isSuperMarketAdmin(user)) { + return R.ok(new Page()); + } + // 查询商户和下面的子商户 + List mchDtoIds = dto.getMchIds(); + if (ObjectUtil.isNotEmpty(mchDtoIds) && mchDtoIds.size() == 1) { + Long mchId = mchDtoIds.get(0); + List mchList = mchService.getByParentId(mchId).getData(); + if (ObjectUtil.isNotEmpty(mchList)) { + List mchIds = mchList.stream().map(MchManageVo::getId).toList(); + mchDtoIds.addAll(mchIds); + dto.setMchIds(mchDtoIds); + } + } return R.ok(hardOrderTotalService.listCsByDay(page, dto, user)); } /* ************************************* end app end ************************************* */ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardKsSkuController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardKsSkuController.java new file mode 100644 index 000000000..43f859bd3 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardKsSkuController.java @@ -0,0 +1,81 @@ +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.HardKsSkuEntity; +import com.bsd.pjcloud.hard.service.HardKsSkuService; +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; + +/** + * 商品 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hard-ks-sku") +@Tag(description = "hard-ks-sku", name = "商品管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardKsSkuController { + + private final HardKsSkuService hardKsSkuService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardKsSku_view')") + public R getHardKsSkuPage(@ParameterObject Page page, @ParameterObject HardKsSkuEntity hardKsSku) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardKsSkuService.page(page, wrapper)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardKsSku_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardKsSkuService.getById(id)); + } + + @Operation(summary = "新增商品", description = "新增商品") + @SysLog("新增商品") + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardKsSku_add')") + public R save(@RequestBody HardKsSkuEntity hardKsSku) { + return R.ok(hardKsSkuService.save(hardKsSku)); + } + + @Operation(summary = "修改商品", description = "修改商品") + @SysLog("修改商品") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardKsSku_edit')") + public R updateById(@RequestBody HardKsSkuEntity hardKsSku) { + return R.ok(hardKsSkuService.updateById(hardKsSku)); + } + + @Operation(summary = "通过id删除商品", description = "通过id删除商品") + @SysLog("通过id删除商品") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardKsSku_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardKsSkuService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardKsSku_export')") + public List export(HardKsSkuEntity hardKsSku, Long[] ids) { + return hardKsSkuService.list(Wrappers.lambdaQuery(hardKsSku).in(ArrayUtil.isNotEmpty(ids), HardKsSkuEntity::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/HardKsSkuJoinMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardKsSkuJoinMapper.java new file mode 100644 index 000000000..9b2c5404b --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardKsSkuJoinMapper.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.HardKsSkuJoinEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardKsSkuJoinMapper 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/HardKsSkuMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardKsSkuMapper.java new file mode 100644 index 000000000..03ed8434d --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/spu/HardKsSkuMapper.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.HardKsSkuEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardKsSkuMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardKsSkuJoinService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardKsSkuJoinService.java new file mode 100644 index 000000000..ca0b70521 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardKsSkuJoinService.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.HardKsSkuJoinEntity; + +public interface HardKsSkuJoinService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardKsSkuService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardKsSkuService.java new file mode 100644 index 000000000..047bebe7a --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardKsSkuService.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.HardKsSkuEntity; + +public interface HardKsSkuService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardManagerService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardManagerService.java index 2b63a7a3c..f9a3c13dc 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardManagerService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardManagerService.java @@ -34,4 +34,9 @@ public interface HardManagerService extends IService { * 判断当前用户有哪些商户的权限 */ List getCurrentUserMchInfo(PjcloudUser user, List mchIds); + + /** + * 判断当前用户是否为合作商家超市管理员 + */ + boolean isSuperMarketAdmin(PjcloudUser user); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardManagerServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardManagerServiceImpl.java index 70b993a36..1e6da38a7 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardManagerServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardManagerServiceImpl.java @@ -258,6 +258,16 @@ public class HardManagerServiceImpl extends ServiceImpl roleList = Arrays.asList(roles); + return roleList.contains(CommonRoleConstant.MCH_USER); + } + private boolean existUniqueCode(String uniqueCode, Long id) { Long count = baseMapper.selectCount(new LambdaQueryWrapper() .eq(ObjectUtil.isNotEmpty(uniqueCode), HardManagerEntity::getUniqueCode, uniqueCode) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardKsSkuJoinServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardKsSkuJoinServiceImpl.java new file mode 100644 index 000000000..9c575bdbf --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardKsSkuJoinServiceImpl.java @@ -0,0 +1,21 @@ +package com.bsd.pjcloud.hard.service.impl.spu; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.entity.spu.HardKsSkuJoinEntity; +import com.bsd.pjcloud.hard.mapper.spu.HardKsSkuJoinMapper; +import com.bsd.pjcloud.hard.service.HardKsSkuJoinService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +/** + * 旷世商品绑定 + */ +@Validated +@Slf4j +@RequiredArgsConstructor +@Service +public class HardKsSkuJoinServiceImpl extends ServiceImpl implements HardKsSkuJoinService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardKsSkuServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardKsSkuServiceImpl.java new file mode 100644 index 000000000..f74896018 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardKsSkuServiceImpl.java @@ -0,0 +1,21 @@ +package com.bsd.pjcloud.hard.service.impl.spu; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.entity.spu.HardKsSkuEntity; +import com.bsd.pjcloud.hard.mapper.spu.HardKsSkuMapper; +import com.bsd.pjcloud.hard.service.HardKsSkuService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +/** + * 商品 + */ +@Validated +@Slf4j +@RequiredArgsConstructor +@Service +public class HardKsSkuServiceImpl extends ServiceImpl implements HardKsSkuService { + +} \ 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 07c0f339a..091cfcfe6 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 @@ -11,7 +11,7 @@ import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.security.service.PjcloudUser; -import com.bsd.pjcloud.hard.api.constant.spu.SpuRepertoryTypeEnum; +import com.bsd.pjcloud.hard.api.constant.spu.HardSpuRepertoryTypeEnum; import com.bsd.pjcloud.hard.api.dto.manager.HardManagerDto; import com.bsd.pjcloud.hard.api.dto.spu.HardSpuRepertoryDto; import com.bsd.pjcloud.hard.api.entity.manager.HardManagerEntity; @@ -76,7 +76,7 @@ public class HardSpuRepertoryServiceImpl extends ServiceImpl + @@ -30,6 +31,7 @@ select a.id, a.hard_id, a.imei, + a.door_count, a.device_code, a.cabinet_num, a.cabinet_camera_num, diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardKsSkuJoinMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardKsSkuJoinMapper.xml new file mode 100644 index 000000000..1853b8218 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardKsSkuJoinMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardKsSkuMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardKsSkuMapper.xml new file mode 100644 index 000000000..5f151432d --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/spu/HardKsSkuMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file