商品模块代码提交
This commit is contained in:
@@ -1,18 +1,127 @@
|
|||||||
package com.czg.service.product.service.impl;
|
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.entity.ShopProdUnit;
|
||||||
|
import com.czg.service.product.enums.UnitTypeEnum;
|
||||||
import com.czg.service.product.mapper.ShopProdUnitMapper;
|
import com.czg.service.product.mapper.ShopProdUnitMapper;
|
||||||
import com.czg.service.product.service.ShopProdUnitService;
|
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 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
|
* @author Tankaikai tankaikai@aliyun.com
|
||||||
* @since 1.0 2025-02-10
|
* @since 1.0 2025-02-10
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class ShopProdUnitServiceImpl extends ServiceImpl<ShopProdUnitMapper, ShopProdUnit> implements ShopProdUnitService {
|
public class ShopProdUnitServiceImpl extends BaseServiceImpl<ShopProdUnitMapper, ShopProdUnit> implements ShopProdUnitService {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QueryWrapper query() {
|
||||||
|
return super.query().from(SHOP_PROD_UNIT);
|
||||||
|
}
|
||||||
|
|
||||||
|
private QueryWrapper buildQueryWrapper(Map<String, Object> 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<ShopProdUnitDTO> page(Map<String, Object> params) {
|
||||||
|
QueryWrapper queryWrapper = buildQueryWrapper(params);
|
||||||
|
Page<ShopProdUnitDTO> page = super.pageAs(PageQuery.build(), queryWrapper, ShopProdUnitDTO.class);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ShopProdUnitDTO> list(Map<String, Object> 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user