dev798
wxy 2024-03-12 20:58:08 +08:00
parent cdb075caba
commit 966581668b
8 changed files with 241 additions and 0 deletions

View File

@ -0,0 +1,65 @@
package com.muyu.common.core.utils;
import org.apache.commons.lang3.ObjectUtils;
import java.math.BigDecimal;
/**
* @author DongZl
* @description:
* @Date 2023-10-9 04:56
*/
public class ObjUtils {
/**
*
* CharSequence:
* Array:
* Collection:
* Map:
* @param o
* @return nulltruefalse
*/
public static boolean notNull(Object o){
return ObjectUtils.isNotEmpty(o);
}
/**
* long0
* @param val
* @return 0
*/
public static boolean notNull(Long val){
return ObjectUtils.isNotEmpty(val) && val != 0;
}
/**
* Integer0
* @param val
* @return 0
*/
public static boolean notNull(Integer val){
return ObjectUtils.isNotEmpty(val) && val != 0;
}
/**
* BigDecimal0
* @param val
* @return 0
*/
public static boolean notNull(BigDecimal val){
return ObjectUtils.isNotEmpty(val) && val.doubleValue() == 0.00;
}
/**
* BigDecimal0
* @param val
* @return 0
*/
public static boolean notChildNull(Object[] val){
for (Object o : val) {
if (!notNull(o)){
return false;
}
}
return true;
}
}

View File

@ -1,9 +1,17 @@
package com.muyu.product.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.product.domain.AttributeGroup;
import com.muyu.product.domain.req.AttributeGroupQueryReq;
import com.muyu.product.domain.resp.AttributeGroupPageResp;
import com.muyu.product.service.AttributeGroupService;
import io.swagger.annotations.Api;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -14,4 +22,19 @@ public class AttributeGroupController extends BaseController {
@Autowired
private AttributeGroupService attributeGroupService;
/*
*
* */
@ApiOperation("获取属性组列表")
@RequiresPermissions("product:attributeGroup:list")
@GetMapping("/list")
public Result<TableDataInfo<AttributeGroupPageResp>>list(AttributeGroupQueryReq attributeGroupQueryReq){
startPage();
TableDataInfo<AttributeGroupPageResp>tableDataInfo=
attributeGroupService.page(AttributeGroup.queryBuild(attributeGroupQueryReq));
return Result.success(tableDataInfo);
}
}

View File

@ -3,5 +3,13 @@ package com.muyu.product.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.product.domain.AsAttributeGroup;
import java.util.List;
public interface AsAttributeGroupService extends IService<AsAttributeGroup> {
/*
*
* */
public List<AsAttributeGroup>list(AsAttributeGroup attributeGroup);
}

View File

@ -1,7 +1,23 @@
package com.muyu.product.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.TableDataInfo;
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 java.util.List;
public interface AttributeGroupService extends IService<AttributeGroup> {
public TableDataInfo<AttributeGroupPageResp>page(AttributeGroup attributeGroup);
public List<AttributeGroup>list(AttributeGroup attributeGroup);
public Boolean save(AttributeGroupSaveModel attributeGroupSaveModel);
}

View File

@ -3,5 +3,15 @@ package com.muyu.product.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.product.domain.AttributeInfo;
import java.util.List;
public interface AttributeInfoService extends IService<AttributeInfo> {
public List<AttributeInfo>list(AttributeInfo attributeInfo);
public List<AttributeInfo>attributeListByGroupId(Long groupId);
}

View File

@ -1,15 +1,25 @@
package com.muyu.product.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.uuid.ObjUtils;
import com.muyu.product.domain.AsAttributeGroup;
import com.muyu.product.mapper.AsAttributeGroupMapper;
import com.muyu.product.service.AsAttributeGroupService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/*
* Service
* */
@Slf4j
@Service
public class AsAttributeGroupServiceimpl extends ServiceImpl<AsAttributeGroupMapper, AsAttributeGroup>implements AsAttributeGroupService {
@Override
public List<AsAttributeGroup> list(AsAttributeGroup attributeGroup) {
LambdaQueryWrapper<AsAttributeGroup> queryWrapper = new LambdaQueryWrapper<>();
return list(queryWrapper);
}
}

View File

@ -1,13 +1,91 @@
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.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 java.util.List;
@Slf4j
@Service
public class AttributeGroupServiceimpl extends ServiceImpl<AttributeGroupMapper, AttributeGroup>implements AttributeGroupService {
@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();
}
/*
*
* */
@Override
public List<AttributeGroup> list(AttributeGroup attributeGroup) {
LambdaQueryWrapper<AttributeGroup> queryWrapper = new LambdaQueryWrapper<>();
if(ObjUtils.notNull(attributeGroup.getName())){
queryWrapper.like(AttributeGroup::getName,attributeGroup.getName());
}
if (ObjUtils.notNull(attributeGroup.getStates())) {
queryWrapper.eq(AttributeGroup::getStates, attributeGroup.getStates());
}
return this.list(queryWrapper);
}
/*
*
* */
@Override
public Boolean save(AttributeGroupSaveModel attributeGroupSaveModel) {
AttributeGroup attributeGroup=attributeGroupSaveModel.buildAttributeGroup();
boolean save=this.save(attributeGroup);
Long attributeGroupId=attributeGroup.getId();
List<Long>attributeIdList=attributeGroupSaveModel.getAttributeIdList();
attributeGroupService.saveBatch(
attributeIdList.stream()
.map(attributeId-> AsAttributeGroup.buildGroup(attributeGroupId,attributeId))
.toList()
);
return save;
}
}

View File

@ -1,13 +1,44 @@
package com.muyu.product.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.ObjUtils;
import com.muyu.product.domain.AttributeInfo;
import com.muyu.product.mapper.AttributeInfoMapper;
import com.muyu.product.service.AsAttributeGroupService;
import com.muyu.product.service.AttributeInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class AttributeInfoServiceimpl extends ServiceImpl<AttributeInfoMapper, AttributeInfo>implements AttributeInfoService {
@Autowired
private AsAttributeGroupService attributeGroupService;
@Override
public List<AttributeInfo> list(AttributeInfo attributeInfo) {
LambdaQueryWrapper<AttributeInfo> queryWrapper = new LambdaQueryWrapper<>();
if(ObjUtils.notNull(attributeInfo.getName())){
queryWrapper.like(AttributeInfo::getName,attributeInfo.getName());
}
if (ObjUtils.notNull(attributeInfo.getCode())){
queryWrapper.like(AttributeInfo::getCode, attributeInfo.getCode());
}
return this.list(queryWrapper);
}
@Override
public List<AttributeInfo> attributeListByGroupId(Long groupId) {
return null;
}
}