package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsChildrenVo; import com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsVo; import com.panzhihua.service_community.dao.ComChangeCarModelRelationMapper; import com.panzhihua.service_community.dao.ComChangeCarModelSpecsChildrenMapper; import com.panzhihua.service_community.entity.ComChangeCarModelRelation; import com.panzhihua.service_community.entity.ComChangeCarModelSpecs; import com.panzhihua.service_community.dao.ComChangeCarModelSpecsMapper; import com.panzhihua.service_community.entity.ComChangeCarModelSpecsChildren; import com.panzhihua.service_community.service.ComChangeCarModelSpecsService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import com.panzhihua.common.model.dtos.common.*; import com.panzhihua.common.model.vos.R; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** * title: 换新车-车型规格表表服务实现类 *

* projectName 成都呐喊信息技术有限公司-智慧社区项目 *

* description: 换新车-车型规格表表服务实现类 * * @author lyq * @date 2022-04-07 13:55:32 */ @Service("comChangeCarModelSpecsService") public class ComChangeCarModelSpecsServiceImpl extends ServiceImpl implements ComChangeCarModelSpecsService { @Resource private ComChangeCarModelSpecsChildrenMapper carModelSpecsChildrenMapper; @Resource private ComChangeCarModelRelationMapper modelRelationMapper; /** * description queryByPage 分页查询 * * @param comChangeCarModelSpecs 请求参数 * @return 分页查询列表数据 * @author lyq * @date 2022-04-07 13:55:32 */ @Override public R queryByPage(PageComChangeCarModelSpecsDto comChangeCarModelSpecs) { IPage carModelSpecsPage = this.baseMapper.queryAllByLimit(comChangeCarModelSpecs , new Page(comChangeCarModelSpecs.getPageNum(), comChangeCarModelSpecs.getPageSize())); carModelSpecsPage.getRecords().forEach(carModelSpecs -> { //查询该规格下的子规格列表 List carModelSpecsChildrenList = carModelSpecsChildrenMapper.selectList(new QueryWrapper().lambda() .eq(ComChangeCarModelSpecsChildren::getSpecsId,carModelSpecs.getId())); carModelSpecs.setSpecsString(carModelSpecsChildrenList.stream().map(ComChangeCarModelSpecsChildren::getName).collect(Collectors.joining(","))); }); return R.ok(carModelSpecsPage); } /** * description insert 新增数据 * * @param comChangeCarModelSpecs 请求参数 * @return 新增结果 * @author lyq * @date 2022-04-07 13:55:32 */ @Override public R insert(AddComChangeCarModelSpecsDto comChangeCarModelSpecs) { ComChangeCarModelSpecs entity = new ComChangeCarModelSpecs(); BeanUtils.copyProperties(comChangeCarModelSpecs, entity); if (this.baseMapper.insert(entity) > 0) { return R.ok(entity.getId()); } return R.fail("添加失败"); } /** * description update 修改数据 * * @param editDto 请求参数 * @return 修改结果 * @author lyq * @date 2022-04-07 13:55:32 */ @Override public R update(EditComChangeCarModelSpecsDto editDto) { ComChangeCarModelSpecs entity = this.baseMapper.selectById(editDto.getId()); if (entity == null) { return R.fail("未查询到该记录"); } BeanUtils.copyProperties(editDto, entity); if (this.baseMapper.updateById(entity) > 0) { return R.ok(); } return R.fail("修改失败"); } /** * description deleteById 通过主键删除数据 * * @param id 主键id * @return 删除结果 * @author lyq * @date 2022-04-07 13:55:32 */ @Override public R deleteById(Long id) { //判断当前规格是否有被引用 Integer count = modelRelationMapper.selectCount(new QueryWrapper().lambda() .eq(ComChangeCarModelRelation::getModelSpecsId,id)); if(count > 0){ return R.fail("该规格已被引用,不可删除"); } ComChangeCarModelSpecs entity = new ComChangeCarModelSpecs(); entity.setId(id); entity.setIsDel(ComChangeCarModelSpecs.IsDel.YES); if (this.baseMapper.updateById(entity) > 0) { return R.ok(); } return R.fail("删除失败"); } /** * description detailById 查询详情 * * @param id 主键id * @return 详情数据 * @author lyq * @date 2022-04-07 13:55:32 */ @Override public R detailById(Long id) { return R.ok(this.baseMapper.queryById(id)); } /** * description queryByPage 查询列表 * * @param comChangeCarModelSpecs 请求参数 * @return 列表数据 * @author lyq * @date 2022-04-07 13:55:32 */ @Override public R queryByList(PageComChangeCarModelSpecsDto comChangeCarModelSpecs) { List carModelSpecsList = this.baseMapper.queryAllByList(comChangeCarModelSpecs); carModelSpecsList.forEach(carModelSpecs -> { List modelSpecsChildrenList = carModelSpecsChildrenMapper.queryAllBySpecsId(carModelSpecs.getId()); carModelSpecs.setModelSpecsChildrenList(modelSpecsChildrenList); }); return R.ok(carModelSpecsList); } }