jiangping
2023-10-11 146442fe47b195f899e567eafc1d32f05c3bc13c
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -1,9 +1,11 @@
package com.doumee.service.business.impl;
import com.alibaba.fastjson.JSONObject;
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.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -11,16 +13,10 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.GoodsorderMapper;
import com.doumee.dao.business.LocksMapper;
import com.doumee.dao.business.ActionLogMapper;
import com.doumee.dao.business.LocksMapper;
import com.doumee.dao.business.MemberRidesMapper;
import com.doumee.dao.business.join.MemberRidesJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.BaseParam;
import com.doumee.dao.business.model.Goodsorder;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.MemberRides;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.web.request.MemberRidesQuery;
import com.doumee.dao.business.web.response.BikeLogDTO;
@@ -29,14 +25,9 @@
import com.doumee.service.business.DeviceService;
import com.doumee.service.business.GoodsorderService;
import com.doumee.service.business.MemberRidesService;
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.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -46,7 +37,6 @@
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
/**
 * 用户骑行记录表Service实现
@@ -174,28 +164,37 @@
        IPage<MemberRides> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<MemberRides> queryWrapper = initQueryParamByModel(pageWrap.getModel());
        IPage<BikeLogDTO> bikeLogDTOIPage = memberRidesJoinMapper.selectJoinPage(page, BikeLogDTO.class, queryWrapper);
        if (!CollectionUtils.isEmpty(bikeLogDTOIPage.getRecords())){
            bikeLogDTOIPage.getRecords().forEach(s->{
        initBikeLogObj(bikeLogDTOIPage.getRecords());
        return PageData.from(bikeLogDTOIPage);
    }
    public static List<BikeLogDTO> findBikeLogList( MemberRidesJoinMapper mrJoinMapper,MemberRidesQuery pageWrap) {
        MPJLambdaWrapper<MemberRides> queryWrapper = initQueryParamByModel(pageWrap);
        List<BikeLogDTO> list = mrJoinMapper.selectJoinList( BikeLogDTO.class, queryWrapper);
        initBikeLogObj(list);
        return list;
    }
    public static void initBikeLogObj(List<BikeLogDTO> list){
        if (!CollectionUtils.isEmpty(list)){
            list.forEach(s->{
                if (Objects.nonNull(s.getBackDate())){
                    s.setRideTime(DateUtil.betweenMin(s.getRentDate(),s.getBackDate()));
                }
            });
        }
        return PageData.from(bikeLogDTOIPage);
    }
    private MPJLambdaWrapper<MemberRides> initQueryParamByModel(MemberRidesQuery model) {
    public  static MPJLambdaWrapper<MemberRides> initQueryParamByModel(MemberRidesQuery model) {
        MPJLambdaWrapper<MemberRides> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(model);
        queryWrapper.orderByDesc(MemberRides::getCreateDate);
        queryWrapper.leftJoin(Member.class,Member::getId,MemberRides::getMemberId)
                .leftJoin(BaseParam.class,BaseParam::getId,MemberRides::getParamId)
                .eq(BaseParam::getType, Constants.THREE)
                .like(StringUtils.isNotBlank(model.getOpenid()),Member::getOpenid,model.getOpenid())
                .like(StringUtils.isNotBlank(model.getBikeCode()),MemberRides::getBikeCode,model.getBikeCode());
        queryWrapper.ge(model.getRentDateStart()!=null, MemberRides::getRentDate,model.getRentDateStart());
        queryWrapper.le(model.getRentDateEnd()!=null, MemberRides::getRentDate,model.getRentDateEnd());
        queryWrapper.eq(model.getCloseStatus()!=null,MemberRides::getCloseStatus, model.getCloseStatus());
        queryWrapper.eq(model.getGoodsorderId()!=null,MemberRides::getOrdreId, model.getGoodsorderId());
        queryWrapper.selectAs(Member::getOpenid,MemberRidesDTO::getOpenid)
                .selectAs(MemberRides::getBikeCode,MemberRidesDTO::getBikeCode)
                .selectAs(MemberRides::getCloseStatus,MemberRidesDTO::getCloseStatus)