商品类型管理

This commit is contained in:
sxu 2025-05-26 14:42:18 +08:00
parent 364443bc20
commit 72b91c1cc1
5 changed files with 42 additions and 1 deletions

View File

@ -57,4 +57,6 @@ public interface SupermarketMaterialMapper {
* @return 结果 * @return 结果
*/ */
public int deleteSupermarketMaterialByMaterialIds(Long[] materialIds); public int deleteSupermarketMaterialByMaterialIds(Long[] materialIds);
public int getSupermarketMaterialCountByMaterialTypes(Long[] materialTypeIds);
} }

View File

@ -18,6 +18,8 @@ public interface SupermarketMaterialTypeMapper {
*/ */
public SupermarketMaterialType selectSupermarketMaterialTypeByMaterialTypeId(Long materialTypeId); public SupermarketMaterialType selectSupermarketMaterialTypeByMaterialTypeId(Long materialTypeId);
public SupermarketMaterialType selectSupermarketMaterialTypeByMaterialTypeName(SupermarketMaterialType supermarketMaterialType);
/** /**
* 查询商品类别列表 * 查询商品类别列表
* *

View File

@ -1,8 +1,12 @@
package com.bonus.canteen.core.supermarket.service.impl; package com.bonus.canteen.core.supermarket.service.impl;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import com.bonus.canteen.core.supermarket.mapper.SupermarketMaterialMapper;
import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.bonus.canteen.core.supermarket.mapper.SupermarketMaterialTypeMapper; import com.bonus.canteen.core.supermarket.mapper.SupermarketMaterialTypeMapper;
@ -19,6 +23,8 @@ import com.bonus.canteen.core.supermarket.service.ISupermarketMaterialTypeServic
public class SupermarketMaterialTypeServiceImpl implements ISupermarketMaterialTypeService { public class SupermarketMaterialTypeServiceImpl implements ISupermarketMaterialTypeService {
@Autowired @Autowired
private SupermarketMaterialTypeMapper supermarketMaterialTypeMapper; private SupermarketMaterialTypeMapper supermarketMaterialTypeMapper;
@Autowired
private SupermarketMaterialMapper supermarketMaterialMapper;
/** /**
* 查询商品类别 * 查询商品类别
@ -51,7 +57,12 @@ public class SupermarketMaterialTypeServiceImpl implements ISupermarketMaterialT
@Override @Override
public int insertSupermarketMaterialType(SupermarketMaterialType supermarketMaterialType) { public int insertSupermarketMaterialType(SupermarketMaterialType supermarketMaterialType) {
supermarketMaterialType.setCreateTime(DateUtils.getNowDate()); supermarketMaterialType.setCreateTime(DateUtils.getNowDate());
supermarketMaterialType.setCreateBy(SecurityUtils.getUsername());
try { try {
SupermarketMaterialType checkResult = supermarketMaterialTypeMapper.selectSupermarketMaterialTypeByMaterialTypeName(supermarketMaterialType);
if (Objects.nonNull(checkResult)) {
throw new ServiceException("改超市商品类别名已存在");
}
return supermarketMaterialTypeMapper.insertSupermarketMaterialType(supermarketMaterialType); return supermarketMaterialTypeMapper.insertSupermarketMaterialType(supermarketMaterialType);
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException(e.getMessage()); throw new ServiceException(e.getMessage());
@ -67,7 +78,14 @@ public class SupermarketMaterialTypeServiceImpl implements ISupermarketMaterialT
@Override @Override
public int updateSupermarketMaterialType(SupermarketMaterialType supermarketMaterialType) { public int updateSupermarketMaterialType(SupermarketMaterialType supermarketMaterialType) {
supermarketMaterialType.setUpdateTime(DateUtils.getNowDate()); supermarketMaterialType.setUpdateTime(DateUtils.getNowDate());
supermarketMaterialType.setUpdateBy(SecurityUtils.getUsername());
try { try {
List<SupermarketMaterialType> allSupermarketMaterialTypeList = supermarketMaterialTypeMapper.selectSupermarketMaterialTypeList(new SupermarketMaterialType());
List<String> otherSupermarketMaterialTypeList = allSupermarketMaterialTypeList.stream().filter(item -> !item.getMaterialTypeId().equals(supermarketMaterialType.getMaterialTypeId()))
.map(SupermarketMaterialType::getMaterialTypeName).collect(Collectors.toList());
if (otherSupermarketMaterialTypeList.contains(supermarketMaterialType.getMaterialTypeName())) {
throw new ServiceException("改超市商品类别名已存在");
}
return supermarketMaterialTypeMapper.updateSupermarketMaterialType(supermarketMaterialType); return supermarketMaterialTypeMapper.updateSupermarketMaterialType(supermarketMaterialType);
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException(e.getMessage()); throw new ServiceException(e.getMessage());
@ -82,6 +100,10 @@ public class SupermarketMaterialTypeServiceImpl implements ISupermarketMaterialT
*/ */
@Override @Override
public int deleteSupermarketMaterialTypeByMaterialTypeIds(Long[] materialTypeIds) { public int deleteSupermarketMaterialTypeByMaterialTypeIds(Long[] materialTypeIds) {
int count = supermarketMaterialMapper.getSupermarketMaterialCountByMaterialTypes(materialTypeIds);
if (count > 0) {
throw new ServiceException("该超市商品类型含有商品信息,不能删除");
}
return supermarketMaterialTypeMapper.deleteSupermarketMaterialTypeByMaterialTypeIds(materialTypeIds); return supermarketMaterialTypeMapper.deleteSupermarketMaterialTypeByMaterialTypeIds(materialTypeIds);
} }

View File

@ -143,4 +143,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{materialId} #{materialId}
</foreach> </foreach>
</delete> </delete>
<select id="getSupermarketMaterialCountByMaterialTypes" resultType="Integer">
select count(1)
from supermarket_material
where material_type_id in
<foreach item="materialTypeId" collection="array" open="(" separator="," close=")">
#{materialTypeId}
</foreach>
</select>
</mapper> </mapper>

View File

@ -16,7 +16,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectSupermarketMaterialTypeVo"> <sql id="selectSupermarketMaterialTypeVo">
select material_type_id, material_type_name, parent_id, level, area_id, create_by, create_time, update_by, update_time from supermarket_material_type select material_type_id, material_type_name, parent_id, level, area_id, create_by, create_time, update_by, update_time
from supermarket_material_type
</sql> </sql>
<select id="selectSupermarketMaterialTypeList" parameterType="com.bonus.canteen.core.supermarket.domain.SupermarketMaterialType" resultMap="SupermarketMaterialTypeResult"> <select id="selectSupermarketMaterialTypeList" parameterType="com.bonus.canteen.core.supermarket.domain.SupermarketMaterialType" resultMap="SupermarketMaterialTypeResult">
@ -34,6 +35,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where material_type_id = #{materialTypeId} where material_type_id = #{materialTypeId}
</select> </select>
<select id="selectSupermarketMaterialTypeByMaterialTypeName" resultMap="SupermarketMaterialTypeResult">
<include refid="selectSupermarketMaterialTypeVo"/>
where material_type_name = #{materialTypeName}
</select>
<insert id="insertSupermarketMaterialType" parameterType="com.bonus.canteen.core.supermarket.domain.SupermarketMaterialType" useGeneratedKeys="true" keyProperty="materialTypeId"> <insert id="insertSupermarketMaterialType" parameterType="com.bonus.canteen.core.supermarket.domain.SupermarketMaterialType" useGeneratedKeys="true" keyProperty="materialTypeId">
insert into supermarket_material_type insert into supermarket_material_type
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">