feat():商品品牌树形切换

master
崔福波 2024-11-19 22:10:29 +08:00
parent d1860dcb54
commit cb4f6a7f32
43 changed files with 497 additions and 895 deletions

View File

@ -5,11 +5,11 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-group-buy</artifactId> <artifactId>muyu-activity</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
</parent> </parent>
<artifactId>muyu-group-buy-common</artifactId> <artifactId>muyu-activity-common</artifactId>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
@ -18,7 +18,6 @@
</properties> </properties>
<dependencies> <dependencies>
<!-- 系统公共核心包 -->
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-common-core</artifactId> <artifactId>muyu-common-core</artifactId>

View File

@ -0,0 +1,129 @@
package com.muyu.domain;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.muyu.domain.resp.ActivityTeamInfoResp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.w3c.dom.Text;
import java.util.Date;
/**
* @Authorcuifubo
* @Packagecom.muyu.domain
* @Projectcloud-server
* @nameActivityTeaminfo
* @Date2024.11.19 09:25
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActivityTeamInfo extends Wrapper<ActivityTeamInfo> {
/**
*
*/
private Integer id;
/**
*
*/
private String name;
/**
* ID
*/
private Integer productId;
/**
*
*/
private String productImage;
/**
*
*/
private Text introduction;
/**
*
*/
private String unit;
/**
*
*/
private Text imageList;
/**
*
*/
private Date endTime;
/**
*
*/
private String sort;
/**
*
*/
private Text content;
/**
*
*/
private String status;
/**
*
*/
private String strategyType;
/**
* ID
*/
private Integer strategyId;
/**
*
*/
private String remark;
/**
*
*/
private String createBy;
/**
*
*/
private Date createTime;
/**
*
*/
private String updateBy;
/**
*
*/
private Date updateTime;
/**
*
*/
public static ActivityTeamInfo queryBuild(ActivityTeamInfoResp activityTeamInfoResp){
return ActivityTeamInfo.builder()
.name(activityTeamInfoResp.getName())
.status(activityTeamInfoResp.getStatus())
.build();
}
@Override
public ActivityTeamInfo getEntity() {
return null;
}
@Override
public MergeSegments getExpression() {
return null;
}
@Override
public void clear() {
}
@Override
public String getSqlSegment() {
return null;
}
}

View File

@ -0,0 +1,43 @@
package com.muyu.domain.resp;
import com.muyu.domain.ActivityTeamInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Authorcuifubo
* @Packagecom.muyu.domain.resp
* @Projectcloud-server
* @nameActivityTeamInfoResp
* @Date2024.11.19 10:00
*/
/**
* activity_team_info
*
* @author DongZeLiang
* @date 2024-11-19
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ActivityTeamInfoQueryReq", description = "商品拼团信息表")
public class ActivityTeamInfoResp extends ActivityTeamInfo {
private static final long serialVersionUID = 1L;
/**
*
*/
private String name;
/**
*
*/
private String status;
}

View File

@ -5,11 +5,11 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-group-buy</artifactId> <artifactId>muyu-activity</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
</parent> </parent>
<artifactId>muyu-group-buy-remote</artifactId> <artifactId>muyu-activity-remote</artifactId>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
@ -18,10 +18,11 @@
</properties> </properties>
<dependencies> <dependencies>
<!-- 商品模块 common 依赖 -->
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-product-common</artifactId> <artifactId>muyu-activity-common</artifactId>
<version>3.6.3</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -5,27 +5,18 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-group-buy</artifactId> <artifactId>muyu-activity</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
</parent> </parent>
<artifactId>muyu-group-buy-server</artifactId> <artifactId>muyu-activity-server</artifactId>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target> <maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies> <dependencies>
<!-- 商品模块 common 依赖 -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-group-buy-common</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos --> <!-- SpringCloud Alibaba Nacos -->
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
@ -57,24 +48,24 @@
<version>${swagger.fox.version}</version> <version>${swagger.fox.version}</version>
</dependency> </dependency>
<!-- Quartz -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<exclusions>
<exclusion>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Mysql Connector --> <!-- Mysql Connector -->
<dependency> <dependency>
<groupId>com.mysql</groupId> <groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId> <artifactId>mysql-connector-j</artifactId>
</dependency> </dependency>
<!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log --> <!-- MuYu Common Log -->
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
@ -88,13 +79,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-group-buy-common</artifactId> <artifactId>muyu-activity-common</artifactId>
<version>3.6.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-group-buy-common</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>

View File

