From 865b579c02932a9e0cb147e7a7cebc7dd754b30c Mon Sep 17 00:00:00 2001
From: xiezhijun <15270898033@163.com>
Date: Tue, 6 Jul 2021 10:15:12 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=8E=A5=E5=8F=A3?=
 =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=81=E5=8A=A0=E4=B8=8A=E9=9A=8F=E6=9C=BA?=
 =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=B0=8F=E7=9F=A5=E8=AF=86=E3=80=81=E6=A1=88?=
 =?UTF-8?q?=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../custom/WechatAppletController.java        | 49 +++++++++++++++----
 .../custom/mapper/SysCustomerCaseMapper.java  |  7 +++
 .../mapper/SysNutritionQuestionMapper.java    |  9 ++++
 .../service/ISysCustomerCaseService.java      |  7 +++
 .../service/ISysNutritionQuestionService.java |  9 ++++
 .../impl/SysCustomerCaseServiceImpl.java      | 10 ++++
 .../impl/SysNutritionQuestionServiceImpl.java | 10 ++++
 .../mapper/custom/SysCustomerCaseMapper.xml   |  6 +++
 .../custom/SysNutritionQuestionMapper.xml     |  7 ++-
 9 files changed, 103 insertions(+), 11 deletions(-)

diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
index a22baae83..a94f16d44 100644
--- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
+++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/WechatAppletController.java
@@ -1,6 +1,7 @@
 package com.stdiet.web.controller.custom;
 
 import com.aliyun.vod20170321.models.GetPlayInfoResponseBody;
+import com.stdiet.common.constant.HttpStatus;
 import com.stdiet.common.core.controller.BaseController;
 import com.stdiet.common.core.domain.AjaxResult;
 import com.stdiet.common.core.domain.entity.SysDictData;
@@ -16,6 +17,7 @@ import com.stdiet.common.utils.sign.AesUtils;
 import com.stdiet.custom.domain.*;
 import com.stdiet.custom.dto.response.CustomerCaseResponse;
 import com.stdiet.custom.dto.response.MessageNoticeResponse;
+import com.stdiet.custom.dto.response.NutritionQuestionResponse;
 import com.stdiet.custom.dto.response.NutritionalVideoResponse;
 import com.stdiet.custom.page.WxLogInfo;
 import com.stdiet.custom.service.*;
