package com.yeshi.fanli.service.impl.order.jd;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.yeshi.fanli.dao.mybatis.jd.JDOrderItemMapper;
|
import com.yeshi.fanli.dao.mybatis.jd.JDOrderMapper;
|
import com.yeshi.fanli.entity.jd.JDOrder;
|
import com.yeshi.fanli.entity.jd.JDOrderItem;
|
import com.yeshi.fanli.exception.jd.JDOrderException;
|
import com.yeshi.fanli.service.inter.order.jd.JDOrderService;
|
|
@Service
|
public class JDOrderServiceImpl implements JDOrderService {
|
@Resource
|
private JDOrderItemMapper jdOrderItemMapper;
|
@Resource
|
private JDOrderMapper jdOrderMapper;
|
|
@Transactional(rollbackFor=Exception.class)
|
@Override
|
public void addJDOrder(JDOrder order) throws JDOrderException {
|
if (order == null)
|
throw new JDOrderException(1, "订单为空");
|
JDOrder oldOrder = jdOrderMapper.selectByOrderId(order.getOrderId());
|
if (oldOrder != null)// 更新
|
{
|
order.setId(oldOrder.getId());
|
order.setUpdateTime(new Date());
|
jdOrderMapper.updateByPrimaryKeySelective(order);
|
for (JDOrderItem item : order.getOrderItemList()) {// 新增
|
JDOrderItem oldItem = jdOrderItemMapper.selectByTradeId(item.getTradeId());
|
if (oldItem != null)// 更新
|
{
|
item.setId(oldItem.getId());
|
item.setUpdateTime(new Date());
|
jdOrderItemMapper.updateByPrimaryKeySelective(item);
|
} else {// 新增
|
item.setCreateTime(new Date());
|
jdOrderItemMapper.insertSelective(item);
|
}
|
}
|
} else {// 新增
|
if (order.getOrderItemList() == null || order.getOrderItemList().size() == 0)
|
throw new JDOrderException(2, "子订单为空");
|
|
if (order.getCreateTime() == null)
|
order.setCreateTime(new Date());
|
jdOrderMapper.insertSelective(order);
|
|
for (JDOrderItem item : order.getOrderItemList()) {// 新增
|
if (item.getCreateTime() == null)
|
item.setCreateTime(new Date());
|
jdOrderItemMapper.insertSelective(item);
|
}
|
}
|
}
|
|
@Override
|
public JDOrder selectByOrderId(Long orderId) {
|
return jdOrderMapper.selectByOrderId(orderId);
|
}
|
|
@Override
|
public JDOrder selectDetailByOrderId(Long orderId) {
|
JDOrder order = selectByOrderId(orderId);
|
if (order == null)
|
return null;
|
List<JDOrderItem> orderItemList = jdOrderItemMapper.listByOrderId(order.getOrderId());
|
order.setOrderItemList(orderItemList);
|
return order;
|
}
|
|
@Override
|
public Long countOrderByDay(String preDay) {
|
return jdOrderItemMapper.countOrderByDay(preDay);
|
}
|
|
|
@Override
|
public List<JDOrderItem> listQuery(long start, int count, String key) {
|
return jdOrderItemMapper.listQuery(start, count, key);
|
}
|
|
@Override
|
public long countQuery(String key) {
|
Long count = jdOrderItemMapper.countQuery(key);
|
if (count == null) {
|
count = 0L;
|
}
|
return count;
|
}
|
}
|