Commit b4f0d66e authored by shiyu's avatar shiyu

Merge branch 'quanku_v2.7' into quanku_v2.7.1

# Conflicts:
#	ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
parents f77290cb 61b7ac77
......@@ -25,6 +25,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import java.time.Duration;
import java.time.Instant;
import java.util.*;
import java.util.logging.Handler;
import java.util.stream.Collectors;
......@@ -230,8 +232,20 @@ public class SysSpecialPerformanceServiceImpl implements SysSpecialPerformanceSe
@Override
public Result reSale(SpecialPerformanceConfigRequestDto dto) {
try {
//拍卖配置重新生效
auctionConfigDao.updateState(dto.getItemId(), AuctionEnum.StateEnum.WAIT_ON_SALE.getCode());
//拍卖配置重新生效, 重新上架默认时间为当前时间延后2小时
Date now = new Date();
Instant startInstant = now.toInstant().plus(Duration.ofHours(2));
Date startTime = Date.from(startInstant);
Instant endInstant = now.toInstant().plus(Duration.ofDays(1));
Date endTime = Date.from(endInstant);
AuctionConfig auctionConfig = new AuctionConfig();
auctionConfig.setItemId(dto.getItemId());
auctionConfig.setStartTime(startTime);
auctionConfig.setEndTime(endTime);
auctionConfig.setRealEndTime(endTime);
auctionConfig.setState(AuctionEnum.StateEnum.WAIT_ON_SALE.getCode());
auctionConfigDao.updateByItemId(auctionConfig);
//商品表中,商品重新上架
SupplierItem supplierItem = new SupplierItem();
......
......@@ -34,6 +34,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.URL;
import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
......@@ -266,7 +268,9 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
auctionConfigRequestDto.setPage(dto.getPage());
auctionConfigRequestDto.setLimit(dto.getLimit());
auctionConfigRequestDto.setState(AuctionEnum.StateEnum.WAIT_ON_SALE.getCode());
if (!org.springframework.util.CollectionUtils.isEmpty(filterItemIds)) {
auctionConfigRequestDto.setFilterItemIds(filterItemIds);
}
List<AuctionConfig> auctionConfigList = auctionConfigDao.findList(auctionConfigRequestDto);
PageInfo pageInfo = new PageInfo(auctionConfigList);
List<Long> itemIds = auctionConfigList.stream().map(AuctionConfig::getItemId).collect(Collectors.toList());
......@@ -513,10 +517,17 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
auctionConfig.setCreatorId(oldItem.getCreatorId());
auctionConfig.setIsValid(false);
auctionConfig.setIsDeal(false);
auctionConfig.setStartTime(StringUtils.isEmpty(dto.getAuctionStartTime()) ? new Date(): DateUtils.parseString(dto.getAuctionStartTime()));
auctionConfig.setEndTime(StringUtils.isEmpty(dto.getAuctionEndTime()) ? new Date(): DateUtils.parseString(dto.getAuctionEndTime()));
auctionConfig.setRealEndTime(StringUtils.isEmpty(dto.getAuctionEndTime()) ? new Date(): DateUtils.parseString(dto.getAuctionEndTime()));
Instant startInstant = now.toInstant().plus(Duration.ofHours(2));
Date startTime = Date.from(startInstant);
Instant endInstant = now.toInstant().plus(Duration.ofDays(1));
Date endTime = Date.from(endInstant);
auctionConfig.setStartTime(StringUtils.isEmpty(dto.getAuctionStartTime()) ? startTime : DateUtils.parseString(dto.getAuctionStartTime()));
auctionConfig.setEndTime(StringUtils.isEmpty(dto.getAuctionEndTime()) ? endTime : DateUtils.parseString(dto.getAuctionEndTime()));
auctionConfig.setRealEndTime(StringUtils.isEmpty(dto.getAuctionEndTime()) ? endTime : DateUtils.parseString(dto.getAuctionEndTime()));
auctionConfig.setStartPrice(StringUtils.isEmpty(dto.getStartPrice()) ? 0 : PriceUtil.convertPriceFromStr(dto.getStartPrice()));
auctionConfig.setAddExtent(StringUtils.isEmpty(dto.getAddExtent()) ? 5000 : PriceUtil.convertPriceFromStr(dto.getAddExtent()));
auctionConfig.setAddExtent(StringUtils.isEmpty(dto.getAddExtent()) ? 50 : PriceUtil.convertPriceFromStr(dto.getAddExtent()));
auctionConfig.setEstimatedPrice(StringUtils.isEmpty(dto.getEstimatedPrice()) ? 999999999 : PriceUtil.convertPriceFromStr(dto.getEstimatedPrice()));
auctionConfig.setCreateTime(now);
......
......@@ -25,6 +25,15 @@ public interface AuctionConfigDao {
*/
int update(AuctionConfig auctionConfig);
/**
* 更新拍卖配置
*
* @param auctionConfig
* @return
*/
int updateByItemId(AuctionConfig auctionConfig);
/**
* 更新状态
* @param itemId
......
......@@ -9,7 +9,7 @@ public interface SpecialPerformanceDao {
List<SpecialPerformance> find(SpecialPerformanceRequestDto dto);
SpecialPerformance findByType(int type);
SpecialPerformance findByType(SpecialPerformanceRequestDto dto);
SpecialPerformance findById(int id);
......
......@@ -5,6 +5,7 @@ import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class SpecialPerformanceRequestDto extends BaseRequestDto implements Entity {
......@@ -57,6 +58,8 @@ public class SpecialPerformanceRequestDto extends BaseRequestDto implements Enti
*/
private Integer state;
private List<Integer> stateList;
/**
* 排除的状态
*/
......
......@@ -39,6 +39,16 @@ public class AuctionConfigDaoImpl implements AuctionConfigDao {
return auctionConfigMapper.updateByPrimaryKeySelective(auctionConfig);
}
@Override
public int updateByItemId(AuctionConfig auctionConfig) {
auctionConfig.setUpdateTime(new Date());
AuctionConfigExample example = new AuctionConfigExample();
AuctionConfigExample.Criteria criteria = example.createCriteria();
criteria.andItemIdEqualTo(auctionConfig.getItemId());
return auctionConfigMapper.updateByExampleSelective(auctionConfig, example);
}
@Override
public int updateState(long itemId, int state) {
AuctionConfigExample example = new AuctionConfigExample();
......
......@@ -35,11 +35,11 @@ public class SpecialPerformanceDaoImpl implements SpecialPerformanceDao {
}
@Override
public SpecialPerformance findByType(int type) {
public SpecialPerformance findByType(SpecialPerformanceRequestDto dto) {
SpecialPerformanceExample example = new SpecialPerformanceExample();
SpecialPerformanceExample.Criteria criteria = example.createCriteria();
criteria.andTypeEqualTo(type);
criteria.andStateEqualTo(2);
criteria.andTypeEqualTo(dto.getType());
JdbcHelper.ifPresent(dto.getStateList(), criteria::andStateIn);
return specialPerformanceMapper.selectOneByExample(example);
}
......
......@@ -94,7 +94,8 @@ public class SpecialPerformanceServiceImpl implements SpecialPerformanceService
}
SpecialPerformanceVo specialPerformanceVo = new SpecialPerformanceVo();
SpecialPerformance specialPerformance = specialPerformanceDao.findByType(dto.getType());
dto.setStateList(Arrays.asList(SpecialPerformanceEnum.StateEnum.PREVIEW.getCode(), SpecialPerformanceEnum.StateEnum.PROCESSING.getCode()));
SpecialPerformance specialPerformance = specialPerformanceDao.findByType(dto);
if (specialPerformance == null) {
return Result.success(specialPerformanceVo);
}
......@@ -252,7 +253,10 @@ public class SpecialPerformanceServiceImpl implements SpecialPerformanceService
@Override
public Result sendMsg() {
try {
SpecialPerformance specialPerformance = specialPerformanceDao.findByType(SpecialPerformanceEnum.TypeEnum.AUCTION.getCode());
SpecialPerformanceRequestDto specialPerformanceRequestDto = new SpecialPerformanceRequestDto();
specialPerformanceRequestDto.setType(SpecialPerformanceEnum.TypeEnum.AUCTION.getCode());
specialPerformanceRequestDto.setState(SpecialPerformanceEnum.StateEnum.PROCESSING.getCode());
SpecialPerformance specialPerformance = specialPerformanceDao.findByType(specialPerformanceRequestDto);
if (specialPerformance == null) {
return Result.failed("专场信息为空");
}
......
......@@ -164,7 +164,7 @@ public class SpecialPerformanceNoticeJob {
specialPerformanceRequestDto.setFilterState(SpecialPerformanceEnum.StateEnum.END.getCode());
List<SpecialPerformance> specialPerformanceList = specialPerformanceDao.find(specialPerformanceRequestDto);
Date now = new Date();
Instant startInstant = now.toInstant().minus(Duration.ofDays(1));
Instant startInstant = now.toInstant().plus(Duration.ofDays(1));
Date startTime = Date.from(startInstant);
for (SpecialPerformance specialPerformance : specialPerformanceList) {
if (specialPerformance.getState().intValue() == SpecialPerformanceEnum.StateEnum.DELETED.getCode()) {
......@@ -172,7 +172,7 @@ public class SpecialPerformanceNoticeJob {
} else if (specialPerformance.getState().intValue() == SpecialPerformanceEnum.StateEnum.NOT_START.getCode()) {
//未开始的专场判断是否需要改为预展中,开始时间提前一天预展
//设置为预展中
if (now.after(specialPerformance.getStartTime()) && specialPerformance.getStartTime().after(startTime)) {
if (startTime.before(specialPerformance.getStartTime()) && specialPerformance.getStartTime().after(now)) {
if (specialPerformance.getState().intValue() != SpecialPerformanceEnum.StateEnum.PREVIEW.getCode()) {
specialPerformanceDao.updateState(specialPerformance.getId(), SpecialPerformanceEnum.StateEnum.PREVIEW.getCode());
}
......@@ -205,7 +205,7 @@ public class SpecialPerformanceNoticeJob {
AuctionConfig auctionConfig = auctionConfigDao.findByItemId(itemId);
if (auctionConfig.getState().intValue() == AuctionEnum.StateEnum.WAIT_ON_SALE.getCode()) {
//待上架的拍品判断是否需要改为预展中,开始时间提前一天预展
if (auctionConfig.getStartTime().after(startTime) && auctionConfig.getStartTime().before(now)) {
if (startTime.before(auctionConfig.getStartTime()) && auctionConfig.getStartTime().after(now)) {
if (auctionConfig.getState().intValue() != AuctionEnum.StateEnum.PREVIEW.getCode()) {
auctionConfigDao.updateState(itemId, AuctionEnum.StateEnum.PREVIEW.getCode());
}
......
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