package com.doumee.service.business.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.core.constants.Constants; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.OrdersMapper; import com.doumee.dao.business.model.Category; import com.doumee.dao.business.model.Orders; import com.doumee.service.business.OrdersService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Objects; /** * 寄存订单信息Service实现 * @author rk * @date 2026/04/10 */ @Service public class OrdersServiceImpl implements OrdersService { @Autowired private OrdersMapper ordersMapper; @Override public Integer create(Orders orders) { ordersMapper.insert(orders); return orders.getId(); } @Override public void deleteById(Integer id) { ordersMapper.update(new UpdateWrapper().lambda() .set(Orders::getDeleted, Constants.ONE) .eq(Orders::getId, id)); } @Override public void delete(Orders orders) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(orders); ordersMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (ids == null || ids.isEmpty()) { return; } ordersMapper.deleteBatchIds(ids); } @Override public void updateById(Orders orders) { ordersMapper.updateById(orders); } @Override public void updateByIdInBatch(List ordersList) { if (ordersList == null || ordersList.isEmpty()) { return; } for (Orders orders : ordersList) { this.updateById(orders); } } @Override public Orders findById(Integer id) { Orders orders = ordersMapper.selectById(id); if (Objects.isNull(orders)) { throw new BusinessException(ResponseStatus.DATA_EMPTY); } return orders; } @Override public Orders findOne(Orders orders) { QueryWrapper wrapper = new QueryWrapper<>(orders); return ordersMapper.selectOne(wrapper); } @Override public List findList(Orders orders) { QueryWrapper wrapper = new QueryWrapper<>(orders); return ordersMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper() .selectAll(Orders.class) .selectAs(Category::getDetail, Orders::getOrderLevel) .leftJoin(Category.class, Category::getId, Orders::getGoodType); Utils.MP.blankToNull(pageWrap.getModel()); pageWrap.getModel().setDeleted(Constants.ZERO); queryWrapper.eq(pageWrap.getModel().getDeleted() != null, Orders::getDeleted, pageWrap.getModel().getDeleted()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()), Orders::getCode, pageWrap.getModel().getCode()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getGoodsInfo()), Orders::getGoodsInfo, pageWrap.getModel().getGoodsInfo()); queryWrapper.ge(pageWrap.getModel().getCreateStartTime() != null, Orders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateStartTime())); queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime())); queryWrapper.eq(pageWrap.getModel().getDepositShopId() != null, Orders::getDepositShopId, pageWrap.getModel().getDepositShopId()); queryWrapper.eq(pageWrap.getModel().getType() != null, Orders::getType, pageWrap.getModel().getType()); queryWrapper.eq(pageWrap.getModel().getStatus() != null, Orders::getStatus, pageWrap.getModel().getStatus()); queryWrapper.eq(pageWrap.getModel().getTakeShopId() != null, Orders::getTakeShopId, pageWrap.getModel().getTakeShopId()); for (PageWrap.SortData sortData : pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(ordersMapper.selectJoinPage(page, Orders.class, queryWrapper)); } @Override public long count(Orders orders) { QueryWrapper wrapper = new QueryWrapper<>(orders); return ordersMapper.selectCount(wrapper); } }