@ -0,0 +1,60 @@
package com.muyu.controller;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.domain.ActivityTeamInfo;
import com.muyu.domain.resp.ActivityTeamInfoResp;
import com.muyu.service.ActivityService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.naming.ldap.PagedResultsControl;
import java.util.List;
import static com.muyu.common.core.utils.PageUtils.startPage;
/**
* @Authorcuifubo
* @Packagecom.muyu.controller
* @Projectcloud-server
* @nameActivityController
* @Date2024.11.19 09:58
*/
@RestController
@RequestMapping("/activity")
public class ActivityController {
@Autowired
private ActivityService activityService;
/**
*
*/
@ApiOperation("获取商品拼团信息表列表")
@RequiresPermissions("activity:activity:list")
@GetMapping("/list")
public Result<TableDataInfo<ActivityTeamInfo>> list(ActivityTeamInfoResp activityTeamInfoResp) {
startPage();
List<ActivityTeamInfo> list = activityService.list(ActivityTeamInfo.queryBuild(activityTeamInfoResp));
return getDataTable(list);
}
private Result<TableDataInfo<ActivityTeamInfo>> getDataTable(List<ActivityTeamInfo> list) {
return null;
}
}

View File

@ -0,0 +1,17 @@
package com.muyu.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.ActivityTeamInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authorcuifubo
* @Packagecom.muyu.mapper
* @Projectcloud-server
* @nameActivity
* @Date2024.11.19 09:34
*/
@Mapper
public interface ActivityMapper extends BaseMapper<ActivityTeamInfo> {
}

View File

@ -0,0 +1,19 @@
package com.muyu.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.domain.ActivityTeamInfo;
import com.muyu.domain.resp.ActivityTeamInfoResp;
import java.util.List;
/**
* @Authorcuifubo
* @Packagecom.muyu.service
* @Projectcloud-server
* @nameActivityService
* @Date2024.11.19 09:38
*/
public interface ActivityService extends IService<ActivityTeamInfo> {
}

View File

@ -0,0 +1,19 @@
package com.muyu.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.domain.ActivityTeamInfo;
import com.muyu.mapper.ActivityMapper;
import com.muyu.service.ActivityService;
import org.springframework.beans.factory.annotation.Autowired;
/**
*@Authorcuifubo
*@Packagecom.muyu.service.impl
*@Projectcloud-server
*@nameActivityServiceImpl
*@Date2024.11.19 09:44
*/
public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, ActivityTeamInfo> implements ActivityService {
}

View File

@ -1,12 +1,12 @@
# Tomcat # Tomcat
server: server:
port: 9308 port: 9209
# Spring # Spring
spring: spring:
application: application:
# 应用名称 # 应用名称
name: muyu-group-buy name: muyu-activity
profiles: profiles:
# 环境配置 # 环境配置
active: dev active: dev
@ -23,6 +23,3 @@ spring:
# 共享配置 # 共享配置
shared-configs: shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
logging:
level:
com.muyu.product.mapper: DEBUG

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"> <configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 --> <!-- 日志存放路径 -->
<property name="log.path" value="logs/muyu-product"/> <property name="log.path" value="logs/muyu-job"/>
<!-- 日志输出格式 --> <!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.muyu.mapper.ActivityMapper">
<resultMap type="com.muyu.domain.ActivityTeamInfo" id="ActivityTeamInfoResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="productId" column="product_id" />
<result property="productImage" column="product_image" />
<result property="introduction" column="introduction" />
<result property="unit" column="unit" />
<result property="imageList" column="image_list" />
<result property="endTime" column="end_time" />
<result property="sort" column="sort" />
<result property="content" column="content" />
<result property="status" column="status" />
<result property="strategyType" column="strategy_type" />
<result property="strategyId" column="strategy_id" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectActivityTeamInfoVo">
select id, name, product_id, product_image, introduction, unit, image_list, end_time, sort, content, status, strategy_type, strategy_id, remark, create_by, create_time, update_by, update_time from activity_team_info
</sql>
</mapper>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-modules</artifactId>
<version>3.6.3</version>
</parent>
<packaging>pom</packaging>
<modules>
<module>muyu-activity-common</module>
<module>muyu-activity-remote</module>
<module>muyu-activity-server</module>
</modules>
<modelVersion>4.0.0</modelVersion>
<artifactId>muyu-activity</artifactId>
<description>
muyu-activity 商品拼团信息任务
</description>
</project>

View File

