Commit 61ad46f3 authored by shiyu's avatar shiyu

寄售已发布的商品

parent 78d9c246
...@@ -12,7 +12,7 @@ public class CoinVo implements Entity { ...@@ -12,7 +12,7 @@ public class CoinVo implements Entity {
private Long id; private Long id;
/** /**
* 钱币名称 * 商品名称
*/ */
private String name; private String name;
...@@ -129,4 +129,10 @@ public class CoinVo implements Entity { ...@@ -129,4 +129,10 @@ public class CoinVo implements Entity {
*/ */
private List<Integer> categoryIds; private List<Integer> categoryIds;
/**
* 对应的分类
*
*/
private List<String> categoryNames;
} }
...@@ -2,15 +2,19 @@ package com.wwdz.ch.admin.impl; ...@@ -2,15 +2,19 @@ package com.wwdz.ch.admin.impl;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.wwdz.ch.admin.service.ConsignSaleService; import com.wwdz.ch.admin.service.ConsignSaleService;
import com.wwdz.ch.admin.service.ItemService;
import com.wwdz.ch.core.consts.ConsignSaleEnum; import com.wwdz.ch.core.consts.ConsignSaleEnum;
import com.wwdz.ch.core.entity.ConsignSaleVo;
import com.wwdz.ch.core.type.Result; import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.IdUtils; import com.wwdz.ch.core.util.IdUtils;
import com.wwdz.ch.core.util.MediaUtil;
import com.wwdz.ch.db.dao.ConsignSaleDao; import com.wwdz.ch.db.dao.ConsignSaleDao;
import com.wwdz.ch.db.dao.ConsignSaleRecordDao; import com.wwdz.ch.db.dao.ConsignSaleRecordDao;
import com.wwdz.ch.db.dao.ItemDao; import com.wwdz.ch.db.dao.ItemDao;
import com.wwdz.ch.db.domain.ConsignSale; import com.wwdz.ch.db.domain.ConsignSale;
import com.wwdz.ch.db.domain.ConsignSaleRecord; import com.wwdz.ch.db.domain.ConsignSaleRecord;
import com.wwdz.ch.db.domain.Item; import com.wwdz.ch.db.domain.Item;
import com.wwdz.ch.db.dto.request.CoinRequestDto;
import com.wwdz.ch.db.dto.request.ConsignSaleRecordRequestDto; import com.wwdz.ch.db.dto.request.ConsignSaleRecordRequestDto;
import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto; import com.wwdz.ch.db.dto.request.ConsignSaleRequestDto;
import com.xxdxxs.utils.EntityMapper; import com.xxdxxs.utils.EntityMapper;
...@@ -20,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -20,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -41,9 +46,13 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -41,9 +46,13 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
@Autowired @Autowired
ItemDao itemDao; ItemDao itemDao;
@Autowired
ItemService itemService;
@Override @Override
public Result findList(ConsignSaleRequestDto dto) { public Result findList(ConsignSaleRequestDto dto) {
try {
List<ConsignSale> list = consignSaleDao.find(dto); List<ConsignSale> list = consignSaleDao.find(dto);
PageInfo<ConsignSale> pageInfo = new PageInfo<>(list); PageInfo<ConsignSale> pageInfo = new PageInfo<>(list);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
...@@ -53,12 +62,44 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -53,12 +62,44 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
//查询商品的信息 //查询商品的信息
List<Item> itemList = itemDao.findDetails(itemIds); List<Item> itemList = itemDao.findDetails(itemIds);
Map<Long, Item> itemMap = itemList.stream().collect(Collectors.toMap(Item::getId, Function.identity())); Map<Long, Item> itemMap = itemList.stream().collect(Collectors.toMap(Item::getId, Function.identity()));
List<ConsignSaleVo> consignSaleVoList = new ArrayList<>();
return null; list.forEach(consignSale -> {
Item item = itemMap.get(consignSale.getItemId());
ConsignSaleVo consignSaleVo = new ConsignSaleVo();
consignSaleVo.setSaleId(consignSale.getSaleId());
consignSaleVo.setHomePageImage(MediaUtil.getHomePageImage(item.getImages(), item.getVideos()));
consignSaleVo.setItemName(item.getName());
consignSaleVo.setSystemState(consignSale.getSystemState());
consignSaleVo.setSystemStateName(ConsignSaleEnum.SaleForSysStateEnum.getNameByCode(consignSale.getSystemState()));
consignSaleVo.setSaleTime(consignSale.getSaleTime());
if (consignSale.getSystemState().intValue() == ConsignSaleEnum.SaleForSysStateEnum.CANCEL.getCode()) {
List<ConsignSaleRecord> consignSaleRecords = consignSaleRecordDao.find(consignSale.getSaleId());
List<Integer> operateType = consignSaleRecords.stream().map(ConsignSaleRecord::getType).collect(Collectors.toList());
if (operateType.contains(ConsignSaleEnum.OperateTypeEnum.CUSTOM_CANCEL.getCode())) {
consignSaleVo.setCancelType(ConsignSaleEnum.OperateTypeEnum.CUSTOM_CANCEL.getDes());
} else {
consignSaleVo.setCancelType(ConsignSaleEnum.OperateTypeEnum.SYS_CANCEL.getDes());
}
}
consignSaleVoList.add(consignSaleVo);
});
return Result.success(consignSaleVoList);
} catch (Exception e) {
logger.error("查询寄售单列表 error:{}", e);
}
return Result.failed();
} }
@Override @Override
public Result findDetail(ConsignSaleRequestDto dto) { public Result findDetail(ConsignSaleRequestDto dto) {
CoinRequestDto coinRequestDto = new CoinRequestDto();
coinRequestDto.setId(dto.getItemId());
Result itemResult = itemService.findDetails(coinRequestDto);
if (!itemResult.getSuccess()) {
return itemResult;
}
return null; return null;
} }
...@@ -114,6 +155,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -114,6 +155,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
ConsignSale consignSale = new ConsignSale(); ConsignSale consignSale = new ConsignSale();
consignSale.setDealPrice(dto.getDealPrice()); consignSale.setDealPrice(dto.getDealPrice());
consignSale.setSaleId(dto.getSaleId()); consignSale.setSaleId(dto.getSaleId());
consignSale.setCustomState(ConsignSaleEnum.SaleForUserStateEnum.FINISH.getCode());
consignSale.setSystemState(ConsignSaleEnum.SaleForSysStateEnum.FINISH.getCode()); consignSale.setSystemState(ConsignSaleEnum.SaleForSysStateEnum.FINISH.getCode());
consignSaleDao.update(consignSale); consignSaleDao.update(consignSale);
//插入操作记录 //插入操作记录
...@@ -148,7 +190,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -148,7 +190,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
consignSaleRecord.setCreateTime(new Date()); consignSaleRecord.setCreateTime(new Date());
consignSaleRecord.setContent("取消类型:" + dto.getContent()); consignSaleRecord.setContent("取消类型:" + dto.getContent());
consignSaleRecord.setRemark(dto.getRemark()); consignSaleRecord.setRemark(dto.getRemark());
consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.CANCEL.getCode()); consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.SYS_CANCEL.getCode());
consignSaleRecordDao.insert(consignSaleRecord); consignSaleRecordDao.insert(consignSaleRecord);
return Result.success(); return Result.success();
} catch (Exception e) { } catch (Exception e) {
......
...@@ -97,12 +97,15 @@ public class ItemServiceImpl implements ItemService { ...@@ -97,12 +97,15 @@ public class ItemServiceImpl implements ItemService {
Integer categoryId = item.getCid(); Integer categoryId = item.getCid();
Category category = categoryDao.findById(categoryId); Category category = categoryDao.findById(categoryId);
List<Integer> categoryIds = new ArrayList<>(); List<Integer> categoryIds = new ArrayList<>();
List<String> categoryNames = new ArrayList<>();
if (null != category) { if (null != category) {
categoryIds.add(0, category.getId()); categoryIds.add(0, category.getId());
categoryNames.add(0, category.getName());
Integer pid = category.getPid(); Integer pid = category.getPid();
while (pid != 0) { while (pid != 0) {
categoryIds.add(0, pid); categoryIds.add(0, pid);
Category pCategory = categoryDao.findById(pid); Category pCategory = categoryDao.findById(pid);
categoryNames.add(0, pCategory.getName());
if (null != pCategory) { if (null != pCategory) {
pid = pCategory.getPid(); pid = pCategory.getPid();
} else { } else {
...@@ -113,7 +116,7 @@ public class ItemServiceImpl implements ItemService { ...@@ -113,7 +116,7 @@ public class ItemServiceImpl implements ItemService {
coinVo.setCategoryIds(categoryIds); coinVo.setCategoryIds(categoryIds);
return Result.success(coinVo); return Result.success(coinVo);
} catch (Exception e) { } catch (Exception e) {
logger.error("钱币设置查询明细 error : {}", e); logger.error("商品查询明细 error : {}", e);
} }
return Result.failed(); return Result.failed();
} }
......
...@@ -91,7 +91,8 @@ public class ConsignSaleEnum { ...@@ -91,7 +91,8 @@ public class ConsignSaleEnum {
VALUATE(1, "图文估价"), VALUATE(1, "图文估价"),
IDENTIFY(4, "实物鉴定"), IDENTIFY(4, "实物鉴定"),
WAIT_TAKE(10, "寄售单完成"), WAIT_TAKE(10, "寄售单完成"),
CANCEL(20, "寄售单取消"), CUSTOM_CANCEL(20, "用户取消寄售"),
SYS_CANCEL(21, "平台取消寄售"),
; ;
private int code; private int code;
......
...@@ -91,4 +91,9 @@ public class ConsignSaleVo implements Entity { ...@@ -91,4 +91,9 @@ public class ConsignSaleVo implements Entity {
* 更新时间 * 更新时间
*/ */
private Date updateTime; private Date updateTime;
/**
* 如果是取消的状态显示取消类型
*/
private String cancelType;
} }
...@@ -23,7 +23,10 @@ import org.slf4j.Logger; ...@@ -23,7 +23,10 @@ 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 org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -74,6 +77,32 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -74,6 +77,32 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
return Result.failed(); return Result.failed();
} }
@Transactional
@Override
public Result saleReleaseItem(ConsignSaleRequestDto dto) {
try {
//修改商品状态为寄售中
Item item = new Item();
item.setId(dto.getItemId());
item.setIsOnSale(true);
itemDao.updateById(item);
Item itemInfo = itemDao.findById(dto.getItemId());
if (!ObjectUtils.isEmpty(itemInfo.getPrice())) {
dto.setUserPrice((int) (itemInfo.getPrice()/100));
}
Result result = createConsignSaleOrder(dto);
if (!result.getSuccess()) {
throw new RuntimeException("创建寄售单失败");
}
return result;
} catch (Exception e) {
logger.info("商品id: {}, 寄售已发布商品失败 : {}", dto.getItemId(), e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return Result.failed();
}
@Override @Override
public Result findList(ConsignSaleRequestDto dto) { public Result findList(ConsignSaleRequestDto dto) {
try { try {
...@@ -143,7 +172,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService { ...@@ -143,7 +172,7 @@ public class ConsignSaleServiceImpl implements ConsignSaleService {
consignSaleRecord.setSaleId(dto.getSaleId()); consignSaleRecord.setSaleId(dto.getSaleId());
consignSaleRecord.setCreateTime(new Date()); consignSaleRecord.setCreateTime(new Date());
consignSaleRecord.setContent("取消类型:用户主动取消"); consignSaleRecord.setContent("取消类型:用户主动取消");
consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.CANCEL.getCode()); consignSaleRecord.setType(ConsignSaleEnum.OperateTypeEnum.CUSTOM_CANCEL.getCode());
consignSaleRecordDao.insert(consignSaleRecord); consignSaleRecordDao.insert(consignSaleRecord);
return Result.success(); return Result.success();
......
...@@ -13,6 +13,14 @@ public interface ConsignSaleService { ...@@ -13,6 +13,14 @@ public interface ConsignSaleService {
Result createConsignSaleOrder(ConsignSaleRequestDto dto); Result createConsignSaleOrder(ConsignSaleRequestDto dto);
/**
* 寄售已发布商品
* @param dto
* @return
*/
Result saleReleaseItem(ConsignSaleRequestDto dto);
/** /**
* 查询寄售单 * 查询寄售单
* @param dto * @param dto
......
...@@ -70,6 +70,27 @@ public class ConsignSaleController { ...@@ -70,6 +70,27 @@ public class ConsignSaleController {
} }
@ApiOperation(value = "寄售已发布商品")
@PostMapping("/saleReleaseItem")
public Result saleReleaseItem(@RequestBody ItemRequestDto dto) {
logger.info("【请求开始】寄售已发布商品,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("userId", "用户ID").must().number()
.set("itemId", "商品id").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR.getCode(), validator.getErrorInfo());
}
//为发布的商品创建寄售单
ConsignSaleRequestDto consignSaleRequestDto = new ConsignSaleRequestDto();
consignSaleRequestDto.setUserId(dto.getUserId());
consignSaleRequestDto.setItemId(dto.getItemId());
return consignSaleService.saleReleaseItem(consignSaleRequestDto);
}
@ApiOperation(value = "用户查询寄售单") @ApiOperation(value = "用户查询寄售单")
@PostMapping("/findList") @PostMapping("/findList")
public Result findList(@RequestBody ConsignSaleRequestDto dto) { public Result findList(@RequestBody ConsignSaleRequestDto dto) {
......
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