图库需求

This commit is contained in:
Tankaikai
2025-02-26 16:57:45 +08:00
parent ee48e3f509
commit f00e52905c
15 changed files with 691 additions and 21 deletions

View File

@@ -0,0 +1,16 @@
package com.czg.service.account.mapper;
import com.czg.account.entity.PictureClassify;
import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 图片分类
*
* @author Tankaikai tankaikai@aliyun.com
* @since 1.0 2025-02-26
*/
@Mapper
public interface PictureClassifyMapper extends BaseMapper<PictureClassify> {
}

View File

@@ -0,0 +1,16 @@
package com.czg.service.account.mapper;
import com.czg.account.entity.PictureGallery;
import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 图库
*
* @author Tankaikai tankaikai@aliyun.com
* @since 1.0 2025-02-26
*/
@Mapper
public interface PictureGalleryMapper extends BaseMapper<PictureGallery> {
}

View File

@@ -0,0 +1,113 @@
package com.czg.service.account.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.czg.account.dto.PictureClassifyDTO;
import com.czg.account.entity.PictureClassify;
import com.czg.account.service.PictureClassifyService;
import com.czg.enums.DeleteEnum;
import com.czg.enums.YesNoEnum;
import com.czg.exception.CzgException;
import com.czg.product.entity.ShopProdUnit;
import com.czg.sa.StpKit;
import com.czg.service.account.mapper.PictureClassifyMapper;
import com.czg.utils.PageUtil;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 图片分类
*
* @author Tankaikai tankaikai@aliyun.com
* @since 1.0 2025-02-26
*/
@Service
public class PictureClassifyServiceImpl extends ServiceImpl<PictureClassifyMapper, PictureClassify> implements PictureClassifyService {
private QueryWrapper buildQueryWrapper(PictureClassifyDTO param) {
QueryWrapper queryWrapper = PageUtil.buildSortQueryWrapper();
if (StrUtil.isNotEmpty(param.getName())) {
queryWrapper.like(PictureClassify::getName, param.getName());
}
Long shopId = StpKit.USER.getLoginIdAsLong();
queryWrapper.eq(PictureClassify::getShopId, shopId);
queryWrapper.eq(PictureClassify::getIsDel, DeleteEnum.DELETED.value());
queryWrapper.orderBy(PictureClassify::getSort, true);
queryWrapper.orderBy(PictureClassify::getId, false);
return queryWrapper;
}
@Override
public List<PictureClassifyDTO> getPictureClassifyList(PictureClassifyDTO param) {
QueryWrapper queryWrapper = buildQueryWrapper(param);
return super.listAs(queryWrapper, PictureClassifyDTO.class);
}
@Override
public void addPictureClassify(PictureClassifyDTO dto) {
Long shopId = StpKit.USER.getLoginIdAsLong();
boolean exists = super.exists(query().eq(PictureClassify::getName, dto.getName())
.eq(PictureClassify::getShopId, shopId)
.and(q -> {
q.eq(PictureClassify::getShopId, shopId).or(q1 -> {
q1.eq(PictureClassify::getShopId, 0).eq(ShopProdUnit::getIsSystem, YesNoEnum.YES.value());
});
})
);
if (exists) {
throw new CzgException("图片分类已存在");
}
PictureClassify entity = BeanUtil.copyProperties(dto, PictureClassify.class);
entity.setIsSystem(YesNoEnum.NO.value());
entity.setShopId(shopId);
super.save(entity);
}
@Override
public void updatePictureClassify(PictureClassifyDTO dto) {
checkPictureClassify(dto.getId());
Long shopId = StpKit.USER.getLoginIdAsLong();
dto.setShopId(shopId);
boolean exists = super.exists(query().eq(PictureClassify::getName, dto.getName())
.eq(PictureClassify::getShopId, shopId)
.ne(PictureClassify::getId, dto.getId())
.and(q -> {
q.eq(PictureClassify::getShopId, shopId).or(q1 -> {
q1.eq(PictureClassify::getShopId, 0).eq(ShopProdUnit::getIsSystem, YesNoEnum.YES.value());
});
})
);
if (exists) {
throw new CzgException("图片分类已存在");
}
PictureClassify entity = BeanUtil.copyProperties(dto, PictureClassify.class);
entity.setIsSystem(YesNoEnum.NO.value());
super.updateById(entity);
}
@Override
public void deletePictureClassify(Long id) {
checkPictureClassify(id);
Long shopId = StpKit.USER.getLoginIdAsLong();
UpdateChain.of(PictureClassify.class)
.set(PictureClassify::getIsDel, DeleteEnum.DELETED.value())
.eq(PictureClassify::getShopId, shopId)
.eq(PictureClassify::getId, id)
.update();
}
private void checkPictureClassify(Long id) {
PictureClassify entity = super.getById(id);
if (entity == null) {
throw new CzgException("图片分类不存在");
}
if (entity.getIsSystem() == YesNoEnum.YES.value()) {
throw new CzgException("系统预设分类不可操作");
}
}
}

View File

