luqingyang
2023-10-31 f5623e6c538ebff2dfe38ff04bdb996307e7aa84
consum-base/src/main/java/com/consum/base/service/BaseCategoryServiceImpl.java
@@ -2,8 +2,10 @@
import com.consum.base.Constants;
import com.consum.base.pojo.BaseCategoryParam;
import com.consum.base.pojo.ProjectTreeResult;
import com.consum.base.util.IdUtil;
import com.consum.model.po.BaseCategory;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
@@ -11,7 +13,10 @@
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @Description 物品分类
@@ -21,13 +26,14 @@
@Service
public class BaseCategoryServiceImpl extends BaseServiceImpl {
    private static final String QUERY_TREE_ALL = "select * from base_category where states = 1  order by FATHER_CATEGORY_ID, LEVELS ASC";
    /**
     * @Description 新增分类
     * @Author 卢庆阳
     * @Date 2023/10/23
     */
//    public int add(BaseCategoryParam param, S_user_core currentUser) {
    public int add(BaseCategoryParam param) {
    public int add(BaseCategoryParam param, S_user_core currentUser) {
        BaseCategory baseCategory = new BaseCategory();
        BeanUtils.copyProperties(param, baseCategory);
        baseCategory.setId(IdUtil.generateId());
@@ -43,9 +49,9 @@
                baseCategory.setLevels(Constants.LEVELS_THREE);
            }
        }
        //TODO 创建人id和创建人姓名
//        baseCategory.setCreateUserId(currentUser.getId());
//        baseCategory.setCreateUserName(currentUser.getUser_name());
        //创建人id和创建人姓名
        baseCategory.setCreateUserId(currentUser.getId());
        baseCategory.setCreateUserName(currentUser.getUser_name());
        //创建时间
        baseCategory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
@@ -94,8 +100,10 @@
        }
        //状态
        if (param.getStates() != null) {
            sql.append(" and status =:status ");
            paramts.put("status", param.getStates());
            sql.append(" and states =:states ");
            paramts.put("states", param.getStates());
        } else {
            sql.append(" and states !=3 ");
        }
        sql.append(" ORDER BY ORDER_NUMBER,CREATE_TIME DESC ");
        return selectSplit(sql.toString(), paramts, new BaseCategory());
@@ -120,24 +128,59 @@
    }
    /**
     * @Description 根据节点id删除节点(逻辑删除)
     * @Description 根据id删除物品分类
     * @Author 卢庆阳
     * @Date 2023/10/23
     */
    public int updateById(BaseCategory baseCategory) {
        baseCategory.setStates(Constants.CATEGORY_DELETED);
    public int updateById(BaseCategory baseCategory, S_user_core currentUser) {
        baseCategory.setStates(Constants.STATES_DELETED);
        //删除时间
        baseCategory.setDTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        //TODO 删除人id和删除人姓名
        //删除人id和删除人姓名
        baseCategory.setDUserId(currentUser.getId());
        baseCategory.setDUserName(currentUser.getUser_name());
        return this.update(baseCategory);
    }
    /**
     * 根据节点id查询节点详情
     * @author 卢庆阳
     * @date 2023/9/26
     * @Date 2023/10/23
     */
    public BaseCategory getById(Long id) {
        return this.get(new BaseCategory(id));
    }
    /**
     * @Description
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public List<BaseCategory> queryForTree() {
        // 展示全部节点
        return this.select(QUERY_TREE_ALL, new Object[]{}, new BaseCategory());
    }
    public List<ProjectTreeResult> tree(String categoryName) {
        BaseCategory categoryParam = new BaseCategory();
        categoryParam.setStates(1);
        List<BaseCategory> categories = select(categoryParam);
        return categories.stream()
                .filter(category -> Integer.valueOf(1).equals(category.getLevels()))
                .sorted(Comparator.comparing(BaseCategory::getOrderNumber))
                .map(ProjectTreeResult::new)
                .peek(lv1TreeResult -> lv1TreeResult.setChildren(categories.stream().filter(categorie -> lv1TreeResult.getId().equals(categorie.getFatherCategoryId())).sorted(Comparator.comparing(BaseCategory::getOrderNumber)).map(ProjectTreeResult::new).collect(Collectors.toList())))
                .collect(Collectors.toList());
    }
    /**
     * @Description  三级分类列表查询
     * @Author 卢庆阳
     * @Date 2023/10/30
     * @return
     */
    public List<BaseCategory> queryForLv3Tree() {
        StringBuilder sql = new StringBuilder("SELECT * FROM base_category WHERE states = 1 and levels = 3 order by ORDER_NUMBER,CREATE_TIME desc");
        return this.select(sql.toString(), new Object[]{}, new BaseCategory());
    }
}