From 86cfeea71a4315877ebdc0cef5fca5cdf3f24d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Tue, 11 Feb 2025 15:14:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E6=A8=A1=E5=9D=97=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ShopProdUnitServiceImpl.java | 115 +++++++++++++++++- 1 file changed, 112 insertions(+), 3 deletions(-) diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopProdUnitServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopProdUnitServiceImpl.java index cd6599466..668e65c27 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopProdUnitServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopProdUnitServiceImpl.java @@ -1,18 +1,127 @@ package com.czg.service.product.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.czg.core.page.PageQuery; +import com.czg.core.service.impl.BaseServiceImpl; +import com.czg.enums.StatusEnum; +import com.czg.enums.YesNoEnum; +import com.czg.exception.CzgException; +import com.czg.sa.StpKit; +import com.czg.service.product.dto.ShopProdUnitDTO; import com.czg.service.product.entity.ShopProdUnit; +import com.czg.service.product.enums.UnitTypeEnum; import com.czg.service.product.mapper.ShopProdUnitMapper; import com.czg.service.product.service.ShopProdUnitService; -import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryChain; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.core.update.UpdateChain; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + +import static com.czg.service.product.entity.table.ShopProdUnitTableDef.SHOP_PROD_UNIT; + /** - * 商品单位 + * 商品单位Service实现类 * * @author Tankaikai tankaikai@aliyun.com * @since 1.0 2025-02-10 */ @Service -public class ShopProdUnitServiceImpl extends ServiceImpl implements ShopProdUnitService { +public class ShopProdUnitServiceImpl extends BaseServiceImpl implements ShopProdUnitService { + + @Override + public QueryWrapper query() { + return super.query().from(SHOP_PROD_UNIT); + } + + private QueryWrapper buildQueryWrapper(Map params) { + QueryWrapper queryWrapper = super.buildBaseQueryWrapper(); + ShopProdUnit param = BeanUtil.toBean(params, ShopProdUnit.class); + if (StrUtil.isEmpty(param.getName())) { + queryWrapper.and(SHOP_PROD_UNIT.NAME.like(param.getName())); + } + Long shopId = StpKit.ADMIN.getLoginIdAsLong(); + queryWrapper.and(SHOP_PROD_UNIT.SHOP_ID.eq(shopId)); + queryWrapper.orderBy(SHOP_PROD_UNIT.ID.desc()); + return queryWrapper; + } + + @Override + public Page page(Map params) { + QueryWrapper queryWrapper = buildQueryWrapper(params); + Page page = super.pageAs(PageQuery.build(), queryWrapper, ShopProdUnitDTO.class); + return page; + } + + @Override + public List list(Map params) { + QueryWrapper queryWrapper = buildQueryWrapper(params); + return super.listAs(queryWrapper, ShopProdUnitDTO.class); + } + + @Override + public ShopProdUnitDTO get(Long id) { + Long shopId = StpKit.ADMIN.getLoginIdAsLong(); + ShopProdUnitDTO data = super.getOneAs(query().where(SHOP_PROD_UNIT.ID.eq(id).and(SHOP_PROD_UNIT.SHOP_ID.eq(shopId))), ShopProdUnitDTO.class); + return data; + } + + @Override + public boolean save(ShopProdUnitDTO dto) { + Long shopId = StpKit.ADMIN.getLoginIdAsLong(); + long count = QueryChain.of(ShopProdUnit.class).where(ShopProdUnit::getName).eq(dto.getName()).and(ShopProdUnit::getShopId).eq(shopId).count(); + if(count > 0){ + throw new CzgException("单位名称已存在"); + } + ShopProdUnit entity = BeanUtil.copyProperties(dto, ShopProdUnit.class); + // 单位类型 number-计数 weight-记重 + entity.setUnitType(UnitTypeEnum.NUMBER.value()); + // 单位来源 1-系统预设 0-商家创建 + entity.setIsSystem(YesNoEnum.NO.value()); + entity.setStatus(StatusEnum.ENABLED.value()); + entity.setShopId(shopId); + return super.save(entity); + } + + @Override + public boolean update(ShopProdUnitDTO dto) { + Long shopId = StpKit.ADMIN.getLoginIdAsLong(); + long count = QueryChain.of(ShopProdUnit.class) + .where(ShopProdUnit::getName).eq(dto.getName()) + .and(ShopProdUnit::getShopId).eq(shopId) + .and(ShopProdUnit::getId).ne(dto.getId()) + .count(); + if(count > 0){ + throw new CzgException("单位名称已存在"); + } + ShopProdUnit entity = BeanUtil.copyProperties(dto, ShopProdUnit.class); + return super.updateById(entity); + } + + @Override + public boolean disable(Long id) { + Long shopId = StpKit.ADMIN.getLoginIdAsLong(); + boolean ret = UpdateChain.of(ShopProdUnit.class) + .set(ShopProdUnit::getStatus, StatusEnum.DISABLE.value()) + .where(ShopProdUnit::getId).eq(id) + .and(ShopProdUnit::getShopId).eq(shopId) + .update(); + return ret; + } + + @Override + public boolean enable(Long id) { + Long shopId = StpKit.ADMIN.getLoginIdAsLong(); + boolean ret = UpdateChain.of(ShopProdUnit.class) + .set(ShopProdUnit::getStatus, StatusEnum.ENABLED.value()) + .where(ShopProdUnit::getId).eq(id) + .eq(ShopProdUnit::getShopId, shopId) + .update(); + return ret; + } } \ No newline at end of file