Commit 382963e7 authored by shiyu's avatar shiyu

出价记录

parents 85acedac 9aa2772c
......@@ -121,4 +121,6 @@ public class SupplierItemVo implements Entity {
* 分销商是否购买过
*/
private Boolean shopBought;
}
......@@ -123,4 +123,7 @@ public interface DistributionOrderDao {
* @return
*/
List<DistributionOrderNum> countGroupByStateForUser(long userId);
boolean isBuyItem(long buyerId, long itemId);
}
......@@ -147,4 +147,15 @@ public class DistributionOrderDaoImpl implements DistributionOrderDao {
public List<DistributionOrderNum> countGroupByStateForUser(long userId) {
return distributionOrderMapper.countGroupByStateForUser(userId);
}
@Override
public boolean isBuyItem(long buyerId, long itemId) {
DistributionOrderExample example = new DistributionOrderExample();
DistributionOrderExample.Criteria criteria = example.createCriteria();
criteria.andBuyerIdEqualTo(buyerId);
criteria.andItemIdEqualTo(itemId);
//排除已取消的订单
criteria.andStateNotEqualTo(101);
return distributionOrderMapper.countByExample(example) > 0;
}
}
......@@ -40,5 +40,10 @@ public class SelfPageInfoVo implements Entity {
*/
private List<DistributionOrderNum> orderNum;
/**
* 商家卖出去的商品订单
*/
private List<DistributionOrderNum> orderNumForDistributor;
}
......@@ -11,7 +11,6 @@ import com.wwdz.ch.core.entity.wxPay.DistributionOrderRefundRequestDto;
import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.core.util.*;
import com.wwdz.ch.core.util.UUID;
import com.wwdz.ch.db.dao.distribution.*;
import com.wwdz.ch.db.domain.distribution.*;
import com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto;
......@@ -33,7 +32,6 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.Duration;
import java.time.Instant;
import java.util.*;
......@@ -229,7 +227,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributorProfitDao.insert(distributorProfit);
return Result.success(map);
} else {
return Result.failed("创建订单失败,稍后再试");
return Result.failed("稍后再试");
}
} catch (Exception e) {
logger.error("创建拍卖分销订单失败 error : {}", e);
......@@ -280,24 +278,9 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Override
public Result buySample(DistributionOrderRequestDto dto) {
try {
String shareRecordId = dto.getShareRecordId();
DistributorShareRecord distributorShareRecord = null;
long itemId = 0;
if (com.xxdxxs.utils.StringUtils.isEmpty(shareRecordId) && dto.getItemId() == null) {
return Result.failed("商品信息为空");
} else if (com.xxdxxs.utils.StringUtils.hasLength(shareRecordId)) {
distributorShareRecord = distributorShareRecordDao.findById(shareRecordId);
if (distributorShareRecord == null || !distributorShareRecord.getEnabled()) {
return Result.failed("该商品已下架");
} else {
itemId = distributorShareRecord.getItemId();
}
} else {
itemId = dto.getItemId();
}
long itemId = dto.getItemId();
//查询商品信息,检查商品库存
SupplierItem supplierItem = supplierItemDao.findById(distributorShareRecord.getItemId());
SupplierItem supplierItem = supplierItemDao.findById(itemId);
int stock = supplierItem.getStock();
if (stock <= 0) {
return Result.failed("商品库存不足");
......@@ -305,7 +288,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
String distributionOrderId = IdUtils.getOrderNumber(DISTRIBUTION_ORDER_PREFIX);
DistributionOrderRequestDto prePayDto = new DistributionOrderRequestDto();
prePayDto.setDistributionOrderId(distributionOrderId);
prePayDto.setAmount(String.valueOf(distributorShareRecord.getPrice() * dto.getItemNum()));
prePayDto.setAmount(String.valueOf(supplierItem.getDistributionPrice()));
prePayDto.setBuyerOpenid(dto.getBuyerOpenid());
prePayDto.setItemName(supplierItem.getName());
......@@ -317,7 +300,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
DistributionOrder distributionOrder = new DistributionOrder();
distributionOrder.setItemId(itemId);
distributionOrder.setItemNum(1);
distributionOrder.setShareRecordId(StringUtils.isEmpty(distributorShareRecord.getShareId())? ("DA" + SYSTEM_ACCOUNT) : distributorShareRecord.getShareId());
distributionOrder.setShareRecordId("DA" + SYSTEM_ACCOUNT);
distributionOrder.setDistributionOrderId(distributionOrderId);
distributionOrder.setPrepayId(prepayId);
distributionOrder.setBuyerId(dto.getBuyerId());
......@@ -331,6 +314,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrder.setReceiverPhone(dto.getReceiverPhone());
distributionOrder.setCreateTime(new Date());
distributionOrder.setUpdateTime(new Date());
distributionOrder.setType(DistributionEnum.DistributionTypeEnum.FIXED_PRICE.getCode());
distributionOrder.setState(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode());
distributionOrderDao.insert(distributionOrder);
Map<String, String> map = new HashMap<>();
......@@ -360,6 +344,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
return Result.failed("分销商购买失败");
}
@Override
public Result checkPayState(DistributionOrderRequestDto dto) {
try {
......@@ -375,6 +360,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
}
@Override
@Transactional
public Result cancel(DistributionOrderRequestDto dto) {
......@@ -425,6 +411,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
return Result.failed();
}
@Override
public Result delivery(DistributionOrderRequestDto dto) {
try {
......
......@@ -61,7 +61,14 @@ public class SelfPageServiceImpl implements SelfPageService {
distributionOrderNumList.forEach(distributionOrderNum -> {
distributionOrderNum.setStateName(DistributionEnum.DistributionOrderStateEnum.getNameByCode(distributionOrderNum.getState()));
});
selfPageInfoVo.setOrderNum(distributionOrderNumList);
//分销商卖出去的商品订单
selfPageInfoVo.setOrderNumForDistributor(distributionOrderNumList);
//分销商自己购买的订单
List<DistributionOrderNum> selfBuyNumList = distributionOrderDao.countGroupByStateForUser(dto.getUserId());
selfBuyNumList.forEach(s -> {
s.setStateName(DistributionEnum.DistributionOrderStateEnum.getNameByCode(s.getState()));
});
selfPageInfoVo.setOrderNum(selfBuyNumList);
return Result.success(selfPageInfoVo);
} catch (Exception e) {
logger.error("查询分销商个人主页失败 error : {}", e);
......
......@@ -31,6 +31,7 @@ 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 java.util.*;
......@@ -43,6 +44,8 @@ public class SupplierItemServiceImpl implements SupplierItemService {
private static final Logger logger = LoggerFactory.getLogger(SupplierItemServiceImpl.class);
private final static Long SYSTEM_ACCOUNT = 8888888888L;
@Autowired
SupplierItemDao supplierItemDao;
......@@ -104,17 +107,18 @@ public class SupplierItemServiceImpl implements SupplierItemService {
String shareRecordId = dto.getShareRecordId();
DistributorShareRecord distributorShareRecord = null;
long itemId = 0;
if (StringUtils.isEmpty(shareRecordId) && dto.getId() == null) {
if (dto.getId() != null) {
itemId = dto.getId();
}
else if (StringUtils.isEmpty(shareRecordId) && dto.getId() == null) {
return Result.failed("商品信息为空");
} else if (StringUtils.hasLength(shareRecordId)) {
} else {
distributorShareRecord = distributorShareRecordDao.findById(shareRecordId);
if (distributorShareRecord == null || !distributorShareRecord.getEnabled()) {
return Result.failed("该商品已下架");
} else {
itemId = distributorShareRecord.getItemId();
}
} else {
itemId = dto.getId();
}
SupplierItemVo supplierItemVo = new SupplierItemVo();
//用户点击链接进入详情页需要记录
......@@ -142,11 +146,10 @@ public class SupplierItemServiceImpl implements SupplierItemService {
}
} else {
//店家进入详情,需要判断是否购买过样品
List<DistributionOrder> distributionOrders = distributionOrderDao.findByBuyerId(dto.getUserId());
if (CollectionUtils.isEmpty(distributionOrders)) {
supplierItemVo.setShopBought(false);
} else {
if (distributionOrderDao.isBuyItem(dto.getUserId(), itemId)) {
supplierItemVo.setShopBought(true);
} else {
supplierItemVo.setShopBought(false);
}
}
SupplierItem supplierItem = supplierItemDao.findById(itemId);
......
......@@ -75,7 +75,6 @@ public class DistributionOrderController {
}
@ApiOperation(value = "分销商购买样品,尚未付款")
@PostMapping("/buySample")
public Result buySample(@RequestBody DistributionOrderRequestDto 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