Commit a13cb419 by guiq

feat: [1007126] 【优化】近期市场支持需求0509

parent 8f351cc3
......@@ -861,6 +861,35 @@ public class BookDto extends BaseDto {
private Integer openRaysCode;
/**
* 冻结时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date freezetime;
/**
* 解冻时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date thawTime;
public Date getFreezetime() {
return freezetime;
}
public void setFreezetime(Date freezetime) {
this.freezetime = freezetime;
}
public Date getThawTime() {
return thawTime;
}
public void setThawTime(Date thawTime) {
this.thawTime = thawTime;
}
public Integer getAppointBook() {
return appointBook;
}
......
package com.pcloud.book.book.biz;
import java.util.List;
import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.entity.ThawEarning;
import com.pcloud.book.book.vo.BookFreezeFilterVO;
import com.pcloud.book.book.vo.BookFreezeInfoDto;
import java.util.List;
/**
* 图书冻结业务层接口
......@@ -70,4 +72,10 @@ public interface BookFreezeBiz {
BookFreezeDto getById(Long bookId);
Boolean setBookFreeze(Long bookId);
List<Long> filterFreezeBook(List<Long> bookIds);
List<Long> filterBook4Erp(BookFreezeFilterVO bookFreezeFilterVO);
List<BookFreezeInfoDto> listBookFreezeInfo(List<Long> bookIds);
}
......@@ -936,11 +936,20 @@ public class BookBizImpl implements BookBiz {
paramMap.put("channelIds", bookDetailDTO.getChannelIds());
paramMap.put("adviserIds", bookDetailDTO.getAdviserIds());
List<BookDto> bookDtos = bookDao.listBookGroupByBookIds(bookDetailDTO.getBookIds(), bookDetailDTO.getChannelIds(),bookDetailDTO.getAdviserIds());
Map<Long, BookFreezeDto> freezeDtoMap = Optional.ofNullable(bookFreezeBiz.listFreezeInfo(bookDetailDTO.getBookIds()))
.filter(org.apache.commons.collections4.CollectionUtils::isNotEmpty)
.map(this::convertToMap).orElse(Collections.emptyMap());
List<Long> xiaoRuiEducation = channelConsr.isXiaoRuiEducation(bookDetailDTO.getBookIds());
Map<Long, BigDecimal> booksGmv = tradeConsr.getBooksGmv(bookDetailDTO.getBookIds());
if (!ListUtils.isEmpty(bookDtos)) {
for (BookDto bookDto : bookDtos) {
bookDto.setXiaoRuiEducation(false);
BookFreezeDto bookFreezeDto = freezeDtoMap.get(bookDto.getBookId());
if (bookFreezeDto != null) {
bookDto.setFreezeStatus(bookFreezeDto.getFreezeStatus());
bookDto.setFreezetime(bookFreezeDto.getFreezetime());
bookDto.setThawTime(bookFreezeDto.getThawTime());
}
bookMap.put(bookDto.getBookId() + "_" + bookDto.getChannelId() + "_" + bookDto.getAdviserId(), bookDto);
if(CollUtil.isNotEmpty(xiaoRuiEducation) && xiaoRuiEducation.contains(bookDto.getBookId())){
bookDto.setXiaoRuiEducation(true);
......@@ -954,6 +963,10 @@ public class BookBizImpl implements BookBiz {
return bookMap;
}
private Map<Long, BookFreezeDto> convertToMap(List<BookFreezeDto> bookFreezeDtos) {
return bookFreezeDtos.stream().filter(Objects::nonNull).collect(Collectors.toMap(BookFreezeDto::getBookId, Function.identity(), (k1, k2) -> k1));
}
@Override
public Map<String, BookDto> listDetailByIds(BookDetialDTO bookDetialDTO) throws BizException {
Map<String, BookDto> bookMap = null;
......
......@@ -9,10 +9,14 @@ import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.entity.BookFund;
import com.pcloud.book.book.entity.ThawEarning;
import com.pcloud.book.book.vo.BookFreezeFilterVO;
import com.pcloud.book.book.vo.BookFreezeInfoDto;
import com.pcloud.common.core.constant.MQTopicProducer;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.string.StringUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
......@@ -21,6 +25,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
......@@ -262,4 +267,28 @@ public class BookFreezeBizImpl implements BookFreezeBiz {
}
return true;
}
@Override
public List<Long> filterFreezeBook(List<Long> bookIds) {
if (CollectionUtils.isEmpty(bookIds)) {
return Collections.emptyList();
}
return bookFreezeDao.filterFreezeBook(bookIds);
}
@Override
public List<Long> filterBook4Erp(BookFreezeFilterVO bookFreezeFilterVO) {
Integer bookFreeze = bookFreezeFilterVO.getBookFreeze();
String bookFreezeTimeBegin = bookFreezeFilterVO.getBookFreezeTimeBegin();
String bookFreezeTimeEnd = bookFreezeFilterVO.getBookFreezeTimeEnd();
if (bookFreeze == null && StringUtils.isAllBlank(bookFreezeTimeBegin, bookFreezeTimeEnd)) {
return Collections.emptyList();
}
return bookFreezeDao.filterBook4Erp(bookFreeze, bookFreezeTimeBegin, bookFreezeTimeEnd);
}
@Override
public List<BookFreezeInfoDto> listBookFreezeInfo(List<Long> bookIds) {
return bookFreezeDao.listBookFreezeInfo(bookIds);
}
}
......@@ -2,6 +2,7 @@ package com.pcloud.book.book.dao;
import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.vo.BookFreezeInfoDto;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
......@@ -80,4 +81,10 @@ public interface BookFreezeDao extends BaseDao<BookFreeze> {
List<BookFreezeDto> listFreezeInfo(List<Long> bookIds);
BookFreezeDto getInfoById(Long bookId);
List<Long> filterFreezeBook(List<Long> bookIds);
List<Long> filterBook4Erp(Integer bookFreeze, String bookFreezeTimeBegin, String bookFreezeTimeEnd);
List<BookFreezeInfoDto> listBookFreezeInfo(List<Long> bookIds);
}
package com.pcloud.book.book.dao.impl;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import com.pcloud.book.book.dao.BookFreezeDao;
import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.vo.BookFreezeInfoDto;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......@@ -81,4 +83,23 @@ public class BookFreezeDaoImpl extends BaseDaoImpl<BookFreeze> implements BookFr
public BookFreezeDto getInfoById(Long bookId) {
return this.getSqlSession().selectOne(this.getStatement("getInfoById"),bookId);
}
@Override
public List<Long> filterFreezeBook(List<Long> bookIds) {
return this.getSqlSession().selectList(getStatement("filterFreezeBook"), ImmutableMap.of("bookIds", bookIds));
}
@Override
public List<Long> filterBook4Erp(Integer bookFreeze, String bookFreezeTimeBegin, String bookFreezeTimeEnd) {
Map<String,Object> paramMap = new HashMap();
paramMap.put("bookFreeze", bookFreeze);
paramMap.put("bookFreezeTimeBegin", bookFreezeTimeBegin);
paramMap.put("bookFreezeTimeEnd", bookFreezeTimeEnd);
return getSqlSession().selectList(getStatement("filterBook4Erp"), paramMap);
}
@Override
public List<BookFreezeInfoDto> listBookFreezeInfo(List<Long> bookIds) {
return getSqlSession().selectList(getStatement("listBookFreezeInfo"), ImmutableMap.of("bookIds", bookIds));
}
}
......@@ -5,22 +5,27 @@ import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.entity.ThawEarning;
import com.pcloud.book.book.facade.BookFreezeFacade;
import com.pcloud.book.book.vo.BookFreezeFilterVO;
import com.pcloud.book.book.vo.BookFreezeInfoDto;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import io.swagger.annotations.ApiOperation;
import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* 图书冻结接口实现类
......@@ -98,4 +103,15 @@ public class BookFreezeFacadeImpl implements BookFreezeFacade {
throws BizException, PermissionException, JsonParseException {
return new ResponseDto<>(bookFreezeBiz.setBookFreeze(bookId));
}
@ApiOperation("filterBook4Erp")
@PostMapping("filterBook4Erp")
public ResponseDto<List<Long>> filterBook4Erp(@RequestBody BookFreezeFilterVO bookFreezeFilterVO){
return new ResponseDto<>(bookFreezeBiz.filterBook4Erp(bookFreezeFilterVO));
}
@PostMapping("listBookFreezeInfo")
public ResponseDto<List<BookFreezeInfoDto>> listBookFreezeInfo(@RequestBody List<Long> bookIds){
return new ResponseDto<>(bookFreezeBiz.listBookFreezeInfo(bookIds));
}
}
package com.pcloud.book.book.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class BookFreezeFilterVO {
@ApiModelProperty("收益冻结开始时间")
private String bookFreezeTimeBegin;
@ApiModelProperty("收益冻结结束时间")
private String bookFreezeTimeEnd;
@ApiModelProperty("收益冻结状态")
private Integer bookFreeze;
}
package com.pcloud.book.book.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class BookFreezeInfoDto {
private Long bookId;
private String freezeTime;
private Integer freezeStatus;
private String thawTime;
}
......@@ -145,7 +145,7 @@
<!-- 批量获取书刊当前和以后基金冻结信息 -->
<select id="listFreezeInfo" resultMap="BaseResultMap" parameterType="list">
SELECT
ID, BOOK_ID, IS_FREEZE, BOOK_FUND_ID,PROXY_MODE,TRANSFEROR
ID, BOOK_ID, IS_FREEZE, BOOK_FUND_ID,PROXY_MODE,TRANSFEROR,THAW_TIME,FREEZETIME
FROM
`book_freeze`
WHERE
......@@ -156,4 +156,49 @@
AND
IS_FREEZE = 1
</select>
<select id="filterFreezeBook" resultType="java.lang.Long">
SELECT
distinct BOOK_ID
FROM
`book_freeze`
WHERE
BOOK_ID IN
<foreach collection="bookIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
AND
IS_FREEZE = 1
</select>
<select id="filterBook4Erp" parameterType="map" resultType="long">
SELECT BOOK_ID
FROM book_freeze
<where>
<if test="bookFreeze != null">
IS_FREEZE = #{bookFreeze}
</if>
<if test="bookFreezeTimeBegin!=null and bookFreezeTimeBegin!= ''">
AND FREEZETIME >= #{bookFreezeTimeBegin}
</if>
<if test="bookFreezeTimeEnd!=null and bookFreezeTimeEnd!=''">
AND FREEZETIME <![CDATA[<=]]> #{bookFreezeTimeEnd}
</if>
</where>
</select>
<select id="listBookFreezeInfo" parameterType="map" resultType="com.pcloud.book.book.vo.BookFreezeInfoDto">
SELECT
BOOK_ID bookId,
DATE_FORMAT( FREEZETIME, '%Y-%m-%d' ) freezeTime,
IS_FREEZE freezeStatus,
DATE_FORMAT( THAW_TIME, '%Y-%m-%d' ) thawTime
FROM
book_freeze
where BOOK_ID IN
<foreach collection="bookIds" open="(" item="it" separator="," close=")">
#{it}
</foreach>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment