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.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.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.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.List; import java.util.Objects; @Service public class GoodsorderServiceImpl implements GoodsorderService { @Autowired private GoodsorderMapper goodsorderMapper; @Autowired GoodsorderJoinMapper goodsorderJoinMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private MemberRidesMapper memberRidesMapper; @Override public String create(Goodsorder goodsorder) { goodsorderMapper.insert(goodsorder); return goodsorder.getId(); } @Override public void deleteById(String id) { goodsorderMapper.deleteById(id); } @Override public void delete(Goodsorder goodsorder) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(goodsorder); goodsorderMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } goodsorderMapper.deleteBatchIds(ids); } @Override public void updateById(Goodsorder goodsorder) { goodsorderMapper.updateById(goodsorder); } @Override public void updateByIdInBatch(List goodsorders) { if (CollectionUtils.isEmpty(goodsorders)) { return; } for (Goodsorder goodsorder: goodsorders) { this.updateById(goodsorder); } } @Override public Goodsorder findById(String id) { return goodsorderMapper.selectById(id); } @Override public Goodsorder findOne(Goodsorder goodsorder) { QueryWrapper wrapper = new QueryWrapper<>(goodsorder); return goodsorderMapper.selectOne(wrapper); } @Override public List findList(Goodsorder goodsorder) { QueryWrapper wrapper = new QueryWrapper<>(goodsorder); return goodsorderMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getCode() != null) { queryWrapper.like(Goodsorder::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.eq(Goodsorder::getStatus, pageWrap.getModel().getStatus()); } if (pageWrap.getModel().getOnlineOrderid() != null) { queryWrapper.eq(Goodsorder::getOnlineOrderid, pageWrap.getModel().getOnlineOrderid()); } if (pageWrap.getModel().getPayDate() != null) { queryWrapper.ge(Goodsorder::getPayDate, Utils.Date.getStart(pageWrap.getModel().getPayDate())); queryWrapper.le(Goodsorder::getPayDate, Utils.Date.getEnd(pageWrap.getModel().getPayDate())); } queryWrapper.orderByDesc(Goodsorder::getCreateDate); queryWrapper.selectAll(Goodsorder.class) .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)); } @Override public long count(Goodsorder goodsorder) { QueryWrapper 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() .eq("member_id",memberId) .eq("status",Constants.goodsorderStatus.pay)); homeResponse.setDepositStatus(status); if(homeResponse.getDepositStatus()==Constants.goodsorderStatus.pay) { //查询当前骑行状态 MemberRides memberRides = memberRidesMapper.selectOne(new QueryWrapper().eq("member_id", memberId) .orderByDesc(" create_date ") .last(" limit 1 ")); if (Objects.isNull(memberRides)) { } } return homeResponse; } }