@ -1,109 +0,0 @@
package com.muyu.product.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.annotation.Excel;
import com.muyu.product.domain.req.GroupBuyQueryReq;
import com.muyu.product.domain.req.GroupBuySaveReq;
import com.muyu.product.domain.req.GroupBuyEditReq;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* group_buy
*
* @author DongZeLiang
* @date 2024-11-14
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("group_buy")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "GroupBuy", description = "拼团")
public class GroupBuy extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 外键,关联商品 */
@Excel(name = "外键,关联商品")
@ApiModelProperty(name = "外键,关联商品", value = "外键,关联商品")
private Long projectId;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty(name = "开始时间", value = "开始时间")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty(name = "结束时间", value = "结束时间")
private Date endTime;
/** 最小成团人数 */
@Excel(name = "最小成团人数")
@ApiModelProperty(name = "最小成团人数", value = "最小成团人数")
private String minMembers;
/** 活动状态 */
@Excel(name = "活动状态")
@ApiModelProperty(name = "活动状态", value = "活动状态")
private String status;
/**
*
*/
public static GroupBuy queryBuild( GroupBuyQueryReq groupBuyQueryReq){
return GroupBuy.builder()
.projectId(groupBuyQueryReq.getProjectId())
.startTime(groupBuyQueryReq.getStartTime())
.endTime(groupBuyQueryReq.getEndTime())
.minMembers(groupBuyQueryReq.getMinMembers())
.status(groupBuyQueryReq.getStatus())
.build();
}
/**
*
*/
public static GroupBuy saveBuild(GroupBuySaveReq groupBuySaveReq){
return GroupBuy.builder()
.projectId(groupBuySaveReq.getProjectId())
.startTime(groupBuySaveReq.getStartTime())
.endTime(groupBuySaveReq.getEndTime())
.minMembers(groupBuySaveReq.getMinMembers())
.status(groupBuySaveReq.getStatus())
.build();
}
/**
*
*/
public static GroupBuy editBuild(Long id, GroupBuyEditReq groupBuyEditReq){
return GroupBuy.builder()
.id(id)
.projectId(groupBuyEditReq.getProjectId())
.startTime(groupBuyEditReq.getStartTime())
.endTime(groupBuyEditReq.getEndTime())
.minMembers(groupBuyEditReq.getMinMembers())
.status(groupBuyEditReq.getStatus())
.build();
}
}

View File

@ -1,50 +0,0 @@
package com.muyu.product.domain.req;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* group_buy
*
* @author DongZeLiang
* @date 2024-11-14
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "GroupBuyEditReq", description = "拼团")
public class GroupBuyEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 外键,关联商品 */
@ApiModelProperty(name = "外键,关联商品", value = "外键,关联商品")
private Long projectId;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "开始时间", value = "开始时间")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "结束时间", value = "结束时间")
private Date endTime;
/** 最小成团人数 */
@ApiModelProperty(name = "最小成团人数", value = "最小成团人数")
private String minMembers;
/** 活动状态 */
@ApiModelProperty(name = "活动状态", value = "活动状态")
private String status;
}

View File

@ -1,50 +0,0 @@
package com.muyu.product.domain.req;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* group_buy
*
* @author DongZeLiang
* @date 2024-11-14
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "GroupBuyQueryReq", description = "拼团")
public class GroupBuyQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 外键,关联商品 */
@ApiModelProperty(name = "外键,关联商品", value = "外键,关联商品")
private Long projectId;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "开始时间", value = "开始时间")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "结束时间", value = "结束时间")
private Date endTime;
/** 最小成团人数 */
@ApiModelProperty(name = "最小成团人数", value = "最小成团人数")
private String minMembers;
/** 活动状态 */
@ApiModelProperty(name = "活动状态", value = "活动状态")
private String status;
}

View File

@ -1,60 +0,0 @@
package com.muyu.product.domain.req;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* group_buy
*
* @author DongZeLiang
* @date 2024-11-14
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "GroupBuySaveReq", description = "拼团")
public class GroupBuySaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 外键,关联商品 */
@ApiModelProperty(name = "外键,关联商品", value = "外键,关联商品")
private Long projectId;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "开始时间", value = "开始时间")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "结束时间", value = "结束时间")
private Date endTime;
/** 最小成团人数 */
@ApiModelProperty(name = "最小成团人数", value = "最小成团人数")
private String minMembers;
/** 活动状态 */
@ApiModelProperty(name = "活动状态", value = "活动状态")
private String status;
}

View File

@ -1,29 +0,0 @@
package com.muyu.product.remote;
import com.muyu.common.core.constant.ServiceNameConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectInfo;
import com.muyu.product.remote.factory.RemoteProjectInfoFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
/**
* @author DongZl
* @description:
* @Date 2024-4-7 10:58
*/
@FeignClient(
contextId = "remoteProjectInfoService",
value = ServiceNameConstants.PRODUCT_SERVICE,
fallbackFactory = RemoteProjectInfoFactory.class,
path = "/info"
)
public interface RemoteProjectInfoService {
/**
*
*/
@GetMapping(value = "/{id}")
public Result<ProjectInfo> getInfo(@PathVariable("id") Long id) ;
}

