浏览代码

更多推荐预言家列表

wzw 6 年之前
父节点
当前提交
bf7953c1c3

+ 6 - 2
huozuan/src/main/java/com/huojutech/controller/weixin/ForecastController.java

@@ -180,15 +180,19 @@ public class ForecastController {
180 180
             @ApiParam(value = "预测数排序规则,0-升序  1-降序 (注:无法与priceOrderby、cpOrderby合用)", required = false) @RequestParam(required = false) Integer fnumOrderby,
181 181
             @ApiParam(value = "预测成功率排序规则,0-升序  1-降序 (注:无法与frateOrderby、concernOrderby合用))", required = false) @RequestParam(required = false) Integer frateOrderby,
182 182
             @ApiParam(value = "被关注数排序规则,0-升序  1-降序 (注:无法与fnumOrderby、fnumOrderby合用))", required = false) @RequestParam(required = false) Integer concernOrderby,
183
-            @ApiParam(value = "是否是查询订阅的预言家,1-是,null:不是", required = false) @RequestParam(required = false) Integer isSubscribe) throws ParseException {
183
+            @ApiParam(value = "是否是查询订阅的预言家,1:查询订阅的预言家 ,null:不是", required = false) @RequestParam(required = false) Integer isSubscribe,
184
+            @ApiParam(value = "更多预言家推荐,1:查询更多预言家推荐 ,null:不查,无法与isSubscribe合用" , required = false) @RequestParam(required = false) Integer recommend) throws ParseException {
184 185
         //获取所有的预测人的集合
185 186
         Integer sessionId = SessionConstants.getSession();
186 187
         List<StockForecast> allForecast = forecastService.findAllForecastUID();
187 188
         List<UserConcern> concerns = userConcernService.selectAllConcernCUID(sessionId);
189
+        List<User> recommondUid = userService.selectRecommondUid();
188 190
         List<SeerListDTO> list = new ArrayList<>();
189 191
         PageHelper.startPage(page, size);
190
-        if (isSubscribe!=null){
192
+        if (isSubscribe!=null && isSubscribe.equals(1)){
191 193
             list = forecastService.findAllConcern(concerns, nickName, fnumOrderby, frateOrderby, concernOrderby,stockCode);
194
+        }else if (recommend!=null && recommend.equals(1)){
195
+            list = forecastService.findAllRecommend(recommondUid,nickName,fnumOrderby,frateOrderby,concernOrderby,stockCode);
192 196
         }else {
193 197
             list = forecastService.findAllForecast(allForecast, nickName, fnumOrderby, frateOrderby, concernOrderby,stockCode);
194 198
         }

+ 14 - 0
huozuan/src/main/java/com/huojutech/dao/StockForecastMapper.java

@@ -3,6 +3,7 @@ package com.huojutech.dao;
3 3
 import com.huojutech.dto.SeerListDTO;
4 4
 import com.huojutech.entity.StockForecast;
5 5
 import com.huojutech.entity.StockForecastExample;
6
+import com.huojutech.entity.User;
6 7
 import com.huojutech.entity.UserConcern;
7 8
 import org.apache.ibatis.annotations.Mapper;
8 9
 import org.apache.ibatis.annotations.Param;
@@ -88,4 +89,17 @@ public interface StockForecastMapper {
88 89
      * @return
89 90
      */
90 91
     Integer updateVoteHarvestById(@Param("forecastId") Integer forecastId,@Param("harvest") BigDecimal harvest);
92
+
93
+    /**
94
+     * 更多推荐的预言家列表
95
+     * @param recommondUid
96
+     * @param nickName
97
+     * @param fnumOrderby
98
+     * @param frateOrderby
99
+     * @param concernOrderby
100
+     * @param stockCode
101
+     * @return
102
+     */
103
+    List<SeerListDTO> findAllRecommend(@Param("recommondUid") List<User> recommondUid, @Param("nickName") String nickName, @Param("fnumOrderby") Integer fnumOrderby, @Param("frateOrderby") Integer frateOrderby, @Param("concernOrderby") Integer concernOrderby, @Param("stockCode") String stockCode);
104
+
91 105
 }

+ 6 - 0
huozuan/src/main/java/com/huojutech/dao/UserMapper.java

@@ -59,4 +59,10 @@ public interface UserMapper {
59 59
      * @return
60 60
      */
61 61
     List<User> selectRecommendUser();
62
+
63
+    /**
64
+     * 查看推荐的预言家id
65
+     * @return
66
+     */
67
+    List<User> selectRecommondUid();
62 68
 }

+ 13 - 0
huozuan/src/main/java/com/huojutech/service/ForecastService.java

@@ -2,6 +2,7 @@ package com.huojutech.service;
2 2
 
3 3
 import com.huojutech.dto.SeerListDTO;
4 4
 import com.huojutech.entity.StockForecast;
5
+import com.huojutech.entity.User;
5 6
 import com.huojutech.entity.UserConcern;
6 7
 
7 8
 import java.util.List;
@@ -78,5 +79,17 @@ public interface ForecastService {
78 79
      * @return
79 80
      */
80 81
     List<SeerListDTO> findAllConcern(List<UserConcern> concerns, String nickName, Integer fnumOrderby, Integer frateOrderby, Integer concernOrderby, String stockCode);
82
+
83
+    /**
84
+     * 更多推荐的预言家列表
85
+     * @param recommondUid
86
+     * @param nickName
87
+     * @param fnumOrderby
88
+     * @param frateOrderby
89
+     * @param concernOrderby
90
+     * @param stockCode
91
+     * @return
92
+     */
93
+    List<SeerListDTO> findAllRecommend(List<User> recommondUid, String nickName, Integer fnumOrderby, Integer frateOrderby, Integer concernOrderby, String stockCode);
81 94
 }
82 95
 

+ 6 - 0
huozuan/src/main/java/com/huojutech/service/Impl/ForecastServiceImpl.java

@@ -6,6 +6,7 @@ import com.huojutech.dto.SeerListDTO;
6 6
 import com.huojutech.entity.StockForecast;
7 7
 import com.huojutech.entity.StockForecastExample;
8 8
 import com.huojutech.entity.StockForecastExample.Criteria;
9
+import com.huojutech.entity.User;
9 10
 import com.huojutech.entity.UserConcern;
10 11
 import com.huojutech.service.ForecastService;
11 12
 import org.springframework.beans.factory.annotation.Autowired;
@@ -80,5 +81,10 @@ public class ForecastServiceImpl implements ForecastService {
80 81
     public List<SeerListDTO> findAllConcern(List<UserConcern> concerns, String nickName, Integer fnumOrderby, Integer frateOrderby, Integer concernOrderby, String stockCode) {
81 82
         return stockForecastMapper.selectAllConcern(concerns,nickName,fnumOrderby,frateOrderby,concernOrderby,stockCode);
82 83
     }
84
+
85
+    @Override
86
+    public List<SeerListDTO> findAllRecommend(List<User> recommondUid, String nickName, Integer fnumOrderby, Integer frateOrderby, Integer concernOrderby, String stockCode) {
87
+        return stockForecastMapper.findAllRecommend(recommondUid,nickName,fnumOrderby,frateOrderby,concernOrderby,stockCode);
88
+    }
83 89
 }
84 90
 

+ 5 - 0
huozuan/src/main/java/com/huojutech/service/Impl/UserServiceImpl.java

@@ -102,4 +102,9 @@ public class UserServiceImpl implements UserService{
102 102
         return userMapper.selectRecommendUser();
103 103
     }
104 104
 
105
+    @Override
106
+    public List<User> selectRecommondUid() {
107
+        return userMapper.selectRecommondUid();
108
+    }
109
+
105 110
 }

+ 6 - 0
huozuan/src/main/java/com/huojutech/service/UserService.java

@@ -75,4 +75,10 @@ public interface UserService {
75 75
      * @return
76 76
      */
77 77
     List<User> selectRecommendUser();
78
+
79
+    /**
80
+     * 查出被推荐的预言家列表
81
+     * @return
82
+     */
83
+    List<User> selectRecommondUid();
78 84
 }

+ 41 - 0
huozuan/src/main/resources/mappers/StockForecastMapper.xml

@@ -440,6 +440,47 @@
440 440
       </choose>
441 441
     </trim>
442 442
   </select>
443
+
444
+
445
+  <!--更多预言家推荐-->
446
+  <select id="findAllRecommend" resultMap="seerMap">
447
+    select distinct a.id,a.nickname,a.avatar,a.forecast_rate_success,a.fnum,a.cnum from user a
448
+    left join stock_forecast b on a.id = b.uid
449
+    left join user_concern c on a.id=c.uid
450
+    <trim prefix="WHERE" prefixOverrides="AND|OR" >
451
+      <if test="recommondUid != null and recommondUid.size() > 0">
452
+        <foreach collection="recommondUid" open="a.id in (" separator="," close=")" item="uid">
453
+          #{uid}
454
+        </foreach>
455
+      </if>
456
+      <if test="nickName != null and nickName != ''">
457
+        AND (a.nickName like CONCAT('%',#{nickName},'%'))
458
+      </if>
459
+      <if test="stockCode != null and stockCode != ''">
460
+        AND (b.stock_code =#{stockCode})
461
+      </if>
462
+
463
+    </trim>
464
+
465
+    <trim prefix="ORDER BY" prefixOverrides="," >
466
+      <choose>
467
+        <when test="fnumOrderby == 0"> a.fnum ASC,a.id asc</when>
468
+        <when test="fnumOrderby == 1"> a.fnum DESC,a.id asc</when>
469
+        <otherwise></otherwise>
470
+      </choose>
471
+      <choose>
472
+        <when test="frateOrderby == 0">,a.forecast_rate_success ASC,a.id asc</when>
473
+        <when test="frateOrderby == 1">,a.forecast_rate_success DESC,a.id asc</when>
474
+        <otherwise></otherwise>
475
+      </choose>
476
+      <choose>
477
+        <when test="concernOrderby == 0">,a.cnum ASC,a.id asc</when>
478
+        <when test="concernOrderby == 1">,a.cnum DESC,a.id asc</when>
479
+        <otherwise></otherwise>
480
+      </choose>
481
+    </trim>
482
+  </select>
483
+
443 484
   <!-- 简单对象 -->
444 485
   <resultMap type="com.huojutech.dto.SeerListDTO" id="seerMap">
445 486
     <result column="id" property="id"/>

+ 5 - 0
huozuan/src/main/resources/mappers/UserMapper.xml

@@ -358,4 +358,9 @@
358 358
   <select id="selectRecommendUser" resultMap="BaseResultMap">
359 359
     select id,nickname,avatar,forecast_rate_success from user where recommend!=0 order by  recommend asc,id asc limit 0,3
360 360
   </select>
361
+
362
+  <!--查询被推荐预言家id-->
363
+  <select id="selectRecommondUid" resultType="Integer">
364
+    select id from user where recommend!=0 order by  recommend asc,id asc
365
+  </select>
361 366
 </mapper>