From 94eb1aba6fb5188160e7664a9d2a1dabbcb5821b Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 14 五月 2025 18:21:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java |  167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 167 insertions(+), 0 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java
new file mode 100644
index 0000000..c04c5d2
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/impl/KnowledgeServiceImpl.java
@@ -0,0 +1,167 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.KnowledgeMapper;
+import com.doumee.dao.business.model.Knowledge;
+import com.doumee.service.business.KnowledgeService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 鐭ヨ瘑搴撲俊鎭〃Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/05/14 13:49
+ */
+@Service
+public class KnowledgeServiceImpl implements KnowledgeService {
+
+    @Autowired
+    private KnowledgeMapper knowledgeMapper;
+
+    @Override
+    public Integer create(Knowledge knowledge) {
+        LoginUserInfo user= (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(Objects.isNull(knowledge)
+        || StringUtils.isBlank(knowledge.getTitle())
+                || StringUtils.isBlank(knowledge.getLink())
+//                || StringUtils.isBlank(knowledge.getCityName())
+//                || Objects.isNull(knowledge.getCityId())
+                || StringUtils.isBlank(knowledge.getProvinceName())
+                || Objects.isNull(knowledge.getProvinceId())
+                || StringUtils.isBlank(knowledge.getYearInfo())
+                || StringUtils.isBlank(knowledge.getTitle())
+                || StringUtils.isBlank(knowledge.getLabels())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(knowledge.getLabels().split(",").length>10){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏍囩鏁版渶澶氭坊鍔犲崄涓�");
+        }
+        knowledge.setIsdeleted(Constants.ZERO);
+        knowledge.setCreateDate(new Date());
+        knowledge.setCreator(user.getId());
+        knowledgeMapper.insert(knowledge);
+        return knowledge.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        knowledgeMapper.update(null,new UpdateWrapper<Knowledge>().lambda().set(Knowledge::getIsdeleted,Constants.ONE).eq(Knowledge::getId,id));
+//        knowledgeMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(Knowledge knowledge) {
+        UpdateWrapper<Knowledge> deleteWrapper = new UpdateWrapper<>(knowledge);
+        knowledgeMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        knowledgeMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(Knowledge knowledge) {
+        LoginUserInfo user= (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(Objects.isNull(knowledge)
+                || Objects.isNull(knowledge.getId())
+                || StringUtils.isBlank(knowledge.getTitle())
+                || StringUtils.isBlank(knowledge.getLink())
+                || StringUtils.isBlank(knowledge.getProvinceName())
+//                || StringUtils.isBlank(knowledge.getCityName())
+//                || Objects.isNull(knowledge.getCityId())
+                || Objects.isNull(knowledge.getProvinceId())
+                || StringUtils.isBlank(knowledge.getYearInfo())
+                || StringUtils.isBlank(knowledge.getTitle())
+                || StringUtils.isBlank(knowledge.getLabels())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(knowledge.getLabels().split(",").length>10){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏍囩鏁版渶澶氭坊鍔犲崄涓�");
+        }
+        knowledge.setEditDate(new Date());
+        knowledge.setEditor(user.getId());
+        knowledgeMapper.updateById(knowledge);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<Knowledge> knowledges) {
+        if (CollectionUtils.isEmpty(knowledges)) {
+            return;
+        }
+        for (Knowledge knowledge: knowledges) {
+            this.updateById(knowledge);
+        }
+    }
+
+    @Override
+    public Knowledge findById(Integer id) {
+        return knowledgeMapper.selectById(id);
+    }
+
+    @Override
+    public Knowledge findOne(Knowledge knowledge) {
+        QueryWrapper<Knowledge> wrapper = new QueryWrapper<>(knowledge);
+        return knowledgeMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<Knowledge> findList(Knowledge knowledge) {
+        QueryWrapper<Knowledge> wrapper = new QueryWrapper<>(knowledge);
+        return knowledgeMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<Knowledge> findPage(PageWrap<Knowledge> pageWrap) {
+        IPage<Knowledge> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<Knowledge> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.lambda().eq(Knowledge::getIsdeleted,Constants.ZERO);
+
+        if (pageWrap.getModel().getProvinceId() != null) {
+            queryWrapper.lambda().eq(Knowledge::getProvinceId, pageWrap.getModel().getProvinceId());
+        }
+        if (pageWrap.getModel().getCityId() != null) {
+            queryWrapper.lambda().eq(Knowledge::getCityId, pageWrap.getModel().getCityId());
+        }
+        if (pageWrap.getModel().getTitle() != null) {
+            queryWrapper.lambda().like(Knowledge::getTitle, pageWrap.getModel().getTitle());
+        }
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(knowledgeMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(Knowledge knowledge) {
+        QueryWrapper<Knowledge> wrapper = new QueryWrapper<>(knowledge);
+        return knowledgeMapper.selectCount(wrapper);
+    }
+}

--
Gitblit v1.9.3