tujidelv преди 3 години
родител
ревизия
8943c991ae

+ 14 - 1
src/main/java/top/lvzhiqiang/controller/QueryHeaderController.java

@@ -6,10 +6,12 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 import top.lvzhiqiang.entity.VideoCast;
 import top.lvzhiqiang.entity.VideoGenres;
+import top.lvzhiqiang.mapper.VideoInfoInfantryMapper;
 import top.lvzhiqiang.mapper.VideoInfoPoolMapper;
 import top.lvzhiqiang.mapper.VideoInfoUncensoredMapper;
 import top.lvzhiqiang.service.VideoCastService;
 import top.lvzhiqiang.service.VideoGenresService;
+import top.lvzhiqiang.util.StringUtils;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -36,9 +38,12 @@ public class QueryHeaderController {
     @Resource
     private VideoInfoUncensoredMapper videoInfoUncensoredMapper;
 
+    @Resource
+    private VideoInfoInfantryMapper videoInfoInfantryMapper;
+
     @RequestMapping("/getQueryHeaderInfo")
     @ResponseBody
-    public JSONObject getQueryHeaderInfo(String bigType) {
+    public JSONObject getQueryHeaderInfo(String bigType, String infantryType) {
         JSONObject result = new JSONObject();
 
         if ("骑兵".equals(bigType)) {
@@ -47,7 +52,15 @@ public class QueryHeaderController {
             result.put("videoCastList", videoCastList);
             result.put("videoGenresList", videoGenresList);
         } else if ("步兵".equals(bigType)) {
+            List<VideoGenres> videoGenresList = videoInfoInfantryMapper.findGenres();
+
+            if (StringUtils.isEmpty(infantryType)) {
+                infantryType = videoGenresList.get(0).getName();
+            }
 
+            List<VideoCast> videoCastList = videoInfoInfantryMapper.findCast(infantryType);
+            result.put("videoCastList", videoCastList);
+            result.put("videoGenresList", videoGenresList);
         } else if ("流出".equals(bigType)) {
             List<VideoCast> videoCastList = videoInfoUncensoredMapper.findCast();
             List<VideoGenres> videoGenresList = videoInfoUncensoredMapper.findGenres();

+ 3 - 12
src/main/java/top/lvzhiqiang/mapper/VideoInfoInfantryMapper.java

@@ -89,18 +89,9 @@ public interface VideoInfoInfantryMapper {
     @Update("update video_info_infantry set length = #{length}, director = #{director}, maker = #{maker}, issuer = #{issuer}, genres = #{genres}, cast = #{cast}, status = #{status}, modify_time = now() where identification_code = #{identificationCode}")
     void updateJsoupInfoByCode(VideoInfoUncensored videoInfoUncensored);
 
-    @Select("SELECT M.cast name,COUNT(M.cast) count " +
-            "FROM (" +
-            "         SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(viu.cast, ',', B.HELP_TOPIC_ID + 1), ',', - 1) AS cast" +
-            "         FROM video_info_infantry viu" +
-            "                  JOIN MYSQL.HELP_TOPIC B" +
-            "                       ON B.HELP_TOPIC_ID < (LENGTH(viu.cast) - LENGTH(REPLACE(viu.cast, ',', '')) + 1)" +
-            "         WHERE genres != ''" +
-            "     ) M " +
-            "GROUP BY M.cast " +
-            "ORDER BY COUNT(M.cast) DESC LIMIT 30")
-    List<VideoCast> findCast();
+    @Select("select main_who AS name, count(id) AS count from video_info_infantry where type = #{infantryType} group by main_who order by count(id) desc")
+    List<VideoCast> findCast(String infantryType);
 
-    @Select("select main_who AS name, count(id) AS count from video_info_infantry group by main_who order by count(id) desc")
+    @Select("select type AS name, count(id) AS count from video_info_infantry group by type order by count(id) desc")
     List<VideoGenres> findGenres();
 }

+ 12 - 3
src/main/java/top/lvzhiqiang/service/impl/VideoInfoServiceImpl.java

@@ -3,14 +3,15 @@ package top.lvzhiqiang.service.impl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.springframework.stereotype.Service;
+import top.lvzhiqiang.entity.VideoGenres;
 import top.lvzhiqiang.entity.VideoInfo;
+import top.lvzhiqiang.mapper.VideoInfoInfantryMapper;
 import top.lvzhiqiang.mapper.VideoInfoMapper;
 import top.lvzhiqiang.mapper.VideoInfoPoolMapper;
 import top.lvzhiqiang.mapper.VideoInfoUncensoredMapper;
 import top.lvzhiqiang.service.VideoInfoService;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -29,6 +30,8 @@ public class VideoInfoServiceImpl extends BaseServiceImpl<Object> implements Vid
     private VideoInfoPoolMapper videoInfoPoolMapper;
     @Resource
     private VideoInfoUncensoredMapper videoInfoUncensoredMapper;
+    @Resource
+    private VideoInfoInfantryMapper videoInfoInfantryMapper;
 
     /**
      * 查询所有
@@ -56,10 +59,10 @@ public class VideoInfoServiceImpl extends BaseServiceImpl<Object> implements Vid
     @Override
     public PageInfo<VideoInfo> getVideoInfoPage(Map<String, Object> params) {
         Object bigType = params.get("bigType");
-        List<VideoInfo> videoInfoList = new ArrayList<>();
+        List<VideoInfo> videoInfoList;
 
         // 转换成like
-        paramsToLike(params, "keyword", "cast");
+        paramsToLike(params, "keyword");
         // 分页
         paramsToPagination(params);
         // 排序
@@ -68,7 +71,13 @@ public class VideoInfoServiceImpl extends BaseServiceImpl<Object> implements Vid
         if ("骑兵".equals(bigType)) {
             videoInfoList = videoInfoMapper.getVideoInfoList(params);
         } else if ("步兵".equals(bigType)) {
+            Object genres = params.get("genres");
+            if (null == genres) {
+                List<VideoGenres> videoGenresList = videoInfoInfantryMapper.findGenres();
+                params.put("genres", videoGenresList.get(0).getName());
+            }
 
+            videoInfoList = videoInfoInfantryMapper.getVideoInfoInfantryList(params);
         } else if ("流出".equals(bigType)) {
             videoInfoList = videoInfoUncensoredMapper.getVideoInfoUncensoredList(params);
         } else if ("码池".equals(bigType)) {

+ 3 - 3
src/main/resources/mapper/VideoInfoInfantryMapper.xml

@@ -6,7 +6,7 @@
 <mapper namespace="top.lvzhiqiang.mapper.VideoInfoInfantryMapper">
 
     <select id="getVideoInfoInfantryList" resultType="top.lvzhiqiang.entity.VideoInfo">
-        select vi.id,vi.name,vi.identification_code,vi.issue_date,vi.modify_time,vi.img_url,vi.video_url,concat_ws('||', vi.cast, vi.genres) main_who,IFNULL(vio.score, 0) AS score, IFNULL(vio.comment, '暂无评论') AS comment
+        select vi.id,vi.name,vi.identification_code,vi.issue_date,vi.modify_time,concat_ws('/', vi.type, vi.img_url) img_url,concat_ws('/', vi.type, vi.video_url) video_url,concat_ws('||', vi.main_who, vi.type) main_who,IFNULL(vio.score, 0) AS score, IFNULL(vio.comment, '暂无评论') AS comment
         from video_info_infantry vi
         left join video_info_other vio on vi.identification_code = vio.identification_code and vio.delete_flag = 1
         where vi.delete_flag = 1
@@ -14,10 +14,10 @@
             and (vi.name like #{keyword} or vi.identification_code like #{keyword})
         </if>
         <if test="genres != null and genres != ''">
-            and vi.main_who = #{genres}
+            and vi.type = #{genres}
         </if>
         <if test="cast != null and cast != ''">
-            and vi.cast like concat('%',#{cast},'%')
+            and vi.main_who like concat('%',#{cast},'%')
         </if>
     </select>
 </mapper>

+ 1 - 1
src/main/resources/mapper/VideoInfoPoolMapper.xml

@@ -32,7 +32,7 @@
             </choose>
         </if>
         <if test="cast != null and cast != ''">
-            and vi.cast like #{cast}
+            and vi.cast like concat('%',#{cast},'%')
         </if>
     </select>
 </mapper>

+ 45 - 13
src/main/resources/static/js/my-video.js

@@ -1,6 +1,6 @@
 $(function () {
     initOther();
-    search(1, true);
+    search(1, true, false);
 });
 
 /**
@@ -19,16 +19,16 @@ function initOther() {
     });
 
     $("#searchbutton").click(function () {
-        search(1, false);
+        search(1, false, false);
     });
     $("#shaixuan").click(function () {
         $("#wd").val("");
 
-        search(1, false);
+        search(1, false, false);
     });
     $("#wd").keydown(function (e) {
         if (e.keyCode == 13) {
-            search(1, false);
+            search(1, false, false);
         }
     });
     $(".dropdown-box").find("li").click(function () {
@@ -36,8 +36,8 @@ function initOther() {
         $("#bigType").attr("prepath", $(this).attr("prepath"));
         $(".dropdown-box").attr("style", "display: none;");
 
-        getQueryHeaderInfo($("#bigType").text(), false);
-        search(1, false);
+        getQueryHeaderInfo($("#bigType").text(), false, true);
+        search(1, false, true);
     });
     $(".dropdown-hover").mouseover(function () {
         $(".dropdown-box").attr("style", "display: block;");
@@ -57,10 +57,13 @@ function initOther() {
  * 多条件搜索
  * @param pageNo
  */
-function search(pageNo, startFlag) {
+function search(pageNo, startFlag, searchSelectFlag) {
     var genres = "";
     var cast = "";
     var keyword = "";
+    if (searchSelectFlag) {
+        $("#wd").val("");
+    }
     if (!startFlag) {
         genres = $(".leixingul").find(".btn-warm").text().replace("全部", "");
         cast = $(".yanyuanul").find(".btn-warm").text().replace("全部", "");
@@ -71,6 +74,14 @@ function search(pageNo, startFlag) {
     var order = $(".paixuul").find(".btn-warm").attr("order");
     var bigType = $("#bigType").text();
     var prepath = $("#bigType").attr("prepath");
+
+    if (searchSelectFlag) {
+        genres = "";
+        cast = "";
+        orderField = "vi.issue_date";
+        order = "desc";
+    }
+
     $.ajax({
         url: "videoInfo/getVideoInfoPage", //请求的url地址
         dataType: "json", //返回格式为json
@@ -91,7 +102,7 @@ function search(pageNo, startFlag) {
             //请求成功时处理
             if (data != null && $.trim(data) != "" && data.success) {
                 if (startFlag) {
-                    getQueryHeaderInfo($("#bigType").text(), startFlag);
+                    getQueryHeaderInfo($("#bigType").text(), startFlag, false);
                 }
 
                 data = data.data;
@@ -136,7 +147,7 @@ function search(pageNo, startFlag) {
                         callback: function (pageNo) {
                             $("#wd").val("");
 
-                            search(pageNo, false);
+                            search(pageNo, false, false);
                         }
                     });
                 }
@@ -174,14 +185,30 @@ function search(pageNo, startFlag) {
  * @param bigType
  * @param startFlag
  */
-function getQueryHeaderInfo(bigType, startFlag) {
+function getQueryHeaderInfo(bigType, startFlag, searchSelectFlag) {
+    var infantryType = "";
+    if (bigType == '步兵' && !searchSelectFlag) {
+        infantryType = $(".leixingul").find(".btn-warm").text().replace("全部", "");
+    }
     $.ajax({
         url: "queryHeader/getQueryHeaderInfo", //请求的url地址
         dataType: "json", //返回格式为json
-        data: {"bigType": bigType}, //参数值
+        data: {"bigType": bigType, "infantryType": infantryType}, //参数值
         type: "post", //请求方式
         async: !startFlag, //请求是否异步,默认为异步,这也是ajax重要特性
         success: function (data) {
+            if (bigType == '步兵') {
+                $(".leixingli").css("display", "none");
+            } else {
+                $(".leixingli").css("display", "block");
+            }
+            if (searchSelectFlag){
+                $("ul.leixingul").find("a:eq(1)").addClass("btn-warm");
+                $("ul.yanyuanul").find("a:eq(1)").addClass("btn-warm");
+                $("ul.paixuul").find("a.btn-warm").removeClass("btn-warm");
+                $("ul.paixuul").find("a:eq(1)").addClass("btn-warm");
+            }
+
             //请求成功时处理
             if (data != null && $.trim(data.data) != "" && data.success) {
                 data = data.data;
@@ -212,7 +239,12 @@ function getQueryHeaderInfo(bigType, startFlag) {
                     var str = "";
                     for (var i = 0; i < videoGenresList.length; i++) {
                         var videoGenres = videoGenresList[i];
-                        str += "<li class='displayli'><a class=\"btn searchbtn\" title='" + videoGenres.count + "'>" + videoGenres.name + "</a></li>";
+
+                        if (bigType == '步兵' && i == 0) {
+                            str += "<li class='displayli'><a class=\"btn btn-warm searchbtn\" title='" + videoGenres.count + "'>" + videoGenres.name + "</a></li>";
+                        } else {
+                            str += "<li class='displayli'><a class=\"btn searchbtn\" title='" + videoGenres.count + "'>" + videoGenres.name + "</a></li>";
+                        }
                     }
                     $(".leixingul").append(str);
                 }
@@ -233,7 +265,7 @@ function getQueryHeaderInfo(bigType, startFlag) {
 
                     $("#wd").val("");
 
-                    search(1, false);
+                    search(1, false, false);
                 });
             } else {
                 alert(data.message);

+ 1 - 1
src/main/resources/static/video.html

@@ -195,7 +195,7 @@
                     <div class="slideDown-box" style="">
                         <ul class="myui-screen__list nav-slide clearfix leixingul" data-align="left">
                             <li><a class="text-muted btn">类型</a></li>
-                            <li><a class="btn btn-warm searchbtn leixing">全部</a></li>
+                            <li class="leixingli"><a class="btn btn-warm searchbtn leixing">全部</a></li>
                         </ul>
                         <ul class="myui-screen__list nav-slide clearfix yanyuanul" data-align="left">
                             <li><a class="btn text-muted">演员</a></li>