Commit ba587f8d by 李传峰

Merge branch 'feature/1007126-release' into 'release'

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

See merge request rays/pcloud-book!1570
parents f1945b08 a13cb419
...@@ -861,6 +861,35 @@ public class BookDto extends BaseDto { ...@@ -861,6 +861,35 @@ public class BookDto extends BaseDto {
private Integer openRaysCode; 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() { public Integer getAppointBook() {
return appointBook; return appointBook;
} }
......
package com.pcloud.book.book.biz; package com.pcloud.book.book.biz;
import java.util.List;
import com.pcloud.book.book.dto.BookFreezeDto; import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze; import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.entity.ThawEarning; 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 { ...@@ -70,4 +72,10 @@ public interface BookFreezeBiz {
BookFreezeDto getById(Long bookId); BookFreezeDto getById(Long bookId);
Boolean setBookFreeze(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 { ...@@ -936,11 +936,20 @@ public class BookBizImpl implements BookBiz {
paramMap.put("channelIds", bookDetailDTO.getChannelIds()); paramMap.put("channelIds", bookDetailDTO.getChannelIds());
paramMap.put("adviserIds", bookDetailDTO.getAdviserIds()); paramMap.put("adviserIds", bookDetailDTO.getAdviserIds());
List<BookDto> bookDtos = bookDao.listBookGroupByBookIds(bookDetailDTO.getBookIds(), bookDetailDTO.getChannelIds(),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()); List<Long> xiaoRuiEducation = channelConsr.isXiaoRuiEducation(bookDetailDTO.getBookIds());
Map<Long, BigDecimal> booksGmv = tradeConsr.getBooksGmv(bookDetailDTO.getBookIds()); Map<Long, BigDecimal> booksGmv = tradeConsr.getBooksGmv(bookDetailDTO.getBookIds());
if (!ListUtils.isEmpty(bookDtos)) { if (!ListUtils.isEmpty(bookDtos)) {
for (BookDto bookDto : bookDtos) { for (BookDto bookDto : bookDtos) {
bookDto.setXiaoRuiEducation(false); 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); bookMap.put(bookDto.getBookId() + "_" + bookDto.getChannelId() + "_" + bookDto.getAdviserId(), bookDto);
if(CollUtil.isNotEmpty(xiaoRuiEducation) && xiaoRuiEducation.contains(bookDto.getBookId())){ if(CollUtil.isNotEmpty(xiaoRuiEducation) && xiaoRuiEducation.contains(bookDto.getBookId())){
bookDto.setXiaoRuiEducation(true); bookDto.setXiaoRuiEducation(true);
...@@ -954,6 +963,10 @@ public class BookBizImpl implements BookBiz { ...@@ -954,6 +963,10 @@ public class BookBizImpl implements BookBiz {
return bookMap; 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 @Override
public Map<String, BookDto> listDetailByIds(BookDetialDTO bookDetialDTO) throws BizException { public Map<String, BookDto> listDetailByIds(BookDetialDTO bookDetialDTO) throws BizException {
Map<String, BookDto> bookMap = null; Map<String, BookDto> bookMap = null;
......
...@@ -9,10 +9,14 @@ import com.pcloud.book.book.dto.BookFreezeDto; ...@@ -9,10 +9,14 @@ import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze; import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.entity.BookFund; import com.pcloud.book.book.entity.BookFund;
import com.pcloud.book.book.entity.ThawEarning; 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.core.constant.MQTopicProducer;
import com.pcloud.common.utils.DateUtils; import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.string.StringUtil; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.AmqpTemplate;
...@@ -21,6 +25,7 @@ import org.springframework.stereotype.Component; ...@@ -21,6 +25,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -262,4 +267,28 @@ public class BookFreezeBizImpl implements BookFreezeBiz { ...@@ -262,4 +267,28 @@ public class BookFreezeBizImpl implements BookFreezeBiz {
} }
return true; 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; ...@@ -2,6 +2,7 @@ package com.pcloud.book.book.dao;
import com.pcloud.book.book.dto.BookFreezeDto; import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze; import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.vo.BookFreezeInfoDto;
import com.pcloud.common.core.dao.BaseDao; import com.pcloud.common.core.dao.BaseDao;
import java.util.List; import java.util.List;
...@@ -80,4 +81,10 @@ public interface BookFreezeDao extends BaseDao<BookFreeze> { ...@@ -80,4 +81,10 @@ public interface BookFreezeDao extends BaseDao<BookFreeze> {
List<BookFreezeDto> listFreezeInfo(List<Long> bookIds); List<BookFreezeDto> listFreezeInfo(List<Long> bookIds);
BookFreezeDto getInfoById(Long bookId); 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; package com.pcloud.book.book.dao.impl;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pcloud.book.book.dao.BookFreezeDao; import com.pcloud.book.book.dao.BookFreezeDao;
import com.pcloud.book.book.dto.BookFreezeDto; import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze; import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.vo.BookFreezeInfoDto;
import com.pcloud.common.core.dao.BaseDaoImpl; import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -81,4 +83,23 @@ public class BookFreezeDaoImpl extends BaseDaoImpl<BookFreeze> implements BookFr ...@@ -81,4 +83,23 @@ public class BookFreezeDaoImpl extends BaseDaoImpl<BookFreeze> implements BookFr
public BookFreezeDto getInfoById(Long bookId) { public BookFreezeDto getInfoById(Long bookId) {
return this.getSqlSession().selectOne(this.getStatement("getInfoById"),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; ...@@ -5,22 +5,27 @@ import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.entity.BookFreeze; import com.pcloud.book.book.entity.BookFreeze;
import com.pcloud.book.book.entity.ThawEarning; import com.pcloud.book.book.entity.ThawEarning;
import com.pcloud.book.book.facade.BookFreezeFacade; 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.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException; import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil; import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie; import com.pcloud.common.utils.cookie.Cookie;
import io.swagger.annotations.ApiOperation;
import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping; 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.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; 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 { ...@@ -98,4 +103,15 @@ public class BookFreezeFacadeImpl implements BookFreezeFacade {
throws BizException, PermissionException, JsonParseException { throws BizException, PermissionException, JsonParseException {
return new ResponseDto<>(bookFreezeBiz.setBookFreeze(bookId)); 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 @@ ...@@ -145,7 +145,7 @@
<!-- 批量获取书刊当前和以后基金冻结信息 --> <!-- 批量获取书刊当前和以后基金冻结信息 -->
<select id="listFreezeInfo" resultMap="BaseResultMap" parameterType="list"> <select id="listFreezeInfo" resultMap="BaseResultMap" parameterType="list">
SELECT 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 FROM
`book_freeze` `book_freeze`
WHERE WHERE
...@@ -156,4 +156,49 @@ ...@@ -156,4 +156,49 @@
AND AND
IS_FREEZE = 1 IS_FREEZE = 1
</select> </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> </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