Commit d12e0873 authored by shiyu's avatar shiyu

藏品转拍卖品

parent 5fca7826
...@@ -125,6 +125,7 @@ public class ShiroConfig { ...@@ -125,6 +125,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/admin/imageCatelog/**", "anon"); filterChainDefinitionMap.put("/admin/imageCatelog/**", "anon");
filterChainDefinitionMap.put("/admin/identifyOrder/**", "anon"); filterChainDefinitionMap.put("/admin/identifyOrder/**", "anon");
filterChainDefinitionMap.put("/admin/dashboard/**", "anon"); filterChainDefinitionMap.put("/admin/dashboard/**", "anon");
filterChainDefinitionMap.put("/admin/specialPerformance/**", "anon");
filterChainDefinitionMap.put("/admin/invitationCode/**", "anon"); filterChainDefinitionMap.put("/admin/invitationCode/**", "anon");
......
package com.wwdz.ch.admin.controller;
import com.alibaba.fastjson.JSON;
import com.wwdz.ch.admin.service.SysSpecialPerformanceService;
import com.wwdz.ch.admin.service.SysSupplierItemService;
import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceConfigRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/admin/specialPerformance")
public class SysSpecialPerformanceController {
private static final Logger logger = LoggerFactory.getLogger(SysSpecialPerformanceController.class);
@Autowired
SysSupplierItemService sysSupplierItemService;
@Autowired
SysSpecialPerformanceService sysSpecialPerformanceService;
@ApiOperation(value = "查询拍卖专场列表")
@PostMapping("/findList")
public Result findList(@RequestBody SpecialPerformanceRequestDto dto) {
logger.info("查询拍卖专场列表,请求参数:{}", JSON.toJSONString(dto));
return sysSpecialPerformanceService.findList(dto);
}
@ApiOperation(value = "查询拍卖专场详情")
@PostMapping("/findDetail")
public Result findDetail(@RequestBody SpecialPerformanceRequestDto dto) {
logger.info("查询拍卖专场详情,请求参数:{}", JSON.toJSONString(dto));
if (dto.getSpecialPerformanceId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return sysSpecialPerformanceService.findDetail(dto);
}
@ApiOperation(value = "修改拍卖专场")
@PostMapping("/update")
public Result update(@RequestBody SpecialPerformanceRequestDto dto) {
logger.info("修改拍卖专场,请求参数:{}", JSON.toJSONString(dto));
if (dto.getSpecialPerformanceId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return sysSpecialPerformanceService.update(dto);
}
@ApiOperation(value = "查询专场的商品列表")
@PostMapping("/findItemListById")
public Result findItemListById(@RequestBody SpecialPerformanceConfigRequestDto dto) {
logger.info("查询专场的商品列表,请求参数:{}", JSON.toJSONString(dto));
if (dto.getSpecialPerformanceId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return sysSpecialPerformanceService.findItemListById(dto);
}
}
...@@ -7,11 +7,13 @@ import com.wwdz.ch.core.consts.ResultCode; ...@@ -7,11 +7,13 @@ import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto; import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import com.xxdxxs.service.FormHandler; import com.xxdxxs.service.FormHandler;
import com.xxdxxs.utils.StringUtils;
import com.xxdxxs.validation.Validator; import com.xxdxxs.validation.Validator;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping; 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.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -62,6 +64,14 @@ public class SysSupplierItemController { ...@@ -62,6 +64,14 @@ public class SysSupplierItemController {
return sysSupplierItemService.findList(dto); return sysSupplierItemService.findList(dto);
} }
@ApiOperation(value = "查询拍卖品列表")
@PostMapping("/findAuctionList")
public Result findAuctionList(@RequestBody SupplierItemRequestDto dto) {
logger.info("查询拍卖品列表,请求参数:{}", JSON.toJSONString(dto));
return sysSupplierItemService.findAuctionList(dto);
}
@ApiOperation(value = "查询商品详情") @ApiOperation(value = "查询商品详情")
@PostMapping("/findDetail") @PostMapping("/findDetail")
public Result findDetail(@RequestBody SupplierItemRequestDto dto) { public Result findDetail(@RequestBody SupplierItemRequestDto dto) {
...@@ -102,4 +112,15 @@ public class SysSupplierItemController { ...@@ -102,4 +112,15 @@ public class SysSupplierItemController {
} }
return sysSupplierItemService.irregularOff(dto); return sysSupplierItemService.irregularOff(dto);
} }
@ApiOperation(value = "藏品上拍")
@PostMapping("/collectorItemConvertToAuction")
public Result collectorItemConvertToAuction(@RequestBody SupplierItemRequestDto dto) {
logger.info("藏品上拍,请求参数:{}", JSON.toJSONString(dto));
if (StringUtils.isEmpty(dto.getItemIdsStr())) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return sysSupplierItemService.collectorItemConvertToAuction(dto);
}
} }
...@@ -2,18 +2,34 @@ package com.wwdz.ch.admin.impl; ...@@ -2,18 +2,34 @@ package com.wwdz.ch.admin.impl;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.service.SysSpecialPerformanceService; import com.wwdz.ch.admin.service.SysSpecialPerformanceService;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.SpecialPerformanceEnum;
import com.wwdz.ch.core.consts.SupplierItemEnum;
import com.wwdz.ch.core.entity.SpecialPerformanceVo;
import com.wwdz.ch.core.entity.SupplierItemVo;
import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.distribution.SpecialPerformanceConfigDao; import com.wwdz.ch.core.util.CacheUtil;
import com.wwdz.ch.db.dao.distribution.SpecialPerformanceDao; import com.wwdz.ch.core.util.MediaUtil;
import com.wwdz.ch.db.domain.distribution.SpecialPerformance; import com.wwdz.ch.core.util.PriceUtil;
import com.wwdz.ch.db.dao.distribution.*;
import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.AuctionRecordRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceConfigRequestDto; import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceConfigRequestDto;
import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceRequestDto; import com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceRequestDto;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.*;
import java.util.logging.Handler;
import java.util.stream.Collectors;
@Service @Service
public class SysSpecialPerformanceServiceImpl implements SysSpecialPerformanceService { public class SysSpecialPerformanceServiceImpl implements SysSpecialPerformanceService {
...@@ -26,31 +42,145 @@ public class SysSpecialPerformanceServiceImpl implements SysSpecialPerformanceSe ...@@ -26,31 +42,145 @@ public class SysSpecialPerformanceServiceImpl implements SysSpecialPerformanceSe
@Autowired @Autowired
SpecialPerformanceConfigDao specialPerformanceConfigDao; SpecialPerformanceConfigDao specialPerformanceConfigDao;
@Autowired
AuctionRecordDao auctionRecordDao;
@Autowired
SupplierItemDao supplierItemDao;
@Autowired
CacheUtil cacheUtil;
@Autowired
AuctionConfigDao auctionConfigDao;
@Override @Override
public Result findList(SpecialPerformanceRequestDto dto) { public Result findList(SpecialPerformanceRequestDto dto) {
try { try {
List<SpecialPerformance> list = specialPerformanceDao.find(dto); List<SpecialPerformance> list = specialPerformanceDao.find(dto);
PageInfo pageInfo = new PageInfo(list); PageInfo pageInfo = new PageInfo(list);
List<SpecialPerformanceVo> specialPerformanceVos = new ArrayList<>();
for (SpecialPerformance specialPerformance : list) {
SpecialPerformanceVo specialPerformanceVo = new SpecialPerformanceVo();
EntityMapper.copyAttribute(specialPerformance, specialPerformanceVo);
//查询专场藏品数
long itemNum = specialPerformanceConfigDao.countItem(specialPerformance.getId());
specialPerformanceVo.setItemNum(itemNum);
//出价总数
List<SpecialPerformanceConfig> allItemlist = specialPerformanceConfigDao.findAllItem(dto.getSpecialPerformanceId());
List<Long> itemIdList = allItemlist.stream().map(SpecialPerformanceConfig::getItemId).collect(Collectors.toList());
AuctionRecordRequestDto auctionRecordRequestDtoOfTotal = new AuctionRecordRequestDto();
auctionRecordRequestDtoOfTotal.setItemIdList(itemIdList);
long totalOfferNum = auctionRecordDao.count(auctionRecordRequestDtoOfTotal);
specialPerformanceVo.setOfferNum(totalOfferNum);
specialPerformanceVos.add(specialPerformanceVo);
}
return Result.success(PageSearchResult.of(pageInfo, specialPerformanceVos));
} catch (Exception e) { } catch (Exception e) {
logger.error("查询专场列表失败:{}", e); logger.error("查询专场列表失败:{}", e);
} }
return null; return Result.failed();
} }
@Override @Override
public Result findItemListById(SpecialPerformanceRequestDto dto) { public Result findDetail(SpecialPerformanceRequestDto dto) {
return null; try {
SpecialPerformance specialPerformance = specialPerformanceDao.findById(dto.getSpecialPerformanceId());
return Result.success(specialPerformance);
} catch (Exception e) {
logger.error("查询专场详情失败:{}", e);
}
return Result.failed();
}
@Override
public Result update(SpecialPerformanceRequestDto dto) {
try {
SpecialPerformance specialPerformance = new SpecialPerformance();
EntityMapper.copyAttribute(dto, specialPerformance);
specialPerformance.setId(dto.getSpecialPerformanceId());
specialPerformance.setStartTime(DateUtils.parseString(dto.getStartTime()));
specialPerformance.setEndTime(DateUtils.parseString(dto.getEndTime()));
specialPerformanceDao.update(specialPerformance);
return Result.success();
} catch (Exception e) {
logger.error("修改专场信息失败:{}", e);
}
return Result.failed();
}
@Override
public Result findItemListById(SpecialPerformanceConfigRequestDto specialPerformanceConfigRequestDto) {
try {
List<SpecialPerformanceConfig> list = specialPerformanceConfigDao.findList(specialPerformanceConfigRequestDto);
PageInfo pageInfo = new PageInfo(list);
long itemNum = pageInfo.getTotal();
List<SupplierItemVo> supplierItemVos = new ArrayList<>();
for (SpecialPerformanceConfig specialPerformanceConfig : list) {
SupplierItem supplierItem = supplierItemDao.findById(specialPerformanceConfig.getItemId());
SupplierItemVo supplierItemVo = new SupplierItemVo();
EntityMapper.copyAttribute(supplierItem, supplierItemVo);
supplierItemVo.setDistributionPrice(PriceUtil.convertPriceFenToYuan(supplierItem.getDistributionPrice()));
supplierItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
supplierItemVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(supplierItem.getType()));
supplierItemVo.setCreatorName(supplierItem.getCreatorId() == CommConsts.SYSTEM_ACCOUNT.longValue()? "平台自营":cacheUtil.getAppletUserById(supplierItem.getCreatorId()).getNickname());
supplierItemVo.setStatusName(SupplierItemEnum.StatusEnum.getNameByCode(supplierItem.getStatus()));
if (supplierItem.getBuyLimitNum() == -1) {
supplierItemVo.setIsLimitBuy(false);
}
AuctionConfig auctionConfig = auctionConfigDao.findByItemId(supplierItem.getId());
if (auctionConfig != null && auctionConfig.getIsValid()) {
supplierItemVo.setStartPrice(PriceUtil.convertPriceFenToYuan(auctionConfig.getStartPrice()));
supplierItemVo.setAddExtent(PriceUtil.convertPriceFenToYuan(auctionConfig.getAddExtent()));
}
supplierItemVos.add(supplierItemVo);
}
Map<String, Object> map = new HashMap<>();
map.put("data", PageSearchResult.of(pageInfo, supplierItemVos));
map.put("totalItemNum", itemNum);
return Result.success(map);
} catch (Exception e) {
logger.error("查询专场下藏品列表失败:{}", e);
}
return Result.failed();
} }
@Override @Override
public Result create(SpecialPerformanceRequestDto dto) { public Result create(SpecialPerformanceRequestDto dto) {
return null; try {
SpecialPerformance specialPerformance = new SpecialPerformance();
EntityMapper.copyAttribute(dto, specialPerformance);
specialPerformance.setStartTime(DateUtils.parseString(dto.getStartTime()));
specialPerformance.setEndTime(DateUtils.parseString(dto.getEndTime()));
specialPerformance.setType(SpecialPerformanceEnum.TypeEnum.AUCTION.getCode());
specialPerformance.setState(SpecialPerformanceEnum.StateEnum.NOT_START.getCode());
specialPerformanceDao.insert(specialPerformance);
return Result.success();
} catch (Exception e) {
logger.error("创建专场失败 : {}", e);
}
return Result.failed();
} }
@Override @Override
@Transactional
public Result delete(SpecialPerformanceRequestDto dto) { public Result delete(SpecialPerformanceRequestDto dto) {
return null; try {
SpecialPerformance specialPerformance = new SpecialPerformance();
specialPerformance.setId(dto.getSpecialPerformanceId());
specialPerformance.setState(SpecialPerformanceEnum.StateEnum.DELETED.getCode());
specialPerformanceDao.update(specialPerformance);
//专场的所有商品设置为无效
SpecialPerformanceConfig specialPerformanceConfig = new SpecialPerformanceConfig();
specialPerformanceConfig.setSpecialPerformanceId(dto.getSpecialPerformanceId());
specialPerformanceConfig.setState(SpecialPerformanceEnum.ConfigStateEnum.INVALID.getCode());
specialPerformanceConfigDao.update(specialPerformanceConfig);
return Result.success();
} catch (Exception e) {
logger.error("删除专场 error:{}", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return Result.failed();
} }
@Override @Override
...@@ -59,10 +189,29 @@ public class SysSpecialPerformanceServiceImpl implements SysSpecialPerformanceSe ...@@ -59,10 +189,29 @@ public class SysSpecialPerformanceServiceImpl implements SysSpecialPerformanceSe
specialPerformanceConfigDao.delete(dto.getSpecialPerformanceId(), dto.getItemId()); specialPerformanceConfigDao.delete(dto.getSpecialPerformanceId(), dto.getItemId());
return Result.success(); return Result.success();
} catch (Exception e) { } catch (Exception e) {
logger.error("删除专场商品:{}", e); logger.error("删除专场商品 error:{}", e);
} }
return Result.failed(); return Result.failed();
} }
@Override
public Result addItem(SpecialPerformanceConfigRequestDto dto) {
try {
List<String> itemIds = Arrays.asList(dto.getItemIds().split(","));
for (String itemId : itemIds) {
SpecialPerformanceConfig specialPerformanceConfig = new SpecialPerformanceConfig();
specialPerformanceConfig.setItemId(Long.valueOf(itemId));
specialPerformanceConfig.setSpecialPerformanceId(dto.getSpecialPerformanceId());
specialPerformanceConfig.setState(SpecialPerformanceEnum.ConfigStateEnum.VALID.getCode());
Random random = new Random();
int randomNumber = random.nextInt(20);
specialPerformanceConfig.setViewNum(randomNumber);
specialPerformanceConfigDao.insert(specialPerformanceConfig);
}
return Result.success();
} catch (Exception e) {
logger.error("添加专场商品 error:{}", e);
}
return Result.failed();
}
} }
...@@ -167,6 +167,11 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -167,6 +167,11 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
supplierItemVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(supplierItem.getType())); supplierItemVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(supplierItem.getType()));
supplierItemVo.setCreatorName(supplierItem.getCreatorId() == CommConsts.SYSTEM_ACCOUNT.longValue()? "平台自营":cacheUtil.getAppletUserById(supplierItem.getCreatorId()).getNickname()); supplierItemVo.setCreatorName(supplierItem.getCreatorId() == CommConsts.SYSTEM_ACCOUNT.longValue()? "平台自营":cacheUtil.getAppletUserById(supplierItem.getCreatorId()).getNickname());
supplierItemVo.setStatusName(SupplierItemEnum.StatusEnum.getNameByCode(supplierItem.getStatus())); supplierItemVo.setStatusName(SupplierItemEnum.StatusEnum.getNameByCode(supplierItem.getStatus()));
if (supplierItemDao.isSupplierIdExisted(supplierItem.getId())) {
supplierItemVo.setIsTransformAuction(true);
} else {
supplierItemVo.setIsTransformAuction(false);
}
if (supplierItem.getBuyLimitNum() == -1) { if (supplierItem.getBuyLimitNum() == -1) {
supplierItemVo.setIsLimitBuy(false); supplierItemVo.setIsLimitBuy(false);
} }
...@@ -188,6 +193,45 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -188,6 +193,45 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
return Result.failed(); return Result.failed();
} }
@Override
public Result findAuctionList(SupplierItemRequestDto dto) {
try {
List<SupplierItemVo> supplierItemVos = new ArrayList<>();
dto.setType(DistributionEnum.DistributionTypeEnum.AUCTION.getCode());
List<SupplierItem> supplierItemList = supplierItemDao.findList(dto);
PageInfo<SupplierItem> pageInfo = new PageInfo(supplierItemList);
supplierItemList.forEach(supplierItem -> {
SupplierItemVo supplierItemVo = new SupplierItemVo();
EntityMapper.copyAttribute(supplierItem, supplierItemVo);
supplierItemVo.setSupplyPrice(PriceUtil.convertPriceFenToYuan(supplierItem.getSupplyPrice()));
supplierItemVo.setDistributionPrice(PriceUtil.convertPriceFenToYuan(supplierItem.getDistributionPrice()));
supplierItemVo.setHomePageImage(MediaUtil.getHomePageImage(supplierItem.getImages(), supplierItem.getVideos()));
supplierItemVo.setTypeName(DistributionEnum.DistributionTypeEnum.getNameByCode(supplierItem.getType()));
supplierItemVo.setCreatorName(supplierItem.getCreatorId() == CommConsts.SYSTEM_ACCOUNT.longValue()? "平台自营":cacheUtil.getAppletUserById(supplierItem.getCreatorId()).getNickname());
supplierItemVo.setStatusName(SupplierItemEnum.StatusEnum.getNameByCode(supplierItem.getStatus()));
if (supplierItem.getBuyLimitNum() == -1) {
supplierItemVo.setIsLimitBuy(false);
}
AuctionConfig auctionConfig = auctionConfigDao.findByItemId(supplierItem.getId());
if (auctionConfig != null) {
supplierItemVo.setStartPrice(PriceUtil.convertPriceFenToYuan(auctionConfig.getStartPrice()));
supplierItemVo.setAddExtent(PriceUtil.convertPriceFenToYuan(auctionConfig.getAddExtent()));
}
DistributionOrder distributionOrder = distributionOrderDao.findByItemId(supplierItem.getId());
if (distributionOrder != null) {
//中拍价
supplierItemVo.setSalePrice(PriceUtil.convertPriceFenToYuan(distributionOrder.getAmount()));
}
supplierItemVos.add(supplierItemVo);
});
return Result.success(PageSearchResult.of(pageInfo, supplierItemVos));
} catch (Exception e) {
logger.error("拍卖品列表查询失败 error : {}", e);
}
return Result.failed();
}
@Override @Override
public Result findDetail(SupplierItemRequestDto dto) { public Result findDetail(SupplierItemRequestDto dto) {
try { try {
...@@ -199,6 +243,11 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -199,6 +243,11 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
if (supplierItem.getBuyLimitNum() == -1) { if (supplierItem.getBuyLimitNum() == -1) {
supplierItemVo.setIsLimitBuy(false); supplierItemVo.setIsLimitBuy(false);
} }
if (supplierItemDao.isSupplierIdExisted(itemId)) {
supplierItemVo.setIsTransformAuction(true);
} else {
supplierItemVo.setIsTransformAuction(false);
}
supplierItemVo.setRebate(supplierItem.getRebate().toPlainString()); supplierItemVo.setRebate(supplierItem.getRebate().toPlainString());
supplierItemVo.setSupplyPrice(PriceUtil.convertPriceFenToYuan(supplierItem.getSupplyPrice())); supplierItemVo.setSupplyPrice(PriceUtil.convertPriceFenToYuan(supplierItem.getSupplyPrice()));
supplierItemVo.setDistributionPrice(PriceUtil.convertPriceFenToYuan(supplierItem.getDistributionPrice())); supplierItemVo.setDistributionPrice(PriceUtil.convertPriceFenToYuan(supplierItem.getDistributionPrice()));
...@@ -235,11 +284,11 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -235,11 +284,11 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
return Result.failed("有出价的竞拍商品不能再次编辑"); return Result.failed("有出价的竞拍商品不能再次编辑");
} }
AuctionConfig auctionConfig = auctionConfigDao.findByItemId(dto.getId()); AuctionConfig auctionConfig = auctionConfigDao.findByItemId(dto.getId());
auctionConfig.setStartTime(DateUtils.parseString(dto.getAuctionStartTime())); auctionConfig.setStartTime(StringUtils.isEmpty(dto.getAuctionStartTime()) ? new Date(): DateUtils.parseString(dto.getAuctionStartTime()));
auctionConfig.setEndTime(DateUtils.parseString(dto.getAuctionEndTime())); auctionConfig.setEndTime(StringUtils.isEmpty(dto.getAuctionEndTime()) ? new Date(): DateUtils.parseString(dto.getAuctionEndTime()));
auctionConfig.setRealEndTime(DateUtils.parseString(dto.getAuctionEndTime())); auctionConfig.setRealEndTime(StringUtils.isEmpty(dto.getAuctionEndTime()) ? new Date(): DateUtils.parseString(dto.getAuctionEndTime()));
auctionConfig.setStartPrice(PriceUtil.convertPriceFromStr(dto.getStartPrice())); auctionConfig.setStartPrice(StringUtils.isEmpty(dto.getStartPrice()) ? 0 : PriceUtil.convertPriceFromStr(dto.getStartPrice()));
auctionConfig.setAddExtent(PriceUtil.convertPriceFromStr(dto.getAddExtent())); auctionConfig.setAddExtent(StringUtils.isEmpty(dto.getAddExtent()) ? 50 : PriceUtil.convertPriceFromStr(dto.getAddExtent()));
//修改的截拍时间在当前时间之后,则重新上架,设置拍卖信息为有效 //修改的截拍时间在当前时间之后,则重新上架,设置拍卖信息为有效
if (DateUtils.parseString(dto.getAuctionEndTime()).after(new Date())) { if (DateUtils.parseString(dto.getAuctionEndTime()).after(new Date())) {
auctionConfig.setIsValid(true); auctionConfig.setIsValid(true);
...@@ -351,6 +400,54 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -351,6 +400,54 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
return Result.failed(); return Result.failed();
} }
@Override
@Transactional
public Result collectorItemConvertToAuction(SupplierItemRequestDto dto) {
try {
Date now = new Date();
List<String> idList = Arrays.asList(dto.getItemIdsStr().split(","));
for (String id : idList) {
long itemId = Long.valueOf(id);
SupplierItem oldItem = supplierItemDao.findById(itemId);
if (supplierItemDao.isSupplierIdExisted(itemId)) {
continue;
}
//复制一份藏家藏品的数据,设置为拍卖品
SupplierItem supplierItem = new SupplierItem();
EntityMapper.copyAttribute(oldItem, supplierItem);
//该字段设置为原来藏品的id,用来溯源该拍品是由哪个藏品转换而来
supplierItem.setSupplierId(itemId);
supplierItem.setId(null);
supplierItem.setIsOnSale(true);
supplierItem.setIsDeleted(false);
supplierItem.setCreateTime(now);
supplierItem.setUpdateTime(now);
supplierItem.setType(DistributionEnum.DistributionTypeEnum.AUCTION.getCode());
supplierItem.setIsAbleSale(true);
supplierItemDao.insert(supplierItem);
//新增默认拍卖配置
AuctionConfig auctionConfig = new AuctionConfig();
auctionConfig.setItemId(itemId);
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()));
auctionConfig.setStartPrice(StringUtils.isEmpty(dto.getStartPrice()) ? 0 : PriceUtil.convertPriceFromStr(dto.getStartPrice()));
auctionConfig.setAddExtent(StringUtils.isEmpty(dto.getAddExtent()) ? 50 : PriceUtil.convertPriceFromStr(dto.getAddExtent()));
auctionConfig.setCreateTime(now);
auctionConfig.setUpdateTime(now);
auctionConfigDao.insert(auctionConfig);
}
return Result.success();
} catch (Exception e) {
logger.error("藏品上拍失败 error : {}", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return Result.failed();
}
private String getVideosImage(String vedios) { private String getVideosImage(String vedios) {
String video = ""; String video = "";
String[] images = vedios.split(";"); String[] images = vedios.split(";");
...@@ -394,4 +491,8 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService { ...@@ -394,4 +491,8 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
} }
return null; return null;
} }
} }
...@@ -13,12 +13,20 @@ public interface SysSpecialPerformanceService { ...@@ -13,12 +13,20 @@ public interface SysSpecialPerformanceService {
*/ */
Result findList(SpecialPerformanceRequestDto dto); Result findList(SpecialPerformanceRequestDto dto);
/**
* 查询专场详情
* @param dto
* @return
*/
Result findDetail(SpecialPerformanceRequestDto dto);
/** /**
* 查询专场的商品列表 * 查询专场的商品列表
* @param dto * @param dto
* @return * @return
*/ */
Result findItemListById(SpecialPerformanceRequestDto dto); Result findItemListById(SpecialPerformanceConfigRequestDto dto);
/** /**
* 创建专场 * 创建专场
...@@ -27,6 +35,13 @@ public interface SysSpecialPerformanceService { ...@@ -27,6 +35,13 @@ public interface SysSpecialPerformanceService {
*/ */
Result create(SpecialPerformanceRequestDto dto); Result create(SpecialPerformanceRequestDto dto);
/**
* 修改专场
* @param dto
* @return
*/
Result update(SpecialPerformanceRequestDto dto);
/** /**
* 删除专场 * 删除专场
* @param dto * @param dto
...@@ -42,4 +57,11 @@ public interface SysSpecialPerformanceService { ...@@ -42,4 +57,11 @@ public interface SysSpecialPerformanceService {
*/ */
Result deleteItem(SpecialPerformanceConfigRequestDto dto); Result deleteItem(SpecialPerformanceConfigRequestDto dto);
/**
* 添加专场商品
* @param dto
* @return
*/
Result addItem(SpecialPerformanceConfigRequestDto dto);
} }
...@@ -21,6 +21,14 @@ public interface SysSupplierItemService { ...@@ -21,6 +21,14 @@ public interface SysSupplierItemService {
Result findList(SupplierItemRequestDto dto); Result findList(SupplierItemRequestDto dto);
/**
* 查询拍卖商品列表
* @param dto
* @return
*/
Result findAuctionList(SupplierItemRequestDto dto);
/** /**
* 查询供应商商品详情 * 查询供应商商品详情
* @param dto * @param dto
...@@ -59,6 +67,11 @@ public interface SysSupplierItemService { ...@@ -59,6 +67,11 @@ public interface SysSupplierItemService {
*/ */
Result irregularOff(SupplierItemRequestDto dto); Result irregularOff(SupplierItemRequestDto dto);
/**
* 用户藏品上拍
* @param dto
* @return
*/
Result collectorItemConvertToAuction(SupplierItemRequestDto dto);
} }
...@@ -33,4 +33,73 @@ public class SpecialPerformanceEnum { ...@@ -33,4 +33,73 @@ public class SpecialPerformanceEnum {
} }
} }
public enum StateEnum {
DELETED(-1, "删除"),
NOT_START(0, "未开始"),
PREVIEW(1, "预览中"),
PROCESSING(10, "竞拍中"),
END(20, "竞拍结束")
;
private int code;
private String des;
StateEnum(int code, String des) {
this.code = code;
this.des = des;
}
public static String getNameByCode(int code) {
for (SpecialPerformanceEnum.StateEnum stateEnum : SpecialPerformanceEnum.StateEnum.values()) {
if (code == stateEnum.getCode()) {
return stateEnum.getDes();
}
}
return null;
}
public int getCode() {
return code;
}
public String getDes() {
return des;
}
}
public enum ConfigStateEnum {
INVALID(0, "无效"),
VALID(1, "有效"),
;
private int code;
private String des;
ConfigStateEnum(int code, String des) {
this.code = code;
this.des = des;
}
public static String getNameByCode(int code) {
for (SpecialPerformanceEnum.ConfigStateEnum configStateEnum : SpecialPerformanceEnum.ConfigStateEnum.values()) {
if (code == configStateEnum.getCode()) {
return configStateEnum.getDes();
}
}
return null;
}
public int getCode() {
return code;
}
public String getDes() {
return des;
}
}
} }
package com.wwdz.ch.core.entity;
import com.xxdxxs.entity.Entity;
import lombok.Data;
import java.util.Date;
@Data
public class SpecialPerformanceVo implements Entity {
private Integer id;
/**
* 专场名称
*/
private String title;
/**
* 背景图
*/
private String backgroundImage;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 专场类型1拍卖
*/
private Integer type;
/**
* 状态
*/
private Integer state;
/**
* 状态
*/
private String stateName;
/**
* 专场出价次数
*/
private Long offerNum;
/**
* 专场商品总数
*/
private Long itemNum;
}
...@@ -289,4 +289,9 @@ public class SupplierItemVo implements Entity { ...@@ -289,4 +289,9 @@ public class SupplierItemVo implements Entity {
private Boolean isCollector; private Boolean isCollector;
/**
* 是否从藏品转为拍品
*/
private Boolean isTransformAuction;
} }
...@@ -17,6 +17,8 @@ public interface SpecialPerformanceConfigDao { ...@@ -17,6 +17,8 @@ public interface SpecialPerformanceConfigDao {
long countViewNum(int specialPerformanceId); long countViewNum(int specialPerformanceId);
long countItem(int specialPerformanceId);
void addViewNum(long itemId); void addViewNum(long itemId);
boolean delete(int specialPerformanceId, long itemId); boolean delete(int specialPerformanceId, long itemId);
......
...@@ -15,5 +15,7 @@ public interface SpecialPerformanceDao { ...@@ -15,5 +15,7 @@ public interface SpecialPerformanceDao {
boolean update(SpecialPerformance specialPerformance); boolean update(SpecialPerformance specialPerformance);
boolean insert(SpecialPerformance specialPerformance);
} }
package com.wwdz.ch.db.dao.distribution; package com.wwdz.ch.db.dao.distribution;
import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.domain.distribution.SupplierItem; import com.wwdz.ch.db.domain.distribution.SupplierItem;
import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto; import com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto;
import java.util.List; import java.util.List;
...@@ -93,4 +92,11 @@ public interface SupplierItemDao { ...@@ -93,4 +92,11 @@ public interface SupplierItemDao {
*/ */
List<SupplierItem> findDistinctCreator(SupplierItemRequestDto supplierItemRequestDto); List<SupplierItem> findDistinctCreator(SupplierItemRequestDto supplierItemRequestDto);
/**
* 藏品上拍,该字段为原来藏品的id, 用来判断该藏品是否已经上拍过
* @param supplierId
* @return
*/
boolean isSupplierIdExisted(long supplierId);
} }
...@@ -9,6 +9,10 @@ import java.util.Date; ...@@ -9,6 +9,10 @@ import java.util.Date;
@Data @Data
public class SpecialPerformanceConfigRequestDto extends BaseRequestDto implements Entity { public class SpecialPerformanceConfigRequestDto extends BaseRequestDto implements Entity {
/**
* 批量操作,逗号分隔
*/
private String itemIds;
private Integer id; private Integer id;
......
...@@ -36,6 +36,17 @@ public class SpecialPerformanceRequestDto extends BaseRequestDto implements Enti ...@@ -36,6 +36,17 @@ public class SpecialPerformanceRequestDto extends BaseRequestDto implements Enti
*/ */
private Date updateTime; private Date updateTime;
/**
* 开始时间
*/
private String startTime;
/**
* 结束时间
*/
private String endTime;
/** /**
* 专场类型1拍卖 * 专场类型1拍卖
*/ */
......
...@@ -18,6 +18,11 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity { ...@@ -18,6 +18,11 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
*/ */
private Long id; private Long id;
/**
* 批量操作,逗号分隔
*/
private String itemIdsStr;
private List<Long> ids; private List<Long> ids;
/** /**
......
...@@ -11,6 +11,7 @@ import com.xxdxxs.db.component.JdbcHelper; ...@@ -11,6 +11,7 @@ import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List; import java.util.List;
@Repository @Repository
...@@ -42,6 +43,7 @@ public class SpecialPerformanceConfigDaoImpl implements SpecialPerformanceConfig ...@@ -42,6 +43,7 @@ public class SpecialPerformanceConfigDaoImpl implements SpecialPerformanceConfig
@Override @Override
public boolean insert(SpecialPerformanceConfig specialPerformanceConfig) { public boolean insert(SpecialPerformanceConfig specialPerformanceConfig) {
specialPerformanceConfig.setCreateTime(new Date());
return specialPerformanceConfigMapper.insert(specialPerformanceConfig) > 0; return specialPerformanceConfigMapper.insert(specialPerformanceConfig) > 0;
} }
...@@ -59,6 +61,15 @@ public class SpecialPerformanceConfigDaoImpl implements SpecialPerformanceConfig ...@@ -59,6 +61,15 @@ public class SpecialPerformanceConfigDaoImpl implements SpecialPerformanceConfig
} }
@Override
public long countItem(int specialPerformanceId) {
SpecialPerformanceConfigExample example = new SpecialPerformanceConfigExample();
SpecialPerformanceConfigExample.Criteria criteria = example.createCriteria();
criteria.andSpecialPerformanceIdEqualTo(specialPerformanceId);
criteria.andStateEqualTo(1);
return specialPerformanceConfigMapper.countByExample(example);
}
@Override @Override
public void addViewNum(long itemId) { public void addViewNum(long itemId) {
SpecialPerformanceConfigExample example = new SpecialPerformanceConfigExample(); SpecialPerformanceConfigExample example = new SpecialPerformanceConfigExample();
......
...@@ -10,6 +10,7 @@ import com.xxdxxs.db.component.JdbcHelper; ...@@ -10,6 +10,7 @@ import com.xxdxxs.db.component.JdbcHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List; import java.util.List;
@Repository @Repository
...@@ -27,7 +28,7 @@ public class SpecialPerformanceDaoImpl implements SpecialPerformanceDao { ...@@ -27,7 +28,7 @@ public class SpecialPerformanceDaoImpl implements SpecialPerformanceDao {
JdbcHelper.ifPresent(dto.getState(), criteria::andStateEqualTo); JdbcHelper.ifPresent(dto.getState(), criteria::andStateEqualTo);
JdbcHelper.ifPresent(dto.getStartQueryTime(), criteria::andStartTimeLessThanOrEqualTo); JdbcHelper.ifPresent(dto.getStartQueryTime(), criteria::andStartTimeLessThanOrEqualTo);
JdbcHelper.ifPresent(dto.getEndQueryTime(), criteria::andStartTimeGreaterThanOrEqualTo); JdbcHelper.ifPresent(dto.getEndQueryTime(), criteria::andStartTimeGreaterThanOrEqualTo);
example.setOrderByClause(" start_time desc"); example.setOrderByClause(" update_time desc");
PageHelper.startPage(dto.getPage(), dto.getLimit()); PageHelper.startPage(dto.getPage(), dto.getLimit());
return specialPerformanceMapper.selectByExample(example); return specialPerformanceMapper.selectByExample(example);
} }
...@@ -52,9 +53,15 @@ public class SpecialPerformanceDaoImpl implements SpecialPerformanceDao { ...@@ -52,9 +53,15 @@ public class SpecialPerformanceDaoImpl implements SpecialPerformanceDao {
@Override @Override
public boolean update(SpecialPerformance specialPerformance) { public boolean update(SpecialPerformance specialPerformance) {
specialPerformance.setUpdateTime(new Date());
return specialPerformanceMapper.updateByPrimaryKeySelective(specialPerformance) > 0; return specialPerformanceMapper.updateByPrimaryKeySelective(specialPerformance) > 0;
} }
@Override
public boolean insert(SpecialPerformance specialPerformance) {
specialPerformance.setCreateTime(new Date());
specialPerformance.setUpdateTime(new Date());
return specialPerformanceMapper.insert(specialPerformance) > 0;
}
} }
...@@ -203,4 +203,14 @@ public class SupplierItemDaoImpl implements SupplierItemDao { ...@@ -203,4 +203,14 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
criteria.andIsDeletedEqualTo(false); criteria.andIsDeletedEqualTo(false);
return supplierItemMapper.selectByExampleSelective(supplierItemExample, SupplierItem.Column.creatorId); return supplierItemMapper.selectByExampleSelective(supplierItemExample, SupplierItem.Column.creatorId);
} }
@Override
public boolean isSupplierIdExisted(long supplierId) {
SupplierItemExample supplierItemExample = new SupplierItemExample();
SupplierItemExample.Criteria criteria = supplierItemExample.createCriteria();
criteria.andSupplierIdEqualTo(supplierId);
criteria.andIsDeletedEqualTo(false);
return supplierItemMapper.countByExample(supplierItemExample) > 0;
}
} }
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