Prechádzať zdrojové kódy

作者:张哲
时间:2023/01/06
类型:优化
描述:配置swagger

ZizgZh 2 rokov pred
rodič
commit
49b4dc4a0e

+ 16 - 0
src/main/java/com/redxun/JpaasKnowledgeApp.java

@@ -1,11 +1,14 @@
 package com.redxun;
 
+import com.alibaba.druid.pool.DruidDataSource;
 import com.redxun.common.ribbon.annotation.EnableFeignInterceptor;
 import com.redxun.knowledge.common.MessageService;
 import com.redxun.log.mq.LogOutput;
+import com.redxun.log.properties.LogDbProperties;
 import com.redxun.msgsend.mq.MsgOutput;
 import com.redxun.web.mq.ErrLogOutput;
 import io.micrometer.core.instrument.MeterRegistry;
+import org.apache.xmlbeans.impl.values.JavaBase64Holder;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
@@ -14,6 +17,8 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.cloud.stream.annotation.EnableBinding;
 import org.springframework.context.annotation.Bean;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
@@ -27,6 +32,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
 @EnableDiscoveryClient
 @SpringBootApplication(scanBasePackages = {"com.redxun"})
 @EnableBinding({ LogOutput.class,ErrLogOutput.class, MsgOutput.class})
+@EnableAsync
 public class JpaasKnowledgeApp {
 
     public static void main(String[]args) {
@@ -46,4 +52,14 @@ public class JpaasKnowledgeApp {
             @Value("${spring.application.name}") String applicationName) {
         return (registry) -> registry.config().commonTags("application", applicationName);
     }
+
+    @Bean
+    public LogDbProperties logDbProperties(){
+        return new LogDbProperties();
+    }
+
+    @Bean
+    public JdbcTemplate jdbcTemplate(){
+        return new JdbcTemplate(new DruidDataSource());
+    }
 }

+ 30 - 0
src/main/java/com/redxun/config/SystemConfig.java

@@ -0,0 +1,30 @@
+package com.redxun.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.redxun.log.properties.LogDbProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+/**
+ * 文件名: SystemConfig
+ * 作者: Zizg
+ * 时间: 2023/1/12
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@Configuration
+public class SystemConfig {
+
+    @Bean
+    public LogDbProperties logDbProperties(){
+        return new LogDbProperties();
+    }
+
+    @Bean
+    public JdbcTemplate jdbcTemplate(){
+        return new JdbcTemplate(new DruidDataSource());
+    }
+}

+ 10 - 0
src/main/java/com/redxun/knowledge/common/UserService.java

@@ -140,5 +140,15 @@ public class UserService {
         return userClient.findByUsername(username);
     }
 
+    /**
+     * 根据部门id查询全部员工信息
+     * @param deptId
+     * @return
+     */
+    public List<OsUserDto> findUserListByDeptId(String deptId){
+        List<OsUserDto> osUserDtoList = orgClient.getByGroupId(deptId);
+        return osUserDtoList;
+    }
+
 
 }

+ 11 - 1
src/main/java/com/redxun/knowledge/controller/BannerController.java

@@ -3,16 +3,21 @@ package com.redxun.knowledge.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.annotation.ClassDefine;
+import com.redxun.common.annotation.LoginClient;
+import com.redxun.common.annotation.MethodDefine;
+import com.redxun.common.annotation.ParamDefine;
 import com.redxun.common.base.db.BaseService;
 import com.redxun.common.base.entity.JsonPageResult;
 import com.redxun.common.base.entity.JsonResult;
 import com.redxun.common.base.entity.QueryData;
 import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.base.search.QueryFilterBuilder;
+import com.redxun.common.constant.HttpMethodConstants;
 import com.redxun.common.utils.ExceptionUtil;
 import com.redxun.knowledge.entity.dao.Banner;
 import com.redxun.knowledge.entity.vo.BannerPcVo;
 import com.redxun.knowledge.service.BannerServiceImpl;