@@ -0,0 +1,68 @@
package com.czg.service.account.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.czg.account.dto.PictureGalleryDTO;
import com.czg.account.entity.PictureGallery;
import com.czg.account.service.PictureGalleryService;
import com.czg.enums.DeleteEnum;
import com.czg.sa.StpKit;
import com.czg.service.account.mapper.PictureGalleryMapper;
import com.czg.utils.PageUtil;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.update.UpdateChain;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* 图库
*
* @author Tankaikai tankaikai@aliyun.com
* @since 1.0 2025-02-26
*/
@Service
public class PictureGalleryServiceImpl extends ServiceImpl<PictureGalleryMapper, PictureGallery> implements PictureGalleryService {
private QueryWrapper buildQueryWrapper(PictureGalleryDTO param) {
QueryWrapper queryWrapper = PageUtil.buildSortQueryWrapper();
if (StrUtil.isNotEmpty(param.getUrl())) {
queryWrapper.eq(PictureGallery::getUrl, param.getUrl());
}
if (ObjUtil.isNotNull(param.getPictureClassifyId())) {
queryWrapper.eq(PictureGallery::getPictureClassifyId, param.getPictureClassifyId());
}
Long shopId = StpKit.USER.getLoginIdAsLong();
queryWrapper.eq(PictureGallery::getShopId, shopId);
queryWrapper.eq(PictureGallery::getIsDel, DeleteEnum.NORMAL.value());
queryWrapper.orderBy(PictureGallery::getId, false);
return queryWrapper;
}
@Override
public Page<PictureGalleryDTO> getPictureGalleryPage(PictureGalleryDTO param) {
QueryWrapper queryWrapper = buildQueryWrapper(param);
return super.pageAs(PageUtil.buildPage(), queryWrapper, PictureGalleryDTO.class);
}
@Override
public void addPictureGallery(PictureGalleryDTO dto) {
Long shopId = StpKit.USER.getLoginIdAsLong();
PictureGallery entity = BeanUtil.copyProperties(dto, PictureGallery.class);
entity.setShopId(shopId);
super.save(entity);
}
@Override
public void deletePictureGallery(Long id) {
Long shopId = StpKit.USER.getLoginIdAsLong();
UpdateChain.of(PictureGallery.class)
.set(PictureGallery::getIsDel, DeleteEnum.DELETED.value())
.eq(PictureGallery::getShopId, shopId)
.eq(PictureGallery::getId, id)
.update();
}
}

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.account.mapper.PictureClassifyMapper">
</mapper>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czg.service.account.mapper.PictureGalleryMapper">
</mapper>

View File

@@ -88,6 +88,7 @@ public class ShopProdUnitServiceImpl extends ServiceImpl<ShopProdUnitMapper, Sho
@Override
public void updateShopProdUnit(ShopProdUnitDTO dto) {
checkShopProdUnit(dto.getId());
Long shopId = StpKit.USER.getShopId(0L);
dto.setShopId(shopId);
boolean exists = super.exists(query().eq(ShopProdUnit::getName, dto.getName())
@@ -107,26 +108,14 @@ public class ShopProdUnitServiceImpl extends ServiceImpl<ShopProdUnitMapper, Sho
@Override
public void deleteShopProdUnit(Long id) {
ShopProdUnit entity = super.getById(id);
if (entity == null) {
throw new CzgException("单位信息不存在");
}
if (entity.getIsSystem() == YesNoEnum.YES.value()) {
throw new CzgException("系统预设单位不可操作");
}
checkShopProdUnit(id);
Long shopId = StpKit.USER.getShopId(0L);
super.remove(query().eq(ShopProdUnit::getId, id).eq(ShopProdUnit::getShopId, shopId));
}
@Override
public void disableShopProdUnit(Long id) {
ShopProdUnit entity = super.getById(id);
if (entity == null) {
throw new CzgException("单位信息不存在");
}
if (entity.getIsSystem() == YesNoEnum.YES.value()) {
throw new CzgException("系统预设单位不可操作");
}
checkShopProdUnit(id);
Long shopId = StpKit.USER.getShopId(0L);
UpdateChain.of(ShopProdUnit.class)
.set(ShopProdUnit::getStatus, StatusEnum.DISABLE.value())
@@ -137,13 +126,7 @@ public class ShopProdUnitServiceImpl extends ServiceImpl<ShopProdUnitMapper, Sho
@Override
public void enableShopProdUnit(Long id) {
ShopProdUnit entity = super.getById(id);
if (entity == null) {
throw new CzgException("单位信息不存在");
}
if (entity.getIsSystem() == YesNoEnum.YES.value()) {
throw new CzgException("系统预设单位不可操作");
}
checkShopProdUnit(id);
Long shopId = StpKit.USER.getShopId(0L);
UpdateChain.of(ShopProdUnit.class)
.set(ShopProdUnit::getStatus, StatusEnum.ENABLED.value())
@@ -151,4 +134,14 @@ public class ShopProdUnitServiceImpl extends ServiceImpl<ShopProdUnitMapper, Sho
.eq(ShopProdUnit::getShopId, shopId)
.update();
}
private void checkShopProdUnit(Long id) {
ShopProdUnit entity = super.getById(id);
if (entity == null) {
throw new CzgException("单位信息不存在");
}
if (entity.getIsSystem() == YesNoEnum.YES.value()) {
throw new CzgException("系统预设单位不可操作");
}
}
}