@@ -77,13 +79,24 @@ public class WechatAppletController extends BaseController {
      * 查询微信小程序中展示的客户案例
      */
     @GetMapping("/caseList")
-    public TableDataInfo caseList(SysCustomerCase sysCustomerCase) {
-        startPage();
-        sysCustomerCase.setKeywordArray(StringUtils.isNotEmpty(sysCustomerCase.getKeyword()) ? sysCustomerCase.getKeyword().split(",") : null);
-        List<CustomerCaseResponse> list = sysCustomerCaseService.getWxCustomerCaseList(sysCustomerCase);
-        //处理ID加密
-        dealIdEnc(list);
-        return getDataTable(list);
+    public TableDataInfo caseList(SysCustomerCase sysCustomerCase, @RequestParam(value = "pageSize",required = false,defaultValue = "10")int pageSize,
+                                  @RequestParam(value="randomFlag",required = false,defaultValue = "false") boolean randomFlag) {
+        if(randomFlag){
+            List<CustomerCaseResponse> reponseList = sysCustomerCaseService.getWxCustomerCaseByRandom(pageSize);
+            TableDataInfo rspData = new TableDataInfo();
+            rspData.setCode(HttpStatus.SUCCESS);
+            rspData.setMsg("查询成功");
+            rspData.setRows(reponseList);
+            rspData.setTotal(pageSize);
+            return rspData;
+        }else{
+            startPage();
+            sysCustomerCase.setKeywordArray(StringUtils.isNotEmpty(sysCustomerCase.getKeyword()) ? sysCustomerCase.getKeyword().split(",") : null);
+            List<CustomerCaseResponse> list = sysCustomerCaseService.getWxCustomerCaseList(sysCustomerCase);
+            //处理ID加密
+            dealIdEnc(list);
+            return getDataTable(list);
+        }
     }
 
     /**
@@ -327,14 +340,30 @@ public class WechatAppletController extends BaseController {
         }
     }
 
+    /**
+     *
+     */
     /**
      * 获取小程序展示的营养小知识列表
+     * @param sysNutritionQuestion 查询参数对象
+     * @param pageNum 分页当前页码
+     * @param pageSize 分页每页数量
+     * @param randomFlag 随机标识  true 随机获取指定pageSize数量的营养小知识,不支持分页、模糊查询  false 则正常查询
+     * @return
      */
     @GetMapping(value = "/getNutritionQuestionList")
-    public AjaxResult getNutritionQuestionList(SysNutritionQuestion sysNutritionQuestion, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+    public AjaxResult getNutritionQuestionList(SysNutritionQuestion sysNutritionQuestion, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
+                                               @RequestParam(value="randomFlag",required = false,defaultValue = "false") boolean randomFlag) {
         sysNutritionQuestion.setShowFlag(1);
-        Map<String, Object> result = sysNutritionQuestionService.getNutritionQuestionListByKey(sysNutritionQuestion, pageNum, pageSize);
-        return AjaxResult.success(result);
+        if(randomFlag){
+            //随机获取指定条数
+            sysNutritionQuestion.setKey(null);
+            List<NutritionQuestionResponse> list = sysNutritionQuestionService.getNutritionQuestionByRandom(sysNutritionQuestion, pageSize);
+            return AjaxResult.success(list);
+        }else{
+            Map<String, Object> result = sysNutritionQuestionService.getNutritionQuestionListByKey(sysNutritionQuestion, pageNum, pageSize);
+            return AjaxResult.success(result);
+        }
     }
 
     /**
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysCustomerCaseMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysCustomerCaseMapper.java
index 9a5927622..1fd30bbc8 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysCustomerCaseMapper.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysCustomerCaseMapper.java
@@ -75,4 +75,11 @@ public interface SysCustomerCaseMapper
      * @return
      */
     public int updateWxShowByIds(@Param("wxShow")Integer wxShow, @Param("array") Long[] ids);
+
+    /**
+     * 随机获取指定数量的客户案例
+     * @param pageSize
+     * @return
+     */
+    public List<CustomerCaseResponse> getWxCustomerCaseByRandom(@Param("pageSize")Integer pageSize);
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysNutritionQuestionMapper.java b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysNutritionQuestionMapper.java
index 0375c3cf0..1766f1d38 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysNutritionQuestionMapper.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/mapper/SysNutritionQuestionMapper.java
@@ -2,6 +2,7 @@ package com.stdiet.custom.mapper;
 
 import java.util.List;
 import com.stdiet.custom.domain.SysNutritionQuestion;
+import com.stdiet.custom.dto.response.NutritionQuestionResponse;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -87,4 +88,12 @@ public interface SysNutritionQuestionMapper
      * @return
      */
     public int updateWxShowByIds(@Param("wxShow")Integer wxShow, @Param("array") Long[] ids);
+
+    /**
+     * 随机获取指定数量的营养小知识
+     * @param sysNutritionQuestion
+     * @param pageSize
+     * @return
+     */
+    public List<NutritionQuestionResponse> getNutritionQuestionByRandom(SysNutritionQuestion sysNutritionQuestion, @Param("pageSize")Integer pageSize);
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysCustomerCaseService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysCustomerCaseService.java
index f17e6518e..9412c17d8 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysCustomerCaseService.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysCustomerCaseService.java
@@ -82,4 +82,11 @@ public interface ISysCustomerCaseService {
      */
     int updateWxShowByIds(Integer wxShow, Long[] ids);
 
+    /**
+     * 随机获取指定数量的客户案例
+     * @param pageSize
+     * @return
+     */
+    public List<CustomerCaseResponse> getWxCustomerCaseByRandom(Integer pageSize);
+
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysNutritionQuestionService.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysNutritionQuestionService.java
index 93f504de8..96392412b 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysNutritionQuestionService.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/ISysNutritionQuestionService.java
@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.stdiet.custom.domain.SysNutritionQuestion;
+import com.stdiet.custom.dto.response.NutritionQuestionResponse;
 
 /**
  * 营养知识小问答Service接口
@@ -81,4 +82,12 @@ public interface ISysNutritionQuestionService
      */
     public int updateWxShowByIds(Integer wxShow,  Long[] ids);
 
+    /**
+     * 随机获取指定数量的营养小知识
+     * @param sysNutritionQuestion
+     * @param pageSize
+     * @return
+     */
+    public List<NutritionQuestionResponse> getNutritionQuestionByRandom(SysNutritionQuestion sysNutritionQuestion, Integer pageSize);
+
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCustomerCaseServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCustomerCaseServiceImpl.java
index bcd95bc91..8d5571639 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCustomerCaseServiceImpl.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysCustomerCaseServiceImpl.java
@@ -180,4 +180,14 @@ public class SysCustomerCaseServiceImpl implements ISysCustomerCaseService
     public int updateWxShowByIds(Integer wxShow, Long[] ids){
         return sysCustomerCaseMapper.updateWxShowByIds(wxShow, ids);
     }
+
+    /**
+     * 随机获取指定数量的客户案例
+     * @param pageSize
+     * @return
+     */
+    @Override
+    public List<CustomerCaseResponse> getWxCustomerCaseByRandom(Integer pageSize){
+        return sysCustomerCaseMapper.getWxCustomerCaseByRandom(pageSize);
+    }
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysNutritionQuestionServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysNutritionQuestionServiceImpl.java
index 67ec70667..7435d853f 100644
--- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysNutritionQuestionServiceImpl.java
+++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysNutritionQuestionServiceImpl.java
@@ -326,4 +326,14 @@ public class SysNutritionQuestionServiceImpl implements ISysNutritionQuestionSer
         }
         return 0;
     }
+
+    /**
+     * 随机获取指定数量的营养小知识
+     * @param sysNutritionQuestion
+     * @param pageSize
+     * @return
+     */
+    public List<NutritionQuestionResponse> getNutritionQuestionByRandom(SysNutritionQuestion sysNutritionQuestion, Integer pageSize){
+        return sysNutritionQuestionMapper.getNutritionQuestionByRandom(sysNutritionQuestion, pageSize);
+    }
 }
\ No newline at end of file
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerCaseMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerCaseMapper.xml
index d6e02d44f..b8f7ca9d9 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysCustomerCaseMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysCustomerCaseMapper.xml
@@ -154,4 +154,10 @@
         </foreach>
     </update>
 
+    <!-- 随机获取指定数量可展示的客户案例 -->
+    <select id="getWxCustomerCaseByRandom" parameterType="int" resultMap="SysCustomerCaseResponseResult">
+        SELECT id, name, keyword, remark, wx_show from sys_customer_case WHERE del_flag = 0 and wx_show = 1
+        and id >= ((SELECT MAX(id) FROM sys_customer_case )-(SELECT MIN(id) FROM sys_customer_case )) * RAND() + (SELECT MIN(id) FROM sys_customer_case) LIMIT #{pageSize}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysNutritionQuestionMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysNutritionQuestionMapper.xml
index 608cda60f..68d861cbe 100644
--- a/stdiet-custom/src/main/resources/mapper/custom/SysNutritionQuestionMapper.xml
+++ b/stdiet-custom/src/main/resources/mapper/custom/SysNutritionQuestionMapper.xml
@@ -24,7 +24,6 @@
         <result property="title"    column="title"    />
         <result property="content"    column="content"    />
         <result property="key"    column="key"    />
-        <result property="key"    column="key"    />
         <result property="showFlag"    column="show_flag"    />
         <result property="createTime"    column="create_time"    />
     </resultMap>
@@ -127,6 +126,12 @@
         </foreach>
     </update>
 
+    <!-- 随机获取指定数量的营养小知识 -->
+    <select id="getNutritionQuestionByRandom" resultMap="SysNutritionQuestionResultExtended">
+            SELECT * FROM sys_nutrition_question WHERE del_flag = 0 and show_flag = 1
+            and id >= ((SELECT MAX(id) FROM sys_nutrition_question )-(SELECT MIN(id) FROM sys_nutrition_question )) * RAND() + (SELECT MIN(id) FROM sys_nutrition_question ) LIMIT #{pageSize}
+    </select>
+
 
 
 </mapper>
\ No newline at end of file