Преглед изворни кода

提示信息对照原型修改

Zhaops пре 6 година
родитељ
комит
b338afa718

+ 24 - 0
icssman-service/src/main/java/com/diagbot/dto/IntroducePageDTO.java

@@ -0,0 +1,24 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.IntroduceInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/12/11 9:59
+ */
+@Getter
+@Setter
+public class IntroducePageDTO extends IntroduceInfo {
+    private String operator;
+    private String operatorName;
+    private Date gmtOperate;
+    private String tagName;
+    private List<QuestionIntroduceDTO> questionList;
+    private List<QuestionIntroduceDTO> unRelatedQuestionList;
+}

+ 19 - 0
icssman-service/src/main/java/com/diagbot/dto/QuestionIntroduceDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/12/11 10:06
+ */
+@Getter
+@Setter
+public class QuestionIntroduceDTO {
+    private Long id;
+    private String tagName;
+    private String name;
+    private Integer type;
+    private Integer subType;
+}

+ 101 - 7
icssman-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -3,9 +3,14 @@ package com.diagbot.facade;
 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.diagbot.client.UserServiceClient;
+import com.diagbot.dto.IntroducePageDTO;
+import com.diagbot.dto.QuestionIntroduceDTO;
+import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.IntroduceDetail;
 import com.diagbot.entity.IntroduceInfo;
 import com.diagbot.entity.IntroduceMap;
+import com.diagbot.entity.QuestionInfo;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.IntroduceDetailServiceImpl;
 import com.diagbot.service.impl.IntroduceInfoServiceImpl;
@@ -23,6 +28,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -39,6 +45,10 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
     IntroduceDetailServiceImpl introduceDetailServiceImpl;
     @Autowired
     IntroduceMapServiceImpl introduceMapServiceImpl;
+    @Autowired
+    UserServiceClient userServiceClient;
+    @Autowired
+    QuestionInfoFacade questionInfoFacade;
 
     /**
      * 保存提示信息(新增or修改)
@@ -180,18 +190,35 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
     }
 
     /**
-     * 分页查询提示信息,等于条件
+     * 获取提示信息分页信息,带条件
      *
      * @param introducePageVO
      * @return
      */