View File

@ -1,42 +0,0 @@
package com.muyu.product.remote;
import com.muyu.common.core.constant.ServiceNameConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.remote.factory.RemoteProjectSkuFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
/**
* @author DongZl
* @description:
* @Date 2024-4-7 10:58
*/
@FeignClient(
contextId = "remoteProjectSkuService",
value = ServiceNameConstants.PRODUCT_SERVICE,
fallbackFactory = RemoteProjectSkuFactory.class,
path = "/sku"
)
public interface RemoteProjectSkuService {
/**
* IDSKUSKU
* @param projectId ID
* @param projectSku SKU
* @return SKU
*/
@GetMapping("/info/{projectId}/{projectSku}")
public Result<ProjectSkuInfo> getInfoByProjectIdAndSku(@PathVariable("projectId") Long projectId,
@PathVariable("projectSku") String projectSku);
/**
* IDSKUSKU
* @param projectId ID
* @return SKU
*/
@GetMapping("/list/{projectId}")
public Result<List<ProjectSkuInfo>> listByProjectId(@PathVariable("projectId") Long projectId);
}

View File

@ -1,34 +0,0 @@
package com.muyu.product.remote;
import com.muyu.common.core.constant.ServiceNameConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.domain.RuleAttrInfo;
import com.muyu.product.remote.factory.RemoteProjectSkuFactory;
import com.muyu.product.remote.factory.RemoteRuleAttrFactory;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
/**
* @author DongZl
* @description:
* @Date 2024-4-7 10:58
*/
@FeignClient(
contextId = "remoteRuleAttrService",
value = ServiceNameConstants.PRODUCT_SERVICE,
fallbackFactory = RemoteRuleAttrFactory.class,
path = "/ruleAttr"
)
public interface RemoteRuleAttrService {
/**
*
*/
@GetMapping(value = "/list/ruleId/{ruleId}")
public Result<List<RuleAttrInfo>> getInfoByRuleId(@PathVariable("ruleId") Long id);
}

View File

@ -1,32 +0,0 @@
package com.muyu.product.remote;
import com.muyu.common.core.constant.ServiceNameConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.domain.RuleInfo;
import com.muyu.product.remote.factory.RemoteProjectSkuFactory;
import com.muyu.product.remote.factory.RemoteRuleFactory;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
/**
* @author DongZl
* @description:
* @Date 2024-4-7 10:58
*/
@FeignClient(
contextId = "remoteRuleService",
value = ServiceNameConstants.PRODUCT_SERVICE,
fallbackFactory = RemoteRuleFactory.class,
path = "/rule"
)
public interface RemoteRuleService {
/**
*
*/
@GetMapping(value = "/{id}")
public Result<RuleInfo> getInfo(@PathVariable("id") Long id);
}

View File

@ -1,31 +0,0 @@
package com.muyu.product.remote.factory;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectInfo;
import com.muyu.product.domain.RuleInfo;
import com.muyu.product.remote.RemoteProjectInfoService;
import com.muyu.product.remote.RemoteRuleService;
import org.springframework.cloud.openfeign.FallbackFactory;
/**
* @author DongZl
* @description:
* @Date 2024-4-7 10:59
*/
public class RemoteProjectInfoFactory implements FallbackFactory<RemoteProjectInfoService> {
@Override
public RemoteProjectInfoService create (Throwable cause) {
return new RemoteProjectInfoService() {
/**
*
*
* @param id
*/
@Override
public Result<ProjectInfo> getInfo (Long id) {
return Result.error(cause.getMessage());
}
};
}
}

View File

@ -1,37 +0,0 @@
package com.muyu.product.remote.factory;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.remote.RemoteProjectSkuService;
import org.springframework.cloud.openfeign.FallbackFactory;
import java.util.List;
/**
* @author DongZl
* @description:
* @Date 2024-4-7 10:59
*/
public class RemoteProjectSkuFactory implements FallbackFactory<RemoteProjectSkuService> {
@Override
public RemoteProjectSkuService create (Throwable cause) {
return new RemoteProjectSkuService() {
@Override
public Result<ProjectSkuInfo> getInfoByProjectIdAndSku (Long projectId, String projectSku) {
return Result.error(cause.getMessage());
}
/**
* IDSKUSKU
*
* @param projectId ID
*
* @return SKU
*/
@Override
public Result<List<ProjectSkuInfo>> listByProjectId (Long projectId) {
return Result.error(cause.getMessage());
}
};
}
}

View File

