jiangping
2023-10-08 35b0b9d26bac17adbc22c419c5d95357611d359d
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -4,21 +4,39 @@
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.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.Constants;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.GoodsorderMapper;
import com.doumee.dao.business.MemberRidesMapper;
import com.doumee.dao.business.MemberRidesMapper;
import com.doumee.dao.business.RefundMapper;
import com.doumee.dao.business.join.GoodsorderJoinMapper;
import com.doumee.dao.business.model.Bikes;
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.web.response.HomeResponse;
import com.doumee.dao.business.join.MemberRidesJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.web.response.GoodsorderDetailDTO;
import com.doumee.dao.business.web.response.PayOrderDTO;
import com.doumee.service.business.GoodsorderService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Service
public class GoodsorderServiceImpl implements GoodsorderService {
@@ -30,6 +48,21 @@
    @Autowired
    GoodsorderJoinMapper goodsorderJoinMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private MemberRidesMapper memberRidesMapper;
    @Autowired
    private RefundMapper refundMapper;
    @Autowired
    private MemberRidesJoinMapper memberRidesJoinMapper;
    @Override
    public String create(Goodsorder goodsorder) {
@@ -94,7 +127,6 @@
        MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getCode() != null) {
            queryWrapper.like(Goodsorder::getCode, pageWrap.getModel().getCode());
        }
@@ -102,7 +134,6 @@
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.eq(Goodsorder::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getOnlineOrderid() != null) {
            queryWrapper.eq(Goodsorder::getOnlineOrderid, pageWrap.getModel().getOnlineOrderid());
@@ -118,7 +149,6 @@
                    .selectAs(Member::getName,Goodsorder::getMemberName)
                    .leftJoin(Member.class,Member::getId,Goodsorder::getMemberId)
                    .like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName,pageWrap.getModel().getMemberName());
        return PageData.from(goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class,queryWrapper));
    }
@@ -127,4 +157,84 @@
        QueryWrapper<Goodsorder> wrapper = new QueryWrapper<>(goodsorder);
        return goodsorderMapper.selectCount(wrapper);
    }
    public HomeResponse getHome(String memberId){
        HomeResponse homeResponse = new HomeResponse();
        homeResponse.setParkName(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.PROJECT_NAME).getCode());
        homeResponse.setServerPhone(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.SERVER_PHONE).getCode());
        homeResponse.setLeaseNoticeUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE_URL).getCode());
        homeResponse.setLeaseNotice(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE).getCode());
        homeResponse.setDeposit(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()));
        homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.TIPS).getCode());
        homeResponse.setLeaseVideoUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode());
        homeResponse.setPricingRules(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRICING_RULE).getCode());
        //查询是否存在 已支付的 押金订单
        Integer status = this.goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>()
                .eq("member_id",memberId)
                .eq("status",Constants.goodsorderStatus.pay));
        homeResponse.setDepositStatus(status);
        if(homeResponse.getDepositStatus()==Constants.goodsorderStatus.pay) {
            //查询当前骑行状态
            MemberRides memberRides = memberRidesMapper.selectOne(new QueryWrapper<MemberRides>().eq("member_id", memberId)
                    .orderByDesc(" create_date ")
                    .last(" limit 1  "));
            if (Objects.isNull(memberRides)) {
            }
        }
        return homeResponse;
    }
    @Override
    public GoodsorderDetailDTO getGoodsorderDetailDTO(String id) {
        List<PayOrderDTO> payOrderDTOList = new ArrayList<>();
        Goodsorder goodsorder = goodsorderMapper.selectById(id);
        QueryWrapper<Refund> refundQuery = new QueryWrapper<>();
        refundQuery.lambda()
                    .eq(Refund::getObjId,id);
        List<Refund> refunds = refundMapper.selectList(refundQuery);
        PayOrderDTO payOrderDTO = new PayOrderDTO();
        payOrderDTO.setOrderCode(goodsorder.getCode());
        payOrderDTO.setPayType(goodsorder.getPayWay());
        payOrderDTO.setMoney(goodsorder.getMoney());
        payOrderDTO.setPayDate(goodsorder.getPayDate());
        payOrderDTOList.add(0,payOrderDTO);
        if (!CollectionUtils.isEmpty(refunds)){
            refunds.forEach(s->{
                PayOrderDTO refundOrderDTO = new PayOrderDTO();
                refundOrderDTO.setOrderCode(s.getCode());
                refundOrderDTO.setPayType(s.getPayWay());
                refundOrderDTO.setMoney(s.getMoney());
                refundOrderDTO.setPayDate(s.getDoneDate());
                payOrderDTOList.add(refundOrderDTO);
            });
        }
        MPJLambdaWrapper<MemberRides> wrapper = new MPJLambdaWrapper<>();
        wrapper.leftJoin(BaseParam.class,BaseParam::getId,MemberRides::getParamId)
                .eq(BaseParam::getType, Constants.THREE);
        List<MemberRides> memberRides = memberRidesJoinMapper.selectJoinList(MemberRides.class, wrapper);
        GoodsorderDetailDTO goodsorderDetailDTO = new GoodsorderDetailDTO();
        goodsorderDetailDTO.setPayOrderDTOList(payOrderDTOList);
        goodsorderDetailDTO.setMemberRidesList(memberRides);
        return goodsorderDetailDTO;
    }
    @Override
    public Goodsorder closerGoodsorder(String id) {
        Goodsorder goodsorder = goodsorderMapper.selectById(id);
        return null;
    }
}