-    public IPage<IntroduceInfo> getPageByMap(IntroducePageVO introducePageVO) {
-        QueryWrapper<IntroduceInfo> introduceInfoQueryWrapper = new QueryWrapper<>();
-        for (Map.Entry<String, Object> entry : introducePageVO.getMap().entrySet()) {
-            introduceInfoQueryWrapper.eq(entry.getKey(), entry.getValue());
+    public IPage<IntroducePageDTO> getIntroducePageByMap(IntroducePageVO introducePageVO) {
+        IPage<IntroducePageDTO> introducePageDTOIPage = this.getIntroducePage(introducePageVO);
+        List<IntroducePageDTO> records = introducePageDTOIPage.getRecords();
+        for (IntroducePageDTO introducePageDTO : records) {
+            if (introducePageDTO.getGmtModified().after(introducePageDTO.getGmtCreate())) {
+                introducePageDTO.setOperator(introducePageDTO.getModifier());
+                introducePageDTO.setGmtOperate(introducePageDTO.getGmtModified());
+            } else {
+                introducePageDTO.setOperator(introducePageDTO.getCreator());
+                introducePageDTO.setGmtOperate(introducePageDTO.getGmtCreate());
+            }
         }
-        IPage<IntroduceInfo> introduceInfoIPage = this.page(introducePageVO, introduceInfoQueryWrapper);
-        return introduceInfoIPage;
+        List<String> userIds = records.stream().map(introduceList -> introduceList.getOperator()).collect(Collectors.toList());
+        RespDTO<Map<String, String>> userInfos = userServiceClient.getUserInfoByIds(userIds);
+        if (userInfos != null) {
+            Map<String, String> userInfoMap = userInfos.data;
+            for (IntroducePageDTO introducePageDTO : records) {
+                if (userInfoMap.containsKey(introducePageDTO.getOperator())) {
+                    introducePageDTO.setOperatorName(userInfoMap.get(introducePageDTO.getOperator()));
+                }
+            }
+        }
+        introducePageDTOIPage.setRecords(records);
+        return introducePageDTOIPage;
     }
 
     /**
@@ -207,4 +234,71 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         }
         return this.list(introduceInfoQueryWrapper);
     }
+
+    /**
+     * 根据id获取提示信息
+     *
+     * @param id
+     * @return
+     */
+    public IntroducePageDTO getIntroduceById(Long id) {
+        IntroducePageDTO introducePageDTO = new IntroducePageDTO();
+        IntroduceInfo introduceInfo = this.getById(id);
+        BeanUtil.copyProperties(introduceInfo, introducePageDTO);
+
+        QueryWrapper<IntroduceMap> introduceMapQueryWrapper = new QueryWrapper<>();
+        introduceMapQueryWrapper.eq("introduce_id", id).eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<IntroduceMap> introduceMapList = introduceMapFacade.list(introduceMapQueryWrapper);
+
+        List<Long> questionIds = introduceMapList.stream().map(introduceMap -> introduceMap.getQuestionId()).collect(Collectors.toList());
+        QueryWrapper<QuestionInfo> questionInfoQueryWrapper = new QueryWrapper<>();
+        questionInfoQueryWrapper.in("id", questionIds).eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<QuestionInfo> questionInfoList = questionInfoFacade.list(questionInfoQueryWrapper);
+
+        List<QuestionIntroduceDTO> questionIntroduceDTOList = Lists.newLinkedList();
+        String tagName = "";
+        for (QuestionInfo questionInfo : questionInfoList) {
+            QuestionIntroduceDTO questionIntroduceDTO = new QuestionIntroduceDTO();
+            BeanUtil.copyProperties(questionInfo, questionIntroduceDTO);
+            questionIntroduceDTOList.add(questionIntroduceDTO);
+            tagName += questionInfo.getTagName() + ",";
+        }
+        if (tagName.endsWith(",")) {
+            tagName = tagName.substring(0, tagName.length() - 1);
+        }
+        introducePageDTO.setTagName(tagName);
+        introducePageDTO.setQuestionList(questionIntroduceDTOList);
+
+        //未关联的标签
+        QueryWrapper<QuestionInfo> unRelatedQuestionWrapper = new QueryWrapper<>();
+        unRelatedQuestionWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).notIn("id", questionIds);
+        List<QuestionInfo> unRelatedQuestionList = questionInfoFacade.list(unRelatedQuestionWrapper);
+        List<QuestionIntroduceDTO> unRelatedQuestionDTOList = Lists.newLinkedList();
+        for (QuestionInfo questionInfo : unRelatedQuestionList) {
+            QuestionIntroduceDTO questionIntroduceDTO = new QuestionIntroduceDTO();
+            BeanUtil.copyProperties(questionInfo, questionIntroduceDTO);
+            unRelatedQuestionDTOList.add(questionIntroduceDTO);
+        }
+        introducePageDTO.setUnRelatedQuestionList(unRelatedQuestionDTOList);
+
+        return introducePageDTO;
+    }
+
+    /**
+     * 获取未关联标签列表
+     *
+     * @return
+     */
+    public List<QuestionIntroduceDTO> getAllQuestionList() {
+        QueryWrapper<QuestionInfo> unRelatedQuestionWrapper = new QueryWrapper<>();
+        unRelatedQuestionWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        List<QuestionInfo> unRelatedQuestionList = questionInfoFacade.list(unRelatedQuestionWrapper);
+        List<QuestionIntroduceDTO> unRelatedQuestionDTOList = Lists.newLinkedList();
+        for (QuestionInfo questionInfo : unRelatedQuestionList) {
+            QuestionIntroduceDTO questionIntroduceDTO = new QuestionIntroduceDTO();
+            BeanUtil.copyProperties(questionInfo, questionIntroduceDTO);
+            unRelatedQuestionDTOList.add(questionIntroduceDTO);
+        }
+        return unRelatedQuestionDTOList;
+    }
 }

+ 13 - 2
icssman-service/src/main/java/com/diagbot/mapper/IntroduceInfoMapper.java

@@ -1,7 +1,12 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.IntroduceInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.IntroducePageDTO;
+import com.diagbot.entity.IntroduceInfo;
+import com.diagbot.vo.IntroducePageVO;
+import org.apache.ibatis.annotations.Param;
+
 
 /**
  * <p>
@@ -12,5 +17,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2018-11-16
  */
 public interface IntroduceInfoMapper extends BaseMapper<IntroduceInfo> {
-
+    /**
+     * 获取提示信息分页信息
+     *
+     * @param introducePageVO
+     * @return
+     */
+    IPage<IntroducePageDTO> getIntroducePage(@Param("introducePageVO")IntroducePageVO introducePageVO) ;
 }

+ 10 - 2
icssman-service/src/main/java/com/diagbot/service/IntroduceInfoService.java

@@ -1,7 +1,10 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.IntroduceInfo;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.IntroducePageDTO;
+import com.diagbot.entity.IntroduceInfo;
+import com.diagbot.vo.IntroducePageVO;
 
 /**
  * <p>
@@ -12,5 +15,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2018-11-16
  */
 public interface IntroduceInfoService extends IService<IntroduceInfo> {
-
+    /**
+     * 获取提示信息分页信息
+     * @param introducePageVO
+     * @return
+     */
+    IPage<IntroducePageDTO> getIntroducePage(IntroducePageVO introducePageVO);
 }