@ -1,34 +0,0 @@
package com.muyu.product.remote.factory;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.domain.RuleAttrInfo;
import com.muyu.product.remote.RemoteProjectSkuService;
import com.muyu.product.remote.RemoteRuleAttrService;
import com.muyu.product.remote.RemoteRuleService;
import org.springframework.cloud.openfeign.FallbackFactory;
import java.util.List;
/**
* @author DongZl
* @description:
* @Date 2024-4-7 10:59
*/
public class RemoteRuleAttrFactory implements FallbackFactory<RemoteRuleAttrService> {
@Override
public RemoteRuleAttrService create (Throwable cause) {
return new RemoteRuleAttrService() {
/**
*
*
* @param id
*/
@Override
public Result<List<RuleAttrInfo>> getInfoByRuleId (Long id) {
return Result.error(cause.getMessage());
}
};
}
}

View File

@ -1,31 +0,0 @@
package com.muyu.product.remote.factory;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.ProjectSkuInfo;
import com.muyu.product.domain.RuleInfo;
import com.muyu.product.remote.RemoteProjectSkuService;
import com.muyu.product.remote.RemoteRuleService;
import org.springframework.cloud.openfeign.FallbackFactory;
/**
* @author DongZl
* @description:
* @Date 2024-4-7 10:59
*/
public class RemoteRuleFactory implements FallbackFactory<RemoteRuleService> {
@Override
public RemoteRuleService create (Throwable cause) {
return new RemoteRuleService() {
/**
*
*
* @param id
*/
@Override
public Result<RuleInfo> getInfo (Long id) {
return Result.error(cause.getMessage());
}
};
}
}

View File

@ -1,4 +0,0 @@
com.muyu.product.remote.factory.RemoteProjectSkuFactory
com.muyu.product.remote.factory.RemoteRuleAttrFactory
com.muyu.product.remote.factory.RemoteRuleFactory
com.muyu.product.remote.factory.RemoteProjectInfoFactory

View File

@ -1,23 +0,0 @@
package com.muyu.product;
import com.muyu.common.security.annotation.EnableCustomConfig;
import com.muyu.common.security.annotation.EnableMyFeignClients;
import com.muyu.common.swagger.annotation.EnableCustomSwagger2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author DongZl
* @description:
* @Date 2024-2-26 04:07
*/
@EnableCustomConfig
@EnableCustomSwagger2
@EnableMyFeignClients
@SpringBootApplication
public class MuYuGroupBuyApplication {
public static void main (String[] args) {
SpringApplication.run(MuYuGroupBuyApplication.class, args);
}
}

View File

