package com.sinata.modular.mall.service.impl;
|
|
import com.baomidou.mybatisplus.mapper.SqlHelper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.sinata.common.enums.mall.EnumMallOrderState;
|
import com.sinata.core.common.exception.BizExceptionEnum;
|
import com.sinata.core.exception.GunsException;
|
import com.sinata.modular.mall.dao.MallOrderMapper;
|
import com.sinata.modular.mall.model.MallOrder;
|
import com.sinata.modular.mall.service.IMallOrderService;
|
import org.apache.ibatis.session.RowBounds;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* <p>
|
* 商品订单 服务实现类
|
* </p>
|
*
|
* @author goku
|
* @since 2023-03-12
|
*/
|
@Service
|
public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder> implements IMallOrderService {
|
|
@Override
|
public Page<MallOrder> findPage(Page<MallOrder> page, Wrapper<?> wrapper) {
|
wrapper = SqlHelper.fillWrapper(page, wrapper);
|
page.setRecords(baseMapper.findList(page, wrapper));
|
return page;
|
}
|
|
@Override
|
public List<MallOrder> findList(Wrapper<?> wrapper) {
|
return this.baseMapper.findList(RowBounds.DEFAULT, wrapper);
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void cancelOrder(String orderNo) {
|
MallOrder order = this.selectById(orderNo);
|
|
if (order == null
|
|| order.getState() != EnumMallOrderState.WAIT_PAY.getIndex()
|
|| order.getState() != EnumMallOrderState.WAIT_CHECK.getIndex()) {
|
throw new GunsException(BizExceptionEnum.REQUEST_NULL.getCode(), "只有未支付或未发货的订单才能取消");
|
}
|
|
order.setCancelType(1);
|
order.setCancelTime(new Date());
|
order.setState(EnumMallOrderState.CANCEL.getIndex());
|
//修改状态
|
this.updateById(order);
|
}
|
|
@Override
|
public List<Map<String, Object>> countOrderIncome(Wrapper<?> wrapper) {
|
return this.baseMapper.countOrderIncome(wrapper);
|
}
|
|
@Override
|
public List<Map<String, Object>> getOrderTopMapList(String beginTime, String endTime, Integer type, String provinceCode, String cityCode) {
|
return this.baseMapper.getOrderTopMapList(beginTime, endTime, type, provinceCode, cityCode);
|
}
|
|
@Override
|
public List<Map<String, Object>> getShopTopMapList(String beginTime, String endTime, Integer type, String provinceCode, String cityCode) {
|
return this.baseMapper.getShopTopMapList(beginTime, endTime, type, provinceCode, cityCode);
|
}
|
}
|