Selaa lähdekoodia

finikes alpha 16(表决时附加建议)

finikes 2 vuotta sitten
vanhempi
commit
3d02c4cc7d

+ 0 - 1
src/main/java/com/finikes/oc/base/controller/PassportController.java

@@ -107,7 +107,6 @@ public class PassportController {
             }
         }
 
-
         if (securityCode.equals(tmp.getVeriCode()) && (System.currentTimeMillis() + 6000 * 5) <= tmp.getVeriCodeDeadline()) {
             HttpSession session = request.getSession();
             session.setAttribute("PASSPORT", tmp);

+ 20 - 0
src/main/java/com/finikes/oc/vote/controller/VoteController.java

@@ -1,6 +1,7 @@
 package com.finikes.oc.vote.controller;
 
 import com.finikes.oc.common.ApiResponse;
+import com.finikes.oc.vote.dao.ChoiceDao;
 import com.finikes.oc.vote.dao.VoteActivityDao;
 import com.finikes.oc.vote.dto.*;
 import com.finikes.oc.vote.service.VoteService;
@@ -19,6 +20,9 @@ public class VoteController {
 
     private final VoteService voteService;
 
+    @Autowired
+    private ChoiceDao choiceDao;
+
     @Autowired
     private VoteActivityDao voteActivityDao;
 
@@ -161,6 +165,22 @@ public class VoteController {
         return ApiResponse.successful(dto);
     }
 
+    @GetMapping("/suggestion/s")
+    public ApiResponse<OptionSuggestions> suggestions(@RequestParam("voteId") Integer voteId, @RequestParam("page") Integer page, @RequestParam("pageCapacity") Integer pageCapacity) {
+        int offset = (page - 1) * pageCapacity;
+        List<OptionSuggestion> suggestions = choiceDao.getSuggestionSectionByVote(voteId, offset, pageCapacity);
+        OptionSuggestions optionSuggestions = new OptionSuggestions();
+        optionSuggestions.setSuggestions(suggestions);
+        int suggestionNum = choiceDao.getSuggestionNumByVote(voteId);
+        int pageQuantity = suggestionNum / pageCapacity;
+        if (suggestionNum % pageCapacity > 0) {
+            pageQuantity++;
+        }
+        optionSuggestions.setPageQuantity(String.valueOf(pageQuantity));
+
+        return ApiResponse.successful(optionSuggestions);
+    }
+
 
     /**
      * 异常处理器

+ 4 - 0
src/main/java/com/finikes/oc/vote/dao/ChoiceDao.java

@@ -1,6 +1,7 @@
 package com.finikes.oc.vote.dao;
 
 import com.finikes.oc.common.BaseDao;
+import com.finikes.oc.vote.dto.OptionSuggestion;
 import com.finikes.oc.vote.dto.OptionSummary;
 import com.finikes.oc.vote.entity.Choice;
 import org.apache.ibatis.annotations.Mapper;
@@ -17,4 +18,7 @@ public interface ChoiceDao extends BaseDao<Choice, Long> {
 
     List<OptionSummary> selectByVoteIds(@Param("voteIds") List<Integer> voteIds);
 
+    List<OptionSuggestion> getSuggestionSectionByVote(@Param("voteId") Integer voteId, @Param("offset") Integer offset, @Param("sectionCapacity") Integer sectionCapacity);
+
+    int getSuggestionNumByVote(Integer voteId);
 }

+ 40 - 0
src/main/java/com/finikes/oc/vote/dto/OptionSuggestion.java

@@ -0,0 +1,40 @@
+package com.finikes.oc.vote.dto;
+
+public class OptionSuggestion {
+    private int choiceId;
+    private int passportId;
+    private String passportName;
+    private String suggestion;
+
+    public int getChoiceId() {
+        return choiceId;
+    }
+
+    public void setChoiceId(int choiceId) {
+        this.choiceId = choiceId;
+    }
+
+    public int getPassportId() {
+        return passportId;
+    }
+
+    public void setPassportId(int passportId) {
+        this.passportId = passportId;
+    }
+
+    public String getPassportName() {
+        return passportName;
+    }
+
+    public void setPassportName(String passportName) {
+        this.passportName = passportName;
+    }
+
+    public String getSuggestion() {
+        return suggestion;
+    }
+
+    public void setSuggestion(String suggestion) {
+        this.suggestion = suggestion;
+    }
+}

+ 24 - 0
src/main/java/com/finikes/oc/vote/dto/OptionSuggestions.java

@@ -0,0 +1,24 @@
+package com.finikes.oc.vote.dto;
+
+import java.util.List;
+
+public class OptionSuggestions {
+    private String pageQuantity;
+    private List<OptionSuggestion> suggestions;
+
+    public String getPageQuantity() {
+        return pageQuantity;
+    }
+
+    public void setPageQuantity(String pageQuantity) {
+        this.pageQuantity = pageQuantity;
+    }
+
+    public List<OptionSuggestion> getSuggestions() {
+        return suggestions;
+    }
+
+    public void setSuggestions(List<OptionSuggestion> suggestions) {
+        this.suggestions = suggestions;
+    }
+}

+ 16 - 0
src/main/resources/mapper/ChoiceMapper.xml

@@ -59,4 +59,20 @@
         AND t_choice.option_id = t_option.id
         GROUP BY option_id;
     </select>
+
+    <select id="getSuggestionSectionByVote" resultType="com.finikes.oc.vote.dto.OptionSuggestion">
+        select c.id as choiceId, p.id as passportId, p.`name` as passportName, c.suggestion as suggestion
+        from t_choice c,
+             t_passport p
+        where c.option_id in (select id from t_option where vote_id = #{voteId})
+          and c.passport_id = p.id
+        ORDER BY c.choose_time desc LIMIT #{offset}, #{sectionCapacity}
+    </select>
+
+    <select id="getSuggestionNumByVote" resultType="java.lang.Integer">
+        select count(1)
+        from t_choice c
+        where c.option_id in
+              (select id from t_option where vote_id = #{voteId})
+    </select>
 </mapper>