商品属性组列表
parent
94d0d2e0e9
commit
5f4785bf7c
|
@ -0,0 +1,59 @@
|
|||
package com.muyu.product.domain.resp;
|
||||
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.product.domain.AttributeGroup;
|
||||
import com.muyu.product.domain.AttributeInfo;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* @author DongZl
|
||||
* @description: 属性组列表对象
|
||||
* @Date 2024-2-28 下午 04:15
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class AttributeGroupPageResp extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 属性组编号 */
|
||||
private Long id;
|
||||
|
||||
/** 组名称 */
|
||||
private String name;
|
||||
|
||||
/** 状态 */
|
||||
private String states;
|
||||
|
||||
/**
|
||||
* 属性对象集合
|
||||
*/
|
||||
private List<AttributeInfo> attributeInfoList;
|
||||
|
||||
public static AttributeGroupPageResp groupBuild (AttributeGroup attributeGroup, List<AttributeInfo> attributeInfos) {
|
||||
return AttributeGroupPageResp.builder()
|
||||
.id(attributeGroup.getId())
|
||||
.name(attributeGroup.getName())
|
||||
.states(attributeGroup.getStates())
|
||||
.attributeInfoList(attributeInfos)
|
||||
.build();
|
||||
}
|
||||
public static AttributeGroupPageResp groupFunBuild (AttributeGroup attributeGroup, Function<Long,List<AttributeInfo> > function) {
|
||||
return AttributeGroupPageResp.builder()
|
||||
.id(attributeGroup.getId())
|
||||
.name(attributeGroup.getName())
|
||||
.states(attributeGroup.getStates())
|
||||
.attributeInfoList(function.apply(attributeGroup.getId()))
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.muyu.product.domain.model.AttributeGroupSaveModel;
|
||||
import com.muyu.product.domain.resp.AttributeGroupPageResp;
|
||||
import io.swagger.annotations.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@ -46,10 +47,11 @@ public class AttributeGroupController extends BaseController {
|
|||
@ApiOperation("获取属性组列表")
|
||||
@RequiresPermissions("product:attributeGroup:list")
|
||||
@GetMapping("/list")
|
||||
public Result<TableDataInfo<AttributeGroup>> list(AttributeGroupQueryReq attributeGroupQueryReq) {
|
||||
public Result<TableDataInfo<AttributeGroupPageResp>> list(AttributeGroupQueryReq attributeGroupQueryReq) {
|
||||
startPage();
|
||||
List<AttributeGroup> list = attributeGroupService.list(AttributeGroup.queryBuild(attributeGroupQueryReq));
|
||||
return getDataTable(list);
|
||||
TableDataInfo<AttributeGroupPageResp> tableDataInfo =
|
||||
attributeGroupService.page(AttributeGroup.queryBuild(attributeGroupQueryReq));
|
||||
return Result.success(tableDataInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
package com.muyu.product.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.muyu.common.core.web.page.TableDataInfo;
|
||||
import com.muyu.product.domain.AttributeGroup;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.product.domain.AttributeInfo;
|
||||
import com.muyu.product.domain.model.AttributeGroupSaveModel;
|
||||
import com.muyu.product.domain.resp.AttributeGroupPageResp;
|
||||
|
||||
/**
|
||||
* 属性组Service接口
|
||||
|
@ -12,6 +16,14 @@ import com.muyu.product.domain.model.AttributeGroupSaveModel;
|
|||
* @date 2024-02-27
|
||||
*/
|
||||
public interface AttributeGroupService extends IService<AttributeGroup> {
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param attributeGroup 分组对象
|
||||
* @return 返回结果
|
||||
*/
|
||||
public TableDataInfo<AttributeGroupPageResp> page(AttributeGroup attributeGroup);
|
||||
|
||||
/**
|
||||
* 查询属性组列表
|
||||
*
|
||||
|
@ -26,4 +38,5 @@ public interface AttributeGroupService extends IService<AttributeGroup> {
|
|||
* @return 是否成功
|
||||
*/
|
||||
public Boolean save(AttributeGroupSaveModel attributeGroupSaveModel);
|
||||
|
||||
}
|
||||
|
|
|
@ -19,4 +19,10 @@ public interface AttributeInfoService extends IService<AttributeInfo> {
|
|||
*/
|
||||
public List<AttributeInfo> list(AttributeInfo attributeInfo);
|
||||
|
||||
/**
|
||||
* 通过groupId查询属性集合
|
||||
* @param groupId 属性组Id
|
||||
* @return 属性集合
|
||||
*/
|
||||
public List<AttributeInfo> attributeListByGroupId(Long groupId);
|
||||
}
|
||||
|
|
|
@ -2,19 +2,26 @@ package com.muyu.product.service.impl;
|
|||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.common.core.web.page.TableDataInfo;
|
||||
import com.muyu.product.domain.AsAttributeGroup;
|
||||
import com.muyu.product.domain.AttributeGroup;
|
||||
import com.muyu.product.domain.AttributeInfo;
|
||||
import com.muyu.product.domain.model.AttributeGroupSaveModel;
|
||||
import com.muyu.product.domain.resp.AttributeGroupPageResp;
|
||||
import com.muyu.product.mapper.AttributeGroupMapper;
|
||||
import com.muyu.product.service.AsAttributeGroupService;
|
||||
import com.muyu.product.service.AttributeGroupService;
|
||||
import com.muyu.product.service.AttributeInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* 属性组Service业务层处理
|
||||
|
@ -29,6 +36,32 @@ public class AttributeGroupServiceImpl extends ServiceImpl<AttributeGroupMapper,
|
|||
@Autowired
|
||||
private AsAttributeGroupService attributeGroupService;
|
||||
|
||||
@Autowired
|
||||
private AttributeInfoService attributeInfoService;
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*
|
||||
* @param attributeGroupQuery 分组对象
|
||||
*
|
||||
* @return 返回结果
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<AttributeGroupPageResp> page (AttributeGroup attributeGroupQuery) {
|
||||
List<AttributeGroup> list = this.list(attributeGroupQuery);
|
||||
List<AttributeGroupPageResp> pageRespList = list.stream()
|
||||
.map(attributeGroup ->
|
||||
AttributeGroupPageResp.groupFunBuild(
|
||||
attributeGroup, groupId -> attributeInfoService.attributeListByGroupId(groupId)
|
||||
)
|
||||
)
|
||||
.toList();
|
||||
return TableDataInfo.<AttributeGroupPageResp>builder()
|
||||
.total(new PageInfo(list).getTotal())
|
||||
.rows(pageRespList)
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询属性组列表
|
||||
*
|
||||
|
@ -40,7 +73,6 @@ public class AttributeGroupServiceImpl extends ServiceImpl<AttributeGroupMapper,
|
|||
public List<AttributeGroup> list (AttributeGroup attributeGroup) {
|
||||
LambdaQueryWrapper<AttributeGroup> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
|
||||
if (ObjUtils.notNull(attributeGroup.getName())) {
|
||||
queryWrapper.like(AttributeGroup::getName, attributeGroup.getName());
|
||||
}
|
||||
|
|
|
@ -2,8 +2,12 @@ package com.muyu.product.service.impl;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.muyu.common.core.exception.ServiceException;
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.product.domain.AsAttributeGroup;
|
||||
import com.muyu.product.service.AsAttributeGroupService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.muyu.product.mapper.AttributeInfoMapper;
|
||||
import com.muyu.product.domain.AttributeInfo;
|
||||
|
@ -21,6 +25,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
@Service
|
||||
public class AttributeInfoServiceImpl extends ServiceImpl<AttributeInfoMapper, AttributeInfo> implements AttributeInfoService {
|
||||
|
||||
@Autowired
|
||||
private AsAttributeGroupService asAttributeGroupService;
|
||||
|
||||
/**
|
||||
* 查询商品属性列表
|
||||
*
|
||||
|
@ -42,4 +49,25 @@ public class AttributeInfoServiceImpl extends ServiceImpl<AttributeInfoMapper, A
|
|||
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过groupId查询属性集合
|
||||
*
|
||||
* @param groupId 属性组Id
|
||||
*
|
||||
* @return 属性集合
|
||||
*/
|
||||
@Override
|
||||
public List<AttributeInfo> attributeListByGroupId (Long groupId) {
|
||||
if (groupId == null){
|
||||
throw new ServiceException("查询商品属性组,属性组ID不可为空");
|
||||
}
|
||||
LambdaQueryWrapper<AsAttributeGroup> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AsAttributeGroup::getGroupId, groupId);
|
||||
return this.listByIds(
|
||||
asAttributeGroupService.list(queryWrapper).stream()
|
||||
.map(AsAttributeGroup::getAttributeId)
|
||||
.toList()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue