Skip to content

Commit

Permalink
vue element
Browse files Browse the repository at this point in the history
  • Loading branch information
wangzaiplus committed Dec 20, 2020
1 parent a72e4a5 commit 3fa4423
Show file tree
Hide file tree
Showing 15 changed files with 346 additions and 42 deletions.
109 changes: 88 additions & 21 deletions src/main/java/com/wangzaiplus/test/common/Constant.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
package com.wangzaiplus.test.common;

import com.wangzaiplus.test.dto.FundRankDto;
import com.wangzaiplus.test.dto.FundTypeDto;
import com.wangzaiplus.test.dto.FundYieldDto;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Constant {

Expand Down Expand Up @@ -72,44 +78,105 @@ public enum FundType {
QDII(5, "QDII")
;

private Integer code;
private String msg;
private Integer type;
private String desc;

FundType(Integer code, String msg) {
this.code = code;
this.msg = msg;
FundType(Integer type, String desc) {
this.type = type;
this.desc = desc;
}

public Integer getCode() {
return code;
public Integer getType() {
return type;
}

public String getMsg() {
return msg;
public String getDesc() {
return desc;
}

public static boolean contains(Integer code) {
FundType[] values = FundType.values();
return Arrays.stream(values).filter(fundType -> fundType.getCode() == code).findAny().isPresent();
return Arrays.stream(values).filter(fundType -> fundType.getType() == code).findAny().isPresent();
}

public static List<FundTypeDto> getTypeList() {
FundType[] values = FundType.values();
return Arrays.stream(values).map(fundType ->
FundTypeDto.builder()
.type(fundType.getType())
.desc(fundType.getDesc())
.build()
).collect(Collectors.toList());
}
}

public enum FundOrderByType {
BY_NET_VALUE("net_value"),
BY_YIELD_OF_ONE_YEAR("yield_of_one_year"),
BY_YIELD_OF_TWO_YEAR("yield_of_two_year"),
BY_YIELD_OF_THREE_YEAR("yield_of_three_year"),
BY_YIELD_OF_FIVE_YEAR("yield_of_five_year")
public enum FundYield {
YIELD_OF_ONE_YEAR("yield_of_one_year", "近1年收益率"),
YIELD_OF_TWO_YEAR("yield_of_two_year", "近2年收益率"),
YIELD_OF_THREE_YEAR("yield_of_three_year", "近3年收益率"),
YIELD_OF_FIVE_YEAR("yield_of_five_year", "近5年收益率")
;

private String type;
private String yield;
private String desc;

FundOrderByType(String type) {
this.type = type;
FundYield(String yield, String desc) {
this.yield = yield;
this.desc = desc;
}

public String getType() {
return type;
public String getYield() {
return yield;
}

public String getDesc() {
return desc;
}

public static List<FundYieldDto> getYieldList() {
FundYield[] values = FundYield.values();
return Arrays.stream(values).map(fundYield ->
FundYieldDto.builder()
.yield(fundYield.getYield())
.desc(fundYield.getDesc())
.build()
).collect(Collectors.toList());
}
}

public enum FundRank {
TOP_50(50, "前50"),
TOP_100(100, "前100"),
TOP_150(150, "前150"),
TOP_200(200, "前200"),
TOP_250(250, "前250"),
TOP_300(300, "前300")
;

private Integer rank;
private String desc;

FundRank(Integer rank, String desc) {
this.rank = rank;
this.desc = desc;
}

public Integer getRank() {
return rank;
}

public String getDesc() {
return desc;
}

public static List<FundRankDto> getRankList() {
FundRank[] values = FundRank.values();
return Arrays.stream(values).map(rank ->
FundRankDto.builder()
.rank(rank.getRank())
.desc(rank.getDesc())
.build()
).collect(Collectors.toList());
}
}

Expand Down
18 changes: 12 additions & 6 deletions src/main/java/com/wangzaiplus/test/controller/FundController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.wangzaiplus.test.common.ServerResponse;
import com.wangzaiplus.test.dto.FundDto;
import com.wangzaiplus.test.dto.SearchFormDto;
import com.wangzaiplus.test.service.FundService;
import com.wangzaiplus.test.util.FundUtils;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -28,15 +29,20 @@ public ServerResponse getFundDtoList(@RequestBody FundDto fundDto) {
return ServerResponse.success();
}

@PostMapping("search")
public ServerResponse search(@RequestBody FundDto fundDto) {
List<FundDto> list = fundService.search(fundDto);
@PostMapping("rank")
public ServerResponse rank(@RequestBody FundDto fundDto) {
List<FundDto> list = fundService.rank(fundDto);
return ServerResponse.success(list);
}

@PostMapping("combine")
public ServerResponse combine(@RequestBody FundDto fundDto) {
return ServerResponse.success(fundService.combine(fundDto));
@PostMapping("search")
public ServerResponse search(@RequestBody SearchFormDto searchFormDto) {
return fundService.search(searchFormDto);
}

@PostMapping("getSearchFormDto")
public ServerResponse getSearchFormDto() {
return fundService.getSearchFormDto();
}

}
16 changes: 16 additions & 0 deletions src/main/java/com/wangzaiplus/test/dto/FundRankDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.wangzaiplus.test.dto;

import lombok.*;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Builder
public class FundRankDto {

private Integer rank;
private String desc;

}
16 changes: 16 additions & 0 deletions src/main/java/com/wangzaiplus/test/dto/FundTypeDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.wangzaiplus.test.dto;

import lombok.*;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Builder
public class FundTypeDto {

private Integer type;
private String desc;

}
16 changes: 16 additions & 0 deletions src/main/java/com/wangzaiplus/test/dto/FundYieldDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.wangzaiplus.test.dto;

import lombok.*;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Builder
public class FundYieldDto {

private String yield;
private String desc;

}
19 changes: 19 additions & 0 deletions src/main/java/com/wangzaiplus/test/dto/SearchFormDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.wangzaiplus.test.dto;

import lombok.*;

import java.util.List;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Builder
public class SearchFormDto {

private List<FundTypeDto> typeList;
private List<FundYieldDto> yieldList;
private List<FundRankDto> rankList;

}
2 changes: 2 additions & 0 deletions src/main/java/com/wangzaiplus/test/mapper/FundMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,6 @@ public interface FundMapper extends BatchProcessMapper<Fund> {

List<Fund> selectByType(FundDto fundDto);

List<Integer> selectFundTypeList();

}
12 changes: 12 additions & 0 deletions src/main/java/com/wangzaiplus/test/mapper/FundMapper.xml
Original file line number Diff line number Diff line change
Expand Up @@ -186,4 +186,16 @@
</if>
</select>

<select id="selectFundTypeList" resultType="int">
SELECT
rank
FROM
fund
WHERE
STATUS = 1
AND is_deleted = 0
GROUP BY
rank
</select>

</mapper>
8 changes: 6 additions & 2 deletions src/main/java/com/wangzaiplus/test/service/FundService.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
package com.wangzaiplus.test.service;

import com.wangzaiplus.test.common.ServerResponse;
import com.wangzaiplus.test.dto.FundDto;
import com.wangzaiplus.test.dto.SearchFormDto;

import java.util.List;

public interface FundService {

List<FundDto> search(FundDto fundDto);
List<FundDto> rank(FundDto fundDto);

List<FundDto> combine(FundDto fundDto);
ServerResponse search(SearchFormDto searchFormDto);

void update(List<FundDto> list);

ServerResponse getSearchFormDto();

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

import com.google.common.collect.Lists;
import com.wangzaiplus.test.common.Constant;
import com.wangzaiplus.test.dto.FundDto;
import com.wangzaiplus.test.common.ResponseCode;
import com.wangzaiplus.test.common.ServerResponse;
import com.wangzaiplus.test.dto.*;
import com.wangzaiplus.test.exception.ServiceException;
import com.wangzaiplus.test.mapper.FundMapper;
import com.wangzaiplus.test.pojo.Fund;
import com.wangzaiplus.test.service.FundService;
Expand All @@ -13,6 +16,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

Expand All @@ -24,26 +28,41 @@ public class FundServiceImpl implements FundService {
private FundMapper fundMapper;

@Override
public List<FundDto> combine(FundDto fundDto) {
List<String> list = fundDto.getOrderByList();
if (CollectionUtils.isEmpty(list)) {
return null;
}
public ServerResponse search(SearchFormDto searchFormDto) {
check(searchFormDto);

List<List<FundDto>> lists = Lists.newArrayList();
for (String orderByType : list) {
List<FundYieldDto> yieldList = searchFormDto.getYieldList();
for (FundYieldDto yield : yieldList) {
FundDto dto = FundDto.builder()
.type(fundDto.getType())
.orderBy(orderByType)
.type(searchFormDto.getTypeList().get(Constant.INDEX_ZERO).getType())
.orderBy(yield.getYield())
.sort(Constant.FundSortType.DESC.getType())
.limit(fundDto.getLimit())
.limit(searchFormDto.getRankList().get(Constant.INDEX_ZERO).getRank())
.build();
List<Fund> fundList = fundMapper.selectByType(dto);
lists.add(toFundDtoList(fundList));
}

ListUtils listUtils = new ListUtils<FundDto>();
return listUtils.intersection(lists, true);
List intersection = listUtils.intersection(lists, true);

return ServerResponse.success(intersection);
}

private void check(SearchFormDto searchFormDto) {
if (null == searchFormDto) {
throw new ServiceException(ResponseCode.ILLEGAL_ARGUMENT.getMsg());
}

List<FundTypeDto> typeList = searchFormDto.getTypeList();
List<FundYieldDto> yieldList = searchFormDto.getYieldList();
List<FundRankDto> rankList = searchFormDto.getRankList();
if (CollectionUtils.isEmpty(typeList)
|| CollectionUtils.isEmpty(yieldList)
|| CollectionUtils.isEmpty(rankList)) {
throw new ServiceException(ResponseCode.ILLEGAL_ARGUMENT.getMsg());
}
}

@Override
Expand All @@ -66,7 +85,7 @@ public void update(List<FundDto> list) {
}

@Override
public List<FundDto> search(FundDto fundDto) {
public List<FundDto> rank(FundDto fundDto) {
List<Fund> fundList = fundMapper.selectByType(fundDto);
return toFundDtoList(fundList);
}
Expand All @@ -89,4 +108,14 @@ private List<FundDto> toFundDtoList(List<Fund> fundList) {
}).collect(Collectors.toList());
}

@Override
public ServerResponse getSearchFormDto() {
SearchFormDto searchFormDto = SearchFormDto.builder()
.typeList(Constant.FundType.getTypeList())
.yieldList(Constant.FundYield.getYieldList())
.rankList(Constant.FundRank.getRankList())
.build();
return ServerResponse.success(searchFormDto);
}

}
Loading

0 comments on commit 3fa4423

Please sign in to comment.