فهرست منبع

fix 问题分类置顶

zoujiajian 3 سال پیش
والد
کامیت
240e9909cd

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/help/HelpQuestionClassificationMapper.java

@@ -1,7 +1,10 @@
 package com.cyksj.mapper.manage.help;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.model.entity.HelpQuestionClassification;
+import com.cyksj.model.views.HelpQuestionClassificationView;
+import org.apache.ibatis.annotations.Param;
 
 /*
  *项目名: netflix
@@ -10,4 +13,5 @@ import com.cyksj.model.entity.HelpQuestionClassification;
  *创建时间:2022/12/7 10:20
  */
 public interface HelpQuestionClassificationMapper extends BaseMapper<HelpQuestionClassification> {
+	Page<HelpQuestionClassificationView> getQuestionClassificationView(@Param("goodsId") Long goodsId, @Param("page") Page<HelpQuestionClassificationView> page);
 }

+ 2 - 12
netflix-dao/src/main/java/com/cyksj/model/views/HelpQuestionClassificationView.java

@@ -1,9 +1,6 @@
 package com.cyksj.model.views;
 
 import com.cyksj.model.entity.HelpQuestion;
-import com.ejlchina.searcher.bean.DbField;
-import com.ejlchina.searcher.bean.DbIgnore;
-import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -17,24 +14,17 @@ import java.util.List;
  */
 @Getter
 @Setter
-@SearchBean(tables = "help_question_classification hc left join goods_don gd on gd.id = hc.goods_id" +
-		" left join help_question hq on hq.classification_id = hc.id",
-where = "hc.status is true and hc.deleted is true and hq.deleted is true and hq.status is true and hq.id is not null",
-distinct = true)
 public class HelpQuestionClassificationView {
 
-	@DbField("hc.id")
 	private Long id;
 
-	@DbField("hc.name")
 	private String name;
 
-	@DbField("if(gd.id is null,hc.logo,gd.logo)")
+	private Long goodsId;
+
 	private String logo;
 
-	@DbField("hc.sort")
 	private Integer sort;
 
-	@DbIgnore
 	private List<HelpQuestion> questions;
 }

+ 26 - 0
netflix-dao/src/main/resources/mapper/HelpQuestionClassificationMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.cyksj.mapper.manage.help.HelpQuestionClassificationMapper">
+
+    <select id="getQuestionClassificationView"
+            resultType="com.cyksj.model.views.HelpQuestionClassificationView">
+        select hc.id,
+               hc.name,
+               hc.goods_id,
+               hc.sort,
+               if(gd.id is null, hc.logo,gd.logo) as logo
+        from `help_question_classification` hc left join `goods_don` gd
+        on gd.id = hc.goods_id
+        <if test="goodsId != null">
+            and hc.goods_id = #{goodsId}
+        </if>
+        where hc.deleted is true and hc.status is true
+        <if test="goodsId != null">
+            order by case when hc.goods_id = #{goodsId} then (select max(sort) from `help_question_classification` where
+            deleted is true and status is true)+1 else sort end desc
+        </if>
+        <if test="goodsId == null">
+            order by sort desc
+        </if>
+    </select>
+</mapper>

+ 7 - 13
netflix-web/src/main/java/com/cyksj/web/controller/sys/SysConfigController.java

@@ -1,23 +1,20 @@
 package com.cyksj.web.controller.sys;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.manage.help.HelpQuestionClassificationMapper;
 import com.cyksj.mapper.manage.help.HelpQuestionMapper;
 import com.cyksj.model.entity.HelpQuestion;
 import com.cyksj.model.entity.SysConfig;
 import com.cyksj.model.views.HelpQuestionClassificationView;
 import com.cyksj.service.sys.SysConfigService;
-import com.ejlchina.searcher.BeanSearcher;
-import com.ejlchina.searcher.SearchResult;
-import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
-
 /**
  * @author chan
  * @date 2022/10/20 10:08 AM
@@ -32,7 +29,7 @@ public class SysConfigController {
 
 	private final HelpQuestionMapper helpQuestionMapper;
 
-	private final BeanSearcher beanSearcher;
+	private final HelpQuestionClassificationMapper helpQuestionClassificationMapper;
 
 	@GetMapping("/get")
 	public Result<SysConfig> get(String key) {
@@ -70,18 +67,15 @@ public class SysConfigController {
 	 * 问题分类列表
 	 */
 	@GetMapping("/help/question/classification/get")
-	public Result<SearchResult<HelpQuestionClassificationView>> get(HttpServletRequest request) {
-		SearchResult<HelpQuestionClassificationView> search = beanSearcher.search(HelpQuestionClassificationView.class,
-				MapUtils.flatBuilder(request.getParameterMap())
-						.orderBy(HelpQuestionClassificationView::getSort).desc()
-						.build());
-		search.getDataList().forEach(data -> {
+	public Result<Page<HelpQuestionClassificationView>> get(Long goodsId, @RequestParam(defaultValue = "1") Integer start, @RequestParam(defaultValue = "5") Integer limit) {
+		Page<HelpQuestionClassificationView> page = helpQuestionClassificationMapper.getQuestionClassificationView(goodsId, new Page<>(start, limit));
+		page.getRecords().forEach(data -> {
 			data.setQuestions(helpQuestionMapper.selectList(Wrappers.lambdaQuery(HelpQuestion.class)
 					.eq(HelpQuestion::getClassificationId, data.getId())
 					.eq(HelpQuestion::getDeleted, true)
 					.orderByDesc(HelpQuestion::getSort)));
 		});
-		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(page);
 	}
 
 	/**