src/main/java/com/yuanlrc/base/service/home/RunOrderService.java

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package com.yuanlrc.base.service.home;

import com.yuanlrc.base.bean.PageBean;
import com.yuanlrc.base.dao.common.RunTypeDao;
import com.yuanlrc.base.dao.home.BalanceChangeDao;
import com.yuanlrc.base.dao.home.MemberDao;
import com.yuanlrc.base.dao.home.RunOrderDao;
import com.yuanlrc.base.entity.common.RunType;
import com.yuanlrc.base.entity.home.BalanceChange;
import com.yuanlrc.base.entity.home.Member;
import com.yuanlrc.base.entity.home.RunOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.*;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.transaction.Transactional;
import java.math.BigDecimal;
import java.util.List;

/**
 * 跑腿订单
 */
@Service
public class RunOrderService {

    @Autowired
    private RunOrderDao runOrderDao;

    @Autowired
    private MemberDao memberDao;

    @Autowired
    private RunTypeDao runTypeDao;

    @Autowired
    private BalanceChangeDao balanceDao;


    /**
     * 跑腿订单分页带条件查询
     */
    public PageBean<RunOrder> findHomeList(RunOrder runOrder, PageBean<RunOrder> pageBean,Integer sort) {
        Specification<RunOrder> specification = new Specification<RunOrder>() {
            @Override
            public Predicate toPredicate(Root<RunOrder> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                Predicate predicate = criteriaBuilder.like(root.get("title"), "%" + (runOrder.getTitle() == null ? "" : runOrder.getTitle()) + "%");
                Predicate status = criteriaBuilder.equal(root.get("status"), RunOrder.RUNORDER_STATUS_START);
                predicate = criteriaBuilder.and(predicate, status);
                if(runOrder.getType()!=null && runOrder.getType().getId()!=null){
                    Predicate equal = criteriaBuilder.equal(root.get("type").get("id"), runOrder.getType().getId());
                    predicate = criteriaBuilder.and(predicate, equal);
                }
后面还有 134 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。