diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index b44a8d788..ae2532990 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -290,6 +290,8 @@ CREATE TABLE hard_spu ks_status char(1) DEFAULT '0' COMMENT '旷世审核状态', ks_status_title varchar(64) NOT NULL COMMENT '旷世审核状态标题', ks_comments varchar(512) DEFAULT NULL COMMENT '旷世审核状态描述', + mch_id bigint DEFAULT NULL COMMENT '商户id', + mch_dept_id bigint 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 '修改人', @@ -308,6 +310,8 @@ 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 '排序', + mch_id bigint DEFAULT NULL COMMENT '商户id', + mch_dept_id bigint 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 '修改人', 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 index 0ccfd387b..38310d93f 100644 --- 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 @@ -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,64 +20,76 @@ import java.time.LocalDateTime; public class HardSpuCategoryEntity extends Model { - /** - * 编号 - */ + /** + * 编号 + */ @TableId(type = IdType.ASSIGN_ID) - @Schema(description="编号") + @Schema(description = "编号") private Long id; - /** - * 分类名 - */ - @Schema(description="分类名") + /** + * 分类名 + */ + @Schema(description = "分类名") private String name; - /** - * 排序 - */ - @Schema(description="排序") + /** + * 排序 + */ + @Schema(description = "排序") private Integer sort; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建人") + /** + * 商户id + */ + @Schema(description = "商户id") + private Long mchId; + + /** + * 商户部门id + */ + @Schema(description = "商户部门id") + private Long mchDeptId; + + /** + * 创建人 + */ + @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-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 35080d105..cf5ad4a85 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 @@ -99,6 +99,18 @@ public class HardSpuEntity extends Model { @Schema(description = "旷世审核状态描述") private String ksComments; + /** + * 商户id + */ + @Schema(description = "商户id") + private Long mchId; + + /** + * 商户部门id + */ + @Schema(description = "商户部门id") + private Long mchDeptId; + /** * 创建人 */ 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 index 7f0f7516c..00c953a46 100644 --- 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 @@ -1,9 +1,19 @@ package com.bsd.pjcloud.hard.api.vo.spu; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuCategoryEntity; +import com.bsd.pjcloud.wallet.api.vo.base.BaseMchInterface; import lombok.Data; @Data -public class HardSpuCategoryVo extends HardSpuCategoryEntity { +public class HardSpuCategoryVo extends HardSpuCategoryEntity implements BaseMchInterface { + + /** + * 商户相关 + */ + private Long merchantId; + + private String merchantName; + + private String logoPic; } 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 2d7c1c939..9aaa20505 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 @@ -1,14 +1,23 @@ package com.bsd.pjcloud.hard.api.vo.spu; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import com.bsd.pjcloud.wallet.api.vo.base.BaseMchInterface; import lombok.Data; @Data -public class HardSpuVo extends HardSpuEntity { - +public class HardSpuVo extends HardSpuEntity implements BaseMchInterface { /** * 分类相关 */ private String categoryName; + /** + * 商户相关 + */ + private Long merchantId; + + private String merchantName; + + private String logoPic; + } 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 index 26c97d19a..9158bd8e4 100644 --- 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 @@ -1,11 +1,26 @@ package com.bsd.pjcloud.hard.mapper.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.bsd.pjcloud.common.core.util.BeanUtils; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +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 org.apache.ibatis.annotations.Mapper; @Mapper public interface HardSpuCategoryMapper extends PjcloudBaseMapper { - + default Page scopPageJoin(Page page, HardSpuCategoryDto dto, DataScope dataScope) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .like(ObjectUtil.isNotEmpty(dto.getName()), HardSpuCategoryEntity::getName, dto.getName()) + .orderByDesc(HardSpuCategoryEntity::getSort) + .orderByDesc(HardSpuCategoryEntity::getCreateTime); + Page pageList = selectPageByScope(page, wrapper, dataScope); + pageList.setRecords(BeanUtils.toBean(pageList.getRecords(), HardSpuCategoryVo.class)); + return pageList; + } } \ 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 2ae177c51..4f9758457 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 @@ -4,18 +4,23 @@ 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.core.util.CollectionUtils; 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 com.bsd.pjcloud.wallet.api.feign.RemoteMchService; +import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; +import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.ArrayList; +import java.util.List; /** * 硬件商品分类 @@ -26,12 +31,16 @@ import java.util.ArrayList; @Service public class HardSpuCategoryServiceImpl extends ServiceImpl implements HardSpuCategoryService { + private final RemoteMchService remoteMchService; + /** * 分页查询 */ @Override public Page scopPageJoin(Page page, HardSpuCategoryDto dto, DataScope dataScope) { - return null; + Page pageList = baseMapper.scopPageJoin(page, dto, dataScope); + disposeList(pageList.getRecords(), dto); + return pageList; } /** @@ -72,6 +81,7 @@ public class HardSpuCategoryServiceImpl extends ServiceImpl() + .eq(ObjectUtil.isNotEmpty(dto.getMchId()), HardSpuCategoryEntity::getMchId, dto.getMchId()) .eq(ObjectUtil.isNotEmpty(dto.getName()), HardSpuCategoryEntity::getName, dto.getName()) .ne(ObjectUtil.isNotEmpty(dto.getId()), HardSpuCategoryEntity::getId, dto.getId()) ); @@ -80,4 +90,17 @@ public class HardSpuCategoryServiceImpl extends ServiceImpl 0; } + + private void disposeList(List list, HardSpuCategoryDto dto) { + if (ObjectUtil.isEmpty(list)) return; + // 商户 + List mchIds = list.stream().map(HardSpuCategoryVo::getMchId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(mchIds)) { + list.forEach(v -> v.setMerchantId(v.getMchId())); + List mchList = remoteMchService.getByIds(mchIds).getData(); + if (ObjectUtil.isNotEmpty(mchList)) { + WalletDataUtil.convertMchList(list, CollectionUtils.convertMap(mchList, MchManageVo::getId)); + } + } + } } \ 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 0ab6889e8..f109d4dac 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 @@ -4,18 +4,23 @@ 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.core.util.CollectionUtils; 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 com.bsd.pjcloud.wallet.api.feign.RemoteMchService; +import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; +import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.ArrayList; +import java.util.List; /** * 硬件商品 @@ -26,12 +31,16 @@ import java.util.ArrayList; @Service public class HardSpuServiceImpl extends ServiceImpl implements HardSpuService { + private final RemoteMchService remoteMchService; + /** * 分页查询 */ @Override public Page scopPageJoin(Page page, HardSpuDto dto, DataScope dataScope) { - return baseMapper.scopPageJoin(page, dto, dataScope); + Page pageList = baseMapper.scopPageJoin(page, dto, dataScope); + disposeList(pageList.getRecords(), dto); + return pageList; } /** @@ -42,6 +51,12 @@ public class HardSpuServiceImpl extends ServiceImpl 0; } + private void disposeList(List list, HardSpuDto dto) { + if (ObjectUtil.isEmpty(list)) return; + // 商户 + List mchIds = list.stream().map(HardSpuVo::getMchId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(mchIds)) { + list.forEach(v -> v.setMerchantId(v.getMchId())); + List mchList = remoteMchService.getByIds(mchIds).getData(); + if (ObjectUtil.isNotEmpty(mchList)) { + WalletDataUtil.convertMchList(list, CollectionUtils.convertMap(mchList, MchManageVo::getId)); + } + } + } + } \ 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 74f2e8901..639d8ea60 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 @@ -16,6 +16,8 @@ + + @@ -38,6 +40,8 @@ a.ks_status, a.ks_status_title, a.ks_comments, + a.mch_id, + a.mch_dept_id, a.create_by, a.create_time, a.update_by, @@ -48,7 +52,7 @@ a.del_flag = '0' - + and a.name like concat('%', #{dto.name}, '%')