+import com.redxun.log.annotation.AuditLog;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -28,7 +33,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/api-knowledge/knowledge/banner")
 @Api(tags = "业务--首页banner表")
-@ClassDefine(title = "业务--首页banner表", alias = "BannerController", path = "/api-knowledge/knowledge/banner", packages = "", packageName = "子系统名称")
+@ClassDefine(title = "banner图", alias = "BannerController", path = "/api-knowledge/knowledge/banner", packages = "knowledge",packageName = "知识管理")
 public class BannerController extends BaseController<Banner> {
 
     @Autowired
@@ -75,6 +80,11 @@ public class BannerController extends BaseController<Banner> {
 
     @ApiOperation(value = "删除banner")
     @GetMapping("deleteBanner")
+    @MethodDefine(title = "删除banner",
+            path = "deleteBanner",
+            method = HttpMethodConstants.GET,
+            params = {@ParamDefine(title = "实体主键Id",varName="bannerId")})
+    @AuditLog(operation = "删除记录")
     public JsonResult deleteBanner(@RequestParam("bannerId") String bannerId){
         bannerService.deleteBanner(bannerId);
         return JsonResult.Success("删除成功!");

+ 13 - 0
src/main/java/com/redxun/knowledge/controller/UserController.java

@@ -5,6 +5,7 @@ import com.redxun.common.base.entity.IUser;
 import com.redxun.common.base.entity.JsonResult;
 import com.redxun.common.utils.ContextUtil;
 import com.redxun.dto.user.OsUserDto;
+import com.redxun.feign.org.OrgClient;
 import com.redxun.feign.org.UserClient;
 import com.redxun.knowledge.common.UserService;
 import io.swagger.annotations.Api;
@@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -36,6 +38,9 @@ public class UserController {
     @Autowired
     private UserClient userClient;
 
+    @Autowired
+    private OrgClient orgClient;
+
     @Autowired
     private UserService userService;
 
@@ -49,4 +54,12 @@ public class UserController {
         map.put("userName",userName);
         return jsonResult;
     }
+
+    //@ApiOperation("根据部门id查询全部员工信息")
+    //@GetMapping("findUserListByDeptId")
+    //public JsonResult findUserListByDeptId(@RequestParam("deptId") String deptId){
+    //    JsonResult jsonResult = JsonResult.getSuccessResult("");
+    //    List<OsUserDto> osUserDtoList = orgClient.getByGroupId(deptId);
+    //    return jsonResult.setData(osUserDtoList);
+    //}
 }

+ 1 - 2
src/main/java/com/redxun/knowledge/entity/dao/Banner.java

@@ -16,8 +16,7 @@ import com.redxun.common.base.entity.BaseExtEntity;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Accessors;
-import java.util.ArrayList;
-import java.util.List;
+
 import java.util.Map;
 
 

+ 41 - 14
src/main/java/com/redxun/knowledge/service/KnowledgeApproveServiceImpl.java

@@ -1,6 +1,8 @@
 
 package com.redxun.knowledge.service;
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,6 +13,9 @@ import com.redxun.common.base.db.PageHelper;
 import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.model.JPaasUser;
 import com.redxun.common.service.impl.SuperServiceImpl;
+import com.redxun.common.tool.DateUtils;
+import com.redxun.common.tool.StringUtils;
+import com.redxun.common.utils.ContextUtil;
 import com.redxun.dto.user.OsUserDto;
 import com.redxun.knowledge.common.MessageService;
 import com.redxun.knowledge.common.UserService;
@@ -27,6 +32,7 @@ import com.redxun.search.utils.MD5;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -145,6 +151,10 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
     @Transactional(rollbackFor = Exception.class)
     @Override
     public int update(KnowledgeApprove entity) {
+        // 如果审批结论为null,置位空字符串
+        if (StringUtils.isEmpty(entity.getRemark())){
+            entity.setRemark("");
+        }
         // 当前记录
         KnowledgeApprove knowledgeApprove = knowledgeApproveMapper.selectById(entity.getPkId());
         // 当前记录的下一条记录
@@ -159,7 +169,7 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
             //给知识创建人发送站内信和企业微信消息
             Knowledge knowledgeEnd = knowledgeMapper.selectById(knowledgeApprove.getKnowledgerId());
             String createBy = knowledgeEnd.getCreateBy();
-            sendMessage(createBy,knowledgeEnd.getTitles(),false);
+            sendMessage(createBy,knowledgeEnd.getTitles(),entity.getRemark(),false);
         }
         // 如果审核节点是终审节点且知识未通过,修改知识状态为最终驳回 4
         if (knowledgeApprove.getIsFinal() == 1 && entity.getResult() == 0){
@@ -170,7 +180,7 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
             //给知识创建人发送站内信和企业微信消息
             Knowledge knowledgeEnd = knowledgeMapper.selectById(knowledgeApprove.getKnowledgerId());
             String createBy = knowledgeEnd.getCreateBy();
-            sendMessage(createBy,knowledgeEnd.getTitles(),false);
+            sendMessage(createBy,knowledgeEnd.getTitles(),entity.getRemark(),false);
         }
         // 如果审核节点是终审节点且知识通过,修改知识状态为最终通过 5
         if (knowledgeApprove.getIsFinal() == 1 && entity.getResult() == 1){
@@ -181,7 +191,7 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
             //给知识创建人发送站内信和企业微信消息
             Knowledge knowledgeEnd = knowledgeMapper.selectById(knowledgeApprove.getKnowledgerId());
             String createBy = knowledgeEnd.getCreateBy();
-            sendMessage(createBy,knowledgeEnd.getTitles(),true);
+            sendMessage(createBy,knowledgeEnd.getTitles(),entity.getRemark(),true);
             //把该知识附件信息传入搜索平台
             Knowledge knowledges = knowledgeMapper.selectById(knowledgeApprove.getKnowledgerId());
             // 获取知识上传人头像
@@ -234,7 +244,8 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
             String approverId = knowledgeApproveNext.getApproverId();
             JPaasUser jPaasUser = userService.queryByUsername(approverId);
             if (jPaasUser != null){
-                sendMessage(jPaasUser.getUserId());
+                Knowledge knowledge = knowledgeMapper.selectById(knowledgeApprove.getKnowledgerId());
+                sendMessage(jPaasUser.getUserId(),knowledge.getTitles(),knowledge.getCreateBy(),knowledge.getCreateTime());
             }
         }
 
@@ -250,34 +261,50 @@ public class KnowledgeApproveServiceImpl extends SuperServiceImpl<KnowledgeAppro
      * 给知识创建人发送站内信和企业微信消息(知识被驳回时,或者最终节点审核通过时)(flag为true,知识通过;为false,知识不通过)
      * @param createBy,remark,flag
      */
-    private void sendMessage(String createBy,String titles,Boolean flag){
+    private void sendMessage(String createBy,String titles,String remark,Boolean flag){
         List<OsUserDto> osUserDtoList = new ArrayList<>();
         //查询用户信息
         OsUserDto osUserDto = userService.queryOsUserDto(createBy);
         osUserDtoList.add(osUserDto);
         // 知识通过
         if (flag){
-            messageService.sendWechatMsg("您的提交的申请已经通过审批!","提交内容:" + titles + "审批时间:" + new Date(),osUserDtoList);
-            messageService.sendInnerMsg("您的提交的申请已经通过审批!","提交内容:" + titles + "审批时间:" + new Date(),osUserDtoList);
+            messageService.sendWechatMsg("您提交的申请已经通过审批!",
+                    "提交内容:" + titles + "<br>" +
+                            "审批时间:" + DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN) ,osUserDtoList);
+            messageService.sendInnerMsg("您提交的申请已经通过审批!",
+                    "提交内容:" + titles + "<br>" +
+                            "审批时间:" + DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN),osUserDtoList);
         } else {
             // 知识不通过
-            messageService.sendWechatMsg("您的提交的申请已被驳回!","提交内容:" + titles + "审批时间:" + new Date(),osUserDtoList);
-            messageService.sendInnerMsg("您的提交的申请已被驳回!","提交内容:" + titles + "审批时间:" + new Date(),osUserDtoList);
+            messageService.sendWechatMsg("您提交的申请已被驳回!","" +
+                    "提交内容:" + titles  + "<br>" + "审批时间:" + DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN),osUserDtoList);
+            messageService.sendInnerMsg("您提交的申请已被驳回!",
+                    "提交内容:" + titles + "<br>" +
+                            "驳回原因:" + remark + "<br>" +
+                            "审核人:" + ContextUtil.getCurrentUser().getFullName() + "<br>" +
+                            "审批时间:" + DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN),osUserDtoList);
 
         }
     }
 
     /**
      * 给下一节点审核人发消息(不包含部门)
-     * @param createBy,remark
+     * @param
      */
