dengzedong
5 天以前 730d1944e3a13c517c77df2b0712df05645a38dd
提交 | 用户 | 时间
8c1646 1 package com.iailab.module.data.plan.category.service.impl;
2
3 import com.iailab.framework.common.util.object.BeanUtils;
4 import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
5 import com.iailab.module.data.plan.category.dao.PlanItemCategoryDao;
6 import com.iailab.module.data.plan.category.entity.PlanItemCategoryEntity;
7 import com.iailab.module.data.plan.category.service.PlanItemCategoryService;
8 import com.iailab.module.data.plan.category.vo.PlanItemCategoryReqVO;
9 import com.iailab.module.data.plan.category.vo.PlanItemCategorySaveReqVO;
10 import lombok.extern.slf4j.Slf4j;
11 import org.springframework.stereotype.Service;
12
13 import javax.annotation.Resource;
14 import java.util.Date;
15 import java.util.List;
16 import java.util.UUID;
17
18 import static com.iailab.framework.common.exception.util.ServiceExceptionUtil.exception;
19 import static com.iailab.module.data.plan.category.entity.PlanItemCategoryEntity.ID_ROOT;
20 import static com.iailab.module.system.enums.ErrorCodeConstants.MENU_PARENT_ERROR;
21 import static com.iailab.module.system.enums.ErrorCodeConstants.MENU_PARENT_NOT_EXISTS;
22
23 /**
24  * @author PanZhibao
25  * @Description
26  * @createTime 2024年11月01日
27  */
28 @Service
29 @Slf4j
30 public class PlanItemCategoryServiceImpl implements PlanItemCategoryService {
31
32     @Resource
33     private PlanItemCategoryDao planItemCategoryDao;
34
35     @Override
36     public List<PlanItemCategoryEntity> getList(PlanItemCategoryReqVO reqVO) {
37         return planItemCategoryDao.selectList(reqVO);
38     }
39
40     @Override
41     public List<PlanItemCategoryEntity> getSimpleList() {
42         return planItemCategoryDao.selectList(new LambdaQueryWrapperX<PlanItemCategoryEntity>());
43     }
44
45     @Override
46     public void create(PlanItemCategorySaveReqVO createReqVO) {
47         // 校验父菜单存在
48         validateParentMenu(createReqVO.getPid(), null);
49
50         // 插入数据库
51         PlanItemCategoryEntity entity = BeanUtils.toBean(createReqVO, PlanItemCategoryEntity.class);
52         entity.setId(UUID.randomUUID().toString());
53         entity.setCreateTime(new Date());
54         planItemCategoryDao.insert(entity);
55     }
56
57     @Override
58     public void update(PlanItemCategorySaveReqVO updateReqVO) {
59         // 校验父菜单存在
60         validateParentMenu(updateReqVO.getPid(), null);
61         PlanItemCategoryEntity entity = BeanUtils.toBean(updateReqVO, PlanItemCategoryEntity.class);
62         entity.setUpdateTime(new Date());
63         planItemCategoryDao.updateById(entity);
64     }
65
66     @Override
67     public PlanItemCategoryEntity get(String id) {
68         return planItemCategoryDao.selectById(id);
69     }
70
71     @Override
72     public void delete(String id) {
73         planItemCategoryDao.deleteById(id);
74     }
75
76     private void validateParentMenu(String parentId, String childId) {
77         if (parentId == null || ID_ROOT.equals(parentId)) {
78             return;
79         }
80         // 不能设置自己为父菜单
81         if (parentId.equals(childId)) {
82             throw exception(MENU_PARENT_ERROR);
83         }
84         PlanItemCategoryEntity category = planItemCategoryDao.selectById(parentId);
85         // 父菜单不存在
86         if (category == null) {
87             throw exception(MENU_PARENT_NOT_EXISTS);
88         }
89     }
90 }