From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 14 三月 2025 20:56:27 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java | 223 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 220 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java index 8ba8136..9b56a97 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java @@ -1,10 +1,40 @@ package com.ruoyi.order.service.impl; -import com.ruoyi.order.domain.pojo.MemberInvoice; -import com.ruoyi.order.mapper.MemberInvoiceMapper; -import com.ruoyi.order.service.IMemberInvoiceService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.page.BeanUtils; +import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.order.controller.management.dto.MgtMemberInvoicingAuditDTO; +import com.ruoyi.order.controller.management.dto.MgtMemberInvoicingQuery; +import com.ruoyi.order.controller.management.vo.MgtMemberInvoicingVO; +import com.ruoyi.order.domain.MemberInvoice; +import com.ruoyi.order.domain.MemberInvoiceOrder; +import com.ruoyi.order.dto.MemberInvoiceDTO; +import com.ruoyi.order.mapper.MemberInvoiceMapper; +import com.ruoyi.order.service.IMemberInvoiceOrderService; +import com.ruoyi.order.service.IMemberInvoiceService; +import com.ruoyi.order.service.IOrderAuctionService; +import com.ruoyi.order.service.IOrderService; +import com.ruoyi.system.api.domain.Member; +import com.ruoyi.system.api.domain.Order; +import com.ruoyi.system.api.domain.dto.MemberDTO; +import com.ruoyi.system.api.feignClient.GoodsSkuClient; +import com.ruoyi.system.api.feignClient.MemberClient; +import io.seata.common.util.StringUtils; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; +import javax.annotation.Resource; +import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * <p> @@ -17,4 +47,191 @@ @Service public class MemberInvoiceServiceImpl extends ServiceImpl<MemberInvoiceMapper, MemberInvoice> implements IMemberInvoiceService { + + @Resource + private IMemberInvoiceOrderService iMemberInvoiceOrderService; + + + + @Resource + private IOrderService iOrderService; + + @Resource + private GoodsSkuClient goodsSkuClient; + + @Resource + private IOrderAuctionService iOrderAuctionService; + + @Resource + private MemberClient memberClient; + @Override + public void saveMemberInvoice(MemberInvoiceDTO memberInvoiceDTO) { + List<Long> memberInvoiceOrderList=memberInvoiceDTO.getOrderId(); + if (memberInvoiceOrderList.size()==0){ + throw new ServiceException("无开票订单"); + } + + MemberInvoice memberInvoice =new MemberInvoice(); + memberInvoice.setMemberId(memberInvoiceDTO.getMemberId()); + memberInvoice.setInvoiceMoney(memberInvoiceDTO.getInvoiceMoney()); + memberInvoice.setInvoiceStatus(1); + memberInvoice.setMail(memberInvoiceDTO.getMail()); + memberInvoice.setInvoiceType(memberInvoiceDTO.getInvoiceType()); + memberInvoice.setCorporationAccount(memberInvoiceDTO.getCorporationAccount()); + memberInvoice.setCorporationId(memberInvoiceDTO.getCorporationId()); + memberInvoice.setCorporationAddress(memberInvoiceDTO.getCorporationAddress()); + memberInvoice.setCorporationName(memberInvoiceDTO.getCorporationName()); + memberInvoice.setCorporationPhone(memberInvoiceDTO.getCorporationPhone()); + memberInvoice.setCorporationOpen(memberInvoiceDTO.getCorporationOpen()); + memberInvoice.setRiseType(memberInvoiceDTO.getRiseType()); + this.save(memberInvoice); + Double pice=0.00; + for (int i=0;i<memberInvoiceOrderList.size();i++){ + MemberInvoiceOrder memberInvoiceOrder1=new MemberInvoiceOrder(); + Order order= iOrderService.getById(memberInvoiceOrderList.get(i)); + order.setInvoiceStatus(2); + iOrderService.updateById(order); + memberInvoiceOrder1.setInvoiceId(memberInvoice.getId()); + memberInvoiceOrder1.setOrderMoney(order.getTotalAmount()); + memberInvoiceOrder1.setOrderNo(order.getOrderNo()); + String OrderName=""; + OrderName=order.getSkuName(); + memberInvoiceOrder1.setOrderName(OrderName); + iMemberInvoiceOrderService.save(memberInvoiceOrder1); + pice=pice+order.getTotalAmount().doubleValue(); + } + + memberInvoice.setInvoiceMoney(new BigDecimal(pice)); + this.updateById(memberInvoice); + } + + @Override + public PageDTO<MemberInvoice> getMemberInvoiceList(MemberInvoiceDTO memberInvoiceDTO) { + Page<MemberInvoice> page = new Page<>(memberInvoiceDTO.getPageCurr(), memberInvoiceDTO.getPageSize()); + LambdaQueryWrapper<MemberInvoice> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(MemberInvoice::getMemberId, memberInvoiceDTO.getMemberId()); + wrapper.eq(MemberInvoice::getDelFlag, 0); + wrapper.orderByDesc(MemberInvoice::getCreateTime); + Page<MemberInvoice> page1 = this.page(page, wrapper); + return PageDTO.of(page1); + } + + /** + * 获取开票申请列表分页数据 + * + * @param query 管理后台-开票申请相关接口 + * @return PageDTO<MgtMemberInvoicingVO> + */ + @Override + public PageDTO<MgtMemberInvoicingVO> getMemberInvoicingPage(MgtMemberInvoicingQuery query) { + Page<MemberInvoice> page = new Page<>(query.getPageCurr(), query.getPageSize()); + Set<Long> memberIdSet = null; + if (StringUtils.isNotBlank(query.getNickname()) || StringUtils.isNotBlank( + query.getPhone())) { + MemberDTO memberDTO = new MemberDTO(); + memberDTO.setNickname(query.getNickname()); + memberDTO.setPhone(query.getPhone()); + List<Member> memberList = memberClient.getMemberListByCondition(memberDTO, + SecurityConstants.INNER).getData(); + if (memberList.isEmpty()) { + return PageDTO.empty(page); + } + memberIdSet = memberList.stream().map(Member::getId) + .collect(Collectors.toSet()); + + } + page = this.lambdaQuery() + .in(com.ruoyi.common.core.utils.StringUtils.isNotEmpty(memberIdSet), + MemberInvoice::getMemberId, memberIdSet) + .eq(query.getInvoiceStatus() != null, MemberInvoice::getInvoiceStatus, + query.getInvoiceStatus()).orderByDesc(MemberInvoice::getCreateTime) + .page(page); + if (page.getRecords().isEmpty()) { + return PageDTO.empty(page); + } + PageDTO<MgtMemberInvoicingVO> pageVO = PageDTO.of(page, + MgtMemberInvoicingVO.class); + Set<Long> memberSet = pageVO.getList().stream().map(MgtMemberInvoicingVO::getMemberId) + .collect(Collectors.toSet()); + List<Member> memberList = memberClient.getMemberListByIds(memberSet, + SecurityConstants.INNER).getData(); + Map<Long, Member> memberMap = memberList.stream() + .collect(Collectors.toMap(Member::getId, member -> member)); + pageVO.getList().forEach(vo -> { + Member member = memberMap.get(vo.getMemberId()); + if (member != null) { + vo.setNickname(member.getNickname()); + vo.setPhone(member.getPhone()); + } + }); + return pageVO; + } + + /** + * 查看详情 + * + * @param id 开票申请id + * @return MgtMemberInvoicingVO + */ + @Override + public MgtMemberInvoicingVO getMemberInvoicingDetail(Long id) { + MemberInvoice memberInvoice = getMemberInvoice(id); + MgtMemberInvoicingVO mgtMemberInvoicingVO = BeanUtils.copyBean(memberInvoice, + MgtMemberInvoicingVO.class); + // 查询用户信息 + Member member = memberClient.getMembeOne(mgtMemberInvoicingVO.getMemberId(), + SecurityConstants.INNER).getData(); + if (Objects.nonNull(member)) { + mgtMemberInvoicingVO.setNickname(member.getNickname()); + mgtMemberInvoicingVO.setPhone(member.getPhone()); + } + // 查询关联订单 + List<MemberInvoiceOrder> memberInvoiceOrderList = iMemberInvoiceOrderService.lambdaQuery() + .eq(MemberInvoiceOrder::getInvoiceId, id).list(); + String orderNo = memberInvoiceOrderList.stream().map(MemberInvoiceOrder::getOrderNo) + .collect(Collectors.joining(",")); + mgtMemberInvoicingVO.setOrderNo(orderNo); + return mgtMemberInvoicingVO; + } + + @NotNull + private MemberInvoice getMemberInvoice(Long id) { + MemberInvoice memberInvoice = this.getById(id); + if (Objects.isNull(memberInvoice)) { + throw new ServiceException("开票申请不存在"); + } + return memberInvoice; + } + + /** + * 审核 + * + * @param dto 管理后台-开票申请审核数据传输对象 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void audit(MgtMemberInvoicingAuditDTO dto) { + MemberInvoice memberInvoice = getMemberInvoice(dto.getId()); + if (!Objects.equals(memberInvoice.getInvoiceStatus(), 1)) { + throw new ServiceException("该开票申请已被审核"); + } + memberInvoice.setInvoiceStatus(dto.getInvoiceStatus()); + if (Objects.equals(dto.getInvoiceStatus(), 3)) { + memberInvoice.setRemark(dto.getRemark()); + } + this.updateById(memberInvoice); + // 更新关联订单状态 + List<MemberInvoiceOrder> memberInvoiceOrderList = iMemberInvoiceOrderService.lambdaQuery() + .eq(MemberInvoiceOrder::getInvoiceId, memberInvoice.getId()) + .list(); + Set<String> orderNoSet = memberInvoiceOrderList.stream() + .map(MemberInvoiceOrder::getOrderNo) + .collect(Collectors.toSet()); + if (!orderNoSet.isEmpty()) { + iOrderService.lambdaUpdate() + .set(Order::getInvoiceStatus, dto.getInvoiceStatus() == 2 ? 3 : 4) + .in(Order::getOrderNo, orderNoSet).update(); + } + + } } -- Gitblit v1.7.1