-    private void sendMessage(String createBy){
+    public void sendMessage(String sender,String titles,String userId,Date date){
         List<OsUserDto> osUserDtoList = new ArrayList<>();
         //查询用户信息
-        OsUserDto osUserDto = userService.queryOsUserDto(createBy);
+        OsUserDto osUserDto = userService.queryOsUserDto(sender);
         osUserDtoList.add(osUserDto);
         // 发消息通过前来审核
-        messageService.sendWechatMsg("您有一条待审核任务,请尽快完成审核!","",osUserDtoList);
-        messageService.sendInnerMsg("您有一条待审核任务,请尽快完成审核!","",osUserDtoList);
+        messageService.sendWechatMsg("您有一条待审核任务,请尽快完成审核!",
+                "审核类型:知识审核" + "<br>" +
+                "提交内容:" + titles + "<br>" +
+                "提交人:" + userService.queryUser(userId).getFullName() + "<br>" +
+                "提交时间:" + DateUtil.format(date, DatePattern.NORM_DATETIME_PATTERN),osUserDtoList);
+        messageService.sendInnerMsg("您有一条待审核任务,请尽快完成审核!","审核类型:知识审核" + "<br>" +
+                "提交内容:" + titles + "<br>" +
+                "提交人:" + userService.queryUser(userId).getFullName() + "<br>" +
+                "提交时间:" + DateUtil.format(date, DatePattern.NORM_DATETIME_PATTERN),osUserDtoList);
     }
 }