@ -1,111 +0,0 @@
package com.muyu.product.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.poi.ExcelUtil;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.product.domain.GroupBuy;
import com.muyu.product.domain.req.GroupBuyQueryReq;
import com.muyu.product.domain.req.GroupBuySaveReq;
import com.muyu.product.domain.req.GroupBuyEditReq;
import com.muyu.product.service.GroupBuyService;
import com.muyu.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author DongZeLiang
* @date 2024-11-14
*/
@Api(tags = "拼团")
@RestController
@RequestMapping("/buy")
public class GroupBuyController extends BaseController {
@Autowired
private GroupBuyService groupBuyService;
/**
*
*/
@ApiOperation("获取拼团列表")
@RequiresPermissions("product:buy:list")
@GetMapping("/list")
public Result<TableDataInfo<GroupBuy>> list(GroupBuyQueryReq groupBuyQueryReq) {
startPage();
List<GroupBuy> list = groupBuyService.list(GroupBuy.queryBuild(groupBuyQueryReq));
return getDataTable(list);
}
/**
*
*/
@ApiOperation("导出拼团列表")
@RequiresPermissions("product:buy:export")
@Log(title = "拼团", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, GroupBuy groupBuy) {
List<GroupBuy> list = groupBuyService.list(groupBuy);
ExcelUtil<GroupBuy> util = new ExcelUtil<GroupBuy>(GroupBuy.class);
util.exportExcel(response, list, "拼团数据");
}
/**
*
*/
@ApiOperation("获取拼团详细信息")
@RequiresPermissions("product:buy:query")
@GetMapping(value = "/{id}")
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
public Result<GroupBuy> getInfo(@PathVariable("id") Long id) {
return Result.success(groupBuyService.getById(id));
}
/**
*
*/
@RequiresPermissions("product:buy:add")
@Log(title = "拼团", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("新增拼团")
public Result<String> add(@RequestBody GroupBuySaveReq groupBuySaveReq) {
return toAjax(groupBuyService.save(GroupBuy.saveBuild(groupBuySaveReq)));
}
/**
*
*/
@RequiresPermissions("product:buy:edit")
@Log(title = "拼团", businessType = BusinessType.UPDATE)
@PutMapping("/{id}")
@ApiOperation("修改拼团")
public Result<String> edit(@PathVariable Long id, @RequestBody GroupBuyEditReq groupBuyEditReq) {
return toAjax(groupBuyService.updateById(GroupBuy.editBuild(id,groupBuyEditReq)));
}
/**
*
*/
@RequiresPermissions("product:buy:remove")
@Log(title = "拼团", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
@ApiOperation("删除拼团")
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4")
public Result<String> remove(@PathVariable List<Long> ids) {
return toAjax(groupBuyService.removeBatchByIds(ids));
}
}

View File

@ -1,15 +0,0 @@
package com.muyu.product.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.product.domain.GroupBuy;
/**
* Mapper
*
* @author DongZeLiang
* @date 2024-11-14
*/
public interface GroupBuyMapper extends BaseMapper<GroupBuy> {
}

View File

@ -1,22 +0,0 @@
package com.muyu.product.service;
import java.util.List;
import com.muyu.product.domain.GroupBuy;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* Service
*
* @author DongZeLiang
* @date 2024-11-14
*/
public interface GroupBuyService extends IService<GroupBuy> {
/**
*
*
* @param groupBuy
* @return
*/
public List<GroupBuy> list(GroupBuy groupBuy);
}

View File

@ -1,56 +0,0 @@
package com.muyu.product.service.impl;
import java.util.List;
import com.muyu.common.core.utils.ObjUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.muyu.product.mapper.GroupBuyMapper;
import com.muyu.product.domain.GroupBuy;
import com.muyu.product.service.GroupBuyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
/**
* Service
*
* @author DongZeLiang
* @date 2024-11-14
*/
@Slf4j
@Service
public class GroupBuyServiceImpl extends ServiceImpl<GroupBuyMapper, GroupBuy> implements GroupBuyService {
/**
*
*
* @param groupBuy
* @return
*/
@Override
public List<GroupBuy> list(GroupBuy groupBuy) {
LambdaQueryWrapper<GroupBuy> queryWrapper = new LambdaQueryWrapper<>();
if (ObjUtils.notNull(groupBuy.getProjectId())){
queryWrapper.eq(GroupBuy::getProjectId, groupBuy.getProjectId());
}
if (ObjUtils.notNull(groupBuy.getStartTime())){
queryWrapper.eq(GroupBuy::getStartTime, groupBuy.getStartTime());
}
if (ObjUtils.notNull(groupBuy.getEndTime())){
queryWrapper.eq(GroupBuy::getEndTime, groupBuy.getEndTime());
}
if (ObjUtils.notNull(groupBuy.getMinMembers())){
queryWrapper.eq(GroupBuy::getMinMembers, groupBuy.getMinMembers());
}
if (ObjUtils.notNull(groupBuy.getStatus())){
queryWrapper.eq(GroupBuy::getStatus, groupBuy.getStatus());
}
return list(queryWrapper);
}
}

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.product.mapper.GroupBuyMapper">
<resultMap type="com.muyu.product.domain.GroupBuy" id="GroupBuyResult">
<result property="id" column="id" />
<result property="projectId" column="project_id" />
<result property="startTime" column="start_time" />
<result property="endTime" column="end_time" />
<result property="minMembers" column="min_members" />
<result property="status" column="status" />
</resultMap>
<sql id="selectGroupBuyVo">
select id, project_id, start_time, end_time, min_members, status from group_buy
</sql>
</mapper>

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.muyu</groupId>
<artifactId>muyu-modules</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-group-buy</artifactId>
<packaging>pom</packaging>
<modules>
<module>muyu-group-buy-common</module>
<module>muyu-group-buy-remote</module>
<module>muyu-group-buy-server</module>
</modules>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>

View File

@ -1,26 +0,0 @@
{ 基本信息: {
name: "",
introduction: "",
mianType: "",
parentType: "",
type: "",
image: "",
carouselImages: "",
status: "",
ruleId: "",
branId: "",
remark: ""
},
品类属性: [ {
id: "",
value: "",
} …………
],
商品规格: [ {
SKU: "",(所有的规格属性拼接而成)
"images": "",
库存: "",
价格: "",
} …………
]
}

View File

@ -30,6 +30,7 @@ public class CategoryInfoSaveModel extends TreeEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Long id;
/** 品类名称 */ /** 品类名称 */
private String name; private String name;

View File

@ -24,6 +24,7 @@ import java.util.List;
public class CategoryInfoEditReq extends TreeEntity { public class CategoryInfoEditReq extends TreeEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Long id;
/** 品类名称 */ /** 品类名称 */
@ApiModelProperty(name = "品类名称", value = "品类名称", required = true) @ApiModelProperty(name = "品类名称", value = "品类名称", required = true)
@ -43,11 +44,11 @@ public class CategoryInfoEditReq extends TreeEntity {
/** /**
* ID * ID
*/ */
private List<Long> attributeGroupIdList; private List<Long> attributeIdList;
/** /**
* ID * ID
*/ */
private List<Long> attributeIdList; private List<Long> attributeGroupIdList;
/** /**
* ID * ID

View File

@ -0,0 +1,62 @@
package com.muyu.product.domain.req;
import com.muyu.product.domain.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Authorcuifubo
* @Packagecom.muyu.product.domain.req
* @Projectcloud-server
* @nameCategoryInfoReq
* @Date2024.11.17 21:37
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CategoryInfoReq {
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 品类名称 */
@ApiModelProperty(name = "品类名称", value = "品类名称", required = true)
private String name;
/** 图片 */
@ApiModelProperty(name = "图片", value = "图片", required = true)
private String image;
/** 是否启用 */
@ApiModelProperty(name = "是否启用", value = "是否启用", required = true)
private String start;
/** 介绍 */
@ApiModelProperty(name = "介绍", value = "介绍")
private String introduction;
/**
* ID
*/
private List<AsCategoryAttributeGroup> attributeGroupIdList;
/**
* ID
*/
private List<AsCategoryAttribute> attributeInfoIdList;
/**
* ID
*/
private List<AsCategoryBrand> brandInfoIdList;
}

View File

@ -10,6 +10,7 @@ import com.muyu.product.domain.AttributeGroup;
import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.AttributeInfo;
import com.muyu.product.domain.BrandInfo; import com.muyu.product.domain.BrandInfo;
import com.muyu.product.domain.model.CategoryInfoSaveModel; import com.muyu.product.domain.model.CategoryInfoSaveModel;
import com.muyu.product.domain.req.CategoryInfoReq;
import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryCommonElementResp;
import com.muyu.product.domain.resp.CategoryParentCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp;
import io.swagger.annotations.*; import io.swagger.annotations.*;
@ -101,6 +102,17 @@ public class CategoryInfoController extends BaseController {
return Result.success(categoryInfoService.getTemplateAttributeByCateGoryId(cateGoryId)); return Result.success(categoryInfoService.getTemplateAttributeByCateGoryId(cateGoryId));
} }
/**
*
*/
@ApiOperation("获取品类信息共有属性信息")
@RequiresPermissions("product:category:query")
@GetMapping(value = "/getTemplateAttributeId/{id}")
@ApiImplicitParam(name = "cateGoryId", value = "cateGoryId", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
public Result<CategoryInfoReq> getTemplateAttributeByCateGory(@PathVariable("id") Long id) {
CategoryInfoReq updById = categoryInfoService.getUpdIdById(id);
return Result.success(updById);
}
/** /**
* *
*/ */

View File

@ -2,7 +2,7 @@ package com.muyu.product.service;
import java.util.List; import java.util.List;
import com.muyu.common.core.domain.Result;
import com.muyu.product.domain.AttributeGroup; import com.muyu.product.domain.AttributeGroup;
import com.muyu.product.domain.AttributeInfo; import com.muyu.product.domain.AttributeInfo;
import com.muyu.product.domain.BrandInfo; import com.muyu.product.domain.BrandInfo;
@ -10,6 +10,7 @@ import com.muyu.product.domain.CategoryInfo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.product.domain.model.CategoryInfoSaveModel; import com.muyu.product.domain.model.CategoryInfoSaveModel;
import com.muyu.product.domain.req.CategoryInfoEditReq; import com.muyu.product.domain.req.CategoryInfoEditReq;
import com.muyu.product.domain.req.CategoryInfoReq;
import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryCommonElementResp;
import com.muyu.product.domain.resp.CategoryParentCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp;
@ -76,4 +77,7 @@ public interface CategoryInfoService extends IService<CategoryInfo> {
int removeBatchById(Long id); int removeBatchById(Long id);
CategoryInfoReq getUpdIdById(Long cateGoryId);
} }

View File

@ -13,6 +13,7 @@ import com.muyu.product.domain.model.CategoryInfoSaveModel;
import com.muyu.product.domain.model.TemplateAttributeGroupModel; import com.muyu.product.domain.model.TemplateAttributeGroupModel;
import com.muyu.product.domain.model.TemplateAttributeModel; import com.muyu.product.domain.model.TemplateAttributeModel;
import com.muyu.product.domain.req.CategoryInfoEditReq; import com.muyu.product.domain.req.CategoryInfoEditReq;
import com.muyu.product.domain.req.CategoryInfoReq;
import com.muyu.product.domain.resp.CategoryCommonElementResp; import com.muyu.product.domain.resp.CategoryCommonElementResp;
import com.muyu.product.domain.resp.CategoryParentCommonElementResp; import com.muyu.product.domain.resp.CategoryParentCommonElementResp;
import com.muyu.product.mapper.CategoryInfoMapper; import com.muyu.product.mapper.CategoryInfoMapper;
@ -291,12 +292,12 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
.toList() .toList()
); );
asCategoryAttributeGroupService.saveBatch( asCategoryAttributeGroupService.saveBatch(
categoryInfoEditReq.getAttributeIdList().stream() categoryInfoEditReq.getBrandIdList().stream()
.map(categoryGoryAttributeGroupId -> AsCategoryAttributeGroup.categoryBuild(categoryGoryAttributeGroupId,id)) .map(categoryGoryAttributeGroupId -> AsCategoryAttributeGroup.categoryBuild(categoryGoryAttributeGroupId,id))
.toList() .toList()
); );
asCategoryBrandService.saveBatch( asCategoryBrandService.saveBatch(
categoryInfoEditReq.getAttributeIdList().stream() categoryInfoEditReq.getBrandIdList().stream()
.map(categoryBrandId -> AsCategoryBrand.categoryBuild(categoryBrandId,id)) .map(categoryBrandId -> AsCategoryBrand.categoryBuild(categoryBrandId,id))
.toList() .toList()
); );
@ -324,6 +325,49 @@ public class CategoryInfoServiceImpl extends ServiceImpl<CategoryInfoMapper, Cat
return i; return i;
} }
@Override
public CategoryInfoReq getUpdIdById(Long id) {
CategoryInfo byId = this.getById(id);
LambdaQueryWrapper<AsCategoryAttributeGroup> GroupQueryWrapper = new LambdaQueryWrapper<>();
GroupQueryWrapper.eq(AsCategoryAttributeGroup::getCategoryId,id);
List<AsCategoryAttributeGroup> groupList = asCategoryAttributeGroupService.list(GroupQueryWrapper);
List<Long> cateGroupId = groupList.stream()
.map(AsCategoryAttributeGroup::getAttributeGroupId)
.toList();
List<AsCategoryAttributeGroup> attributeGroupList = asCategoryAttributeGroupService.listByIds(cateGroupId);
LambdaQueryWrapper<AsCategoryAttribute> BrandQueryWrapper = new LambdaQueryWrapper<>();
BrandQueryWrapper.eq(AsCategoryAttribute::getCategoryId,id);
List<AsCategoryAttribute> grandList = asCategoryAttributeService.list(BrandQueryWrapper);
List<Long> attributeId = grandList.stream()
.map(AsCategoryAttribute::getAttributeId)
.toList();
List<AsCategoryAttribute> attributeInfoList = asCategoryAttributeService.listByIds(attributeId);
LambdaQueryWrapper<AsCategoryBrand> brandQueryWrapper = new LambdaQueryWrapper<>();
brandQueryWrapper.eq(AsCategoryBrand::getCategoryId,id);
List<AsCategoryBrand> brandList = asCategoryBrandService.list(brandQueryWrapper);
List<Long> BrandId = brandList.stream()
.map(AsCategoryBrand::getBrandId)
.toList();
List<AsCategoryBrand> brandInfoList = asCategoryBrandService.listByIds(BrandId);
return CategoryInfoReq.builder()
.id(byId.getId())
.name(byId.getName())
.start(byId.getStart())
.image(byId.getImage())
.introduction(byId.getIntroduction())
.attributeGroupIdList(attributeGroupList)
.attributeInfoIdList(attributeInfoList)
.brandInfoIdList(brandInfoList)
.build();
}
/** /**
* ID * ID

View File

@ -1,7 +1,6 @@
package com.muyu.product.service.impl; package com.muyu.product.service.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import com.muyu.common.core.utils.ObjUtils; import com.muyu.common.core.utils.ObjUtils;

View File

@ -12,11 +12,10 @@
<module>muyu-system</module> <module>muyu-system</module>
<module>muyu-gen</module> <module>muyu-gen</module>
<module>muyu-job</module> <module>muyu-job</module>
<module>muyu-activity</module>
<module>muyu-file</module> <module>muyu-file</module>
<module>muyu-product</module> <module>muyu-product</module>
<module>muyu-shop-cart</module> <module>muyu-shop-cart</module>
<module>muyu-group-buy</module>
</modules> </modules>
<artifactId>muyu-modules</artifactId> <artifactId>muyu-modules</artifactId>