+ 13 - 1
icssman-service/src/main/java/com/diagbot/service/impl/IntroduceInfoServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.IntroducePageDTO;
 import com.diagbot.entity.IntroduceInfo;
 import com.diagbot.mapper.IntroduceInfoMapper;
 import com.diagbot.service.IntroduceInfoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.IntroducePageVO;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +20,13 @@ import org.springframework.stereotype.Service;
 @Service
 public class IntroduceInfoServiceImpl extends ServiceImpl<IntroduceInfoMapper, IntroduceInfo> implements IntroduceInfoService {
 
+    /**
+     * 获取提示信息分页信息
+     *
+     * @param introducePageVO
+     * @return
+     */
+    public IPage<IntroducePageDTO> getIntroducePage(IntroducePageVO introducePageVO) {
+        return this.baseMapper.getIntroducePage(introducePageVO);
+    }
 }

+ 3 - 2
icssman-service/src/main/java/com/diagbot/vo/IntroducePageVO.java

@@ -7,12 +7,13 @@ import lombok.Setter;
 import java.util.Map;
 
 /**
- * @Description:
+ * @Description:提示信息分页展示入参
  * @Author:zhaops
  * @time: 2018/11/16 15:50
  */
 @Getter
 @Setter
 public class IntroducePageVO extends Page {
-    Map<String, Object> map;
+    String name;
+    String tagName;
 }

+ 26 - 6
icssman-service/src/main/java/com/diagbot/web/IntroduceInfoController.java

@@ -3,6 +3,8 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.IntroducePageDTO;
+import com.diagbot.dto.QuestionIntroduceDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.IntroduceInfo;
 import com.diagbot.facade.IntroduceInfoFacade;
@@ -86,11 +88,12 @@ public class IntroduceInfoController {
     @ApiOperation(value = "分页查询提示信息,可带等于条件[by:zhaops]",
             notes = "current:页码,必填<br>" +
                     "size:每页显示条数,必填<br>" +
-                    "map:查询条件(=),key为数据库字段名<br>")
-    @PostMapping("/getPageByMap")
-    @SysLogger("getPageByMap")
-    public RespDTO getPageByMap(@RequestBody IntroducePageVO introducePageVO) {
-        IPage<IntroduceInfo> infoIPage = introduceInfoFacade.getPageByMap(introducePageVO);
+                    "name:提示信息名称<br>" +
+                    "tagName:标签名称<br>")
+    @PostMapping("/getIntroducePage")
+    @SysLogger("getIntroducePage")
+    public RespDTO getIntroducePage(@RequestBody IntroducePageVO introducePageVO) {
+        IPage<IntroducePageDTO> infoIPage = introduceInfoFacade.getIntroducePageByMap(introducePageVO);
         return RespDTO.onSuc(infoIPage);
     }
 
@@ -108,4 +111,21 @@ public class IntroduceInfoController {
         List<IntroduceInfo> data = introduceInfoFacade.getByMap(map);
         return RespDTO.onSuc(data);
     }
-}
+
+    @ApiOperation(value = "根据id获取提示信息[by:zhaops]",
+            notes = "id:id,必填<br>")
+    @PostMapping("/getIntroduceById")
+    @SysLogger("getIntroduceById")
+    public RespDTO<IntroducePageDTO> getIntroduceById(@RequestParam Long id) {
+        IntroducePageDTO data = introduceInfoFacade.getIntroduceById(id);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "获取未关联标签列表-新增提示信息时[by:zhaops]")
+    @PostMapping("/getAllQuestionList")
+    @SysLogger("getAllQuestionList")
+    public RespDTO<QuestionIntroduceDTO> getUnRelatedQuestionList() {
+        List<QuestionIntroduceDTO> data = introduceInfoFacade.getAllQuestionList();
+        return RespDTO.onSuc(data);
+    }
+}

+ 40 - 0
icssman-service/src/main/resources/mapper/IntroduceInfoMapper.xml

@@ -14,4 +14,44 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMapDTO" type="com.diagbot.dto.IntroducePageDTO">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="name" property="name" />
+        <result column="remark" property="remark" />
+        <result column="tag_name" property="tagName" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getIntroducePage" resultMap="BaseResultMapDTO">
+    SELECT info.*, t.tag_name FROM icss_introduce_info info,
+	    (SELECT tt.introduce_id,GROUP_CONCAT(tt.tag_name) AS tag_name
+		    FROM
+			(
+				SELECT
+					a.introduce_id,
+					b.tag_name,
+					b.id
+				FROM
+					icss_introduce_map a,
+					icss_question_info b
+				WHERE
+					a.question_id = b.id
+				AND a.type = b.type
+			) tt
+		    GROUP BY tt.introduce_id
+	    ) t
+    WHERE info.id = t.introduce_id
+	<if test="introducePageVO.name != null and introducePageVO.name != '' ">
+	    and info.name like concat('%',#{introducePageVO.name},'%')
+    </if>
+    <if test="introducePageVO.tagName != null and introducePageVO.tagName != '' ">
+        and t.tag_name like concat('%',#{introducePageVO.tagName},'%')
+    </if>
+    </select>
 </mapper>