+ 6 - 1
src/main/java/com/redxun/knowledge/service/KnowledgeServiceImpl.java

@@ -17,6 +17,7 @@ import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.common.tool.IdGenerator;
 import com.redxun.common.tool.StringUtils;
 import com.redxun.dto.user.OsUserDto;
+import com.redxun.knowledge.common.MessageService;
 import com.redxun.knowledge.common.UserService;
 import com.redxun.knowledge.entity.dao.*;
 import com.redxun.knowledge.entity.dto.KnowledgeDto;
@@ -75,6 +76,10 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
     @Autowired
     private ActionLogMapper actionLogMapper;
 
+    @Autowired
+    private MessageService messageService;
+
+
 
     @Override
     public BaseDao<Knowledge> getRepository() {
@@ -440,12 +445,12 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
         }
         // 把知识审批表中对应数据删除掉
         knowledgeApproveMapper.deleteByKnowledgeId(knowledgeId);
-        knowledgeMapper.deleteKnowledge(knowledgeId);
         // 调用搜索平台删除接口(删除文件)
         String documentId = knowledgeMapper.selectById(knowledgeId).getDocumentId();
         if (StringUtils.isNotEmpty(documentId)){
             searchService.remove(documentId);
         }
+        knowledgeMapper.deleteKnowledge(knowledgeId);
         return true;
     }